[Home] [Help]
PACKAGE BODY: APPS.PO_WF_REQ_FLEXBUILDER_UPGRADE
Source
1 PACKAGE BODY PO_WF_REQ_FLEXBUILDER_UPGRADE AS
2 /* $Header: POXWRFUB.pls 115.9 2002/11/22 22:04:52 sbull ship $ */
3
4 -- Read the profile option that enables/disables the debug log
5 g_po_wf_debug VARCHAR2(1) := NVL(FND_PROFILE.VALUE('PO_SET_DEBUG_WORKFLOW_ON'),'N');
6
7 /*=======================================================================+
8 | FILENAME
9 | POXWRFUB.pls
10 |
11 | DESCRIPTION
12 | PL/SQL spec for package: PO_WF_REQ_FLEXBUILDER_UPGRADE
13 |
14 | NOTES
15 | MODIFIED IMRAN ALI (09/11/97) - Created
16 | Imran (08/11/98) - Rewrote some initialization code
17 *=====================================================================*/
18
19 -- Cursors
20
21 /*****************************************************************************
22 * The following are local/Private procedure that support the workflow APIs: *
23 *****************************************************************************/
24
25 function req_build_account ( itemtype in varchar2,
26 itemkey in varchar2,
27 accountType in varchar2,
28 FB_FLEX_SEG in out NOCOPY VARCHAR2,
29 FB_ERROR_MSG in out NOCOPY VARCHAR2 )
30 return boolean;
31
32 procedure Get_att (itemtype in varchar2, itemkey in varchar2, variable in out NOCOPY varchar2,
33 l_aname in varchar2);
34 procedure Get_number_att (itemtype in varchar2, itemkey in varchar2, variable in out NOCOPY number,
35 l_aname in varchar2);
36 procedure Get_date_att (itemtype in varchar2, itemkey in varchar2, variable in out NOCOPY date,
37 l_aname in varchar2);
38
39 --
40 -- charge_account
41 -- Build charge account for the specified structure
42 --
43 procedure charge_account ( itemtype in varchar2,
44 itemkey in varchar2,
45 actid in number,
46 funcmode in varchar2,
47 result out NOCOPY varchar2 )
48 is
49 l_result_flag BOOLEAN;
50 x_progress varchar2(1000);
51 FB_FLEX_SEG varchar2(2000);
52 FB_ERROR_MSG varchar2(2000);
53 x_destination_type varchar2(25);
54
55 BEGIN
56
57 x_progress := 'PO_WF_REQ_FLEXBUILDER_UPGRADE.charge_account: 01';
58 IF (g_po_wf_debug = 'Y') THEN
59 /* DEBUG */ PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey,x_progress);
60 END IF;
61
62
63 -- Do nothing in cancel or timeout mode
64 --
65 if (funcmode <> wf_engine.eng_run) then
66
67 result := wf_engine.eng_null;
68 return;
69
70 end if;
71
72 -- Get the required item attributes and then call the upgrade charge account
73 -- routine PO_REQ_CHARGE_ACCOUNT.BUILD ( );
74
75 l_result_flag := req_build_account( itemtype,
76 itemkey,
77 'CHARGE',
78 FB_FLEX_SEG,
79 FB_ERROR_MSG );
80
81 x_progress := 'PO_WF_REQ_FLEXBUILDER_UPGRADE.charge_account: 02';
82 IF (g_po_wf_debug = 'Y') THEN
83 /* DEBUG */ PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey,x_progress);
84 END IF;
85
86 if l_result_flag then
87
88 -- Load the concated segment values returned by the BUILD function on to WF item
89 -- attributes.
90
91 FND_FLEX_WORKFLOW.LOAD_CONCATENATED_SEGMENTS ( itemtype, itemkey, FB_FLEX_SEG );
92
93 result := 'COMPLETE:SUCCESS';
94 return;
95 else
96 --If the build_account call returns an error message then set the ERROR_MSG attrib.
97
98 wf_engine.SetItemAttrText ( itemtype=>itemtype,
99 itemkey=>itemkey,
100 aname=>'ERROR_MESSAGE',
101 avalue=>FB_ERROR_MSG );
102
103 -- result := 'COMPLETE:FAILURE';
104
105 Get_att(itemtype, itemkey, x_destination_type, 'DESTINATION_TYPE_CODE');
106
107 if x_destination_type = 'EXPENSE' then
108 result := 'COMPLETE:SUCCESS'; -- we will handle this in the libraray
109 else
110 result := 'COMPLETE:FAILURE';
111 end if;
112
113 RETURN;
114
115 end if;
116
117 EXCEPTION
118 WHEN OTHERS THEN
119 wf_core.context('PO_WF_REQ_FLEXBUILDER_UPGRADE','charge_account',x_progress);
120 raise;
121
122 END charge_account;
123
124 /* ********************************************************************************* */
125
126 --
127 -- budget_account
128 -- Build budget account for the specified structure
129 --
130 procedure budget_account ( itemtype in varchar2,
131 itemkey in varchar2,
132 actid in number,
133 funcmode in varchar2,
134 result out NOCOPY varchar2 )
135 is
136 l_result_flag BOOLEAN;
137 x_progress varchar2(1000);
138 FB_FLEX_SEG varchar2(2000);
139 FB_ERROR_MSG varchar2(2000);
140 BEGIN
141
142 x_progress := 'PO_WF_REQ_FLEXBUILDER_UPGRADE.budget_account: 01';
143 IF (g_po_wf_debug = 'Y') THEN
144 /* DEBUG */ PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey,x_progress);
145 END IF;
146
147
148 -- Do nothing in cancel or timeout mode
149 --
150 if (funcmode <> wf_engine.eng_run) then
151
152 result := wf_engine.eng_null;
153 return;
154
155 end if;
156
157 -- Get the required item attributes and then call the upgrade charge account
158 -- routine PO_REQ_CHARGE_ACCOUNT.BUILD ( );
159
160 l_result_flag := req_build_account( itemtype,
161 itemkey,
162 'BUDGET',
163 FB_FLEX_SEG,
164 FB_ERROR_MSG );
165
166 x_progress := 'PO_WF_REQ_FLEXBUILDER_UPGRADE.budget_account: 02';
167 IF (g_po_wf_debug = 'Y') THEN
168 /* DEBUG */ PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey,x_progress);
169 END IF;
170
171 if l_result_flag then
172
173 -- Load the concated segment values returned by the BUILD function on to WF item
174 -- attributes.
175
176 FND_FLEX_WORKFLOW.LOAD_CONCATENATED_SEGMENTS ( itemtype, itemkey, FB_FLEX_SEG );
177
178 result := 'COMPLETE:SUCCESS';
179 return;
180 else
181 --If the build_account call returns an error message then set the ERROR_MSG attrib.
182
183 wf_engine.SetItemAttrText ( itemtype=>itemtype,
184 itemkey=>itemkey,
185 aname=>'ERROR_MESSAGE',
186 avalue=>FB_ERROR_MSG );
187
188 result := 'COMPLETE:FAILURE';
189 RETURN;
190
191 end if;
192
193 EXCEPTION
194 WHEN OTHERS THEN
195 wf_core.context('PO_WF_REQ_FLEXBUILDER_UPGRADE','budget_account',x_progress);
196 raise;
197
198 END budget_account;
199
200 /* ********************************************************************************* */
201
202 --
203 -- variance_account
204 -- Build variance account for the specified structure
205 --
206 procedure variance_account ( itemtype in varchar2,
207 itemkey in varchar2,
208 actid in number,
209 funcmode in varchar2,
210 result out NOCOPY varchar2 )
211 is
212 l_result_flag BOOLEAN;
213 x_progress varchar2(1000);
214 FB_FLEX_SEG varchar2(2000);
215 FB_ERROR_MSG varchar2(2000);
216 BEGIN
217
218 x_progress := 'PO_WF_REQ_FLEXBUILDER_UPGRADE.variance_account: 01';
219 IF (g_po_wf_debug = 'Y') THEN
220 /* DEBUG */ PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey,x_progress);
221 END IF;
222
223
224 -- Do nothing in cancel or timeout mode
225 --
226 if (funcmode <> wf_engine.eng_run) then
227
228 result := wf_engine.eng_null;
229 return;
230
231 end if;
232
233 -- Get the required item attributes and then call the upgrade charge account
234 -- routine PO_REQ_CHARGE_ACCOUNT.BUILD ( );
235
236 l_result_flag := req_build_account( itemtype,
237 itemkey,
238 'VARIANCE',
239 FB_FLEX_SEG,
240 FB_ERROR_MSG );
241
242 x_progress := 'PO_WF_REQ_FLEXBUILDER_UPGRADE.variance_account: 02';
243 IF (g_po_wf_debug = 'Y') THEN
244 /* DEBUG */ PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey,x_progress);
245 END IF;
246
247 if l_result_flag then
248
249 -- Load the concated segment values returned by the BUILD function on to WF item
250 -- attributes.
251
252 FND_FLEX_WORKFLOW.LOAD_CONCATENATED_SEGMENTS ( itemtype, itemkey, FB_FLEX_SEG );
253
254 result := 'COMPLETE:SUCCESS';
255 return;
256 else
257 --If the build_account call returns an error message then set the ERROR_MSG attrib.
258
259 wf_engine.SetItemAttrText ( itemtype=>itemtype,
260 itemkey=>itemkey,
261 aname=>'ERROR_MESSAGE',
262 avalue=>FB_ERROR_MSG );
263
264 result := 'COMPLETE:FAILURE';
265 RETURN;
266
267 end if;
268
269 EXCEPTION
270 WHEN OTHERS THEN
271 wf_core.context('PO_WF_REQ_FLEXBUILDER_UPGRADE','variance_account',x_progress);
272 raise;
273
274 END variance_account;
275
276 /* ********************************************************************************* */
277
278 --
279 -- accrual_account
280 -- Build accrual account for the specified structure
281 --
282 procedure accrual_account ( itemtype in varchar2,
283 itemkey in varchar2,
284 actid in number,
285 funcmode in varchar2,
286 result out NOCOPY varchar2 )
287 is
288 l_result_flag BOOLEAN;
289 x_progress varchar2(1000);
290 FB_FLEX_SEG varchar2(2000);
291 FB_ERROR_MSG varchar2(2000);
292 BEGIN
293
294 x_progress := 'PO_WF_REQ_FLEXBUILDER_UPGRADE.accrual_account: 01';
295 IF (g_po_wf_debug = 'Y') THEN
296 /* DEBUG */ PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey,x_progress);
297 END IF;
298
299
300 -- Do nothing in cancel or timeout mode
301 --
302 if (funcmode <> wf_engine.eng_run) then
303
304 result := wf_engine.eng_null;
305 return;
306
307 end if;
308
309 -- Get the required item attributes and then call the upgrade charge account
310 -- routine PO_REQ_CHARGE_ACCOUNT.BUILD ( );
311
312 l_result_flag := req_build_account( itemtype,
313 itemkey,
314 'ACCRUAL',
315 FB_FLEX_SEG,
316 FB_ERROR_MSG );
317
318 x_progress := 'PO_WF_REQ_FLEXBUILDER_UPGRADE.accrual_account: 02';
319 IF (g_po_wf_debug = 'Y') THEN
320 /* DEBUG */ PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey,x_progress);
321 END IF;
322
323 if l_result_flag then
324
325 -- Load the concated segment values returned by the BUILD function on to WF item
326 -- attributes.
327
328 FND_FLEX_WORKFLOW.LOAD_CONCATENATED_SEGMENTS ( itemtype, itemkey, FB_FLEX_SEG );
329
330 result := 'COMPLETE:SUCCESS';
331 return;
332 else
333 --If the build_account call returns an error message then set the ERROR_MSG attrib.
334
335 wf_engine.SetItemAttrText ( itemtype=>itemtype,
336 itemkey=>itemkey,
337 aname=>'ERROR_MESSAGE',
338 avalue=>FB_ERROR_MSG );
339
340 result := 'COMPLETE:FAILURE';
341 RETURN;
342
343 end if;
344
345 EXCEPTION
346 WHEN OTHERS THEN
347 wf_core.context('PO_WF_REQ_FLEXBUILDER_UPGRADE','accrual_account',x_progress);
348 raise;
349
350 END accrual_account;
351
352
353 /*****************************************************************************
354 * Local/Private procedure/functions that support the workflow APIs: *
355 *****************************************************************************/
356
357 function req_build_account ( itemtype in varchar2,
358 itemkey in varchar2,
359 accountType in varchar2,
360 FB_FLEX_SEG in out NOCOPY VARCHAR2,
361 FB_ERROR_MSG in out NOCOPY VARCHAR2 )
362 return boolean
363 is
364 x_result_flag BOOLEAN;
365 x_progress varchar2(1000);
366
367 chart_of_accounts_id NUMBER; -- gl_set_of_books.charge_of_account_id
368 bom_cost_element_id NUMBER;
369 bom_resource_id NUMBER;
370 category_id NUMBER;
371 deliver_to_location_id NUMBER;
372 destination_organization_id NUMBER;
373 destination_subinventory VARCHAR2(10);
374 destination_type_code VARCHAR2(25);
375 expenditure_type VARCHAR2(30);
376 expenditure_item_date DATE;
377 expenditure_organization_id NUMBER;
378
379 line_type_id NUMBER;
380 pa_billable_flag VARCHAR2(1);
381 preparer_id NUMBER;
382 project_id NUMBER;
383 task_id NUMBER;
384 to_person_id NUMBER;
385 type_lookup_code VARCHAR2(40);
386 suggested_vendor_id NUMBER;
387 item_id NUMBER;
388
389 document_type_code VARCHAR2(80);
390 blanket_po_header_id NUMBER;
391 source_type_code VARCHAR2(80);
392 source_organization_id NUMBER;
393 source_subinventory VARCHAR2(80);
394
395 header_att1 VARCHAR2(2000);
396 header_att2 VARCHAR2(2000);
397 header_att3 VARCHAR2(2000);
398 header_att4 VARCHAR2(2000);
399 header_att5 VARCHAR2(2000);
400 header_att6 VARCHAR2(2000);
401 header_att7 VARCHAR2(2000);
402 header_att8 VARCHAR2(2000);
403 header_att9 VARCHAR2(2000);
404 header_att10 VARCHAR2(2000);
405 header_att11 VARCHAR2(2000);
406 header_att12 VARCHAR2(2000);
407 header_att13 VARCHAR2(2000);
408 header_att14 VARCHAR2(2000);
409 header_att15 VARCHAR2(2000);
410
411 line_att1 VARCHAR2(2000);
412 line_att2 VARCHAR2(2000);
413 line_att3 VARCHAR2(2000);
414 line_att4 VARCHAR2(2000);
415 line_att5 VARCHAR2(2000);
416 line_att6 VARCHAR2(2000);
417 line_att7 VARCHAR2(2000);
418 line_att8 VARCHAR2(2000);
419 line_att9 VARCHAR2(2000);
420 line_att10 VARCHAR2(2000);
421 line_att11 VARCHAR2(2000);
422 line_att12 VARCHAR2(2000);
423 line_att13 VARCHAR2(2000);
424 line_att14 VARCHAR2(2000);
425 line_att15 VARCHAR2(2000);
426
427 distribution_att1 VARCHAR2(2000);
428 distribution_att2 VARCHAR2(2000);
429 distribution_att3 VARCHAR2(2000);
430 distribution_att4 VARCHAR2(2000);
431 distribution_att5 VARCHAR2(2000);
432 distribution_att6 VARCHAR2(2000);
433 distribution_att7 VARCHAR2(2000);
434 distribution_att8 VARCHAR2(2000);
435 distribution_att9 VARCHAR2(2000);
436 distribution_att10 VARCHAR2(2000);
437 distribution_att11 VARCHAR2(2000);
438 distribution_att12 VARCHAR2(2000);
439 distribution_att13 VARCHAR2(2000);
440 distribution_att14 VARCHAR2(2000);
441 distribution_att15 VARCHAR2(2000);
442
443 wip_entity_id NUMBER;
444 wip_entity_type VARCHAR2(40);
445 wip_line_id NUMBER;
446 wip_operation_seq_num NUMBER;
447 wip_repetitive_schedule_id NUMBER;
448 wip_resource_seq_num NUMBER;
449
450 ccid NUMBER;
451 budget_account_id NUMBER;
452 accrual_account_id NUMBER;
453 begin
454
455 x_progress := 'PO_WF_REQ_FLEXBUILDER_UPGRADE.req_build_charge_account: 1';
456 IF (g_po_wf_debug = 'Y') THEN
457 /* DEBUG */ PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey,x_progress);
458 END IF;
459
460 -- Get values for the arguments to the build call from the Workflow Item Attributes.
461
462 IF (accountType IN ('BUDGET', 'ACCRUAL', 'VARIANCE')) then
463 Get_number_att(itemtype, itemkey, ccid, 'CODE_COMBINATION_ID');
464 END IF;
465 IF (accountType IN ('ACCRUAL', 'VARIANCE')) then
466 Get_number_att(itemtype, itemkey, budget_account_id, 'BUDGET_ACCOUNT_ID');
467 END IF;
468 IF (accountType IN ('VARIANCE')) then
469 Get_number_att(itemtype, itemkey, accrual_account_id, 'ACCRUAL_ACCOUNT_ID');
470 END IF;
471
472 Get_number_att(itemtype, itemkey, chart_of_accounts_id, 'CHART_OF_ACCOUNTS_ID');
473 Get_number_att(itemtype, itemkey, bom_cost_element_id, 'BOM_COST_ELEMENT_ID');
474 Get_number_att(itemtype, itemkey, bom_resource_id, 'BOM_RESOURCE_ID');
475 Get_number_att(itemtype, itemkey, category_id, 'CATEGORY_ID');
476 Get_number_att(itemtype, itemkey, deliver_to_location_id, 'DELIVER_TO_LOCATION_ID');
477 Get_number_att(itemtype, itemkey, destination_organization_id, 'DESTINATION_ORGANIZATION_ID');
478 Get_att(itemtype, itemkey, destination_subinventory, 'DESTINATION_SUBINVENTORY');
479 Get_att(itemtype, itemkey, destination_type_code, 'DESTINATION_TYPE_CODE');
480 Get_att(itemtype, itemkey, expenditure_type, 'EXPENDITURE_TYPE');
481 Get_date_att(itemtype, itemkey, expenditure_item_date, 'EXPENDITURE_ITEM_DATE');
482 Get_number_att(itemtype, itemkey, expenditure_organization_id, 'EXPENDITURE_ORGANIZATION_ID');
483 Get_number_att(itemtype, itemkey, line_type_id, 'LINE_TYPE_ID');
484 Get_att(itemtype, itemkey, pa_billable_flag, 'PA_BILLABLE_FLAG');
485 Get_number_att(itemtype, itemkey, preparer_id, 'PREPARER_ID');
486 Get_number_att(itemtype, itemkey, project_id, 'PROJECT_ID');
487 Get_number_att(itemtype, itemkey, task_id, 'TASK_ID');
488 Get_number_att(itemtype, itemkey, to_person_id, 'TO_PERSON_ID');
489 Get_att(itemtype, itemkey, type_lookup_code, 'TYPE_LOOKUP_CODE');
490 Get_number_att(itemtype, itemkey, item_id, 'ITEM_ID');
491 Get_number_att(itemtype, itemkey, wip_entity_id, 'WIP_ENTITY_ID');
492 Get_att(itemtype, itemkey, wip_entity_type, 'WIP_ENTITY_TYPE');
493 Get_number_att(itemtype, itemkey, wip_line_id, 'WIP_LINE_ID');
494 Get_number_att(itemtype, itemkey, wip_operation_seq_num, 'WIP_OPERATION_SEQ_NUM');
495 Get_number_att(itemtype, itemkey, wip_repetitive_schedule_id, 'WIP_REPETITIVE_SCHEDULE_ID');
496 Get_number_att(itemtype, itemkey, wip_resource_seq_num, 'WIP_RESOURCE_SEQ_NUM');
497
498 Get_att(itemtype, itemkey, document_type_code, 'DOCUMENT_TYPE_CODE');
499 Get_number_att(itemtype, itemkey, blanket_po_header_id, 'BLANKET_PO_HEADER_ID');
500 Get_att(itemtype, itemkey, source_type_code, 'SOURCE_TYPE_CODE');
501 Get_number_att(itemtype, itemkey, source_organization_id, 'SOURCE_ORGANIZATION_ID');
502 Get_att(itemtype, itemkey, source_subinventory, 'SOURCE_SUBINVENTORY');
503 Get_number_att(itemtype, itemkey, suggested_vendor_id, 'SUGGESTED_VENDOR_ID');
504
505 -- Get Header, line, shipment and distribution attributes.
506
507 Get_att(itemtype, itemkey, header_att1, 'HEADER_ATT1');
508 Get_att(itemtype, itemkey, header_att2, 'HEADER_ATT2');
509 Get_att(itemtype, itemkey, header_att3, 'HEADER_ATT3');
510 Get_att(itemtype, itemkey, header_att4, 'HEADER_ATT4');
511 Get_att(itemtype, itemkey, header_att5, 'HEADER_ATT5');
512 Get_att(itemtype, itemkey, header_att6, 'HEADER_ATT6');
513 Get_att(itemtype, itemkey, header_att7, 'HEADER_ATT7');
514 Get_att(itemtype, itemkey, header_att8, 'HEADER_ATT8');
515 Get_att(itemtype, itemkey, header_att9, 'HEADER_ATT9');
516 Get_att(itemtype, itemkey, header_att10, 'HEADER_ATT10');
517 Get_att(itemtype, itemkey, header_att11, 'HEADER_ATT11');
518 Get_att(itemtype, itemkey, header_att12, 'HEADER_ATT12');
519 Get_att(itemtype, itemkey, header_att13, 'HEADER_ATT13');
520 Get_att(itemtype, itemkey, header_att14, 'HEADER_ATT14');
521 Get_att(itemtype, itemkey, header_att15, 'HEADER_ATT15');
522
523 Get_att(itemtype, itemkey, line_att1, 'LINE_ATT1');
524 Get_att(itemtype, itemkey, line_att2, 'LINE_ATT2');
525 Get_att(itemtype, itemkey, line_att3, 'LINE_ATT3');
526 Get_att(itemtype, itemkey, line_att4, 'LINE_ATT4');
527 Get_att(itemtype, itemkey, line_att5, 'LINE_ATT5');
528 Get_att(itemtype, itemkey, line_att6, 'LINE_ATT6');
529 Get_att(itemtype, itemkey, line_att7, 'LINE_ATT7');
530 Get_att(itemtype, itemkey, line_att8, 'LINE_ATT8');
531 Get_att(itemtype, itemkey, line_att9, 'LINE_ATT9');
532 Get_att(itemtype, itemkey, line_att10, 'LINE_ATT10');
533 Get_att(itemtype, itemkey, line_att11, 'LINE_ATT11');
534 Get_att(itemtype, itemkey, line_att12, 'LINE_ATT12');
535 Get_att(itemtype, itemkey, line_att13, 'LINE_ATT13');
536 Get_att(itemtype, itemkey, line_att14, 'LINE_ATT14');
537 Get_att(itemtype, itemkey, line_att15, 'LINE_ATT15');
538
539 Get_att(itemtype, itemkey, distribution_att1, 'DISTRIBUTION_ATT1');
540 Get_att(itemtype, itemkey, distribution_att2, 'DISTRIBUTION_ATT2');
541 Get_att(itemtype, itemkey, distribution_att3, 'DISTRIBUTION_ATT3');
542 Get_att(itemtype, itemkey, distribution_att4, 'DISTRIBUTION_ATT4');
543 Get_att(itemtype, itemkey, distribution_att5, 'DISTRIBUTION_ATT5');
544 Get_att(itemtype, itemkey, distribution_att6, 'DISTRIBUTION_ATT6');
545 Get_att(itemtype, itemkey, distribution_att7, 'DISTRIBUTION_ATT7');
546 Get_att(itemtype, itemkey, distribution_att8, 'DISTRIBUTION_ATT8');
547 Get_att(itemtype, itemkey, distribution_att9, 'DISTRIBUTION_ATT9');
548 Get_att(itemtype, itemkey, distribution_att10, 'DISTRIBUTION_ATT10');
549 Get_att(itemtype, itemkey, distribution_att11, 'DISTRIBUTION_ATT11');
550 Get_att(itemtype, itemkey, distribution_att12, 'DISTRIBUTION_ATT12');
551 Get_att(itemtype, itemkey, distribution_att13, 'DISTRIBUTION_ATT13');
552 Get_att(itemtype, itemkey, distribution_att14, 'DISTRIBUTION_ATT14');
553 Get_att(itemtype, itemkey, distribution_att15, 'DISTRIBUTION_ATT15');
554
555 -- chart_of_accounts_id = gl_set_of_books.charge_of_account_id - structure id
556
557 IF (accountType = 'CHARGE') then
558
559 x_result_flag := PO_REQ_CHARGE_ACCOUNT.BUILD (
560
561 FB_FLEX_NUM => chart_of_accounts_id,
562 BOM_COST_ELEMENT_ID => to_char(bom_cost_element_id),
563 BOM_RESOURCE_ID => to_char(bom_resource_id),
564 CATEGORY_ID => to_char(category_id),
565 DELIVER_TO_LOCATION_ID => to_char(deliver_to_location_id),
566 DESTINATION_ORGANIZATION_ID => to_char(destination_organization_id),
567 DESTINATION_SUBINVENTORY => destination_subinventory,
568 DESTINATION_TYPE_CODE => destination_type_code,
569 EXPENDITURE_TYPE => expenditure_type,
570 EXPENDITURE_ORGANIZATION_ID => to_char(expenditure_organization_id),
571 LINE_TYPE_ID => to_char(line_type_id),
572 PA_BILLABLE_FLAG => pa_billable_flag,
573 PREPARER_ID => to_char(preparer_id),
574 PROJECT_ID => to_char(project_id),
575
576 TASK_ID => to_char(task_id),
577 TO_PERSON_ID => to_char(to_person_id),
578 TYPE_LOOKUP_CODE => type_lookup_code,
579 SOURCE_VENDOR_ID => to_char(suggested_vendor_id),
580 ITEM_ID => to_char(item_id),
581
582 SOURCE_TYPE_CODE => source_type_code,
583 SOURCE_ORGANIZATION_ID => source_organization_id,
584 SOURCE_SUBINVENTORY => source_subinventory,
585
586 HEADER_ATT1 => header_att1,
587 HEADER_ATT2 => header_att2,
588 HEADER_ATT3 => header_att3,
589 HEADER_ATT4 => header_att4,
590 HEADER_ATT5 => header_att5,
591 HEADER_ATT6 => header_att6,
592 HEADER_ATT7 => header_att7,
593 HEADER_ATT8 => header_att8,
594 HEADER_ATT9 => header_att9,
595 HEADER_ATT10 => header_att10,
596 HEADER_ATT11 => header_att11,
597 HEADER_ATT12 => header_att12,
598 HEADER_ATT13 => header_att13,
599 HEADER_ATT14 => header_att14,
600 HEADER_ATT15 => header_att15,
601
602 LINE_ATT1 => line_att1,
603 LINE_ATT2 => line_att2,
604 LINE_ATT3 => line_att3,
605 LINE_ATT4 => line_att4,
606 LINE_ATT5 => line_att5,
607 LINE_ATT6 => line_att6,
608 LINE_ATT7 => line_att7,
609 LINE_ATT8 => line_att8,
610 LINE_ATT9 => line_att9,
611 LINE_ATT10 => line_att10,
612 LINE_ATT11 => line_att11,
613 LINE_ATT12 => line_att12,
614 LINE_ATT13 => line_att13,
615 LINE_ATT14 => line_att14,
616 LINE_ATT15 => line_att15,
617
618 DISTRIBUTION_ATT1 => distribution_att1,
619 DISTRIBUTION_ATT2 => distribution_att2,
620 DISTRIBUTION_ATT3 => distribution_att3,
621 DISTRIBUTION_ATT4 => distribution_att4,
622 DISTRIBUTION_ATT5 => distribution_att5,
623 DISTRIBUTION_ATT6 => distribution_att6,
624 DISTRIBUTION_ATT7 => distribution_att7,
625 DISTRIBUTION_ATT8 => distribution_att8,
626 DISTRIBUTION_ATT9 => distribution_att9,
627 DISTRIBUTION_ATT10 => distribution_att10,
628 DISTRIBUTION_ATT11 => distribution_att11,
629 DISTRIBUTION_ATT12 => distribution_att12,
630 DISTRIBUTION_ATT13 => distribution_att13,
631 DISTRIBUTION_ATT14 => distribution_att14,
632 DISTRIBUTION_ATT15 => distribution_att15,
633
634 WIP_ENTITY_ID => to_char(wip_entity_id),
635 WIP_ENTITY_TYPE => wip_entity_type,
636 WIP_LINE_ID => to_char(wip_line_id),
637 WIP_OPERATION_SEQ_NUM => to_char(wip_operation_seq_num),
638 WIP_REPETITIVE_SCHEDULE_ID => to_char(wip_repetitive_schedule_id),
639 WIP_RESOURCE_SEQ_NUM => to_char(wip_resource_seq_num),
640
641 FB_FLEX_SEG => fb_flex_seg,
642 FB_ERROR_MSG => fb_error_msg );
643
644 ELSIF (accountType = 'BUDGET') THEN
645
646 x_result_flag := PO_REQ_BUDGET_ACCOUNT.BUILD (
647
648 FB_FLEX_NUM => chart_of_accounts_id,
649 BOM_COST_ELEMENT_ID => to_char(bom_cost_element_id),
650 BOM_RESOURCE_ID => to_char(bom_resource_id),
651 CATEGORY_ID => to_char(category_id),
652 CODE_COMBINATION_ID => to_char(ccid),
653 DELIVER_TO_LOCATION_ID => to_char(deliver_to_location_id),
654 DESTINATION_ORGANIZATION_ID => to_char(destination_organization_id),
655 DESTINATION_SUBINVENTORY => destination_subinventory,
656 DESTINATION_TYPE_CODE => destination_type_code,
657 EXPENDITURE_TYPE => expenditure_type,
658 EXPENDITURE_ORGANIZATION_ID => to_char(expenditure_organization_id),
659 LINE_TYPE_ID => to_char(line_type_id),
660 PA_BILLABLE_FLAG => pa_billable_flag,
661 PREPARER_ID => to_char(preparer_id),
662 PROJECT_ID => to_char(project_id),
663
664 TASK_ID => to_char(task_id),
665 TO_PERSON_ID => to_char(to_person_id),
666 TYPE_LOOKUP_CODE => type_lookup_code,
667 SOURCE_VENDOR_ID => to_char(suggested_vendor_id),
668 ITEM_ID => to_char(item_id),
669
670 SOURCE_TYPE_CODE => source_type_code,
671 SOURCE_ORGANIZATION_ID => source_organization_id,
672 SOURCE_SUBINVENTORY => source_subinventory,
673
674 HEADER_ATT1 => header_att1,
675 HEADER_ATT2 => header_att2,
676 HEADER_ATT3 => header_att3,
677 HEADER_ATT4 => header_att4,
678 HEADER_ATT5 => header_att5,
679 HEADER_ATT6 => header_att6,
680 HEADER_ATT7 => header_att7,
681 HEADER_ATT8 => header_att8,
682 HEADER_ATT9 => header_att9,
683 HEADER_ATT10 => header_att10,
684 HEADER_ATT11 => header_att11,
685 HEADER_ATT12 => header_att12,
686 HEADER_ATT13 => header_att13,
687 HEADER_ATT14 => header_att14,
688 HEADER_ATT15 => header_att15,
689
690 LINE_ATT1 => line_att1,
691 LINE_ATT2 => line_att2,
692 LINE_ATT3 => line_att3,
693 LINE_ATT4 => line_att4,
694 LINE_ATT5 => line_att5,
695 LINE_ATT6 => line_att6,
696 LINE_ATT7 => line_att7,
697 LINE_ATT8 => line_att8,
698 LINE_ATT9 => line_att9,
699 LINE_ATT10 => line_att10,
700 LINE_ATT11 => line_att11,
701 LINE_ATT12 => line_att12,
702 LINE_ATT13 => line_att13,
703 LINE_ATT14 => line_att14,
704 LINE_ATT15 => line_att15,
705
706 DISTRIBUTION_ATT1 => distribution_att1,
707 DISTRIBUTION_ATT2 => distribution_att2,
708 DISTRIBUTION_ATT3 => distribution_att3,
709 DISTRIBUTION_ATT4 => distribution_att4,
710 DISTRIBUTION_ATT5 => distribution_att5,
711 DISTRIBUTION_ATT6 => distribution_att6,
712 DISTRIBUTION_ATT7 => distribution_att7,
713 DISTRIBUTION_ATT8 => distribution_att8,
714 DISTRIBUTION_ATT9 => distribution_att9,
715 DISTRIBUTION_ATT10 => distribution_att10,
716 DISTRIBUTION_ATT11 => distribution_att11,
717 DISTRIBUTION_ATT12 => distribution_att12,
718 DISTRIBUTION_ATT13 => distribution_att13,
719 DISTRIBUTION_ATT14 => distribution_att14,
720 DISTRIBUTION_ATT15 => distribution_att15,
721
722 WIP_ENTITY_ID => to_char(wip_entity_id),
723 WIP_ENTITY_TYPE => wip_entity_type,
724 WIP_LINE_ID => to_char(wip_line_id),
725 WIP_OPERATION_SEQ_NUM => to_char(wip_operation_seq_num),
726 WIP_REPETITIVE_SCHEDULE_ID => to_char(wip_repetitive_schedule_id),
727 WIP_RESOURCE_SEQ_NUM => to_char(wip_resource_seq_num),
728
729 FB_FLEX_SEG => fb_flex_seg,
730 FB_ERROR_MSG => fb_error_msg );
731
732 ELSIF (accountType = 'ACCRUAL') THEN
733
734 x_result_flag := PO_REQ_ACCRUAL_ACCOUNT.BUILD (
735
736 FB_FLEX_NUM => chart_of_accounts_id,
737 BOM_COST_ELEMENT_ID => to_char(bom_cost_element_id),
738 BOM_RESOURCE_ID => to_char(bom_resource_id),
739 CATEGORY_ID => to_char(category_id),
740 CODE_COMBINATION_ID => to_char(ccid),
741 BUDGET_ACCOUNT_ID => to_char(budget_account_id),
742 DELIVER_TO_LOCATION_ID => to_char(deliver_to_location_id),
743 DESTINATION_ORGANIZATION_ID => to_char(destination_organization_id),
744 DESTINATION_SUBINVENTORY => destination_subinventory,
745 DESTINATION_TYPE_CODE => destination_type_code,
746 EXPENDITURE_TYPE => expenditure_type,
747 EXPENDITURE_ORGANIZATION_ID => to_char(expenditure_organization_id),
748 LINE_TYPE_ID => to_char(line_type_id),
749 PA_BILLABLE_FLAG => pa_billable_flag,
750 PREPARER_ID => to_char(preparer_id),
751 PROJECT_ID => to_char(project_id),
752
753 TASK_ID => to_char(task_id),
754 TO_PERSON_ID => to_char(to_person_id),
755 TYPE_LOOKUP_CODE => type_lookup_code,
756 SOURCE_VENDOR_ID => to_char(suggested_vendor_id),
757 ITEM_ID => to_char(item_id),
758
759 SOURCE_TYPE_CODE => source_type_code,
760 SOURCE_ORGANIZATION_ID => source_organization_id,
761 SOURCE_SUBINVENTORY => source_subinventory,
762
763 HEADER_ATT1 => header_att1,
764 HEADER_ATT2 => header_att2,
765 HEADER_ATT3 => header_att3,
766 HEADER_ATT4 => header_att4,
767 HEADER_ATT5 => header_att5,
768 HEADER_ATT6 => header_att6,
769 HEADER_ATT7 => header_att7,
770 HEADER_ATT8 => header_att8,
771 HEADER_ATT9 => header_att9,
772 HEADER_ATT10 => header_att10,
773 HEADER_ATT11 => header_att11,
774 HEADER_ATT12 => header_att12,
775 HEADER_ATT13 => header_att13,
776 HEADER_ATT14 => header_att14,
777 HEADER_ATT15 => header_att15,
778
779 LINE_ATT1 => line_att1,
780 LINE_ATT2 => line_att2,
781 LINE_ATT3 => line_att3,
782 LINE_ATT4 => line_att4,
783 LINE_ATT5 => line_att5,
784 LINE_ATT6 => line_att6,
785 LINE_ATT7 => line_att7,
786 LINE_ATT8 => line_att8,
787 LINE_ATT9 => line_att9,
788 LINE_ATT10 => line_att10,
789 LINE_ATT11 => line_att11,
790 LINE_ATT12 => line_att12,
791 LINE_ATT13 => line_att13,
792 LINE_ATT14 => line_att14,
793 LINE_ATT15 => line_att15,
794
795 DISTRIBUTION_ATT1 => distribution_att1,
796 DISTRIBUTION_ATT2 => distribution_att2,
797 DISTRIBUTION_ATT3 => distribution_att3,
798 DISTRIBUTION_ATT4 => distribution_att4,
799 DISTRIBUTION_ATT5 => distribution_att5,
800 DISTRIBUTION_ATT6 => distribution_att6,
801 DISTRIBUTION_ATT7 => distribution_att7,
802 DISTRIBUTION_ATT8 => distribution_att8,
803 DISTRIBUTION_ATT9 => distribution_att9,
804 DISTRIBUTION_ATT10 => distribution_att10,
805 DISTRIBUTION_ATT11 => distribution_att11,
806 DISTRIBUTION_ATT12 => distribution_att12,
807 DISTRIBUTION_ATT13 => distribution_att13,
808 DISTRIBUTION_ATT14 => distribution_att14,
809 DISTRIBUTION_ATT15 => distribution_att15,
810
811 WIP_ENTITY_ID => to_char(wip_entity_id),
812 WIP_ENTITY_TYPE => wip_entity_type,
813 WIP_LINE_ID => to_char(wip_line_id),
814 WIP_OPERATION_SEQ_NUM => to_char(wip_operation_seq_num),
815 WIP_REPETITIVE_SCHEDULE_ID => to_char(wip_repetitive_schedule_id),
816 WIP_RESOURCE_SEQ_NUM => to_char(wip_resource_seq_num),
817
818 FB_FLEX_SEG => fb_flex_seg,
819 FB_ERROR_MSG => fb_error_msg );
820
821 ELSIF (accountType = 'VARIANCE') THEN
822
823 x_result_flag := PO_REQ_VARIANCE_ACCOUNT.BUILD (
824
825 FB_FLEX_NUM => chart_of_accounts_id,
826 BOM_COST_ELEMENT_ID => to_char(bom_cost_element_id),
827 BOM_RESOURCE_ID => to_char(bom_resource_id),
828 CATEGORY_ID => to_char(category_id),
829 CODE_COMBINATION_ID => to_char(ccid),
830 BUDGET_ACCOUNT_ID => to_char(budget_account_id),
831 ACCRUAL_ACCOUNT_ID => to_char(accrual_account_id),
832 DELIVER_TO_LOCATION_ID => to_char(deliver_to_location_id),
833 DESTINATION_ORGANIZATION_ID => to_char(destination_organization_id),
834 DESTINATION_SUBINVENTORY => destination_subinventory,
835 DESTINATION_TYPE_CODE => destination_type_code,
836 EXPENDITURE_TYPE => expenditure_type,
837 EXPENDITURE_ORGANIZATION_ID => to_char(expenditure_organization_id),
838 LINE_TYPE_ID => to_char(line_type_id),
839 PA_BILLABLE_FLAG => pa_billable_flag,
840 PREPARER_ID => to_char(preparer_id),
841 PROJECT_ID => to_char(project_id),
842
843 TASK_ID => to_char(task_id),
844 TO_PERSON_ID => to_char(to_person_id),
845 TYPE_LOOKUP_CODE => type_lookup_code,
846 SOURCE_VENDOR_ID => to_char(suggested_vendor_id),
847 ITEM_ID => to_char(item_id),
848
849 SOURCE_TYPE_CODE => source_type_code,
850 SOURCE_ORGANIZATION_ID => source_organization_id,
851 SOURCE_SUBINVENTORY => source_subinventory,
852
853 HEADER_ATT1 => header_att1,
854 HEADER_ATT2 => header_att2,
855 HEADER_ATT3 => header_att3,
856 HEADER_ATT4 => header_att4,
857 HEADER_ATT5 => header_att5,
858 HEADER_ATT6 => header_att6,
859 HEADER_ATT7 => header_att7,
860 HEADER_ATT8 => header_att8,
861 HEADER_ATT9 => header_att9,
862 HEADER_ATT10 => header_att10,
863 HEADER_ATT11 => header_att11,
864 HEADER_ATT12 => header_att12,
865 HEADER_ATT13 => header_att13,
866 HEADER_ATT14 => header_att14,
867 HEADER_ATT15 => header_att15,
868
869 LINE_ATT1 => line_att1,
870 LINE_ATT2 => line_att2,
871 LINE_ATT3 => line_att3,
872 LINE_ATT4 => line_att4,
873 LINE_ATT5 => line_att5,
874 LINE_ATT6 => line_att6,
875 LINE_ATT7 => line_att7,
876 LINE_ATT8 => line_att8,
877 LINE_ATT9 => line_att9,
878 LINE_ATT10 => line_att10,
879 LINE_ATT11 => line_att11,
880 LINE_ATT12 => line_att12,
881 LINE_ATT13 => line_att13,
882 LINE_ATT14 => line_att14,
883 LINE_ATT15 => line_att15,
884
885 DISTRIBUTION_ATT1 => distribution_att1,
886 DISTRIBUTION_ATT2 => distribution_att2,
887 DISTRIBUTION_ATT3 => distribution_att3,
888 DISTRIBUTION_ATT4 => distribution_att4,
889 DISTRIBUTION_ATT5 => distribution_att5,
890 DISTRIBUTION_ATT6 => distribution_att6,
891 DISTRIBUTION_ATT7 => distribution_att7,
892 DISTRIBUTION_ATT8 => distribution_att8,
893 DISTRIBUTION_ATT9 => distribution_att9,
894 DISTRIBUTION_ATT10 => distribution_att10,
895 DISTRIBUTION_ATT11 => distribution_att11,
896 DISTRIBUTION_ATT12 => distribution_att12,
897 DISTRIBUTION_ATT13 => distribution_att13,
898 DISTRIBUTION_ATT14 => distribution_att14,
899 DISTRIBUTION_ATT15 => distribution_att15,
900
901 WIP_ENTITY_ID => to_char(wip_entity_id),
902 WIP_ENTITY_TYPE => wip_entity_type,
903 WIP_LINE_ID => to_char(wip_line_id),
904 WIP_OPERATION_SEQ_NUM => to_char(wip_operation_seq_num),
905 WIP_REPETITIVE_SCHEDULE_ID => to_char(wip_repetitive_schedule_id),
906 WIP_RESOURCE_SEQ_NUM => to_char(wip_resource_seq_num),
907
908 FB_FLEX_SEG => fb_flex_seg,
909 FB_ERROR_MSG => fb_error_msg );
910
911 END IF;
912 x_progress := 'PO_WF_REQ_FLEXBUILDER_UPGRADE.req_build_account : 2';
913 IF (g_po_wf_debug = 'Y') THEN
914 /* DEBUG */ PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey,x_progress);
915 END IF;
916
917 return x_result_flag;
918
919 exception
920 when others then
921 wf_core.context('PO_WF_REQ_FLEXBUILDER_UPGRADE','req_build_account',x_progress);
922 IF (g_po_wf_debug = 'Y') THEN
923 /* DEBUG */ PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey,'EXCEPTION raised in req_build_account procedure');
924 END IF;
925 raise;
926 end req_build_account;
927
928 /*****************************************************************************
929 * Local/Private procedure that support the workflow APIs: *
930 *****************************************************************************/
931
932 procedure Get_att(itemtype in varchar2, itemkey in varchar2, variable in out NOCOPY varchar2, l_aname in varchar2)
933 is
934 begin
935
936 variable := wf_engine.GetItemAttrText ( itemtype => itemtype,
937 itemkey => itemkey,
938 aname => l_aname);
939
940 end;
941
942 procedure Get_number_att(itemtype in varchar2, itemkey in varchar2, variable in out NOCOPY number,
943 l_aname in varchar2)
944 is
945 begin
946
947 variable := wf_engine.GetItemAttrNumber ( itemtype => itemtype,
948 itemkey => itemkey,
949 aname => l_aname);
950
951 end;
952
953 procedure Get_date_att(itemtype in varchar2, itemkey in varchar2, variable in out NOCOPY date,
954 l_aname in varchar2)
955 is
956 begin
957
958 variable := wf_engine.GetItemAttrDate ( itemtype => itemtype,
959 itemkey => itemkey,
960 aname => l_aname);
961
962 end;
963
964
965 end PO_WF_REQ_FLEXBUILDER_UPGRADE;