DBA Data[Home] [Help]

PACKAGE BODY: APPS.XNP_SYNC_U

Source


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