DBA Data[Home] [Help]

PACKAGE BODY: APPS.AP_EXPENSE_FEED_DISTS_PKG

Source


1 PACKAGE BODY AP_EXPENSE_FEED_DISTS_PKG AS
2 /* $Header: apiwdstb.pls 120.1 2005/06/24 21:12:58 hchacko ship $ */
3 
4 --------------------------------------------------------------------------
5 -- Procedure RETURN_SEGMENTS
6 --
7 -- Gets segment values qualified as cost center (FA_COST_CTR) and
8 -- account (GL_ACCOUNT) identified by P_CODE_COMBINATION_ID.
9 --
10 -- Values returned as OUT parameters P_COST_CENTER and
11 -- P_ACCOUNT_SEGMENT_VALUE, respectively.
12 --
13 -- Author: Tim Ball
14 --------------------------------------------------------------------------
15 PROCEDURE RETURN_SEGMENTS(
16               P_CODE_COMBINATION_ID     NUMBER,
17               P_COST_CENTER             IN OUT NOCOPY VARCHAR2,
18               P_ACCOUNT_SEGMENT_VALUE   IN OUT NOCOPY VARCHAR2,
19               P_ERROR_MESSAGE           IN OUT NOCOPY VARCHAR2,
20               P_CALLING_SEQUENCE        VARCHAR2) IS
21   l_segments     FND_FLEX_EXT.SEGMENTARRAY;
22   l_code_combination_id            NUMBER;
23   l_num_segments             NUMBER;
24   l_flex_segment_number      NUMBER;
25   l_cc_flex_segment_number   NUMBER;
26   l_chart_of_accounts_id     GL_SETS_OF_BOOKS.chart_of_accounts_id%TYPE;
27   l_debug_info               VARCHAR2(100);
28   l_current_calling_sequence varchar2(2000);
29 BEGIN
30 
31   l_current_calling_sequence := 'AP_TIM_TEST_PKG.RETURN_SEGMENTS';
32 
33   --
34   -- Proceed with building new CODE_COMBINATION_ID
35   --
36 
37   --
38   -- Initialize FND_GLOBAL.UserId to 5
39   --
40 
41 
42   /*bug 2872130, I am commenting the call to fnd_global below.
43     According to the comments in the fnd_global package this call
44     should not be made in a session from a form or report.  This
45     package, AP_EXPENSE_FEED_DISTS_PKG, appears to only be called
46     from a form.*/
47 
48   -- FND_GLOBAL.Apps_Initialize(5,0,200);
49 
50   ----------------------------------------
51   l_debug_info := 'Get Chart of Accounts ID';
52   ----------------------------------------
53   select  GS.chart_of_accounts_id
54   into    l_chart_of_accounts_id
55   from    ap_system_parameters S,
56           gl_sets_of_books GS
57   where   GS.set_of_books_id = S.set_of_books_id;
58 
59   -----------------------------------------------
60   l_debug_info := 'Get Cost Center Qualifier Segment Number';
61   -----------------------------------------------
62   IF (NOT FND_FLEX_APIS.GET_QUALIFIER_SEGNUM(
63                                 101,
64                                 'GL#',
65                                 l_chart_of_accounts_id,
66                                 'FA_COST_CTR',
67                                 l_cc_flex_segment_number)) THEN
68     p_error_message := FND_MESSAGE.GET;
69     return;
70   END IF;
71 
72   -----------------------------------------------
73   l_debug_info := 'Get Account Qualifier Segment Number';
74   -----------------------------------------------
75   IF (NOT FND_FLEX_APIS.GET_QUALIFIER_SEGNUM(
76                                 101,
77                                 'GL#',
78                                 l_chart_of_accounts_id,
79                                 'GL_ACCOUNT',
80                                 l_flex_segment_number)) THEN
81     p_error_message := FND_MESSAGE.GET;
82     return;
83   END IF;
84 
85   -----------------------------------------------------------------
86   l_debug_info := 'Get ccid account segments';
87   -----------------------------------------------------------------
88   if (nvl(P_CODE_COMBINATION_ID,-1) <> -1) then
89     IF (NOT FND_FLEX_EXT.GET_SEGMENTS(
90                                 'SQLGL',
91                                 'GL#',
92                                 l_chart_of_accounts_id,
93                                 P_CODE_COMBINATION_ID,
94                                 l_num_segments,
95                                 l_segments)) THEN
96 
97       p_error_message := FND_MESSAGE.GET;
98       return;
99     END IF;
100   end if;
101 
102   P_COST_CENTER := l_segments(l_cc_flex_segment_number);
103 
104   P_ACCOUNT_SEGMENT_VALUE := l_segments(l_flex_segment_number);
105 
106 EXCEPTION
107   WHEN OTHERS THEN
108     IF (SQLCODE <> -20001) THEN
109       IF (SQLCODE = -54) THEN
110         FND_MESSAGE.SET_NAME('SQLAP','AP_RESOURCE_BUSY');
111       ELSE
112         FND_MESSAGE.SET_NAME('SQLAP','AP_DEBUG');
113         FND_MESSAGE.SET_TOKEN('ERROR',SQLERRM);
114         FND_MESSAGE.SET_TOKEN('CALLING_SEQUENCE',
115                   l_current_calling_sequence);
116         FND_MESSAGE.SET_TOKEN('PARAMETERS',
117                 'P_CODE_COMBINATION_ID = '||P_CODE_COMBINATION_ID
118             ||', P_COST_CENTER = '||P_COST_CENTER
119             ||', P_ACCOUNT_SEGMENT_VALUE = '||P_ACCOUNT_SEGMENT_VALUE
120             ||', P_ERROR_MESSAGE = '||P_ERROR_MESSAGE
121                                  );
122         FND_MESSAGE.SET_TOKEN('DEBUG_INFO',l_debug_info);
123       END IF;
124     END IF;
125     APP_EXCEPTION.RAISE_EXCEPTION;
126 
127 END;
128 
129 END AP_EXPENSE_FEED_DISTS_PKG;