DBA Data[Home] [Help]

PACKAGE BODY: APPS.PO_WF_PO_FLEXBUILDER_UPGRADE

Source


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