[Home] [Help]
PACKAGE BODY: APPS.XNP_LI_DONE_U
Source
1 PACKAGE BODY XNP_LI_DONE_U AS
2 /*$Header: XNPLIDNB.pls 115.0 2000/02/03 22:41:53 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 := 'LI_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( 'LI_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_LI_DONE_U;