DBA Data[Home] [Help]

PACKAGE BODY: APPS.JTF_BRM_UTILITY_PVT

Source


1 PACKAGE BODY JTF_BRM_UTILITY_PVT AS
2 /* $Header: jtfvbutb.pls 115.8 2002/02/14 13:18:30 pkm ship     $ */
3 
4 FUNCTION Attribute_Format
5 /************************************************************
6 ** This function is used in the JTF_BRM_ATTR_VALUES_V view
7 ** to retriev and format the workflow attribute value so
8 ** it can be queried as a text item in the JTFBRWKB form
9 ************************************************************/
10 ( p_attribute_type       IN VARCHAR2
11 , p_text_value           IN VARCHAR2
12 , p_number_value         IN NUMBER
13 , p_date_value           IN DATE
14 , p_format               IN VARCHAR2
15 )RETURN VARCHAR2
16 IS
17   CURSOR c_lookup
18   (b_lookup_type  IN VARCHAR2
19   ,b_lookup_code  IN VARCHAR2
20   )IS SELECT meaning
21       FROM   wf_lookups
22       WHERE lookup_type = b_lookup_type
23       AND   lookup_code = b_lookup_code;
24 
25   l_meaning  VARCHAR2(80);
26 
27   BEGIN
28     IF (p_attribute_type = 'VARCHAR2')
29     THEN
30       RETURN p_text_value;
31     ELSIF (p_attribute_type = 'NUMBER')
32     THEN
33       RETURN to_char(p_number_value);
34     ELSIF (p_attribute_type = 'DATE')
35     THEN
36       /*********************************************************************
37       ** If a format mask is defined in Workflow use it
38       *********************************************************************/
39       IF (p_format IS NOT NULL)
40       THEN
41         RETURN to_char(p_date_value,p_format);
42       ELSE
43         /*********************************************************************
44         ** If no format mask is defined use the default APPS format
45         *********************************************************************/
46         RETURN to_char(p_date_value,'DD/MM/YYYY');
47       END IF;
48     ELSIF (p_attribute_type = 'LOOKUP')
49     THEN
50       /*********************************************************************
51       ** go and lookup the meaning, so it can be displayed
52       *********************************************************************/
53       IF (c_lookup%ISOPEN)
54       THEN
55         CLOSE c_lookup;
56       END IF;
57       OPEN c_lookup(p_format
58                    ,p_text_value
59                    );
60       FETCH c_lookup INTO l_meaning;
61       IF (c_lookup%FOUND)
62       THEN
63         CLOSE c_lookup;
64         RETURN l_meaning;
65       ELSE
66         CLOSE c_lookup;
67         RETURN NULL;
68       END IF;
69     ELSE
70       RETURN NULL;
71     END IF;
72   END Attribute_Format;
73 
74 
75   FUNCTION Attribute_Code
76   /************************************************************
77   **
78   ** - If an attribute lookup value is specified for the rule
79   **   the LOOKUP_CODE will be returned.
80   ** - If no attribute lookup value is specified for the rule
81   **   the default value will be returned
82   **
83   ************************************************************/
84   (p_rule_id               IN VARCHAR2
85   ,p_wf_item_type          IN VARCHAR2
86   ,p_wf_process_name       IN VARCHAR2
87   ,p_wf_attribute_name     IN VARCHAR2
88   )RETURN VARCHAR2
89   IS
90 
91   CURSOR c_set
92   ( b_rule_id              IN VARCHAR2
93   , b_wf_item_type         IN VARCHAR2
94   , b_wf_process_name      IN VARCHAR2
95   , b_wf_attribute_name    IN VARCHAR2
96   )IS SELECT val.wf_attribute_type    attribute_type
97       ,      val.text_value           attribute_value
98       FROM jtf_brm_wf_attr_values_v   val
99       ,    jtf_brm_processes          pro
100       WHERE pro.rule_id                = b_rule_id
101       AND   pro.workflow_item_type     = b_wf_item_type
102       AND   pro.process_id             = val.wf_process_id
103       AND   pro.workflow_item_type     = val.wf_item_type
104       AND   pro.workflow_process_name  = val.wf_process_name
105       AND   val.wf_process_name        = b_wf_process_name
106       AND   val.wf_attribute_name      = b_wf_attribute_name;
107 
108   CURSOR c_default
109   ( b_wf_item_type         IN VARCHAR2
110   , b_wf_process_name      IN VARCHAR2
111   , b_wf_attribute_name    IN VARCHAR2
112   )IS SELECT wf1.text_default    attribute_value
113       FROM wf_activity_attributes_vl wf1
114       WHERE wf1.activity_version = (SELECT max(wf2.activity_version)
115                                     FROM wf_activity_attributes_vl wf2
116                                     WHERE wf2.activity_item_type = wf1.activity_item_type
117                                     AND   wf2.activity_name      = wf1.activity_name
118                                     )
119       AND wf1.activity_item_type = b_wf_item_type
120       AND wf1.activity_name      = b_wf_process_name
121       AND wf1.name               = b_wf_attribute_name;
122 
123 
124   r_set     c_set%ROWTYPE;
125   r_default c_default%ROWTYPE;
126 
127   BEGIN
128     IF (c_set%ISOPEN)
129     THEN
130       CLOSE c_set;
131     END IF;
132 
133     OPEN c_set(p_rule_id
134               ,p_wf_item_type
135               ,p_wf_process_name
136               ,p_wf_attribute_name
137               );
138     FETCH c_set INTO r_set;
139     IF (c_set%FOUND)
140     THEN
141       CLOSE c_set;
142       IF (r_set.attribute_type = 'LOOKUP')
143       THEN
144         RETURN r_set.attribute_value;
145       ELSE
146         RETURN NULL;
147       END IF;
148     ELSE
149       CLOSE c_set;
150       IF (c_default%ISOPEN)
151       THEN
152         CLOSE c_default;
153       END IF;
154       OPEN c_default(p_wf_item_type
155                     ,p_wf_process_name
156                     ,p_wf_attribute_name
157                     );
158       FETCH c_default INTO r_default;
159       IF (c_default%FOUND)
160       THEN
161         CLOSE c_default;
162         RETURN r_default.attribute_value;
163       ELSE
164         CLOSE c_default;
165         RETURN NULL;
166       END IF;
167     END IF;
168   EXCEPTION
169   WHEN OTHERS
170   THEN
171     RETURN NULL;
172   END Attribute_Code;
173 
174   FUNCTION Attribute_Meaning
175   /************************************************************
176   **
177   ** - If an attribute lookup value is specified for the rule
178   **   the Meaning will be returned.
179   ** - If no attribute lookup value is specified for the rule
180   **   the default value will be returned
181   **
182   ************************************************************/
183   (p_rule_id               IN VARCHAR2
184   ,p_wf_item_type          IN VARCHAR2
185   ,p_wf_process_name       IN VARCHAR2
186   ,p_wf_attribute_name     IN VARCHAR2
187   )RETURN VARCHAR2
188   IS
189 
190   CURSOR c_set
191   ( b_rule_id              IN VARCHAR2
192   , b_wf_item_type         IN VARCHAR2
193   , b_wf_process_name      IN VARCHAR2
194   , b_wf_attribute_name    IN VARCHAR2
195   )IS SELECT val.wf_attribute_type    attribute_type
196       ,      val.text_value           attribute_value
197       ,      wlu.meaning              attribute_meaning
198       FROM jtf_brm_wf_attr_values_v   val
199       ,    jtf_brm_processes          pro
200       ,    wf_lookups                 wlu
201       WHERE pro.rule_id                = b_rule_id
202       AND   pro.workflow_item_type     = b_wf_item_type
203       AND   pro.process_id             = val.wf_process_id
204       AND   pro.workflow_item_type     = val.wf_item_type
205       AND   pro.workflow_process_name  = val.wf_process_name
206       AND   val.wf_process_name        = b_wf_process_name
207       AND   val.wf_attribute_name      = b_wf_attribute_name
208       AND   wlu.lookup_type            = val.wf_attribute_format
209       AND   wlu.lookup_code            = val.text_value
210       ;
211 
212   CURSOR c_default
213   ( b_wf_item_type         IN VARCHAR2
214   , b_wf_process_name      IN VARCHAR2
215   , b_wf_attribute_name    IN VARCHAR2
216   )IS SELECT wf1.text_default    attribute_value
217       ,      wlu.meaning         attribute_meaning
218       FROM wf_activity_attributes_vl wf1
219       ,    wf_lookups                wlu
220       WHERE wf1.activity_version = (SELECT max(wf2.activity_version)
221                                     FROM wf_activity_attributes_vl wf2
222                                     WHERE wf2.activity_item_type = wf1.activity_item_type
223                                     AND   wf2.activity_name      = wf1.activity_name
224                                     )
225       AND wf1.activity_item_type = b_wf_item_type
226       AND wf1.activity_name      = b_wf_process_name
227       AND wf1.name               = b_wf_attribute_name
228       AND wlu.lookup_type        = wf1.format
229       AND wlu.LOOKUP_CODE        = wf1.text_default
230       ;
231 
232   r_set     c_set%ROWTYPE;
233   r_default c_default%ROWTYPE;
234 
235   BEGIN
236     IF (c_set%ISOPEN)
237     THEN
238       CLOSE c_set;
239     END IF;
240 
241     OPEN c_set(p_rule_id
242               ,p_wf_item_type
243               ,p_wf_process_name
244               ,p_wf_attribute_name
245               );
246     FETCH c_set INTO r_set;
247     IF (c_set%FOUND)
248     THEN
249       CLOSE c_set;
250       IF (r_set.attribute_type = 'LOOKUP')
251       THEN
252         RETURN r_set.attribute_meaning;
253       ELSE
254         RETURN NULL;
255       END IF;
256     ELSE
257       CLOSE c_set;
258       IF (c_default%ISOPEN)
259       THEN
260         CLOSE c_default;
261       END IF;
262       OPEN c_default(p_wf_item_type
263                     ,p_wf_process_name
264                     ,p_wf_attribute_name
265                     );
266       FETCH c_default INTO r_default;
267       IF (c_default%FOUND)
268       THEN
269         CLOSE c_default;
270         RETURN r_default.attribute_meaning;
271       ELSE
272         CLOSE c_default;
273         RETURN NULL;
274       END IF;
275     END IF;
276   EXCEPTION
277   WHEN OTHERS
278   THEN
279     RETURN NULL;
280   END Attribute_Meaning;
281 
282 END JTF_BRM_UTILITY_PVT;