DBA Data[Home] [Help]

PACKAGE BODY: APPS.XNP_ORDER_DONE_U

Source


1 PACKAGE BODY XNP_ORDER_DONE_U AS
2 /*$Header: XNPORDNB.pls 115.0 2000/02/03 22:42:05 pkm ship        $*/
3 PROCEDURE CREATE_MSG  (   XNP$SDP_RESULT_CODE VARCHAR2,
4   x_msg_header OUT  XNP_MESSAGE.MSG_HEADER_REC_TYPE,
5   x_msg_text   OUT  VARCHAR2,
6   x_error_code OUT  NUMBER,
7   x_error_message OUT VARCHAR2,
8 
9   p_sender_name IN VARCHAR2 DEFAULT NULL,
10   p_recipient_list IN VARCHAR2 DEFAULT NULL,
11   p_version IN NUMBER DEFAULT 1,
12   p_reference_id IN VARCHAR2 DEFAULT NULL,
13   p_opp_reference_id IN VARCHAR2 DEFAULT NULL,
14   p_order_id IN NUMBER DEFAULT NULL,
15   p_wi_instance_id  IN NUMBER DEFAULT NULL,
16   p_fa_instance_id  IN NUMBER  DEFAULT NULL,
17   p_delay  IN NUMBER  DEFAULT NULL,
18   p_interval  IN NUMBER  DEFAULT NULL )  IS
19   e_MISSING_MANDATORY_DATA EXCEPTION ;
20   e_NO_DESTINATION EXCEPTION ;
21   l_xml_body VARCHAR2(32767) ;
22 
23   l_xml_doc  VARCHAR2(32767) ;
24   l_xml_header VARCHAR2(32767) ;
25   l_msg_header  XNP_MESSAGE.MSG_HEADER_REC_TYPE ;
26 BEGIN
27   x_error_code := 0 ;
28   x_error_message := NULL ;
29   XNP_XML_UTILS.initialize_doc ( ) ;
30 /* construct the message body */
31 /* get the message body */
32   XNP_XML_UTILS.get_document ( l_xml_body ) ;
33 /* initialize the XML header variable */
34   XNP_XML_UTILS.initialize_doc ( ) ;
35 /*construct the XML header */
36 
37 /* retreive the next message ID */
38   XNP_MESSAGE.get_sequence ( l_msg_header.message_id ) ;
39   IF (p_reference_id IS NULL) THEN
40     l_msg_header.reference_id := l_msg_header.message_id ;
41   ELSE
42     l_msg_header.reference_id := p_reference_id ;
43   END IF ;
44 /* append header parameters to make header */
45   XNP_XML_UTILS.write_element ( 'MESSAGE_ID',l_msg_header.message_id ) ;
46   XNP_XML_UTILS.write_element ( 'REFERENCE_ID',l_msg_header.reference_id ) ;
47   l_msg_header.opp_reference_id := p_opp_reference_id ;
48   XNP_XML_UTILS.write_element ( 'OPP_REFERENCE_ID',l_msg_header.opp_reference_id
49  ) ;
50 
51 
52   l_msg_header.message_code := 'ORDER_DONE' ;
53   XNP_XML_UTILS.write_element ( 'MESSAGE_CODE',l_msg_header.message_code ) ;
54   l_msg_header.version := p_version ;
55   XNP_XML_UTILS.write_element ( 'VERSION',l_msg_header.version ) ;
56   l_msg_header.creation_date := SYSDATE ;
57   l_msg_header.recipient_name := p_recipient_list ;
58   XNP_XML_UTILS.write_element ( 'CREATION_DATE',l_msg_header.creation_date ) ;
59   l_msg_header.sender_name := p_sender_name ;
60   XNP_XML_UTILS.write_element ( 'SENDER_NAME',l_msg_header.sender_name ) ;
61   XNP_XML_UTILS.write_element ( 'RECIPIENT_NAME',l_msg_header.recipient_name ) ;
62 
63 
64 
65   l_msg_header.direction_indr := 'E' ;
66   l_msg_header.order_id := p_order_id ;
67   l_msg_header.wi_instance_id := p_wi_instance_id ;
68   l_msg_header.fa_instance_id := p_fa_instance_id ;
69   XNP_XML_UTILS.write_element ( 'SDP_RESULT_CODE', XNP$SDP_RESULT_CODE );
70 /* retreieve the XML header */
71   XNP_XML_UTILS.get_document ( l_xml_header ) ;
72 /* append the XML headerto message */
73   XNP_XML_UTILS.initialize_doc ( ) ;
74   XNP_XML_UTILS.xml_decl ;
75   XNP_XML_UTILS.begin_segment ( 'MESSAGE') ;
76   XNP_XML_UTILS.write_element( 'HEADER', l_xml_header );
77   XNP_XML_UTILS.append ( l_xml_body ) ;
78 
79   XNP_XML_UTILS.end_segment ( 'MESSAGE') ;
80   XNP_XML_UTILS.get_document( l_xml_doc ) ;
81 /* assign the header and msg text to output parameters */
82   x_msg_header := l_msg_header ;
83   x_msg_text := l_xml_doc ;
84 /* handle exceptions */
85   EXCEPTION
86   WHEN e_MISSING_MANDATORY_DATA THEN
87     x_error_code := XNP_ERRORS.G_MISSING_MANDATORY_DATA ;
88   WHEN OTHERS THEN
89     x_error_code := SQLCODE ;
90     x_error_message := SQLERRM ;
91 END ;
92 
93 PROCEDURE PUBLISH  (   XNP$SDP_RESULT_CODE VARCHAR2,
94   x_message_id OUT  NUMBER,
95   x_error_code OUT  NUMBER,
96   x_error_message OUT VARCHAR2,
97   p_consumer_list IN VARCHAR2 DEFAULT NULL,
98   p_sender_name IN VARCHAR2 DEFAULT NULL,
99   p_recipient_list IN VARCHAR2 DEFAULT NULL,
100   p_version IN NUMBER DEFAULT 1,
101   p_reference_id IN VARCHAR2 DEFAULT NULL,
102   p_opp_reference_id IN VARCHAR2 DEFAULT NULL,
103   p_order_id IN NUMBER DEFAULT NULL,
104   p_wi_instance_id  IN NUMBER DEFAULT NULL,
105   p_fa_instance_id  IN NUMBER  DEFAULT NULL )  IS
106 
107   e_NO_DESTINATION EXCEPTION ;
108   l_recipient_list VARCHAR2 (2000) ;
109   l_consumer_list VARCHAR2 (4000) ;
110   l_queue_name VARCHAR2 (2000) ;
111   l_msg_header  XNP_MESSAGE.MSG_HEADER_REC_TYPE ;
112   l_msg_text VARCHAR2(32767) ;
113 BEGIN
114   x_error_code := 0 ;
115   x_error_message := NULL ;
116 /* check if the recipient list is NULL */
117   l_recipient_list := p_recipient_list ;
118   IF (l_recipient_list IS NULL) THEN
119     XNP_MESSAGE.GET_SUBSCRIBER_LIST( 'ORDER_DONE', l_recipient_list );
120 
121   END IF;
122   l_consumer_list := p_consumer_list ;
123   IF (l_consumer_list IS NULL) THEN
124     l_consumer_list := l_recipient_list ;
125   END IF;
126 l_queue_name := 'XNP_IN_EVT_Q';
127 /* create the XML message */
128   CREATE_MSG (
129     XNP$SDP_RESULT_CODE=>XNP$SDP_RESULT_CODE,
130     x_msg_header=>l_msg_header,
131     x_msg_text=>l_msg_text,
132     x_error_code=>x_error_code,
133     x_error_message=>x_error_message,
134 
135     p_sender_name=>p_sender_name,
136     p_recipient_list=>l_recipient_list,
137     p_version=>p_version,
138     p_reference_id=>p_reference_id,
139     p_opp_reference_id=>p_opp_reference_id,
140     p_order_id=>p_order_id,
141     p_wi_instance_id=>p_wi_instance_id,
142     p_fa_instance_id=>p_fa_instance_id ) ;
143   x_message_id := l_msg_header.message_id ;
144 /* enqueue the XML message for delivery */
145   IF (x_error_code = 0) THEN
146     XNP_MESSAGE.push (
147       p_msg_header => l_msg_header,
148 
149       p_body_text => l_msg_text,
150       p_queue_name => xnp_event.c_internal_evt_q,
151       p_correlation_id => 'MSG_SERVER',
152       p_priority=>'3',
153       p_commit_mode => XNP_MESSAGE.C_ON_COMMIT );
154     IF (l_consumer_list IS NOT NULL) THEN
155       XNP_MESSAGE.GET_SEQUENCE(l_msg_header.message_id) ;
156       XNP_MESSAGE.push (
157         p_msg_header => l_msg_header,
158         p_body_text => l_msg_text,
159       p_queue_name => xnp_event.c_outbound_msg_q,
160         p_recipient_list => l_consumer_list,
161         p_correlation_id => TO_CHAR(x_message_id),
162 
163         p_priority=>'3' ) ;
164     END IF ;
165 /* out processing logic */
166 NULL;
167   END IF ;
168 EXCEPTION
169   WHEN e_NO_DESTINATION THEN
170     x_error_code := XNP_ERRORS.G_NO_DESTINATION ;
171   WHEN OTHERS THEN
172     x_error_code := SQLCODE ;
173     x_error_message := SQLERRM ;
174 END ;
175 PROCEDURE SEND  (   XNP$SDP_RESULT_CODE VARCHAR2,
176 
177   x_message_id OUT  NUMBER,
178   x_error_code OUT  NUMBER,
179   x_error_message OUT VARCHAR2,
180   p_consumer_name  IN VARCHAR2,
181   p_sender_name  IN VARCHAR2 DEFAULT NULL,
182   p_recipient_name  IN VARCHAR2 DEFAULT NULL,
183   p_version  IN NUMBER DEFAULT 1,
184   p_reference_id IN VARCHAR2 DEFAULT NULL,
185   p_opp_reference_id IN VARCHAR2 DEFAULT NULL,
186   p_order_id IN NUMBER DEFAULT NULL,
187   p_wi_instance_id  IN NUMBER DEFAULT NULL,
188   p_fa_instance_id  IN NUMBER  DEFAULT NULL )  IS
189 l_recipient_name  VARCHAR2(80);
190 
191 BEGIN
192   x_error_code := 0;
193   x_error_message := NULL ;
194   l_recipient_name := p_recipient_name ;
195   IF (l_recipient_name IS NULL) THEN
196     l_recipient_name := p_consumer_name ;
197   END IF;
198   PUBLISH (
199     XNP$SDP_RESULT_CODE=>XNP$SDP_RESULT_CODE,
200     x_message_id=>x_message_id,
201     x_error_code=>x_error_code,
202     x_error_message=>x_error_message,
203     p_consumer_list=>p_consumer_name,
204 
205     p_sender_name=>p_sender_name,
206     p_recipient_list=>l_recipient_name,
207     p_version=>p_version,
208     p_reference_id=>p_reference_id,
209     p_opp_reference_id=>p_opp_reference_id,
210     p_order_id=>p_order_id,
211     p_wi_instance_id=>p_wi_instance_id,
212     p_fa_instance_id=>p_fa_instance_id ) ;
213 END ;
214 PROCEDURE PROCESS (    p_msg_header IN XNP_MESSAGE.MSG_HEADER_REC_TYPE,
215   p_msg_text IN VARCHAR2,
216   x_error_code OUT  NUMBER,
217   x_error_message  OUT VARCHAR2,
218 
219   p_process_reference IN VARCHAR2 DEFAULT NULL ) IS
220 BEGIN
221 NULL ;
222 NULL;
223 END ;
224 PROCEDURE VALIDATE (    p_msg_header IN OUT XNP_MESSAGE.MSG_HEADER_REC_TYPE,
225   p_msg_text IN VARCHAR2,
226   x_error_code OUT  NUMBER,
227   x_error_message  OUT VARCHAR2 )  IS
228 BEGIN
229 NULL ;
230 NULL;
231 END ;
232 
233 PROCEDURE DEFAULT_PROCESS (    p_msg_header IN XNP_MESSAGE.MSG_HEADER_REC_TYPE,
234   p_msg_text IN VARCHAR2,
235   x_error_code OUT  NUMBER,
236   x_error_message  OUT VARCHAR2 )  IS
237 BEGIN
238 NULL ;
239 NULL;
240 END ;
241 END XNP_ORDER_DONE_U;