Every API has 3 out parameters as x_return_status, x_msg_count and x_msg_data.
Using these 3 parameters, one can use below code to log or debug error in API's i.e
declare
--variables declaration if u have
begin
--here we write any api to run any procedure
under that below need to add,by adding below,we can identify the issue
dbms_output.put_line (SubStr('x_return_status = '||x_return_status, 1, 255));
dbms_output.put_line ('x_msg_count = '||TO_CHAR(x_msg_count));
dbms_output.put_line (SubStr('x_msg_data = '||x_msg_data, 1, 255));
IF x_msg_count >1 THEN
FOR I IN 1..x_msg_count
LOOP
dbms_output.put_line(I ||'.'|| SubStr(FND_MSG_PUB.Get(p_encoded =>FND_API.G_FALSE ), 1, 255));
END LOOP;
END IF;
END;
SAMPLE SCRIPT TO RUN API:
DECLARE
x_msg_count VARCHAR2(1000);
x_msg_data VARCHAR2(1000);
x_return_status VARCHAR2(1000);
BEGIN
po_asl_ths.insert_row
(x_row_id => l_row_id,
x_asl_id => l_asl_id,
x_item_id => REC_po_asl_valid.inventory_item_id,
x_vendor_id => REC_po_asl_valid.vendor_id,
x_vendor_site_id => REC_po_asl_valid.vendor_site_id,
x_vendor_business_type => REC_po_asl_valid.vendor_business_type,
x_asl_status_id => 1,
x_created_by => l_user_id,
);
dbms_output.put_line (SubStr('x_return_status = '||x_return_status, 1, 255));
dbms_output.put_line ('x_msg_count = '||TO_CHAR(x_msg_count));
dbms_output.put_line (SubStr('x_msg_data = '||x_msg_data, 1, 255));
IF x_msg_count >1 THEN
FOR I IN 1..x_msg_count
LOOP
dbms_output.put_line(I ||'.'|| SubStr(FND_MSG_PUB.Get(p_encoded =>FND_API.G_FALSE ), 1, 255));
END LOOP;
END IF;
END;
No comments:
Post a Comment