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