[Home] [Help]
PACKAGE BODY: APPS.FAFLEX_PKG_WF
Source
1 PACKAGE BODY FAFLEX_PKG_WF as
2 /* $Header: faflxwfb.pls 120.3 2005/07/25 10:01:48 yyoon ship $*/
3 -------------------------------------------------------------------
4 -- This function replaces fafbgcc in FA_FLEX_PKG.fafb_call_flex
5
6 FUNCTION START_PROCESS
7 (X_flex_account_type in varchar2,
8 X_book_type_code in varchar2,
9 X_flex_num in number,
10 X_dist_ccid in number,
11 X_acct_segval in varchar2,
12 X_default_ccid in number,
13 X_account_ccid in number,
14 X_distribution_id in number default null,
15 X_Workflowprocess in varchar2 default null,
16 X_Validation_Date in date default sysdate,
17 X_return_ccid in out nocopy number,
18 p_log_level_rec IN FA_API_TYPES.log_level_rec_type default null) return boolean is
19
20 -- moved to package spec
21 -- ItemType varchar2(30) :='FAFLEXWF';
22 -- ItemKey varchar2(30);
23
24 h_concat_segs varchar2(2000);
25 h_concat_ids varchar2(2000);
26 h_concat_descrs varchar2(2000);
27 h_errmsg varchar2(2000);
28 h_encoded_msg varchar2(2000);
29 result boolean;
30 h_return_ccid number;
31 char_date varchar2(27);
32
33 h_appl_short_name varchar2(30);
34 h_message_name varchar2(30);
35 h_num number;
36 h_string varchar2(100);
37
38 h_new_ccid boolean;
39
40 l_nsegments NUMBER;
41 l_val_date DATE;
42
43 BEGIN <<GEN_CCID>>
44
45 itemkey := FND_FLEX_WORKFLOW.INITIALIZE
46 ('SQLGL',
47 'GL#',
48 X_flex_num,
49 'FAFLEXWF'
50 );
51
52 wf_engine.SetItemAttrNumber
53 (itemtype => itemtype,
54 itemkey => itemkey,
55 aname => 'CHART_OF_ACCOUNTS_ID',
56 avalue => X_flex_num);
57
58 wf_engine.SetItemAttrText
59 (itemtype => itemtype,
60 itemkey => itemkey,
61 aname => 'BOOK_TYPE_CODE',
62 avalue => X_book_type_code);
63
64 wf_engine.SetItemAttrNumber
65 (itemtype => itemtype,
66 itemkey => itemkey,
67 aname => 'DEFAULT_CCID',
68 avalue => X_default_ccid);
69
70 BEGIN
71
72 wf_engine.SetItemAttrDate
73 (itemtype => itemtype,
74 itemkey => itemkey,
75 aname => 'VALIDATION_DATE',
76 avalue => X_validation_date);
77
78 EXCEPTION
79 when others then
80 if (wf_core.error_name = 'WFENG_ITEM_ATTR') then
81 wf_engine.AddItemAttr(itemtype,itemkey,'VALIDATION_DATE');
82 wf_engine.SetItemAttrDate
83 (itemtype => itemtype,
84 itemkey => itemkey,
85 aname => 'VALIDATION_DATE',
86 avalue => X_validation_date);
87 else
88 raise;
89 end if;
90 END;
91
92
93
94 -- Initialize the workflow item attributes
95
96 wf_engine.SetItemAttrText
97 (itemtype => itemtype,
98 itemkey => itemkey,
99 aname => 'ACCOUNT_TYPE',
100 avalue => X_flex_account_type);
101
102 wf_engine.SetItemAttrNumber
103 (itemtype => itemtype,
104 itemkey => itemkey,
105 aname => 'DISTRIBUTION_CCID',
106 avalue => X_dist_ccid );
107
108 wf_engine.SetItemAttrText
109 (itemtype => itemtype,
110 itemkey => itemkey,
111 aname => 'ACCT_SEG_VAL',
112 avalue => X_acct_segval);
113
114 wf_engine.SetItemAttrNumber
115 (itemtype => itemtype,
116 itemkey => itemkey,
117 aname => 'ACCOUNT_CCID',
118 avalue => X_account_ccid);
119
120 wf_engine.SetItemAttrNumber
121 (itemtype => itemtype,
122 itemkey => itemkey,
123 aname => 'DISTRIBUTION_ID',
124 avalue => X_distribution_id);
125
126 -- BUG# 1833652
127 -- passing the insert_if_new and new_combination parameters
128 -- so that combinations will be dynamically inserted
129 -- bridgway 06/20/01
130
131 result := FND_FLEX_WORKFLOW.GENERATE
132 ('FAFLEXWF',
133 itemkey,
134 TRUE,
135 X_return_ccid,
136 h_concat_segs,
137 h_concat_ids,
138 h_concat_descrs,
139 h_errmsg,
140 h_new_ccid);
141
142 FA_GCCID_PKG.global_concat_segs := h_concat_segs;
143
144 if (not result) then
145
146 -- BUG# 1504839
147 -- enhancing the messaging here for fagda and for form level
148 -- transactions. Now dump the concatonated segs and the FND
149 -- error returned in encoded format from Workflow
150 -- bridgway 04/12/01
151
152 FA_SRVR_MSG.ADD_MESSAGE
153 (CALLING_FN => 'FAFLEX_PKG_WF.START_PROCESS',
154 NAME => 'FA_FLEXBUILDER_FAIL_CCID',
155 TOKEN1 => 'ACCOUNT_TYPE',
156 VALUE1 => X_flex_account_type,
157 TOKEN2 => 'BOOK_TYPE_CODE',
158 VALUE2 => X_book_type_code,
159 TOKEN3 => 'DIST_ID',
160 VALUE3 => X_distribution_id,
161 TOKEN4 => 'CONCAT_SEGS',
162 VALUE4 => h_concat_segs,
163 p_log_level_rec => p_log_level_rec);
164
165 fnd_message.set_encoded(h_errmsg);
166 fnd_msg_pub.add; -- end 1504839
167
168 return FALSE;
169 end if;
170
171 -- BUG# 1818599
172 -- changing date format as aol only accept the following
173 -- bridgway 06/07/01
174
175 if (X_return_ccid = -1) then
176 select to_char(sysdate,'YYYY/MM/DD HH24:MI:SS')
177 into char_date
178 from dual;
179
180 h_return_ccid := FND_FLEX_EXT.get_ccid
181 ('SQLGL',
182 'GL#',
183 X_flex_num,
184 char_date,
185 h_concat_segs);
186 if (h_return_ccid = 0) then
187
188 FA_SRVR_MSG.ADD_MESSAGE
189 (CALLING_FN =>'FAFLEX_PKG_WF.START_PROCESS',
190 NAME =>'FA_FLEXBUILDER_FAIL_CCID',
191 TOKEN1 => 'ACCOUNT_TYPE',
192 VALUE1 => X_flex_account_type,
193 TOKEN2 => 'BOOK_TYPE_CODE',
194 VALUE2 => X_book_type_code,
195 TOKEN3 => 'DIST_ID',
196 VALUE3 => X_distribution_id,
197 TOKEN4 => 'CONCAT_SEGS',
198 VALUE4 => h_concat_segs,
199 p_log_level_rec => p_log_level_rec);
200 fnd_message.set_encoded(h_errmsg);
201 fnd_msg_pub.add; -- end 1504839
202
203 return FALSE;
204 else
205
206 X_return_ccid := h_return_ccid;
207 end if;
208
209 end if;
210 RETURN result;
211
212 exception
213 when others then
214 wf_core.context('FA_FLEX_PKG','StartProcess',X_book_type_code,X_dist_ccid,
215 X_default_ccid,X_Workflowprocess);
216 raise;
217 end;
218
219
220 PROCEDURE CORP_OR_TAX(itemtype in varchar2,
221 itemkey in varchar2,
222 actid in number,
223 funcmode in varchar2,
224 result out nocopy varchar2,
225 p_log_level_rec IN FA_API_TYPES.log_level_rec_type default null) IS
226
227 h_book_type_code varchar2(30);
228 h_book_class varchar2(30);
229
230 BEGIN <<CORP_OR_TAX>>
231
232 IF (funcmode = 'RUN') THEN
233 h_book_type_code := wf_engine.GetItemAttrText(itemtype,itemkey,'BOOK_TYPE_CODE');
234 SELECT book_class
235 INTO h_book_class
236 FROM fa_book_controls
237 WHERE book_type_code = h_book_type_code;
238
239 result := 'COMPLETE:' || h_book_class ;
240 RETURN;
241 ELSIF (funcmode = 'CANCEL') THEN
242 result := 'COMPLETE:';
243 RETURN;
244 ELSE
245 result := '';
246 RETURN;
247 END IF;
248
249 EXCEPTION
250 WHEN OTHERS THEN
251 wf_core.context('FA_FLEX_PKG','CORP_OR_TAX',
252 itemtype,itemkey,TO_CHAR(actid),funcmode);
253 RAISE;
254 END;
255
256 PROCEDURE CHECK_ACCT(itemtype in varchar2,
257 itemkey in varchar2,
258 actid in number,
259 funcmode in varchar2,
260 result out nocopy varchar2,
261 p_log_level_rec IN FA_API_TYPES.log_level_rec_type default null) IS
262
263 h_account_type VARCHAR2(30);
264
265 BEGIN <<CHECK_ACCT>>
266 IF (funcmode = 'RUN') THEN
267 h_account_type := wf_engine.GetItemAttrText(itemtype,itemkey,'ACCOUNT_TYPE');
268 result := 'COMPLETE:' || h_account_type;
269 RETURN;
270 ELSIF (funcmode = 'CANCEL') THEN
271 result := 'COMPLETE:';
272 RETURN;
273 ELSE
274 result := '';
275 RETURN;
276 END IF;
277
278 EXCEPTION
279 WHEN OTHERS THEN
280 wf_core.context('FA_FLEX_PKG','CHECK_ACCT',
281 itemtype,itemkey,TO_CHAR(actid),funcmode);
282 RAISE;
283 END; /* CHECK_ACCT */
284
285 PROCEDURE CHECK_GROUP(itemtype in varchar2,
286 itemkey in varchar2,
287 actid in number,
288 funcmode in varchar2,
289 result out nocopy varchar2,
290 p_log_level_rec IN FA_API_TYPES.log_level_rec_type default null) IS
291
292 h_account_type VARCHAR2(30);
293
294 BEGIN <<CHECK_GROUP>>
295 IF (funcmode = 'RUN') THEN
296 h_account_type := wf_engine.GetItemAttrText(itemtype,itemkey,'ACCOUNT_TYPE');
297 IF (h_account_type in ('ASSET_COST','ASSET_CLEARING',
298 'CIP_CLEARING','CIP_COST',
299 'DEPRN_RSV','REV_AMORT','REV_RSV',
300 'BONUS_DEPRN_RSV','BONUS_DEPRN_EXP')) THEN
301 result := 'COMPLETE:' || 'CATE_LEVEL_ACCOUNT';
302 RETURN;
303 ELSIF (h_account_type in ('DEPRN_EXP')) THEN
304 result := 'COMPLETE:' || 'ASSET_LEVEL_ACCOUNT';
305 RETURN;
306 ELSE /* All Remaining accounts fall under book level */
307 result := 'COMPLETE:' || 'BOOK_LEVEL_ACCOUNT';
308 RETURN;
309 END IF;
310
311 ELSIF (funcmode = 'CANCEL') THEN
312 result := 'COMPLETE:';
313 RETURN;
314 ELSE
315 result := '';
316 RETURN;
317 END IF;
318
319 EXCEPTION
320 WHEN OTHERS THEN
321 wf_core.context('FA_FLEX_PKG','CHECK_GROUP',
322 itemtype,itemkey,TO_CHAR(actid),funcmode);
323 RAISE;
324 END;
325
326 PROCEDURE GET_BOOK_TYPE(itemtype in varchar2,
327 itemkey in varchar2,
328 actid in number,
329 funcmode in varchar2,
330 result out nocopy varchar2,
331 p_log_level_rec IN FA_API_TYPES.log_level_rec_type default null) IS
332
333 h_book_type VARCHAR2(30);
334
335 BEGIN <<GET_BOOK_TYPE>>
336 IF (funcmode = 'RUN') THEN
337 h_book_type := wf_engine.GetItemAttrText(itemtype,itemkey,'BOOK_TYPE_CODE');
338 result := 'COMPLETE:' || h_book_type;
339 RETURN;
340 ELSIF (funcmode = 'CANCEL') THEN
341 result := 'COMPLETE:';
342 RETURN;
343 ELSE
344 result := '';
345 RETURN;
346 END IF;
347
348 EXCEPTION
349 WHEN OTHERS THEN
350 wf_core.context('FA_FLEX_PKG','GET_BOOK_TYPE', itemtype,itemkey,TO_CHAR(actid),funcmode);
351 RAISE;
352 END;
353
354 END FAFLEX_PKG_WF;