[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;