/*You can use the api to add new line/distribution,Update/delete existing line/distribution*/
DECLARE
l_req_hdr PO_REQUISITION_UPDATE_PUB.req_hdr;
l_ret_status VARCHAR2 (10);
l_msg_count NUMBER;
l_msg_data VARCHAR2 (4000);
l_line_tbl PO_REQUISITION_UPDATE_PUB.req_line_tbl;
l_dist_tbl PO_REQUISITION_UPDATE_PUB.req_dist_tbl;
l_req_hdr_id NUMBER;
l_req_line_id NUMBER;
l_req_line_no NUMBER;
l_item_id number;
l_req_no varchar2(40);
v_msg NUMBER := NULL;
MESSAGE VARCHAR2 (2000);
out_message varchar2(5000);
l_msg_index_OUT number;
BEGIN
PO_LOG.d_stmt:=TRUE;
FND_GLOBAL.APPS_INITIALIZE(103338,23436, 396);
fnd_profile.put('AFLOG_ENABLED', 'Y');
fnd_profile.put('AFLOG_MODULE', '%');
fnd_profile.put('AFLOG_LEVEL','1');
fnd_profile.put('AFLOG_FILENAME', '');
fnd_log_repository.init;
apps.fnd_msg_pub.delete_msg;
SELECT requisition_header_id,segment1
INTO l_req_`hdr_id,l_req_no
FROM po_requisition_headers_all
WHERE segment1 = '107904'
and org_id = 81;
SELECT requisition_line_id, line_num,item_id
INTO l_req_line_id, l_req_line_no,l_item_id
FROM po_requisition_lines_all
WHERE requisition_header_id = l_req_hdr_id
and org_id = 81;
l_line_tbl.delete;
l_req_hdr.segment1 := l_req_no;
l_req_hdr.org_id := 81;
l_req_hdr.requisition_header_id := l_req_hdr_id;
l_req_hdr.description := 'Test via API -Darpan';
l_line_tbl (1).requisition_number := l_req_no;
l_line_tbl (1).requisition_header_id := l_req_hdr_id;
l_line_tbl (1).requisition_line_num := l_req_line_no;
l_line_tbl (1).requisition_line_id := l_req_line_id;
L_LINE_TBL(1).quantity := 25;
l_line_tbl (1).org_id := 81;
l_line_tbl (2).requisition_number := l_req_no;
l_line_tbl (2).requisition_header_id := l_req_hdr_id;
l_line_tbl (2).requisition_line_num := 2;
--l_line_tbl (2).requisition_line_id := l_req_line_id;
l_line_tbl (2).org_id := 81;
l_line_tbl (2).ITEM_ID := l_item_id;
l_line_tbl (2).item_description := 'Health Club Card 100249 Khalid Abdulrahman Nasser AL-Buraihi';
-- l_line_tbl (2).order_type_lookup_code:= 'QUANTITY' ;
-- l_line_tbl (2).purchase_basis:= 'GOODS';
--l_line_tbl (2).matching_basis:='QUANTITY';
l_line_tbl (2).destination_organization_id:=86;
l_line_tbl (2).vendor_id:=318146;
--l_line_tbl (2).encumbered_flag:='N';
--l_line_tbl (2).quantity_delivered:=0;
L_LINE_TBL (2). currency_code :='SAR';
L_LINE_TBL(2).quantity := 25;
L_LINE_TBL(2).unit_price := 10;
L_LINE_TBL(2).CATEGORY_ID := 143;
L_LINE_TBL(2).deliver_to_location_id := 451;
L_LINE_TBL(2).to_person_id:=397;
l_line_tbl(2).LINE_TYPE_ID := 1;
l_line_tbl(2).source_type_code := 'VENDOR';
--l_line_tbl(2).source_type := 'VENDOR';
l_line_tbl(2).destination_type_code := 'EXPENSE';
-- l_line_tbl(2).DESTINATION_CONTEXT:= 'EXPENSE';
l_line_tbl(2).ACTION_FLAG := 'NEW';
L_LINE_TBL(2).unit_meas_lookup_code := 'EA';
--
--
l_dist_tbl (2).requisition_number := l_req_no;
l_dist_tbl (2).coa_id:=1001;
l_dist_tbl (2).req_header_id :=l_req_hdr_id;
l_dist_tbl (2).req_line_num:= 2;
l_dist_tbl (2).distribution_num := 3;
--l_dist_tbl (2).requisition_dist_id := l_req_dist_id;
l_dist_tbl (2).org_id := 81;
l_dist_tbl (2).charge_account_id := 129916;
--L_dist_TBL (2). currency_code :='SAR';
L_dist_TBL(2).budget_account_id := 129916;
L_dist_TBL(2).accrual_account_id := 1091;
L_dist_TBL(2).variance_account_id := 129916;
l_dist_tbl(2).req_line_quantity := 25;
--l_dist_tbl(2).req_line_amount := 'VENDOR';
l_dist_tbl(2).CODE_COMBINATION_ID := 129916;
l_dist_tbl(2).ACTION_FLAG := 'NEW';
PO_REQUISITION_UPDATE_PUB.update_requisition ('F',
'Y',
l_ret_status,
l_msg_count,
l_msg_data,
'N',
l_req_hdr,
l_line_tbl,
l_dist_tbl);
DBMS_OUTPUT.put_line ('Return Status' || l_ret_status);
DBMS_OUTPUT.put_line ('Message Count' || l_msg_count);
DBMS_OUTPUT.put_line ('Msg Data' || l_msg_data);
IF l_ret_status = 'E' OR l_ret_status = 'U'
THEN
MESSAGE := MESSAGE || 'return status: ' || l_ret_status || ' msg: ';
IF (FND_MSG_PUB.Count_Msg > 0)
THEN
FOR i IN 1 .. FND_MSG_PUB.Count_Msg
LOOP
FND_MSG_PUB.Get (p_msg_index => i,
p_encoded => 'F',
p_data => out_message,
p_msg_index_OUT => l_msg_index_OUT);
MESSAGE := MESSAGE || ' ' || out_message;
END LOOP;
END IF;
END IF;
dbms_output.put_line(MESSAGE);
END;
DECLARE
l_req_hdr PO_REQUISITION_UPDATE_PUB.req_hdr;
l_ret_status VARCHAR2 (10);
l_msg_count NUMBER;
l_msg_data VARCHAR2 (4000);
l_line_tbl PO_REQUISITION_UPDATE_PUB.req_line_tbl;
l_dist_tbl PO_REQUISITION_UPDATE_PUB.req_dist_tbl;
l_req_hdr_id NUMBER;
l_req_line_id NUMBER;
l_req_line_no NUMBER;
l_item_id number;
l_req_no varchar2(40);
v_msg NUMBER := NULL;
MESSAGE VARCHAR2 (2000);
out_message varchar2(5000);
l_msg_index_OUT number;
BEGIN
PO_LOG.d_stmt:=TRUE;
FND_GLOBAL.APPS_INITIALIZE(103338,23436, 396);
fnd_profile.put('AFLOG_ENABLED', 'Y');
fnd_profile.put('AFLOG_MODULE', '%');
fnd_profile.put('AFLOG_LEVEL','1');
fnd_profile.put('AFLOG_FILENAME', '');
fnd_log_repository.init;
apps.fnd_msg_pub.delete_msg;
SELECT requisition_header_id,segment1
INTO l_req_`hdr_id,l_req_no
FROM po_requisition_headers_all
WHERE segment1 = '107904'
and org_id = 81;
SELECT requisition_line_id, line_num,item_id
INTO l_req_line_id, l_req_line_no,l_item_id
FROM po_requisition_lines_all
WHERE requisition_header_id = l_req_hdr_id
and org_id = 81;
l_line_tbl.delete;
l_req_hdr.segment1 := l_req_no;
l_req_hdr.org_id := 81;
l_req_hdr.requisition_header_id := l_req_hdr_id;
l_req_hdr.description := 'Test via API -Darpan';
l_line_tbl (1).requisition_number := l_req_no;
l_line_tbl (1).requisition_header_id := l_req_hdr_id;
l_line_tbl (1).requisition_line_num := l_req_line_no;
l_line_tbl (1).requisition_line_id := l_req_line_id;
L_LINE_TBL(1).quantity := 25;
l_line_tbl (1).org_id := 81;
l_line_tbl (2).requisition_number := l_req_no;
l_line_tbl (2).requisition_header_id := l_req_hdr_id;
l_line_tbl (2).requisition_line_num := 2;
--l_line_tbl (2).requisition_line_id := l_req_line_id;
l_line_tbl (2).org_id := 81;
l_line_tbl (2).ITEM_ID := l_item_id;
l_line_tbl (2).item_description := 'Health Club Card 100249 Khalid Abdulrahman Nasser AL-Buraihi';
-- l_line_tbl (2).order_type_lookup_code:= 'QUANTITY' ;
-- l_line_tbl (2).purchase_basis:= 'GOODS';
--l_line_tbl (2).matching_basis:='QUANTITY';
l_line_tbl (2).destination_organization_id:=86;
l_line_tbl (2).vendor_id:=318146;
--l_line_tbl (2).encumbered_flag:='N';
--l_line_tbl (2).quantity_delivered:=0;
L_LINE_TBL (2). currency_code :='SAR';
L_LINE_TBL(2).quantity := 25;
L_LINE_TBL(2).unit_price := 10;
L_LINE_TBL(2).CATEGORY_ID := 143;
L_LINE_TBL(2).deliver_to_location_id := 451;
L_LINE_TBL(2).to_person_id:=397;
l_line_tbl(2).LINE_TYPE_ID := 1;
l_line_tbl(2).source_type_code := 'VENDOR';
--l_line_tbl(2).source_type := 'VENDOR';
l_line_tbl(2).destination_type_code := 'EXPENSE';
-- l_line_tbl(2).DESTINATION_CONTEXT:= 'EXPENSE';
l_line_tbl(2).ACTION_FLAG := 'NEW';
L_LINE_TBL(2).unit_meas_lookup_code := 'EA';
--
--
l_dist_tbl (2).requisition_number := l_req_no;
l_dist_tbl (2).coa_id:=1001;
l_dist_tbl (2).req_header_id :=l_req_hdr_id;
l_dist_tbl (2).req_line_num:= 2;
l_dist_tbl (2).distribution_num := 3;
--l_dist_tbl (2).requisition_dist_id := l_req_dist_id;
l_dist_tbl (2).org_id := 81;
l_dist_tbl (2).charge_account_id := 129916;
--L_dist_TBL (2). currency_code :='SAR';
L_dist_TBL(2).budget_account_id := 129916;
L_dist_TBL(2).accrual_account_id := 1091;
L_dist_TBL(2).variance_account_id := 129916;
l_dist_tbl(2).req_line_quantity := 25;
--l_dist_tbl(2).req_line_amount := 'VENDOR';
l_dist_tbl(2).CODE_COMBINATION_ID := 129916;
l_dist_tbl(2).ACTION_FLAG := 'NEW';
PO_REQUISITION_UPDATE_PUB.update_requisition ('F',
'Y',
l_ret_status,
l_msg_count,
l_msg_data,
'N',
l_req_hdr,
l_line_tbl,
l_dist_tbl);
DBMS_OUTPUT.put_line ('Return Status' || l_ret_status);
DBMS_OUTPUT.put_line ('Message Count' || l_msg_count);
DBMS_OUTPUT.put_line ('Msg Data' || l_msg_data);
IF l_ret_status = 'E' OR l_ret_status = 'U'
THEN
MESSAGE := MESSAGE || 'return status: ' || l_ret_status || ' msg: ';
IF (FND_MSG_PUB.Count_Msg > 0)
THEN
FOR i IN 1 .. FND_MSG_PUB.Count_Msg
LOOP
FND_MSG_PUB.Get (p_msg_index => i,
p_encoded => 'F',
p_data => out_message,
p_msg_index_OUT => l_msg_index_OUT);
MESSAGE := MESSAGE || ' ' || out_message;
END LOOP;
END IF;
END IF;
dbms_output.put_line(MESSAGE);
END;
Hi, for my data the quantity, unit and uom lookup code are null. I am getting the below error:
ReplyDeleteAfter header call statusS
After line update statusE
Return StatusE
Message Count1
Msg DataNumber of Requisition Lines in Error: 1 Some unit of measure conversions are not defined
Cause: Some unit
return status: E msg: Some unit of measure conversions are not defined
Cause: Some unit
PL/SQL procedure successfully complete
Kindly guide me in order to resolve this error. Thank you.