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