DBA Data[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;