[Home] [Help]
PACKAGE BODY: APPS.XNP_CONTROL_U
Source
1 PACKAGE BODY XNP_CONTROL_U AS
2 /* $Header: XNPCTRLB.pls 120.2 2006/02/13 07:43:35 dputhiye ship $*/
3
4 PROCEDURE CREATE_MSG ( XNP$OPERATION VARCHAR2,
5 XNP$OP_DATA VARCHAR2,
6 x_msg_header OUT NOCOPY XNP_MESSAGE.MSG_HEADER_REC_TYPE,
7 x_msg_text OUT NOCOPY VARCHAR2,
8 x_error_code OUT NOCOPY NUMBER,
9 x_error_message OUT NOCOPY VARCHAR2,
10 p_sender_name IN VARCHAR2 DEFAULT NULL,
11 p_recipient_list IN VARCHAR2 DEFAULT NULL,
12 p_version IN NUMBER DEFAULT 1,
13 p_reference_id IN VARCHAR2 DEFAULT NULL,
14 p_opp_reference_id IN VARCHAR2 DEFAULT NULL,
15 p_order_id IN NUMBER DEFAULT NULL,
16 p_wi_instance_id IN NUMBER DEFAULT NULL,
17 p_fa_instance_id IN NUMBER DEFAULT NULL,
18 p_delay IN NUMBER DEFAULT NULL,
19 p_interval IN NUMBER DEFAULT NULL ) IS
20 e_MISSING_MANDATORY_DATA EXCEPTION ;
21 e_NO_DESTINATION EXCEPTION ;
22 l_xml_body VARCHAR2(32767) ;
23 l_xml_doc VARCHAR2(32767) ;
24 l_xml_header VARCHAR2(32767) ;
25 l_msg_header XNP_MESSAGE.MSG_HEADER_REC_TYPE ;
26 BEGIN
27 x_error_code := 0 ;
28 x_error_message := NULL ;
29 XNP_XML_UTILS.initialize_doc ( ) ;
30 /* construct the message body */
31 /* get the message body */
32 XNP_XML_UTILS.get_document ( l_xml_body ) ;
33 IF (l_xml_body IS NULL) THEN
34 XNP_XML_UTILS.write_element('CONTROL',l_xml_body );
35 XNP_XML_UTILS.get_document( l_xml_body ) ;
36 END IF;
37 /* initialize the XML header variable */
38 XNP_XML_UTILS.initialize_doc ( ) ;
39 /*construct the XML header */
40 /* retreive the next message ID */
41 XNP_MESSAGE.get_sequence ( l_msg_header.message_id ) ;
42 IF (p_reference_id IS NULL) THEN
43 l_msg_header.reference_id := l_msg_header.message_id ;
44 ELSE
45 l_msg_header.reference_id := p_reference_id ;
46 END IF ;
47 /* append header parameters to make header */
48 XNP_XML_UTILS.write_element ( 'MESSAGE_ID',l_msg_header.message_id ) ;
49 XNP_XML_UTILS.write_element ( 'REFERENCE_ID',l_msg_header.reference_id ) ;
50 l_msg_header.opp_reference_id := p_opp_reference_id ;
51 XNP_XML_UTILS.write_element ( 'OPP_REFERENCE_ID',l_msg_header.opp_reference_id ) ;
52 l_msg_header.message_code := 'CONTROL' ;
53 XNP_XML_UTILS.write_element ( 'MESSAGE_CODE',l_msg_header.message_code ) ;
54 l_msg_header.version := p_version ;
55 XNP_XML_UTILS.write_element ( 'VERSION',l_msg_header.version ) ;
56 l_msg_header.creation_date := SYSDATE ;
57 l_msg_header.recipient_name := p_recipient_list ;
58 XNP_XML_UTILS.write_element ( 'CREATION_DATE',l_msg_header.creation_date ) ;
59 l_msg_header.sender_name := p_sender_name ;
60 XNP_XML_UTILS.write_element ( 'SENDER_NAME',l_msg_header.sender_name ) ;
61 XNP_XML_UTILS.write_element ( 'RECIPIENT_NAME',l_msg_header.recipient_name ) ;
62 l_msg_header.direction_indr := 'O' ;
63 l_msg_header.order_id := p_order_id ;
64 l_msg_header.wi_instance_id := p_wi_instance_id ;
65 l_msg_header.fa_instance_id := p_fa_instance_id ;
66 XNP_XML_UTILS.write_element ( 'OPERATION', XNP$OPERATION );
67 XNP_XML_UTILS.write_element ( 'OP_DATA', XNP$OP_DATA );
68 /* retreieve the XML header */
69 XNP_XML_UTILS.get_document ( l_xml_header ) ;
70 /* append the XML headerto message */
71 XNP_XML_UTILS.initialize_doc ( ) ;
72 XNP_XML_UTILS.xml_decl ;
73 XNP_XML_UTILS.begin_segment ( 'MESSAGE') ;
74 XNP_XML_UTILS.write_element( 'HEADER', l_xml_header );
75 XNP_XML_UTILS.append ( l_xml_body ) ;
76 XNP_XML_UTILS.end_segment ( 'MESSAGE') ;
77 XNP_XML_UTILS.get_document( l_xml_doc ) ;
78 /* assign the header and msg text to output parameters */
79 x_msg_header := l_msg_header ;
80 x_msg_text := l_xml_doc ;
81 /* handle exceptions */
82 EXCEPTION
83 WHEN e_MISSING_MANDATORY_DATA THEN
84 x_error_code := XNP_ERRORS.G_MISSING_MANDATORY_DATA ;
85 WHEN OTHERS THEN
86 x_error_code := SQLCODE ;
87 x_error_message := 'CONTROL.create_msg()::' || SQLERRM ;
88 END ;
89 PROCEDURE PUBLISH ( XNP$OPERATION VARCHAR2,
90 XNP$OP_DATA VARCHAR2,
91 x_message_id OUT NOCOPY NUMBER,
92 x_error_code OUT NOCOPY NUMBER,
93 x_error_message OUT NOCOPY VARCHAR2,
94 p_consumer_list IN VARCHAR2 DEFAULT NULL,
95 p_sender_name IN VARCHAR2 DEFAULT NULL,
96 p_recipient_list IN VARCHAR2 DEFAULT NULL,
97 p_version IN NUMBER DEFAULT 1,
98 p_reference_id IN VARCHAR2 DEFAULT NULL,
99 p_opp_reference_id IN VARCHAR2 DEFAULT NULL,
100 p_order_id IN NUMBER DEFAULT NULL,
101 p_wi_instance_id IN NUMBER DEFAULT NULL,
102 p_fa_instance_id IN NUMBER DEFAULT NULL ) IS
103 e_NO_DESTINATION EXCEPTION ;
104 l_recipient_list VARCHAR2 (2000) ;
105 l_consumer_list VARCHAR2 (4000) ;
106 l_queue_name VARCHAR2 (2000) ;
107 l_msg_header XNP_MESSAGE.MSG_HEADER_REC_TYPE ;
108 l_msg_text VARCHAR2(32767) ;
109 BEGIN
110 x_error_code := 0 ;
111 x_error_message := NULL ;
112 /* check if the consumer list is NULL */
113 l_consumer_list := p_consumer_list ;
114 IF (l_consumer_list IS NULL) THEN
115 XNP_MESSAGE.GET_SUBSCRIBER_LIST( 'CONTROL', l_consumer_list );
116 END IF;
117 l_recipient_list := p_recipient_list ;
118 l_queue_name := 'XNP_OUT_MSG_Q';
119 /* create the XML message */
120 CREATE_MSG (
121 XNP$OPERATION=>XNP$OPERATION,
122 XNP$OP_DATA=>XNP$OP_DATA,
123 x_msg_header=>l_msg_header,
124 x_msg_text=>l_msg_text,
125 x_error_code=>x_error_code,
126 x_error_message=>x_error_message,
127 p_sender_name=>p_sender_name,
128 p_recipient_list=>l_recipient_list,
129 p_version=>p_version,
130 p_reference_id=>p_reference_id,
131 p_opp_reference_id=>p_opp_reference_id,
132 p_order_id=>p_order_id,
133 p_wi_instance_id=>p_wi_instance_id,
134 p_fa_instance_id=>p_fa_instance_id ) ;
135 x_message_id := l_msg_header.message_id ;
136 /* enqueue the XML message for delivery */
137 IF (x_error_code = 0) THEN
138 XNP_MESSAGE.push (
139 p_msg_header => l_msg_header,
140 p_body_text => l_msg_text,
141 p_queue_name => xnp_event.c_outbound_msg_q,
142 p_recipient_list => l_consumer_list,
143 p_fe_name => xnp_standard.fe_name,
144 p_correlation_id => TO_CHAR(x_message_id),
145 p_priority=>'2',
146 p_commit_mode => XNP_MESSAGE.C_ON_COMMIT );
147 /* out processing logic */
148 NULL;
149 END IF ;
150 EXCEPTION
151 WHEN e_NO_DESTINATION THEN
152 x_error_code := XNP_ERRORS.G_NO_DESTINATION ;
153 WHEN OTHERS THEN
154 x_error_code := SQLCODE ;
155 x_error_message := SQLERRM ;
156 END ;
157 PROCEDURE SEND ( XNP$OPERATION VARCHAR2,
158 XNP$OP_DATA VARCHAR2,
159 x_message_id OUT NOCOPY NUMBER,
160 x_error_code OUT NOCOPY NUMBER,
161 x_error_message OUT NOCOPY VARCHAR2,
162 p_consumer_name IN VARCHAR2,
163 p_sender_name IN VARCHAR2 DEFAULT NULL,
164 p_recipient_name IN VARCHAR2 DEFAULT NULL,
165 p_version IN NUMBER DEFAULT 1,
166 p_reference_id IN VARCHAR2 DEFAULT NULL,
167 p_opp_reference_id IN VARCHAR2 DEFAULT NULL,
168 p_order_id IN NUMBER DEFAULT NULL,
169 p_wi_instance_id IN NUMBER DEFAULT NULL,
170 p_fa_instance_id IN NUMBER DEFAULT NULL ) IS
171 l_recipient_name VARCHAR2(80);
172 l_ack_header XNP_MESSAGE.MSG_HEADER_REC_TYPE ;
173 l_ack_code VARCHAR2(40);
174 l_error_code NUMBER ;l_error_message VARCHAR2(512);
175 l_ack_msg VARCHAR2(32767) ;
176 BEGIN
177 x_error_code := 0;
178 x_error_message := NULL ;
179 l_recipient_name := p_recipient_name ;
180 IF (l_recipient_name IS NULL) THEN
181 l_recipient_name := p_consumer_name ;
182 END IF;
183 PUBLISH (
184 XNP$OPERATION=>XNP$OPERATION,
185 XNP$OP_DATA=>XNP$OP_DATA,
186 x_message_id=>x_message_id,
187 x_error_code=>x_error_code,
188 x_error_message=>x_error_message,
189 p_consumer_list=>p_consumer_name,
190 p_sender_name=>p_sender_name,
191 p_recipient_list=>l_recipient_name,
192 p_version=>p_version,
193 p_reference_id=>p_reference_id,
194 p_opp_reference_id=>p_opp_reference_id,
195 p_order_id=>p_order_id,
196 p_wi_instance_id=>p_wi_instance_id,
197 p_fa_instance_id=>p_fa_instance_id ) ;
198 END ;
199 PROCEDURE PROCESS ( p_msg_header IN XNP_MESSAGE.MSG_HEADER_REC_TYPE,
200 p_msg_text IN VARCHAR2,
201 x_error_code OUT NOCOPY NUMBER,
202 x_error_message OUT NOCOPY VARCHAR2,
203 p_process_reference IN VARCHAR2 DEFAULT NULL ) IS
204 BEGIN
205 NULL ;
206 NULL;
207 END ;
208 PROCEDURE VALIDATE ( p_msg_header IN OUT NOCOPY XNP_MESSAGE.MSG_HEADER_REC_TYPE,
209 p_msg_text IN VARCHAR2,
210 x_error_code OUT NOCOPY NUMBER,
211 x_error_message OUT NOCOPY VARCHAR2 ) IS
212 BEGIN
213 NULL ;
214 NULL;
215 END ;
216 PROCEDURE DEFAULT_PROCESS ( p_msg_header IN XNP_MESSAGE.MSG_HEADER_REC_TYPE,
217 p_msg_text IN VARCHAR2,
218 x_error_code OUT NOCOPY NUMBER,
219 x_error_message OUT NOCOPY VARCHAR2 ) IS
220 BEGIN
221 NULL ;
222 NULL;
223 END ;
224 END XNP_CONTROL_U;