122: BEGIN
123: IF (funcmode = 'RUN' OR funcmode = 'CANCEL') THEN
124: l_result := fun_system_options_pkg.is_apar_batch();
125: IF (l_result) THEN
126: resultout := wf_engine.eng_completed||':T';
127: ELSE
128: resultout := wf_engine.eng_completed||':F';
129: END IF;
130:
124: l_result := fun_system_options_pkg.is_apar_batch();
125: IF (l_result) THEN
126: resultout := wf_engine.eng_completed||':T';
127: ELSE
128: resultout := wf_engine.eng_completed||':F';
129: END IF;
130:
131: RETURN;
132: END IF;
130:
131: RETURN;
132: END IF;
133:
134: resultout := wf_engine.eng_null;
135: RETURN;
136:
137: EXCEPTION
138: WHEN others THEN
161: l_event_key varchar2(240);
162: l_params wf_parameter_list_t := wf_parameter_list_t();
163: BEGIN
164: IF (funcmode = 'RUN') THEN
165: l_batch_id := wf_engine.GetItemAttrNumber
166: (itemtype => itemtype,
167: itemkey => itemkey,
168: aname => 'BATCH_ID');
169: l_trx_id := wf_engine.GetItemAttrNumber
165: l_batch_id := wf_engine.GetItemAttrNumber
166: (itemtype => itemtype,
167: itemkey => itemkey,
168: aname => 'BATCH_ID');
169: l_trx_id := wf_engine.GetItemAttrNumber
170: (itemtype => itemtype,
171: itemkey => itemkey,
172: aname => 'TRX_ID');
173: l_event_key := fun_wf_common.generate_event_key(l_batch_id, l_trx_id);
184: p_event_key => l_event_key,
185: p_parameters => l_params);
186:
187: l_params.delete();
188: resultout := wf_engine.eng_completed||':'||wf_engine.eng_null;
189: RETURN;
190: END IF;
191:
192: resultout := wf_engine.eng_null;
188: resultout := wf_engine.eng_completed||':'||wf_engine.eng_null;
189: RETURN;
190: END IF;
191:
192: resultout := wf_engine.eng_null;
193: RETURN;
194:
195: EXCEPTION
196: WHEN others THEN
218: l_msg_count number;
219: l_msg_data varchar2(1000);
220: BEGIN
221: IF (funcmode = 'RUN') THEN
222: l_trx_id := wf_engine.GetItemAttrNumber
223: (itemtype => itemtype,
224: itemkey => itemkey,
225: aname => 'TRX_ID');
226:
231: x_msg_data => l_msg_data,
232: p_trx_id => l_trx_id,
233: p_update_status_to => 'ERROR');
234: -- TODO: check return status
235: resultout := wf_engine.eng_completed||':'||wf_engine.eng_null;
236: RETURN;
237: END IF;
238:
239: resultout := wf_engine.eng_null;
235: resultout := wf_engine.eng_completed||':'||wf_engine.eng_null;
236: RETURN;
237: END IF;
238:
239: resultout := wf_engine.eng_null;
240: RETURN;
241:
242: EXCEPTION
243: WHEN others THEN
265: l_msg_count number;
266: l_msg_data varchar2(1000);
267: BEGIN
268: IF (funcmode = 'RUN') THEN
269: l_trx_id := wf_engine.GetItemAttrNumber
270: (itemtype => itemtype,
271: itemkey => itemkey,
272: aname => 'TRX_ID');
273:
278: x_msg_data => l_msg_data,
279: p_trx_id => l_trx_id,
280: p_update_status_to => 'RECEIVED');
281: -- TODO: check return status
282: resultout := wf_engine.eng_completed||':'||wf_engine.eng_null;
283: RETURN;
284: END IF;
285:
286: resultout := wf_engine.eng_null;
282: resultout := wf_engine.eng_completed||':'||wf_engine.eng_null;
283: RETURN;
284: END IF;
285:
286: resultout := wf_engine.eng_null;
287: RETURN;
288:
289: EXCEPTION
290: WHEN others THEN
312: l_msg_count number;
313: l_msg_data varchar2(1000);
314: BEGIN
315: IF (funcmode = 'RUN') THEN
316: l_trx_id := wf_engine.GetItemAttrNumber
317: (itemtype => itemtype,
318: itemkey => itemkey,
319: aname => 'TRX_ID');
320:
325: x_msg_data => l_msg_data,
326: p_trx_id => l_trx_id,
327: p_update_status_to => 'COMPLETE');
328: -- TODO: check return status
329: resultout := wf_engine.eng_completed||':'||wf_engine.eng_null;
330: RETURN;
331: END IF;
332:
333: resultout := wf_engine.eng_null;
329: resultout := wf_engine.eng_completed||':'||wf_engine.eng_null;
330: RETURN;
331: END IF;
332:
333: resultout := wf_engine.eng_null;
334: RETURN;
335:
336: EXCEPTION
337: WHEN others THEN
461: l_error_message VARCHAR2(2000);
462:
463: BEGIN
464:
465: l_transaction_id := wf_engine.GetItemAttrNumber (itemtype => itemtype,
466: itemkey => itemkey,
467: aname => 'TRX_ID');
468:
469: l_contact_type := wf_engine.GetActivityAttrText(itemtype => itemtype,
465: l_transaction_id := wf_engine.GetItemAttrNumber (itemtype => itemtype,
466: itemkey => itemkey,
467: aname => 'TRX_ID');
468:
469: l_contact_type := wf_engine.GetActivityAttrText(itemtype => itemtype,
470: itemkey => itemkey,
471: actid => actid,
472: aname => 'CONTACT_ORG_TYPE');
473:
485: x_error_message => l_error_message);
486:
487: IF l_return_status <> FND_API.G_RET_STS_SUCCESS
488: THEN
489: wf_engine.SetItemAttrText(itemtype => itemtype,
490: itemkey => itemkey,
491: aname => 'AME_ADMIN_USER',
492: avalue => l_ame_admin_user);
493:
490: itemkey => itemkey,
491: aname => 'AME_ADMIN_USER',
492: avalue => l_ame_admin_user);
493:
494: wf_engine.SetItemAttrText(itemtype => itemtype,
495: itemkey => itemkey,
496: aname => 'AME_ERROR',
497: avalue => l_error_message);
498:
495: itemkey => itemkey,
496: aname => 'AME_ERROR',
497: avalue => l_error_message);
498:
499: resultout := wf_engine.eng_completed||':'||'ERROR';
500: ELSIF l_approvers_found = 'N'
501: THEN
502: resultout := wf_engine.eng_completed||':'||'NO';
503: ELSIF l_approvers_found = 'Y'
498:
499: resultout := wf_engine.eng_completed||':'||'ERROR';
500: ELSIF l_approvers_found = 'N'
501: THEN
502: resultout := wf_engine.eng_completed||':'||'NO';
503: ELSIF l_approvers_found = 'Y'
504: THEN
505: -- Set the workflow attribute for CONTACT
506: wf_engine.SetItemAttrText(itemtype => itemtype,
502: resultout := wf_engine.eng_completed||':'||'NO';
503: ELSIF l_approvers_found = 'Y'
504: THEN
505: -- Set the workflow attribute for CONTACT
506: wf_engine.SetItemAttrText(itemtype => itemtype,
507: itemkey => itemkey,
508: aname => 'CONTACT',
509: avalue => l_role_name);
510:
507: itemkey => itemkey,
508: aname => 'CONTACT',
509: avalue => l_role_name);
510:
511: resultout := wf_engine.eng_completed||':'||'YES';
512: END IF;
513:
514: EXCEPTION
515: WHEN OTHERS
564:
565:
566: BEGIN
567:
568: l_transaction_id := wf_engine.GetItemAttrNumber (itemtype => itemtype,
569: itemkey => itemkey,
570: aname => 'TRX_ID');
571:
572: l_contact_type := wf_engine.GetActivityAttrText(itemtype => itemtype,
568: l_transaction_id := wf_engine.GetItemAttrNumber (itemtype => itemtype,
569: itemkey => itemkey,
570: aname => 'TRX_ID');
571:
572: l_contact_type := wf_engine.GetActivityAttrText(itemtype => itemtype,
573: itemkey => itemkey,
574: actid => actid,
575: aname => 'CONTACT_ORG_TYPE');
576:
576:
577: -- Initialize the UI Action and Approver name workflow attributes.
578: -- They will get set if and when user takes some approval action
579: -- from the UI
580: wf_engine.SetItemAttrText
581: (itemtype => 'FUNRMAIN',
582: itemkey => itemkey,
583: aname => 'UI_ACTION_TYPE',
584: avalue => 'NONE');
582: itemkey => itemkey,
583: aname => 'UI_ACTION_TYPE',
584: avalue => 'NONE');
585:
586: wf_engine.SetItemAttrText
587: (itemtype => 'FUNRMAIN',
588: itemkey => itemkey,
589: aname => 'UI_ACTION_USER_NAME',
590: avalue => NULL);
588: itemkey => itemkey,
589: aname => 'UI_ACTION_USER_NAME',
590: avalue => NULL);
591:
592: wf_engine.SetItemAttrNumber
593: (itemtype => 'FUNRMAIN',
594: itemkey => itemkey,
595: aname => 'UI_ACTION_USER_ID',
596: avalue => NULL);
610:
611: -- Check if Approval process is complete or was there an error
612: IF l_return_status <> FND_API.G_RET_STS_SUCCESS
613: THEN
614: wf_engine.SetItemAttrText(itemtype => itemtype,
615: itemkey => itemkey,
616: aname => 'AME_ADMIN_USER',
617: avalue => l_ame_admin_user);
618:
615: itemkey => itemkey,
616: aname => 'AME_ADMIN_USER',
617: avalue => l_ame_admin_user);
618:
619: wf_engine.SetItemAttrText(itemtype => itemtype,
620: itemkey => itemkey,
621: aname => 'AME_ERROR',
622: avalue => l_error_message);
623:
620: itemkey => itemkey,
621: aname => 'AME_ERROR',
622: avalue => l_error_message);
623:
624: resultout := wf_engine.eng_completed||':'||'ERROR';
625: ELSIF l_process_complete = 'Y'
626: THEN
627: resultout := wf_engine.eng_completed||':'||'COMPLETE';
628: ELSIF (l_approvers_found = 'N' AND l_process_complete = 'N')
623:
624: resultout := wf_engine.eng_completed||':'||'ERROR';
625: ELSIF l_process_complete = 'Y'
626: THEN
627: resultout := wf_engine.eng_completed||':'||'COMPLETE';
628: ELSIF (l_approvers_found = 'N' AND l_process_complete = 'N')
629: THEN
630: resultout := wf_engine.eng_completed||':'||'WAIT';
631: ELSIF l_approvers_found = 'Y'
626: THEN
627: resultout := wf_engine.eng_completed||':'||'COMPLETE';
628: ELSIF (l_approvers_found = 'N' AND l_process_complete = 'N')
629: THEN
630: resultout := wf_engine.eng_completed||':'||'WAIT';
631: ELSIF l_approvers_found = 'Y'
632: THEN
633: wf_engine.SetItemAttrText(itemtype => itemtype,
634: itemkey => itemkey,
629: THEN
630: resultout := wf_engine.eng_completed||':'||'WAIT';
631: ELSIF l_approvers_found = 'Y'
632: THEN
633: wf_engine.SetItemAttrText(itemtype => itemtype,
634: itemkey => itemkey,
635: aname => 'CONTACT',
636: avalue => l_role_name);
637:
634: itemkey => itemkey,
635: aname => 'CONTACT',
636: avalue => l_role_name);
637:
638: resultout := wf_engine.eng_completed||':'||'NOTIFY';
639: END IF;
640:
641: EXCEPTION
642: WHEN OTHERS
1209: if p_trx_id is NULL then
1210: for wf_abort in batch_abort
1211: loop
1212:
1213: wf_engine.AbortProcess
1214: (itemtype =>wf_abort.item_type,
1215: itemkey => wf_abort.item_key
1216: );
1217:
1218: end loop;
1219: else
1220: for wf_trx_abort in trx_abort
1221: loop
1222: wf_engine.AbortProcess
1223: (itemtype =>wf_trx_abort.item_type,
1224: itemkey => wf_trx_abort.item_key
1225: );
1226: