20
2016
Kaynak Ataması Toplu Oluşturma Script
Merhaba,
Kaynak ataması kurulumu yapıldıktan sonra veya farklı bir organizasyon için kurulum yapıldıktan sonra örtülü anlaşmaların tek tek onaylanmasını beklememek adına toplu olarak tüm onaylı ve geçerli anlaşmaların kaynak atamalarını oluşturmak için aşağıdaki eşzamanlıyı her anlaşma için çalıştırmak gerekli. Program kısa sürdüğünden çok sayıda anlaşmayı yapmak kolay olmaktadır.
Kolay gelsin,
CREATE OR REPLACE PROCEDURE XX_CREATE_SOURCINGRULE_ALL_P (
errbuf OUT VARCHAR2,
retcode OUT NUMBER
)
IS
L_CONC_REQ_ID NUMBER;
L_ANLASMA_NO VARCHAR2 (50);
L_VENDOR_SITE_ID NUMBER;
L_PO_HEADER_ID NUMBER;
LB_PRINT_FLAG BOOLEAN;
l_finished BOOLEAN;
— l_finished boolean;
l_phase varchar2 (100);
l_status varchar2 (100);
l_dev_phase varchar2 (100);
l_dev_status varchar2 (100);
l_message varchar2 (100);
CURSOR CSR_VENDOR_SITE
IS
SELECT POH.VENDOR_ID, POH.VENDOR_SITE_ID, PO_HEADER_ID
FROM PO_HEADERS_ALL POH, PO_LOOKUP_CODES PLC
WHERE 1 = 1 –POH.VENDOR_ID=:$FLEX$.PO_ASL_VENDOR
AND NVL (POH.CLOSED_CODE, ‘OPEN’) NOT IN
(‘CLOSED’, ‘FINALLY CLOSED’)
AND POH.AUTHORIZATION_STATUS = ‘APPROVED’
AND POH.TYPE_LOOKUP_CODE = ‘BLANKET’
AND POH.ORG_ID = 1003
AND (POH.ORG_ID IN (SELECT ORG_ID FROM PO_SYSTEM_PARAMETERS)
OR (POH.GLOBAL_AGREEMENT_FLAG = ‘Y’
AND EXISTS
(SELECT PGOA.PURCHASING_ORG_ID
FROM PO_GA_ORG_ASSIGNMENTS PGOA
WHERE PGOA.PO_HEADER_ID = POH.PO_HEADER_ID
AND PGOA.PURCHASING_ORG_ID IN
(SELECT ORG_ID
FROM PO_SYSTEM_PARAMETERS))))
AND PLC.LOOKUP_TYPE = ‘YES/NO’
— AND poh.vendor_id = 12199
AND PLC.LOOKUP_CODE = NVL (POH.GLOBAL_AGREEMENT_FLAG, ‘N’);
BEGIN
FOR SEL IN CSR_VENDOR_SITE
LOOP
BEGIN
MO_GLOBAL.INIT (‘PO’);
MO_GLOBAL.SET_POLICY_CONTEXT (‘S’, 1003);
END;
BEGIN
FND_GLOBAL.APPS_INITIALIZE (10351, 51112, 201);
FND_GLOBAL.SET_NLS_CONTEXT (P_NLS_LANGUAGE => ‘AMERICAN’);
END;
BEGIN
FND_REQUEST.SET_ORG_ID (1003);
END;
COMMIT;
L_CONC_REQ_ID :=
APPS.FND_REQUEST.SUBMIT_REQUEST (APPLICATION => ‘PO’,
PROGRAM => ‘POASLGEN’,
DESCRIPTION => NULL,
ARGUMENT1 => SEL.VENDOR_ID,
ARGUMENT2 => SEL.PO_HEADER_ID,
ARGUMENT3 => NULL,
ARGUMENT4 => NULL,
ARGUMENT5 => SEL.VENDOR_SITE_ID,
ARGUMENT6 => ‘ALL’,
ARGUMENT7 => 468239,–kural küme id si
ARGUMENT8 => ‘ITEM’,
ARGUMENT9 => NULL,
ARGUMENT10 => NULL,
ARGUMENT11 => NULL,
ARGUMENT12 => ‘MANUAL’);
COMMIT;
BEGIN
IF L_CONC_REQ_ID > 0
THEN
l_finished :=
fnd_concurrent.wait_for_request (request_id => L_CONC_REQ_ID,
interval => 5,
max_wait => 0,
phase => l_phase,
status => l_status,
dev_phase => l_dev_phase,
dev_status => l_dev_status,
MESSAGE => l_message);
COMMIT;
IF UPPER (l_dev_status) IN (‘NORMAL’)
AND UPPER (l_dev_phase) IN (‘COMPLETE’)
THEN
insert into xxah_run_requests VALUES (L_CONC_REQ_ID,SEL.VENDOR_ID,sel.po_header_id,sel.vendor_site_id);
commit;
CONTINUE;
ELSIF UPPER (l_dev_status) IN (‘WARNING’, ‘ERROR’) AND UPPER(l_dev_phase) IN (‘COMPLETE’)
THEN
EXIT;
END IF;
END IF;
END;
END LOOP;
END;
Erkan Erkişi
Endüstri Mühendisliği mezunu. Üniversite eğitimi boyunca çeşitli işlerle
meşgul oldu. Son senesinde Oracle ile tanıştı ve 3 sene Oracle uygulamaları teknik ve fonsiyonel danışmanlık yaptı.
Latest posts by Erkan Erkişi (see all)
- Git Komutları - 16 Kasım 2017
- FA Defterlerinin Kategorilere Atanması İşlemi Apisi - 21 Mayıs 2017
- Start WF Components Script - 26 Nisan 2016