DBA Data[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;