[Home] [Help]
PACKAGE BODY: APPS.JTF_DIAGNOSTIC_SYNC
Source
1 package body jtf_diagnostic_sync as
2 /* $Header: jtfdiagsyncb.pls 115.1 2003/07/30 00:48:16 navkumar noship $ */
3 PROCEDURE diagSyncAll
4 IS
5 key1 JTF_DIAGNOSTIC_CMAP.appName%TYPE;
6 key2 JTF_DIAGNOSTIC_CMAP.groupName%TYPE;
7 key3 JTF_DIAGNOSTIC_CMAP.testClassName%TYPE;
8 classList JTF_DIAGNOSTIC_LOG.versions%TYPE;
9 CURSOR diagnose IS
10 select
11 appName,
12 groupName,
13 testClassName,
14 versions
15 from
16 JTF_DIAGNOSTIC_LOG;
17 entries INTEGER := 0;
18 BEGIN
19 OPEN diagnose;
20 LOOP
21 FETCH diagnose into key1, key2, key3, classList;
22 EXIT WHEN diagnose%NOTFOUND;
23 entries := entries+diagsync(key1, key2, key3, classList);
24 END LOOP;
25 CLOSE diagnose;
26 END diagSyncAll;
27
28 FUNCTION diagsync( key1 JTF_DIAGNOSTIC_CMAP.appName%TYPE,
29 key2 JTF_DIAGNOSTIC_CMAP.groupName%TYPE,
30 key3 JTF_DIAGNOSTIC_CMAP.testClassName%TYPE,
31 classList JTF_DIAGNOSTIC_LOG.versions%TYPE)
32 RETURN INTEGER IS
33 entries INTEGER := 0;
34 x INTEGER := 0;
35 prev INTEGER;
36 className JTF_DIAGNOSTIC_CMAP.className%TYPE;
37 parseState INTEGER := -1;
38 parseString VARCHAR2(20);
39 BEGIN
40 -- entries := entries+diagentry(key1, key2, key3, key3);
41 delete from JTF_DIAGNOSTIC_CMAP
42 where
43 appName = key1
44 and groupName = key2
45 and testClassName = key3;
46
47 IF(classList IS NULL)
48 THEN
49 return entries;
50 END IF;
51
52 LOOP
53 IF(parseState = -1) THEN
54 parseState := 0;
55 parseString := '!#DIAGPAIR#!';
56 prev := x+1;
57 ELSIF(parseState = 0) THEN
58 parseState := 1;
59 parseString := '!#DIAGDELIM#!';
60 prev := x+12;
61 ELSE
62 parseState := 0;
63 parseString := '!#DIAGPAIR#!';
64 prev := x+13;
65 END IF;
66 x := instr(classList, parseString, prev);
67 if(x = 0) then
68 if(parseState = 0) then
69 className := substr(classList, prev);
70 entries := entries+diagentry(key1,key2,key3,className);
71 end if;
72 return entries;
73 end if;
74 if(parseState = 0) then
75 className := substr(classList, prev, x-prev);
76 entries := entries+diagentry(key1, key2, key3, className);
77 end if;
78 END LOOP;
79 END diagsync;
80
81 FUNCTION diagentry( key1 JTF_DIAGNOSTIC_CMAP.appName%TYPE,
82 key2 JTF_DIAGNOSTIC_CMAP.groupName%TYPE,
83 key3 JTF_DIAGNOSTIC_CMAP.testClassName%TYPE,
84 className JTF_DIAGNOSTIC_CMAP.className%TYPE)
85 RETURN INTEGER IS
86 BEGIN
87 insert into JTF_DIAGNOSTIC_CMAP(
88 appName,
89 groupName,
90 testClassName,
91 classname)
92 values (
93 key1,
94 key2,
95 key3,
96 className);
97 return 1;
98 EXCEPTION
99 WHEN OTHERS THEN
100 return 0;
101 END diagentry;
102
103 end jtf_diagnostic_sync;