[Home] [Help]
PACKAGE BODY: APPS.PO_WFDS_PUB
Source
1 PACKAGE BODY PO_WFDS_PUB AS
2 /* $Header: POXPWFDB.pls 120.1 2011/02/11 12:54:58 kcthirum noship $ */
3
4 -- Read the profile option that enables/disables the debug log
5 g_po_wf_debug VARCHAR2(1) := NVL(FND_PROFILE.VALUE('PO_SET_DEBUG_WORKFLOW_ON'),'N');
6
7 /*=======================================================================+
8 | FILENAME
9 | POXPWFDB.pls
10 |
11 | DESCRIPTION
12 | PL/SQL body for package: PO_WFDS_PUB
13 |
14 *=======================================================================*/
15 --
16
17 procedure synch_supp_wth_wf_dir_srvcs( itemtype in varchar2,
18 itemkey in varchar2,
19 actid in number,
20 funcmode in varchar2,
21 resultout out nocopy varchar2)
22 is
23
24 l_party_type varchar2(1);
25 l_event_reason varchar2(30);
26 l_site_address varchar2(2000);
27 l_vendor_id number;
28 l_vendor_site_id number;
29 l_vendor_name varchar2(255);
30 l_language varchar2(30);
31 l_email varchar2(2000);
32 l_fax varchar2(15);
33 l_site_code varchar2(15);
34
35 l_parameter_list wf_parameter_list_t := wf_parameter_list_t();
36
37 begin
38
39 /* Get vendor_id, vendor_site_id etc., from workflow item attributes */
40 l_event_reason := wf_engine.GetItemAttrText (itemtype => itemtype,
41 itemkey => itemkey,
42 aname => 'ECX_TP_MOD_TYPE');
43
44 if (l_event_reason = 'DELETE') then
45 return; /* we don't want to do anything in case of delete */
46 end if;
47
48 l_vendor_id := wf_engine.GetItemAttrNumber (itemtype => itemtype,
49 itemkey => itemkey,
50 aname => 'ECX_PARTY_ID');
51
52 l_vendor_site_id := wf_engine.GetItemAttrNumber (itemtype => itemtype,
53 itemkey => itemkey,
54 aname => 'ECX_PARTY_SITE_ID');
55
56 l_party_type := wf_engine.GetItemAttrText (itemtype => itemtype,
57 itemkey => itemkey,
58 aname => 'ECX_PARTY_TYPE');
59
60 l_email := wf_engine.GetItemAttrText (itemtype => itemtype,
61 itemkey => itemkey,
62 aname => 'ECX_COMPANY_ADMIN_EMAIL');
63
64 /* Get all the necessary data from po_vendors_all and po_vendors */
65
66 select vendor_name
67 into l_vendor_name
68 from po_vendors
69 where vendor_id = l_vendor_id;
70
71 select language, fax, vendor_site_code,
72 ADDRESS_LINE1 || ' ' || ADDRESS_LINE2 || ' ' || ADDRESS_LINE3 || ' ' || CITY || ' ' || STATE || ' ' || ' ' || ZIP || ' ' || COUNTRY site_address
73 into l_language, l_fax, l_site_code, l_site_address
74 from po_vendor_sites_all
75 where vendor_site_id = l_vendor_site_id;
76
77 /* First synch the PO_VENDORS */
78 -- Add Parameters
79 wf_event.AddParameterToList(p_name=>'USER_NAME', p_value=>'PO_VENDORS:'||l_vendor_id, p_parameterlist=>l_parameter_list);
80 wf_event.AddParameterToList(p_name=>'DISPLAYNAME', p_value=>l_vendor_name, p_parameterlist=>l_parameter_list);
81 wf_event.AddParameterToList(p_name=>'ORCLISENABLED', p_value=>'ACTIVE', p_parameterlist=>l_parameter_list);
82 wf_event.AddParameterToList(p_name=>'EXPIRATIONDATE', p_value=>null, p_parameterlist=>l_parameter_list);
83 wf_event.AddParameterToList(p_name=>'ORCLWFORIGSYSTEM', p_value=>'PO_VENDORS', p_parameterlist=>l_parameter_list);
84 wf_event.AddParameterToList(p_name=>'ORCLWFORIGSYSTEMID', p_value=>l_vendor_id, p_parameterlist=>l_parameter_list);
85 wf_event.AddParameterToList(p_name =>'UPDATEONLY', p_value =>'TRUE', p_parameterlist=>l_parameter_list);
86
87 WF_LOCAL_SYNCH.propagate_role(p_orig_system => 'PO_VENDORS', /* in varchar2 */
88 p_orig_system_id => l_vendor_id, /* in number */
89 p_attributes => l_parameter_list, /* in wf_parameter_list_t */
90 p_start_date => sysdate, /* in date */
91 p_expiration_date => null /* in date */);
92
93 l_parameter_list.DELETE;
94
95 /* Next synch the PO_VENDOR_SITES */
96 -- Add Parameters
97 wf_event.AddParameterToList(p_name=>'USER_NAME', p_value=>'PO_VENDOR_SITES:'||l_vendor_site_id, p_parameterlist=>l_parameter_list);
98 wf_event.AddParameterToList(p_name=>'DISPLAYNAME', p_value=>l_vendor_name||' '||l_site_address, p_parameterlist=>l_parameter_list);
99 wf_event.AddParameterToList(p_name=>'PREFERREDLANGUAGE', p_value=>l_language, p_parameterlist=>l_parameter_list);
100 --wf_event.AddParameterToList(p_name=>'ORCLNLSTERRITORY', p_value=>l_language, p_parameterlist=>l_parameter_list);
101 wf_event.AddParameterToList(p_name=>'MAIL', p_value=>l_email, p_parameterlist=>l_parameter_list);
102 wf_event.AddParameterToList(p_name=>'FACSIMILETELEPHONENUMBER', p_value=>l_fax, p_parameterlist=>l_parameter_list);
103 wf_event.AddParameterToList(p_name=>'ORCLISENABLED', p_value=>'ACTIVE', p_parameterlist=>l_parameter_list);
104 wf_event.AddParameterToList(p_name=>'EXPIRATIONDATE', p_value=>null, p_parameterlist=>l_parameter_list);
105 wf_event.AddParameterToList(p_name=>'ORCLWFORIGSYSTEM', p_value=>'PO_VENDOR_SITES', p_parameterlist=>l_parameter_list);
106 wf_event.AddParameterToList(p_name=>'ORCLWFORIGSYSTEMID', p_value=>l_vendor_site_id, p_parameterlist=>l_parameter_list);
107 wf_event.AddParameterToList(p_name =>'UPDATEONLY', p_value =>'TRUE', p_parameterlist => l_parameter_list);
108
109 WF_LOCAL_SYNCH.propagate_role(p_orig_system => 'PO_VENDOR_SITES',
110 p_orig_system_id => l_vendor_site_id,
111 p_attributes => l_parameter_list,
112 p_start_date => sysdate,
113 p_expiration_date => null);
114
115 l_parameter_list.DELETE;
116
117 exception
118 when NO_DATA_FOUND then
119 -- do nothing, as the event might be raised for customer case and we do not handle customer case here.
120 return;
121 when others then
122 l_parameter_list.DELETE;
123 raise;
124
125 end synch_supp_wth_wf_dir_srvcs;
126
127 end PO_WFDS_PUB;