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