[Home] [Help]
PACKAGE BODY: APPS.XNP_CSENIUPD_U
Source
1 PACKAGE BODY XNP_CSENIUPD_U AS
2 PROCEDURE CREATE_MSG ( XNP$ITEM_ID NUMBER,
3 XNP$REVISION VARCHAR2 DEFAULT NULL,
4 XNP$LOT_NUMBER VARCHAR2 DEFAULT NULL,
5 XNP$SERIAL_NUMBER VARCHAR2 DEFAULT NULL,
6 XNP$QUANTITY NUMBER,
7 XNP$TRANSACTED_BY NUMBER,
8 XNP$TO_NETWORK_LOC_ID NUMBER DEFAULT NULL,
9 XNP$FROM_PARTY_SITE_ID NUMBER DEFAULT NULL,
10 XNP$TO_PARTY_SITE_ID NUMBER DEFAULT NULL,
11 XNP$WORK_ORDER_NUMBER VARCHAR2 DEFAULT NULL,
12 XNP$TRANSACTION_DATE DATE,
13 XNP$FROM_NETWORK_LOC_ID NUMBER DEFAULT NULL,
14 x_msg_header OUT XNP_MESSAGE.MSG_HEADER_REC_TYPE,
15 x_msg_text OUT VARCHAR2,
16 x_error_code OUT NUMBER,
17 x_error_message OUT VARCHAR2,
18 p_sender_name IN VARCHAR2 DEFAULT NULL,
19 p_recipient_list IN VARCHAR2 DEFAULT NULL,
20 p_version IN NUMBER DEFAULT 1,
21 p_reference_id IN VARCHAR2 DEFAULT NULL,
22 p_opp_reference_id IN VARCHAR2 DEFAULT NULL,
23 p_order_id IN NUMBER DEFAULT NULL,
24 p_wi_instance_id IN NUMBER DEFAULT NULL,
25 p_fa_instance_id IN NUMBER DEFAULT NULL,
26 p_delay IN NUMBER DEFAULT NULL,
27 p_interval IN NUMBER DEFAULT NULL ) IS
28 e_MISSING_MANDATORY_DATA EXCEPTION ;
29 e_NO_DESTINATION EXCEPTION ;
30 l_xml_body VARCHAR2(32767) ;
31 l_xml_doc VARCHAR2(32767) ;
32 l_xml_header VARCHAR2(32767) ;
33 l_msg_header XNP_MESSAGE.MSG_HEADER_REC_TYPE ;
34 BEGIN
35 x_error_code := 0 ;
36 x_error_message := NULL ;
37 XNP_XML_UTILS.initialize_doc ( ) ;
38 /*construct the XML header */
39 /* retreive the next message ID */
40 XNP_MESSAGE.get_sequence ( l_msg_header.message_id ) ;
41 IF (p_reference_id IS NULL) THEN
42 l_msg_header.reference_id := l_msg_header.message_id ;
43 ELSE
44 l_msg_header.reference_id := p_reference_id ;
45 END IF ;
46 /* append header parameters to make header */
47 XNP_XML_UTILS.write_element ( 'MESSAGE_ID',l_msg_header.message_id ) ;
48 XNP_XML_UTILS.write_leaf_element ( 'REFERENCE_ID',l_msg_header.reference_id ) ;
49 l_msg_header.opp_reference_id := p_opp_reference_id ;
50 XNP_XML_UTILS.write_leaf_element ( 'OPP_REFERENCE_ID',l_msg_header.opp_reference_id ) ;
51 l_msg_header.message_code := 'CSENIUPD' ;
52 XNP_XML_UTILS.write_leaf_element ( 'MESSAGE_CODE',l_msg_header.message_code ) ;
53 l_msg_header.version := p_version ;
54 XNP_XML_UTILS.write_leaf_element ( 'VERSION',l_msg_header.version ) ;
55 l_msg_header.creation_date := SYSDATE ;
56 l_msg_header.recipient_name := p_recipient_list ;
57 XNP_XML_UTILS.write_element ( 'CREATION_DATE',l_msg_header.creation_date ) ;
58 l_msg_header.sender_name := p_sender_name ;
59 XNP_XML_UTILS.write_leaf_element ( 'SENDER_NAME',l_msg_header.sender_name ) ;
60 XNP_XML_UTILS.write_leaf_element ( 'RECIPIENT_NAME',l_msg_header.recipient_name ) ;
61 l_msg_header.direction_indr := 'O' ;
62 l_msg_header.order_id := p_order_id ;
63 l_msg_header.wi_instance_id := p_wi_instance_id ;
64 l_msg_header.fa_instance_id := p_fa_instance_id ;
65 XNP_XML_UTILS.write_leaf_element ( 'ITEM_ID', XNP$ITEM_ID );
66 XNP_XML_UTILS.write_leaf_element ( 'REVISION', XNP$REVISION );
67 XNP_XML_UTILS.write_leaf_element ( 'LOT_NUMBER', XNP$LOT_NUMBER );
68 XNP_XML_UTILS.write_leaf_element ( 'SERIAL_NUMBER', XNP$SERIAL_NUMBER );
69 XNP_XML_UTILS.write_leaf_element ( 'QUANTITY', XNP$QUANTITY );
70 XNP_XML_UTILS.write_leaf_element ( 'TRANSACTED_BY', XNP$TRANSACTED_BY );
71 XNP_XML_UTILS.write_leaf_element ( 'TO_NETWORK_LOC_ID', XNP$TO_NETWORK_LOC_ID );
72 XNP_XML_UTILS.write_leaf_element ( 'FROM_PARTY_SITE_ID', XNP$FROM_PARTY_SITE_ID );
73 XNP_XML_UTILS.write_leaf_element ( 'TO_PARTY_SITE_ID', XNP$TO_PARTY_SITE_ID );
74 XNP_XML_UTILS.write_leaf_element ( 'WORK_ORDER_NUMBER', XNP$WORK_ORDER_NUMBER );
75 XNP_XML_UTILS.write_leaf_element ( 'TRANSACTION_DATE', XNP$TRANSACTION_DATE );
76 XNP_XML_UTILS.write_leaf_element ( 'FROM_NETWORK_LOC_ID', XNP$FROM_NETWORK_LOC_ID );
77 /* retreieve the XML header */
78 XNP_XML_UTILS.get_document ( l_xml_header ) ;
79 /* append the XML headerto message */
80 XNP_XML_UTILS.initialize_doc ( ) ;
81 XNP_XML_UTILS.xml_decl ;
82 XNP_XML_UTILS.begin_segment ( 'MESSAGE') ;
83 XNP_XML_UTILS.write_element( 'HEADER', l_xml_header );
84 /* construct the message body */
85 XNP_XML_UTILS.begin_segment ( 'CSENIUPD' ) ;
86 IF ( XNP$ITEM_ID IS NULL) THEN
87 x_error_message :='Missing Mandatory Attribute - ITEM_ID' ;
88 fnd_message.set_name('XNP','XNP_MISSING_MANDATORY_ATTR');
89 fnd_message.set_token('ATTRIBUTE','ITEM_ID' ) ;
90 x_error_message := fnd_message.get ;
91 RAISE e_MISSING_MANDATORY_DATA ;
92 END IF ;
93 XNP_XML_UTILS.write_leaf_element ( 'ITEM_ID', XNP$ITEM_ID ) ;
94 XNP_XML_UTILS.write_leaf_element ( 'REVISION', XNP$REVISION ) ;
95 XNP_XML_UTILS.write_leaf_element ( 'LOT_NUMBER', XNP$LOT_NUMBER ) ;
96 XNP_XML_UTILS.write_leaf_element ( 'SERIAL_NUMBER', XNP$SERIAL_NUMBER ) ;
97 IF ( XNP$QUANTITY IS NULL) THEN
98 x_error_message :='Missing Mandatory Attribute - QUANTITY' ;
99 fnd_message.set_name('XNP','XNP_MISSING_MANDATORY_ATTR');
100 fnd_message.set_token('ATTRIBUTE','QUANTITY' ) ;
101 x_error_message := fnd_message.get ;
102 RAISE e_MISSING_MANDATORY_DATA ;
103 END IF ;
104 XNP_XML_UTILS.write_leaf_element ( 'QUANTITY', XNP$QUANTITY ) ;
105 XNP_XML_UTILS.write_leaf_element ( 'WORK_ORDER_NUMBER', XNP$WORK_ORDER_NUMBER ) ;
106 XNP_XML_UTILS.write_leaf_element ( 'TO_PARTY_SITE_ID', XNP$TO_PARTY_SITE_ID ) ;
107 XNP_XML_UTILS.write_leaf_element ( 'FROM_PARTY_SITE_ID', XNP$FROM_PARTY_SITE_ID ) ;
108 XNP_XML_UTILS.write_leaf_element ( 'TO_NETWORK_LOC_ID', XNP$TO_NETWORK_LOC_ID ) ;
109 XNP_XML_UTILS.write_leaf_element ( 'FROM_NETWORK_LOC_ID', XNP$FROM_NETWORK_LOC_ID ) ;
110 IF ( XNP$TRANSACTION_DATE IS NULL) THEN
111 x_error_message :='Missing Mandatory Attribute - TRANSACTION_DATE' ;
112 fnd_message.set_name('XNP','XNP_MISSING_MANDATORY_ATTR');
113 fnd_message.set_token('ATTRIBUTE','TRANSACTION_DATE' ) ;
114 x_error_message := fnd_message.get ;
115 RAISE e_MISSING_MANDATORY_DATA ;
116 END IF ;
117 XNP_XML_UTILS.write_leaf_element ( 'TRANSACTION_DATE', XNP$TRANSACTION_DATE ) ;
118 IF ( XNP$TRANSACTED_BY IS NULL) THEN
119 x_error_message :='Missing Mandatory Attribute - TRANSACTED_BY' ;
120 fnd_message.set_name('XNP','XNP_MISSING_MANDATORY_ATTR');
121 fnd_message.set_token('ATTRIBUTE','TRANSACTED_BY' ) ;
122 x_error_message := fnd_message.get ;
123 RAISE e_MISSING_MANDATORY_DATA ;
124 END IF ;
125 XNP_XML_UTILS.write_leaf_element ( 'TRANSACTED_BY', XNP$TRANSACTED_BY ) ;
126 XNP_XML_UTILS.end_segment ( 'CSENIUPD' ) ;
127 XNP_XML_UTILS.end_segment ( 'MESSAGE') ;
128 XNP_XML_UTILS.get_document( l_xml_doc ) ;
129 /* assign the header and msg text to output parameters */
130 x_msg_header := l_msg_header ;
131 x_msg_text := l_xml_doc ;
132 /* handle exceptions */
133 EXCEPTION
134 WHEN e_MISSING_MANDATORY_DATA THEN
135 x_error_code := XNP_ERRORS.G_MISSING_MANDATORY_DATA ;
136 WHEN OTHERS THEN
137 x_error_code := SQLCODE ;
138 x_error_message := 'CSENIUPD.create_msg()::' || SQLERRM ;
139 END ;
140 PROCEDURE PUBLISH ( XNP$ITEM_ID NUMBER,
141 XNP$REVISION VARCHAR2 DEFAULT NULL,
142 XNP$LOT_NUMBER VARCHAR2 DEFAULT NULL,
143 XNP$SERIAL_NUMBER VARCHAR2 DEFAULT NULL,
144 XNP$QUANTITY NUMBER,
145 XNP$TRANSACTED_BY NUMBER,
146 XNP$TO_NETWORK_LOC_ID NUMBER DEFAULT NULL,
147 XNP$FROM_PARTY_SITE_ID NUMBER DEFAULT NULL,
148 XNP$TO_PARTY_SITE_ID NUMBER DEFAULT NULL,
149 XNP$WORK_ORDER_NUMBER VARCHAR2 DEFAULT NULL,
150 XNP$TRANSACTION_DATE DATE,
151 XNP$FROM_NETWORK_LOC_ID NUMBER DEFAULT NULL,
152 x_message_id OUT NUMBER,
153 x_error_code OUT NUMBER,
154 x_error_message OUT VARCHAR2,
155 p_consumer_list IN VARCHAR2 DEFAULT NULL,
156 p_sender_name IN VARCHAR2 DEFAULT NULL,
157 p_recipient_list IN VARCHAR2 DEFAULT NULL,
158 p_version IN NUMBER DEFAULT 1,
159 p_reference_id IN VARCHAR2 DEFAULT NULL,
160 p_opp_reference_id IN VARCHAR2 DEFAULT NULL,
161 p_order_id IN NUMBER DEFAULT NULL,
162 p_wi_instance_id IN NUMBER DEFAULT NULL,
163 p_fa_instance_id IN NUMBER DEFAULT NULL ) IS
164 e_NO_DESTINATION EXCEPTION ;
165 l_recipient_list VARCHAR2 (2000) ;
166 l_consumer_list VARCHAR2 (4000) ;
167 l_queue_name VARCHAR2 (2000) ;
168 l_msg_header XNP_MESSAGE.MSG_HEADER_REC_TYPE ;
169 l_msg_text VARCHAR2(32767) ;
170 BEGIN
171 x_error_code := 0 ;
172 x_error_message := NULL ;
173 /* check if the consumer list is NULL */
174 l_consumer_list := p_consumer_list ;
175 IF (l_consumer_list IS NULL) THEN
176 XNP_MESSAGE.GET_SUBSCRIBER_LIST( 'CSENIUPD', l_consumer_list );
177 END IF;
178 l_recipient_list := p_recipient_list ;
179 l_queue_name := 'XNP_OUT_MSG_Q';
180 /* create the XML message */
181 CREATE_MSG (
182 XNP$ITEM_ID=>XNP$ITEM_ID,
183 XNP$REVISION=>XNP$REVISION,
184 XNP$LOT_NUMBER=>XNP$LOT_NUMBER,
185 XNP$SERIAL_NUMBER=>XNP$SERIAL_NUMBER,
186 XNP$QUANTITY=>XNP$QUANTITY,
187 XNP$TRANSACTED_BY=>XNP$TRANSACTED_BY,
188 XNP$TO_NETWORK_LOC_ID=>XNP$TO_NETWORK_LOC_ID,
189 XNP$FROM_PARTY_SITE_ID=>XNP$FROM_PARTY_SITE_ID,
190 XNP$TO_PARTY_SITE_ID=>XNP$TO_PARTY_SITE_ID,
191 XNP$WORK_ORDER_NUMBER=>XNP$WORK_ORDER_NUMBER,
192 XNP$TRANSACTION_DATE=>XNP$TRANSACTION_DATE,
193 XNP$FROM_NETWORK_LOC_ID=>XNP$FROM_NETWORK_LOC_ID,
194 x_msg_header=>l_msg_header,
195 x_msg_text=>l_msg_text,
196 x_error_code=>x_error_code,
197 x_error_message=>x_error_message,
198 p_sender_name=>p_sender_name,
199 p_recipient_list=>l_recipient_list,
200 p_version=>p_version,
201 p_reference_id=>p_reference_id,
202 p_opp_reference_id=>p_opp_reference_id,
203 p_order_id=>p_order_id,
204 p_wi_instance_id=>p_wi_instance_id,
205 p_fa_instance_id=>p_fa_instance_id ) ;
206 x_message_id := l_msg_header.message_id ;
207 /* enqueue the XML message for delivery */
208 IF (x_error_code = 0) THEN
209 XNP_MESSAGE.push (
210 p_msg_header => l_msg_header,
211 p_body_text => l_msg_text,
212 p_queue_name => xnp_event.c_outbound_msg_q,
213 p_recipient_list => l_consumer_list,
214 p_fe_name => xnp_standard.fe_name,
215 p_correlation_id => l_msg_header.message_code,
216 p_priority=>'1',
217 p_commit_mode => XNP_MESSAGE.C_ON_COMMIT );
218 /* out processing logic */
219 NULL;
220 END IF ;
221 EXCEPTION
222 WHEN e_NO_DESTINATION THEN
223 x_error_code := XNP_ERRORS.G_NO_DESTINATION ;
224 WHEN OTHERS THEN
225 x_error_code := SQLCODE ;
226 x_error_message := SQLERRM ;
227 END ;
228 PROCEDURE SEND ( XNP$ITEM_ID NUMBER,
229 XNP$REVISION VARCHAR2 DEFAULT NULL,
230 XNP$LOT_NUMBER VARCHAR2 DEFAULT NULL,
231 XNP$SERIAL_NUMBER VARCHAR2 DEFAULT NULL,
232 XNP$QUANTITY NUMBER,
233 XNP$TRANSACTED_BY NUMBER,
234 XNP$TO_NETWORK_LOC_ID NUMBER DEFAULT NULL,
235 XNP$FROM_PARTY_SITE_ID NUMBER DEFAULT NULL,
236 XNP$TO_PARTY_SITE_ID NUMBER DEFAULT NULL,
237 XNP$WORK_ORDER_NUMBER VARCHAR2 DEFAULT NULL,
238 XNP$TRANSACTION_DATE DATE,
239 XNP$FROM_NETWORK_LOC_ID NUMBER DEFAULT NULL,
240 x_message_id OUT NUMBER,
241 x_error_code OUT NUMBER,
242 x_error_message OUT VARCHAR2,
243 p_consumer_name IN VARCHAR2,
244 p_sender_name IN VARCHAR2 DEFAULT NULL,
245 p_recipient_name IN VARCHAR2 DEFAULT NULL,
246 p_version IN NUMBER DEFAULT 1,
247 p_reference_id IN VARCHAR2 DEFAULT NULL,
248 p_opp_reference_id IN VARCHAR2 DEFAULT NULL,
249 p_order_id IN NUMBER DEFAULT NULL,
250 p_wi_instance_id IN NUMBER DEFAULT NULL,
251 p_fa_instance_id IN NUMBER DEFAULT NULL ) IS
252 l_recipient_name VARCHAR2(80);
253 l_ack_header XNP_MESSAGE.MSG_HEADER_REC_TYPE ;
254 l_ack_code VARCHAR2(40);
255 l_error_code NUMBER ;l_error_message VARCHAR2(512);
256 l_ack_msg VARCHAR2(32767) ;
257 BEGIN
258 x_error_code := 0;
259 x_error_message := NULL ;
260 l_recipient_name := p_recipient_name ;
261 IF (l_recipient_name IS NULL) THEN
262 l_recipient_name := p_consumer_name ;
263 END IF;
264 PUBLISH (
265 XNP$ITEM_ID=>XNP$ITEM_ID,
266 XNP$REVISION=>XNP$REVISION,
267 XNP$LOT_NUMBER=>XNP$LOT_NUMBER,
268 XNP$SERIAL_NUMBER=>XNP$SERIAL_NUMBER,
269 XNP$QUANTITY=>XNP$QUANTITY,
270 XNP$TRANSACTED_BY=>XNP$TRANSACTED_BY,
271 XNP$TO_NETWORK_LOC_ID=>XNP$TO_NETWORK_LOC_ID,
272 XNP$FROM_PARTY_SITE_ID=>XNP$FROM_PARTY_SITE_ID,
273 XNP$TO_PARTY_SITE_ID=>XNP$TO_PARTY_SITE_ID,
274 XNP$WORK_ORDER_NUMBER=>XNP$WORK_ORDER_NUMBER,
275 XNP$TRANSACTION_DATE=>XNP$TRANSACTION_DATE,
276 XNP$FROM_NETWORK_LOC_ID=>XNP$FROM_NETWORK_LOC_ID,
277 x_message_id=>x_message_id,
278 x_error_code=>x_error_code,
279 x_error_message=>x_error_message,
280 p_consumer_list=>p_consumer_name,
281 p_sender_name=>p_sender_name,
282 p_recipient_list=>l_recipient_name,
283 p_version=>p_version,
284 p_reference_id=>p_reference_id,
285 p_opp_reference_id=>p_opp_reference_id,
286 p_order_id=>p_order_id,
287 p_wi_instance_id=>p_wi_instance_id,
288 p_fa_instance_id=>p_fa_instance_id ) ;
289 END ;
290 PROCEDURE PROCESS ( p_msg_header IN XNP_MESSAGE.MSG_HEADER_REC_TYPE,
291 p_msg_text IN VARCHAR2,
292 x_error_code OUT NUMBER,
293 x_error_message OUT VARCHAR2,
294 p_process_reference IN VARCHAR2 DEFAULT NULL ) IS
295 BEGIN
296 NULL ;
297 NULL;
298 END ;
299 PROCEDURE DEFAULT_PROCESS ( p_msg_header IN XNP_MESSAGE.MSG_HEADER_REC_TYPE,
300 p_msg_text IN VARCHAR2,
301 x_error_code OUT NUMBER,
302 x_error_message OUT VARCHAR2 ) IS
303 BEGIN
304 NULL ;
305 Null;
306
307 END ;
308 PROCEDURE VALIDATE ( p_msg_header IN OUT XNP_MESSAGE.MSG_HEADER_REC_TYPE,
309 p_msg_text IN VARCHAR2,
310 x_error_code OUT NUMBER,
311 x_error_message OUT VARCHAR2 ) IS
312 BEGIN
313 NULL ;
314 NULL;
315 END ;
316
317 END XNP_CSENIUPD_U;