[Home] [Help]
PACKAGE BODY: APPS.XNP_XDP_FULFILL_START_U
Source
1 PACKAGE BODY XNP_XDP_FULFILL_START_U AS
2 PROCEDURE CREATE_MSG ( XNP$LINE_ID NUMBER DEFAULT NULL,
3 x_msg_header OUT XNP_MESSAGE.MSG_HEADER_REC_TYPE,
4 x_msg_text OUT VARCHAR2,
5 x_error_code OUT NUMBER,
6 x_error_message OUT VARCHAR2,
7 p_sender_name IN VARCHAR2 DEFAULT NULL,
8 p_recipient_list IN VARCHAR2 DEFAULT NULL,
9 p_version IN NUMBER DEFAULT 1,
10 p_reference_id IN VARCHAR2 DEFAULT NULL,
11 p_opp_reference_id IN VARCHAR2 DEFAULT NULL,
12 p_order_id IN NUMBER DEFAULT NULL,
13 p_wi_instance_id IN NUMBER DEFAULT NULL,
14 p_fa_instance_id IN NUMBER DEFAULT NULL,
15 p_delay IN NUMBER DEFAULT NULL,
16 p_interval IN NUMBER DEFAULT NULL ) IS
17 e_MISSING_MANDATORY_DATA EXCEPTION ;
18 e_NO_DESTINATION EXCEPTION ;
19 l_xml_body VARCHAR2(32767) ;
20 l_xml_doc VARCHAR2(32767) ;
21 l_xml_header VARCHAR2(32767) ;
22 l_msg_header XNP_MESSAGE.MSG_HEADER_REC_TYPE ;
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_FULFILL_START' ;
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 XNP_XML_UTILS.write_leaf_element ( 'LINE_ID', XNP$LINE_ID );
55 /* retreieve the XML header */
56 XNP_XML_UTILS.get_document ( l_xml_header ) ;
57 /* append the XML headerto message */
58 XNP_XML_UTILS.initialize_doc ( ) ;
59 XNP_XML_UTILS.xml_decl ;
60 XNP_XML_UTILS.begin_segment ( 'MESSAGE') ;
61 XNP_XML_UTILS.write_element( 'HEADER', l_xml_header );
62 /* construct the message body */
63 XNP_XML_UTILS.begin_segment ( 'XDP_FULFILL_START' ) ;
64 XNP_XML_UTILS.write_leaf_element ( 'LINE_ID', XNP$LINE_ID ) ;
65 XNP_XML_UTILS.end_segment ( 'XDP_FULFILL_START' ) ;
66 XNP_XML_UTILS.end_segment ( 'MESSAGE') ;
67 XNP_XML_UTILS.get_document( l_xml_doc ) ;
68 /* assign the header and msg text to output parameters */
69 x_msg_header := l_msg_header ;
70 x_msg_text := l_xml_doc ;
71 /* handle exceptions */
72 EXCEPTION
73 WHEN e_MISSING_MANDATORY_DATA THEN
74 x_error_code := XNP_ERRORS.G_MISSING_MANDATORY_DATA ;
75 WHEN OTHERS THEN
76 x_error_code := SQLCODE ;
77 x_error_message := 'XDP_FULFILL_START.create_msg()::' || SQLERRM ;
78 END ;
79 PROCEDURE PUBLISH ( XNP$LINE_ID NUMBER DEFAULT NULL,
80 x_message_id OUT NUMBER,
81 x_error_code OUT NUMBER,
82 x_error_message OUT VARCHAR2,
83 p_consumer_list IN VARCHAR2 DEFAULT NULL,
84 p_sender_name IN VARCHAR2 DEFAULT NULL,
85 p_recipient_list IN VARCHAR2 DEFAULT NULL,
86 p_version IN NUMBER DEFAULT 1,
87 p_reference_id IN VARCHAR2 DEFAULT NULL,
88 p_opp_reference_id IN VARCHAR2 DEFAULT NULL,
89 p_order_id IN NUMBER DEFAULT NULL,
90 p_wi_instance_id IN NUMBER DEFAULT NULL,
91 p_fa_instance_id IN NUMBER DEFAULT NULL ) IS
92 e_NO_DESTINATION EXCEPTION ;
93 l_recipient_list VARCHAR2 (2000) ;
94 l_consumer_list VARCHAR2 (4000) ;
95 l_queue_name VARCHAR2 (2000) ;
96 l_msg_header XNP_MESSAGE.MSG_HEADER_REC_TYPE ;
97 l_msg_text VARCHAR2(32767) ;
98 BEGIN
99 x_error_code := 0 ;
100 x_error_message := NULL ;
101 /* check if the consumer list is NULL */
102 l_consumer_list := p_consumer_list ;
103 IF (l_consumer_list IS NULL) THEN
104 XNP_MESSAGE.GET_SUBSCRIBER_LIST( 'XDP_FULFILL_START', l_consumer_list );
105 END IF;
106 l_recipient_list := p_recipient_list ;
107 l_queue_name := 'XNP_IN_EVT_Q';
108 /* create the XML message */
109 CREATE_MSG (
110 XNP$LINE_ID=>XNP$LINE_ID,
111 x_msg_header=>l_msg_header,
112 x_msg_text=>l_msg_text,
113 x_error_code=>x_error_code,
114 x_error_message=>x_error_message,
115 p_sender_name=>p_sender_name,
116 p_recipient_list=>l_recipient_list,
117 p_version=>p_version,
118 p_reference_id=>p_reference_id,
119 p_opp_reference_id=>p_opp_reference_id,
120 p_order_id=>p_order_id,
121 p_wi_instance_id=>p_wi_instance_id,
122 p_fa_instance_id=>p_fa_instance_id ) ;
123 x_message_id := l_msg_header.message_id ;
124 /* enqueue the XML message for delivery */
125 IF (x_error_code = 0) THEN
126 XNP_MESSAGE.push (
127 p_msg_header => l_msg_header,
128 p_body_text => l_msg_text,
129 p_queue_name => xnp_event.c_internal_evt_q,
130 p_correlation_id => l_msg_header.message_code,
131 p_priority=>'1',
132 p_commit_mode => XNP_MESSAGE.C_ON_COMMIT );
133 IF (l_consumer_list IS NOT NULL) THEN
134 XNP_MESSAGE.GET_SEQUENCE(l_msg_header.message_id) ;
135 l_msg_header.direction_indr := 'O';
136 XNP_MESSAGE.push (
137 p_msg_header => l_msg_header,
138 p_body_text => l_msg_text,
139 p_queue_name => xnp_event.c_outbound_msg_q,
140 p_recipient_list => l_consumer_list,
141 p_correlation_id => l_msg_header.message_code,
142 p_priority=>'1' ) ;
143 END IF ;
144 /* out processing logic */
145 END IF ;
146 EXCEPTION
147 WHEN e_NO_DESTINATION THEN
148 x_error_code := XNP_ERRORS.G_NO_DESTINATION ;
149 WHEN OTHERS THEN
150 x_error_code := SQLCODE ;
151 x_error_message := SQLERRM ;
152 END ;
153 PROCEDURE SEND ( XNP$LINE_ID NUMBER DEFAULT NULL,
154 x_message_id OUT NUMBER,
155 x_error_code OUT NUMBER,
156 x_error_message OUT VARCHAR2,
157 p_consumer_name IN VARCHAR2,
158 p_sender_name IN VARCHAR2 DEFAULT NULL,
159 p_recipient_name IN VARCHAR2 DEFAULT NULL,
160 p_version IN NUMBER DEFAULT 1,
161 p_reference_id IN VARCHAR2 DEFAULT NULL,
162 p_opp_reference_id IN VARCHAR2 DEFAULT NULL,
163 p_order_id IN NUMBER DEFAULT NULL,
164 p_wi_instance_id IN NUMBER DEFAULT NULL,
165 p_fa_instance_id IN NUMBER DEFAULT NULL ) IS
166 l_recipient_name VARCHAR2(80);
167 BEGIN
168 x_error_code := 0;
169 x_error_message := NULL ;
170 l_recipient_name := p_recipient_name ;
171 IF (l_recipient_name IS NULL) THEN
172 l_recipient_name := p_consumer_name ;
173 END IF;
174 PUBLISH (
175 XNP$LINE_ID=>XNP$LINE_ID,
176 x_message_id=>x_message_id,
177 x_error_code=>x_error_code,
178 x_error_message=>x_error_message,
179 p_consumer_list=>p_consumer_name,
180 p_sender_name=>p_sender_name,
181 p_recipient_list=>l_recipient_name,
182 p_version=>p_version,
183 p_reference_id=>p_reference_id,
184 p_opp_reference_id=>p_opp_reference_id,
185 p_order_id=>p_order_id,
186 p_wi_instance_id=>p_wi_instance_id,
187 p_fa_instance_id=>p_fa_instance_id ) ;
188 END ;
189 PROCEDURE PROCESS ( p_msg_header IN XNP_MESSAGE.MSG_HEADER_REC_TYPE,
190 p_msg_text IN VARCHAR2,
191 x_error_code OUT NUMBER,
192 x_error_message OUT VARCHAR2,
193 p_process_reference IN VARCHAR2 DEFAULT NULL ) IS
194 BEGIN
195 NULL ;
196 END ;
197 PROCEDURE DEFAULT_PROCESS ( p_msg_header IN XNP_MESSAGE.MSG_HEADER_REC_TYPE,
198 p_msg_text IN VARCHAR2,
199 x_error_code OUT NUMBER,
200 x_error_message OUT VARCHAR2 ) IS
201 BEGIN
202 NULL ;
203 END ;
204 PROCEDURE VALIDATE ( p_msg_header IN OUT 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
212 END XNP_XDP_FULFILL_START_U;