You are on page 1of 4

PROCEDURE Lunch_Survey_BIO_WF (P_WO_USER VARCHAR2,

P_WR_USER VARCHAR2,
P_WIP_NAME VARCHAR2,
P_WO_DESC VARCHAR2,
P_WIP_ENTITY_ID NUMBER,
P_ORG_ID NUMBER,
P_ATTACHMENT VARCHAR2)
IS
V_SEQ NUMBER DEFAULT 0;
count_v NUMBER;
BEGIN
/*
select nvl(count(*),0) into count_v from fnd_user
where user_name = P_USER;

if count_v > 0 then

*/
/*
CREATE SEQUENCE KAMC.KAMC_WO_BIO_WF_S
START WITH 0
MAXVALUE 9999999999999999999999999999
MINVALUE 0
NOCYCLE
NOCACHE
NOORDER;
*/

SELECT kamc.KAMC_WO_BIO_WF_S.NEXTVAL INTO V_SEQ FROM DUAL;

wf_engine.CreateProcess (itemtype => 'KMEAMSRB',


itemkey => 'WO_BIO-' || V_SEQ,
process => 'KAMC_SUR_PRC');
wf_engine.SetItemAttrText (itemtype => 'KMEAMSRB',
itemkey => 'WO_BIO-' || V_SEQ,
aname => 'RECEIVER',
avalue => P_WR_USER);
wf_engine.SetItemAttrText (itemtype => 'KMEAMSRB',
itemkey => 'WO_BIO-' || V_SEQ,
aname => 'SENDER',
avalue => P_WO_USER);

wf_engine.SetItemAttrText (itemtype => 'KMEAMSRB',


itemkey => 'WO_BIO-' || V_SEQ,
aname => 'WO_NUM',
avalue => P_WIP_NAME);

wf_engine.SetItemAttrText (itemtype => 'KMEAMSRB',


itemkey => 'WO_BIO-' || V_SEQ,
aname => 'WO_DESC',
avalue => P_WO_DESC);
wf_engine.SetItemAttrNumber (itemtype => 'KMEAMSRB',
itemkey => 'WO_BIO-' || V_SEQ,
aname => 'ORG_ID',
avalue => P_ORG_ID);
wf_engine.SetItemAttrNumber (itemtype => 'KMEAMSRB',
itemkey => 'WO_BIO-' || V_SEQ,
aname => 'WIP_ENTITY_ID',
avalue => P_WIP_ENTITY_ID);

wf_engine.SetItemAttrText (itemtype => 'KMEAMSRB',


itemkey => 'WO_BIO-' || V_SEQ,
aname => 'P_ATTCHMENT',
avalue => P_ATTACHMENT);
--=========-====-=====-=======-==========

wf_engine.StartProcess (itemtype => 'KMEAMSRB',


itemkey => 'WO_BIO-' || V_SEQ);
END Lunch_Survey_BIO_WF;

PROCEDURE UPDATE_N_WO_BIO_DFF (itemtype IN VARCHAR2,


itemkey IN VARCHAR2,
actid IN NUMBER,
funcmode IN VARCHAR2,
result OUT NOCOPY VARCHAR2)
IS
l_WR_NUM VARCHAR2 (100);
l_WO_ID NUMBER; --l_WIP_ENTITY_ID
l_COMMENT VARCHAR2 (300);
l_WO_USER VARCHAR2 (100);
l_WR_USER VARCHAR2 (100);
l_WR_DESC VARCHAR2 (300);
l_WIP_NAME VARCHAR2 (100);
l_WO_DESC VARCHAR2 (300);
l_ORG_ID NUMBER;
V_SEQ NUMBER;

CURSOR WO_USERS (
C_WIP_ENTITY_ID NUMBER)
IS
SELECT DISTINCT B.USER_NAME WO_APPROVER
FROM WIP_OPERATION_RESOURCES_V a,
bom_resource_employees bb,
applsys.FND_USER b
WHERE a.ORGANIZATION_ID = 111
AND bb.RESOURCE_ID = a.RESOURCE_ID
AND bb.PERSON_ID = b.EMPLOYEE_ID
AND b.END_DATE IS NULL
AND a.wip_entity_id = C_WIP_ENTITY_ID;
BEGIN
-- select employee information

l_WR_NUM :=
wf_engine.GetItemAttrText (itemtype => itemtype,
itemkey => itemkey,
aname => 'WR_NUM');
l_WO_ID :=
wf_engine.GetItemAttrNUMBER (itemtype => itemtype,
itemkey => itemkey,
aname => 'WIP_ENTITY_ID');
l_COMMENT :=
wf_engine.GetItemAttrText (itemtype => itemtype,
itemkey => itemkey,
aname => 'COMMENT');

l_WO_USER :=
wf_engine.GetItemAttrText (itemtype => itemtype,
itemkey => itemkey,
aname => 'SENDER');
l_WR_USER :=
wf_engine.GetItemAttrText (itemtype => itemtype,
itemkey => itemkey,
aname => 'RECEIVER');
l_WR_DESC :=
wf_engine.GetItemAttrText (itemtype => itemtype,
itemkey => itemkey,
aname => 'WR_DESC');
l_WIP_NAME :=
wf_engine.GetItemAttrText (itemtype => itemtype,
itemkey => itemkey,
aname => 'WO_NUM');
l_WO_DESC :=
wf_engine.GetItemAttrText (itemtype => itemtype,
itemkey => itemkey,
aname => 'WO_DESC');
l_ORG_ID :=
wf_engine.GetItemAttrNUMBER (itemtype => itemtype,
itemkey => itemkey,
aname => 'ORG_ID');

IF l_WO_ID > 0
THEN
UPDATE wip_discrete_jobs a
SET a.ATTRIBUTE1 = 'No', a.ATTRIBUTE2 = l_COMMENT
WHERE a.WIP_ENTITY_ID = l_WO_ID;

KAMC_EAM_DATA_UPLOAD.Uncomplete_work_order (l_WO_ID,
SYSDATE,
SYSDATE);
result := 'COMPLETE:SUCCESS';

--SELECT kamc.KAMC_WO_BIO_WF_S.NEXTVAL INTO V_SEQ FROM DUAL;

FOR j IN WO_USERS (l_WO_ID)


LOOP
SELECT kamc.KAMC_WO_BIO_WF_S.NEXTVAL INTO V_SEQ FROM DUAL;

wf_engine.CreateProcess (itemtype => 'KMEAMSRB',


itemkey => 'WO_BIO_' || V_SEQ,
process => 'KAMC_WO_APPROVALS');

wf_engine.SetItemAttrText (itemtype => 'KMEAMSRB',


itemkey => 'WO_BIO_' || V_SEQ,
aname => 'SENDER',
avalue => l_WO_USER);

wf_engine.SetItemAttrText (itemtype => 'KMEAMSRB',


itemkey => 'WO_BIO_' || V_SEQ,
aname => 'RECEIVER',
avalue => l_WR_USER);
wf_engine.SetItemAttrText (itemtype => 'KMEAMSRB',
itemkey => 'WO_BIO_' || V_SEQ,
aname => 'WR_NUM',
avalue => l_WR_NUM);
wf_engine.SetItemAttrText (itemtype => 'KMEAMSRB',
itemkey => 'WO_BIO_' || V_SEQ,
aname => 'WO_APPROVER',
avalue => j.WO_APPROVER);
wf_engine.SetItemAttrText (itemtype => 'KMEAMSRB',
itemkey => 'WO_BIO_' || V_SEQ,
aname => 'WR_DESC',
avalue => l_WR_DESC);

wf_engine.SetItemAttrText (itemtype => 'KMEAMSRB',


itemkey => 'WO_BIO_' || V_SEQ,
aname => 'WO_NUM',
avalue => l_WIP_NAME);

wf_engine.SetItemAttrText (itemtype => 'KMEAMSRB',


itemkey => 'WO_BIO_' || V_SEQ,
aname => 'WO_DESC',
avalue => l_WO_DESC);
wf_engine.SetItemAttrNumber (itemtype => 'KMEAMSRB',
itemkey => 'WO_BIO_' || V_SEQ,
aname => 'ORG_ID',
avalue => l_ORG_ID);
wf_engine.SetItemAttrNumber (itemtype => 'KMEAMSRB',
itemkey => 'WO_BIO_' || V_SEQ,
aname => 'WIP_ENTITY_ID',
avalue => l_WO_ID);
wf_engine.SetItemAttrText (itemtype => 'KMEAMSRB',
itemkey => 'WO_BIO_' || V_SEQ,
aname => 'COMMENT',
avalue => l_COMMENT);

--=========-====-=====-=======-==========

wf_engine.StartProcess (itemtype => 'KMEAMSRB',


itemkey => 'WO_BIO_' || V_SEQ);

COMMIT;
END LOOP;
ELSE
result := 'COMPLETE:FAIL';
END IF;

COMMIT;
END UPDATE_N_WO_BIO_DFF;

You might also like