DBA Data[Home] [Help]

PACKAGE BODY: APPS.INV_EBI_UTIL

Source


1 PACKAGE BODY INV_EBI_UTIL AS
2 /* $Header: INVEIUTLB.pls 120.13.12010000.5 2009/04/06 11:50:41 prepatel ship $ */
3 
4 /************************************************************************************
5 --      API name        : is_pim_installed
6 --      Type            : Public
7 --      Function        :
8 ************************************************************************************/
9 FUNCTION is_pim_installed RETURN BOOLEAN IS
10   l_pimdl_profile_value FND_PROFILE_OPTION_VALUES.profile_option_value%TYPE;
11 BEGIN
12 l_pimdl_profile_value := FND_PROFILE.value('EGO_ENABLE_PIMDL');
13 IF (l_pimdl_profile_value = 1) THEN
14   RETURN TRUE;
15 ELSE
16   RETURN FALSE;
17 END IF;
18 EXCEPTION
19   WHEN OTHERS THEN
20   RETURN FALSE;
21 END is_pim_installed;
22 
23 /************************************************************************************
24 --      API name        : get_config_param_value
25 --      Type            : Public
26 --      Function        :
27 ************************************************************************************/
28 FUNCTION get_config_param_value(
29   p_config_tbl        IN inv_ebi_name_value_tbl
30  ,p_config_param_name IN VARCHAR2
31 ) RETURN VARCHAR IS
32   l_config_param_value  VARCHAR2(2000);
33 BEGIN
34   IF(p_config_tbl IS NOT NULL AND p_config_tbl.COUNT > 0) THEN
35     FOR i IN 1..p_config_tbl.COUNT LOOP
36       IF (UPPER(p_config_tbl(i).param_name) = UPPER(p_config_param_name))THEN
37         l_config_param_value  := p_config_tbl(i).param_value;
38         RETURN l_config_param_value;
39       END IF;
40     END LOOP;
41   END IF;
42   RETURN NULL;
43 EXCEPTION
44    WHEN OTHERS THEN
45       RETURN NULL;
46 END get_config_param_value;
47 
48 /************************************************************************************
49  --      API name        : is_master_org
50  --      Type            : Public
51  --      Function        : FOR ORG ID
52  ************************************************************************************/
53  FUNCTION is_master_org(
54    p_organization_id IN   NUMBER
55  ) RETURN VARCHAR IS
56    l_master_org NUMBER;
57   BEGIN
58 
59     SELECT master_organization_id INTO l_master_org
60     FROM mtl_parameters
61     WHERE organization_id = p_organization_id;
62 
63     IF(l_master_org = p_organization_id) THEN
64       RETURN FND_API.g_true;
65     ELSE
66       RETURN FND_API.g_false;
67     END IF;
68   EXCEPTION
69     WHEN OTHERS THEN
70       RETURN FND_API.g_false;
71  END is_master_org;
72 
73 /************************************************************************************
74  --      API name        : is_master_org
75  --      Type            : Public
76  --      Function        : FOR ORG CODE.
77  ************************************************************************************/
78 FUNCTION is_master_org(
79    p_organization_code IN   VARCHAR2
80  ) RETURN VARCHAR IS
81    l_master_org NUMBER;
82   BEGIN
83         SELECT COUNT(1) INTO l_master_org
84         FROM mtl_parameters
85         WHERE organization_id = master_organization_id
86         AND organization_code = p_organization_code;
87 
88     IF(l_master_org > 0) THEN
89       RETURN FND_API.g_true;
90     ELSE
91       RETURN FND_API.g_false;
92     END IF;
93   EXCEPTION
94     WHEN OTHERS THEN
95       RETURN FND_API.g_false;
96  END is_master_org;
97 
98  /************************************************************************************
99  --      API name        : get_master_organization
100  --      Type            : Public
101  --      Function        :
102  ************************************************************************************/
103  FUNCTION get_master_organization(
104    p_organization_id IN NUMBER
105  ) RETURN NUMBER IS
106    l_master_org  NUMBER;
107  BEGIN
108 
109    SELECT master_organization_id INTO l_master_org
110    FROM mtl_parameters
111    WHERE organization_id = p_organization_id;
112 
113    RETURN l_master_org;
114  EXCEPTION
115    WHEN OTHERS THEN
116      RETURN NULL;
117  END get_master_organization;
118 
119  /************************************************************************************
120   --      API name        : get_error_table
121   --      Type            : Public
122   --      Function        :
123  ************************************************************************************/
124  FUNCTION get_error_table RETURN inv_ebi_error_tbl_type IS
125    l_error_table              ERROR_HANDLER.error_tbl_type;
126    l_inv_ebi_err_tbl          inv_ebi_error_tbl_type;
127  BEGIN
128    l_inv_ebi_err_tbl := inv_ebi_error_tbl_type();
129    ERROR_HANDLER.get_message_list( x_message_list  =>  l_error_table );
130      FOR i IN 1..l_error_table.COUNT
131      LOOP
132        l_inv_ebi_err_tbl.EXTEND(1);
133        l_inv_ebi_err_tbl(i)  := inv_ebi_error_rec_type(NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
134        l_inv_ebi_err_tbl(i).organization_id :=  l_error_table(i).organization_id;
135        l_inv_ebi_err_tbl(i).entity_id       :=  l_error_table(i).entity_id;
136        l_inv_ebi_err_tbl(i).table_name      :=  l_error_table(i).table_name ;
137        l_inv_ebi_err_tbl(i).message_name    :=  l_error_table(i).message_name;
138        l_inv_ebi_err_tbl(i).message_text    :=  l_error_table(i).message_text;
139        l_inv_ebi_err_tbl(i).entity_index    :=  l_error_table(i).entity_index;
140        l_inv_ebi_err_tbl(i).message_type    :=  l_error_table(i).message_type ;
141        l_inv_ebi_err_tbl(i).row_identifier  :=  l_error_table(i).row_identifier;
142        l_inv_ebi_err_tbl(i).bo_identifier   :=  l_error_table(i).bo_identifier;
143      END LOOP;
144    RETURN l_inv_ebi_err_tbl;
145  EXCEPTION
146  WHEN OTHERS THEN
147    RETURN NULL;
148  END get_error_table;
149 
150 
151  /************************************************************************************
152   --      API name        : get_error_table_msgtxt
153   --      Type            : Public
154   --      Function        :
155  ************************************************************************************/
156  FUNCTION get_error_table_msgtxt (
157    p_error_table      IN        inv_ebi_error_tbl_type
158    )
159  RETURN VARCHAR2 IS
160    l_msg_text                 VARCHAR2(32000);
161    l_part_msg_txt             VARCHAR2(32000);
162    l_overflw_msg              VARCHAR2(1) := 'N';
163  BEGIN
164    IF (p_error_table IS NOT NULL AND p_error_table.COUNT > 0) THEN
165      FOR i IN 1..p_error_table.COUNT
166      LOOP
167        IF (p_error_table(i).message_type IS NULL OR p_error_table(i).message_type <> ERROR_HANDLER.G_STATUS_WARNING) THEN
168          l_part_msg_txt := 'Entity Id: '|| p_error_table(i).entity_id ||' Message Text: '||p_error_table(i).message_text;
169          IF l_msg_text IS NULL THEN
170            l_msg_text := l_part_msg_txt;
171          ELSE
172            IF LENGTH(l_msg_text || ' , ' ||l_part_msg_txt) <31000 THEN
173              l_msg_text := l_msg_text || ' , ' ||l_part_msg_txt;
174            ELSE
175              l_overflw_msg := 'Y';
176              EXIT;
177            END IF;
178          END IF;
179        END IF;
180      END LOOP;
181    END IF;
182 
183    IF (l_overflw_msg = 'Y' AND SUBSTR(l_msg_text,length(l_msg_text)-2) <> '...') THEN
184      l_msg_text := l_msg_text ||'...';
185    END IF;
186 
187    RETURN l_msg_text;
188 
189  EXCEPTION
190  WHEN OTHERS THEN
191    RETURN NULL;
192 
193  END get_error_table_msgtxt;
194 
195 /************************************************************************************
196   --      API name        : get_attr_group_id
197   --      Type            : Private
198   --      Function        :
199   --      Bug 7240247
200  ************************************************************************************/
201  FUNCTION  get_attr_group_id(
202               p_attr_group_short_name  IN VARCHAR2,
203               p_attr_group_app_id      IN NUMBER,
204               p_attr_group_type        IN VARCHAR2
205  ) RETURN NUMBER IS
206 
207  l_attr_group_id NUMBER;
208 
209  BEGIN
210     SELECT attr_group_id INTO l_attr_group_id
211     FROM ego_fnd_dsc_flx_ctx_ext
212     WHERE
213       descriptive_flex_context_code = p_attr_group_short_name AND
214       application_id = p_attr_group_app_id AND
215       descriptive_flexfield_name = p_attr_group_type;
216 
217     RETURN l_attr_group_id;
218  EXCEPTION
219    WHEN OTHERS THEN
220       RETURN NULL;
221 
222  END get_attr_group_id;
223 
224 /************************************************************************************
225    --      API name        : get_application_id
226    --      Type            : Public
227    --      Function        :
228    --      Bug 7240247
229   ************************************************************************************/
230  FUNCTION
231  get_application_id(
232       p_application_short_name IN VARCHAR2
233  ) RETURN NUMBER IS
234   l_app_id NUMBER;
235  BEGIN
236 
237    SELECT application_id INTO l_app_id
238    FROM fnd_application
239    WHERE
240    application_short_name = p_application_short_name;
241 
242    RETURN l_app_id;
243 
244  EXCEPTION
245    WHEN OTHERS THEN
246       RETURN NULL;
247  END get_application_id;
248 
249 /************************************************************************************
250  --      API name        : transform_uda
251  --      Type            : Public
252  --      Function        :
253  --
254  ************************************************************************************/
255   PROCEDURE transform_uda (
256     p_uda_input_obj          IN  inv_ebi_uda_input_obj
257    ,x_attributes_row_table   OUT NOCOPY ego_user_attr_row_table
258    ,x_attributes_data_table  OUT NOCOPY ego_user_attr_data_table
259    ,x_return_status          OUT NOCOPY VARCHAR2 --Bug 7240247
260    ,x_msg_count              OUT NOCOPY NUMBER
261    ,x_msg_data               OUT NOCOPY VARCHAR2
262  )
263  IS
264    l_attributes_row_table   ego_user_attr_row_table;
265    l_attributes_data_table  ego_user_attr_data_table;
266    l_attribute_group_obj    inv_ebi_uda_attr_grp_obj;
267    l_attribute_obj          inv_ebi_uda_attr_obj;
268    l_attr_count             NUMBER := 0;
269  BEGIN
270    x_return_status         := FND_API.G_RET_STS_SUCCESS;
271    IF (p_uda_input_obj IS NOT NULL AND p_uda_input_obj.attribute_group_tbl IS NOT NULL AND
272      p_uda_input_obj.attribute_group_tbl.COUNT > 0 ) THEN
273      l_attributes_row_table  :=  ego_user_attr_row_table();
274      l_attributes_data_table  := ego_user_attr_data_table();
275      l_attributes_row_table.extend(p_uda_input_obj.attribute_group_tbl.COUNT);
276      FOR i IN 1..p_uda_input_obj.attribute_group_tbl.COUNT LOOP
277        l_attribute_group_obj  := p_uda_input_obj.attribute_group_tbl(i);
278 
279        IF(l_attribute_group_obj.attr_group_app_id IS NULL AND l_attribute_group_obj.application_short_name IS NOT NULL ) THEN
280 
281           --Start Bug 7240247
282           l_attribute_group_obj.attr_group_app_id := get_application_id(
283                                                        p_application_short_name => l_attribute_group_obj.application_short_name
284                                                      );
285           IF(l_attribute_group_obj.attr_group_app_id IS NULL ) THEN
286             FND_MESSAGE.set_name('INV','INV_EBI_APP_INVALID');
287             FND_MESSAGE.set_token('COL_VALUE', l_attribute_group_obj.application_short_name);
288             FND_MSG_PUB.add;
289             RAISE FND_API.g_exc_error;
290           END IF;
291           --End Bug 7240247
292 
293        END IF;
294        IF(l_attribute_group_obj.attr_group_id IS NULL AND l_attribute_group_obj.attr_group_short_name IS NOT NULL ) THEN
295 
296          --Start Bug 7240247
297          l_attribute_group_obj.attr_group_id := get_attr_group_id(
298                                                    p_attr_group_short_name  => l_attribute_group_obj.attr_group_short_name,
299                                                    p_attr_group_app_id      => l_attribute_group_obj.attr_group_app_id,
300                                                    p_attr_group_type        => l_attribute_group_obj.attr_group_type
301                                                 );
302 
303          IF(l_attribute_group_obj.attr_group_id IS NULL ) THEN
304            FND_MESSAGE.set_name('INV','INV_EBI_ATTR_GROUP_INVALID');
305            FND_MESSAGE.set_token('COL_VALUE', l_attribute_group_obj.attr_group_short_name);
306            FND_MSG_PUB.add;
307            RAISE FND_API.g_exc_error;
308          END IF;
309          --End Bug 7240247
310 
311        END IF;
312        l_attributes_row_table(i) := EGO_USER_ATTRS_DATA_PUB.build_attr_group_row_object(
313                                    p_row_identifier      => i
314                                   ,p_attr_group_id       => l_attribute_group_obj.attr_group_id
315                                   ,p_attr_group_app_id   => l_attribute_group_obj.attr_group_app_id
316                                   ,p_attr_group_type     => l_attribute_group_obj.attr_group_type
317                                   ,p_attr_group_name     => l_attribute_group_obj.attr_group_short_name
318                                   ,p_data_level          => l_attribute_group_obj.data_level
319                                   ,p_data_level_1        => l_attribute_group_obj.data_level_1
320                                   ,p_data_level_2        => l_attribute_group_obj.data_level_2
321                                   ,p_data_level_3        => l_attribute_group_obj.data_level_3
322                                   ,p_data_level_4        => l_attribute_group_obj.data_level_4
323                                   ,p_data_level_5        => l_attribute_group_obj.data_level_5
324                                   ,p_transaction_type    => l_attribute_group_obj.transaction_type
325                                 );
326       IF (l_attribute_group_obj.attributes_tbl IS NOT NULL  AND l_attribute_group_obj.attributes_tbl.COUNT > 0 ) THEN
327 
328        l_attributes_data_table.EXTEND(l_attribute_group_obj.attributes_tbl.COUNT);
329 
330         FOR j IN 1..l_attribute_group_obj.attributes_tbl.COUNT LOOP
331 
332           l_attribute_obj := l_attribute_group_obj.attributes_tbl(j);
333           l_attributes_data_table(l_attr_count + j) := ego_user_attr_data_obj ( i
334                                                          ,l_attribute_obj.attr_short_name
335                                                          ,l_attribute_obj.attr_value_str
336                                                          ,l_attribute_obj.attr_value_num
337                                                          ,l_attribute_obj.attr_value_date
338                                                          ,l_attribute_obj.attr_disp_value
339                                                          ,l_attribute_obj.attr_unit_of_measure
340                                                          ,l_attribute_obj.user_row_identifier
341                                                         );
342         END LOOP;
343 
344         l_attr_count := l_attr_count + l_attribute_group_obj.attributes_tbl.COUNT;
345 
346       END IF;
347 
348      END LOOP;
349 
350    END IF;
351 
352    x_attributes_row_table  := l_attributes_row_table;
353    x_attributes_data_table := l_attributes_data_table;
354 
355  EXCEPTION
356    WHEN FND_API.g_exc_error THEN
357 
358      x_return_status :=  FND_API.g_ret_sts_error;
359      IF(x_msg_data IS NULL) THEN
360        fnd_msg_pub.count_and_get(
361          p_encoded => FND_API.g_false
362         ,p_count   => x_msg_count
363         ,p_data    => x_msg_data
364       );
365      END IF;
366    WHEN OTHERS THEN
367 
368      x_return_status :=  FND_API.g_ret_sts_unexp_error;
369      IF (x_msg_data IS NOT NULL) THEN
370        x_msg_data      :=  x_msg_data||' ->INV_EBI_UTIL.transform_uda ';
371      ELSE
372        x_msg_data      :=  SQLERRM||'INV_EBI_UTIL.transform_uda ';
373      END IF;
374  END transform_uda;
375 
376  /************************************************************************************
377   --      API name        : transform_attr_rowdata_uda
378   --      Type            : Public
379   --      Function        :
380   --
381  ************************************************************************************/
382  PROCEDURE transform_attr_rowdata_uda(
383     p_attributes_row_table    IN          ego_user_attr_row_table
384     ,p_attributes_data_table  IN          ego_user_attr_data_table
385     ,x_uda_input_obj          OUT NOCOPY  inv_ebi_uda_input_obj
386     ,x_return_status          OUT NOCOPY VARCHAR2 --Bug 7240247
387     ,x_msg_count              OUT NOCOPY NUMBER
388     ,x_msg_data               OUT NOCOPY VARCHAR2
389  )
390  IS
391  l_attr_obj inv_ebi_uda_attr_obj;
392  l_attr_tbl inv_ebi_uda_attr_tbl;
393  l_attr_grp_obj inv_ebi_uda_attr_grp_obj;
394  l_attr_grp_tbl inv_ebi_uda_attr_grp_tbl;
395  l_count               NUMBER := 0;
396  BEGIN
397    x_return_status         := FND_API.G_RET_STS_SUCCESS;
398    IF ( p_attributes_row_table IS NOT NULL AND p_attributes_row_table.COUNT > 0
399      AND p_attributes_data_table IS NOT NULL AND p_attributes_data_table.COUNT >0 ) THEN
400 
401      l_attr_grp_tbl := inv_ebi_uda_attr_grp_tbl();
402 
403      FOR i IN p_attributes_row_table.FIRST .. p_attributes_row_table.LAST
404      LOOP
405        l_attr_grp_tbl.extend();
406        l_count := 1;
407        l_attr_tbl := inv_ebi_uda_attr_tbl();
408        FOR j IN p_attributes_data_table.FIRST .. p_attributes_data_table.LAST
409        LOOP
410          IF( p_attributes_data_table(j).ROW_IDENTIFIER = p_attributes_row_table(i).ROW_IDENTIFIER) THEN
411 
412            l_attr_tbl.extend();
413            l_attr_obj := inv_ebi_uda_attr_obj( p_attributes_data_table(j).ATTR_NAME
414                             ,p_attributes_data_table(j).ATTR_VALUE_STR
415                             ,p_attributes_data_table(j).ATTR_VALUE_NUM
416                             ,p_attributes_data_table(j).ATTR_VALUE_DATE
417                             ,p_attributes_data_table(j).ATTR_DISP_VALUE
418                             ,p_attributes_data_table(j).ATTR_UNIT_OF_MEASURE
419                             ,p_attributes_data_table(j).USER_ROW_IDENTIFIER
420                             ,NULL);
421 
422            l_attr_tbl(l_count) := l_attr_obj;
423            l_count  := l_count +1;
424 
425          END IF;
426        END LOOP;
427        l_attr_grp_obj := inv_ebi_uda_attr_grp_obj( p_attributes_row_table(i).ATTR_GROUP_ID
428                            ,p_attributes_row_table(i).ATTR_GROUP_APP_ID
429                            ,NULL
430                            ,p_attributes_row_table(i).ATTR_GROUP_TYPE
431                            ,p_attributes_row_table(i).ATTR_GROUP_NAME
432                            ,p_attributes_row_table(i).DATA_LEVEL
433                            ,p_attributes_row_table(i).DATA_LEVEL_1
434                            ,p_attributes_row_table(i).DATA_LEVEL_2
435                            ,p_attributes_row_table(i).DATA_LEVEL_3
436                            ,p_attributes_row_table(i).DATA_LEVEL_4
437                            ,p_attributes_row_table(i).DATA_LEVEL_5
438                            ,p_attributes_row_table(i).TRANSACTION_TYPE
439                            ,l_attr_tbl
440                          );
441         l_attr_grp_tbl(i) := l_attr_grp_obj;
442 
443      END LOOP;
444      x_uda_input_obj := inv_ebi_uda_input_obj(
445                           l_attr_grp_tbl
446                           ,NULL
447                           ,NULL
448                           ,NULL
449                           ,NULL
450                           ,NULL
451                           ,NULL
452                           ,NULL
453                           ,NULL
454                           ,NULL
455                           ,NULL
456                         );
457 
458    END IF;
459  EXCEPTION
460    WHEN OTHERS THEN
461      x_return_status :=  FND_API.g_ret_sts_unexp_error;
462      IF (x_msg_data IS NOT NULL) THEN
463        x_msg_data      :=  x_msg_data||' ->INV_EBI_UTIL.transform_attr_rowdata_uda ';
464      ELSE
465        x_msg_data      :=  SQLERRM||'INV_EBI_UTIL.transform_attr_rowdata_uda ';
466      END IF;
467  END transform_attr_rowdata_uda;
468 
469 
470 /************************************************************************************
471  --      API name        : set_apps_context
472  --      Type            : Public
473  --      Procedure       : p_name_value_list contaning user id and responsibility id
474  --      Desc            : This API to initialize the apps context for forward and
475  --                        reverse flow API's.
476 ************************************************************************************/
477 
478 PROCEDURE set_apps_context( p_name_value_tbl IN inv_ebi_name_value_tbl)
479 IS
480   l_user               VARCHAR2(100);
481   l_resp               VARCHAR2(100);
482   l_user_id            NUMBER(15);
483   l_resp_id            NUMBER(15);
484   l_resp_appl_id       NUMBER(15);
485   l_sec_grp_id         NUMBER(15);
486   l_language           FND_PROFILE_OPTION_VALUES.PROFILE_OPTION_VALUE%TYPE;
487   l_language_code      FND_PROFILE_OPTION_VALUES.PROFILE_OPTION_VALUE%TYPE;
488   l_date_format        FND_PROFILE_OPTION_VALUES.PROFILE_OPTION_VALUE%TYPE;
489   l_date_language      FND_PROFILE_OPTION_VALUES.PROFILE_OPTION_VALUE%TYPE;
490   l_numeric_characters FND_PROFILE_OPTION_VALUES.PROFILE_OPTION_VALUE%TYPE;
491   l_nls_sort           FND_PROFILE_OPTION_VALUES.PROFILE_OPTION_VALUE%TYPE;
492   l_nls_territory      FND_PROFILE_OPTION_VALUES.PROFILE_OPTION_VALUE%TYPE;
493   l_limit_time         NUMBER;
494   l_limit_connects     NUMBER;
495   l_org_id             FND_PROFILE_OPTION_VALUES.PROFILE_OPTION_VALUE%TYPE;
496   l_timeout            NUMBER;
497 BEGIN
498   IF p_name_value_tbl IS NOT NULL AND p_name_value_tbl.COUNT>0
499   THEN
500     l_user  := INV_EBI_UTIL.get_config_param_value(p_name_value_tbl,'USER');
501     l_resp  := INV_EBI_UTIL.get_config_param_value(p_name_value_tbl,'RESPONSIBILITY');
502   END IF;
503 
504   BEGIN
505     SELECT usr.user_id,
506            furg.responsibility_id,
507            furg.responsibility_application_id,
508            furg.security_group_id
509       INTO l_user_id,
510            l_resp_id,
511            l_resp_appl_id,
512            l_sec_grp_id
513       FROM FND_USER_RESP_GROUPS FURG, FND_RESPONSIBILITY_TL FR , FND_USER USR
514      WHERE furg.user_id = usr.user_id
515        AND furg.responsibility_id = fr.responsibility_id
516        AND furg.responsibility_application_id = fr.application_id
517        AND UPPER(usr.user_name) = UPPER(l_user)
518        AND UPPER(fr.responsibility_name) = UPPER(l_resp);
519   EXCEPTION
520     WHEN OTHERS THEN
521       NULL;
522   END;
523 
524   IF l_user_id IS NOT NULL AND l_resp_id IS NOT NULL AND l_resp_appl_id IS NOT NULL
525   THEN
526     FND_GLOBAL.apps_initialize(l_user_id, l_resp_id, l_resp_appl_id,l_sec_grp_id);
527   END IF;
528 
529   FND_SESSION_MANAGEMENT.SETUSERNLS(l_user_id
530                                    ,NULL
531                                    ,l_language
532                                    ,l_language_code
533                                    ,l_date_format
534                                    ,l_date_language
535                                    ,l_numeric_characters
536                                    ,l_nls_sort
537                                    ,l_nls_territory
538                                    ,l_limit_time
539                                    ,l_limit_connects
540                                    ,l_org_id
541                                    ,l_timeout  );
542 
543   FND_GLOBAL.SET_NLS_CONTEXT(l_language,
544                              l_date_format,
545                              l_date_language,
546                              l_numeric_characters,
547                              l_nls_sort,
548                              l_nls_territory);
549 
550 EXCEPTION
551   WHEN OTHERS THEN
552     NULL;
553 END set_apps_context;
554 
555 -- ------------------------------------------------------------------
556 -- Name: put_names
557 -- Desc: Setup which directory to put the log and what the log file
558 --       name is.  The directory setup is used only if the program
559 --       is not run thru concurrent manager
560 -- -----------------------------------------------------------------
561 PROCEDURE put_names(
562         p_log_file              VARCHAR2,
563         p_out_file              VARCHAR2,
564         p_directory             VARCHAR2) IS
565 BEGIN
566      FND_FILE.PUT_NAMES(p_log_file,p_out_file,p_directory);
567 END put_names;
568 -- ------------------------------------------------------------------
569 -- Name: debug_line
570 -- Desc: If debug flag is turned on, the log will be printed
571 -- -----------------------------------------------------------------
572 PROCEDURE debug_line(
573                 p_text                  VARCHAR2) IS
574 BEGIN
575   IF (INV_EBI_UTIL.g_debug) THEN
576    FND_FILE.PUT_LINE(FND_FILE.LOG,to_char(sysdate,'DD/MON/YYYY HH24:MI:SS')||': '||p_text);
577   END IF;
578 END debug_line;
579 -- ------------------------------------------------------------------
580 -- Name: debug_status
581 -- Desc:
582 -- -----------------------------------------------------------------
583 FUNCTION debug_status
584 RETURN boolean
585 IS
586 BEGIN
587   IF (fnd_profile.value('INV_EBI_DEBUG') = 'Y') THEN
588     RETURN true;
589   ELSE
590     RETURN false;
591   END IF;
592 EXCEPTION
593   WHEN OTHERS THEN
594    RETURN false;
595 END debug_status;
596 
597 -- ------------------------------------------------------------------
598 -- Name: setup
599 -- Desc:
600 -- -----------------------------------------------------------------
601 PROCEDURE setup(
602                 p_filename         VARCHAR2  Default NULL) IS
603 l_path varchar2(200) := FND_PROFILE.value('INV_EBI_DEBUG_DIRECTORY');
604 BEGIN
605   INV_EBI_UTIL.g_debug := debug_status;
606 
607   IF (INV_EBI_UTIL.g_debug) THEN
608 
609     INV_EBI_UTIL.put_names(nvl(p_filename,'EBS'||to_char(sysdate,'DDMMYYYYHH24MISS'))||'.log',nvl(p_filename,'EBS'||to_char(sysdate,'DDMMYYYYHH24MISS'))||'.out',l_path);
610     INV_EBI_UTIL.debug_line('At the start of the Debug process is ');
611   END IF;
612 END setup;
613 -- ------------------------------------------------------------------
614 -- Name: wrapup
615 -- Desc:
616 -- -----------------------------------------------------------------
617 
618 PROCEDURE wrapup IS
619 BEGIN
620  IF (INV_EBI_UTIL.g_debug) THEN
621      INV_EBI_UTIL.debug_line('At the end of Debug Process');
622    FND_FILE.close;
623  END IF;
624 END wrapup;
625 END INV_EBI_UTIL;