Skip to main content

Hello.

On the customer order screen, I made a new event, so, when a new line is created in the detail, I have to check the freeze price field, but nothing happens.

On the event action, I put the condition “NEW:PRICE_FREEZE = FREE”, in the code, I put this :

DECLARE

attr_ VARCHAR2(32000);

BEGIN

 Client_SYS.Clear_Attr(attr_);

 Client_SYS.Add_To_Attr('P_ROWKEY','&NEW:ROWKEY' , attr_);

 transaction_sys.deferred_call('CustomPackage_API.CheckPriceFreeze','PARAMETER',attr_ ,'#Check the “price freeze” field');

END; 

 

I defined the function like this :

 

PROCEDURE CheckPriceFreeze(P_ROWKEY VARCHAR2)

IS

v_attr varchar2(32000);

v_objid varchar2(200);

v_objversion varchar2(200);

v_result varchar2(32000);



BEGIN

 SELECT OBJID, OBJVERSION into v_objid, v_objversion

 FROM CUSTOMER_ORDER_LINE

 WHERE OBJKEY=P_ROWKEY;

 Client_SYS.Clear_Attr(v_attr);

 Client_SYS.Add_To_Attr('PRICE_FREEZE_DB','FROZEN' , v_attr);

 IFSAPP.CUSTOMER_ORDER_LINE_API.MODIFY__(v_result ,v_objid ,v_objversion , v_attr, 'DO' );

    

 COMMIT;

END CheckPriceFreeze;

 

In the background jobs screen, I can see the call of the procedure, its status is set to posted…

I don’t know what’s wrong with my code, when I run the procedure via sql developer, the field is correctly checked...

Be the first to reply!

Reply