DBA Data[Home] [Help]

PACKAGE: APPS.RCV_ERROR_PKG

Source


1 PACKAGE rcv_error_pkg AUTHID CURRENT_USER AS
2 /* $Header: RCVERRS.pls 120.0 2005/06/02 01:17:19 appldev noship $*/
3 
4 /* rcv_error_pkg has two major functions.
5    log_interface_error and
6    log_interface_warning.
7    these procedure are nearly identical.
8    Before you call these procedures, the setup is to first call
9    set_error_msg with the error or warning message tag
10    and then call set_token for each token in that string.
11    Build an exception handler for this block for RCV_ERROR_PKG.e_fatal_error
12    calling log_interface_error will raise this exception
13    For warnings it will not raise an exception,
14 
15    The overall flow should be:
16 
17    begin transaction loop
18      rcv_error_pkg.initialize(int_type,g_id,h_id,l_id); -- to reset the error stack
19      derive_record is
20      begin
21        derive_field is
22        begin
23          if field_error
24            rcv_error_pkg.set_error_message('RCV_FIELD_ERROR');
25            rcv_error_pkg.log_interface_error('TABLE','FIELDNAME');
26          elsif field_warning
27            rcv_error_pkg.set_error_message('RCV_FIELD_WARNING');
28            rcv_error_pkg.set_token('TKN','VALUE');
29            rcv_error_pkg.log_interface_warning('TABLE','FIELDNAME');
30            x_cascaded_table(n).error_status:=rcv_error_pkg.g_ret_sts_warning;
31          end if;
32        exception
33          when rcv_error_pkg.e_fatal_error then
34            x_cascaded_table(n).error_status:=rcv_error_pkg.g_ret_sts_error;
35        end;
36        if (rcv_error_pkg.check_and_reset_result()=true) then --to stop processing on child error
37          raise;
38        end if;
39      end;
40 
41      error_count := rcv_error_pkg.get_error_count();
42      last_error := rcv_error_pkg.get_last_error();
43      error_msgs := rcv_error_pkg.get_all_errors();
44    end transaction loop;
45 */
46 
47 /* E_FATAL_ERROR is the exception that should be raised when a terminal
48    condition has been discovered
49 */
50    e_fatal_error                  EXCEPTION;
51 /* The following status are similar to the fnd_api status, but include the
52    addition of G_RET_STS_WARNING as 'W'
53 */
54    g_ret_sts_success     CONSTANT VARCHAR2(1) := 'S';
55    g_ret_sts_error       CONSTANT VARCHAR2(1) := 'E';
56    g_ret_sts_warning     CONSTANT VARCHAR2(1) := 'W';
57    g_ret_sts_unexp_error CONSTANT VARCHAR2(1) := 'U';
58 
59 /* log_interface_error should only be called inside the
60    WHEN RCV_ERROR_PKG.e_fatal_error THEN
61    exception handler.
62    Inside the body first call set_error_message, then call set_token for
63    each token, then call log_interface_error.
64    This procedure does these things:
65    1) add a row into po_interace_errors
66    2) adds the parsed message to the error stack
67    3) increases the error counter
68    4) resets the token stack
69    5) sets the result flag to 'E'
70 */
71    PROCEDURE log_interface_error(
72       p_table       IN VARCHAR2,
73       p_column      IN VARCHAR2,
74       p_raise_error IN BOOLEAN DEFAULT TRUE
75    );
76 
77    PROCEDURE log_interface_error(
78       p_table       IN VARCHAR2,
79       p_column      IN VARCHAR2,
80       p_batch_id    IN NUMBER,
81       p_header_id   IN NUMBER,
82       p_line_id     IN NUMBER,
83       p_raise_error IN BOOLEAN DEFAULT TRUE
84    );
85 
86 /* This log_interface_error call assumes p_table = 'RCV_TRANSACTIONS_INTERFACE' */
87    PROCEDURE log_interface_error(
88       p_column      IN VARCHAR2,
89       p_raise_error IN BOOLEAN DEFAULT TRUE
90    );
91 
92 /* log_interface_error_message is for .lpc file style calls */
93    PROCEDURE log_interface_error_message(
94       p_error_message IN VARCHAR2
95    );
96 
97    PROCEDURE log_interface_warning(
98       p_table  IN VARCHAR2,
99       p_column IN VARCHAR2
100    );
101 
102 /* This log_interface_warning call assumes p_table = 'RCV_TRANSACTIONS_INTERFACE' */
103    PROCEDURE log_interface_warning(
104       p_column IN VARCHAR2
105    );
106 
107 /* log_interface_message takes an indicator variable and logs error/warning/ignore as appropriate*/
108    PROCEDURE log_interface_message(
109       p_error_status IN VARCHAR2,
110       p_table        IN VARCHAR2,
111       p_column       IN VARCHAR2,
112       p_raise_error  IN BOOLEAN DEFAULT TRUE
113    );
114 
115 /* This log_interface_message call assumes p_table = 'RCV_TRANSACTIONS_INTERFACE' */
116    PROCEDURE log_interface_message(
117       p_error_status IN VARCHAR2,
118       p_column       IN VARCHAR2,
119       p_raise_error  IN BOOLEAN DEFAULT TRUE
120    );
121 
122 /* This log_interface_message call ues the internal error flag what kind of message to log */
123    PROCEDURE log_interface_message(
124       p_column      IN VARCHAR2,
125       p_raise_error IN BOOLEAN DEFAULT TRUE
126    );
127 
128    PROCEDURE set_error_message(
129       p_message IN VARCHAR2
130    );
131 
132    PROCEDURE set_error_message(
133       p_message  IN            VARCHAR2,
134       p_variable IN OUT NOCOPY VARCHAR2
135    );
136 
137 /* set_token is overloaded for varchar2, number and date */
138    PROCEDURE set_token(
139       p_token IN VARCHAR2,
140       p_value IN VARCHAR2
141    );
142 
143    PROCEDURE set_token(
144       p_token IN VARCHAR2,
145       p_value IN NUMBER
146    );
147 
148    PROCEDURE set_token(
149       p_token IN VARCHAR2,
150       p_value IN DATE
151    );
152 
153 /* set_sql_error_message is a convenience function that sets the
154    error message and tokens as appropriate - equivalent to
155    calling set_error_message and set_tokens */
156    PROCEDURE set_sql_error_message(
157       p_procedure IN VARCHAR2,
158       p_progress  IN VARCHAR2
159    );
160 
161 /* test_is_null is a convenience function that tests if the value passed
162    is null, if so then it calls log_interface_error */
163    PROCEDURE test_is_null(
164       p_value         IN VARCHAR2,
165       p_table         IN VARCHAR2,
166       p_column        IN VARCHAR2,
167       p_error_message IN VARCHAR2
168    );
169 
170    PROCEDURE test_is_null(
171       p_value         IN VARCHAR2,
172       p_column        IN VARCHAR2,
173       p_error_message IN VARCHAR2 DEFAULT NULL
174    );
175 
176    PROCEDURE test_is_null(
177       p_value         IN NUMBER,
178       p_table         IN VARCHAR2,
179       p_column        IN VARCHAR2,
180       p_error_message IN VARCHAR2
181    );
182 
183    PROCEDURE test_is_null(
184       p_value         IN NUMBER,
185       p_column        IN VARCHAR2,
186       p_error_message IN VARCHAR2 DEFAULT NULL
187    );
188 
189    PROCEDURE test_is_null(
190       p_value         IN DATE,
191       p_table         IN VARCHAR2,
192       p_column        IN VARCHAR2,
193       p_error_message IN VARCHAR2
194    );
195 
196    PROCEDURE test_is_null(
197       p_value         IN DATE,
198       p_column        IN VARCHAR2,
199       p_error_message IN VARCHAR2 DEFAULT NULL
200    );
201 
202    FUNCTION check_and_reset_result
203       RETURN VARCHAR2;
204 
205    FUNCTION check_and_noreset_result
206       RETURN VARCHAR2;
207 
208    FUNCTION has_errors
209       RETURN BOOLEAN;
210 
211    PROCEDURE initialize(
212       p_interface_type IN VARCHAR2,
213       p_batch_id       IN NUMBER,
214       p_header_id      IN NUMBER,
215       p_line_id        IN NUMBER
216    );
217 
218    PROCEDURE initialize(
219       p_batch_id  IN NUMBER,
220       p_header_id IN NUMBER,
221       p_line_id   IN NUMBER
222    );
223 
224    PROCEDURE clear_messages;
225 
226    FUNCTION get_last_message
227       RETURN VARCHAR2;
228 
229    PROCEDURE default_and_check(
230       p_src_value IN            VARCHAR2,
231       p_dst_value IN OUT NOCOPY VARCHAR2,
232       p_column    IN            VARCHAR2
233    );
234 
235    PROCEDURE default_and_check(
236       p_src_value IN            NUMBER,
237       p_dst_value IN OUT NOCOPY NUMBER,
238       p_column    IN            VARCHAR2
239    );
240 
241    PROCEDURE default_and_check(
242       p_src_value IN            DATE,
243       p_dst_value IN OUT NOCOPY DATE,
244       p_column    IN            VARCHAR2
245    );
246 END rcv_error_pkg;