Page 4
Page 4
(
TRANSACTION_ID NUMBER,
OVER_ALL_STATUS_FLAG VARCHAR2(2),
VENDOR_STATUS_FLAG VARCHAR2(2 BYTE),
VENDOR_SITE_STATUS_FLAG VARCHAR2(2 BYTE),
VENDOR_CONTACT_STATUS_FLAG VARCHAR2(2),
ERROR_MESSAGE VARCHAR2(4000 BYTE),
VENDOR_NAME_LS VARCHAR2(240 BYTE),
SEGMENT1_LS VARCHAR2(30 BYTE),
VENDOR_SITE_CODE_LS VARCHAR2(15 BYTE),
VENDOR_SITE_COUNTRY VARCHAR2(40 BYTE),
VENDOR_SITE_ADDRESS_LINE1 VARCHAR2(40 BYTE),
VENDOR_SITE_CITY VARCHAR2(40 BYTE),
VENDOR_SITE_STATE VARCHAR2(40 BYTE),
VENDOR_TYPE_NAME_LS VARCHAR2(40 BYTE),
VENDOR_TYPE_LOOKUP_CODE VARCHAR2(30 BYTE),
PAYMENT_TERMS_LS VARCHAR2(50 BYTE),
TERMS_ID NUMBER,
PAY_GROUP_NAME_LS VARCHAR2(40 BYTE),
PAY_GROUP_LOOKUP_CODE VARCHAR2(25 BYTE),
INVOICE_CURRENCY_CODE_LS VARCHAR2(15 BYTE),
PAYMENT_CURRENCY_CODE_LS VARCHAR2(15 BYTE),
PAYMENT_METHOD_LOOKUP_NAME_LS VARCHAR2(40 BYTE),
PAYMENT_METHOD_LOOKUP_CODE VARCHAR2(25 BYTE),
SHIP_TO_ADDRESS_LINE_1_LS VARCHAR2(240 BYTE),
SHIP_TO_ADDRESS_LINE_2_LS VARCHAR2(240 BYTE),
SHIP_TO_ADDRESS_LINE_3_LS VARCHAR2(240 BYTE),
SHIP_TO_TOWN_OR_CITY_LS VARCHAR2(60 BYTE),
SHIP_TO_COUNTRY_LS VARCHAR2(30 BYTE),
SHIP_TO_POSTAL_CODE_LS VARCHAR2(60 BYTE),
SHIP_TO_LOCATION_ID NUMBER,
BILL_TO_ADDRESS_LINE_1_LS VARCHAR2(240 BYTE),
BILL_TO_ADDRESS_LINE_2_LS VARCHAR2(240 BYTE),
BILL_TO_ADDRESS_LINE_3_LS VARCHAR2(240 BYTE),
BILL_TO_TOWN_OR_CITY_LS VARCHAR2(60 BYTE),
BILL_TO_COUNTRY_LS VARCHAR2(30 BYTE),
BILL_TO_POSTAL_CODE_LS VARCHAR2(60 BYTE),
BILL_TO_LOCATION_ID NUMBER,
SHIP_VIA_LOOKUP_NAME_LS VARCHAR2(40 BYTE),
SHIP_VIA_LOOKUP_CODE VARCHAR2(25 BYTE),
FREIGHT_TERMS_LOOKUP_NAME_LS VARCHAR2(40 BYTE),
FREIGHT_TERMS_LOOKUP_CODE VARCHAR2(25 BYTE),
CONTACT_PERSON_NAME_LS VARCHAR2(240),
VENDOR_INTERFACE_ID NUMBER,
VENDOR_SITE_INTERFACE_ID NUMBER,
CREATION_DATE DATE,
CREATED_BY NUMBER,
LAST_UPDATE_DATE DATE,
LAST_UPDATED_BY NUMBER
);
insert into
XXXX_SUP_SITE_CONT_STG(vendor_name_ls,segment1_ls,VENDOR_SITE_CODE_LS,CONTACT_PERSO
N_NAME_LS)
values('xyzvenr4',2201234,'SIT423','SRIN11234')
insert into
XXXX_SUP_SITE_CONT_STG(vendor_name_ls,segment1_ls,VENDOR_SITE_CODE_LS,CONTACT_PERSO
N_NAME_LS)
values('abcvenr4',8801234,'SIT423','SRIN21234')
insert into
XXXX_SUP_SITE_CONT_STG(vendor_name_ls,segment1_ls,VENDOR_SITE_CODE_LS,CONTACT_PERSO
N_NAME_LS)
values('vvvend4',8511234,'SITE23','SRINA31234')
insert into
XXXX_SUP_SITE_CONT_STG(vendor_name_ls,segment1_ls,VENDOR_SITE_CODE_LS,CONTACT_PERSO
N_NAME_LS)
values('vvvr34',851234,'SIT4123','SRINIVA234')
COMMIT;
declare
v1 varchar2(90);
v2 number;
begin
XXXX_SUPP_SITE_CONT_PKG.map(v1,v2);
XXXX_supp_site_cont_pkg.validate(v1,v2);
end;
declare
v1 varchar2(90);
v2 number;
begin
XXXX_SUPP_SITE_CONT_PKG.CALL_ALLPROD(v1,v2);
end;
EXCEPTION
when NO_DATA_FOUND then
update XXXX_SUP_SITE_CONT_STG set
VENDOR_STATUS_FLAG='VE',error_message=error_message||',No freight code present'
where transaction_id=FREIGHT_REC.transaction_id;
when TOO_MANY_ROWS then
update XXXX_SUP_SITE_CONT_STG set
VENDOR_STATUS_FLAG='VE',error_message=error_message||', too many freight codes '
where transaction_id=FREIGHT_REC.transaction_id;
when OTHERS then
update XXXX_SUP_SITE_CONT_STG set
VENDOR_STATUS_FLAG='VE',error_message=error_message||'unexpected error at freight
code'
where transaction_id=FREIGHT_REC.transaction_id;
end;
end loop;
*/
UPDATE XXXX_sup_site_cont_stg
SET over_all_status_flag = 'V'
WHERE over_all_status_flag = 'N';
UPDATE XXXX_sup_site_cont_stg
SET vendor_status_flag = 'V'
WHERE vendor_status_flag = 'N';
UPDATE XXXX_sup_site_cont_stg
SET vendor_site_status_flag = 'V'
WHERE vendor_site_status_flag = 'N';
UPDATE XXXX_sup_site_cont_stg
SET vendor_contact_status_flag = 'V'
WHERE vendor_contact_status_flag = 'N';
/*************************** FREIGHT TERMS LOOKUP CODE VLIDATION ENDS HERE
******************/
COMMIT;
END VALIDATE;
PROCEDURE call_api(
errbuf OUT VARCHAR2,
retcode OUT NUMBER)
IS
x_return_status VARCHAR2 (90);
x_msg_count NUMBER;
x_msg_data VARCHAR2 (90);
p_vendor_rec ap_vendor_pub_pkg.r_vendor_rec_type;
x_vendor_id ap_suppliers.vendor_id%TYPE;
x_party_id hz_parties.party_id%TYPE;
p_vendor_site_rec ap_vendor_pub_pkg.r_vendor_site_rec_type;
x_vendor_site_id NUMBER;
x_party_site_id NUMBER;
x_location_id NUMBER;
p_vendor_contact_rec ap_vendor_pub_pkg.r_vendor_contact_rec_type;
x_vendor_contact_id NUMBER;
x_per_party_id NUMBER;
x_rel_party_id NUMBER;
x_rel_id NUMBER;
x_org_contact_id NUMBER;
x_msg_index_out NUMBER;
CURSOR sup_cur
IS
SELECT * FROM XXXX_sup_site_cont_stg WHERE vendor_status_flag = 'V';
CURSOR supp_site_cur (p_vendor_name_ls VARCHAR2)
IS
SELECT *
FROM XXXX_sup_site_cont_stg
WHERE vendor_name_ls = p_vendor_name_ls
AND vendor_site_status_flag = 'V';
CURSOR supp_cont_cur ( p_vendor_name_ls VARCHAR2, p_vendor_site_code_ls
VARCHAR2 )
IS
SELECT *
FROM XXXX_sup_site_cont_stg
WHERE vendor_name_ls = p_vendor_name_ls
AND vendor_site_code_ls = p_vendor_site_code_ls
AND vendor_contact_status_flag = 'V';
BEGIN
/******************* VENDOR LOOP STARTS FROM HERE
***************************************/
FOR sup_rec IN sup_cur
LOOP
BEGIN
p_vendor_rec.vendor_name := sup_rec.vendor_name_ls;
p_vendor_rec.segment1 := sup_rec.segment1_ls;
p_vendor_rec.vendor_type_lookup_code := UPPER
(sup_rec.vendor_type_lookup_code);
p_vendor_rec.terms_id := sup_rec.terms_id;
--
P_vendor_rec.PAY_GROUP_LOOKUP_CODE:=upper(SUP_REC.PAY_GROUP_LOOKUP_CODE);
p_vendor_rec.invoice_currency_code := UPPER
(sup_rec.invoice_currency_code_ls);
p_vendor_rec.payment_currency_code := UPPER
(sup_rec.payment_currency_code_ls);
-- P_vendor_rec.<NO PARAMETER>:=SUP_REC.PAYMENT_METHOD_LOOKUP_CODE;
-- show topper error (BUG.) but mandatory in MD 5O DOCUMENT
--
P_vendor_rec.SHIP_VIA_LOOKUP_CODE:=UPPER(SUP_REC.SHIP_VIA_LOOKUP_CODE);
--SITE LEVEL
--
P_vendor_rec.FREIGHT_TERMS_LOOKUP_CODE:=UPPER(SUP_REC.FREIGHT_TERMS_LOOKUP_CODE);
--SITE LEVEL
mo_global.set_policy_context ('S', 204);
ap_vendor_pub_pkg.create_vendor (p_api_version => 1.0, p_init_msg_list =>
fnd_api.g_true, p_commit => fnd_api.g_true, p_validation_level =>
fnd_api.g_valid_level_full, x_return_status => x_return_status, x_msg_count =>
x_msg_count, x_msg_data => x_msg_data, p_vendor_rec => p_vendor_rec, x_vendor_id =>
x_vendor_id, x_party_id => x_party_id );
fnd_file.put_line (fnd_file.output, ' vendor_NAME
' );
fnd_file.put_line (fnd_file.output, '
---------------- ' );
fnd_file.put_line (fnd_file.output, ' x_vendor_id : ' || x_vendor_id );
fnd_file.put_line (fnd_file.output, ' x_msg_count : ' || x_msg_count );
fnd_file.put_line (fnd_file.output, ' x_return_status :' ||
x_return_status );
fnd_file.put_line (fnd_file.output, ' x_msg_data : ' || x_msg_data );
/************************** vendor site loop starts form here
***************************/
FOR supp_site_rec IN supp_site_cur (sup_rec.vendor_name_ls)
LOOP
BEGIN
p_vendor_site_rec.vendor_id := x_vendor_id; --
p_vendor_site_rec.org_id := 204;
p_vendor_site_rec.vendor_site_code := supp_site_rec.vendor_site_code_ls;
p_vendor_site_rec.country := supp_site_rec.vendor_site_country;
p_vendor_site_rec.address_line1 :=
supp_site_rec.vendor_site_address_line1;
p_vendor_site_rec.city := supp_site_rec.vendor_site_city;
p_vendor_site_rec.state := supp_site_rec.vendor_site_state;
mo_global.set_policy_context ('S', 204);
ap_vendor_pub_pkg.create_vendor_site (p_api_version => 1.0,
p_init_msg_list => fnd_api.g_true, p_commit => fnd_api.g_true, p_validation_level
=> fnd_api.g_valid_level_full, x_return_status => x_return_status, x_msg_count =>
x_msg_count, x_msg_data => x_msg_data, p_vendor_site_rec => p_vendor_site_rec,
x_vendor_site_id => x_vendor_site_id, x_party_site_id => x_party_site_id,
x_location_id => x_location_id );
/*************** ERROR AT SITE LEVEL ***************/
fnd_msg_pub.initialize;
FOR i IN 1 .. x_msg_count
LOOP
BEGIN
fnd_msg_pub.get (p_msg_index => i, p_encoded => 'F', p_data =>
x_msg_data, p_msg_index_out => x_msg_index_out );
fnd_file.put_line (fnd_file.output, 'X_MSG_DATA : ' ||
x_msg_data );
END;
END LOOP;
fnd_file.put_line (fnd_file.output, '
vendor_site ' );
fnd_file.put_line (fnd_file.output, '
------------- ' );
fnd_file.put_line (fnd_file.output, ' x_msg_count : ' || x_msg_count
);
fnd_file.put_line (fnd_file.output, ' x_return_status :' ||
x_return_status );
fnd_file.put_line (fnd_file.output, ' x_msg_data : ' || x_msg_data
);
fnd_file.put_line (fnd_file.output, ' x_party_site_id : ' ||
x_party_site_id );
fnd_file.put_line (fnd_file.output, ' x_location_id : ' ||
x_location_id );
/************************** vendor site CONTACT loop starts form here
***************************/
FOR supp_cont_rec IN supp_cont_cur (sup_rec.vendor_name_ls,
sup_rec.vendor_site_code_ls )
LOOP
BEGIN
p_vendor_contact_rec.vendor_id := x_vendor_id; --
p_vendor_contact_rec.org_id := 204;
p_vendor_contact_rec.org_party_site_id := x_party_site_id;
p_vendor_contact_rec.person_last_name :=
supp_cont_rec.contact_person_name_ls;
mo_global.set_policy_context ('S', 204);
ap_vendor_pub_pkg.create_vendor_contact (p_api_version => 1.0,
p_init_msg_list => fnd_api.g_true, p_commit => fnd_api.g_true, p_validation_level
=> fnd_api.g_valid_level_full, x_return_status => x_return_status, x_msg_count =>
x_msg_count, x_msg_data => x_msg_data, p_vendor_contact_rec =>
p_vendor_contact_rec, x_vendor_contact_id => x_vendor_contact_id, x_per_party_id =>
x_per_party_id, x_rel_party_id => x_rel_party_id, x_rel_id => x_rel_id,
x_org_contact_id => x_org_contact_id, x_party_site_id => x_party_site_id );
fnd_file.put_line (fnd_file.output, ' vendor
CONTACTS.... ' );
fnd_file.put_line (fnd_file.output, '
----------***---------- ' );
fnd_file.put_line (fnd_file.output, ' x_msg_count : ' ||
x_msg_count );
fnd_file.put_line (fnd_file.output, ' x_return_status :' ||
x_return_status );
fnd_file.put_line (fnd_file.output, ' x_msg_data : ' ||
x_msg_data );
fnd_file.put_line (fnd_file.output, ' x_org_contact_id : ' ||
x_org_contact_id );
fnd_file.put_line (fnd_file.output, ' x_rel_party_id : ' ||
x_rel_party_id );
fnd_file.put_line (fnd_file.output, ' x_vendor_contact_id : ' ||
x_vendor_contact_id );
fnd_file.put_line (fnd_file.output, '');
fnd_file.put_line (fnd_file.output, '');
fnd_file.put_line (fnd_file.output, '');
END;
END LOOP;
/******************* VENDOR contacts loop ENDS FROM HERE
***************************************/
END;
END LOOP;
/************************** vendor site loop ends form here
***************************/
EXCEPTION
WHEN OTHERS THEN
UPDATE XXXX_sup_site_cont_stg
SET over_all_status_flag = 'LE',
error_message = error_message
|| 'Rejected By API..........'
WHERE transaction_id = sup_rec.transaction_id;
END;
END LOOP;
/******************* VENDOR LOOP STARTS FROM HERE
***************************************/
END call_api;
PROCEDURE error_report(
errbuf OUT VARCHAR2,
retcode OUT NUMBER)
IS
v_count NUMBER;
v_valied NUMBER;
v_failed NUMBER;
v_duplicate NUMBER;
CURSOR err_cur
IS
SELECT * FROM XXXX_sup_site_cont_stg WHERE error_message IS NOT NULL;
BEGIN
fnd_file.put_line (fnd_file.output, ' XXXX SUPPLIER
REPORT' );
fnd_file.put_line (fnd_file.output, '
------------------------' );
fnd_file.put_line (fnd_file.output, '');
fnd_file.put_line (fnd_file.output, RPAD ('Supplier No', 25, ' ') || RPAD
('Supplier Name', 30, ' ') || RPAD ('Supplier Site', 20, ' ') || RPAD ('Supplier
Contact', 40, ' ') || RPAD ('Error', 450, ' ') );
fnd_file.put_line (fnd_file.output, RPAD ('-----------', 25, ' ') || RPAD
('--------------', 30, ' ') || RPAD ('----------------', 20, ' ') || RPAD
('---------------------', 40, ' ') || RPAD ('------', 40, ' ') );
FOR err_rec IN err_cur
LOOP
BEGIN
fnd_file.put_line (fnd_file.output, RPAD (err_rec.segment1_ls, 25, ' ') ||
RPAD (err_rec.vendor_name_ls, 30, ' ') || RPAD (err_rec.vendor_site_code_ls, 20, '
') || RPAD (err_rec.contact_person_name_ls, 40, ' ' ) || RPAD
(err_rec.error_message, 450, ' ') );
END;
END LOOP;
fnd_file.put_line (fnd_file.output, '
----------' );
fnd_file.put_line (fnd_file.output, '
END OF DATA' );
fnd_file.put_line (fnd_file.output, '
----------' );
fnd_file.put_line (fnd_file.output, '');
fnd_file.put_line (fnd_file.output, '');
fnd_file.put_line (fnd_file.output, '');
fnd_file.put_line (fnd_file.output, ' -------');
fnd_file.put_line (fnd_file.output, ' SUMMARY');
fnd_file.put_line (fnd_file.output, ' -------');
SELECT COUNT (*) INTO v_count FROM XXXX_sup_site_cont_stg;
fnd_file.put_line (fnd_file.output, ' Total Number of Records
: ' || v_count );
SELECT COUNT (*)
INTO v_failed
FROM XXXX_sup_site_cont_stg
WHERE error_message IS NOT NULL;
fnd_file.put_line (fnd_file.output, ' Total Number of invalid
Records : ' || v_failed );
SELECT COUNT (*)
INTO v_duplicate
FROM XXXX_sup_site_cont_stg
WHERE vendor_status_flag = 'X'
AND error_message IS NOT NULL;
fnd_file.put_line (fnd_file.output, ' Total Number of duplicate
Records : ' || v_duplicate );
END error_report;
PROCEDURE call_allprod(
errbuf OUT VARCHAR2,
retcode OUT NUMBER)
IS
v1 VARCHAR2 (240);
v2 NUMBER;
BEGIN
XXXX_supp_site_cont_pkg.MAP (v1, v2);
XXXX_supp_site_cont_pkg.VALIDATE (v1, v2);
XXXX_supp_site_cont_pkg.call_api (v1, v2);
XXXX_supp_site_cont_pkg.error_report (v1, v2);
END call_allprod;
END XXXX_supp_site_cont_pkg;
/