[Home] [Help]
PACKAGE BODY: APPS.XNP_ADAPTER_ERROR_U
Source
1 PACKAGE BODY XNP_ADAPTER_ERROR_U AS
2 /*$Header: XNPADERB.pls 120.2 2006/02/13 07:37:49 dputhiye ship $*/
3 PROCEDURE CREATE_MSG ( XNP$FE_NAME VARCHAR2,
4 XNP$CHANNEL_NAME VARCHAR2,
5 XNP$STATUS_CODE VARCHAR2,
6 XNP$DESCRIPTION VARCHAR2,
7 x_msg_header OUT NOCOPY XNP_MESSAGE.MSG_HEADER_REC_TYPE,
8 x_msg_text OUT NOCOPY VARCHAR2,
9 x_error_code OUT NOCOPY NUMBER,
10 x_error_message OUT NOCOPY VARCHAR2,
11 p_sender_name IN VARCHAR2 DEFAULT NULL,
12 p_recipient_list IN VARCHAR2 DEFAULT NULL,
13 p_version IN NUMBER DEFAULT 1,
14 p_reference_id IN VARCHAR2 DEFAULT NULL,
15 p_opp_reference_id IN VARCHAR2 DEFAULT NULL,
16 p_order_id IN NUMBER DEFAULT NULL,
17 p_wi_instance_id IN NUMBER DEFAULT NULL,
18 p_fa_instance_id IN NUMBER DEFAULT NULL,
19 p_delay IN NUMBER DEFAULT NULL,
20 p_interval IN NUMBER DEFAULT NULL ) IS
21 e_MISSING_MANDATORY_DATA EXCEPTION ;
22 e_NO_DESTINATION EXCEPTION ;
23 l_xml_body VARCHAR2(32767) ;
24 l_xml_doc VARCHAR2(32767) ;
25 l_xml_header VARCHAR2(32767) ;
26 l_msg_header XNP_MESSAGE.MSG_HEADER_REC_TYPE ;
27 BEGIN
28 x_error_code := 0 ;
29 x_error_message := NULL ;
30 XNP_XML_UTILS.initialize_doc ( ) ;
31 /* construct the message body */
32 /* get the message body */
33 XNP_XML_UTILS.get_document ( l_xml_body ) ;
34 IF (l_xml_body IS NULL) THEN
35 XNP_XML_UTILS.write_element('ADAPTER_ERROR',l_xml_body );
36 XNP_XML_UTILS.get_document( l_xml_body ) ;
37 END IF;
38 /* initialize the XML header variable */
39 XNP_XML_UTILS.initialize_doc ( ) ;
40 /*construct the XML header */
41 /* retreive the next message ID */
42 XNP_MESSAGE.get_sequence ( l_msg_header.message_id ) ;
43 IF (p_reference_id IS NULL) THEN
44 l_msg_header.reference_id := l_msg_header.message_id ;
45 ELSE
46 l_msg_header.reference_id := p_reference_id ;
47 END IF ;
48 /* append header parameters to make header */
49 XNP_XML_UTILS.write_element ( 'MESSAGE_ID',l_msg_header.message_id ) ;
50 XNP_XML_UTILS.write_element ( 'REFERENCE_ID',l_msg_header.reference_id ) ;
51 l_msg_header.opp_reference_id := p_opp_reference_id ;
52 XNP_XML_UTILS.write_element ( 'OPP_REFERENCE_ID',l_msg_header.opp_reference_id ) ;
53 l_msg_header.message_code := 'ADAPTER_ERROR' ;
54 XNP_XML_UTILS.write_element ( 'MESSAGE_CODE',l_msg_header.message_code ) ;
55 l_msg_header.version := p_version ;
56 XNP_XML_UTILS.write_element ( 'VERSION',l_msg_header.version ) ;
57 l_msg_header.creation_date := SYSDATE ;
58 l_msg_header.recipient_name := p_recipient_list ;
59 XNP_XML_UTILS.write_element ( 'CREATION_DATE',l_msg_header.creation_date ) ;
60 l_msg_header.sender_name := p_sender_name ;
61 XNP_XML_UTILS.write_element ( 'SENDER_NAME',l_msg_header.sender_name ) ;
62 XNP_XML_UTILS.write_element ( 'RECIPIENT_NAME',l_msg_header.recipient_name ) ;
63 l_msg_header.direction_indr := 'E' ;
64 l_msg_header.order_id := p_order_id ;
65 l_msg_header.wi_instance_id := p_wi_instance_id ;
66 l_msg_header.fa_instance_id := p_fa_instance_id ;
67 XNP_XML_UTILS.write_element ( 'FE_NAME', XNP$FE_NAME );
68 XNP_XML_UTILS.write_element ( 'CHANNEL_NAME', XNP$CHANNEL_NAME );
69 XNP_XML_UTILS.write_element ( 'STATUS_CODE', XNP$STATUS_CODE );
70 XNP_XML_UTILS.write_element ( 'DESCRIPTION', XNP$DESCRIPTION );
71 /* retreieve the XML header */
72 XNP_XML_UTILS.get_document ( l_xml_header ) ;
73 /* append the XML headerto message */
74 XNP_XML_UTILS.initialize_doc ( ) ;
75 XNP_XML_UTILS.xml_decl ;
76 XNP_XML_UTILS.begin_segment ( 'MESSAGE') ;
77 XNP_XML_UTILS.write_element( 'HEADER', l_xml_header );
78 XNP_XML_UTILS.append ( l_xml_body ) ;
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 := 'ADAPTER_ERROR.create_msg()::' || SQLERRM ;
91 END ;
92 PROCEDURE PUBLISH ( XNP$FE_NAME VARCHAR2,
93 XNP$CHANNEL_NAME VARCHAR2,
94 XNP$STATUS_CODE VARCHAR2,
95 XNP$DESCRIPTION VARCHAR2,
96 x_message_id OUT NOCOPY NUMBER,
97 x_error_code OUT NOCOPY NUMBER,
98 x_error_message OUT NOCOPY VARCHAR2,
99 p_consumer_list IN VARCHAR2 DEFAULT NULL,
100 p_sender_name IN VARCHAR2 DEFAULT NULL,
101 p_recipient_list IN VARCHAR2 DEFAULT NULL,
102 p_version IN NUMBER DEFAULT 1,
103 p_reference_id IN VARCHAR2 DEFAULT NULL,
104 p_opp_reference_id IN VARCHAR2 DEFAULT NULL,
105 p_order_id IN NUMBER DEFAULT NULL,
106 p_wi_instance_id IN NUMBER DEFAULT NULL,
107 p_fa_instance_id IN NUMBER DEFAULT NULL ) IS
108 e_NO_DESTINATION EXCEPTION ;
109 l_recipient_list VARCHAR2 (2000) ;
110 l_consumer_list VARCHAR2 (4000) ;
111 l_queue_name VARCHAR2 (2000) ;
112 l_msg_header XNP_MESSAGE.MSG_HEADER_REC_TYPE ;
113 l_msg_text VARCHAR2(32767) ;
114 BEGIN
115 x_error_code := 0 ;
116 x_error_message := NULL ;
117 /* check if the consumer list is NULL */
118 l_consumer_list := p_consumer_list ;
119 IF (l_consumer_list IS NULL) THEN
120 XNP_MESSAGE.GET_SUBSCRIBER_LIST( 'ADAPTER_ERROR', l_consumer_list );
121 END IF;
122 l_recipient_list := p_recipient_list ;
123 l_queue_name := 'XNP_IN_EVT_Q';
124 /* create the XML message */
125 CREATE_MSG (
126 XNP$FE_NAME=>XNP$FE_NAME,
127 XNP$CHANNEL_NAME=>XNP$CHANNEL_NAME,
128 XNP$STATUS_CODE=>XNP$STATUS_CODE,
129 XNP$DESCRIPTION=>XNP$DESCRIPTION,
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 => 'MSG_SERVER',
150 p_priority=>'2',
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 XNP_MESSAGE.push (
155 p_msg_header => l_msg_header,
156 p_body_text => l_msg_text,
157 p_queue_name => xnp_event.c_outbound_msg_q,
158 p_recipient_list => l_consumer_list,
159 p_correlation_id => TO_CHAR(x_message_id),
160 p_priority=>'2' ) ;
161 END IF ;
162 /* out processing logic */
163 NULL;
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 ( XNP$FE_NAME VARCHAR2,
173 XNP$CHANNEL_NAME VARCHAR2,
174 XNP$STATUS_CODE VARCHAR2,
175 XNP$DESCRIPTION VARCHAR2,
176 x_message_id OUT NOCOPY NUMBER,
177 x_error_code OUT NOCOPY NUMBER,
178 x_error_message OUT NOCOPY VARCHAR2,
179 p_consumer_name IN VARCHAR2,
180 p_sender_name IN VARCHAR2 DEFAULT NULL,
181 p_recipient_name IN VARCHAR2 DEFAULT NULL,
182 p_version IN NUMBER DEFAULT 1,
183 p_reference_id IN VARCHAR2 DEFAULT NULL,
184 p_opp_reference_id IN VARCHAR2 DEFAULT NULL,
185 p_order_id IN NUMBER DEFAULT NULL,
186 p_wi_instance_id IN NUMBER DEFAULT NULL,
187 p_fa_instance_id IN NUMBER DEFAULT NULL ) IS
188 l_recipient_name VARCHAR2(80);
189 BEGIN
190 x_error_code := 0;
191 x_error_message := NULL ;
192 l_recipient_name := p_recipient_name ;
193 IF (l_recipient_name IS NULL) THEN
194 l_recipient_name := p_consumer_name ;
195 END IF;
196 PUBLISH (
197 XNP$FE_NAME=>XNP$FE_NAME,
198 XNP$CHANNEL_NAME=>XNP$CHANNEL_NAME,
199 XNP$STATUS_CODE=>XNP$STATUS_CODE,
200 XNP$DESCRIPTION=>XNP$DESCRIPTION,
201 x_message_id=>x_message_id,
202 x_error_code=>x_error_code,
203 x_error_message=>x_error_message,
204 p_consumer_list=>p_consumer_name,
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 NOCOPY NUMBER,
217 x_error_message OUT NOCOPY VARCHAR2,
218 p_process_reference IN VARCHAR2 DEFAULT NULL ) IS
219 BEGIN
220 NULL ;
221 NULL;
222 END ;
223 PROCEDURE VALIDATE ( p_msg_header IN OUT NOCOPY XNP_MESSAGE.MSG_HEADER_REC_TYPE,
224 p_msg_text IN VARCHAR2,
225 x_error_code OUT NOCOPY NUMBER,
226 x_error_message OUT NOCOPY VARCHAR2 ) IS
227 BEGIN
228 NULL ;
229 NULL;
230 END ;
231 PROCEDURE DEFAULT_PROCESS ( p_msg_header IN XNP_MESSAGE.MSG_HEADER_REC_TYPE,
232 p_msg_text IN VARCHAR2,
233 x_error_code OUT NOCOPY NUMBER,
234 x_error_message OUT NOCOPY VARCHAR2 ) IS
235 BEGIN
236 NULL ;
237 DECLARE
238 l_error_code NUMBER;
239 l_error_message VARCHAR2(3000) ;
240 BEGIN
241 xnp_adapter.notify_fmc(p_msg_header,
242 p_msg_text,
243 l_error_code,
244 l_error_message
245 ) ;
246 END ;
247 END ;
248 END XNP_ADAPTER_ERROR_U;