271: PO_WF_UTIL_PKG.G_ITEM_KEY := itemkey;
272:
273: l_progress := '010';
274: IF (g_po_wf_debug = 'Y') THEN
275: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress);
276: END IF;
277:
278: -- Logic :
279: -- + Fetch all workflow related attributes.
306: l_need_to_get_next_approver := FALSE;
307: BEGIN
308: l_progress := '030';
309: IF (g_po_wf_debug = 'Y') THEN
310: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' Calling AME API with transaction id ' || l_transaction_id);
311: END IF;
312:
313: ame_util2.detailedApprovalStatusFlagYN := ame_util.booleanTrue;
314: AME_API2.getNextApprovers3 (
333: RAISE;
334: END;
335: l_progress := '040';
336: IF (g_po_wf_debug = 'Y') THEN
337: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||'.'||l_progress||':'||
338: ' g_next_approvers.count:'||g_next_approvers.count||
339: ' l_completeYNO:'||l_completeYNO);
340: END IF;
341:
341:
342: IF ( g_next_approvers.count > 0 ) THEN
343:
344: IF (g_po_wf_debug = 'Y') THEN
345: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' BEFORE ESIGNER EXISTS');
346: END IF;
347:
348: -- Check whether approver set is of signers or not. If yes, set the attribute and exit
349: IF(l_esigner_exists = 'N') THEN
349: IF(l_esigner_exists = 'N') THEN
350: l_esigner_flag := check_set_esigners(itemtype, itemkey);
351: IF l_esigner_flag = 'Y' then
352: IF (g_po_wf_debug = 'Y') THEN
353: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' BEFORE update_pending_signature');
354: END IF;
355: update_pending_signature(itemtype, itemkey, l_document_id);
356: resultout:= wf_engine.eng_completed||':'||'VALID_ESIGNER';
357: RETURN;
359: END IF; -- l_esigner_exists = 'N'
360:
361: l_position_has_valid_approvers := position_has_valid_approvers(l_transaction_id, l_transaction_type);
362: IF (g_po_wf_debug = 'Y') THEN
363: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||'.'||l_progress||':'||
364: ' l_position_has_valid_approvers:'||l_position_has_valid_approvers||
365: ' g_next_approvers.count:'||g_next_approvers.count);
366: END IF;
367:
405: l_preparer_user_name := PO_REQAPPROVAL_INIT1.get_preparer_user_name(itemType, itemkey);
406: WF_CORE.context(g_pkg_name, l_api_name, l_progress, sqlerrm);
407: PO_REQAPPROVAL_INIT1.send_error_notif(itemType, itemkey, l_preparer_user_name, l_doc_string, sqlerrm, l_progress, l_document_id);
408: IF (g_po_wf_debug = 'Y') THEN
409: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress);
410: END IF;
411: resultout:= wf_engine.eng_completed||':'||'INVALID_APPROVER';
412: RETURN;
413: END get_next_approvers;
472: WHEN OTHERS THEN
473: l_doc_string := PO_REQAPPROVAL_INIT1.get_error_doc(itemType, itemkey);
474: wf_core.context(g_pkg_name, l_api_name, 'Unexpected Exception:', l_progress, SQLERRM);
475: IF (g_po_wf_debug = 'Y') THEN
476: PO_WF_DEBUG_PKG.insert_debug(itemtype, itemkey, l_log_head||':'||l_progress||':'||SQLERRM);
477: END IF;
478: RAISE;
479: END is_ame_exception;
480:
744: PO_WF_UTIL_PKG.G_ITEM_KEY := itemkey;
745:
746: l_progress := '010';
747: IF (g_po_wf_debug = 'Y') THEN
748: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress);
749: END IF;
750:
751: --setting the bypass flag to N if document is getting forwarded
752: po_wf_util_pkg.SetItemAttrText(aname => 'BYPASS_CHECKS_FLAG', avalue => 'N');
766: --Loop through current set of approvers until l_approver_index is not null
767: WHILE (l_approver_index IS NOT NULL) LOOP
768: l_progress := '020';
769: IF (g_po_wf_debug = 'Y') THEN
770: PO_WF_DEBUG_PKG.insert_debug (itemtype, itemkey, l_log_head||':'||l_progress
771: ||': g_next_approvers.name'
772: ||g_next_approvers(l_approver_index).name);
773: END IF;
774:
831: END IF;
832:
833: l_progress := '030';
834: IF (g_po_wf_debug = 'Y') THEN
835: PO_WF_DEBUG_PKG.insert_debug (itemtype, itemkey, l_log_head||':'||l_progress
836: ||' g_next_approvers.orig_system:'
837: ||g_next_approvers (l_approver_index).orig_system);
838: END IF;
839:
900:
901: l_progress := '050';
902:
903: IF (g_po_wf_debug = 'Y') THEN
904: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' l_next_approver_user_name:'||l_next_approver_user_name);
905: END IF;
906:
907: IF (g_next_approvers (l_approver_index).orig_system = ame_util.perorigsystem) THEN
908: t_po_varname (17) := 'APPROVER_USER_NAME';
962:
963: l_progress := '060';
964: --Adding code for setting attribute approver_category for on the basis of production rule.
965: IF (g_po_wf_debug = 'Y') THEN
966: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' g_production_Indexes.Count:'||g_production_Indexes.Count);
967: END IF;
968:
969: --Determine the approver category
970: t_po_varname (34) := 'APPROVER_CATEGORY';
971: IF (g_production_Indexes.Count > 0) THEN
972: FOR j IN 1..g_production_Indexes.Count LOOP
973:
974: IF (g_po_wf_debug = 'Y') THEN
975: PO_WF_DEBUG_PKG.insert_debug (itemtype, itemkey, l_log_head||':'||l_progress||' j:' || j);
976: PO_WF_DEBUG_PKG.insert_debug (itemtype, itemkey, l_log_head||':'||l_progress||' g_production_Indexes(j):' || g_production_Indexes(j));
977: PO_WF_DEBUG_PKG.insert_debug (itemtype, itemkey, l_log_head||':'||l_progress||' l_approver_index:' || l_approver_index);
978: PO_WF_DEBUG_PKG.insert_debug (itemtype, itemkey, l_log_head||':'||l_progress||' g_variable_Names(j):' || g_variable_Names(j));
979: PO_WF_DEBUG_PKG.insert_debug (itemtype, itemkey, l_log_head||':'||l_progress||' g_variable_Values(j):' || g_variable_Values(j));
972: FOR j IN 1..g_production_Indexes.Count LOOP
973:
974: IF (g_po_wf_debug = 'Y') THEN
975: PO_WF_DEBUG_PKG.insert_debug (itemtype, itemkey, l_log_head||':'||l_progress||' j:' || j);
976: PO_WF_DEBUG_PKG.insert_debug (itemtype, itemkey, l_log_head||':'||l_progress||' g_production_Indexes(j):' || g_production_Indexes(j));
977: PO_WF_DEBUG_PKG.insert_debug (itemtype, itemkey, l_log_head||':'||l_progress||' l_approver_index:' || l_approver_index);
978: PO_WF_DEBUG_PKG.insert_debug (itemtype, itemkey, l_log_head||':'||l_progress||' g_variable_Names(j):' || g_variable_Names(j));
979: PO_WF_DEBUG_PKG.insert_debug (itemtype, itemkey, l_log_head||':'||l_progress||' g_variable_Values(j):' || g_variable_Values(j));
980: END IF;
973:
974: IF (g_po_wf_debug = 'Y') THEN
975: PO_WF_DEBUG_PKG.insert_debug (itemtype, itemkey, l_log_head||':'||l_progress||' j:' || j);
976: PO_WF_DEBUG_PKG.insert_debug (itemtype, itemkey, l_log_head||':'||l_progress||' g_production_Indexes(j):' || g_production_Indexes(j));
977: PO_WF_DEBUG_PKG.insert_debug (itemtype, itemkey, l_log_head||':'||l_progress||' l_approver_index:' || l_approver_index);
978: PO_WF_DEBUG_PKG.insert_debug (itemtype, itemkey, l_log_head||':'||l_progress||' g_variable_Names(j):' || g_variable_Names(j));
979: PO_WF_DEBUG_PKG.insert_debug (itemtype, itemkey, l_log_head||':'||l_progress||' g_variable_Values(j):' || g_variable_Values(j));
980: END IF;
981:
974: IF (g_po_wf_debug = 'Y') THEN
975: PO_WF_DEBUG_PKG.insert_debug (itemtype, itemkey, l_log_head||':'||l_progress||' j:' || j);
976: PO_WF_DEBUG_PKG.insert_debug (itemtype, itemkey, l_log_head||':'||l_progress||' g_production_Indexes(j):' || g_production_Indexes(j));
977: PO_WF_DEBUG_PKG.insert_debug (itemtype, itemkey, l_log_head||':'||l_progress||' l_approver_index:' || l_approver_index);
978: PO_WF_DEBUG_PKG.insert_debug (itemtype, itemkey, l_log_head||':'||l_progress||' g_variable_Names(j):' || g_variable_Names(j));
979: PO_WF_DEBUG_PKG.insert_debug (itemtype, itemkey, l_log_head||':'||l_progress||' g_variable_Values(j):' || g_variable_Values(j));
980: END IF;
981:
982: IF g_production_Indexes(j) = l_approver_index THEN
975: PO_WF_DEBUG_PKG.insert_debug (itemtype, itemkey, l_log_head||':'||l_progress||' j:' || j);
976: PO_WF_DEBUG_PKG.insert_debug (itemtype, itemkey, l_log_head||':'||l_progress||' g_production_Indexes(j):' || g_production_Indexes(j));
977: PO_WF_DEBUG_PKG.insert_debug (itemtype, itemkey, l_log_head||':'||l_progress||' l_approver_index:' || l_approver_index);
978: PO_WF_DEBUG_PKG.insert_debug (itemtype, itemkey, l_log_head||':'||l_progress||' g_variable_Names(j):' || g_variable_Names(j));
979: PO_WF_DEBUG_PKG.insert_debug (itemtype, itemkey, l_log_head||':'||l_progress||' g_variable_Values(j):' || g_variable_Values(j));
980: END IF;
981:
982: IF g_production_Indexes(j) = l_approver_index THEN
983: IF g_variable_Names(j) = 'REVIEWER' AND g_variable_Values(j)= 'YES' THEN
985: END IF;
986: END IF;
987: END LOOP; -- end of for loop for production rules
988: ELSIF l_esigner_exists = 'Y' THEN
989: PO_WF_DEBUG_PKG.insert_debug (itemtype, itemkey, l_log_head||':'||l_progress||' Esigner exists (into post approval grp)');
990: t_po_varval (34) := 'ESIGNER';
991: ELSE --g_production_Indexes.Count < 0
992: PO_WF_DEBUG_PKG.insert_debug (itemtype, itemkey, l_log_head||':'||l_progress||' No Production Rules');
993: t_po_varval (34) := 'APPROVER';
988: ELSIF l_esigner_exists = 'Y' THEN
989: PO_WF_DEBUG_PKG.insert_debug (itemtype, itemkey, l_log_head||':'||l_progress||' Esigner exists (into post approval grp)');
990: t_po_varval (34) := 'ESIGNER';
991: ELSE --g_production_Indexes.Count < 0
992: PO_WF_DEBUG_PKG.insert_debug (itemtype, itemkey, l_log_head||':'||l_progress||' No Production Rules');
993: t_po_varval (34) := 'APPROVER';
994: END IF;
995:
996: l_progress := '070';
1024: n_varval (4) := l_next_approver_id;
1025: n_varname (5) := 'APPROVAL_GROUP_ID';
1026:
1027: IF (g_po_wf_debug = 'Y') THEN
1028: PO_WF_DEBUG_PKG.insert_debug ( itemtype, itemkey, l_log_head||':'||l_progress
1029: ||' g_next_approvers.api_insertion:'
1030: ||g_next_approvers(l_approver_index).api_insertion);
1031: END IF;
1032:
1041: n_varname (7) := 'APPLICATION_ID';
1042: n_varval (7) := po_wf_util_pkg.GetItemAttrNumber (aname => 'APPLICATION_ID');
1043:
1044: IF (g_po_wf_debug = 'Y') THEN
1045: PO_WF_DEBUG_PKG.insert_debug (itemtype, itemkey, l_log_head||':'||l_progress
1046: ||' RESP:'||n_varval(6)
1047: ||' APPL_ID:'||n_varval(7));
1048: END IF;
1049: n_varname (8) := 'AME_TRANSACTION_ID';
1094: l_preparer_user_name := PO_REQAPPROVAL_INIT1.get_preparer_user_name(itemType, itemkey);
1095: WF_CORE.context(g_pkg_name, l_api_name, l_progress, sqlerrm);
1096: PO_REQAPPROVAL_INIT1.send_error_notif(itemType, itemkey, l_preparer_user_name, l_doc_string, sqlerrm, l_progress, l_document_id);
1097: IF (g_po_wf_debug = 'Y') THEN
1098: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress);
1099: END IF;
1100: RAISE;
1101: END launch_parallel_approval;
1102:
1204: -- Update AME about current status of approver through API ame_api2.updateApprovalStatus.
1205:
1206: l_progress := '010';
1207: IF (g_po_wf_debug = 'Y') THEN
1208: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress);
1209: END IF;
1210:
1211: l_document_id := po_wf_util_pkg.GetItemAttrNumber( aname => 'DOCUMENT_ID');
1212: l_document_type := po_wf_util_pkg.GetItemAttrText( aname => 'DOCUMENT_TYPE');
1260: END IF;
1261:
1262: l_progress := '030';
1263: IF (g_po_wf_debug = 'Y') THEN
1264: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
1265: ||' p_response'||p_response
1266: ||' l_forwardee.name:'||l_forwardee.name);
1267: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
1268: ||' p_response'||p_response
1263: IF (g_po_wf_debug = 'Y') THEN
1264: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
1265: ||' p_response'||p_response
1266: ||' l_forwardee.name:'||l_forwardee.name);
1267: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
1268: ||' p_response'||p_response
1269: ||' l_forwardee.orig_system:'||l_forwardee.orig_system);
1270: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
1271: ||' l_forwardee.orig_system_id:'||l_forwardee.orig_system_id);
1266: ||' l_forwardee.name:'||l_forwardee.name);
1267: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
1268: ||' p_response'||p_response
1269: ||' l_forwardee.orig_system:'||l_forwardee.orig_system);
1270: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
1271: ||' l_forwardee.orig_system_id:'||l_forwardee.orig_system_id);
1272: END IF;
1273:
1274: -- Get the name value for the approverRecord2.
1306: END IF;
1307:
1308: l_progress := '050';
1309: IF (g_po_wf_debug = 'Y') THEN
1310: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
1311: ||' l_current_approver.name:'||l_current_approver.name);
1312: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
1313: ||' l_current_approver.orig_system:'||l_current_approver.orig_system);
1314: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
1308: l_progress := '050';
1309: IF (g_po_wf_debug = 'Y') THEN
1310: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
1311: ||' l_current_approver.name:'||l_current_approver.name);
1312: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
1313: ||' l_current_approver.orig_system:'||l_current_approver.orig_system);
1314: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
1315: ||' l_current_approver.orig_system_id:'||l_current_approver.orig_system_id);
1316: END IF;
1310: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
1311: ||' l_current_approver.name:'||l_current_approver.name);
1312: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
1313: ||' l_current_approver.orig_system:'||l_current_approver.orig_system);
1314: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
1315: ||' l_current_approver.orig_system_id:'||l_current_approver.orig_system_id);
1316: END IF;
1317:
1318:
1404: PO_WF_UTIL_PKG.G_ITEM_KEY := itemkey;
1405:
1406: l_progress := '010';
1407: IF (g_po_wf_debug = 'Y') THEN
1408: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress);
1409: END IF;
1410:
1411: SELECT parent_item_type, parent_item_key
1412: INTO l_parent_item_type, l_parent_item_key
1481: -- + Call autonomous transaction InsertActionHistoryPoAme to insert record into action hsitory.
1482: -- + Reset attributes 'FORWARD_TO_USERNAME_RESPONSE' and 'NOTE'
1483: l_progress := '010';
1484: IF (g_po_wf_debug = 'Y') THEN
1485: PO_WF_DEBUG_PKG.insert_debug(itemtype, itemkey, l_log_head||':'||l_progress);
1486: END IF;
1487:
1488: l_document_id := po_wf_util_pkg.GetItemAttrNumber( aname => 'DOCUMENT_ID');
1489: l_draft_id := po_wf_util_pkg.GetItemAttrText( aname => 'DRAFT_ID');
1524: l_preparer_user_name := PO_REQAPPROVAL_INIT1.get_preparer_user_name(itemType, itemkey);
1525: WF_CORE.context(g_pkg_name, l_api_name, l_progress, sqlerrm);
1526: PO_REQAPPROVAL_INIT1.send_error_notif(itemType, itemkey, l_preparer_user_name, l_doc_string, sqlerrm, l_progress, l_document_id);
1527: IF (g_po_wf_debug = 'Y') THEN
1528: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress);
1529: END IF;
1530: RAISE;
1531: END insert_action_history;
1532:
1594: -- + Also set 'APPROVER_RESPONSE' workflow attribute with value 'FORWARD'
1595:
1596: l_progress := '010';
1597: IF (g_po_wf_debug = 'Y') THEN
1598: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress);
1599: END IF;
1600:
1601: l_current_approver := po_wf_util_pkg.GetItemAttrNumber( aname=>'APPROVER_EMPID');
1602: l_document_id := po_wf_util_pkg.GetItemAttrNumber( aname => 'DOCUMENT_ID');
1630: l_preparer_user_name := PO_REQAPPROVAL_INIT1.get_preparer_user_name(itemType, itemkey);
1631: WF_CORE.context(g_pkg_name, l_api_name, l_progress, sqlerrm);
1632: PO_REQAPPROVAL_INIT1.send_error_notif(itemType, itemkey, l_preparer_user_name, l_doc_string, sqlerrm, l_progress, l_document_id);
1633: IF (g_po_wf_debug = 'Y') THEN
1634: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' Exception:'||sqlerrm);
1635: END IF;
1636: RAISE;
1637: END Update_Action_History_Forward;
1638:
1701: -- + Also set 'APPROVER_RESPONSE' workflow attribute with value 'APPROVE'
1702:
1703: l_progress := '010';
1704: IF (g_po_wf_debug = 'Y') THEN
1705: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress);
1706: END IF;
1707:
1708: l_current_approver := po_wf_util_pkg.GetItemAttrNumber( aname=>'APPROVER_EMPID');
1709: l_document_id := po_wf_util_pkg.GetItemAttrNumber( aname => 'DOCUMENT_ID');
1728: END IF;
1729:
1730: l_progress := '020';
1731: IF (g_po_wf_debug = 'Y') THEN
1732: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
1733: ||' Doc Info:'||TO_CHAR(l_document_id)||'-'
1734: ||TO_CHAR(l_draft_id)||'-'||l_document_type
1735: ||'-'||l_document_subtype);
1736: END IF;
1754: l_preparer_user_name := PO_REQAPPROVAL_INIT1.get_preparer_user_name(itemType, itemkey);
1755: WF_CORE.context(g_pkg_name, l_api_name, l_progress, sqlerrm);
1756: PO_REQAPPROVAL_INIT1.send_error_notif(itemType, itemkey, l_preparer_user_name, l_doc_string, sqlerrm, l_progress, l_document_id);
1757: IF (g_po_wf_debug = 'Y') THEN
1758: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress);
1759: END IF;
1760: RAISE;
1761: END Update_Action_History_Approve;
1762:
1817: PO_WF_UTIL_PKG.G_ITEM_KEY := itemkey;
1818:
1819: l_progress := '010';
1820: IF (g_po_wf_debug = 'Y') THEN
1821: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress);
1822: END IF;
1823:
1824: -- Logic :
1825: -- + Fetch worklfow attributes required for updating NULL action to REJECT for approver,
1851: END IF;
1852:
1853: l_progress := '020';
1854: IF (g_po_wf_debug = 'Y') THEN
1855: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
1856: ||' Doc Info:'||TO_CHAR(l_document_id)||'-'
1857: ||TO_CHAR(l_draft_id)||'-'||l_document_type
1858: ||'-'||l_document_subtype);
1859: END IF;
1876: l_preparer_user_name := PO_REQAPPROVAL_INIT1.get_preparer_user_name(itemType, itemkey);
1877: WF_CORE.context(g_pkg_name, l_api_name, l_progress, sqlerrm);
1878: PO_REQAPPROVAL_INIT1.send_error_notif(itemType, itemkey, l_preparer_user_name, l_doc_string, sqlerrm, l_progress, l_document_id);
1879: IF (g_po_wf_debug = 'Y') THEN
1880: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress);
1881: END IF;
1882: RAISE;
1883: END Update_Action_History_Reject;
1884:
1938: PO_WF_UTIL_PKG.G_ITEM_KEY := itemkey;
1939:
1940: l_progress := '010';
1941: IF (g_po_wf_debug = 'Y') THEN
1942: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress);
1943: END IF;
1944:
1945: -- Logic:
1946: -- + Fetch worklfow attributes required for updating NULL action to NO ACTION action into action history
1959: END IF;
1960:
1961: l_progress := '020';
1962: IF (g_po_wf_debug = 'Y') THEN
1963: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
1964: ||' Doc Info:'||TO_CHAR(l_document_id)
1965: ||'-'||TO_CHAR(l_draft_id)||'-'
1966: ||l_document_type||'-'||l_document_subtype);
1967: END IF;
1984: l_preparer_user_name := PO_REQAPPROVAL_INIT1.get_preparer_user_name(itemType, itemkey);
1985: WF_CORE.context(g_pkg_name, l_api_name, l_progress, sqlerrm);
1986: PO_REQAPPROVAL_INIT1.send_error_notif(itemType, itemkey, l_preparer_user_name, l_doc_string, sqlerrm, l_progress, l_document_id);
1987: IF (g_po_wf_debug = 'Y') THEN
1988: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress);
1989: END IF;
1990: RAISE;
1991: END Update_Action_History_Timeout;
1992:
2046: PO_WF_UTIL_PKG.G_ITEM_KEY := itemkey;
2047:
2048: l_progress := '010';
2049: IF (g_po_wf_debug = 'Y') THEN
2050: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress);
2051: END IF;
2052:
2053: -- Logic:
2054: -- + Fetch worklfow attributes required for updating NULL action to NO ACTION action into action history
2067: END IF;
2068:
2069: l_progress := '020';
2070: IF (g_po_wf_debug = 'Y') THEN
2071: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
2072: ||' Doc Info:'||TO_CHAR(l_document_id)
2073: ||'-'||TO_CHAR(l_draft_id)||'-'
2074: ||l_document_type||'-'||l_document_subtype);
2075: END IF;
2092: l_preparer_user_name := PO_REQAPPROVAL_INIT1.get_preparer_user_name(itemType, itemkey);
2093: WF_CORE.context(g_pkg_name, l_api_name, l_progress, sqlerrm);
2094: PO_REQAPPROVAL_INIT1.send_error_notif(itemType, itemkey, l_preparer_user_name, l_doc_string, sqlerrm, l_progress, l_document_id);
2095: IF (g_po_wf_debug = 'Y') THEN
2096: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress);
2097: END IF;
2098: RAISE;
2099: END update_action_history_app_fwd;
2100:
2148: PO_WF_UTIL_PKG.G_ITEM_KEY := itemkey;
2149:
2150: l_progress := '010';
2151: IF (g_po_wf_debug = 'Y') THEN
2152: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress);
2153: END IF;
2154:
2155: -- Logic :
2156: -- + Get parent_itemp_type and parent_item_key.
2170: process_response_internal(itemtype, itemkey, 'APPROVE AND FORWARD');
2171: l_progress := '030';
2172:
2173: IF (g_po_wf_debug = 'Y') THEN
2174: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' Returned from process_response_internal');
2175: END IF;
2176:
2177: l_child_approver_empid := po_wf_util_pkg.GetItemAttrNumber( aname => 'APPROVER_EMPID');
2178: l_child_approver_user_name := po_wf_util_pkg.GetItemAttrText( aname => 'APPROVER_USER_NAME');
2188: po_wf_util_pkg.SetItemAttrText( aname => 'APPROVER_USER_NAME', avalue => l_child_approver_user_name );
2189: po_wf_util_pkg.SetItemAttrText( aname => 'APPROVER_DISPLAY_NAME', avalue => l_child_approver_display_name );
2190:
2191: IF (g_po_wf_debug = 'Y') THEN
2192: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' Process_Response_App_Forward completed');
2193: END IF;
2194:
2195: resultout := wf_engine.eng_completed||':'||'ACTIVITY_PERFORMED';
2196: RETURN;
2246: PO_WF_UTIL_PKG.G_ITEM_KEY := itemkey;
2247:
2248: l_progress := '010';
2249: IF (g_po_wf_debug = 'Y') THEN
2250: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress);
2251: END IF;
2252:
2253: -- Logic :
2254: -- + Get parent_itemp_type and parent_item_key.
2283: po_wf_util_pkg.SetItemAttrText( aname => 'APPROVER_DISPLAY_NAME', avalue => l_child_approver_display_name );
2284:
2285: l_progress := '040';
2286: IF (g_po_wf_debug = 'Y') THEN
2287: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' Completed');
2288: END IF;
2289:
2290: resultout := wf_engine.eng_completed||':'||'ACTIVITY_PERFORMED';
2291: RETURN;
2341: PO_WF_UTIL_PKG.G_ITEM_KEY := itemkey;
2342:
2343: l_progress := '010';
2344: IF (g_po_wf_debug = 'Y') THEN
2345: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' Start');
2346: END IF;
2347:
2348: -- Logic:
2349: -- + Get parent_itemp_type and parent_item_key.
2380: po_wf_util_pkg.SetItemAttrText( aname => 'APPROVER_DISPLAY_NAME', avalue => l_child_approver_display_name );
2381:
2382: l_progress := '050';
2383: IF (g_po_wf_debug = 'Y') THEN
2384: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' Completed');
2385: END IF;
2386:
2387: resultout := wf_engine.eng_completed||':'||'ACTIVITY_PERFORMED';
2388: RETURN;
2437: PO_WF_UTIL_PKG.G_ITEM_KEY := itemkey;
2438:
2439: l_progress := '010';
2440: IF (g_po_wf_debug = 'Y') THEN
2441: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' Start');
2442: END IF;
2443:
2444: -- Logic:
2445: -- + Get parent_itemp_type and parent_item_key.
2474: po_wf_util_pkg.SetItemAttrText( aname => 'APPROVER_DISPLAY_NAME', avalue => l_child_approver_display_name );
2475:
2476: l_progress := '040';
2477: IF (g_po_wf_debug = 'Y') THEN
2478: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' Completed');
2479: END IF;
2480:
2481: resultout := wf_engine.eng_completed||':'||'ACTIVITY_PERFORMED';
2482: RETURN;
2532: PO_WF_UTIL_PKG.G_ITEM_KEY := itemkey;
2533:
2534: l_progress := '010';
2535: IF (g_po_wf_debug = 'Y') THEN
2536: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' Start');
2537: END IF;
2538:
2539: -- Logic:
2540: -- + Get parent_itemp_type and parent_item_key.
2576: activity => 'BLOCK',
2577: result => NULL);
2578:
2579: IF (g_po_wf_debug = 'Y') THEN
2580: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' Completed');
2581: END IF;
2582:
2583: resultout := wf_engine.eng_completed||':'||'ACTIVITY_PERFORMED';
2584: RETURN;
2631: PO_WF_UTIL_PKG.G_ITEM_KEY := itemkey;
2632:
2633: l_progress := '010';
2634: IF (g_po_wf_debug = 'Y') THEN
2635: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' Start');
2636: END IF;
2637:
2638: l_no_reminder := po_wf_util_pkg.GetItemAttrNumber( aname => 'NO_REMINDER');
2639: IF (l_no_reminder < 2) THEN
2718: po_wf_util_pkg.SetItemAttrNumber( aname => 'NOTIFICATION_ID', avalue => l_nid);
2719:
2720: l_progress := '010';
2721: IF (g_po_wf_debug = 'Y') THEN
2722: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' Start');
2723: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||' funcmode:'||funcmode);
2724: END IF;
2725:
2726: IF (funcmode IN ('FORWARD','QUESTION','ANSWER', 'TIMEOUT') )THEN
2719:
2720: l_progress := '010';
2721: IF (g_po_wf_debug = 'Y') THEN
2722: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' Start');
2723: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||' funcmode:'||funcmode);
2724: END IF;
2725:
2726: IF (funcmode IN ('FORWARD','QUESTION','ANSWER', 'TIMEOUT') )THEN
2727:
2737: END IF;
2738:
2739: l_progress := '020';
2740: IF (g_po_wf_debug = 'Y') THEN
2741: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' l_action:'||l_action);
2742: END IF;
2743:
2744: IF(l_action IS NOT NULL) THEN
2745: l_document_id := po_wf_util_pkg.GetItemAttrNumber( aname => 'DOCUMENT_ID');
2779: END IF;
2780:
2781: l_progress := '050';
2782: IF (g_po_wf_debug = 'Y') THEN
2783: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||
2784: l_progress||' l_new_recipient_id:'||l_new_recipient_id);
2785: END IF;
2786:
2787: --We should not be allowing the delegation of a notication to a user who is not an employee.
2802: END IF;
2803:
2804: l_progress := '070';
2805: IF (g_po_wf_debug = 'Y') THEN
2806: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
2807: ||' l_current_recipient_id:'||l_current_recipient_id);
2808: END IF;
2809:
2810: IF (funcmode = 'FORWARD' ) THEN
2866: END IF;
2867:
2868: l_progress := '110';
2869: IF (g_po_wf_debug = 'Y') THEN
2870: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' l_preserved_ctx:'||l_preserved_ctx);
2871: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' l_responder_id:'||l_responder_id);
2872: END IF;
2873:
2874: l_session_user_id := fnd_global.user_id;
2867:
2868: l_progress := '110';
2869: IF (g_po_wf_debug = 'Y') THEN
2870: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' l_preserved_ctx:'||l_preserved_ctx);
2871: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' l_responder_id:'||l_responder_id);
2872: END IF;
2873:
2874: l_session_user_id := fnd_global.user_id;
2875: l_session_resp_id := fnd_global.resp_id;
2888: END IF;
2889:
2890: l_progress := '120';
2891: IF (g_po_wf_debug = 'Y') THEN
2892: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' l_session_user_id:'||l_session_user_id);
2893: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' l_session_resp_id:'||l_session_resp_id);
2894: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' l_session_appl_id:'||l_session_appl_id);
2895: END IF;
2896:
2889:
2890: l_progress := '120';
2891: IF (g_po_wf_debug = 'Y') THEN
2892: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' l_session_user_id:'||l_session_user_id);
2893: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' l_session_resp_id:'||l_session_resp_id);
2894: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' l_session_appl_id:'||l_session_appl_id);
2895: END IF;
2896:
2897: l_preparer_resp_id := po_wf_util_pkg.GetItemAttrNumber( aname => 'RESPONSIBILITY_ID');
2890: l_progress := '120';
2891: IF (g_po_wf_debug = 'Y') THEN
2892: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' l_session_user_id:'||l_session_user_id);
2893: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' l_session_resp_id:'||l_session_resp_id);
2894: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' l_session_appl_id:'||l_session_appl_id);
2895: END IF;
2896:
2897: l_preparer_resp_id := po_wf_util_pkg.GetItemAttrNumber( aname => 'RESPONSIBILITY_ID');
2898: l_preparer_appl_id := po_wf_util_pkg.GetItemAttrNumber( aname => 'APPLICATION_ID');
2898: l_preparer_appl_id := po_wf_util_pkg.GetItemAttrNumber( aname => 'APPLICATION_ID');
2899:
2900: l_progress := '130';
2901: IF (g_po_wf_debug = 'Y') THEN
2902: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' l_preparer_resp_id:'||l_preparer_resp_id);
2903: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' l_preparer_appl_id:'||l_preparer_appl_id);
2904: END IF;
2905:
2906: l_progress := '140';
2899:
2900: l_progress := '130';
2901: IF (g_po_wf_debug = 'Y') THEN
2902: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' l_preparer_resp_id:'||l_preparer_resp_id);
2903: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' l_preparer_appl_id:'||l_preparer_appl_id);
2904: END IF;
2905:
2906: l_progress := '140';
2907: IF (l_responder_id IS NOT NULL) THEN
2942: resultout := wf_engine.eng_completed||':'||wf_engine.eng_null;
2943:
2944: l_progress := '150';
2945: IF (g_po_wf_debug = 'Y') THEN
2946: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' Completed');
2947: END IF;
2948:
2949: RETURN;
2950:
3019: PO_WF_UTIL_PKG.G_ITEM_KEY := itemkey;
3020:
3021: l_progress := '010';
3022: IF (g_po_wf_debug = 'Y') THEN
3023: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' Start');
3024: END IF;
3025:
3026: l_document_type := PO_WF_UTIL_PKG.GetItemAttrText (aname => 'DOCUMENT_TYPE');
3027: l_document_subtype := PO_WF_UTIL_PKG.GetItemAttrText (aname => 'DOCUMENT_SUBTYPE');
3044: WHERE language_code = l_language_code;
3045: EXCEPTION
3046: WHEN NO_DATA_FOUND THEN
3047: IF (g_po_wf_debug = 'Y') THEN
3048: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' Error when fetching language:'||sqlerrm);
3049: END IF;
3050: END;
3051:
3052: IF l_withterms IN ('Y','T') THEN
3100: NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
3101: NULL);
3102:
3103: IF (g_po_wf_debug = 'Y') THEN
3104: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' l_request_id:'||l_request_id);
3105: END IF;
3106:
3107: --If the request id is NULL or 0, then there is a submission check error.
3108: IF (l_request_id <= 0 OR l_request_id IS NULL) THEN
3114: EXCEPTION
3115: WHEN submission_error THEN
3116: l_msg := fnd_message.get;
3117: IF (g_po_wf_debug = 'Y') THEN
3118: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' Exception when submitting the request');
3119: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' fnd_message:'||l_msg);
3120: END IF;
3121: WF_CORE.context(g_pkg_name, l_api_name, l_progress, l_msg);
3122: RAISE;
3115: WHEN submission_error THEN
3116: l_msg := fnd_message.get;
3117: IF (g_po_wf_debug = 'Y') THEN
3118: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' Exception when submitting the request');
3119: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' fnd_message:'||l_msg);
3120: END IF;
3121: WF_CORE.context(g_pkg_name, l_api_name, l_progress, l_msg);
3122: RAISE;
3123: WHEN OTHERS THEN
3121: WF_CORE.context(g_pkg_name, l_api_name, l_progress, l_msg);
3122: RAISE;
3123: WHEN OTHERS THEN
3124: IF (g_po_wf_debug = 'Y') THEN
3125: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' Exception:'||sqlerrm);
3126: END IF;
3127: WF_CORE.context(g_pkg_name, l_api_name, l_progress, sqlerrm);
3128: RAISE;
3129: END generate_pdf_ame_buyer;
3237: PO_WF_UTIL_PKG.G_ITEM_KEY := itemkey;
3238:
3239: l_progress := '010';
3240: IF (g_po_wf_debug = 'Y') THEN
3241: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' Start');
3242: END IF;
3243:
3244: l_document_type := PO_WF_UTIL_PKG.GetItemAttrText (aname => 'DOCUMENT_TYPE');
3245: l_document_subtype := PO_WF_UTIL_PKG.GetItemAttrText (aname => 'DOCUMENT_SUBTYPE');
3263: AND ph.vendor_site_id = pv.vendor_site_id;
3264: EXCEPTION
3265: WHEN NO_DATA_FOUND THEN
3266: IF (g_po_wf_debug = 'Y') THEN
3267: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3268: ||' Error while fetching vendor site language:'||sqlerrm);
3269: END IF;
3270: END;
3271:
3277: WHERE language_code = l_language_code;
3278: EXCEPTION
3279: WHEN NO_DATA_FOUND THEN
3280: IF (g_po_wf_debug = 'Y') THEN
3281: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3282: ||' Error while fetching the language code:'||sqlerrm);
3283: END IF;
3284: END;
3285:
3306: -- should not show up in the notifications and Zip file should not be generated
3307: l_attachments_exist := 'N';
3308:
3309: IF (g_po_wf_debug = 'Y') THEN
3310: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' Checking for supplier file attachments');
3311: END IF;
3312:
3313: BEGIN
3314: l_attachments_exist := PO_COMMUNICATION_PVT.check_for_attachments(p_document_type => l_document_type, p_document_id => l_document_id);
3314: l_attachments_exist := PO_COMMUNICATION_PVT.check_for_attachments(p_document_type => l_document_type, p_document_id => l_document_id);
3315: EXCEPTION
3316: WHEN no_data_found THEN
3317: IF (g_po_wf_debug = 'Y') THEN
3318: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' No Supplier file attachments');
3319: END IF;
3320: l_max_attachment_size := 0; --No need to generate the pdf
3321: END;
3322:
3320: l_max_attachment_size := 0; --No need to generate the pdf
3321: END;
3322:
3323: IF (g_po_wf_debug = 'Y') THEN
3324: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' l_attachments_exist:'||l_attachments_exist);
3325: END IF;
3326:
3327: IF l_attachments_exist = 'Y' THEN
3328: l_progress := '050';
3340: So a separate query for finding duplicate file names is written. If no duplicate
3341: file names then cursors for checking the error condition are not opened.
3342: ---------------------------------------------------------------------------------*/
3343: IF (g_po_wf_debug = 'Y') THEN
3344: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' Check for duplicate filenames');
3345: END IF;
3346:
3347: l_duplicate_filenames := 'N';
3348:
3404: --until caught by outer exception handler
3405: EXCEPTION
3406: WHEN NO_DATA_FOUND THEN
3407: IF (g_po_wf_debug = 'Y') THEN
3408: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' No duplicate attachments');
3409: END IF;
3410: END;
3411:
3412: l_progress := '060';
3412: l_progress := '060';
3413:
3414: IF l_duplicate_filenames = 'Y' THEN
3415: IF (g_po_wf_debug = 'Y') THEN
3416: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' Duplicate filenames found');
3417: END IF;
3418:
3419: --Loop through the ordered records to verify if the same attachment has same different content
3420: OPEN l_get_po_attachments_csr(l_document_id);
3436:
3437: CLOSE l_get_po_attachments_csr;
3438:
3439: IF (g_po_wf_debug = 'Y') THEN
3440: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' l_error_flag:'||l_error_flag);
3441: END IF;
3442:
3443: IF l_error_flag = 1 THEN
3444: PO_COMMUNICATION_PVT.set_zip_error_code(itemtype, itemkey, 'DUPLICATE_FILENAME');
3450:
3451: EXCEPTION
3452: WHEN OTHERS THEN
3453: IF (g_po_wf_debug = 'Y') THEN
3454: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||'Exception when detecting duplicates');
3455: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' sqlerrm:'||sqlerrm);
3456: END IF;
3457: PO_COMMUNICATION_PVT.set_zip_error_code(itemtype, itemkey, 'UNEXPECTED');
3458: l_max_attachment_size := 0; --No need to generate the pdf
3451: EXCEPTION
3452: WHEN OTHERS THEN
3453: IF (g_po_wf_debug = 'Y') THEN
3454: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||'Exception when detecting duplicates');
3455: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' sqlerrm:'||sqlerrm);
3456: END IF;
3457: PO_COMMUNICATION_PVT.set_zip_error_code(itemtype, itemkey, 'UNEXPECTED');
3458: l_max_attachment_size := 0; --No need to generate the pdf
3459: END;
3524: NULL, NULL);
3525:
3526: l_progress := '100';
3527: IF (g_po_wf_debug = 'Y') THEN
3528: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' l_request_id:'||l_request_id);
3529: END IF;
3530:
3531: IF (l_request_id <= 0 OR l_request_id IS NULL) THEN
3532: RAISE SUBMISSION_ERROR;
3539: EXCEPTION
3540: WHEN SUBMISSION_ERROR THEN
3541: l_msg := fnd_message.get;
3542: IF (g_po_wf_debug = 'Y') THEN
3543: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' Exception when submitting the request');
3544: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' fnd_message:'||l_msg);
3545: END IF;
3546: WF_CORE.context(g_pkg_name, l_api_name, l_progress, l_msg);
3547: RAISE;
3540: WHEN SUBMISSION_ERROR THEN
3541: l_msg := fnd_message.get;
3542: IF (g_po_wf_debug = 'Y') THEN
3543: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' Exception when submitting the request');
3544: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' fnd_message:'||l_msg);
3545: END IF;
3546: WF_CORE.context(g_pkg_name, l_api_name, l_progress, l_msg);
3547: RAISE;
3548:
3547: RAISE;
3548:
3549: WHEN OTHERS THEN
3550: IF (g_po_wf_debug = 'Y') THEN
3551: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' Exception:'||sqlerrm);
3552: END IF;
3553: WF_CORE.context(g_pkg_name, l_api_name, l_progress, sqlerrm);
3554: RAISE;
3555:
3610: PO_WF_UTIL_PKG.G_ITEM_KEY := itemkey;
3611:
3612: l_progress := '010';
3613: IF (g_po_wf_debug = 'Y') THEN
3614: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' Start');
3615: END IF;
3616:
3617: l_forward_to_username_response := po_wf_util_pkg.GetItemAttrText( aname => 'FORWARD_TO_USERNAME_RESPONSE');
3618: po_wf_util_pkg.SetItemAttrText ( aname => 'APPROVER_USER_NAME', avalue => l_forward_to_username_response);
3617: l_forward_to_username_response := po_wf_util_pkg.GetItemAttrText( aname => 'FORWARD_TO_USERNAME_RESPONSE');
3618: po_wf_util_pkg.SetItemAttrText ( aname => 'APPROVER_USER_NAME', avalue => l_forward_to_username_response);
3619:
3620: IF (g_po_wf_debug = 'Y') THEN
3621: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3622: ||' l_forward_to_username_response:'||l_forward_to_username_response);
3623: END IF;
3624:
3625: l_current_approver := po_wf_util_pkg.GetItemAttrNumber( aname=>'APPROVER_EMPID');
3635: PO_MOAC_UTILS_PVT.set_org_context(l_org_id);
3636: END IF;
3637:
3638: IF (g_po_wf_debug = 'Y') THEN
3639: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' l_current_approver:'||l_current_approver);
3640: END IF;
3641:
3642: l_progress := '020';
3643:
3756: PO_WF_UTIL_PKG.G_ITEM_KEY := itemkey;
3757:
3758: l_progress := '010';
3759: IF (g_po_wf_debug = 'Y') THEN
3760: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' Start');
3761: END IF;
3762:
3763: SELECT parent_item_type, parent_item_key
3764: INTO l_parent_item_type, l_parent_item_key
3784: l_progress := '020';
3785:
3786: IF l_approver_response = 'APPROVED' THEN
3787: IF (g_po_wf_debug = 'Y') THEN
3788: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' l_ame_transaction_id:'||l_ame_transaction_id);
3789: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' l_transaction_type:'||l_transaction_type);
3790: END IF;
3791:
3792: IF l_approver_category = 'REVIEWER' THEN
3785:
3786: IF l_approver_response = 'APPROVED' THEN
3787: IF (g_po_wf_debug = 'Y') THEN
3788: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' l_ame_transaction_id:'||l_ame_transaction_id);
3789: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' l_transaction_type:'||l_transaction_type);
3790: END IF;
3791:
3792: IF l_approver_category = 'REVIEWER' THEN
3793: fnd_message.set_name('PO', 'PO_ALREADY_REVIEW_ACCEPTED');
3811: -- to find out the current first authority approver.
3812:
3813: FOR i IN 1.. l_approver_list.count LOOP
3814: IF (g_po_wf_debug = 'Y') THEN
3815: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3816: ||' Index:'||TO_CHAR(i));
3817: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3818: ||' orig_system:'|| l_approver_list(i).orig_system);
3819: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3813: FOR i IN 1.. l_approver_list.count LOOP
3814: IF (g_po_wf_debug = 'Y') THEN
3815: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3816: ||' Index:'||TO_CHAR(i));
3817: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3818: ||' orig_system:'|| l_approver_list(i).orig_system);
3819: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3820: ||' orig_system_id:'|| l_approver_list(i).orig_system_id);
3821: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3815: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3816: ||' Index:'||TO_CHAR(i));
3817: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3818: ||' orig_system:'|| l_approver_list(i).orig_system);
3819: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3820: ||' orig_system_id:'|| l_approver_list(i).orig_system_id);
3821: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3822: ||' authority:'|| l_approver_list(i).authority);
3823: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3817: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3818: ||' orig_system:'|| l_approver_list(i).orig_system);
3819: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3820: ||' orig_system_id:'|| l_approver_list(i).orig_system_id);
3821: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3822: ||' authority:'|| l_approver_list(i).authority);
3823: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3824: ||' approval_status:'|| l_approver_list(i).approval_status);
3825: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3819: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3820: ||' orig_system_id:'|| l_approver_list(i).orig_system_id);
3821: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3822: ||' authority:'|| l_approver_list(i).authority);
3823: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3824: ||' approval_status:'|| l_approver_list(i).approval_status);
3825: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3826: ||' api_insertion:'|| l_approver_list(i).api_insertion);
3827: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3821: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3822: ||' authority:'|| l_approver_list(i).authority);
3823: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3824: ||' approval_status:'|| l_approver_list(i).approval_status);
3825: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3826: ||' api_insertion:'|| l_approver_list(i).api_insertion);
3827: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3828: ||' group_or_chain_id:'|| l_approver_list(i).group_or_chain_id);
3829: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3823: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3824: ||' approval_status:'|| l_approver_list(i).approval_status);
3825: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3826: ||' api_insertion:'|| l_approver_list(i).api_insertion);
3827: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3828: ||' group_or_chain_id:'|| l_approver_list(i).group_or_chain_id);
3829: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3830: ||' beatByFirstResponderStatus:'||ame_util.beatByFirstResponderStatus);
3831: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3825: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3826: ||' api_insertion:'|| l_approver_list(i).api_insertion);
3827: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3828: ||' group_or_chain_id:'|| l_approver_list(i).group_or_chain_id);
3829: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3830: ||' beatByFirstResponderStatus:'||ame_util.beatByFirstResponderStatus);
3831: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3832: ||' oamGenerated:'||ame_util.oamGenerated);
3833: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3827: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3828: ||' group_or_chain_id:'|| l_approver_list(i).group_or_chain_id);
3829: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3830: ||' beatByFirstResponderStatus:'||ame_util.beatByFirstResponderStatus);
3831: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3832: ||' oamGenerated:'||ame_util.oamGenerated);
3833: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3834: ||' l_approver_group_id:'||l_approver_group_id);
3835: END IF;
3829: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3830: ||' beatByFirstResponderStatus:'||ame_util.beatByFirstResponderStatus);
3831: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3832: ||' oamGenerated:'||ame_util.oamGenerated);
3833: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3834: ||' l_approver_group_id:'||l_approver_group_id);
3835: END IF;
3836:
3837: l_progress := '040';
3892: END IF; --l_orig_system =
3893:
3894: l_progress := '050';
3895: IF (g_po_wf_debug = 'Y') THEN
3896: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' l_person_id:'||l_person_id);
3897: END IF;
3898:
3899: OPEN l_child_wf(l_parent_item_type, l_parent_item_key);
3900: LOOP
3908: l_child_approver_groupid := po_wf_util_pkg.GetItemAttrNumber( itemtype => l_child_wf_cur.item_type,
3909: itemkey => l_child_wf_cur.item_key,
3910: aname => 'APPROVAL_GROUP_ID');
3911: IF (g_po_wf_debug = 'Y') THEN
3912: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3913: ||' l_child_approver_empid:'||l_child_approver_empid);
3914: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3915: ||' l_child_approver_groupid:'||l_child_approver_groupid);
3916: END IF;
3910: aname => 'APPROVAL_GROUP_ID');
3911: IF (g_po_wf_debug = 'Y') THEN
3912: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3913: ||' l_child_approver_empid:'||l_child_approver_empid);
3914: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3915: ||' l_child_approver_groupid:'||l_child_approver_groupid);
3916: END IF;
3917:
3918: IF ( ( l_child_approver_empid = l_person_id OR
3919: ( l_child_wf_cur.recipient_role <> l_child_wf_cur.original_recipient) ) AND
3920: l_child_approver_groupid = l_approver_group_id ) THEN
3921:
3922: IF (g_po_wf_debug = 'Y') THEN
3923: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress
3924: ||' l_child_wf_cur.item_key:'||l_child_wf_cur.item_key);
3925: END IF;
3926:
3927: l_progress := '060';
3959: l_person_id := po_wf_util_pkg.GetItemAttrNumber( itemtype => l_child_wf_cur.item_type,
3960: itemkey => l_child_wf_cur.item_key,
3961: aname => 'APPROVER_EMPID');
3962: IF (g_po_wf_debug = 'Y') THEN
3963: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' child item_key:'||l_child_wf_cur.item_key);
3964: END IF;
3965:
3966: wf_engine.AbortProcess(l_child_wf_cur.item_type ,l_child_wf_cur.item_key);
3967:
4011: l_preparer_user_name := PO_REQAPPROVAL_INIT1.get_preparer_user_name(itemType, itemkey);
4012: WF_CORE.context(g_pkg_name, l_api_name, l_progress, sqlerrm);
4013: PO_REQAPPROVAL_INIT1.send_error_notif(itemType, itemkey, l_preparer_user_name, l_doc_string, sqlerrm, l_progress, l_po_header_id);
4014: IF (g_po_wf_debug = 'Y') THEN
4015: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress);
4016: END IF;
4017: RAISE;
4018: END process_beat_by_first;
4019:
4062: PO_WF_UTIL_PKG.G_ITEM_KEY := itemkey;
4063:
4064: l_progress := '010';
4065: IF (g_po_wf_debug = 'Y') THEN
4066: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' Start');
4067: END IF;
4068:
4069: SELECT parent_item_type, parent_item_key
4070: INTO l_parent_item_type, l_parent_item_key
4127: PO_WF_UTIL_PKG.G_ITEM_KEY := itemkey;
4128:
4129: l_progress := '010';
4130: IF (g_po_wf_debug = 'Y') THEN
4131: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' Start');
4132: END IF;
4133:
4134: SELECT parent_item_type, parent_item_key
4135: INTO l_parent_item_type, l_parent_item_key
4192: PO_WF_UTIL_PKG.G_ITEM_KEY := itemkey;
4193:
4194: l_progress := '010';
4195: IF (g_po_wf_debug = 'Y') THEN
4196: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' Start');
4197: END IF;
4198:
4199: l_ame_sub_approval_response := po_wf_util_pkg.GetItemAttrText( aname => 'AME_SUB_APPROVAL_RESPONSE');
4200:
4257: PO_WF_UTIL_PKG.G_ITEM_KEY := itemkey;
4258:
4259: l_progress := '010';
4260: IF (g_po_wf_debug = 'Y') THEN
4261: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' Start');
4262: END IF;
4263:
4264: l_no_of_reminder := po_wf_util_pkg.GetItemAttrNumber( aname => 'NO_REMINDER');
4265:
4298: l_preparer_user_name := PO_REQAPPROVAL_INIT1.get_preparer_user_name(itemType, itemkey);
4299: WF_CORE.context(g_pkg_name, l_api_name, l_progress, sqlerrm);
4300: PO_REQAPPROVAL_INIT1.send_error_notif(itemType, itemkey, l_preparer_user_name, l_doc_string, sqlerrm, l_progress, l_document_id);
4301: IF (g_po_wf_debug = 'Y') THEN
4302: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress);
4303: END IF;
4304: RAISE;
4305: END update_action_history_reminder;
4306:
4353: PO_WF_UTIL_PKG.G_ITEM_KEY := itemkey;
4354:
4355: l_progress := '010';
4356: IF (g_po_wf_debug = 'Y') THEN
4357: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress||' Start');
4358: END IF;
4359:
4360: l_orgid := po_wf_util_pkg.GetItemAttrNumber ( aname => 'ORG_ID');
4361:
5113: PO_WF_UTIL_PKG.G_ITEM_TYPE := itemtype;
5114: PO_WF_UTIL_PKG.G_ITEM_KEY := itemkey;
5115:
5116: IF (g_po_wf_debug = 'Y') THEN
5117: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey,l_log_head || ' 001 ');
5118: END IF;
5119:
5120: l_ame_transaction_id := po_wf_util_pkg.GetItemAttrNumber(aname => 'AME_TRANSACTION_ID');
5121: l_transaction_type := po_wf_util_pkg.GetItemAttrText( aname => 'AME_TRANSACTION_TYPE');
5136: transactionTypeIn => l_transaction_type,
5137: approverIn => g_next_approvers(l_approver_index),
5138: updateItemIn => TRUE);
5139: IF (g_po_wf_debug = 'Y') THEN
5140: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||' 002 :'||' updated ame for '||
5141: g_next_approvers(l_approver_index).name || ' with null status');
5142: END IF;
5143: END IF;
5144: l_approver_index := g_next_approvers.next(l_approver_index);
5144: l_approver_index := g_next_approvers.next(l_approver_index);
5145: END LOOP;
5146:
5147: IF (g_po_wf_debug = 'Y') THEN
5148: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey,l_log_head || ' return e_signer_flag=' || e_signer_flag);
5149: END IF;
5150:
5151: RETURN e_signer_flag;
5152: END check_set_esigners;
5642: PO_WF_UTIL_PKG.G_ITEM_TYPE := itemtype;
5643: PO_WF_UTIL_PKG.G_ITEM_KEY := itemkey;
5644:
5645: IF (g_po_wf_debug = 'Y') THEN
5646: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey,l_log_head || ' 001 ');
5647: END IF;
5648:
5649: l_document_id := po_wf_util_pkg.GetItemAttrNumber( aname => 'DOCUMENT_ID');
5650: l_acceptance_note := PO_WF_UTIL_PKG.GetItemAttrText ( aname => 'SIGNATURE_COMMENTS');
5715: l_sig_parameters(3).Param_Value := l_signer_type;
5716: l_sig_parameters(3).Param_displayname := '';
5717:
5718: IF (g_po_wf_debug = 'Y') THEN
5719: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey,l_log_head || ' 002 ');
5720: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey,l_log_head || ' l_response_code ' || l_response_code
5721: || ' l_reason_code' || l_reason_code || ' l_signer_type' || l_signer_type || ' l_event_name' || l_event_name
5722: || ' l_requester' ||l_requester || ' l_user_name' || l_user_name || ' l_notif_id ' || l_notif_id) ;
5723: END IF;
5716: l_sig_parameters(3).Param_displayname := '';
5717:
5718: IF (g_po_wf_debug = 'Y') THEN
5719: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey,l_log_head || ' 002 ');
5720: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey,l_log_head || ' l_response_code ' || l_response_code
5721: || ' l_reason_code' || l_reason_code || ' l_signer_type' || l_signer_type || ' l_event_name' || l_event_name
5722: || ' l_requester' ||l_requester || ' l_user_name' || l_user_name || ' l_notif_id ' || l_notif_id) ;
5723: END IF;
5724:
5773: p_ackn_note => l_acceptance_note,
5774: p_autonomous_commit => FND_API.G_FALSE);
5775:
5776: IF (g_po_wf_debug = 'Y') THEN
5777: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey,l_log_head || ' 003');
5778: END IF;
5779:
5780: IF l_return_status <> 'S' THEN
5781: RAISE l_erecords_exception;
5786:
5787: EXCEPTION
5788: WHEN l_erecords_exception then
5789: IF (g_po_wf_debug = 'Y') THEN
5790: PO_WF_DEBUG_PKG.INSERT_DEBUG(itemtype, itemkey, 'End erecords_exception:PO_AME_WF_PVT.CREATE_ERECORD ');
5791: PO_WF_DEBUG_PKG.INSERT_DEBUG(itemtype, itemkey, 'ERROR RETURNED '||l_msg_data || 'error is ' || SQLERRM || ' code is ' || SQLCODE);
5792: END IF;
5793: l_doc_string := PO_REQAPPROVAL_INIT1.get_error_doc(itemtype, itemkey);
5794: l_preparer_user_name := PO_REQAPPROVAL_INIT1.get_preparer_user_name(itemtype, itemkey);
5787: EXCEPTION
5788: WHEN l_erecords_exception then
5789: IF (g_po_wf_debug = 'Y') THEN
5790: PO_WF_DEBUG_PKG.INSERT_DEBUG(itemtype, itemkey, 'End erecords_exception:PO_AME_WF_PVT.CREATE_ERECORD ');
5791: PO_WF_DEBUG_PKG.INSERT_DEBUG(itemtype, itemkey, 'ERROR RETURNED '||l_msg_data || 'error is ' || SQLERRM || ' code is ' || SQLCODE);
5792: END IF;
5793: l_doc_string := PO_REQAPPROVAL_INIT1.get_error_doc(itemtype, itemkey);
5794: l_preparer_user_name := PO_REQAPPROVAL_INIT1.get_preparer_user_name(itemtype, itemkey);
5795: wf_core.context('PO_AME_WF_PVT', 'Create_Erecord', 'l_erecords_exception');
5844:
5845: --Logic is to check for workflow attribute 'E_SIGNER_EXISTS'
5846: l_esigner_exists := po_wf_util_pkg.GetItemAttrText (aname => 'E_SIGNER_EXISTS');
5847: IF (g_po_wf_debug = 'Y') THEN
5848: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, 'PO_AME_WF_PVT.check_for_esigner_exists: ' || l_esigner_exists);
5849: END IF;
5850: resultout := wf_engine.eng_completed || ':' || l_esigner_exists;
5851:
5852: END check_for_esigner_exists;
5886: -- Logic :
5887: -- + Update po_headers_all with pending_signature_flag = E which signifies there are
5888: -- post approvers/ e-sigenrs for this PO.
5889: IF (g_po_wf_debug = 'Y') THEN
5890: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head || ' 001');
5891: END IF;
5892:
5893: UPDATE po_headers_all
5894: SET pending_signature_flag='E'
5895: WHERE po_header_id = p_po_header_id
5896: AND NVL(acceptance_required_flag,'N') <>'S';
5897:
5898: IF (g_po_wf_debug = 'Y') THEN
5899: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey,l_log_head || ' no os rows updated' || SQL%ROWCOUNT);
5900: END IF;
5901:
5902: COMMIT;
5903:
5945: -- + Update po_headers_all status to APPROVED and corresponding fields.
5946: -- + Update po_line_locations_all for approved flag
5947:
5948: IF (g_po_wf_debug = 'Y') THEN
5949: PO_WF_DEBUG_PKG.insert_debug(p_item_type,p_item_key, l_log_head || ' 001');
5950: END IF;
5951:
5952: PO_WF_UTIL_PKG.G_ITEM_TYPE := p_item_type;
5953: PO_WF_UTIL_PKG.G_ITEM_KEY := p_item_key;
5955: l_user_id := fnd_global.user_id;
5956: l_login_id := fnd_global.login_id;
5957:
5958: IF (g_po_wf_debug = 'Y') THEN
5959: PO_WF_DEBUG_PKG.insert_debug(p_item_type,p_item_key, l_log_head || ' 002 Updating status for Userid-' || l_user_id
5960: || ' LoginId-' || l_login_id || ' and DocumentId' || p_document_id);
5961: END IF;
5962:
5963: UPDATE po_headers poh
5972: ,acceptance_due_date = Null
5973: WHERE poh.po_header_id = p_document_id;
5974:
5975: IF (g_po_wf_debug = 'Y') THEN
5976: PO_WF_DEBUG_PKG.insert_debug(p_item_type,p_item_key, l_log_head || ' 003 : After updating po_headers_all ');
5977: END IF;
5978:
5979: UPDATE po_line_locations_all poll
5980: SET poll.approved_flag = 'Y'
5986: AND poll.po_release_id IS NULL
5987: AND nvl (poll.approved_flag,'N') <> 'Y';
5988:
5989: IF (g_po_wf_debug = 'Y') THEN
5990: PO_WF_DEBUG_PKG.insert_debug(p_item_type,p_item_key, l_log_head || ' After updating po_line_locations_all' );
5991: END IF;
5992:
5993: COMMIT;
5994:
6045: -- + if there were any acceptances like supplier siganture, need to update
6046: -- contract termss
6047:
6048: IF (g_po_wf_debug = 'Y') THEN
6049: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head || ' 001');
6050: END IF;
6051:
6052: PO_WF_UTIL_PKG.G_ITEM_TYPE := itemtype;
6053: PO_WF_UTIL_PKG.G_ITEM_KEY := itemkey;
6058: l_revision_num := po_wf_util_pkg.GetItemAttrNumber( aname => 'REVISION_NUMBER');
6059:
6060: l_progress := '001';
6061: IF (g_po_wf_debug = 'Y') THEN
6062: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head || ' 002 Updating status DocumentId' || l_document_id);
6063: END IF;
6064:
6065: update_auth_status_approve(
6066: p_document_id => l_document_id,
6134:
6135: EXCEPTION
6136: WHEN l_binding_exception THEN
6137: IF (g_po_wf_debug = 'Y') THEN
6138: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head || ' in binding excpetion with error messsage ' || x_error_msg);
6139: END IF;
6140:
6141: WHEN OTHERS THEN
6142: l_doc_string := PO_REQAPPROVAL_INIT1.get_error_doc(itemtype, itemkey);
6143: l_preparer_user_name := PO_REQAPPROVAL_INIT1.get_preparer_user_name(itemtype, itemkey);
6144: WF_CORE.context(g_pkg_name, l_api_name, l_progress, sqlerrm);
6145: PO_REQAPPROVAL_INIT1.send_error_notif(itemtype, itemkey, l_preparer_user_name, l_doc_string, sqlerrm, l_progress, l_document_id);
6146: IF (g_po_wf_debug = 'Y') THEN
6147: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head||':'||l_progress);
6148: END IF;
6149: RAISE;
6150: END update_auth_status_esign;
6151:
6198: -- + Call PO_SIGNATURE_PVT.Complete_Block_Activities to complete block activity in PO Approval workflow
6199: -- after supplier siganture part is done.
6200:
6201: IF (g_po_wf_debug = 'Y') THEN
6202: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head || ' 001');
6203: END IF;
6204:
6205: po_wf_util_pkg.g_item_type := itemtype;
6206: po_wf_util_pkg.g_item_key := itemkey;
6218: p_status => 'Y',
6219: x_result => l_result);
6220:
6221: IF (g_po_wf_debug = 'Y') THEN
6222: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head || ' 002 result : ' || l_result);
6223: END IF;
6224:
6225: resultout := wf_engine.eng_completed;
6226: END trigger_approval_workflow;
6271: -- 1. For post-approvers/e-signers where ameStatus is still NULL, we need to supress them.
6272: -- This function is called only if supplier signature was rejected.
6273:
6274: IF (g_po_wf_debug = 'Y') THEN
6275: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head || ' 001 ');
6276: END IF;
6277: --Set the global attributes in the po wrapper function
6278: PO_WF_UTIL_PKG.G_ITEM_TYPE := itemtype;
6279: PO_WF_UTIL_PKG.G_ITEM_KEY := itemkey;
6280:
6281: l_esigner_exists := po_wf_util_pkg.GetItemAttrText(aname => 'E_SIGNER_EXISTS');
6282:
6283: IF (g_po_wf_debug = 'Y') THEN
6284: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head || ' l_esigners_exists ' || l_esigner_exists);
6285: END IF;
6286:
6287: IF l_esigner_exists = 'Y' THEN
6288: BEGIN
6294: NULL;
6295: END;
6296:
6297: IF (g_po_wf_debug = 'Y') THEN
6298: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head || ' l_esigners_exists ' || l_esigner_exists);
6299: END IF;
6300:
6301: END IF;
6302:
6352: -- We set-reset dynamic profile 'PO_SYS_GENERATED_APPROVERS_SUPPRESS', to override AME mandatory
6353: -- attribute ALLOW_DELETING_RULE_GENERATED_APPROVERS.
6354:
6355: IF (g_po_wf_debug = 'Y') THEN
6356: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head || ' 001 ');
6357: END IF;
6358: --Set the global attributes in the po wrapper function
6359: PO_WF_UTIL_PKG.G_ITEM_TYPE := itemtype;
6360: PO_WF_UTIL_PKG.G_ITEM_KEY := itemkey;
6372: l_approver_index := l_approver_list.first();
6373:
6374: WHILE ( l_approver_index IS NOT NULL ) LOOP
6375: IF (g_po_wf_debug = 'Y') THEN
6376: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head || ' supressing approver name ' || l_approver_list(l_approver_index).name);
6377: END IF;
6378:
6379: IF l_approver_list(l_approver_index).approval_status IS NULL OR
6380: l_approver_list(l_approver_index).approval_status IN (ame_util.notifiedStatus, ame_util.notifiedByRepeatedStatus) THEN
6432: l_return_message VARCHAR2(1000);
6433:
6434: BEGIN
6435: IF (g_po_wf_debug = 'Y') THEN
6436: PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey, l_log_head || ' 001 ');
6437: END IF;
6438: --Set the global attributes in the po wrapper function
6439: PO_WF_UTIL_PKG.G_ITEM_TYPE := itemtype;
6440: PO_WF_UTIL_PKG.G_ITEM_KEY := itemkey;