DBA Data[Home] [Help]

PACKAGE BODY: APPS.XNP_XDP_FULFILL_DONE_U

Source


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