1 TYPE BODY "JTF_DIAG_MESSAGE" AS
2 MEMBER FUNCTION CONSTRUCT_NODE RETURN VARCHAR2 IS
3 STR VARCHAR2(32000);
4 BEGIN
5 STR := '<node messageType="' || self.MESSAGE_TYPE || '">';
6 IF MESSAGE IS NOT NULL THEN
7 STR := STR || '<content>' || self.MESSAGE || '</content>';
8 ELSE
9 STR := STR || '<content></content>';
10 END IF;
11 IF ACTION IS NOT NULL THEN
12 STR := STR || '<action>' || self.ACTION || '</action>';
13 ELSE
14 STR := STR || '<action></action>';
15 END IF;
16 STR := STR || ' <row>';
17 STR := STR || '<col>' || self.MESSAGE_NOTE_ID || '</col>';
18 STR := STR || '<col>' || self.ACTION_NOTE_ID || '</col>';
19 STR := STR || ' </row>';
20 STR := STR || ' </node>';
21 RETURN STR;
22 END CONSTRUCT_NODE;
23 MEMBER PROCEDURE SET_ACTION(ACTION VARCHAR2) IS
24 BEGIN
25 IF ADDED_TO_PARENT = 0 THEN
26 IF ACTION is not null then
27 SELF.ACTION := DBMS_XMLGEN.CONVERT(ACTION,0);
28 END IF;
29 ELSE
30 RAISE_APPLICATION_ERROR(-20100, 'Message component has already been added to
31 the report');
32 END IF;
33 END SET_ACTION;
34
35 MEMBER PROCEDURE SET_ACTION(note in OUT NOCOPY JTF_DIAG_NOTE) IS
36 STR VARCHAR2(32000);
37 BEGIN
38 IF ADDED_TO_PARENT = 0 THEN
39 IF note is not null then
40 SELF.ACTION_NOTE_ID := note.UI_NODE_ID;
41 IF note.ADDED_TO_PARENT <> 1 THEN
42 STR := note.CONSTRUCT_NODE;
43 INSERT INTO JTF_DIAGNOSTIC_REPORT
44 (Execution_ID,UI_Node_ID,type,xmldata,parent_node_id)
45 VALUES(SELF.EXEC_ID
46 ,note.UI_Node_ID
47 ,'note'
48 ,xmltype(STR)
49 ,SELF.UI_NODE_ID);
50 note.SET_ADDED_TO_PARENT;
51 ELSE
52 RAISE_APPLICATION_ERROR(-20100,'The Note component cannot be added
53 to the parent component again');
54 END IF;
55 END IF;
56 ELSE
57 RAISE_APPLICATION_ERROR(-20100, 'Message component has already been added to
58 the report');
59 END IF;
60 END SET_ACTION;
61
62 MEMBER PROCEDURE SET_ADDED_TO_PARENT IS
63 BEGIN
64 SELF.ADDED_TO_PARENT := 1;
65 END SET_ADDED_TO_PARENT;
66
67 END;
68