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