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