1 PACKAGE BODY FA_BEGIN_MASS_TRX_PKG AS
2 /* $Header: FAXBMTB.pls 120.7 2009/04/15 14:57:55 bridgway ship $ */
3
4 --
5 -- FUNCTION faxbmt
6 --
7
8 FUNCTION faxbmt (X_book IN VARCHAR2,
9 X_request_id IN NUMBER,
10 X_result IN OUT NOCOPY BOOLEAN
11 , p_log_level_rec IN FA_API_TYPES.log_level_rec_type) RETURN BOOLEAN IS
12 h_trx_type varchar2(20);
13 h_conc_program_id number(15);
14 BEGIN
15
16 if (X_request_id IS NOT NULL and X_request_id <> 0) then
17 SELECT RE.CONCURRENT_PROGRAM_ID
18 INTO h_conc_program_id
19 FROM FND_CONCURRENT_REQUESTS RE
20 WHERE RE.REQUEST_ID = X_request_id
21 AND RE.PROGRAM_APPLICATION_ID in (140, 8731);
22 -- AND RE.PROGRAM_APPLICATION_ID = 140; -- commented for bug2250373
23
24 /* BUG# 1468964
25 changed to incorporate all mass programs calls
26 only depreciation should use "other". All
27 other programs should verify that periods are
28 in sync between primary and reporting books
29 -- bridgway 10/18/00
30 */
31
32 SELECT DECODE(PR.CONCURRENT_PROGRAM_NAME,
33 'FAMTFR', 'TRANSFER',
34 'FAMAPT', 'RECLASS',
35 'FAMRCL', 'RECLASS',
36 'FARET', 'GAINLOSS',
37 'FAMRET', 'MASSRET',
38 'FAMRST', 'MASSRST',
39 'FADRB', 'RB_DEP',
40 'FADRB2', 'RB_DEP',
41 'FAJERB', 'RB_CJE',
42 'FAMCP', 'COPY',
43 'FAIMCP', 'COPY',
44 'FATAXUP', 'TAXUP',
45 'FAUSTR', 'TAXUP',
46 'FAACUP', 'TAXUP',
47 'FATMTA', 'TAXUP',
48 'FAMACH', 'MASSCHG',
49 'FAVRVL', 'REVAL',
50 'FACXTRET','TRANSFER', -- bug# 2153455
51 'FACTFR', 'TRANSFER', -- bug# 2153455
52 'FACHRMR', 'TRANSFER', -- bug# 2153455
53 'OTHER')
54 INTO h_trx_type
55 FROM FND_CONCURRENT_PROGRAMS PR
56 WHERE PR.CONCURRENT_PROGRAM_ID = h_conc_program_id
57 AND PR.APPLICATION_ID in ( 140, 8731 );
58 -- AND PR.APPLICATION_ID = 140; -- commented for bug2250373
59 else
60 -- assume TRANSFER (most restrictive)
61 h_trx_type := 'TRANSFER';
62 end if;
63
64 /*
65 * Call faxcbs() to check the book status with submit_flag == FALSE
66 * and start_flag == TRUE because we are not submitting depreciation
67 * but are starting a mass process
68 */
69 if not FA_CHK_BOOKSTS_PKG.faxcbs(X_book, FALSE, TRUE,
70 0, h_trx_type, X_result, p_log_level_rec => p_log_level_rec) then
71 FA_SRVR_MSG.Add_Message(
72 CALLING_FN => 'FA_BEGIN_MASS_TRX_PKG.faxbmt', p_log_level_rec => p_log_level_rec);
73 X_result := FALSE;
74 return (FALSE);
75 end if;
76
77 /* All checks completed, update book_controls with mass request id */
78
79 /*
80 * Ensure this is the only request running against the book by
81 * updating the request ID in fa_book_controls to the request_id
82 * of the running request
83 */
84
85 UPDATE fa_book_controls
86 SET mass_request_id = X_request_id
87 WHERE book_type_code = X_book;
88
89 return (TRUE);
90
91 EXCEPTION
92 WHEN NO_DATA_FOUND THEN
93 FA_SRVR_MSG.Add_Message(
94 CALLING_FN => 'FA_BEGIN_MASS_TRX_PKG.faxbmt',
95 NAME => 'CONC_MISSING_REQUEST',
96 TOKEN1 => 'ROUTINE', VALUE1 => 'FA_TRXAPP',
97 TOKEN2 => 'REQUEST', VALUE2 => X_request_id, p_log_level_rec => p_log_level_rec);
98 X_result := FALSE;
99 return (FALSE);
100 WHEN OTHERS THEN
101 FA_SRVR_MSG.Add_SQL_Error
102 (CALLING_FN=>'FA_BEGIN_MASS_TRX_PKG.faxbmt', p_log_level_rec => p_log_level_rec);
103 X_result := FALSE;
104 return (FALSE);
105 END faxbmt;
106
107
108 --
109 -- FUNCTION faxemt
110 --
111 FUNCTION faxemt (X_book IN VARCHAR2,
112 X_request_id IN NUMBER
113 , p_log_level_rec IN FA_API_TYPES.log_level_rec_type) RETURN BOOLEAN IS
114 BEGIN
115
116 UPDATE fa_book_controls
117 SET mass_request_id = NULL
118 WHERE book_type_code = X_book
119 AND mass_request_id = X_request_id;
120
121 commit work;
122
123 return (TRUE);
124 EXCEPTION
125 WHEN OTHERS THEN
126 rollback work;
127 FA_SRVR_MSG.Add_SQL_Error
128 (CALLING_FN=>'FA_BEGIN_MASS_TRX_PKG.faxemt', p_log_level_rec => p_log_level_rec);
129 return (FALSE);
130 END faxemt;
131
132
133 END FA_BEGIN_MASS_TRX_PKG;