DBA Data[Home] [Help]

PACKAGE BODY: APPS.XNP_SYNC_TIMER_U

Source


1 PACKAGE BODY XNP_SYNC_TIMER_U AS
2 /*$Header: XNPSYTIB.pls 120.2 2006/02/13 07:56:17 dputhiye ship $*/
3 PROCEDURE CREATE_MSG  (   x_msg_header OUT NOCOPY  XNP_MESSAGE.MSG_HEADER_REC_TYPE,
4   x_msg_text   OUT NOCOPY  VARCHAR2,
5   x_error_code OUT NOCOPY  NUMBER,
6   x_error_message OUT NOCOPY 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   l_loop_index_1 NUMBER ;
24 BEGIN
25   x_error_code := 0 ;
26   x_error_message := NULL ;
27   XNP_XML_UTILS.initialize_doc ( ) ;
28 /* construct the message body */
29   l_loop_index_1 := 0 ;
30   FOR XNP$SYNC_TIMER  IN (SELECT '0' delay, '100' interval FROM DUAL) LOOP
31     l_loop_index_1 := l_loop_index_1 + 1 ;
32     XNP_XML_UTILS.begin_segment ( 'SYNC_TIMER' ) ;
33   IF (p_DELAY IS NULL) THEN
34     NULL;
35     IF ( XNP$SYNC_TIMER.DELAY IS NULL) THEN
36       x_error_message :='Missing Mandatory Attribute - DELAY' ;
37       RAISE e_MISSING_MANDATORY_DATA ;
38     END IF ;
39     XNP_XML_UTILS.write_element ( 'DELAY', XNP$SYNC_TIMER.DELAY ) ;
40 ELSE
41   xnp_xml_utils.write_element('DELAY', p_DELAY);
42 END IF;
43   IF (p_INTERVAL IS NULL) THEN
44     NULL;
45     IF ( XNP$SYNC_TIMER.INTERVAL IS NULL) THEN
46       x_error_message :='Missing Mandatory Attribute - INTERVAL' ;
47       RAISE e_MISSING_MANDATORY_DATA ;
48     END IF ;
49     XNP_XML_UTILS.write_element ( 'INTERVAL', XNP$SYNC_TIMER.INTERVAL ) ;
50 ELSE
51   xnp_xml_utils.write_element('INTERVAL', p_INTERVAL);
52 END IF;
53   XNP_XML_UTILS.end_segment ( 'SYNC_TIMER' ) ;
54     EXIT ;
55   END LOOP ;
56   IF ( l_loop_index_1 = 0 ) THEN
57     x_error_message := 'Missing Mandatory Data-, DELAY, INTERVAL';
58     RAISE e_MISSING_MANDATORY_DATA ;
59   END IF ;
60 /* get the message body */
61   XNP_XML_UTILS.get_document ( l_xml_body ) ;
62 IF (l_xml_body IS NULL) THEN
63   XNP_XML_UTILS.write_element('SYNC_TIMER',l_xml_body );
64   XNP_XML_UTILS.get_document( l_xml_body ) ;
65 END IF;
66 /* initialize the XML header variable */
67   XNP_XML_UTILS.initialize_doc ( ) ;
68 /*construct the XML header */
69 /* retreive the next message ID */
70   XNP_MESSAGE.get_sequence ( l_msg_header.message_id ) ;
71   IF (p_reference_id IS NULL) THEN
72     l_msg_header.reference_id := l_msg_header.message_id ;
73   ELSE
74     l_msg_header.reference_id := p_reference_id ;
75   END IF ;
76 /* append header parameters to make header */
77   XNP_XML_UTILS.write_element ( 'MESSAGE_ID',l_msg_header.message_id ) ;
78   XNP_XML_UTILS.write_element ( 'REFERENCE_ID',l_msg_header.reference_id ) ;
79   l_msg_header.opp_reference_id := p_opp_reference_id ;
80   XNP_XML_UTILS.write_element ( 'OPP_REFERENCE_ID',l_msg_header.opp_reference_id ) ;
81   l_msg_header.message_code := 'SYNC_TIMER' ;
82   XNP_XML_UTILS.write_element ( 'MESSAGE_CODE',l_msg_header.message_code ) ;
83   l_msg_header.version := p_version ;
84   XNP_XML_UTILS.write_element ( 'VERSION',l_msg_header.version ) ;
85   l_msg_header.creation_date := SYSDATE ;
86   l_msg_header.recipient_name := p_recipient_list ;
87   XNP_XML_UTILS.write_element ( 'CREATION_DATE',l_msg_header.creation_date ) ;
88   l_msg_header.sender_name := p_sender_name ;
89   XNP_XML_UTILS.write_element ( 'SENDER_NAME',l_msg_header.sender_name ) ;
90   XNP_XML_UTILS.write_element ( 'RECIPIENT_NAME',l_msg_header.recipient_name ) ;
91   l_msg_header.direction_indr := 'E' ;
92   l_msg_header.order_id := p_order_id ;
93   l_msg_header.wi_instance_id := p_wi_instance_id ;
94   l_msg_header.fa_instance_id := p_fa_instance_id ;
95 /* retreieve the XML header */
96   XNP_XML_UTILS.get_document ( l_xml_header ) ;
97 /* append the XML headerto message */
98   XNP_XML_UTILS.initialize_doc ( ) ;
99   XNP_XML_UTILS.xml_decl ;
100   XNP_XML_UTILS.begin_segment ( 'MESSAGE') ;
101   XNP_XML_UTILS.write_element( 'HEADER', l_xml_header );
102   XNP_XML_UTILS.append ( l_xml_body ) ;
103   XNP_XML_UTILS.end_segment ( 'MESSAGE') ;
104   XNP_XML_UTILS.get_document( l_xml_doc ) ;
105 /* assign the header and msg text to output parameters */
106   x_msg_header := l_msg_header ;
107   x_msg_text := l_xml_doc ;
108 /* handle exceptions */
109   EXCEPTION
110   WHEN e_MISSING_MANDATORY_DATA THEN
111     x_error_code := XNP_ERRORS.G_MISSING_MANDATORY_DATA ;
112   WHEN OTHERS THEN
113     x_error_code := SQLCODE ;
114     x_error_message := 'SYNC_TIMER.create_msg()::' || SQLERRM ;
115 END ;
116 PROCEDURE PROCESS (    p_msg_header IN XNP_MESSAGE.MSG_HEADER_REC_TYPE,
117   p_msg_text IN VARCHAR2,
118   x_error_code OUT NOCOPY  NUMBER,
119   x_error_message  OUT NOCOPY VARCHAR2,
120   p_process_reference IN VARCHAR2 DEFAULT NULL ) IS
121 BEGIN
122 NULL ;
123 XNP_WF_SYNC.PROCESS_SYNC_TIMER(p_msg_header, x_error_code, x_error_message);
124 END ;
125 PROCEDURE VALIDATE (    p_msg_header IN OUT NOCOPY XNP_MESSAGE.MSG_HEADER_REC_TYPE,
126   p_msg_text IN VARCHAR2,
127   x_error_code OUT NOCOPY  NUMBER,
128   x_error_message  OUT NOCOPY VARCHAR2 )  IS
129 BEGIN
130 NULL ;
131 NULL;
132 END ;
133 PROCEDURE DEFAULT_PROCESS (    p_msg_header IN XNP_MESSAGE.MSG_HEADER_REC_TYPE,
134   p_msg_text IN VARCHAR2,
135   x_error_code OUT NOCOPY  NUMBER,
136   x_error_message  OUT NOCOPY VARCHAR2 )  IS
137 BEGIN
138 NULL ;
139 NULL;
140 END ;
141 PROCEDURE FIRE  (   x_timer_id   OUT NOCOPY  NUMBER,
142   x_timer_contents   OUT NOCOPY  VARCHAR2,
143   x_error_code OUT NOCOPY  NUMBER,
144   x_error_message OUT NOCOPY VARCHAR2,
145   p_sender_name IN VARCHAR2 DEFAULT NULL,
146   p_recipient_list IN VARCHAR2 DEFAULT NULL,
147   p_version IN NUMBER DEFAULT 1,
148   p_reference_id IN VARCHAR2 DEFAULT NULL,
149   p_opp_reference_id IN VARCHAR2 DEFAULT NULL,
150   p_order_id IN NUMBER DEFAULT NULL,
151   p_wi_instance_id  IN NUMBER DEFAULT NULL,
152   p_fa_instance_id  IN NUMBER  DEFAULT NULL )
153 	IS
154 	l_msg_header xnp_message.msg_header_rec_type ;
155 	l_msg_text VARCHAR2(32767);
156 
157 	BEGIN
158 	x_error_code := 0;
159 	x_error_message := NULL;
160 	CREATE_MSG (x_msg_header=>l_msg_header,
161 	x_msg_text=>l_msg_text,
162 	x_error_code=>x_error_code,
163 	x_error_message=>x_error_message,
164 	p_sender_name=>p_sender_name,
165 	p_recipient_list=>p_recipient_list,
166 	p_version=>p_version,
167 	p_reference_id=>p_reference_id,
168 	p_opp_reference_id=>p_reference_id,
169 	p_order_id=>p_order_id,
170 	p_wi_instance_id=>p_wi_instance_id,
171 	p_fa_instance_id=>p_fa_instance_id );
172 	IF (x_error_code = 0) THEN
173 	xnp_timer.start_timer(l_msg_header,
174 	l_msg_text,
175 	x_error_code,
176 	x_error_message );
177 	x_timer_id := l_msg_header.message_id ;
178 	x_timer_contents := l_msg_text;
179 	END IF;
180 	END ;
181 
182 END XNP_SYNC_TIMER_U;