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