DBA Data[Home] [Help]

PACKAGE BODY: APPS.XNP_XDP_FULFILL_START_U

Source


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