1: PACKAGE BODY wf_core AS
2: /* $Header: wfcoreb.pls 120.12.12010000.2 2008/12/04 00:20:33 alepe ship $ */
3:
4: --
5: -- Token List
51: -- none
52: --
53: procedure Clear is
54: begin
55: wf_core.error_name := '';
56: wf_core.error_number := '';
57: wf_core.error_message := '';
58: wf_core.error_stack := '';
59: token_counter := 0;
52: --
53: procedure Clear is
54: begin
55: wf_core.error_name := '';
56: wf_core.error_number := '';
57: wf_core.error_message := '';
58: wf_core.error_stack := '';
59: token_counter := 0;
60: end Clear;
53: procedure Clear is
54: begin
55: wf_core.error_name := '';
56: wf_core.error_number := '';
57: wf_core.error_message := '';
58: wf_core.error_stack := '';
59: token_counter := 0;
60: end Clear;
61:
54: begin
55: wf_core.error_name := '';
56: wf_core.error_number := '';
57: wf_core.error_message := '';
58: wf_core.error_stack := '';
59: token_counter := 0;
60: end Clear;
61:
62: --
79: err_stack out nocopy varchar2,
80: maxErrStackLength in number )
81: is
82: begin
83: err_name := wf_core.error_name;
84: err_message := wf_core.error_message;
85: err_stack := substrb(wf_core.error_stack, 1, maxErrStackLength);
86: wf_core.clear;
87: end Get_Error;
80: maxErrStackLength in number )
81: is
82: begin
83: err_name := wf_core.error_name;
84: err_message := wf_core.error_message;
85: err_stack := substrb(wf_core.error_stack, 1, maxErrStackLength);
86: wf_core.clear;
87: end Get_Error;
88:
81: is
82: begin
83: err_name := wf_core.error_name;
84: err_message := wf_core.error_message;
85: err_stack := substrb(wf_core.error_stack, 1, maxErrStackLength);
86: wf_core.clear;
87: end Get_Error;
88:
89: --
82: begin
83: err_name := wf_core.error_name;
84: err_message := wf_core.error_message;
85: err_stack := substrb(wf_core.error_stack, 1, maxErrStackLength);
86: wf_core.clear;
87: end Get_Error;
88:
89: --
90: -- Token
130: and NAME = mname
131: and LANGUAGE = userenv('LANG');
132: exception
133: when NO_DATA_FOUND then
134: wf_core.token('NAME', mname);
135: wf_core.token('TYPE', mtype);
136: wf_core.raise('WFCORE_NO_MESSAGE');
137: end;
138:
131: and LANGUAGE = userenv('LANG');
132: exception
133: when NO_DATA_FOUND then
134: wf_core.token('NAME', mname);
135: wf_core.token('TYPE', mtype);
136: wf_core.raise('WFCORE_NO_MESSAGE');
137: end;
138:
139: -- Substitute tokens in message
132: exception
133: when NO_DATA_FOUND then
134: wf_core.token('NAME', mname);
135: wf_core.token('TYPE', mtype);
136: wf_core.raise('WFCORE_NO_MESSAGE');
137: end;
138:
139: -- Substitute tokens in message
140: i := 0;
255: is
256: l_translated_string VARCHAR2(4000);
257: begin
258:
259: l_translated_string := wf_core.get_message('WFTKN', tkn_name);
260:
261: return (l_translated_string);
262:
263: exception
277: procedure Raise(name in varchar2)
278: is
279: begin
280: -- Set error name
281: wf_core.error_name := name;
282:
283: -- Get substituted message
284: wf_core.error_message := Wf_Core.Get_Message('WFERR', name);
285:
280: -- Set error name
281: wf_core.error_name := name;
282:
283: -- Get substituted message
284: wf_core.error_message := Wf_Core.Get_Message('WFERR', name);
285:
286: -- Select error number
287: begin
288: SELECT ID
285:
286: -- Select error number
287: begin
288: SELECT ID
289: INTO wf_core.error_number
290: FROM WF_RESOURCES
291: WHERE TYPE = 'WFERR'
292: and NAME = Raise.name
293: and LANGUAGE = userenv('LANG');
292: and NAME = Raise.name
293: and LANGUAGE = userenv('LANG');
294: exception
295: when NO_DATA_FOUND then
296: wf_core.error_number := '';
297: end;
298:
299: -- Prepend error number to message if available
300: if (wf_core.error_number is not null) then
296: wf_core.error_number := '';
297: end;
298:
299: -- Prepend error number to message if available
300: if (wf_core.error_number is not null) then
301: wf_core.error_message := substrb(to_char(wf_core.error_number)||
302: ': '||wf_core.error_message, 1, 2000);
303: end if;
304:
297: end;
298:
299: -- Prepend error number to message if available
300: if (wf_core.error_number is not null) then
301: wf_core.error_message := substrb(to_char(wf_core.error_number)||
302: ': '||wf_core.error_message, 1, 2000);
303: end if;
304:
305: -- Raise the error
298:
299: -- Prepend error number to message if available
300: if (wf_core.error_number is not null) then
301: wf_core.error_message := substrb(to_char(wf_core.error_number)||
302: ': '||wf_core.error_message, 1, 2000);
303: end if;
304:
305: -- Raise the error
306: raise_application_error(-20002, wf_core.error_message);
302: ': '||wf_core.error_message, 1, 2000);
303: end if;
304:
305: -- Raise the error
306: raise_application_error(-20002, wf_core.error_message);
307: exception
308: when others then
309: raise;
310: end Raise;
335:
336: buf varchar2(32000);
337: begin
338: -- Start with package and proc name.
339: buf := wf_core.newline||pkg_name||'.'||proc_name||'(';
340:
341: -- Add all defined args.
342: if (arg1 <> '*none*') then
343: buf := substrb(buf||arg1, 1, 32000);
372:
373: buf := substrb(buf||')', 1, 32000);
374:
375: -- Concatenate to the error_stack buffer
376: wf_core.error_stack := substrb(wf_core.error_stack||buf, 1, 32000);
377:
378: end Context;
379:
380: -- *** RANDOM ***
810: function Newline
811: return varchar2
812: is
813: begin
814: return(Wf_Core.Local_Chr(10));
815: end Newline;
816:
817: -- Tab
818: -- Return tab character in current codeset
819: function Tab
820: return varchar2
821: is
822: begin
823: return(Wf_Core.Local_Chr(9));
824: end Tab;
825:
826: -- CR - CarriageReturn
827: -- Return CR character in current codeset.
828: function CR
829: return varchar2
830: is
831: begin
832: return(WF_CORE.Local_Chr(13));
833: end CR;
834:
835: --
836: -- CheckIllegalChars (PRIVATE)
851: loop
852: l_illegal_char := substr(l_charset,i,1);
853: if (instr(p_text,l_illegal_char)>0) then
854: if (p_raise_exception) then
855: wf_core.token('TEXT', p_text);
856: wf_core.raise('WF_ILLEGAL_CHARS');
857: -- ### Illegal characters found in 'TEXT'
858: end if;
859: return true;
852: l_illegal_char := substr(l_charset,i,1);
853: if (instr(p_text,l_illegal_char)>0) then
854: if (p_raise_exception) then
855: wf_core.token('TEXT', p_text);
856: wf_core.raise('WF_ILLEGAL_CHARS');
857: -- ### Illegal characters found in 'TEXT'
858: end if;
859: return true;
860: end if;
1011:
1012:
1013:
1014:
1015: end WF_CORE;