[Home] [Help]
PACKAGE BODY: APPS.XNP_ACK_U
Source
1 PACKAGE BODY XNP_ACK_U AS
2 /* $Header: XNPACKSB.pls 120.2 2006/02/13 05:58:07 dputhiye ship $*/
3 PROCEDURE CREATE_MSG ( XNP$CODE NUMBER,
4 XNP$DESCRIPTION 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('ACK',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 := 'ACK' ;
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 := 'I' ;
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 ( 'CODE', XNP$CODE );
66 XNP_XML_UTILS.write_element ( 'DESCRIPTION', XNP$DESCRIPTION );
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 := 'ACK.create_msg()::' || SQLERRM ;
87 END ;
88 PROCEDURE PUBLISH ( XNP$CODE NUMBER,
89 XNP$DESCRIPTION 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( 'ACK', l_consumer_list );
115 END IF;
116 l_recipient_list := p_recipient_list ;
117 l_queue_name := 'XNP_IN_MSG_Q';
118 /* create the XML message */
119 CREATE_MSG (
120 XNP$CODE=>XNP$CODE,
121 XNP$DESCRIPTION=>XNP$DESCRIPTION,
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_inbound_msg_q,
141 p_correlation_id => 'MSG_SERVER',
142 p_priority=>'3',
143 p_commit_mode => XNP_MESSAGE.C_ON_COMMIT );
144 /* out processing logic */
145 NULL;
146 END IF ;
147 EXCEPTION
148 WHEN e_NO_DESTINATION THEN
149 x_error_code := XNP_ERRORS.G_NO_DESTINATION ;
150 WHEN OTHERS THEN
151 x_error_code := SQLCODE ;
152 x_error_message := SQLERRM ;
153 END ;
154 PROCEDURE SEND ( XNP$CODE NUMBER,
155 XNP$DESCRIPTION VARCHAR2,
156 x_message_id OUT NOCOPY NUMBER,
157 x_error_code OUT NOCOPY NUMBER,
158 x_error_message OUT NOCOPY VARCHAR2,
159 p_consumer_name IN VARCHAR2,
160 p_sender_name IN VARCHAR2 DEFAULT NULL,
161 p_recipient_name IN VARCHAR2 DEFAULT NULL,
162 p_version IN NUMBER DEFAULT 1,
163 p_reference_id IN VARCHAR2 DEFAULT NULL,
164 p_opp_reference_id IN VARCHAR2 DEFAULT NULL,
165 p_order_id IN NUMBER DEFAULT NULL,
166 p_wi_instance_id IN NUMBER DEFAULT NULL,
167 p_fa_instance_id IN NUMBER DEFAULT NULL ) IS
168 l_recipient_name VARCHAR2(80);
169 BEGIN
170 x_error_code := 0;
171 x_error_message := NULL ;
172 l_recipient_name := p_recipient_name ;
173 IF (l_recipient_name IS NULL) THEN
174 l_recipient_name := p_consumer_name ;
175 END IF;
176 PUBLISH (
177 XNP$CODE=>XNP$CODE,
178 XNP$DESCRIPTION=>XNP$DESCRIPTION,
179 x_message_id=>x_message_id,
180 x_error_code=>x_error_code,
181 x_error_message=>x_error_message,
182 p_consumer_list=>p_consumer_name,
183 p_sender_name=>p_sender_name,
184 p_recipient_list=>l_recipient_name,
185 p_version=>p_version,
186 p_reference_id=>p_reference_id,
187 p_opp_reference_id=>p_opp_reference_id,
188 p_order_id=>p_order_id,
189 p_wi_instance_id=>p_wi_instance_id,
190 p_fa_instance_id=>p_fa_instance_id ) ;
191 END ;
192 PROCEDURE PROCESS ( p_msg_header IN XNP_MESSAGE.MSG_HEADER_REC_TYPE,
193 p_msg_text IN VARCHAR2,
194 x_error_code OUT NOCOPY NUMBER,
195 x_error_message OUT NOCOPY VARCHAR2,
196 p_process_reference IN VARCHAR2 DEFAULT NULL ) IS
197 BEGIN
198 NULL ;
199 NULL ;
200 END ;
201 PROCEDURE VALIDATE ( p_msg_header IN OUT NOCOPY XNP_MESSAGE.MSG_HEADER_REC_TYPE,
202 p_msg_text IN VARCHAR2,
203 x_error_code OUT NOCOPY NUMBER,
204 x_error_message OUT NOCOPY VARCHAR2 ) IS
205 BEGIN
206 NULL ;
207 NULL;
208 END ;
209 PROCEDURE DEFAULT_PROCESS ( p_msg_header IN XNP_MESSAGE.MSG_HEADER_REC_TYPE,
210 p_msg_text IN VARCHAR2,
211 x_error_code OUT NOCOPY NUMBER,
212 x_error_message OUT NOCOPY VARCHAR2 ) IS
213 BEGIN
214 NULL ;
215 NULL;
216 END ;
217 END XNP_ACK_U;
218