[Home] [Help]
PACKAGE BODY: APPS.XNP_ADAPTER_ADMIN_U
Source
1 PACKAGE BODY XNP_ADAPTER_ADMIN_U AS
2 /*$Header: XNPADMNB.pls 120.2 2005/07/08 07:34:49 appldev ship $*/
3 PROCEDURE CREATE_MSG ( XNP$REQUEST_TYPE VARCHAR2,
4 XNP$REQUEST_ID VARCHAR2,
5 x_msg_header OUT NOCOPY XNP_MESSAGE.MSG_HEADER_REC_TYPE,
6 x_msg_text OUT NOCOPY VARCHAR2,
7 x_error_code OUT NOCOPY NUMBER,
8 x_error_message OUT NOCOPY VARCHAR2,
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 l_xml_doc VARCHAR2(32767) ;
23 l_xml_header VARCHAR2(32767) ;
24 l_msg_header XNP_MESSAGE.MSG_HEADER_REC_TYPE ;
25 BEGIN
26 x_error_code := 0 ;
27 x_error_message := NULL ;
28 XNP_XML_UTILS.initialize_doc ( ) ;
29 /* construct the message body */
30 /* get the message body */
31 XNP_XML_UTILS.get_document ( l_xml_body ) ;
32 IF (l_xml_body IS NULL) THEN
33 XNP_XML_UTILS.write_element('ADAPTER_ADMIN',l_xml_body );
34 XNP_XML_UTILS.get_document( l_xml_body ) ;
35 END IF;
36 /* initialize the XML header variable */
37 XNP_XML_UTILS.initialize_doc ( ) ;
38 /*construct the XML header */
39 /* retreive the next message ID */
40 XNP_MESSAGE.get_sequence ( l_msg_header.message_id ) ;
41 IF (p_reference_id IS NULL) THEN
42 l_msg_header.reference_id := l_msg_header.message_id ;
43 ELSE
44 l_msg_header.reference_id := p_reference_id ;
45 END IF ;
46 /* append header parameters to make header */
47 XNP_XML_UTILS.write_element ( 'MESSAGE_ID',l_msg_header.message_id ) ;
48 XNP_XML_UTILS.write_element ( 'REFERENCE_ID',l_msg_header.reference_id ) ;
49 l_msg_header.opp_reference_id := p_opp_reference_id ;
50 XNP_XML_UTILS.write_element ( 'OPP_REFERENCE_ID',l_msg_header.opp_reference_id ) ;
51 l_msg_header.message_code := 'ADAPTER_ADMIN' ;
52 XNP_XML_UTILS.write_element ( 'MESSAGE_CODE',l_msg_header.message_code ) ;
53 l_msg_header.version := p_version ;
54 XNP_XML_UTILS.write_element ( 'VERSION',l_msg_header.version ) ;
55 l_msg_header.creation_date := SYSDATE ;
56 l_msg_header.recipient_name := p_recipient_list ;
57 XNP_XML_UTILS.write_element ( 'CREATION_DATE',l_msg_header.creation_date ) ;
58 l_msg_header.sender_name := p_sender_name ;
59 XNP_XML_UTILS.write_element ( 'SENDER_NAME',l_msg_header.sender_name ) ;
60 XNP_XML_UTILS.write_element ( 'RECIPIENT_NAME',l_msg_header.recipient_name ) ;
61 l_msg_header.direction_indr := 'E' ;
62 l_msg_header.order_id := p_order_id ;
63 l_msg_header.wi_instance_id := p_wi_instance_id ;
64 l_msg_header.fa_instance_id := p_fa_instance_id ;
65 XNP_XML_UTILS.write_element ( 'REQUEST_TYPE', XNP$REQUEST_TYPE );
66 XNP_XML_UTILS.write_element ( 'REQUEST_ID', XNP$REQUEST_ID );
67 /* retreieve the XML header */
68 XNP_XML_UTILS.get_document ( l_xml_header ) ;
69 /* append the XML headerto message */
70 XNP_XML_UTILS.initialize_doc ( ) ;
71 XNP_XML_UTILS.xml_decl ;
72 XNP_XML_UTILS.begin_segment ( 'MESSAGE') ;
73 XNP_XML_UTILS.write_element( 'HEADER', l_xml_header );
74 XNP_XML_UTILS.append ( l_xml_body ) ;
75 XNP_XML_UTILS.end_segment ( 'MESSAGE') ;
76 XNP_XML_UTILS.get_document( l_xml_doc ) ;
77 /* assign the header and msg text to output parameters */
78 x_msg_header := l_msg_header ;
79 x_msg_text := l_xml_doc ;
80 /* handle exceptions */
81 EXCEPTION
82 WHEN e_MISSING_MANDATORY_DATA THEN
83 x_error_code := XNP_ERRORS.G_MISSING_MANDATORY_DATA ;
84 WHEN OTHERS THEN
85 x_error_code := SQLCODE ;
86 x_error_message := 'ADAPTER_ADMIN.create_msg()::' || SQLERRM ;
87 END ;
88 PROCEDURE PUBLISH ( XNP$REQUEST_TYPE VARCHAR2,
89 XNP$REQUEST_ID VARCHAR2,
90 x_message_id OUT NOCOPY NUMBER,
91 x_error_code OUT NOCOPY NUMBER,
92 x_error_message OUT NOCOPY VARCHAR2,
93 p_consumer_list IN VARCHAR2 DEFAULT NULL,
94 p_sender_name IN VARCHAR2 DEFAULT NULL,
95 p_recipient_list IN VARCHAR2 DEFAULT NULL,
96 p_version IN NUMBER DEFAULT 1,
97 p_reference_id IN VARCHAR2 DEFAULT NULL,
98 p_opp_reference_id IN VARCHAR2 DEFAULT NULL,
99 p_order_id IN NUMBER DEFAULT NULL,
100 p_wi_instance_id IN NUMBER DEFAULT NULL,
101 p_fa_instance_id IN NUMBER DEFAULT NULL ) IS
102 e_NO_DESTINATION EXCEPTION ;
103 l_recipient_list VARCHAR2 (2000) ;
104 l_consumer_list VARCHAR2 (4000) ;
105 l_queue_name VARCHAR2 (2000) ;
106 l_msg_header XNP_MESSAGE.MSG_HEADER_REC_TYPE ;
107 l_msg_text VARCHAR2(32767) ;
108 BEGIN
109 x_error_code := 0 ;
110 x_error_message := NULL ;
111 /* check if the consumer list is NULL */
112 l_consumer_list := p_consumer_list ;
113 IF (l_consumer_list IS NULL) THEN
114 XNP_MESSAGE.GET_SUBSCRIBER_LIST( 'ADAPTER_ADMIN', l_consumer_list );
115 END IF;
116 l_recipient_list := p_recipient_list ;
117 l_queue_name := 'XNP_IN_EVT_Q';
118 /* create the XML message */
119 CREATE_MSG (
120 XNP$REQUEST_TYPE=>XNP$REQUEST_TYPE,
121 XNP$REQUEST_ID=>XNP$REQUEST_ID,
122 x_msg_header=>l_msg_header,
123 x_msg_text=>l_msg_text,
124 x_error_code=>x_error_code,
125 x_error_message=>x_error_message,
126 p_sender_name=>p_sender_name,
127 p_recipient_list=>l_recipient_list,
128 p_version=>p_version,
129 p_reference_id=>p_reference_id,
130 p_opp_reference_id=>p_opp_reference_id,
131 p_order_id=>p_order_id,
132 p_wi_instance_id=>p_wi_instance_id,
133 p_fa_instance_id=>p_fa_instance_id ) ;
134 x_message_id := l_msg_header.message_id ;
135 /* enqueue the XML message for delivery */
136 IF (x_error_code = 0) THEN
137 XNP_MESSAGE.push (
138 p_msg_header => l_msg_header,
139 p_body_text => l_msg_text,
140 p_queue_name => xnp_event.c_internal_evt_q,
141 p_correlation_id => 'MSG_SERVER',
142 p_priority=>'1',
143 p_commit_mode => XNP_MESSAGE.C_ON_COMMIT );
144 IF (l_consumer_list IS NOT NULL) THEN
145 XNP_MESSAGE.GET_SEQUENCE(l_msg_header.message_id) ;
146 XNP_MESSAGE.push (
147 p_msg_header => l_msg_header,
148 p_body_text => l_msg_text,
149 p_queue_name => xnp_event.c_outbound_msg_q,
150 p_recipient_list => l_consumer_list,
151 p_correlation_id => TO_CHAR(x_message_id),
152 p_priority=>'1' ) ;
153 END IF ;
154 /* out processing logic */
155 NULL;
156 END IF ;
157 EXCEPTION
158 WHEN e_NO_DESTINATION THEN
159 x_error_code := XNP_ERRORS.G_NO_DESTINATION ;
160 WHEN OTHERS THEN
161 x_error_code := SQLCODE ;
162 x_error_message := SQLERRM ;
163 END ;
164 PROCEDURE SEND ( XNP$REQUEST_TYPE VARCHAR2,
165 XNP$REQUEST_ID VARCHAR2,
166 x_message_id OUT NOCOPY NUMBER,
167 x_error_code OUT NOCOPY NUMBER,
168 x_error_message OUT NOCOPY VARCHAR2,
169 p_consumer_name IN VARCHAR2,
170 p_sender_name IN VARCHAR2 DEFAULT NULL,
171 p_recipient_name IN VARCHAR2 DEFAULT NULL,
172 p_version IN NUMBER DEFAULT 1,
173 p_reference_id IN VARCHAR2 DEFAULT NULL,
174 p_opp_reference_id IN VARCHAR2 DEFAULT NULL,
175 p_order_id IN NUMBER DEFAULT NULL,
176 p_wi_instance_id IN NUMBER DEFAULT NULL,
177 p_fa_instance_id IN NUMBER DEFAULT NULL ) IS
178 l_recipient_name VARCHAR2(80);
179 BEGIN
180 x_error_code := 0;
181 x_error_message := NULL ;
182 l_recipient_name := p_recipient_name ;
183 IF (l_recipient_name IS NULL) THEN
184 l_recipient_name := p_consumer_name ;
185 END IF;
186 PUBLISH (
187 XNP$REQUEST_TYPE=>XNP$REQUEST_TYPE,
188 XNP$REQUEST_ID=>XNP$REQUEST_ID,
189 x_message_id=>x_message_id,
190 x_error_code=>x_error_code,
191 x_error_message=>x_error_message,
192 p_consumer_list=>p_consumer_name,
193 p_sender_name=>p_sender_name,
194 p_recipient_list=>l_recipient_name,
195 p_version=>p_version,
196 p_reference_id=>p_reference_id,
197 p_opp_reference_id=>p_opp_reference_id,
198 p_order_id=>p_order_id,
199 p_wi_instance_id=>p_wi_instance_id,
200 p_fa_instance_id=>p_fa_instance_id ) ;
201 END ;
202 PROCEDURE PROCESS ( p_msg_header IN XNP_MESSAGE.MSG_HEADER_REC_TYPE,
203 p_msg_text IN VARCHAR2,
204 x_error_code OUT NOCOPY NUMBER,
205 x_error_message OUT NOCOPY VARCHAR2,
206 p_process_reference IN VARCHAR2 DEFAULT NULL ) IS
207 BEGIN
208 NULL ;
209 NULL;
210 END ;
211 PROCEDURE VALIDATE ( p_msg_header IN OUT NOCOPY XNP_MESSAGE.MSG_HEADER_REC_TYPE,
212 p_msg_text IN VARCHAR2,
213 x_error_code OUT NOCOPY NUMBER,
214 x_error_message OUT NOCOPY VARCHAR2 ) IS
215 BEGIN
216 NULL ;
217 NULL;
218 END ;
219 PROCEDURE DEFAULT_PROCESS ( p_msg_header IN XNP_MESSAGE.MSG_HEADER_REC_TYPE,
220 p_msg_text IN VARCHAR2,
221 x_error_code OUT NOCOPY NUMBER,
222 x_error_message OUT NOCOPY VARCHAR2 ) IS
223 BEGIN
224 NULL ;
225 declare
226 l_RequestType varchar2(4000);
227 l_RequestID number;
228 l_RequestIDChar varchar2(4000);
229 begin
230 xnp_xml_utils.Decode(p_msg_text, 'REQUEST_TYPE', l_RequestType);
231 xnp_xml_utils.Decode(p_msg_text, 'REQUEST_ID', l_RequestIDChar);
232 l_RequestID := to_number(l_RequestIDChar);
233 -- Commented out - sacsharm - 11.5.6
234 -- This message never published from XDPCORFB and the called pkg is obsolete
235 --xdp_adapter_admin.administer_adapter( l_RequestType,
236 --l_RequestID,
237 --x_error_code,
238 --x_error_message);
239 if x_error_code = -20310 then
240 x_error_code := 0;
241 end if;
242 end;
243 END ;
244 END XNP_ADAPTER_ADMIN_U;