9: l_clob clob;
10: l_return varchar2(4000);
11: l_pos number := 1;
12: begin
13: l_clob := dbms_aw.interp (p_cmd);
14: l_return := dbms_lob.substr(l_clob);
15:
16: if (l_return is null or length (l_return) = 0) then
17: return l_return;
32: l_ret varchar2(16);
33: l_aw varchar2(32);
34: begin
35: l_aw := p_schema||'.'||p_aw;
36: dbms_aw.execute ('awwaittime = 200');
37: if (upper (CALL_AW('shw aw (attached '''||p_aw||''')')) = 'YES' and
38: upper(CALL_AW('shw aw (rw '''||p_aw||''')')) = 'NO') then
39: dbms_aw.execute ('aw detach '||p_aw);
40: end if;
35: l_aw := p_schema||'.'||p_aw;
36: dbms_aw.execute ('awwaittime = 200');
37: if (upper (CALL_AW('shw aw (attached '''||p_aw||''')')) = 'YES' and
38: upper(CALL_AW('shw aw (rw '''||p_aw||''')')) = 'NO') then
39: dbms_aw.execute ('aw detach '||p_aw);
40: end if;
41: if (upper (CALL_AW('shw aw (attached '''||p_aw||''')')) <> 'YES') then
42: dbms_aw.execute ('aw attach '||l_aw||' rw wait');
43: end if;
38: upper(CALL_AW('shw aw (rw '''||p_aw||''')')) = 'NO') then
39: dbms_aw.execute ('aw detach '||p_aw);
40: end if;
41: if (upper (CALL_AW('shw aw (attached '''||p_aw||''')')) <> 'YES') then
42: dbms_aw.execute ('aw attach '||l_aw||' rw wait');
43: end if;
44: end ATTACH_AW;
45:
46: procedure CREATE_OBJECT(p_object_name in varchar2,
51: l_ret varchar2(16);
52: begin
53: if (upper (CALL_AW('shw exists ('''||p_object_name||''')')) = 'YES') then
54: if (p_object_type = 'DIMENSION') then
55: dbms_aw.execute ('cns '||p_object_name);
56: dbms_aw.execute ('property delete all');
57: else
58: dbms_aw.execute ('dlt '||p_object_name);
59: dbms_aw.execute ('dfn '||p_object_name||' '||p_object_type||' '||
52: begin
53: if (upper (CALL_AW('shw exists ('''||p_object_name||''')')) = 'YES') then
54: if (p_object_type = 'DIMENSION') then
55: dbms_aw.execute ('cns '||p_object_name);
56: dbms_aw.execute ('property delete all');
57: else
58: dbms_aw.execute ('dlt '||p_object_name);
59: dbms_aw.execute ('dfn '||p_object_name||' '||p_object_type||' '||
60: p_object_attributes);
54: if (p_object_type = 'DIMENSION') then
55: dbms_aw.execute ('cns '||p_object_name);
56: dbms_aw.execute ('property delete all');
57: else
58: dbms_aw.execute ('dlt '||p_object_name);
59: dbms_aw.execute ('dfn '||p_object_name||' '||p_object_type||' '||
60: p_object_attributes);
61: end if;
62: else
55: dbms_aw.execute ('cns '||p_object_name);
56: dbms_aw.execute ('property delete all');
57: else
58: dbms_aw.execute ('dlt '||p_object_name);
59: dbms_aw.execute ('dfn '||p_object_name||' '||p_object_type||' '||
60: p_object_attributes);
61: end if;
62: else
63: dbms_aw.execute ('dfn '||p_object_name||' '||p_object_type||' '||
59: dbms_aw.execute ('dfn '||p_object_name||' '||p_object_type||' '||
60: p_object_attributes);
61: end if;
62: else
63: dbms_aw.execute ('dfn '||p_object_name||' '||p_object_type||' '||
64: p_object_attributes);
65: end if;
66: dbms_aw.execute ('ld '||p_object_ld);
67: m_curr_obj := p_object_name;
62: else
63: dbms_aw.execute ('dfn '||p_object_name||' '||p_object_type||' '||
64: p_object_attributes);
65: end if;
66: dbms_aw.execute ('ld '||p_object_ld);
67: m_curr_obj := p_object_name;
68: end CREATE_OBJECT;
69:
70: procedure DELETE_OBJECT(p_object_name in varchar2)
70: procedure DELETE_OBJECT(p_object_name in varchar2)
71: is
72: begin
73: if(upper (CALL_AW('shw exists ('''||p_object_name||''')')) = 'YES') then
74: dbms_aw.execute('delete ' || p_object_name);
75: end if;
76: end DELETE_OBJECT;
77:
78: procedure LOAD_DIMENSION_INT(p_dimension_size in number)
81: l_diff number;
82: begin
83: l_size := to_number(CALL_AW('shw obj(dimmax '''||m_curr_obj||''')'));
84: if (l_size < p_dimension_size) then
85: dbms_aw.execute('mnt '||m_curr_obj||' add '||
86: (p_dimension_size - l_size));
87: elsif (l_size > p_dimension_size) then
88: dbms_aw.execute('mnt '||m_curr_obj||' delete last '||
89: (l_size - p_dimension_size));
84: if (l_size < p_dimension_size) then
85: dbms_aw.execute('mnt '||m_curr_obj||' add '||
86: (p_dimension_size - l_size));
87: elsif (l_size > p_dimension_size) then
88: dbms_aw.execute('mnt '||m_curr_obj||' delete last '||
89: (l_size - p_dimension_size));
90: end if;
91: end LOAD_DIMENSION_INT;
92:
110: end if;
111:
112: if (upper (CALL_AW ('shw isvalue ('||m_curr_obj||' '||l_value||')'))
113: = 'NO') then
114: dbms_aw.execute ('mnt '||m_curr_obj||' add '||l_value||'');
115: end if;
116: dbms_aw.execute('mnt '||m_curr_obj||' move '||l_value||' after '||i);
117: i := i + 1;
118: end loop;
112: if (upper (CALL_AW ('shw isvalue ('||m_curr_obj||' '||l_value||')'))
113: = 'NO') then
114: dbms_aw.execute ('mnt '||m_curr_obj||' add '||l_value||'');
115: end if;
116: dbms_aw.execute('mnt '||m_curr_obj||' move '||l_value||' after '||i);
117: i := i + 1;
118: end loop;
119:
120:
121: -- Remove extra entries:
122:
123: l_size := to_number(CALL_AW ('shw obj(dimmax '''||m_curr_obj||''')'));
124: if (l_size > i) then
125: dbms_aw.execute ('lmt '||m_curr_obj||' to last '||(l_size - i));
126: dbms_aw.execute ('mnt '||m_curr_obj||' delete values('||m_curr_obj||')');
127: end if;
128:
129: end LOAD_DIMENSION_VALUES;
122:
123: l_size := to_number(CALL_AW ('shw obj(dimmax '''||m_curr_obj||''')'));
124: if (l_size > i) then
125: dbms_aw.execute ('lmt '||m_curr_obj||' to last '||(l_size - i));
126: dbms_aw.execute ('mnt '||m_curr_obj||' delete values('||m_curr_obj||')');
127: end if;
128:
129: end LOAD_DIMENSION_VALUES;
130:
130:
131: procedure LOAD_FORMULA(p_formula in varchar2)
132: is
133: begin
134: dbms_aw.execute ('cns '||m_curr_obj);
135: dbms_aw.execute('eq '||p_formula);
136: end LOAD_FORMULA;
137:
138: procedure LOAD_MODEL(p_model in varchar2)
131: procedure LOAD_FORMULA(p_formula in varchar2)
132: is
133: begin
134: dbms_aw.execute ('cns '||m_curr_obj);
135: dbms_aw.execute('eq '||p_formula);
136: end LOAD_FORMULA;
137:
138: procedure LOAD_MODEL(p_model in varchar2)
139: is
137:
138: procedure LOAD_MODEL(p_model in varchar2)
139: is
140: begin
141: dbms_aw.execute ('cns '||m_curr_obj);
142: dbms_aw.execute('model;'||p_model||';end');
143: end LOAD_MODEL;
144:
145: procedure LOAD_PROGRAM(p_program in CLOB)
138: procedure LOAD_MODEL(p_model in varchar2)
139: is
140: begin
141: dbms_aw.execute ('cns '||m_curr_obj);
142: dbms_aw.execute('model;'||p_model||';end');
143: end LOAD_MODEL;
144:
145: procedure LOAD_PROGRAM(p_program in CLOB)
146: is
146: is
147: templob CLOB;
148: begin
149: templob := 'program;';
150: dbms_aw.execute ('cns '||m_curr_obj);
151: dbms_lob.append(templob, p_program);
152: dbms_lob.append(templob, ';end');
153: templob := dbms_aw.interpclob(templob);
154: end LOAD_PROGRAM;
149: templob := 'program;';
150: dbms_aw.execute ('cns '||m_curr_obj);
151: dbms_lob.append(templob, p_program);
152: dbms_lob.append(templob, ';end');
153: templob := dbms_aw.interpclob(templob);
154: end LOAD_PROGRAM;
155:
156: procedure LOAD_PROPERTIES(p_properties in PROP_VALUES)
157: is
156: procedure LOAD_PROPERTIES(p_properties in PROP_VALUES)
157: is
158: l_key varchar2(32);
159: begin
160: dbms_aw.execute ('cns '||m_curr_obj);
161: l_key := p_properties.FIRST;
162: while (l_key is not null)
163: loop
164: dbms_aw.execute('prp '''||l_key||''' '||p_properties(l_key));
160: dbms_aw.execute ('cns '||m_curr_obj);
161: l_key := p_properties.FIRST;
162: while (l_key is not null)
163: loop
164: dbms_aw.execute('prp '''||l_key||''' '||p_properties(l_key));
165: l_key := p_properties.NEXT(l_key);
166: end loop;
167: end LOAD_PROPERTIES;
168:
171: i number := 0;
172: l_value varchar2(32);
173: l_size number;
174: begin
175: dbms_aw.execute('lmt '||m_curr_obj||' to null');
176: loop
177: if not p_dimension_values.exists(i) then
178: exit;
179: end if;
177: if not p_dimension_values.exists(i) then
178: exit;
179: end if;
180: l_value := p_dimension_values(i);
181: dbms_aw.execute('lmt '||m_curr_obj||' add '||l_value);
182: i := i + 1;
183: end loop;
184:
185: end LOAD_VALUESET;
186:
187: procedure UPDATE_AW
188: is
189: begin
190: dbms_aw.execute ('upd');
191: end UPDATE_AW;
192: begin
193: m_ascii_nl := ascii(fnd_global.local_chr(10));
194: end AD_AW_LOADER;