Sample PLSQL Code
Sample PLSQL Code
PROCEDURE insert_ar_extension_attributes(extension_attr_tbl IN
ARP_UTIL.EXTENSION_ATTR_TBL_TYPE,
x_msg_count OUT NOCOPY
NUMBER,
x_msg_data OUT NOCOPY
VARCHAR2,
x_return_status OUT NOCOPY
VARCHAR2);
Sample Code that could be used in the query is given below for easy
reference:
DECLARE
l_return_status VARCHAR2(30);
l_msg_count NUMBER;
l_msg_data VARCHAR2(2000);
msg_rec FND_MESSAGE.MSG_REC_TYPE;
err_count number:=0;
ext_attr_err ARP_UTIL.EXT_ATTR_ERROR_RECORD;
ext_attr_err_tbl ARP_UTIL.EXT_ATTR_ERROR_TBL_TYPE;
extension_attr_rec ARP_UTIL.EXTENSION_ATTRIBUTE_RECORD;
extension_attr_tbl ARP_UTIL.EXTENSION_ATTR_TBL_TYPE;
ext_attr_count number:=0;
BEGIN
ext_attr_err_tbl := ARP_UTIL.EXT_ATTR_ERROR_TBL_TYPE();
extension_attr_tbl:=ARP_UTIL.extension_attr_tbl_TYPE();
declare
open line_cursor;
loop
fetch line_cursor into l_cust_trx_line_id;
exit when line_cursor%NOTFOUND;
extension_attr_tbl.extend;
extension_attr_tbl(ext_attr_count):=extension_attr_rec;
END LOOP;
declare
cursor tax_cursor is (select customer_trx_line_id from
ra_customer_trx_lines_all where customer_trx_id=trx.customer_trx_id
and LINK_TO_CUST_TRX_LINE_ID=l_cust_trx_line_id and
line_type='TAX');
l_cust_trx_tax_line_id
ra_customer_trx_lines_all.customer_trx_line_id%type;
begin
open tax_cursor;
loop
fetch tax_cursor into l_cust_trx_tax_line_id;
exit when tax_cursor%NOTFOUND;
extension_attr_tbl.extend;
extension_attr_tbl(ext_attr_count):=extension_attr_rec;
end LOOP;
end loop;
close tax_cursor;
end;
end loop;
close line_cursor;
end;
ARP_UTIL.insert_ar_extension_attributes(extension_attr_tbl,x_msg_cou
nt => l_msg_count,
x_msg_data => l_msg_data,
x_return_status => l_return_status);
IF l_return_status = fnd_api.g_ret_sts_error OR
l_return_status = fnd_api.g_ret_sts_unexp_error THEN
FND_MESSAGE.SET_ENCODED (l_msg_data);
msg_rec:=FND_MESSAGE.GET_MESSAGE_RECORD;
ext_attr_err_tbl.extend;
err_count:=err_count+1;
ext_attr_err.TRX_NUMBER:=trx.trx_number;
ext_attr_err.ERROR_MESSAGE:=msg_rec.user_message;
ext_attr_err_tbl(err_count):=ext_attr_err;
fnd_msg_pub.Delete_Msg(1);
END LOOP;
fnd_msg_pub.Delete_Msg;
END IF;
l_return_status:='';
ext_attr_count:=0;
arp_util.update_ready_for_xml_flag( trx.customer_trx_id,'Y',l_msg_co
unt,l_msg_data,l_return_status);
IF l_return_status = fnd_api.g_ret_sts_error OR
l_return_status = fnd_api.g_ret_sts_unexp_error THEN
FND_MESSAGE.SET_ENCODED (l_msg_data);
msg_rec:=FND_MESSAGE.GET_MESSAGE_RECORD;
ext_attr_err_tbl.extend;
err_count:=err_count+1;
ext_attr_err.TRX_NUMBER:=trx.trx_number;
ext_attr_err.ERROR_MESSAGE:=msg_rec.user_message;
ext_attr_err_tbl(err_count):=ext_attr_err;
fnd_msg_pub.Delete_Msg(1);
END LOOP;
fnd_msg_pub.Delete_Msg;
END IF;
end loop;
END;