[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;