[Home] [Help]
PACKAGE BODY: APPS.XNP_CSENICRT_U
Source
1 PACKAGE BODY XNP_CSENICRT_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$PARTY_SITE_ID NUMBER DEFAULT NULL,
9 XNP$WORK_ORDER_NUMBER VARCHAR2 DEFAULT NULL,
10 XNP$PROJECT_ID NUMBER,
11 XNP$TASK_ID NUMBER,
12 XNP$TRANSACTION_DATE DATE,
13 XNP$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 := 'CSENICRT' ;
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 ( 'PARTY_SITE_ID', XNP$PARTY_SITE_ID );
72 XNP_XML_UTILS.write_leaf_element ( 'WORK_ORDER_NUMBER', XNP$WORK_ORDER_NUMBER );
73 XNP_XML_UTILS.write_leaf_element ( 'PROJECT_ID', XNP$PROJECT_ID );
74 XNP_XML_UTILS.write_leaf_element ( 'TASK_ID', XNP$TASK_ID );
75 XNP_XML_UTILS.write_leaf_element ( 'TRANSACTION_DATE', XNP$TRANSACTION_DATE );
76 XNP_XML_UTILS.write_leaf_element ( 'NETWORK_LOC_ID', XNP$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 ( 'CSENICRT' ) ;
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 IF ( XNP$PROJECT_ID IS NULL) THEN
107 x_error_message :='Missing Mandatory Attribute - PROJECT_ID' ;
108 fnd_message.set_name('XNP','XNP_MISSING_MANDATORY_ATTR');
109 fnd_message.set_token('ATTRIBUTE','PROJECT_ID' ) ;
110 x_error_message := fnd_message.get ;
111 RAISE e_MISSING_MANDATORY_DATA ;
112 END IF ;
113 XNP_XML_UTILS.write_leaf_element ( 'PROJECT_ID', XNP$PROJECT_ID ) ;
114 XNP_XML_UTILS.write_leaf_element ( 'PARTY_SITE_ID', XNP$PARTY_SITE_ID ) ;
115 XNP_XML_UTILS.write_leaf_element ( 'NETWORK_LOC_ID', XNP$NETWORK_LOC_ID ) ;
116 IF ( XNP$TASK_ID IS NULL) THEN
117 x_error_message :='Missing Mandatory Attribute - TASK_ID' ;
118 fnd_message.set_name('XNP','XNP_MISSING_MANDATORY_ATTR');
119 fnd_message.set_token('ATTRIBUTE','TASK_ID' ) ;
120 x_error_message := fnd_message.get ;
121 RAISE e_MISSING_MANDATORY_DATA ;
122 END IF ;
123 XNP_XML_UTILS.write_leaf_element ( 'TASK_ID', XNP$TASK_ID ) ;
124 IF ( XNP$TRANSACTION_DATE IS NULL) THEN
125 x_error_message :='Missing Mandatory Attribute - TRANSACTION_DATE' ;
126 fnd_message.set_name('XNP','XNP_MISSING_MANDATORY_ATTR');
127 fnd_message.set_token('ATTRIBUTE','TRANSACTION_DATE' ) ;
128 x_error_message := fnd_message.get ;
129 RAISE e_MISSING_MANDATORY_DATA ;
130 END IF ;
131 XNP_XML_UTILS.write_leaf_element ( 'TRANSACTION_DATE', XNP$TRANSACTION_DATE ) ;
132 IF ( XNP$TRANSACTED_BY IS NULL) THEN
133 x_error_message :='Missing Mandatory Attribute - TRANSACTED_BY' ;
134 fnd_message.set_name('XNP','XNP_MISSING_MANDATORY_ATTR');
135 fnd_message.set_token('ATTRIBUTE','TRANSACTED_BY' ) ;
136 x_error_message := fnd_message.get ;
137 RAISE e_MISSING_MANDATORY_DATA ;
138 END IF ;
139 XNP_XML_UTILS.write_leaf_element ( 'TRANSACTED_BY', XNP$TRANSACTED_BY ) ;
140 XNP_XML_UTILS.end_segment ( 'CSENICRT' ) ;
141 XNP_XML_UTILS.end_segment ( 'MESSAGE') ;
142 XNP_XML_UTILS.get_document( l_xml_doc ) ;
143 /* assign the header and msg text to output parameters */
144 x_msg_header := l_msg_header ;
145 x_msg_text := l_xml_doc ;
146 /* handle exceptions */
147 EXCEPTION
148 WHEN e_MISSING_MANDATORY_DATA THEN
149 x_error_code := XNP_ERRORS.G_MISSING_MANDATORY_DATA ;
150 WHEN OTHERS THEN
151 x_error_code := SQLCODE ;
152 x_error_message := 'CSENICRT.create_msg()::' || SQLERRM ;
153 END ;
154 PROCEDURE PUBLISH ( XNP$ITEM_ID NUMBER,
155 XNP$REVISION VARCHAR2 DEFAULT NULL,
156 XNP$LOT_NUMBER VARCHAR2 DEFAULT NULL,
157 XNP$SERIAL_NUMBER VARCHAR2 DEFAULT NULL,
158 XNP$QUANTITY NUMBER,
159 XNP$TRANSACTED_BY NUMBER,
160 XNP$PARTY_SITE_ID NUMBER DEFAULT NULL,
161 XNP$WORK_ORDER_NUMBER VARCHAR2 DEFAULT NULL,
162 XNP$PROJECT_ID NUMBER,
163 XNP$TASK_ID NUMBER,
164 XNP$TRANSACTION_DATE DATE,
165 XNP$NETWORK_LOC_ID NUMBER DEFAULT NULL,
166 x_message_id OUT NUMBER,
167 x_error_code OUT NUMBER,
168 x_error_message OUT VARCHAR2,
169 p_consumer_list IN VARCHAR2 DEFAULT NULL,
170 p_sender_name IN VARCHAR2 DEFAULT NULL,
171 p_recipient_list IN VARCHAR2 DEFAULT NULL,
172 p_version IN NUMBER DEFAULT 1,
173 p_reference_id IN VARCHAR2 DEFAULT NULL,
174 p_opp_reference_id IN VARCHAR2 DEFAULT NULL,
175 p_order_id IN NUMBER DEFAULT NULL,
176 p_wi_instance_id IN NUMBER DEFAULT NULL,
177 p_fa_instance_id IN NUMBER DEFAULT NULL ) IS
178 e_NO_DESTINATION EXCEPTION ;
179 l_recipient_list VARCHAR2 (2000) ;
180 l_consumer_list VARCHAR2 (4000) ;
181 l_queue_name VARCHAR2 (2000) ;
182 l_msg_header XNP_MESSAGE.MSG_HEADER_REC_TYPE ;
183 l_msg_text VARCHAR2(32767) ;
184 BEGIN
185 x_error_code := 0 ;
186 x_error_message := NULL ;
187 /* check if the consumer list is NULL */
188 l_consumer_list := p_consumer_list ;
189 IF (l_consumer_list IS NULL) THEN
190 XNP_MESSAGE.GET_SUBSCRIBER_LIST( 'CSENICRT', l_consumer_list );
191 END IF;
192 l_recipient_list := p_recipient_list ;
193 l_queue_name := 'XNP_OUT_MSG_Q';
194 /* create the XML message */
195 CREATE_MSG (
196 XNP$ITEM_ID=>XNP$ITEM_ID,
197 XNP$REVISION=>XNP$REVISION,
198 XNP$LOT_NUMBER=>XNP$LOT_NUMBER,
199 XNP$SERIAL_NUMBER=>XNP$SERIAL_NUMBER,
200 XNP$QUANTITY=>XNP$QUANTITY,
201 XNP$TRANSACTED_BY=>XNP$TRANSACTED_BY,
202 XNP$PARTY_SITE_ID=>XNP$PARTY_SITE_ID,
203 XNP$WORK_ORDER_NUMBER=>XNP$WORK_ORDER_NUMBER,
204 XNP$PROJECT_ID=>XNP$PROJECT_ID,
205 XNP$TASK_ID=>XNP$TASK_ID,
206 XNP$TRANSACTION_DATE=>XNP$TRANSACTION_DATE,
207 XNP$NETWORK_LOC_ID=>XNP$NETWORK_LOC_ID,
208 x_msg_header=>l_msg_header,
209 x_msg_text=>l_msg_text,
210 x_error_code=>x_error_code,
211 x_error_message=>x_error_message,
212 p_sender_name=>p_sender_name,
213 p_recipient_list=>l_recipient_list,
214 p_version=>p_version,
215 p_reference_id=>p_reference_id,
216 p_opp_reference_id=>p_opp_reference_id,
217 p_order_id=>p_order_id,
218 p_wi_instance_id=>p_wi_instance_id,
219 p_fa_instance_id=>p_fa_instance_id ) ;
220 x_message_id := l_msg_header.message_id ;
221 /* enqueue the XML message for delivery */
222 IF (x_error_code = 0) THEN
223 XNP_MESSAGE.push (
224 p_msg_header => l_msg_header,
225 p_body_text => l_msg_text,
226 p_queue_name => xnp_event.c_outbound_msg_q,
227 p_recipient_list => l_consumer_list,
228 p_fe_name => xnp_standard.fe_name,
229 p_correlation_id => l_msg_header.message_code,
230 p_priority=>'1',
231 p_commit_mode => XNP_MESSAGE.C_ON_COMMIT );
232 /* out processing logic */
233 NULL;
234 END IF ;
235 EXCEPTION
236 WHEN e_NO_DESTINATION THEN
237 x_error_code := XNP_ERRORS.G_NO_DESTINATION ;
238 WHEN OTHERS THEN
239 x_error_code := SQLCODE ;
240 x_error_message := SQLERRM ;
241 END ;
242 PROCEDURE SEND ( XNP$ITEM_ID NUMBER,
243 XNP$REVISION VARCHAR2 DEFAULT NULL,
244 XNP$LOT_NUMBER VARCHAR2 DEFAULT NULL,
245 XNP$SERIAL_NUMBER VARCHAR2 DEFAULT NULL,
246 XNP$QUANTITY NUMBER,
247 XNP$TRANSACTED_BY NUMBER,
248 XNP$PARTY_SITE_ID NUMBER DEFAULT NULL,
249 XNP$WORK_ORDER_NUMBER VARCHAR2 DEFAULT NULL,
250 XNP$PROJECT_ID NUMBER,
251 XNP$TASK_ID NUMBER,
252 XNP$TRANSACTION_DATE DATE,
253 XNP$NETWORK_LOC_ID NUMBER DEFAULT NULL,
254 x_message_id OUT NUMBER,
255 x_error_code OUT NUMBER,
256 x_error_message OUT VARCHAR2,
257 p_consumer_name IN VARCHAR2,
258 p_sender_name IN VARCHAR2 DEFAULT NULL,
259 p_recipient_name IN VARCHAR2 DEFAULT NULL,
260 p_version IN NUMBER DEFAULT 1,
261 p_reference_id IN VARCHAR2 DEFAULT NULL,
262 p_opp_reference_id IN VARCHAR2 DEFAULT NULL,
263 p_order_id IN NUMBER DEFAULT NULL,
264 p_wi_instance_id IN NUMBER DEFAULT NULL,
265 p_fa_instance_id IN NUMBER DEFAULT NULL ) IS
266 l_recipient_name VARCHAR2(80);
267 l_ack_header XNP_MESSAGE.MSG_HEADER_REC_TYPE ;
268 l_ack_code VARCHAR2(40);
269 l_error_code NUMBER ;l_error_message VARCHAR2(512);
270 l_ack_msg VARCHAR2(32767) ;
271 BEGIN
272 x_error_code := 0;
273 x_error_message := NULL ;
274 l_recipient_name := p_recipient_name ;
275 IF (l_recipient_name IS NULL) THEN
276 l_recipient_name := p_consumer_name ;
277 END IF;
278 PUBLISH (
279 XNP$ITEM_ID=>XNP$ITEM_ID,
280 XNP$REVISION=>XNP$REVISION,
281 XNP$LOT_NUMBER=>XNP$LOT_NUMBER,
282 XNP$SERIAL_NUMBER=>XNP$SERIAL_NUMBER,
283 XNP$QUANTITY=>XNP$QUANTITY,
284 XNP$TRANSACTED_BY=>XNP$TRANSACTED_BY,
285 XNP$PARTY_SITE_ID=>XNP$PARTY_SITE_ID,
286 XNP$WORK_ORDER_NUMBER=>XNP$WORK_ORDER_NUMBER,
287 XNP$PROJECT_ID=>XNP$PROJECT_ID,
288 XNP$TASK_ID=>XNP$TASK_ID,
289 XNP$TRANSACTION_DATE=>XNP$TRANSACTION_DATE,
290 XNP$NETWORK_LOC_ID=>XNP$NETWORK_LOC_ID,
291 x_message_id=>x_message_id,
292 x_error_code=>x_error_code,
293 x_error_message=>x_error_message,
294 p_consumer_list=>p_consumer_name,
295 p_sender_name=>p_sender_name,
296 p_recipient_list=>l_recipient_name,
297 p_version=>p_version,
298 p_reference_id=>p_reference_id,
299 p_opp_reference_id=>p_opp_reference_id,
300 p_order_id=>p_order_id,
301 p_wi_instance_id=>p_wi_instance_id,
302 p_fa_instance_id=>p_fa_instance_id ) ;
303 END ;
304 PROCEDURE PROCESS ( p_msg_header IN XNP_MESSAGE.MSG_HEADER_REC_TYPE,
305 p_msg_text IN VARCHAR2,
306 x_error_code OUT NUMBER,
307 x_error_message OUT VARCHAR2,
308 p_process_reference IN VARCHAR2 DEFAULT NULL ) IS
309 BEGIN
310 NULL ;
311 NULL;
312 END ;
313 PROCEDURE DEFAULT_PROCESS ( p_msg_header IN XNP_MESSAGE.MSG_HEADER_REC_TYPE,
314 p_msg_text IN VARCHAR2,
315 x_error_code OUT NUMBER,
316 x_error_message OUT VARCHAR2 ) IS
317 BEGIN
318 NULL ;
319 Null;
320
321 END ;
322 PROCEDURE VALIDATE ( p_msg_header IN OUT XNP_MESSAGE.MSG_HEADER_REC_TYPE,
323 p_msg_text IN VARCHAR2,
324 x_error_code OUT NUMBER,
325 x_error_message OUT VARCHAR2 ) IS
326 BEGIN
327 NULL ;
328 NULL;
329 END ;
330
331 END XNP_CSENICRT_U;