DBA Data[Home] [Help]

PACKAGE BODY: APPS.PO_PALT_ASSIGNMENT_WF

Source


1 PACKAGE BODY po_palt_assignment_wf AS
2 /* $Header: po_palt_assignment_wf.plb 120.4 2012/02/06 03:00:20 debrchak ship $ */
3 
4 
5 PROCEDURE launch_notify_buyer_wf (pAssignmentId IN NUMBER,
6                                   pPrevBuyerID IN NUMBER DEFAULT -1,
7                                   pReason IN VARCHAR2 DEFAULT NULL)
8 IS
9 l_buyer_id NUMBER;
10 l_username             VARCHAR2(100);
11 l_user_display_name    VARCHAR2(240);
12 
13 l_prev_buyer_id NUMBER;
14 l_prev_username             VARCHAR2(100);
15 l_prev_user_display_name    VARCHAR2(240);
16 
17 l_itemtype VARCHAR2(8) :='POPALT';
18 l_itemkey  VARCHAR2(60);
19 l_workflow_process VARCHAR2(30) := 'NOTIFY_BUYER';
20 l_seq_for_item_key NUMBER;
21 
22 l_employee_id NUMBER;
23 l_from_username             VARCHAR2(100);
24 l_from_user_disp_name    VARCHAR2(240);
25 l_func_curr VARCHAR2(15);
26 l_curr_org_id NUMBER;
27 
28 l_view_assign_url VARCHAR2(240);
29 
30 l_est_comp_days PO_CLM_ASSIGNMENTS.estimated_completion_days%TYPE;
31 l_start_date PO_CLM_ASSIGNMENTS.assignment_start_date%TYPE;
32 l_ms_temp_id PO_CLM_ASSIGNMENTS.milestone_template_id%TYPE;
33 l_assignment_number PO_CLM_ASSIGNMENTS.assignment_number%TYPE;
34 
35 BEGIN
36   SELECT PO_PALT_WF_ITEMKEY_S.NEXTVAL INTO l_seq_for_item_key FROM sys.dual;
37   l_itemkey := To_Char(pAssignmentId) || '-' || l_seq_for_item_key;
38 
39   wf_engine.CreateProcess( ItemType => l_itemtype, ItemKey => l_itemkey, process => l_workflow_process );
40 
41   SELECT assignment_number, buyer_id, estimated_completion_days, assignment_start_date ,milestone_template_id
42   INTO l_assignment_number, l_buyer_id, l_est_comp_days, l_start_date, l_ms_temp_id
43   FROM po_clm_assignments
44   WHERE assignment_id = pAssignmentId;
45 
46   PO_REQAPPROVAL_INIT1.get_user_name(l_buyer_id, l_username, l_user_display_name);
47 
48   PO_WF_UTIL_PKG.SetItemAttrNumber( itemtype => l_itemtype , itemkey => l_itemkey ,
49                                   aname => 'ASSIGNMENT_ID' , avalue => pAssignmentId );
50 
51   PO_WF_UTIL_PKG.SetItemAttrText( itemtype => l_itemtype , itemkey => l_itemkey ,
52                                   aname => 'ASSIGNMENT_NUMBER' , avalue => l_assignment_number);
53 
54   PO_WF_UTIL_PKG.SetItemAttrNumber( itemtype => l_itemtype , itemkey => l_itemkey ,
55                                   aname => 'ASSIGNED_TO_ID' , avalue => l_buyer_id );
56 
57   PO_WF_UTIL_PKG.SetItemAttrText( itemtype => l_itemtype , itemkey => l_itemkey ,
58                                   aname => 'ASSIGNED_TO_USER_NAME' , avalue => l_username );
59 
60   PO_WF_UTIL_PKG.SetItemAttrText( itemtype => l_itemtype , itemkey => l_itemkey ,
61                                   aname => 'ASSIGNED_TO_DISP_NAME' , avalue => l_user_display_name );
62   -- set the view assignment page url
63   l_view_assign_url := 'JSP:/OA_HTML/OA.jsp?OAFunc=PO_CLM_VIEW_WLOAD_ASSIGNMENTS' || '&' || 'AssignmentNumber=' ||
64               l_assignment_number || '&' || 'retainAM=Y' || '&' || 'addBreadCrumb=Y' ;
65   PO_WF_UTIL_PKG.SetItemAttrText( itemtype => l_itemtype , itemkey => l_itemkey ,
66                                   aname => 'VIEW_ASSIGNMENT_URL' , avalue => l_view_assign_url );
67 
68  -- Setting Previous Buyer Info
69   IF(pPrevBuyerID <> -1) THEN
70       l_prev_buyer_id := pPrevBuyerID;
71       PO_REQAPPROVAL_INIT1.get_user_name(l_prev_buyer_id, l_prev_username, l_prev_user_display_name);
72       PO_WF_UTIL_PKG.SetItemAttrNumber( itemtype => l_itemtype , itemkey => l_itemkey ,
73                                       aname => 'REASSIGNED_FROM_ID' , avalue => l_prev_buyer_id );
74 
75       PO_WF_UTIL_PKG.SetItemAttrText( itemtype => l_itemtype , itemkey => l_itemkey ,
76                                       aname => 'REASSIGNED_FROM_USER_NAME' , avalue => l_prev_username );
77 
78       PO_WF_UTIL_PKG.SetItemAttrText( itemtype => l_itemtype , itemkey => l_itemkey ,
79                                       aname => 'REASSIGNED_FROM_DISP_NAME' , avalue => l_prev_user_display_name );
80       PO_WF_UTIL_PKG.SetItemAttrText( itemtype => l_itemtype , itemkey => l_itemkey ,
81                                       aname => 'ACTION_NAME' , avalue => 'reassigned' );
82       PO_WF_UTIL_PKG.SetItemAttrText( itemtype => l_itemtype , itemkey => l_itemkey ,
83                                       aname => 'REASON' , avalue => pReason );
84   ELSE
85       PO_WF_UTIL_PKG.SetItemAttrText( itemtype => l_itemtype , itemkey => l_itemkey ,
86                                       aname => 'ACTION_NAME' , avalue => 'assigned' );
87   END IF;
88 
89   SELECT employee_id INTO l_employee_id
90   FROM fnd_user
91   WHERE user_id = fnd_global.user_id;
92 
93   IF l_employee_id IS NOT NULL AND l_employee_id <> -1 THEN
94     PO_REQAPPROVAL_INIT1.get_user_name(l_employee_id, l_from_username, l_from_user_disp_name);
95 
96     PO_WF_UTIL_PKG.SetItemAttrNumber( itemtype => l_itemtype , itemkey => l_itemkey ,
97                                   aname => 'ASSIGNED_FROM_ID' , avalue => l_employee_id );
98 
99     PO_WF_UTIL_PKG.SetItemAttrText( itemtype => l_itemtype , itemkey => l_itemkey ,
100                                   aname => 'ASSIGNED_FROM_USER_NAME' , avalue => l_from_username );
101 
102     PO_WF_UTIL_PKG.SetItemAttrText( itemtype => l_itemtype , itemkey => l_itemkey ,
103                                   aname => 'ASSIGNED_FROM_DISP_NAME' , avalue => l_from_user_disp_name );
104 
105   END IF;
106 
107   l_curr_org_id := po_moac_utils_pvt.get_current_org_id;
108 
109   IF l_curr_org_id IS NULL THEN
110    l_curr_org_id := FND_PROFILE.Value('DEFAULT_ORG_ID');
111   END IF;
112 
113   SELECT GSB.currency_code INTO l_func_curr
114   FROM  FINANCIALS_SYSTEM_PARAMS_all FSP,
115         GL_SETS_OF_BOOKS GSB
116   WHERE FSP.set_of_books_id = GSB.set_of_books_id
117   AND   FSP.org_id=l_curr_org_id;
118 
119   PO_WF_UTIL_PKG.SetItemAttrText( itemtype => l_itemtype , itemkey => l_itemkey ,
120                                   aname => 'FUNCTIONAL_CURRENCY' , avalue => l_func_curr );
121 
122   PO_WF_UTIL_PKG.SetItemAttrNumber( itemtype => l_itemtype , itemkey => l_itemkey ,
123                                   aname => 'ESTIMATED_COMPLETION_DAYS' , avalue => l_est_comp_days );
124 
125   PO_WF_UTIL_PKG.SetItemAttrNumber( itemtype => l_itemtype , itemkey => l_itemkey ,
126                                   aname => 'MILESTONE_TEMPLATE_ID' , avalue => l_ms_temp_id );
127 
128   PO_WF_UTIL_PKG.SetItemAttrDate( itemtype => l_itemtype , itemkey => l_itemkey ,
129                                   aname => 'ASSIGNMENT_START_DATE' , avalue => l_start_date );
130 
131   wf_engine.StartProcess( ItemType => l_itemtype, ItemKey => l_itemkey);
132 
133   COMMIT;
134 END launch_notify_buyer_wf;
135 
136 END PO_PALT_ASSIGNMENT_WF;