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