294: p_item_key => p_item_key
295: );
296:
297: -- Set all the Submitter information on the Item Attributes
298: l_user_name := WF_ENGINE.GetItemAttrText(
299: p_item_type, p_item_key, G_USER_NAME);
300:
301: WF_DIRECTORY.GetRoleOrigSysInfo(
302: l_user_name,
308: ,l_submitter_id
309: ,l_submitter_name
310: ,l_submitter_display_name);
311:
312: WF_ENGINE.SetItemAttrText(
313: p_item_type, p_item_key, G_SUBMITTER_ORIG_SYSTEM, l_submitter_orig_system);
314:
315: WF_ENGINE.SetItemAttrText(
316: p_item_type, p_item_key, G_SUBMITTER_ID, l_submitter_id);
311:
312: WF_ENGINE.SetItemAttrText(
313: p_item_type, p_item_key, G_SUBMITTER_ORIG_SYSTEM, l_submitter_orig_system);
314:
315: WF_ENGINE.SetItemAttrText(
316: p_item_type, p_item_key, G_SUBMITTER_ID, l_submitter_id);
317:
318: WF_ENGINE.SetItemAttrText(
319: p_item_type, p_item_key, G_SUBMITTER_NAME, l_submitter_name);
314:
315: WF_ENGINE.SetItemAttrText(
316: p_item_type, p_item_key, G_SUBMITTER_ID, l_submitter_id);
317:
318: WF_ENGINE.SetItemAttrText(
319: p_item_type, p_item_key, G_SUBMITTER_NAME, l_submitter_name);
320:
321: WF_ENGINE.SetItemAttrText(
322: p_item_type, p_item_key, G_SUBMITTER_DISPLAY_NAME, l_submitter_display_name);
317:
318: WF_ENGINE.SetItemAttrText(
319: p_item_type, p_item_key, G_SUBMITTER_NAME, l_submitter_name);
320:
321: WF_ENGINE.SetItemAttrText(
322: p_item_type, p_item_key, G_SUBMITTER_DISPLAY_NAME, l_submitter_display_name);
323:
324: -- Set the Approval information on the Item Attributes
325: WF_ENGINE.SetItemAttrDate(
321: WF_ENGINE.SetItemAttrText(
322: p_item_type, p_item_key, G_SUBMITTER_DISPLAY_NAME, l_submitter_display_name);
323:
324: -- Set the Approval information on the Item Attributes
325: WF_ENGINE.SetItemAttrDate(
326: p_item_type, p_item_key, G_REQUEST_DATE, trunc(sysdate));
327:
328: x_result_out := WF_ENGINE.eng_completed;
329: return;
324: -- Set the Approval information on the Item Attributes
325: WF_ENGINE.SetItemAttrDate(
326: p_item_type, p_item_key, G_REQUEST_DATE, trunc(sysdate));
327:
328: x_result_out := WF_ENGINE.eng_completed;
329: return;
330:
331: end if;
332:
386:
387: -- Initialize API message list
388: FND_MSG_PUB.Initialize;
389:
390: l_item_plsql_pkg_name := WF_ENGINE.GetItemAttrText(
391: p_item_type, p_item_key, G_ITEM_PLSQL_PKG_NAME);
392:
393: if (l_item_plsql_pkg_name is not null) then
394:
406: ,p_item_key;
407:
408: else
409:
410: l_request_item_code := WF_ENGINE.GetItemAttrText(
411: p_item_type, p_item_key, G_REQUEST_ITEM_CODE);
412:
413: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name,
414: 'Invalid Approval Request Item: '||l_request_item_code);
416:
417: end if;
418:
419: -- Finished Checking Approval Items
420: x_result_out := WF_ENGINE.eng_completed || ':' || x_result_out;
421: return;
422:
423: end if;
424:
478:
479: -- Initialize API message list
480: FND_MSG_PUB.Initialize;
481:
482: l_item_plsql_pkg_name := WF_ENGINE.GetItemAttrText(
483: p_item_type, p_item_key, G_ITEM_PLSQL_PKG_NAME);
484:
485: if (l_item_plsql_pkg_name is not null) then
486:
497: ,p_item_key;
498:
499: else
500:
501: l_request_item_code := WF_ENGINE.GetItemAttrText(
502: p_item_type, p_item_key, G_REQUEST_ITEM_CODE);
503:
504: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name,
505: 'Invalid Approval Request Item: '||l_request_item_code);
507:
508: end if;
509:
510: -- Finished Initializing Approval Items
511: x_result_out := WF_ENGINE.eng_completed;
512: return;
513:
514: end if;
515:
579:
580: -- Initialize API message list
581: FND_MSG_PUB.Initialize;
582:
583: l_application_id := WF_ENGINE.GetItemAttrNumber(
584: p_item_type, p_item_key, G_APPLICATION_ID);
585:
586: l_request_id := WF_ENGINE.GetItemAttrNumber(
587: p_item_type, p_item_key, G_REQUEST_ID);
582:
583: l_application_id := WF_ENGINE.GetItemAttrNumber(
584: p_item_type, p_item_key, G_APPLICATION_ID);
585:
586: l_request_id := WF_ENGINE.GetItemAttrNumber(
587: p_item_type, p_item_key, G_REQUEST_ID);
588:
589: AME_API.GetNextApprover(
590: -- Bug Fix 3922758: WORKFLOW SUBMIT NEEDS TO CHANGE APP ID LOGIC
618:
619: else
620:
621: -- No more approvers were found
622: x_result_out := WF_ENGINE.eng_completed || ':' || G_NO;
623: return;
624:
625: end if;
626:
638: ,l_approver_name
639: ,l_approver_display_name
640: );
641:
642: WF_ENGINE.SetItemAttrText(
643: p_item_type, p_item_key, G_ROLE_NAME, l_role_name);
644:
645: WF_ENGINE.SetItemAttrNumber(
646: p_item_type, p_item_key, G_APPROVER_ID, l_approver_id);
641:
642: WF_ENGINE.SetItemAttrText(
643: p_item_type, p_item_key, G_ROLE_NAME, l_role_name);
644:
645: WF_ENGINE.SetItemAttrNumber(
646: p_item_type, p_item_key, G_APPROVER_ID, l_approver_id);
647:
648: WF_ENGINE.SetItemAttrNumber(
649: p_item_type, p_item_key, G_APPROVER_USER_ID, l_approver_user_id);
644:
645: WF_ENGINE.SetItemAttrNumber(
646: p_item_type, p_item_key, G_APPROVER_ID, l_approver_id);
647:
648: WF_ENGINE.SetItemAttrNumber(
649: p_item_type, p_item_key, G_APPROVER_USER_ID, l_approver_user_id);
650:
651: WF_ENGINE.SetItemAttrText(
652: p_item_type, p_item_key, G_APPROVER_NAME, l_approver_name);
647:
648: WF_ENGINE.SetItemAttrNumber(
649: p_item_type, p_item_key, G_APPROVER_USER_ID, l_approver_user_id);
650:
651: WF_ENGINE.SetItemAttrText(
652: p_item_type, p_item_key, G_APPROVER_NAME, l_approver_name);
653:
654: WF_ENGINE.SetItemAttrText(
655: p_item_type, p_item_key, G_APPROVER_DISPLAY_NAME, l_approver_display_name);
650:
651: WF_ENGINE.SetItemAttrText(
652: p_item_type, p_item_key, G_APPROVER_NAME, l_approver_name);
653:
654: WF_ENGINE.SetItemAttrText(
655: p_item_type, p_item_key, G_APPROVER_DISPLAY_NAME, l_approver_display_name);
656:
657: WF_ENGINE.SetItemAttrText(
658: p_item_type, p_item_key, G_APPROVER_ORIG_SYSTEM, l_approver_orig_system);
653:
654: WF_ENGINE.SetItemAttrText(
655: p_item_type, p_item_key, G_APPROVER_DISPLAY_NAME, l_approver_display_name);
656:
657: WF_ENGINE.SetItemAttrText(
658: p_item_type, p_item_key, G_APPROVER_ORIG_SYSTEM, l_approver_orig_system);
659:
660: -- Setting all AME approver record attributes
661: WF_ENGINE.SetItemAttrText(
657: WF_ENGINE.SetItemAttrText(
658: p_item_type, p_item_key, G_APPROVER_ORIG_SYSTEM, l_approver_orig_system);
659:
660: -- Setting all AME approver record attributes
661: WF_ENGINE.SetItemAttrText(
662: p_item_type, p_item_key, G_AME_AUTHORITY, l_next_approver_rec.authority);
663:
664: WF_ENGINE.SetItemAttrText(
665: p_item_type, p_item_key, G_AME_API_INSERTION, l_next_approver_rec.api_insertion);
660: -- Setting all AME approver record attributes
661: WF_ENGINE.SetItemAttrText(
662: p_item_type, p_item_key, G_AME_AUTHORITY, l_next_approver_rec.authority);
663:
664: WF_ENGINE.SetItemAttrText(
665: p_item_type, p_item_key, G_AME_API_INSERTION, l_next_approver_rec.api_insertion);
666:
667: WF_ENGINE.SetItemAttrNumber(
668: p_item_type, p_item_key, G_AME_APPROVAL_TYPE_ID, l_next_approver_rec.approval_type_id);
663:
664: WF_ENGINE.SetItemAttrText(
665: p_item_type, p_item_key, G_AME_API_INSERTION, l_next_approver_rec.api_insertion);
666:
667: WF_ENGINE.SetItemAttrNumber(
668: p_item_type, p_item_key, G_AME_APPROVAL_TYPE_ID, l_next_approver_rec.approval_type_id);
669:
670: WF_ENGINE.SetItemAttrNumber(
671: p_item_type, p_item_key, G_AME_GROUP_OR_CHAIN_ID, l_next_approver_rec.group_or_chain_id);
666:
667: WF_ENGINE.SetItemAttrNumber(
668: p_item_type, p_item_key, G_AME_APPROVAL_TYPE_ID, l_next_approver_rec.approval_type_id);
669:
670: WF_ENGINE.SetItemAttrNumber(
671: p_item_type, p_item_key, G_AME_GROUP_OR_CHAIN_ID, l_next_approver_rec.group_or_chain_id);
672:
673: WF_ENGINE.SetItemAttrNumber(
674: p_item_type, p_item_key, G_AME_OCCURRENCE, l_next_approver_rec.occurrence);
669:
670: WF_ENGINE.SetItemAttrNumber(
671: p_item_type, p_item_key, G_AME_GROUP_OR_CHAIN_ID, l_next_approver_rec.group_or_chain_id);
672:
673: WF_ENGINE.SetItemAttrNumber(
674: p_item_type, p_item_key, G_AME_OCCURRENCE, l_next_approver_rec.occurrence);
675:
676: x_result_out := WF_ENGINE.eng_completed || ':' || G_YES;
677: return;
672:
673: WF_ENGINE.SetItemAttrNumber(
674: p_item_type, p_item_key, G_AME_OCCURRENCE, l_next_approver_rec.occurrence);
675:
676: x_result_out := WF_ENGINE.eng_completed || ':' || G_YES;
677: return;
678:
679: end if;
680:
737: ,p_item_key => p_item_key
738: ,p_approval_status => AME_UTIL.approvedStatus
739: );
740:
741: x_result_out := WF_ENGINE.eng_completed;
742: return;
743:
744: end if;
745:
802: ,p_item_key => p_item_key
803: ,p_approval_status => AME_UTIL.rejectStatus
804: );
805:
806: x_result_out := WF_ENGINE.eng_completed;
807: return;
808:
809: end if;
810:
867: ,p_item_key => p_item_key
868: ,p_approval_status => AME_UTIL.noResponseStatus
869: );
870:
871: x_result_out := WF_ENGINE.eng_completed;
872: return;
873:
874: end if;
875:
926: l_old_approver_orig_system t_orig_system%TYPE;
927:
928: l_new_approver_id t_id%TYPE;
929: l_new_approver_user_id t_id%TYPE;
930: l_new_approver_name WF_ENGINE.context_text%TYPE;
931: l_new_approver_display_name t_display_name%TYPE;
932: l_new_approver_orig_system t_orig_system%TYPE;
933:
934: l_old_approver_record AME_UTIL.approverRecord;
943: -- Initialize API message list
944: FND_MSG_PUB.Initialize;
945:
946: -- Get necessary attribute values for call to AME_API
947: l_application_id := WF_ENGINE.GetItemAttrNumber(
948: p_item_type, p_item_key, G_APPLICATION_ID);
949:
950: l_request_id := WF_ENGINE.GetItemAttrNumber(
951: p_item_type, p_item_key, G_REQUEST_ID);
946: -- Get necessary attribute values for call to AME_API
947: l_application_id := WF_ENGINE.GetItemAttrNumber(
948: p_item_type, p_item_key, G_APPLICATION_ID);
949:
950: l_request_id := WF_ENGINE.GetItemAttrNumber(
951: p_item_type, p_item_key, G_REQUEST_ID);
952:
953: -- Identify if a forward or a transfer
954: if (p_func_mode = 'FORWARD') then
962: end if;
963:
964: -- Get all AME approver record attributes
965: l_old_approver_record.approval_status := l_approval_status;
966: l_old_approver_record.authority := WF_ENGINE.GetItemAttrText(
967: p_item_type, p_item_key, G_AME_AUTHORITY);
968: l_old_approver_record.api_insertion := WF_ENGINE.GetItemAttrText(
969: p_item_type, p_item_key, G_AME_API_INSERTION);
970: l_old_approver_record.approval_type_id := WF_ENGINE.GetItemAttrNumber(
964: -- Get all AME approver record attributes
965: l_old_approver_record.approval_status := l_approval_status;
966: l_old_approver_record.authority := WF_ENGINE.GetItemAttrText(
967: p_item_type, p_item_key, G_AME_AUTHORITY);
968: l_old_approver_record.api_insertion := WF_ENGINE.GetItemAttrText(
969: p_item_type, p_item_key, G_AME_API_INSERTION);
970: l_old_approver_record.approval_type_id := WF_ENGINE.GetItemAttrNumber(
971: p_item_type, p_item_key, G_AME_APPROVAL_TYPE_ID);
972: l_old_approver_record.group_or_chain_id := WF_ENGINE.GetItemAttrNumber(
966: l_old_approver_record.authority := WF_ENGINE.GetItemAttrText(
967: p_item_type, p_item_key, G_AME_AUTHORITY);
968: l_old_approver_record.api_insertion := WF_ENGINE.GetItemAttrText(
969: p_item_type, p_item_key, G_AME_API_INSERTION);
970: l_old_approver_record.approval_type_id := WF_ENGINE.GetItemAttrNumber(
971: p_item_type, p_item_key, G_AME_APPROVAL_TYPE_ID);
972: l_old_approver_record.group_or_chain_id := WF_ENGINE.GetItemAttrNumber(
973: p_item_type, p_item_key, G_AME_GROUP_OR_CHAIN_ID);
974: l_old_approver_record.occurrence := WF_ENGINE.GetItemAttrNumber(
968: l_old_approver_record.api_insertion := WF_ENGINE.GetItemAttrText(
969: p_item_type, p_item_key, G_AME_API_INSERTION);
970: l_old_approver_record.approval_type_id := WF_ENGINE.GetItemAttrNumber(
971: p_item_type, p_item_key, G_AME_APPROVAL_TYPE_ID);
972: l_old_approver_record.group_or_chain_id := WF_ENGINE.GetItemAttrNumber(
973: p_item_type, p_item_key, G_AME_GROUP_OR_CHAIN_ID);
974: l_old_approver_record.occurrence := WF_ENGINE.GetItemAttrNumber(
975: p_item_type, p_item_key, G_AME_OCCURRENCE);
976:
970: l_old_approver_record.approval_type_id := WF_ENGINE.GetItemAttrNumber(
971: p_item_type, p_item_key, G_AME_APPROVAL_TYPE_ID);
972: l_old_approver_record.group_or_chain_id := WF_ENGINE.GetItemAttrNumber(
973: p_item_type, p_item_key, G_AME_GROUP_OR_CHAIN_ID);
974: l_old_approver_record.occurrence := WF_ENGINE.GetItemAttrNumber(
975: p_item_type, p_item_key, G_AME_OCCURRENCE);
976:
977: -- Get the forwarding approver info
978: l_old_approver_id := WF_ENGINE.GetItemAttrNumber(
974: l_old_approver_record.occurrence := WF_ENGINE.GetItemAttrNumber(
975: p_item_type, p_item_key, G_AME_OCCURRENCE);
976:
977: -- Get the forwarding approver info
978: l_old_approver_id := WF_ENGINE.GetItemAttrNumber(
979: p_item_type, p_item_key, G_APPROVER_ID);
980:
981: l_old_approver_orig_system := WF_ENGINE.GetItemAttrText(
982: p_item_type, p_item_key, G_APPROVER_ORIG_SYSTEM);
977: -- Get the forwarding approver info
978: l_old_approver_id := WF_ENGINE.GetItemAttrNumber(
979: p_item_type, p_item_key, G_APPROVER_ID);
980:
981: l_old_approver_orig_system := WF_ENGINE.GetItemAttrText(
982: p_item_type, p_item_key, G_APPROVER_ORIG_SYSTEM);
983:
984: if (l_old_approver_orig_system = G_PER) then
985:
998:
999: end if;
1000:
1001: -- Get the new approver name for the forwarded notification
1002: l_new_approver_name := WF_ENGINE.context_text;
1003:
1004: WF_DIRECTORY.GetRoleOrigSysInfo(
1005: l_new_approver_name,
1006: l_new_approver_orig_system,
1053: ,transactionTypeIn => G_FEMAPPR
1054: );
1055:
1056: -- Setting all AME approver record attributes
1057: WF_ENGINE.SetItemAttrText(
1058: p_item_type, p_item_key, G_AME_AUTHORITY, l_new_approver_record.authority);
1059:
1060: WF_ENGINE.SetItemAttrText(
1061: p_item_type, p_item_key, G_AME_API_INSERTION, l_new_approver_record.api_insertion);
1056: -- Setting all AME approver record attributes
1057: WF_ENGINE.SetItemAttrText(
1058: p_item_type, p_item_key, G_AME_AUTHORITY, l_new_approver_record.authority);
1059:
1060: WF_ENGINE.SetItemAttrText(
1061: p_item_type, p_item_key, G_AME_API_INSERTION, l_new_approver_record.api_insertion);
1062:
1063: WF_ENGINE.SetItemAttrNumber(
1064: p_item_type, p_item_key, G_AME_APPROVAL_TYPE_ID, l_new_approver_record.approval_type_id);
1059:
1060: WF_ENGINE.SetItemAttrText(
1061: p_item_type, p_item_key, G_AME_API_INSERTION, l_new_approver_record.api_insertion);
1062:
1063: WF_ENGINE.SetItemAttrNumber(
1064: p_item_type, p_item_key, G_AME_APPROVAL_TYPE_ID, l_new_approver_record.approval_type_id);
1065:
1066: WF_ENGINE.SetItemAttrNumber(
1067: p_item_type, p_item_key, G_AME_GROUP_OR_CHAIN_ID, l_new_approver_record.group_or_chain_id);
1062:
1063: WF_ENGINE.SetItemAttrNumber(
1064: p_item_type, p_item_key, G_AME_APPROVAL_TYPE_ID, l_new_approver_record.approval_type_id);
1065:
1066: WF_ENGINE.SetItemAttrNumber(
1067: p_item_type, p_item_key, G_AME_GROUP_OR_CHAIN_ID, l_new_approver_record.group_or_chain_id);
1068:
1069: WF_ENGINE.SetItemAttrNumber(
1070: p_item_type, p_item_key, G_AME_OCCURRENCE, l_new_approver_record.occurrence);
1065:
1066: WF_ENGINE.SetItemAttrNumber(
1067: p_item_type, p_item_key, G_AME_GROUP_OR_CHAIN_ID, l_new_approver_record.group_or_chain_id);
1068:
1069: WF_ENGINE.SetItemAttrNumber(
1070: p_item_type, p_item_key, G_AME_OCCURRENCE, l_new_approver_record.occurrence);
1071:
1072: -- Update Approver Attributes with new approver info
1073: WF_ENGINE.SetItemAttrNumber(
1069: WF_ENGINE.SetItemAttrNumber(
1070: p_item_type, p_item_key, G_AME_OCCURRENCE, l_new_approver_record.occurrence);
1071:
1072: -- Update Approver Attributes with new approver info
1073: WF_ENGINE.SetItemAttrNumber(
1074: p_item_type, p_item_key, G_APPROVER_ID, l_new_approver_id);
1075:
1076: WF_ENGINE.SetItemAttrNumber(
1077: p_item_type, p_item_key, G_APPROVER_USER_ID, l_new_approver_user_id);
1072: -- Update Approver Attributes with new approver info
1073: WF_ENGINE.SetItemAttrNumber(
1074: p_item_type, p_item_key, G_APPROVER_ID, l_new_approver_id);
1075:
1076: WF_ENGINE.SetItemAttrNumber(
1077: p_item_type, p_item_key, G_APPROVER_USER_ID, l_new_approver_user_id);
1078:
1079: WF_ENGINE.SetItemAttrText(
1080: p_item_type, p_item_key, G_APPROVER_NAME, l_new_approver_name);
1075:
1076: WF_ENGINE.SetItemAttrNumber(
1077: p_item_type, p_item_key, G_APPROVER_USER_ID, l_new_approver_user_id);
1078:
1079: WF_ENGINE.SetItemAttrText(
1080: p_item_type, p_item_key, G_APPROVER_NAME, l_new_approver_name);
1081:
1082: WF_ENGINE.SetItemAttrText(
1083: p_item_type, p_item_key, G_APPROVER_DISPLAY_NAME, l_new_approver_display_name);
1078:
1079: WF_ENGINE.SetItemAttrText(
1080: p_item_type, p_item_key, G_APPROVER_NAME, l_new_approver_name);
1081:
1082: WF_ENGINE.SetItemAttrText(
1083: p_item_type, p_item_key, G_APPROVER_DISPLAY_NAME, l_new_approver_display_name);
1084:
1085: WF_ENGINE.SetItemAttrText(
1086: p_item_type, p_item_key, G_APPROVER_ORIG_SYSTEM, l_new_approver_orig_system);
1081:
1082: WF_ENGINE.SetItemAttrText(
1083: p_item_type, p_item_key, G_APPROVER_DISPLAY_NAME, l_new_approver_display_name);
1084:
1085: WF_ENGINE.SetItemAttrText(
1086: p_item_type, p_item_key, G_APPROVER_ORIG_SYSTEM, l_new_approver_orig_system);
1087:
1088: WF_ENGINE.SetItemAttrText(
1089: p_item_type, p_item_key, G_ROLE_NAME, l_new_approver_name);
1084:
1085: WF_ENGINE.SetItemAttrText(
1086: p_item_type, p_item_key, G_APPROVER_ORIG_SYSTEM, l_new_approver_orig_system);
1087:
1088: WF_ENGINE.SetItemAttrText(
1089: p_item_type, p_item_key, G_ROLE_NAME, l_new_approver_name);
1090:
1091: -- Finished Forwarding Approval Request to new Approver
1092: x_result_out := WF_ENGINE.eng_completed;
1088: WF_ENGINE.SetItemAttrText(
1089: p_item_type, p_item_key, G_ROLE_NAME, l_new_approver_name);
1090:
1091: -- Finished Forwarding Approval Request to new Approver
1092: x_result_out := WF_ENGINE.eng_completed;
1093: return;
1094:
1095: end if;
1096:
1150:
1151: -- Initialize API message list
1152: FND_MSG_PUB.Initialize;
1153:
1154: l_item_plsql_pkg_name := WF_ENGINE.GetItemAttrText(
1155: p_item_type, p_item_key, G_ITEM_PLSQL_PKG_NAME);
1156:
1157: if (l_item_plsql_pkg_name is not null) then
1158:
1169: ,p_item_key;
1170:
1171: else
1172:
1173: l_request_item_code := WF_ENGINE.GetItemAttrText(
1174: p_item_type, p_item_key, G_REQUEST_ITEM_CODE);
1175:
1176: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name,
1177: 'Invalid Approval Request Item: '||l_request_item_code);
1179:
1180: end if;
1181:
1182: -- Success in Setting Submitted State
1183: x_result_out := WF_ENGINE.eng_completed;
1184: return;
1185:
1186: end if;
1187:
1241:
1242: -- Initialize API message list
1243: FND_MSG_PUB.Initialize;
1244:
1245: l_item_plsql_pkg_name := WF_ENGINE.GetItemAttrText(
1246: p_item_type, p_item_key, G_ITEM_PLSQL_PKG_NAME);
1247:
1248: if (l_item_plsql_pkg_name is not null) then
1249:
1262: ,p_item_key;
1263:
1264: exception
1265: when others then
1266: x_result_out := WF_ENGINE.eng_completed || ':' || G_FAILURE;
1267: return;
1268: end;
1269:
1270: else
1268: end;
1269:
1270: else
1271:
1272: l_request_item_code := WF_ENGINE.GetItemAttrText(
1273: p_item_type, p_item_key, G_REQUEST_ITEM_CODE);
1274:
1275: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name,
1276: 'Invalid Approval Request Item: '||l_request_item_code);
1278:
1279: end if;
1280:
1281: -- Success in Setting Approved State
1282: x_result_out := WF_ENGINE.eng_completed || ':' || G_SUCCESS;
1283: return;
1284:
1285: end if;
1286:
1340:
1341: -- Initialize API message list
1342: FND_MSG_PUB.Initialize;
1343:
1344: l_item_plsql_pkg_name := WF_ENGINE.GetItemAttrText(
1345: p_item_type, p_item_key, G_ITEM_PLSQL_PKG_NAME);
1346:
1347: if (l_item_plsql_pkg_name is not null) then
1348:
1359: ,p_item_key;
1360:
1361: else
1362:
1363: l_request_item_code := WF_ENGINE.GetItemAttrText(
1364: p_item_type, p_item_key, G_REQUEST_ITEM_CODE);
1365:
1366: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name,
1367: 'Invalid Approval Request Item: '||l_request_item_code);
1369:
1370: end if;
1371:
1372: -- Success in Setting Rejected State
1373: x_result_out := WF_ENGINE.eng_completed;
1374: return;
1375:
1376: end if;
1377:
1432:
1433: l_justification :=
1434: FND_MESSAGE.get_string('FEM', 'FEM_WF_APPROVED_STATE_ERR');
1435:
1436: WF_ENGINE.SetItemAttrText(
1437: p_item_type, p_item_key, G_JUSTIFICATION, l_justification);
1438:
1439: x_result_out := WF_ENGINE.eng_completed;
1440: return;
1435:
1436: WF_ENGINE.SetItemAttrText(
1437: p_item_type, p_item_key, G_JUSTIFICATION, l_justification);
1438:
1439: x_result_out := WF_ENGINE.eng_completed;
1440: return;
1441:
1442: end if;
1443:
1499: ,p_item_key => p_item_key
1500: );
1501:
1502: -- Finished Initializing Approval Request
1503: x_result_out := WF_ENGINE.eng_completed;
1504:
1505: return;
1506:
1507: end if;
1562: BEGIN
1563:
1564: if (p_command = 'RUN') then
1565:
1566: x_result_out := WF_ENGINE.eng_completed || ':' || G_FEM_APPROVAL_PROCESS;
1567: return;
1568:
1569: elsif (p_command = 'TEST_CTX') THEN
1570:
1572: -- with the work item context required to execute
1573: -- the workflow safely
1574: FND_PROFILE.Get(name => G_ORG_ID, val => l_session_org_id);
1575:
1576: l_org_id := WF_ENGINE.GetItemAttrNumber(
1577: p_item_type, p_item_key, G_ORG_ID);
1578:
1579: if (l_session_org_id = l_org_id) then
1580: x_result_out := WF_ENGINE.eng_completed || ':' || G_TRUE;
1576: l_org_id := WF_ENGINE.GetItemAttrNumber(
1577: p_item_type, p_item_key, G_ORG_ID);
1578:
1579: if (l_session_org_id = l_org_id) then
1580: x_result_out := WF_ENGINE.eng_completed || ':' || G_TRUE;
1581: return;
1582: else
1583: -- If the background engine is executing the
1584: -- Selector/Callback function, the workflow engine
1583: -- If the background engine is executing the
1584: -- Selector/Callback function, the workflow engine
1585: -- will immediately run the Selector/Callback
1586: -- function in SET_CTX mode
1587: x_result_out := WF_ENGINE.eng_completed || ':' || G_FALSE;
1588: return;
1589: end if;
1590:
1591: elsif (p_command = 'SET_CTX') then
1592:
1593: -- Initialize API message list
1594: FND_MSG_PUB.Initialize;
1595:
1596: l_org_id := WF_ENGINE.GetItemAttrNumber(
1597: p_item_type, p_item_key, G_ORG_ID);
1598:
1599: l_user_id := WF_ENGINE.GetItemAttrNumber(
1600: p_item_type, p_item_key, G_USER_ID);
1595:
1596: l_org_id := WF_ENGINE.GetItemAttrNumber(
1597: p_item_type, p_item_key, G_ORG_ID);
1598:
1599: l_user_id := WF_ENGINE.GetItemAttrNumber(
1600: p_item_type, p_item_key, G_USER_ID);
1601:
1602: l_responsibility_id := WF_ENGINE.GetItemAttrNumber(
1603: p_item_type, p_item_key, G_RESPONSIBILITY_ID);
1598:
1599: l_user_id := WF_ENGINE.GetItemAttrNumber(
1600: p_item_type, p_item_key, G_USER_ID);
1601:
1602: l_responsibility_id := WF_ENGINE.GetItemAttrNumber(
1603: p_item_type, p_item_key, G_RESPONSIBILITY_ID);
1604:
1605: l_application_id := WF_ENGINE.GetItemAttrNumber(
1606: p_item_type, p_item_key, G_APPLICATION_ID);
1601:
1602: l_responsibility_id := WF_ENGINE.GetItemAttrNumber(
1603: p_item_type, p_item_key, G_RESPONSIBILITY_ID);
1604:
1605: l_application_id := WF_ENGINE.GetItemAttrNumber(
1606: p_item_type, p_item_key, G_APPLICATION_ID);
1607:
1608: -- Set the database session context which also sets the org
1609: FND_GLOBAL.Apps_Initialize(l_user_id, l_responsibility_id, l_application_id);
1608: -- Set the database session context which also sets the org
1609: FND_GLOBAL.Apps_Initialize(l_user_id, l_responsibility_id, l_application_id);
1610:
1611: -- Finished the Callback Function
1612: x_result_out := WF_ENGINE.eng_completed;
1613: return;
1614:
1615: else
1616:
1613: return;
1614:
1615: else
1616:
1617: x_result_out := WF_ENGINE.eng_completed;
1618: return;
1619:
1620: end if;
1621:
1671:
1672: BEGIN
1673:
1674: l_approver_rec.approval_status := p_approval_status;
1675: l_approver_rec.authority := WF_ENGINE.GetItemAttrText(
1676: p_item_type, p_item_key, G_AME_AUTHORITY);
1677: l_approver_rec.api_insertion := WF_ENGINE.GetItemAttrText(
1678: p_item_type, p_item_key, G_AME_API_INSERTION);
1679: l_approver_rec.approval_type_id := WF_ENGINE.GetItemAttrNumber(
1673:
1674: l_approver_rec.approval_status := p_approval_status;
1675: l_approver_rec.authority := WF_ENGINE.GetItemAttrText(
1676: p_item_type, p_item_key, G_AME_AUTHORITY);
1677: l_approver_rec.api_insertion := WF_ENGINE.GetItemAttrText(
1678: p_item_type, p_item_key, G_AME_API_INSERTION);
1679: l_approver_rec.approval_type_id := WF_ENGINE.GetItemAttrNumber(
1680: p_item_type, p_item_key, G_AME_APPROVAL_TYPE_ID);
1681: l_approver_rec.group_or_chain_id := WF_ENGINE.GetItemAttrNumber(
1675: l_approver_rec.authority := WF_ENGINE.GetItemAttrText(
1676: p_item_type, p_item_key, G_AME_AUTHORITY);
1677: l_approver_rec.api_insertion := WF_ENGINE.GetItemAttrText(
1678: p_item_type, p_item_key, G_AME_API_INSERTION);
1679: l_approver_rec.approval_type_id := WF_ENGINE.GetItemAttrNumber(
1680: p_item_type, p_item_key, G_AME_APPROVAL_TYPE_ID);
1681: l_approver_rec.group_or_chain_id := WF_ENGINE.GetItemAttrNumber(
1682: p_item_type, p_item_key, G_AME_GROUP_OR_CHAIN_ID);
1683: l_approver_rec.occurrence := WF_ENGINE.GetItemAttrNumber(
1677: l_approver_rec.api_insertion := WF_ENGINE.GetItemAttrText(
1678: p_item_type, p_item_key, G_AME_API_INSERTION);
1679: l_approver_rec.approval_type_id := WF_ENGINE.GetItemAttrNumber(
1680: p_item_type, p_item_key, G_AME_APPROVAL_TYPE_ID);
1681: l_approver_rec.group_or_chain_id := WF_ENGINE.GetItemAttrNumber(
1682: p_item_type, p_item_key, G_AME_GROUP_OR_CHAIN_ID);
1683: l_approver_rec.occurrence := WF_ENGINE.GetItemAttrNumber(
1684: p_item_type, p_item_key, G_AME_OCCURRENCE);
1685:
1679: l_approver_rec.approval_type_id := WF_ENGINE.GetItemAttrNumber(
1680: p_item_type, p_item_key, G_AME_APPROVAL_TYPE_ID);
1681: l_approver_rec.group_or_chain_id := WF_ENGINE.GetItemAttrNumber(
1682: p_item_type, p_item_key, G_AME_GROUP_OR_CHAIN_ID);
1683: l_approver_rec.occurrence := WF_ENGINE.GetItemAttrNumber(
1684: p_item_type, p_item_key, G_AME_OCCURRENCE);
1685:
1686: l_application_id := WF_ENGINE.GetItemAttrNumber(
1687: p_item_type, p_item_key, G_APPLICATION_ID);
1682: p_item_type, p_item_key, G_AME_GROUP_OR_CHAIN_ID);
1683: l_approver_rec.occurrence := WF_ENGINE.GetItemAttrNumber(
1684: p_item_type, p_item_key, G_AME_OCCURRENCE);
1685:
1686: l_application_id := WF_ENGINE.GetItemAttrNumber(
1687: p_item_type, p_item_key, G_APPLICATION_ID);
1688:
1689: l_request_id := WF_ENGINE.GetItemAttrNumber(
1690: p_item_type, p_item_key, G_REQUEST_ID);
1685:
1686: l_application_id := WF_ENGINE.GetItemAttrNumber(
1687: p_item_type, p_item_key, G_APPLICATION_ID);
1688:
1689: l_request_id := WF_ENGINE.GetItemAttrNumber(
1690: p_item_type, p_item_key, G_REQUEST_ID);
1691:
1692: l_approver_id := WF_ENGINE.GetItemAttrNumber(
1693: p_item_type, p_item_key, G_APPROVER_ID);
1688:
1689: l_request_id := WF_ENGINE.GetItemAttrNumber(
1690: p_item_type, p_item_key, G_REQUEST_ID);
1691:
1692: l_approver_id := WF_ENGINE.GetItemAttrNumber(
1693: p_item_type, p_item_key, G_APPROVER_ID);
1694:
1695: l_approver_orig_system := WF_ENGINE.GetItemAttrText(
1696: p_item_type, p_item_key, G_APPROVER_ORIG_SYSTEM);
1691:
1692: l_approver_id := WF_ENGINE.GetItemAttrNumber(
1693: p_item_type, p_item_key, G_APPROVER_ID);
1694:
1695: l_approver_orig_system := WF_ENGINE.GetItemAttrText(
1696: p_item_type, p_item_key, G_APPROVER_ORIG_SYSTEM);
1697:
1698: if (l_approver_orig_system = G_PER) then
1699:
1757: l_dynamic_query long;
1758:
1759: BEGIN
1760:
1761: l_item_plsql_pkg_name := WF_ENGINE.GetItemAttrText(
1762: p_item_type, p_item_key, G_ITEM_PLSQL_PKG_NAME);
1763:
1764: if (l_item_plsql_pkg_name is not null) then
1765:
1776: ,p_item_key;
1777:
1778: else
1779:
1780: l_request_item_code := WF_ENGINE.GetItemAttrText(
1781: p_item_type, p_item_key, G_REQUEST_ITEM_CODE);
1782:
1783: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name,
1784: 'Invalid Approval Request Item: '||l_request_item_code);
1785: raise FND_API.G_EXC_UNEXPECTED_ERROR;
1786:
1787: end if;
1788:
1789: l_request_id := WF_ENGINE.GetItemAttrNumber(
1790: p_item_type, p_item_key, G_REQUEST_ID);
1791:
1792: delete from fem_wf_requests
1793: where wf_request_id = l_request_id;
1825:
1826: BEGIN
1827:
1828: -- Set all the Approval Type information on the Item Attributes
1829: l_event_name := WF_ENGINE.GetItemAttrText(
1830: p_item_type, p_item_key, G_EVENT_NAME);
1831:
1832: if l_event_name in (
1833: G_BUSINESS_RULE_EVENT_APPROVAL
1840: where wf_request_id = p_item_key;
1841:
1842: if (l_request_item_code is not null) then
1843:
1844: WF_ENGINE.SetItemAttrText(
1845: p_item_type, p_item_key, G_REQUEST_ITEM_CODE, l_request_item_code);
1846:
1847: select item_plsql_pkg_name
1848: into l_item_plsql_pkg_name
1848: into l_item_plsql_pkg_name
1849: from fem_wf_req_items
1850: where wf_request_item_code = l_request_item_code;
1851:
1852: WF_ENGINE.SetItemAttrText(
1853: p_item_type, p_item_key, G_ITEM_PLSQL_PKG_NAME, l_item_plsql_pkg_name);
1854:
1855: select meaning
1856: into l_request_item
1857: from fem_lookups
1858: where lookup_type = 'FEM_WF_REQUEST_ITEM_DSC'
1859: and lookup_code = l_request_item_code;
1860:
1861: WF_ENGINE.SetItemAttrText(
1862: p_item_type, p_item_key, G_REQUEST_ITEM, l_request_item);
1863:
1864: else
1865:
1870: end if;
1871:
1872: if (l_request_type_code is not null) then
1873:
1874: WF_ENGINE.SetItemAttrText(
1875: p_item_type, p_item_key, G_REQUEST_TYPE_CODE, l_request_type_code);
1876:
1877: select meaning
1878: into l_request_type
1879: from fem_lookups
1880: where lookup_type = 'FEM_WF_REQUEST_TYPE_DSC'
1881: and lookup_code = l_request_type_code;
1882:
1883: WF_ENGINE.SetItemAttrText(
1884: p_item_type, p_item_key, G_REQUEST_TYPE, l_request_type);
1885:
1886: else
1887: