DBA Data[Home] [Help]

PACKAGE BODY: APPS.XNP_FA_DONE_U

Source


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