declare
l_business_group_id number;
l_job_group_id number;
l_job_id number;
l_object_version_number number;
l_job_definition_id number;
l_job_name varchar2(200);
v_error varchar2(500);
v_name varchar2(100);
begin
-- get group id and business group id
begin
select business_group_id,
job_group_id
into l_business_group_id,
l_job_group_id
from per_job_groups
where displayed_name = 'sample'; -- is used for all business group will be changed
exception
when others then
dbms_output.put_line('Unable to get the job group details.Error:'||sqlerrm);
raise;
end;
for i in (
select
name,
date_from,
vacation_days,
hr.job_id_nav
from
xxx_sample hr where hr.job_id=0
)
loop
v_name:=i.name;
HR_JOB_API.CREATE_JOB
(p_validate => FALSE
,p_business_group_id => l_business_group_id
,p_date_from => to_date('01/01/2006','dd/mm/yyyy')
,p_comments => 'test purpose'
,p_date_to => NULL
,p_job_group_id => l_job_group_id
,p_concat_segments => i.name
--output
,p_job_id => l_job_id
,p_object_version_number => l_object_version_number
,p_job_definition_id => l_job_definition_id
,p_name => l_job_name
,p_attribute11 => i.vacation_days-- annual vacation days
);
DBMS_OUTPUT.PUT_LINE('job id: '||l_job_id);
DBMS_OUTPUT.PUT_LINE('object_version_number: '||l_object_version_number);
DBMS_OUTPUT.PUT_LINE('job_definition_id: '||l_job_definition_id);
DBMS_OUTPUT.PUT_LINE('job_name: '||l_job_name);
end loop;
commit;
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line('unable to create a job.error:'||SQLERRM);
rollback;
RAISE;
END;
Monday, October 30, 2017
Tuesday, October 17, 2017
How to update Vendor Taxpayer ID (NUM_1099) with API
DECLARE
lc_return_status VARCHAR2(2000);
ln_msg_count NUMBER;
ll_msg_data LONG;
Ln_Vendor_Id NUMBER;
Ln_Vendor_site_Id NUMBER;
ln_message_int NUMBER;
Ln_Party_Id NUMBER;
lrec_vendor_rec ap_vendor_pub_pkg.r_vendor_rec_type;
cursor c_vendors is
select s.taxpayer_id, s.vendor_id_ora from temporary_suppliers s where s.taxpayer_id is not null and segment1='0'
and s.acc_end_date is null;
BEGIN
for i in c_vendors
loop
Ln_Vendor_Id := i.vendor_id_ora;
Lrec_Vendor_Rec.JGZZ_FISCAL_CODE := i.taxpayer_id;
ap_vendor_pub_pkg.update_vendor_public( p_api_version => 1,--
x_return_status => lc_return_status, --
x_msg_count => ln_msg_count, --
x_msg_data => ll_msg_data, --
p_vendor_rec => Lrec_Vendor_Rec, --
p_Vendor_Id => Ln_Vendor_Id);
IF (lc_return_status <> 'S') THEN
IF ln_msg_count >= 1 THEN
FOR v_index IN 1..ln_msg_count
LOOP
fnd_msg_pub.get (p_msg_index => v_index, p_encoded => 'F', p_data => ll_msg_data, p_msg_index_out => ln_message_int );
Ll_Msg_Data := 'UPDATE_VENDOR '||SUBSTR(Ll_Msg_Data,1,3900);
dbms_output.put_line('Ll_Msg_Data - '||Ll_Msg_Data );
END LOOP;
End If;
END IF;
end loop;
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line('SQLERRM - '||SQLERRM );
END;
lc_return_status VARCHAR2(2000);
ln_msg_count NUMBER;
ll_msg_data LONG;
Ln_Vendor_Id NUMBER;
Ln_Vendor_site_Id NUMBER;
ln_message_int NUMBER;
Ln_Party_Id NUMBER;
lrec_vendor_rec ap_vendor_pub_pkg.r_vendor_rec_type;
cursor c_vendors is
select s.taxpayer_id, s.vendor_id_ora from temporary_suppliers s where s.taxpayer_id is not null and segment1='0'
and s.acc_end_date is null;
BEGIN
for i in c_vendors
loop
Ln_Vendor_Id := i.vendor_id_ora;
Lrec_Vendor_Rec.JGZZ_FISCAL_CODE := i.taxpayer_id;
ap_vendor_pub_pkg.update_vendor_public( p_api_version => 1,--
x_return_status => lc_return_status, --
x_msg_count => ln_msg_count, --
x_msg_data => ll_msg_data, --
p_vendor_rec => Lrec_Vendor_Rec, --
p_Vendor_Id => Ln_Vendor_Id);
IF (lc_return_status <> 'S') THEN
IF ln_msg_count >= 1 THEN
FOR v_index IN 1..ln_msg_count
LOOP
fnd_msg_pub.get (p_msg_index => v_index, p_encoded => 'F', p_data => ll_msg_data, p_msg_index_out => ln_message_int );
Ll_Msg_Data := 'UPDATE_VENDOR '||SUBSTR(Ll_Msg_Data,1,3900);
dbms_output.put_line('Ll_Msg_Data - '||Ll_Msg_Data );
END LOOP;
End If;
END IF;
end loop;
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line('SQLERRM - '||SQLERRM );
END;
API to update Customer Category
DECLARE
L_ORGANIZATION_REC hz_party_v2pub.organization_rec_type;
x_profile_id NUMBER;
l_vendor_id NUMBER;
l_party_id NUMBER;
l_object_version_number NUMBER;
l_msg_count NUMBER;
l_msg_data VARCHAR2(4000);
l_return_status VARCHAR2(10);
begin
for i in ( select s.party_id, s.vendor_id, 'TEST' category_code from ap_suppliers s, hz_parties hp
where s.party_id=hp.party_id
and hp.category_code is null )
loop
SELECT aps.PARTY_ID, hzp.object_version_number
into l_party_id, l_object_version_number
FROM AP_SUPPLIERS aps, HZ_PARTIES hzp
WHERE
vendor_id =i.vendor_id
AND aps.party_id = hzp.party_id;
l_organization_rec.party_rec.party_id := l_party_id;
l_organization_rec.party_rec.category_code:=i.category_code;
HZ_PARTY_V2PUB.update_organization (
p_init_msg_list => fnd_api.g_true,
p_organization_rec => l_organization_rec,
p_party_object_version_number => l_object_version_number,
x_profile_id => x_profile_id,
x_return_status => l_return_status,
x_msg_count => l_msg_count,
x_msg_data => l_msg_data);
dbms_output.put_line(l_return_status);
dbms_output.put_line(l_party_id ||i.category_code );
FOR I IN 1..l_msg_count
LOOP
l_msg_data := l_msg_data||SUBSTR(FND_MSG_PUB.GET(p_encoded=>'T'),1,255);
dbms_output.put_line(l_msg_data);
END LOOP ;
end loop;
exception
when others then
raise;
end;
L_ORGANIZATION_REC hz_party_v2pub.organization_rec_type;
x_profile_id NUMBER;
l_vendor_id NUMBER;
l_party_id NUMBER;
l_object_version_number NUMBER;
l_msg_count NUMBER;
l_msg_data VARCHAR2(4000);
l_return_status VARCHAR2(10);
begin
for i in ( select s.party_id, s.vendor_id, 'TEST' category_code from ap_suppliers s, hz_parties hp
where s.party_id=hp.party_id
and hp.category_code is null )
loop
SELECT aps.PARTY_ID, hzp.object_version_number
into l_party_id, l_object_version_number
FROM AP_SUPPLIERS aps, HZ_PARTIES hzp
WHERE
vendor_id =i.vendor_id
AND aps.party_id = hzp.party_id;
l_organization_rec.party_rec.party_id := l_party_id;
l_organization_rec.party_rec.category_code:=i.category_code;
HZ_PARTY_V2PUB.update_organization (
p_init_msg_list => fnd_api.g_true,
p_organization_rec => l_organization_rec,
p_party_object_version_number => l_object_version_number,
x_profile_id => x_profile_id,
x_return_status => l_return_status,
x_msg_count => l_msg_count,
x_msg_data => l_msg_data);
dbms_output.put_line(l_return_status);
dbms_output.put_line(l_party_id ||i.category_code );
FOR I IN 1..l_msg_count
LOOP
l_msg_data := l_msg_data||SUBSTR(FND_MSG_PUB.GET(p_encoded=>'T'),1,255);
dbms_output.put_line(l_msg_data);
END LOOP ;
end loop;
exception
when others then
raise;
end;
Wednesday, October 4, 2017
API to create relationship between Vendors
CREATE or replace PROCEDURE P_relationships(p_party_id IN NUMBER,
p_vendor_site_id IN NUMBER,
p_rem_party_id IN number,
p_rem_site_id IN number,
p_rem_vendor_site in number)
IS
l_rem_vend_site_id NUMBER;
l_rem_party_id NUMBER;
v_count number;
BEGIN
select count(*) into v_count from iby_ext_payee_relationships pr where pr.party_id=p_party_id
and pr.supplier_site_id=p_vendor_site_id;
if v_count=0 then
SELECT B.vendor_site_id,
A.party_id
INTO l_rem_vend_site_id, l_rem_party_id
FROM ap_suppliers A,
ap_supplier_sites_all B
WHERE A.vendor_id = B.vendor_id
and a.party_id =p_rem_party_id
and b.party_site_id= p_rem_site_id
and b.vendor_site_id=p_rem_vendor_site;
-- AND A.vendor_name = p_rem_supplier_name
-- AND B.vendor_site_code = p_rem_supplier_site_name;
INSERT INTO iby_ext_payee_relationships
(relationship_id,
party_id,
supplier_site_id,
remit_party_id,
remit_supplier_site_id,
from_date,
primary_flag,
active,
created_by,
creation_date,
last_updated_by,
last_update_date,
last_update_login,
object_version_number)
VALUES (iby_ext_payee_relship_seq.NEXTVAL,
p_party_id,
p_vendor_site_id,
l_rem_party_id,
l_rem_vend_site_id,
to_date('28/09/2017','dd/mm/yyyy'),
'Y',
'Y',
fnd_global.user_id,
SYSDATE,
fnd_global.user_id,
SYSDATE,
fnd_global.user_id,
1 );
COMMIT;
dbms_output.put_line('inserted');
end if;
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line('exception1');
END P_relationships;
--Run following :
declare
l_rem_party_id number;
l_rem_site_id number;
l_rem_vend_site_id number;
begin
select
A.party_id,
b.party_site_id,
B.vendor_site_id
INTO l_rem_party_id, l_rem_site_id, l_rem_vend_site_id
FROM ap_suppliers A,
ap_supplier_sites_all B
WHERE A.vendor_id = B.vendor_id
and a.segment1='vendor_number'
and b.vendor_site_code='site_code';
for i in ( SELECT distinct
A.party_id,
B.vendor_site_id
FROM ap_suppliers A,
ap_supplier_sites_all B
WHERE A.vendor_id = B.vendor_id
and b.inactive_date is null)
loop
P_relationships(i.party_id, i.vendor_site_id, l_rem_party_id, l_rem_site_id,l_rem_vend_site_id);
end loop;
end;
p_vendor_site_id IN NUMBER,
p_rem_party_id IN number,
p_rem_site_id IN number,
p_rem_vendor_site in number)
IS
l_rem_vend_site_id NUMBER;
l_rem_party_id NUMBER;
v_count number;
BEGIN
select count(*) into v_count from iby_ext_payee_relationships pr where pr.party_id=p_party_id
and pr.supplier_site_id=p_vendor_site_id;
if v_count=0 then
SELECT B.vendor_site_id,
A.party_id
INTO l_rem_vend_site_id, l_rem_party_id
FROM ap_suppliers A,
ap_supplier_sites_all B
WHERE A.vendor_id = B.vendor_id
and a.party_id =p_rem_party_id
and b.party_site_id= p_rem_site_id
and b.vendor_site_id=p_rem_vendor_site;
-- AND A.vendor_name = p_rem_supplier_name
-- AND B.vendor_site_code = p_rem_supplier_site_name;
INSERT INTO iby_ext_payee_relationships
(relationship_id,
party_id,
supplier_site_id,
remit_party_id,
remit_supplier_site_id,
from_date,
primary_flag,
active,
created_by,
creation_date,
last_updated_by,
last_update_date,
last_update_login,
object_version_number)
VALUES (iby_ext_payee_relship_seq.NEXTVAL,
p_party_id,
p_vendor_site_id,
l_rem_party_id,
l_rem_vend_site_id,
to_date('28/09/2017','dd/mm/yyyy'),
'Y',
'Y',
fnd_global.user_id,
SYSDATE,
fnd_global.user_id,
SYSDATE,
fnd_global.user_id,
1 );
COMMIT;
dbms_output.put_line('inserted');
end if;
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line('exception1');
END P_relationships;
--Run following :
declare
l_rem_party_id number;
l_rem_site_id number;
l_rem_vend_site_id number;
begin
select
A.party_id,
b.party_site_id,
B.vendor_site_id
INTO l_rem_party_id, l_rem_site_id, l_rem_vend_site_id
FROM ap_suppliers A,
ap_supplier_sites_all B
WHERE A.vendor_id = B.vendor_id
and a.segment1='vendor_number'
and b.vendor_site_code='site_code';
for i in ( SELECT distinct
A.party_id,
B.vendor_site_id
FROM ap_suppliers A,
ap_supplier_sites_all B
WHERE A.vendor_id = B.vendor_id
and b.inactive_date is null)
loop
P_relationships(i.party_id, i.vendor_site_id, l_rem_party_id, l_rem_site_id,l_rem_vend_site_id);
end loop;
end;
API to delete Assets
declare
l_asset_hdr_rec FA_API_TYPES.asset_hdr_rec_type;
l_return_status VARCHAR2(1);
l_mesg_count number := 0;
l_mesg_len number;
l_mesg varchar2(4000);
begin
dbms_output.enable(1000000);
FA_SRVR_MSG.Init_Server_Message;
for i in (select distinct book_type_code, asset_id from fa_books fb where fb.book_type_code='BOOK_NAME'
)
loop
-- asset header info
l_asset_hdr_rec.asset_id := i.asset_id;
l_asset_hdr_rec.book_type_code := i.book_type_code;
FA_DELETION_PUB.do_delete
(p_api_version => 1.0,
p_init_msg_list => FND_API.G_FALSE,
p_commit => FND_API.G_FALSE,
p_validation_level => FND_API.G_VALID_LEVEL_FULL,
x_return_status => l_return_status,
x_msg_count => l_mesg_count,
x_msg_data => l_mesg,
p_calling_fn => null,
px_asset_hdr_rec => l_asset_hdr_rec
);
l_mesg_count := fnd_msg_pub.count_msg;
if l_mesg_count > 0 then
l_mesg := chr(10) || substr(fnd_msg_pub.get
(fnd_msg_pub.G_FIRST, fnd_api.G_FALSE),
1, 250);
dbms_output.put_line(l_mesg);
for i in 1..(l_mesg_count - 1) loop
l_mesg :=
substr(fnd_msg_pub.get
(fnd_msg_pub.G_NEXT,
fnd_api.G_FALSE), 1, 250);
dbms_output.put_line(l_mesg);
end loop;
fnd_msg_pub.delete_msg();
end if;
if (l_return_status <> FND_API.G_RET_STS_SUCCESS) then
dbms_output.put_line('FAILURE');
else
dbms_output.put_line('SUCCESS');
/* dbms_output.put_line('ASSET_ID' || to_char(l_asset_hdr_rec.asset_id));
dbms_output.put_line('BOOK: ' || l_asset_hdr_rec.book_type_code);*/
end if;
end loop;
end;
l_asset_hdr_rec FA_API_TYPES.asset_hdr_rec_type;
l_return_status VARCHAR2(1);
l_mesg_count number := 0;
l_mesg_len number;
l_mesg varchar2(4000);
begin
dbms_output.enable(1000000);
FA_SRVR_MSG.Init_Server_Message;
for i in (select distinct book_type_code, asset_id from fa_books fb where fb.book_type_code='BOOK_NAME'
)
loop
-- asset header info
l_asset_hdr_rec.asset_id := i.asset_id;
l_asset_hdr_rec.book_type_code := i.book_type_code;
FA_DELETION_PUB.do_delete
(p_api_version => 1.0,
p_init_msg_list => FND_API.G_FALSE,
p_commit => FND_API.G_FALSE,
p_validation_level => FND_API.G_VALID_LEVEL_FULL,
x_return_status => l_return_status,
x_msg_count => l_mesg_count,
x_msg_data => l_mesg,
p_calling_fn => null,
px_asset_hdr_rec => l_asset_hdr_rec
);
l_mesg_count := fnd_msg_pub.count_msg;
if l_mesg_count > 0 then
l_mesg := chr(10) || substr(fnd_msg_pub.get
(fnd_msg_pub.G_FIRST, fnd_api.G_FALSE),
1, 250);
dbms_output.put_line(l_mesg);
for i in 1..(l_mesg_count - 1) loop
l_mesg :=
substr(fnd_msg_pub.get
(fnd_msg_pub.G_NEXT,
fnd_api.G_FALSE), 1, 250);
dbms_output.put_line(l_mesg);
end loop;
fnd_msg_pub.delete_msg();
end if;
if (l_return_status <> FND_API.G_RET_STS_SUCCESS) then
dbms_output.put_line('FAILURE');
else
dbms_output.put_line('SUCCESS');
/* dbms_output.put_line('ASSET_ID' || to_char(l_asset_hdr_rec.asset_id));
dbms_output.put_line('BOOK: ' || l_asset_hdr_rec.book_type_code);*/
end if;
end loop;
end;