DBA Data[Home] [Help]

PACKAGE BODY: APPS.WS_RULE

Source


1 package body WS_RULE as
2 -- $Header: wsruleb.pls 115.7 2004/06/30 00:27:22 jdang noship $
3 
4 --
5 -- log_outbound (PUBLIC)
6 --   Rule function for logging.  Used with the following events:
7 --       oracle.apps.fnd.wf.ws.outbound.log
8 -- IN:
9 --   p_subscription_guid - subscription guid
10 -- IN/OUT:
11 --   p_event             - incoming log event
12 
13 function log_outbound
14     (p_subscription_guid  in      raw,
15      p_event              in out  WF_EVENT_T) return varchar2
16 is
17 
18   msgid			raw(200);
19   status 		binary_integer;
20   err_msg		varchar2(4000);
21   err_params            varchar2(255);
22   timestampstring       varchar2(50);
23   timestamp             date;
24   ret_code		pls_integer;
25   ret_message		varchar2(4000);
26 
27 begin
28   msgid := p_event.GetValueForParameter('SENDER_MSGID');
29   err_params := 'msgid=' || p_event.GetValueForParameter('RECEIPT_MSGID') || '#WF#';
30   status := 2;
31   if (p_event.GetValueForParameter('STATUS') = 'SUCCESS') then
32     status := 0;
33   end if;
34 
35   err_msg := p_event.GetValueForParameter('LOG_MESSAGE');
36 
37   timestampstring := p_event.GetValueForParameter('TIMESTAMP');
38 
39   begin
40     timestamp := to_date(timestampstring, 'YYYY/MM/DD HH24:MI:SS');
41   exception when others then
42     timestamp := sysdate;
43   end;
44 
45   ecx_errorlog.external_system(msgid, status, err_msg, timestamp, ret_code, ret_message, err_params);
46 
47   return 'SUCCESS';
48 exception
49          when others then
50             WF_CORE.CONTEXT('WS_RULE', 'LOG',
51                             p_event.getEventName( ), p_subscription_guid);
52             WF_EVENT.setErrorInfo(p_event, 'ERROR');
53             return 'ERROR';
54 end log_outbound;
55 
56 
57 
58 --
59 -- log_inbound (PUBLIC)
60 --   Rule function for logging.  Used with the following events:
61 --       oracle.apps.fnd.wf.ws.inbound.log
62 -- IN:
63 --   p_subscription_guid - subscription guid
64 -- IN/OUT:
65 --   p_event             - incoming log event
66 
67 function log_inbound
68     (p_subscription_guid  in      raw,
69      p_event              in out  WF_EVENT_T) return varchar2
70 is
71 
72   status 		binary_integer;
73   err_msg		varchar2(4000);
74   err_params            varchar2(255);
75   trigger_id            number;
76   receipt_msgid         raw(200);
77 
78   i_message_counter     pls_integer;
79   message_type          varchar2(2000) := null;
80   message_standard      varchar2(2000) := null;
81   transaction_type      varchar2(2000) := null;
82   transaction_subtype   varchar2(2000) := null;
83   document_number       varchar2(2000) := null;
84   partyid               varchar2(2000) := null;
85   party_site_id         varchar2(2000) := null;
86   party_type            varchar2(2000) := null;
87   protocol_type         varchar2(2000) := null;
88   protocol_address      varchar2(2000) := null;
89   username              varchar2(2000) := null;
90   encrypt_password      varchar2(2000) := null;
91   attribute1            varchar2(2000) := null;
92   attribute2            varchar2(2000) := null;
93   attribute3            varchar2(2000) := null;
94   attribute4            varchar2(2000) := null;
95   attribute5            varchar2(2000) := null;
96   payload               clob := null;
97   l_retcode             pls_integer := 0;
98   l_retmsg              varchar2(2000) := null;
99 
100 begin
101 
102   if (WF_EVENT_FUNCTIONS_PKG.SubParamInEvent(p_subscription_guid, p_event))
103   then
104 
105    select ecx_inlstn_s.nextval into i_message_counter from dual ;
106    status := 2;
107    if (p_event.GetValueForParameter('STATUS') = 'SUCCESS') then
108     status := 10;
109    end if;
110    err_msg := p_event.GetValueForParameter('LOG_MESSAGE');
111    err_params := 'msgid=' || p_event.GetValueForParameter('RECEIPT_MSGID') || '#WF#';
112    trigger_id := p_event.GetValueForParameter('ECX_TRIGGER_ID');
113    receipt_msgid := p_event.GetValueForParameter('RECEIPT_MSGID');
114    message_type := p_event.GetValueForParameter('ECX_MESSAGE_TYPE');
115    message_standard := p_event.GetValueForParameter('ECX_MESSAGE_STANDARD');
116    transaction_type := p_event.GetValueForParameter('ECX_TRANSACTION_TYPE');
117    transaction_subtype := p_event.GetValueForParameter('ECX_TRANSACTION_SUBTYPE');
118    document_number := p_event.GetValueForParameter('ECX_DOCUMENT_NUMBER');
119    partyid := p_event.GetValueForParameter('ECX_PARTY_ID');
120    party_site_id := p_event.GetValueForParameter('ECX_PARTY_SITE_ID');
121    party_type := p_event.GetValueForParameter('ECX_PARTY_TYPE');
122    protocol_type := p_event.GetValueForParameter('ECX_PROTOCOL_TYPE');
123    protocol_address := p_event.GetValueForParameter('ECX_PROTOCOL_ADDRESS');
124    username := p_event.GetValueForParameter('ECX_USERNAME');
125    encrypt_password := p_event.GetValueForParameter('ECX_PASSWORD');
126    attribute1 := p_event.GetValueForParameter('ECX_ATTRIBUTE1');
127    attribute2 := p_event.GetValueForParameter('ECX_ATTRIBUTE2');
128    attribute3 := p_event.GetValueForParameter('ECX_ATTRIBUTE3');
129    attribute4 := p_event.GetValueForParameter('ECX_ATTRIBUTE4');
130    attribute5 := p_event.GetValueForParameter('ECX_ATTRIBUTE5');
131    payload := p_event.GetEventData();
132    begin
133           ecx_errorlog.log_document(
134                                 l_retcode,
135                                 l_retmsg,
136                                 receipt_msgid,
137                                 message_type,
138                                 message_standard,
139                                 transaction_type,
140                                 transaction_subtype,
141                                 document_number,
142                                 partyid,
143                                 party_site_id,
144                                 party_type,
145                                 protocol_type,
146                                 protocol_address,
147                                 username,
148                                 encrypt_password,
149                                 attribute1,
150                                 attribute2,
151                                 attribute3,
152                                 attribute4,
153                                 attribute5,
154                                 payload,
155                                 i_message_counter,
156                                 'WS receives and accepts inbound message.',
157                                 'IN',
158                                 null
159                                 );
160 
161             if (l_retcode = 1) then
162                wf_log_pkg.string(6, 'WF_ECX_Q', l_retmsg);
163             elsif (l_retcode >= 2) then
164                raise ws_log_exit;
165             end if;
166    end;
167 
168    ecx_errorlog.inbound_trigger
169                 (
170                  trigger_id,
171                  receipt_msgid,
172                  null,
173                  status,
174                  err_msg,
175                  err_params
176                 );
177 
178    -- ecx_errorlog.log_document
179 
180   end if;
181   return 'SUCCESS';
182 
183 exception
184          when others then
185             WF_CORE.CONTEXT('WS_RULE', 'LOG',
186                             p_event.getEventName( ), p_subscription_guid);
187             WF_EVENT.setErrorInfo(p_event, 'ERROR');
188             return 'ERROR';
189 end log_inbound;
190 
191 
192 end WS_RULE;