[Home] [Help]
PACKAGE BODY: APPS.XNP_SYNC_ERR_U
Source
1 PACKAGE BODY XNP_SYNC_ERR_U AS
2 /* $Header: XNPSYERB.pls 120.2 2006/02/13 07:54:48 dputhiye ship $*/
3 PROCEDURE CREATE_MSG ( XNP$SYNC_LABEL VARCHAR2,
4 XNP$SDP_RESULT_CODE VARCHAR2 DEFAULT NULL,
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 ( 'SYNC_ERR' ) ;
31 IF ( XNP$SYNC_LABEL IS NULL) THEN
32 x_error_message :='Missing Mandatory Attribute - SYNC_LABEL' ;
33 RAISE e_MISSING_MANDATORY_DATA ;
34 END IF ;
35 XNP_XML_UTILS.write_element ( 'SYNC_LABEL', XNP$SYNC_LABEL ) ;
36 XNP_XML_UTILS.end_segment ( 'SYNC_ERR' ) ;
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('SYNC_ERR',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 := 'SYNC_ERR' ;
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 ( 'SYNC_LABEL', XNP$SYNC_LABEL );
73 XNP_XML_UTILS.write_element ( 'SDP_RESULT_CODE', XNP$SDP_RESULT_CODE );
74 /* retreieve the XML header */
75 XNP_XML_UTILS.get_document ( l_xml_header ) ;
76 /* append the XML headerto message */
77 XNP_XML_UTILS.initialize_doc ( ) ;
78 XNP_XML_UTILS.xml_decl ;
79 XNP_XML_UTILS.begin_segment ( 'MESSAGE') ;
80 XNP_XML_UTILS.write_element( 'HEADER', l_xml_header );
81 XNP_XML_UTILS.append ( l_xml_body ) ;
82 XNP_XML_UTILS.end_segment ( 'MESSAGE') ;
83 XNP_XML_UTILS.get_document( l_xml_doc ) ;
84 /* assign the header and msg text to output parameters */
85 x_msg_header := l_msg_header ;
86 x_msg_text := l_xml_doc ;
87 /* handle exceptions */
88 EXCEPTION
89 WHEN e_MISSING_MANDATORY_DATA THEN
90 x_error_code := XNP_ERRORS.G_MISSING_MANDATORY_DATA ;
91 WHEN OTHERS THEN
92 x_error_code := SQLCODE ;
93 x_error_message := 'SYNC_ERR.create_msg()::' || SQLERRM ;
94 END ;
95 PROCEDURE PUBLISH ( XNP$SYNC_LABEL VARCHAR2,
96 XNP$SDP_RESULT_CODE VARCHAR2 DEFAULT NULL,
97 x_message_id OUT NOCOPY NUMBER,
98 x_error_code OUT NOCOPY NUMBER,
99 x_error_message OUT NOCOPY VARCHAR2,
100 p_consumer_list IN VARCHAR2 DEFAULT NULL,
101 p_sender_name IN VARCHAR2 DEFAULT NULL,
102 p_recipient_list IN VARCHAR2 DEFAULT NULL,
103 p_version IN NUMBER DEFAULT 1,
104 p_reference_id IN VARCHAR2 DEFAULT NULL,
105 p_opp_reference_id IN VARCHAR2 DEFAULT NULL,
106 p_order_id IN NUMBER DEFAULT NULL,
107 p_wi_instance_id IN NUMBER DEFAULT NULL,
108 p_fa_instance_id IN NUMBER DEFAULT NULL ) IS
109 e_NO_DESTINATION EXCEPTION ;
110 l_recipient_list VARCHAR2 (2000) ;
111 l_consumer_list VARCHAR2 (4000) ;
112 l_queue_name VARCHAR2 (2000) ;
113 l_msg_header XNP_MESSAGE.MSG_HEADER_REC_TYPE ;
114 l_msg_text VARCHAR2(32767) ;
115 BEGIN
116 x_error_code := 0 ;
117 x_error_message := NULL ;
118 /* check if the consumer list is NULL */
119 l_consumer_list := p_consumer_list ;
120 IF (l_consumer_list IS NULL) THEN
121 XNP_MESSAGE.GET_SUBSCRIBER_LIST( 'SYNC_ERR', l_consumer_list );
122 END IF;
123 l_recipient_list := p_recipient_list ;
124 l_queue_name := 'XNP_IN_EVT_Q';
125 /* create the XML message */
126 CREATE_MSG (
127 XNP$SYNC_LABEL=>XNP$SYNC_LABEL,
128 XNP$SDP_RESULT_CODE=>XNP$SDP_RESULT_CODE,
129 x_msg_header=>l_msg_header,
130 x_msg_text=>l_msg_text,
131 x_error_code=>x_error_code,
132 x_error_message=>x_error_message,
133 p_sender_name=>p_sender_name,
134 p_recipient_list=>l_recipient_list,
135 p_version=>p_version,
136 p_reference_id=>p_reference_id,
137 p_opp_reference_id=>p_opp_reference_id,
138 p_order_id=>p_order_id,
139 p_wi_instance_id=>p_wi_instance_id,
140 p_fa_instance_id=>p_fa_instance_id ) ;
141 x_message_id := l_msg_header.message_id ;
142 /* enqueue the XML message for delivery */
143 IF (x_error_code = 0) THEN
144 XNP_MESSAGE.push (
145 p_msg_header => l_msg_header,
146 p_body_text => l_msg_text,
147 p_queue_name => xnp_event.c_internal_evt_q,
148 p_correlation_id => 'MSG_SERVER',
149 p_priority=>'2',
150 p_commit_mode => XNP_MESSAGE.C_ON_COMMIT );
151 IF (l_consumer_list IS NOT NULL) THEN
152 XNP_MESSAGE.GET_SEQUENCE(l_msg_header.message_id) ;
153 XNP_MESSAGE.push (
154 p_msg_header => l_msg_header,
155 p_body_text => l_msg_text,
156 p_queue_name => xnp_event.c_outbound_msg_q,
157 p_recipient_list => l_consumer_list,
158 p_correlation_id => TO_CHAR(x_message_id),
159 p_priority=>'2' ) ;
160 END IF ;
161 /* out processing logic */
162 NULL;
163 END IF ;
164 EXCEPTION
165 WHEN e_NO_DESTINATION THEN
166 x_error_code := XNP_ERRORS.G_NO_DESTINATION ;
167 WHEN OTHERS THEN
168 x_error_code := SQLCODE ;
169 x_error_message := SQLERRM ;
170 END ;
171 PROCEDURE SEND ( XNP$SYNC_LABEL VARCHAR2,
172 XNP$SDP_RESULT_CODE VARCHAR2 DEFAULT NULL,
173 x_message_id OUT NOCOPY NUMBER,
174 x_error_code OUT NOCOPY NUMBER,
175 x_error_message OUT NOCOPY VARCHAR2,
176 p_consumer_name IN VARCHAR2,
177 p_sender_name IN VARCHAR2 DEFAULT NULL,
178 p_recipient_name IN VARCHAR2 DEFAULT NULL,
179 p_version IN NUMBER DEFAULT 1,
180 p_reference_id IN VARCHAR2 DEFAULT NULL,
181 p_opp_reference_id IN VARCHAR2 DEFAULT NULL,
182 p_order_id IN NUMBER DEFAULT NULL,
183 p_wi_instance_id IN NUMBER DEFAULT NULL,
184 p_fa_instance_id IN NUMBER DEFAULT NULL ) IS
185 l_recipient_name VARCHAR2(80);
186 BEGIN
187 x_error_code := 0;
188 x_error_message := NULL ;
189 l_recipient_name := p_recipient_name ;
190 IF (l_recipient_name IS NULL) THEN
191 l_recipient_name := p_consumer_name ;
192 END IF;
193 PUBLISH (
194 XNP$SYNC_LABEL=>XNP$SYNC_LABEL,
195 XNP$SDP_RESULT_CODE=>XNP$SDP_RESULT_CODE,
196 x_message_id=>x_message_id,
197 x_error_code=>x_error_code,
198 x_error_message=>x_error_message,
199 p_consumer_list=>p_consumer_name,
200 p_sender_name=>p_sender_name,
201 p_recipient_list=>l_recipient_name,
202 p_version=>p_version,
203 p_reference_id=>p_reference_id,
204 p_opp_reference_id=>p_opp_reference_id,
205 p_order_id=>p_order_id,
206 p_wi_instance_id=>p_wi_instance_id,
207 p_fa_instance_id=>p_fa_instance_id ) ;
208 END ;
209 PROCEDURE 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,
213 p_process_reference IN VARCHAR2 DEFAULT NULL ) IS
214 BEGIN
215 NULL ;
216 XNP_WF_SYNC.PROCESS_SYNC_ERR(p_msg_header, x_error_code, x_error_message);
217 END ;
218 PROCEDURE VALIDATE ( p_msg_header IN OUT NOCOPY XNP_MESSAGE.MSG_HEADER_REC_TYPE,
219 p_msg_text IN VARCHAR2,
220 x_error_code OUT NOCOPY NUMBER,
221 x_error_message OUT NOCOPY VARCHAR2 ) IS
222 BEGIN
223 NULL ;
224 NULL;
225 END ;
226 PROCEDURE DEFAULT_PROCESS ( p_msg_header IN XNP_MESSAGE.MSG_HEADER_REC_TYPE,
227 p_msg_text IN VARCHAR2,
228 x_error_code OUT NOCOPY NUMBER,
229 x_error_message OUT NOCOPY VARCHAR2 ) IS
230 BEGIN
231 NULL ;
232 NULL;
233 END ;
234 END XNP_SYNC_ERR_U;