Hi @hhy38
thank you for the new code but the same error message, unfortunately.
@Link You should send this task as a background job. There is a template below.
DECLARE
attr_ VARCHAR2(32000);
sql_msg_ VARCHAR2(32000);
stmt_ VARCHAR2(32000);
job_id_ NUMBER;
BEGIN
stmt_ := '
BEGIN
END;';
sql_msg_ := ifsapp.message_sys.construct('UPD');
ifsapp.message_sys.add_attribute(sql_msg_, 'SQL', stmt_);
ifsapp.client_sys.clear_attr(attr_);
ifsapp.client_sys.add_to_attr('SQL_DATA_', sql_msg_, attr_);
ifsapp.client_sys.add_to_attr('MSG_', '', attr_);
ifsapp.transaction_sys.deferred_call(job_id_, 'Fnd_Event_Action_API.Action_Executeonlinesql', 'PARAMETER', attr_, 'Geri plan Tanımı');
END;
And for your scenario. You can use it like this.
DECLARE
attr_ VARCHAR2(32000);
sql_msg_ VARCHAR2(32000);
stmt_ VARCHAR2(32000);
job_id_ NUMBER;
BEGIN
stmt_ := '
DECLARE
attr_ VARCHAR2(800);
v_buy_qty_due NUMBER(8, 2) := ((''&NEW:BUY_QTY_DUE'' * ''&LENGTH'') / 1000);
v_customer_quantity NUMBER(8, 2) := ((''&NEW:CUSTOMER_QUANTITY'' * ''&LENGTH'') / 1000);
v_objversion VARCHAR2(100);
v_rowid VARCHAR2(100);
info_ VARCHAR2(2000);
BEGIN
SELECT objid,
objversion
INTO v_rowid,
v_objversion
FROM ifsapp.external_cust_order_line_all
WHERE message_id = ''&NEW:MESSAGE_ID''
AND catalog_no = ''&NEW:CATALOG_NO''
AND line_no = ''&NEW:LINE_NO'';
ifsapp.client_sys.clear_attr(attr_);
ifsapp.client_sys.add_to_attr(name_ => ''BUY_QTY_DUE'', value_ => v_buy_qty_due, attr_ => attr_);
ifsapp.client_sys.add_to_attr(name_ => ''CUSTOMER_QUANTITY'', value_ => v_customer_quantity, attr_ => attr_);
ifsapp.external_cust_order_line_api.modify__(info_, v_rowid, v_objversion, attr_, ''DO'');
END;
';
sql_msg_ := ifsapp.message_sys.construct('UPD');
ifsapp.message_sys.add_attribute(sql_msg_, 'SQL', stmt_);
ifsapp.client_sys.clear_attr(attr_);
ifsapp.client_sys.add_to_attr('SQL_DATA_', sql_msg_, attr_);
ifsapp.client_sys.add_to_attr('MSG_', '', attr_);
ifsapp.transaction_sys.deferred_call(job_id_, 'Fnd_Event_Action_API.Action_Executeonlinesql', 'PARAMETER', attr_, 'Geri plan Tanımı');
END;