[Home] [Help]
48: ||l_msg_data||Fnd_Global.local_chr(10) ;
49: l_cnt := l_cnt + 1 ;
50: END LOOP ;
51: x_error_msg := l_final_data;
52: Wf_Engine.SetItemAttrText
53: (itemtype => p_itemtype,
54: itemkey => p_itemkey ,
55: aname => p_attr_name,
56: avalue => l_final_data );
308: p_msg_data => 'Update_Note: Exiting sucessfully'); */
309:
310: EXCEPTION
311: WHEN OTHERS THEN
312: -- wf_engine.threshold := l_save_threshold ;
313: Wf_Core.context ('ams_approval_pvt', 'Update_Note',p_activity_type
314: ,p_activity_id , 'Unexpected Error in Update_Note' );
315: RAISE;
316:
404: p_msg_data => 'Update_Note: Exiting sucessfully'); */
405:
406: EXCEPTION
407: WHEN OTHERS THEN
408: -- wf_engine.threshold := l_save_threshold ;
409: Wf_Core.context ('ams_approval_pvt', 'Update_Note',p_activity_type
410: ,p_activity_id , 'Unexpected Error in Update_Note' );
411: RAISE;
412:
449: END IF;
450: CLOSE c_resource ;
451: EXCEPTION
452: WHEN OTHERS THEN
453: -- wf_engine.threshold := l_save_threshold ;
454: Wf_Core.context ('Ams_Approval_Pvt', 'Get_User_Name',p_user_id,
455: 'Unexpected Error IN Get_User_Name');
456: RAISE;
457:
509: l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
510:
511: BEGIN
512:
513: l_forward_nid := Wf_Engine.GetItemAttrNumber(
514: itemtype => itemtype,
515: itemkey => itemkey,
516: aname => 'AMS_FORWARD_NID');
517:
526:
527: IF l_return_status = Fnd_Api.G_RET_STS_SUCCESS THEN
528:
529: -- Set the WF Attributes
530: wf_engine.SetItemAttrText( itemtype => itemtype,
531: itemkey => itemkey,
532: aname => 'AMS_APPR_USERNAME',
533: avalue => l_responder);
534:
532: aname => 'AMS_APPR_USERNAME',
533: avalue => l_responder);
534:
535:
536: wf_engine.SetItemAttrNumber(itemtype => itemtype,
537: itemkey => itemkey,
538: aname => 'AMS_APPROVER_ID',
539: avalue => l_approver_id);
540:
538: aname => 'AMS_APPROVER_ID',
539: avalue => l_approver_id);
540:
541:
542: wf_engine.SetItemAttrText( itemtype => itemtype,
543: itemkey => itemkey,
544: aname => 'AMS_APPR_DISPLAY_NAME',
545: avalue => l_appr_display_name);
546:
548: END IF;
549: -- Reset the forward_nid wf attribute to null
550: -- This is a must
551:
552: wf_engine.SetItemAttrNumber(itemtype => itemtype,
553: itemkey => itemkey,
554: aname => 'AMS_FORWARD_NID',
555: avalue => null);
556:
630: END IF;
631: END IF;
632: EXCEPTION
633: WHEN OTHERS THEN
634: -- wf_engine.threshold := l_save_threshold ;
635: Wf_Core.context ('Ams_Approval_Pvt', 'Get_User_Role',p_user_id
636: ,'Unexpected Error IN Get_User_Role' );
637: RAISE;
638: END Get_User_Role;
891: END IF;
892: END IF;
893: EXCEPTION
894: WHEN OTHERS THEN
895: -- wf_engine.threshold := l_save_threshold ;
896: Wf_Core.context ('ams_approval_pvt', 'Get_Activity_Details',p_activity_type
897: ,p_activity_id ,'Unexpected Error In Get_Activity_Details');
898: RAISE;
899:
1189: END IF;
1190: CLOSE c_approver_info;
1191: EXCEPTION
1192: WHEN OTHERS THEN
1193: -- wf_engine.threshold := l_save_threshold ;
1194:
1195: Wf_Core.context ('Ams_Approval_Pvt', 'Get_Approver_Info',p_approval_detail_id
1196: ,p_current_seq ,'Unexpected Error IN Get_Approver_Info');
1197: RAISE;
1649: l_msg_data VARCHAR2(4000);
1650: l_error_msg VARCHAR2(4000);
1651: x_resource_id NUMBER;
1652:
1653: l_save_threshold NUMBER := Wf_Engine.threshold;
1654:
1655: l_appr_hist_rec AMS_Appr_Hist_PVT.appr_hist_rec_type;
1656:
1657: -- [BEGIN OF BUG2741039 FIXING by vmodur 09-Jan-2003]
1691:
1692: Ams_Utility_Pvt.debug_message('START :Item TYPE : '||itemtype
1693: ||' Item KEY : '||itemkey);
1694:
1695: -- wf_engine.threshold := -1;
1696: Wf_Engine.CreateProcess (itemtype => itemtype,
1697: itemkey => itemkey ,
1698: process => p_workflowprocess);
1699:
1692: Ams_Utility_Pvt.debug_message('START :Item TYPE : '||itemtype
1693: ||' Item KEY : '||itemkey);
1694:
1695: -- wf_engine.threshold := -1;
1696: Wf_Engine.CreateProcess (itemtype => itemtype,
1697: itemkey => itemkey ,
1698: process => p_workflowprocess);
1699:
1700: Wf_Engine.SetItemUserkey(itemtype => itemtype,
1696: Wf_Engine.CreateProcess (itemtype => itemtype,
1697: itemkey => itemkey ,
1698: process => p_workflowprocess);
1699:
1700: Wf_Engine.SetItemUserkey(itemtype => itemtype,
1701: itemkey => itemkey ,
1702: userkey => itemuserkey);
1703:
1704: -- 09-Jan-2003 VMODUR Fix for BUG 2741039 - add pl/sql global context into
1710: l_resp_id := FND_GLOBAL.resp_id;
1711: l_appl_id := FND_GLOBAL.resp_appl_id;
1712: l_security_group_id := FND_GLOBAL.security_group_id;
1713:
1714: WF_ENGINE.SetItemAttrNumber(itemtype => itemtype ,
1715: itemkey => itemkey,
1716: aname => 'USER_ID',
1717: avalue => l_user_id
1718: );
1716: aname => 'USER_ID',
1717: avalue => l_user_id
1718: );
1719:
1720: WF_ENGINE.SetItemAttrNumber(itemtype => itemtype ,
1721: itemkey => itemkey,
1722: aname => 'RESPONSIBILITY_ID',
1723: avalue => l_resp_id
1724: );
1722: aname => 'RESPONSIBILITY_ID',
1723: avalue => l_resp_id
1724: );
1725:
1726: WF_ENGINE.SetItemAttrNumber(itemtype => itemtype ,
1727: itemkey => itemkey,
1728: aname => 'APPLICATION_ID',
1729: avalue => l_appl_id
1730: );
1728: aname => 'APPLICATION_ID',
1729: avalue => l_appl_id
1730: );
1731:
1732: WF_ENGINE.SetItemAttrNumber(itemtype => itemtype ,
1733: itemkey => itemkey,
1734: aname => 'SECURITY_GROUP_ID',
1735: avalue => l_security_group_id
1736: );
1740: Initialize Workflow Item Attributes
1741: *****************************************************************/
1742:
1743: -- Activity Type (Some of valid values are 'CAMP','DELV','EVEH','EVEO'..);
1744: Wf_Engine.SetItemAttrText(itemtype => itemtype ,
1745: itemkey => itemkey,
1746: aname => 'AMS_ACTIVITY_TYPE',
1747: avalue => p_activity_type );
1748:
1746: aname => 'AMS_ACTIVITY_TYPE',
1747: avalue => p_activity_type );
1748:
1749: -- Activity ID (primary Id of Activity Object)
1750: Wf_Engine.SetItemAttrNumber(itemtype => itemtype ,
1751: itemkey => itemkey,
1752: aname => 'AMS_ACTIVITY_ID',
1753: avalue => p_activity_id );
1754:
1754:
1755:
1756: -- Original Status Id (If error occurs we have to revert back to this
1757: -- status )
1758: Wf_Engine.SetItemAttrNumber(itemtype => itemtype,
1759: itemkey => itemkey,
1760: aname => 'AMS_ORIG_STAT_ID',
1761: avalue => p_orig_stat_id );
1762:
1761: avalue => p_orig_stat_id );
1762:
1763: -- New Status Id (If activity is approved status of activity is updated
1764: -- by this status )
1765: Wf_Engine.SetItemAttrNumber(itemtype => itemtype,
1766: itemkey => itemkey,
1767: aname => 'AMS_NEW_STAT_ID',
1768: avalue => p_new_stat_id );
1769:
1768: avalue => p_new_stat_id );
1769:
1770: -- Reject Status Id (If activity is approved status of activity is rejected
1771: -- by this status )
1772: Wf_Engine.SetItemAttrNumber(itemtype => itemtype,
1773: itemkey => itemkey,
1774: aname => 'AMS_REJECT_STAT_ID',
1775: avalue => p_reject_stat_id );
1776:
1775: avalue => p_reject_stat_id );
1776:
1777:
1778: -- Object Version Number
1779: Wf_Engine.SetItemAttrNumber(itemtype => itemtype,
1780: itemkey => itemkey,
1781: aname => 'AMS_OBJECT_VERSION_NUMBER',
1782: avalue => p_object_version_number );
1783:
1781: aname => 'AMS_OBJECT_VERSION_NUMBER',
1782: avalue => p_object_version_number );
1783:
1784: -- Notes from the requester
1785: Wf_Engine.SetItemAttrText(itemtype => itemtype,
1786: itemkey => itemkey,
1787: aname => 'AMS_NOTES_FROM_REQUESTER',
1788: avalue => NVL(p_notes_from_requester,'') );
1789:
1791: OPEN c_resource ;
1792: FETCH c_resource INTO l_requester_id ,l_person_id ;
1793: CLOSE c_resource ; */
1794:
1795: Wf_Engine.SetItemAttrNumber(itemtype => itemtype,
1796: itemkey => itemkey,
1797: aname => 'AMS_REQUESTER_ID',
1798: avalue => p_requester_userid );
1799:
1811: RAISE Fnd_Api.G_EXC_ERROR;
1812: END IF;
1813:
1814: -- set description of activity
1815: Wf_Engine.SetItemAttrText(itemtype => itemtype ,
1816: itemkey => itemkey,
1817: aname => 'AMS_APPROVAL_OBJECT_MEANING',
1818: avalue => l_appr_meaning );
1819:
1816: itemkey => itemkey,
1817: aname => 'AMS_APPROVAL_OBJECT_MEANING',
1818: avalue => l_appr_meaning );
1819:
1820: Wf_Engine.SetItemAttrText(itemtype => itemtype ,
1821: itemkey => itemkey,
1822: aname => 'AMS_APPROVAL_TYPE',
1823: avalue => p_approval_type );
1824:
1832: RAISE Fnd_Api.G_EXC_ERROR;
1833: END IF;
1834:
1835:
1836: Wf_Engine.SetItemAttrText(itemtype => itemtype,
1837: itemkey => itemkey,
1838: aname => 'AMS_REQUESTER',
1839: avalue => l_requester_role );
1840:
1839: avalue => l_requester_role );
1840:
1841:
1842:
1843: Wf_Engine.SetItemOwner(itemtype => itemtype,
1844: itemkey => itemkey,
1845: owner => l_requester_role);
1846:
1847:
1845: owner => l_requester_role);
1846:
1847:
1848: -- Start the Process
1849: Wf_Engine.StartProcess (itemtype => itemtype,
1850: itemkey => itemkey);
1851:
1852:
1853: /* 11.5.9 Approval Details Enhancement */
1879: IF l_return_status <> Fnd_Api.G_RET_STS_SUCCESS THEN
1880: RAISE Fnd_Api.G_EXC_ERROR;
1881: END IF;
1882:
1883: -- wf_engine.threshold := l_save_threshold ;
1884:
1885: EXCEPTION
1886: WHEN Fnd_Api.G_EXC_ERROR THEN
1887: -- wf_engine.threshold := l_save_threshold ;
1883: -- wf_engine.threshold := l_save_threshold ;
1884:
1885: EXCEPTION
1886: WHEN Fnd_Api.G_EXC_ERROR THEN
1887: -- wf_engine.threshold := l_save_threshold ;
1888: Fnd_Msg_Pub.Count_And_Get (
1889: p_encoded => Fnd_Api.G_FALSE,
1890: p_count => l_msg_count,
1891: p_data => l_msg_data);
1899: Wf_Core.context ('Ams_Approval_Pvt', 'StartProcess',p_activity_type
1900: ,p_activity_id ,l_error_msg);
1901: RAISE;
1902: WHEN OTHERS THEN
1903: -- wf_engine.threshold := l_save_threshold ;
1904: Fnd_Msg_Pub.Count_And_Get (
1905: p_encoded => Fnd_Api.G_FALSE,
1906: p_count => l_msg_count,
1907: p_data => l_msg_data);
1960: BEGIN
1961: Fnd_Msg_Pub.initialize();
1962: IF (funcmode = 'RUN') THEN
1963: -- get the acitvity id
1964: l_activity_id := Wf_Engine.GetItemAttrNumber(
1965: itemtype => itemtype,
1966: itemkey => itemkey,
1967: aname => 'AMS_ACTIVITY_ID' );
1968:
1966: itemkey => itemkey,
1967: aname => 'AMS_ACTIVITY_ID' );
1968:
1969: -- get the activity type
1970: l_activity_type := Wf_Engine.GetItemAttrText(
1971: itemtype => itemtype,
1972: itemkey => itemkey,
1973: aname => 'AMS_ACTIVITY_TYPE' );
1974:
1971: itemtype => itemtype,
1972: itemkey => itemkey,
1973: aname => 'AMS_ACTIVITY_TYPE' );
1974:
1975: l_approval_type := Wf_Engine.GetItemAttrText(
1976: itemtype => itemtype,
1977: itemkey => itemkey,
1978: aname => 'AMS_APPROVAL_TYPE' );
1979:
2011: */
2012: l_dtail_url := 'JSP:/OA_HTML/OA.jsp?OAFunc='||l_func_name||'&'||'objId='||l_activity_id;
2013: l_dtail_url := l_dtail_url||'&'||'addBreadCrumb=Y';
2014:
2015: wf_engine.SetItemAttrText( itemtype => itemtype,
2016: itemkey => itemkey,
2017: aname => 'AMS_ACTIVITY_URL',
2018: avalue => l_dtail_url );
2019:
2018: avalue => l_dtail_url );
2019:
2020: END IF;
2021:
2022: Wf_Engine.SetItemAttrText(itemtype => itemtype,
2023: itemkey => itemkey,
2024: aname => 'AMS_ACT_NAME',
2025: avalue => l_dtail_url);
2026:
2023: itemkey => itemkey,
2024: aname => 'AMS_ACT_NAME',
2025: avalue => l_dtail_url);
2026:
2027: Wf_Engine.SetItemAttrText(itemtype => itemtype,
2028: itemkey => itemkey,
2029: aname => 'AMS_ACT_NAME',
2030: avalue => l_object_details.name);
2031:
2028: itemkey => itemkey,
2029: aname => 'AMS_ACT_NAME',
2030: avalue => l_object_details.name);
2031:
2032: Wf_Engine.SetItemAttrNumber(itemtype => itemtype,
2033: itemkey => itemkey,
2034: aname => 'AMS_ACTIVITY_DETAIL_ID',
2035: avalue => l_approval_detail_id);
2036: Wf_Engine.SetItemAttrDate(itemtype => itemtype,
2032: Wf_Engine.SetItemAttrNumber(itemtype => itemtype,
2033: itemkey => itemkey,
2034: aname => 'AMS_ACTIVITY_DETAIL_ID',
2035: avalue => l_approval_detail_id);
2036: Wf_Engine.SetItemAttrDate(itemtype => itemtype,
2037: itemkey => itemkey,
2038: aname => 'AMS_START_DATE',
2039: avalue => l_object_details.start_date);
2040: Wf_Engine.SetItemAttrDate(itemtype => itemtype,
2036: Wf_Engine.SetItemAttrDate(itemtype => itemtype,
2037: itemkey => itemkey,
2038: aname => 'AMS_START_DATE',
2039: avalue => l_object_details.start_date);
2040: Wf_Engine.SetItemAttrDate(itemtype => itemtype,
2041: itemkey => itemkey,
2042: aname => 'AMS_END_DATE',
2043: avalue => l_object_details.end_date);
2044: Wf_Engine.SetItemAttrText(itemtype => itemtype,
2040: Wf_Engine.SetItemAttrDate(itemtype => itemtype,
2041: itemkey => itemkey,
2042: aname => 'AMS_END_DATE',
2043: avalue => l_object_details.end_date);
2044: Wf_Engine.SetItemAttrText(itemtype => itemtype,
2045: itemkey => itemkey,
2046: aname => 'AMS_ACTIVITY_DESCRIPTION',
2047: avalue => l_object_details.description);
2048: -- Changed Priority code to meaning
2045: itemkey => itemkey,
2046: aname => 'AMS_ACTIVITY_DESCRIPTION',
2047: avalue => l_object_details.description);
2048: -- Changed Priority code to meaning
2049: Wf_Engine.SetItemAttrText(itemtype => itemtype,
2050: itemkey => itemkey,
2051: aname => 'AMS_PRIORITY',
2052: avalue => l_object_details.priority_desc);
2053: Wf_Engine.SetItemAttrText(itemtype => itemtype,
2049: Wf_Engine.SetItemAttrText(itemtype => itemtype,
2050: itemkey => itemkey,
2051: aname => 'AMS_PRIORITY',
2052: avalue => l_object_details.priority_desc);
2053: Wf_Engine.SetItemAttrText(itemtype => itemtype,
2054: itemkey => itemkey,
2055: aname => 'AMS_ACTIVITY_CURRENCY',
2056: avalue => l_object_details.currency);
2057: --
2054: itemkey => itemkey,
2055: aname => 'AMS_ACTIVITY_CURRENCY',
2056: avalue => l_object_details.currency);
2057: --
2058: Wf_Engine.SetItemAttrNumber(itemtype => itemtype,
2059: itemkey => itemkey,
2060: aname => 'AMS_APPROVER_SEQ',
2061: avalue => l_approver_seq);
2062: Wf_Engine.SetItemAttrNumber(itemtype => itemtype,
2058: Wf_Engine.SetItemAttrNumber(itemtype => itemtype,
2059: itemkey => itemkey,
2060: aname => 'AMS_APPROVER_SEQ',
2061: avalue => l_approver_seq);
2062: Wf_Engine.SetItemAttrNumber(itemtype => itemtype,
2063: itemkey => itemkey,
2064: aname => 'AMS_ACTIVITY_AMOUNT',
2065: avalue =>
2066: l_object_details.total_header_amount);
2065: avalue =>
2066: l_object_details.total_header_amount);
2067: --insert into ams.test_murali (text) values ('source_code ' || l_object_details.source_code);
2068: -- Fix for Bug 2031309. AMS_CURRENCY was being set to source_code
2069: Wf_Engine.SetItemAttrText(itemtype => itemtype,
2070: itemkey => itemkey,
2071: aname => 'AMS_CURRENCY',
2072: avalue => l_object_details.currency);
2073:
2070: itemkey => itemkey,
2071: aname => 'AMS_CURRENCY',
2072: avalue => l_object_details.currency);
2073:
2074: Wf_Engine.SetItemAttrText(itemtype => itemtype,
2075: itemkey => itemkey,
2076: aname => 'AMS_SOURCE_CODE',
2077: avalue => l_object_details.source_code);
2078:
2075: itemkey => itemkey,
2076: aname => 'AMS_SOURCE_CODE',
2077: avalue => l_object_details.source_code);
2078:
2079: Wf_Engine.SetItemAttrText(itemtype => itemtype,
2080: itemkey => itemkey,
2081: aname => 'AMS_PARENT_SOURCE_CODE',
2082: avalue => l_object_details.parent_source_code);
2083:
2080: itemkey => itemkey,
2081: aname => 'AMS_PARENT_SOURCE_CODE',
2082: avalue => l_object_details.parent_source_code);
2083:
2084: Wf_Engine.SetItemAttrText(itemtype => itemtype,
2085: itemkey => itemkey,
2086: aname => 'AMS_PARENT_OBJECT',
2087: avalue => l_object_details.parent_name);
2088:
2110: resultout := 'COMPLETE:ERROR';
2111: RETURN;
2112: END IF;
2113:
2114: Wf_Engine.SetItemAttrText(itemtype => itemtype,
2115: itemkey => itemkey,
2116: aname => 'AMS_ACTIVITY_OWNER',
2117: avalue => l_full_name );
2118:
2229: -- RUN mode
2230: --
2231: IF (funcmode = 'RUN') THEN
2232: -- get the acitvity id
2233: l_activity_id := Wf_Engine.GetItemAttrNumber(
2234: itemtype => itemtype,
2235: itemkey => itemkey,
2236: aname => 'AMS_ACTIVITY_ID' );
2237:
2235: itemkey => itemkey,
2236: aname => 'AMS_ACTIVITY_ID' );
2237:
2238: -- get the activity type
2239: l_activity_type := Wf_Engine.GetItemAttrText(
2240: itemtype => itemtype,
2241: itemkey => itemkey,
2242: aname => 'AMS_ACTIVITY_TYPE' );
2243:
2368: l_approved_flag VARCHAR2(1);
2369: l_msg_count NUMBER;
2370: l_msg_data VARCHAR2(4000);
2371: l_error_msg VARCHAR2(4000);
2372: l_save_threshold NUMBER := Wf_Engine.threshold;
2373: BEGIN
2374: Fnd_Msg_Pub.initialize();
2375: IF (funcmode = 'RUN') THEN
2376: Wf_Engine.threshold := -1;
2372: l_save_threshold NUMBER := Wf_Engine.threshold;
2373: BEGIN
2374: Fnd_Msg_Pub.initialize();
2375: IF (funcmode = 'RUN') THEN
2376: Wf_Engine.threshold := -1;
2377: -- get the acitvity id
2378: l_activity_id := Wf_Engine.GetItemAttrNumber(
2379: itemtype => itemtype,
2380: itemkey => itemkey,
2374: Fnd_Msg_Pub.initialize();
2375: IF (funcmode = 'RUN') THEN
2376: Wf_Engine.threshold := -1;
2377: -- get the acitvity id
2378: l_activity_id := Wf_Engine.GetItemAttrNumber(
2379: itemtype => itemtype,
2380: itemkey => itemkey,
2381: aname => 'AMS_ACTIVITY_ID' );
2382:
2380: itemkey => itemkey,
2381: aname => 'AMS_ACTIVITY_ID' );
2382:
2383: -- get the activity type
2384: l_activity_type := Wf_Engine.GetItemAttrText(
2385: itemtype => itemtype,
2386: itemkey => itemkey,
2387: aname => 'AMS_ACTIVITY_TYPE' );
2388:
2385: itemtype => itemtype,
2386: itemkey => itemkey,
2387: aname => 'AMS_ACTIVITY_TYPE' );
2388:
2389: l_activity_amount := Wf_Engine.GetItemAttrNumber(
2390: itemtype => itemtype,
2391: itemkey => itemkey,
2392: aname => 'AMS_ACTIVITY_AMOUNT' );
2393:
2413: x_error_msg => l_error_msg
2414: ) ;
2415: resultout := 'COMPLETE:FAILURE';
2416: END IF;
2417: Wf_Engine.threshold := l_save_threshold ;
2418:
2419: END IF;
2420:
2421: --
2546: AND TRUNC(NVL(end_date_active,SYSDATE + 1));
2547: BEGIN
2548: Fnd_Msg_Pub.initialize();
2549: IF (funcmode = 'RUN') THEN
2550: l_approval_detail_id := Wf_Engine.GetItemAttrNumber(
2551: itemtype => itemtype,
2552: itemkey => itemkey,
2553: aname => 'AMS_ACTIVITY_DETAIL_ID' );
2554:
2551: itemtype => itemtype,
2552: itemkey => itemkey,
2553: aname => 'AMS_ACTIVITY_DETAIL_ID' );
2554:
2555: l_current_seq := Wf_Engine.GetItemAttrText(
2556: itemtype => itemtype,
2557: itemkey => itemkey,
2558: aname => 'AMS_APPROVER_SEQ' );
2559: -- 11.5.9
2557: itemkey => itemkey,
2558: aname => 'AMS_APPROVER_SEQ' );
2559: -- 11.5.9
2560:
2561: l_activity_id := Wf_Engine.GetItemAttrNumber(
2562: itemtype => itemtype,
2563: itemkey => itemkey,
2564: aname => 'AMS_ACTIVITY_ID' );
2565:
2562: itemtype => itemtype,
2563: itemkey => itemkey,
2564: aname => 'AMS_ACTIVITY_ID' );
2565:
2566: l_activity_type := Wf_Engine.GetItemAttrText(
2567: itemtype => itemtype,
2568: itemkey => itemkey,
2569: aname => 'AMS_ACTIVITY_TYPE' );
2570:
2567: itemtype => itemtype,
2568: itemkey => itemkey,
2569: aname => 'AMS_ACTIVITY_TYPE' );
2570:
2571: l_version := Wf_Engine.GetItemAttrNumber(
2572: itemtype => itemtype,
2573: itemkey => itemkey,
2574: aname => 'AMS_OBJECT_VERSION_NUMBER' );
2575:
2572: itemtype => itemtype,
2573: itemkey => itemkey,
2574: aname => 'AMS_OBJECT_VERSION_NUMBER' );
2575:
2576: l_approval_type := Wf_Engine.GetItemAttrText(
2577: itemtype => itemtype,
2578: itemkey => itemkey,
2579: aname => 'AMS_APPROVAL_TYPE' );
2580:
2688: IF l_return_status <> Fnd_Api.G_RET_STS_SUCCESS THEN
2689: RAISE Fnd_Api.G_EXC_ERROR;
2690: END IF;
2691:
2692: l_prev_approver := Wf_Engine.GetItemAttrText(
2693: itemtype => itemtype,
2694: itemkey => itemkey,
2695: aname => 'AMS_APPR_USERNAME' );
2696:
2694: itemkey => itemkey,
2695: aname => 'AMS_APPR_USERNAME' );
2696:
2697: /*
2698: wf_engine.SetItemAttrText( itemtype => itemtype,
2699: itemkey => itemkey,
2700: aname => 'AMS_PREV_APPR_USERNAME',
2701: avalue => l_prev_approver); */
2702:
2699: itemkey => itemkey,
2700: aname => 'AMS_PREV_APPR_USERNAME',
2701: avalue => l_prev_approver); */
2702:
2703: Wf_Engine.SetItemAttrText( itemtype => itemtype,
2704: itemkey => itemkey,
2705: aname => 'AMS_APPR_USERNAME',
2706: avalue => l_approver);
2707:
2704: itemkey => itemkey,
2705: aname => 'AMS_APPR_USERNAME',
2706: avalue => l_approver);
2707:
2708: Wf_Engine.SetItemAttrText( itemtype => itemtype,
2709: itemkey => itemkey,
2710: aname => 'AMS_APPR_DISPLAY_NAME',
2711: avalue => l_approver_display_name);
2712:
2709: itemkey => itemkey,
2710: aname => 'AMS_APPR_DISPLAY_NAME',
2711: avalue => l_approver_display_name);
2712:
2713: l_prev_role_name := Wf_Engine.GetItemAttrText(
2714: itemtype => itemtype,
2715: itemkey => itemkey,
2716: aname => 'AMS_APPROVAL_ROLE' );
2717:
2714: itemtype => itemtype,
2715: itemkey => itemkey,
2716: aname => 'AMS_APPROVAL_ROLE' );
2717:
2718: Wf_Engine.SetItemAttrText( itemtype => itemtype,
2719: itemkey => itemkey,
2720: aname => 'AMS_APPROVAL_ROLE',
2721: avalue => l_role_name);
2722:
2720: aname => 'AMS_APPROVAL_ROLE',
2721: avalue => l_role_name);
2722:
2723: /*
2724: wf_engine.SetItemAttrText( itemtype => itemtype,
2725: itemkey => itemkey,
2726: aname => 'AMS_PREV_APPROVER_ROLE',
2727: avalue => l_prev_role_name);
2728: */
2726: aname => 'AMS_PREV_APPROVER_ROLE',
2727: avalue => l_prev_role_name);
2728: */
2729:
2730: Wf_Engine.SetItemAttrNumber(itemtype => itemtype,
2731: itemkey => itemkey,
2732: aname => 'AMS_APPROVER_ID',
2733: avalue => l_object_approver_id);
2734:
2732: aname => 'AMS_APPROVER_ID',
2733: avalue => l_object_approver_id);
2734:
2735:
2736: Wf_Engine.SetItemAttrText( itemtype => itemtype,
2737: itemkey => itemkey,
2738: aname => 'AMS_NOTIFICATION_TYPE',
2739: avalue => l_notification_type);
2740:
2737: itemkey => itemkey,
2738: aname => 'AMS_NOTIFICATION_TYPE',
2739: avalue => l_notification_type);
2740:
2741: Wf_Engine.SetItemAttrNumber(itemtype => itemtype,
2742: itemkey => itemkey,
2743: aname => 'AMS_NOTIFICATION_TIMEOUT',
2744: avalue => l_notification_timeout);
2745:
2863: l_new_approver_id NUMBER;
2864: BEGIN
2865: Fnd_Msg_Pub.initialize();
2866: IF (funcmode = 'RUN') THEN
2867: l_approval_detail_id := Wf_Engine.GetItemAttrNumber(
2868: itemtype => itemtype,
2869: itemkey => itemkey,
2870: aname => 'AMS_ACTIVITY_DETAIL_ID' );
2871:
2868: itemtype => itemtype,
2869: itemkey => itemkey,
2870: aname => 'AMS_ACTIVITY_DETAIL_ID' );
2871:
2872: l_current_seq := Wf_Engine.GetItemAttrText(
2873: itemtype => itemtype,
2874: itemkey => itemkey,
2875: aname => 'AMS_APPROVER_SEQ' );
2876: -- get the activity note
2873: itemtype => itemtype,
2874: itemkey => itemkey,
2875: aname => 'AMS_APPROVER_SEQ' );
2876: -- get the activity note
2877: l_note := Wf_Engine.GetItemAttrText(
2878: itemtype => itemtype,
2879: itemkey => itemkey,
2880: aname => 'AMS_NOTE' );
2881:
2878: itemtype => itemtype,
2879: itemkey => itemkey,
2880: aname => 'AMS_NOTE' );
2881:
2882: l_approver_id := Wf_Engine.GetItemAttrNumber(
2883: itemtype => itemtype,
2884: itemkey => itemkey,
2885: aname => 'AMS_APPROVER_ID' );
2886:
2883: itemtype => itemtype,
2884: itemkey => itemkey,
2885: aname => 'AMS_APPROVER_ID' );
2886:
2887: l_activity_id := Wf_Engine.GetItemAttrNumber(
2888: itemtype => itemtype,
2889: itemkey => itemkey,
2890: aname => 'AMS_ACTIVITY_ID' );
2891:
2888: itemtype => itemtype,
2889: itemkey => itemkey,
2890: aname => 'AMS_ACTIVITY_ID' );
2891:
2892: l_activity_type := Wf_Engine.GetItemAttrText(
2893: itemtype => itemtype,
2894: itemkey => itemkey,
2895: aname => 'AMS_ACTIVITY_TYPE' );
2896:
2908: IF l_return_status <> Fnd_Api.G_RET_STS_SUCCESS THEN
2909: RAISE Fnd_Api.G_EXC_ERROR;
2910: END IF;
2911: -- Added for 11.5.9
2912: l_version := Wf_Engine.GetItemAttrNumber(
2913: itemtype => itemtype,
2914: itemkey => itemkey,
2915: aname => 'AMS_OBJECT_VERSION_NUMBER' );
2916:
2913: itemtype => itemtype,
2914: itemkey => itemkey,
2915: aname => 'AMS_OBJECT_VERSION_NUMBER' );
2916:
2917: l_approval_type := Wf_Engine.GetItemAttrText(
2918: itemtype => itemtype,
2919: itemkey => itemkey,
2920: aname => 'AMS_APPROVAL_TYPE' );
2921: -- Commented for Bug 3150550
2973:
2974: END IF;
2975:
2976: -- get all the activity notes
2977: l_all_note := Wf_Engine.GetItemAttrText(
2978: itemtype => itemtype,
2979: itemkey => itemkey,
2980: aname => 'AMS_ALL_NOTE' );
2981:
2983: -- issue : cannot distinguish from notes created by activities or budget lines
2984: -- option : can insert a carriage return when concatenating notes
2985: l_all_note := l_all_note ||l_note;
2986:
2987: Wf_Engine.SetItemAttrText(
2988: itemtype => itemtype,
2989: itemkey => itemkey,
2990: aname => 'AMS_ALL_NOTE' ,
2991: avalue => l_all_note ) ;
2991: avalue => l_all_note ) ;
2992:
2993: -- set the note to null
2994: l_note := NULL;
2995: Wf_Engine.SetItemAttrText(
2996: itemtype => itemtype,
2997: itemkey => itemkey,
2998: aname => 'AMS_NOTE' ,
2999: avalue => l_note ) ;
3004: x_next_seq => l_next_seq,
3005: x_required_flag => l_required_flag);
3006:
3007: IF l_next_seq IS NOT NULL THEN
3008: Wf_Engine.SetItemAttrNumber(itemtype => itemtype,
3009: itemkey => itemkey,
3010: aname => 'AMS_APPROVER_SEQ',
3011: avalue => l_next_seq);
3012: resultout := 'COMPLETE:Y';
3098: -- RUN mode
3099: --
3100: IF (funcmode = 'RUN') THEN
3101: -- get the acitvity id
3102: l_activity_id := Wf_Engine.GetItemAttrNumber(
3103: itemtype => itemtype,
3104: itemkey => itemkey,
3105: aname => 'AMS_ACTIVITY_ID' );
3106:
3104: itemkey => itemkey,
3105: aname => 'AMS_ACTIVITY_ID' );
3106:
3107: -- get the activity type
3108: l_activity_type := Wf_Engine.GetItemAttrText(
3109: itemtype => itemtype,
3110: itemkey => itemkey,
3111: aname => 'AMS_ACTIVITY_TYPE' );
3112:
3109: itemtype => itemtype,
3110: itemkey => itemkey,
3111: aname => 'AMS_ACTIVITY_TYPE' );
3112:
3113: l_orig_status_id := Wf_Engine.GetItemAttrNumber(
3114: itemtype => itemtype,
3115: itemkey => itemkey,
3116: aname => 'AMS_ORIG_STAT_ID' );
3117:
3116: aname => 'AMS_ORIG_STAT_ID' );
3117:
3118:
3119: -- 11.5.9 addition
3120: l_version := Wf_Engine.GetItemAttrNumber(
3121: itemtype => itemtype,
3122: itemkey => itemkey,
3123: aname => 'AMS_OBJECT_VERSION_NUMBER' );
3124:
3121: itemtype => itemtype,
3122: itemkey => itemkey,
3123: aname => 'AMS_OBJECT_VERSION_NUMBER' );
3124:
3125: l_approval_type := Wf_Engine.GetItemAttrText(
3126: itemtype => itemtype,
3127: itemkey => itemkey,
3128: aname => 'AMS_APPROVAL_TYPE' );
3129:
3242: -- RUN mode
3243: --
3244: IF (funcmode = 'RUN') THEN
3245: -- get the acitvity id
3246: l_activity_id := Wf_Engine.GetItemAttrNumber(
3247: itemtype => itemtype,
3248: itemkey => itemkey,
3249: aname => 'AMS_ACTIVITY_ID' );
3250:
3248: itemkey => itemkey,
3249: aname => 'AMS_ACTIVITY_ID' );
3250:
3251: -- get the activity type
3252: l_activity_type := Wf_Engine.GetItemAttrText(
3253: itemtype => itemtype,
3254: itemkey => itemkey,
3255: aname => 'AMS_ACTIVITY_TYPE' );
3256:
3253: itemtype => itemtype,
3254: itemkey => itemkey,
3255: aname => 'AMS_ACTIVITY_TYPE' );
3256:
3257: l_orig_status_id := Wf_Engine.GetItemAttrNumber(
3258: itemtype => itemtype,
3259: itemkey => itemkey,
3260: aname => 'AMS_NEW_STAT_ID' );
3261:
3361: -- RUN mode
3362: --
3363: IF (funcmode = 'RUN') THEN
3364: -- get the acitvity id
3365: l_activity_id := Wf_Engine.GetItemAttrNumber(
3366: itemtype => itemtype,
3367: itemkey => itemkey,
3368: aname => 'AMS_ACTIVITY_ID' );
3369:
3367: itemkey => itemkey,
3368: aname => 'AMS_ACTIVITY_ID' );
3369:
3370: -- get the activity type
3371: l_activity_type := Wf_Engine.GetItemAttrText(
3372: itemtype => itemtype,
3373: itemkey => itemkey,
3374: aname => 'AMS_ACTIVITY_TYPE' );
3375:
3372: itemtype => itemtype,
3373: itemkey => itemkey,
3374: aname => 'AMS_ACTIVITY_TYPE' );
3375:
3376: l_orig_status_id := Wf_Engine.GetItemAttrNumber(
3377: itemtype => itemtype,
3378: itemkey => itemkey,
3379: aname => 'AMS_REJECT_STAT_ID' );
3380:
3378: itemkey => itemkey,
3379: aname => 'AMS_REJECT_STAT_ID' );
3380:
3381: -- Added by VM for 11.5.9
3382: l_approver_seq := Wf_Engine.GetItemAttrNumber(
3383: itemtype => itemtype,
3384: itemkey => itemkey,
3385: aname => 'AMS_APPROVER_SEQ' );
3386: l_version := Wf_Engine.GetItemAttrNumber(
3382: l_approver_seq := Wf_Engine.GetItemAttrNumber(
3383: itemtype => itemtype,
3384: itemkey => itemkey,
3385: aname => 'AMS_APPROVER_SEQ' );
3386: l_version := Wf_Engine.GetItemAttrNumber(
3387: itemtype => itemtype,
3388: itemkey => itemkey,
3389: aname => 'AMS_OBJECT_VERSION_NUMBER' );
3390:
3387: itemtype => itemtype,
3388: itemkey => itemkey,
3389: aname => 'AMS_OBJECT_VERSION_NUMBER' );
3390:
3391: l_approver_id := Wf_Engine.GetItemAttrNumber(
3392: itemtype => itemtype,
3393: itemkey => itemkey,
3394: aname => 'AMS_APPROVER_ID' );
3395:
3392: itemtype => itemtype,
3393: itemkey => itemkey,
3394: aname => 'AMS_APPROVER_ID' );
3395:
3396: l_approval_detail_id := Wf_Engine.GetItemAttrNumber(
3397: itemtype => itemtype,
3398: itemkey => itemkey,
3399: aname => 'AMS_ACTIVITY_DETAIL_ID' );
3400:
3397: itemtype => itemtype,
3398: itemkey => itemkey,
3399: aname => 'AMS_ACTIVITY_DETAIL_ID' );
3400:
3401: l_approval_type := Wf_Engine.GetItemAttrText(
3402: itemtype => itemtype,
3403: itemkey => itemkey,
3404: aname => 'AMS_APPROVAL_TYPE' );
3405: -- End 11.5.9
3563: itemkey VARCHAR2(30) := p_itemkey ;
3564: itemtype VARCHAR2(30) := NVL(p_itemtype,'AMS_APPROVAL') ;
3565: BEGIN
3566: Ams_Utility_Pvt.debug_message('Process ABORT Process');
3567: Wf_Engine.AbortProcess (itemtype => itemtype,
3568: itemkey => itemkey ,
3569: process => p_workflowprocess);
3570: EXCEPTION
3571: WHEN OTHERS THEN
3853: END IF;
3854:
3855: -- create a new process
3856: --
3857: Wf_Engine.CreateProcess(ItemType => l_itemtype,
3858: ItemKey => l_itemkey,
3859: process => l_process );
3860:
3861: -- set the user key for process
3859: process => l_process );
3860:
3861: -- set the user key for process
3862: --
3863: Wf_Engine.SetItemUserKey(ItemType => l_itemtype,
3864: ItemKey => l_itemkey,
3865: UserKey => l_itemuserkey);
3866:
3867: -- 09-Jan-2003 VMODUR Fix for BUG 2741039 - add pl/sql global context into
3873: l_resp_id := FND_GLOBAL.resp_id;
3874: l_appl_id := FND_GLOBAL.resp_appl_id;
3875: l_security_group_id := FND_GLOBAL.security_group_id;
3876:
3877: WF_ENGINE.SetItemAttrNumber(itemtype => l_itemtype ,
3878: itemkey => l_itemkey,
3879: aname => 'USER_ID',
3880: avalue => l_user_id
3881: );
3879: aname => 'USER_ID',
3880: avalue => l_user_id
3881: );
3882:
3883: WF_ENGINE.SetItemAttrNumber(itemtype => l_itemtype ,
3884: itemkey => l_itemkey,
3885: aname => 'RESPONSIBILITY_ID',
3886: avalue => l_resp_id
3887: );
3885: aname => 'RESPONSIBILITY_ID',
3886: avalue => l_resp_id
3887: );
3888:
3889: WF_ENGINE.SetItemAttrNumber(itemtype => l_itemtype ,
3890: itemkey => l_itemkey,
3891: aname => 'APPLICATION_ID',
3892: avalue => l_appl_id
3893: );
3891: aname => 'APPLICATION_ID',
3892: avalue => l_appl_id
3893: );
3894:
3895: WF_ENGINE.SetItemAttrNumber(itemtype => l_itemtype ,
3896: itemkey => l_itemkey,
3897: aname => 'SECURITY_GROUP_ID',
3898: avalue => l_security_group_id
3899: );
3902: -- set the parent item
3903: --
3904: IF p_parent_process_flag = Fnd_Api.G_TRUE THEN
3905: -- set parent
3906: Wf_Engine.SetItemParent(itemtype =>l_itemtype,
3907: itemkey => l_itemkey,
3908: parent_itemtype => l_itemtype,
3909: parent_itemkey => p_parent_process_key,
3910: parent_context => p_parent_context );
3909: parent_itemkey => p_parent_process_key,
3910: parent_context => p_parent_context );
3911:
3912: -- get parent amount
3913: l_parent_amount := Wf_Engine.GetItemAttrNumber(
3914: itemtype => l_itemtype,
3915: itemkey => p_parent_process_key,
3916: aname => 'AMS_ACTIVITY_AMOUNT' );
3917:
3915: itemkey => p_parent_process_key,
3916: aname => 'AMS_ACTIVITY_AMOUNT' );
3917:
3918: --
3919: Wf_Engine.SetItemAttrNumber(itemtype => l_itemtype,
3920: itemkey => l_itemkey,
3921: aname => 'AMS_ACTIVITY_AMOUNT',
3922: avalue => l_parent_amount);
3923:
3926: OPEN justification_text_csr(p_act_budget_id);
3927: FETCH justification_text_csr INTO l_justification_text;
3928: CLOSE justification_text_csr;
3929:
3930: Wf_Engine.SetItemAttrText(itemtype => l_itemtype,
3931: itemkey => l_itemkey,
3932: aname => 'AMS_JUSTIFICATION',
3933: avalue => l_justification_text);
3934:
3939: x_return_status => l_return_status);
3940: IF l_return_status <> Fnd_Api.G_RET_STS_SUCCESS THEN
3941: RAISE Fnd_Api.G_EXC_ERROR;
3942: END IF;
3943: Wf_Engine.SetItemAttrText(itemtype => l_itemtype,
3944: itemkey => l_itemkey,
3945: aname => 'AMS_ACT_NAME',
3946: avalue => l_parent_object_details.name);
3947:
3944: itemkey => l_itemkey,
3945: aname => 'AMS_ACT_NAME',
3946: avalue => l_parent_object_details.name);
3947:
3948: Wf_Engine.SetItemAttrText(itemtype => l_itemtype,
3949: itemkey => l_itemkey,
3950: aname => 'AMS_START_DATE',
3951: avalue => l_parent_object_details.start_date);
3952:
3950: aname => 'AMS_START_DATE',
3951: avalue => l_parent_object_details.start_date);
3952:
3953:
3954: Wf_Engine.SetItemAttrText(itemtype => l_itemtype,
3955: itemkey => l_itemkey,
3956: aname => 'AMS_END_DATE',
3957: avalue => l_parent_object_details.end_date);
3958: Wf_Engine.SetItemAttrText(itemtype => l_itemtype,
3954: Wf_Engine.SetItemAttrText(itemtype => l_itemtype,
3955: itemkey => l_itemkey,
3956: aname => 'AMS_END_DATE',
3957: avalue => l_parent_object_details.end_date);
3958: Wf_Engine.SetItemAttrText(itemtype => l_itemtype,
3959: itemkey => l_itemkey,
3960: aname => 'AMS_ACTIVITY_DESCRIPTION',
3961: avalue => l_parent_object_details.description);
3962: -- Changed Priority code to meaning
3959: itemkey => l_itemkey,
3960: aname => 'AMS_ACTIVITY_DESCRIPTION',
3961: avalue => l_parent_object_details.description);
3962: -- Changed Priority code to meaning
3963: Wf_Engine.SetItemAttrText(itemtype => l_itemtype,
3964: itemkey =>l_itemkey,
3965: aname => 'AMS_PRIORITY',
3966: avalue => l_parent_object_details.priority_desc);
3967: Wf_Engine.SetItemAttrText(itemtype => l_itemtype,
3963: Wf_Engine.SetItemAttrText(itemtype => l_itemtype,
3964: itemkey =>l_itemkey,
3965: aname => 'AMS_PRIORITY',
3966: avalue => l_parent_object_details.priority_desc);
3967: Wf_Engine.SetItemAttrText(itemtype => l_itemtype,
3968: itemkey => l_itemkey,
3969: aname => 'AMS_ACTIVITY_CURRENCY',
3970: avalue => l_parent_object_details.currency);
3971: --
3969: aname => 'AMS_ACTIVITY_CURRENCY',
3970: avalue => l_parent_object_details.currency);
3971: --
3972: --
3973: Wf_Engine.SetItemAttrNumber(itemtype => l_itemtype,
3974: itemkey => l_itemkey,
3975: aname => 'AMS_ACTIVITY_AMOUNT',
3976: avalue =>
3977: l_parent_object_details.total_header_amount);
3975: aname => 'AMS_ACTIVITY_AMOUNT',
3976: avalue =>
3977: l_parent_object_details.total_header_amount);
3978: --Version Number Added for 11.5.9
3979: Wf_Engine.SetItemAttrNumber(itemtype => l_itemtype,
3980: itemkey => l_itemkey,
3981: aname => 'AMS_OBJECT_VERSION_NUMBER',
3982: avalue => l_version);
3983: -- End add of addition
3980: itemkey => l_itemkey,
3981: aname => 'AMS_OBJECT_VERSION_NUMBER',
3982: avalue => l_version);
3983: -- End add of addition
3984: Wf_Engine.SetItemAttrText(itemtype => l_itemtype,
3985: itemkey => l_itemkey,
3986: aname => 'AMS_SOURCE_CODE',
3987: avalue => l_parent_object_details.source_code);
3988:
3985: itemkey => l_itemkey,
3986: aname => 'AMS_SOURCE_CODE',
3987: avalue => l_parent_object_details.source_code);
3988:
3989: Wf_Engine.SetItemAttrText(itemtype => l_itemtype,
3990: itemkey => l_itemkey,
3991: aname => 'AMS_PARENT_SOURCE_CODE',
3992: avalue => l_parent_object_details.parent_source_code);
3993:
3990: itemkey => l_itemkey,
3991: aname => 'AMS_PARENT_SOURCE_CODE',
3992: avalue => l_parent_object_details.parent_source_code);
3993:
3994: Wf_Engine.SetItemAttrText(itemtype => l_itemtype,
3995: itemkey => l_itemkey,
3996: aname => 'AMS_PARENT_OBJECT',
3997: avalue => l_parent_object_details.parent_name);
3998:
4001: l_return_status,
4002: l_appr_meaning);
4003:
4004: -- check for description of activity
4005: Wf_Engine.SetItemAttrText(itemtype => l_itemtype ,
4006: itemkey => l_itemkey,
4007: aname => 'AMS_APPROVAL_OBJECT_MEANING',
4008: avalue => l_appr_meaning );
4009: Get_User_Name
4010: ( p_user_id => l_parent_object_details.owner_id,
4011: x_full_name => l_full_name,
4012: x_return_status => l_return_status );
4013:
4014: Wf_Engine.SetItemAttrText(itemtype => l_itemtype,
4015: itemkey => l_itemkey,
4016: aname => 'AMS_ACTIVITY_OWNER',
4017: avalue => l_full_name );
4018:
4017: avalue => l_full_name );
4018:
4019: IF p_parent_approval_flag = Fnd_Api.G_TRUE THEN
4020: --
4021: Wf_Engine.SetItemAttrText(itemtype => l_itemtype,
4022: itemkey => l_itemkey,
4023: aname => 'AMS_CONTINUEFLOW',
4024: avalue => 'CONTINUEFLOW-1');
4025: END IF;
4025: END IF;
4026:
4027: -- set othet attributes required for lines approval
4028: --
4029: Wf_Engine.SetItemAttrNumber(itemtype => l_itemtype,
4030: itemkey => l_itemkey,
4031: aname => 'AMS_ACT_BUDGET_ID',
4032: avalue => p_act_budget_id);
4033: --
4030: itemkey => l_itemkey,
4031: aname => 'AMS_ACT_BUDGET_ID',
4032: avalue => p_act_budget_id);
4033: --
4034: Wf_Engine.SetItemAttrNumber(itemtype => l_itemtype,
4035: itemkey => l_itemkey,
4036: aname => 'AMS_LINE_ORIG_STAT_ID',
4037: avalue => p_orig_stat_id);
4038: --
4035: itemkey => l_itemkey,
4036: aname => 'AMS_LINE_ORIG_STAT_ID',
4037: avalue => p_orig_stat_id);
4038: --
4039: Wf_Engine.SetItemAttrNumber(itemtype => l_itemtype,
4040: itemkey => l_itemkey,
4041: aname => 'AMS_LINE_NEW_STAT_ID',
4042: avalue => p_new_stat_id);
4043: --
4040: itemkey => l_itemkey,
4041: aname => 'AMS_LINE_NEW_STAT_ID',
4042: avalue => p_new_stat_id);
4043: --
4044: Wf_Engine.SetItemAttrNumber(itemtype => l_itemtype,
4045: itemkey => l_itemkey,
4046: aname => 'AMS_LINE_REJECT_STAT_ID',
4047: avalue => p_rejected_stat_id);
4048: --
4045: itemkey => l_itemkey,
4046: aname => 'AMS_LINE_REJECT_STAT_ID',
4047: avalue => p_rejected_stat_id);
4048: --
4049: Wf_Engine.SetItemAttrNumber(itemtype => l_itemtype,
4050: itemkey => l_itemkey,
4051: aname => 'AMS_ACTIVITY_ID',
4052: avalue => l_activity_id);
4053: --
4050: itemkey => l_itemkey,
4051: aname => 'AMS_ACTIVITY_ID',
4052: avalue => l_activity_id);
4053: --
4054: Wf_Engine.SetItemAttrText(itemtype => l_itemtype,
4055: itemkey => l_itemkey,
4056: aname => 'AMS_ACTIVITY_TYPE',
4057: avalue => l_activity_type);
4058: --
4055: itemkey => l_itemkey,
4056: aname => 'AMS_ACTIVITY_TYPE',
4057: avalue => l_activity_type);
4058: --
4059: Wf_Engine.SetItemAttrNumber(itemtype => l_itemtype,
4060: itemkey => l_itemkey,
4061: aname => 'AMS_BUDGET_ID',
4062: avalue => l_budget_id);
4063: --
4060: itemkey => l_itemkey,
4061: aname => 'AMS_BUDGET_ID',
4062: avalue => l_budget_id);
4063: --
4064: Wf_Engine.SetItemAttrText(itemtype => l_itemtype,
4065: itemkey => l_itemkey,
4066: aname => 'AMS_BUDGET_TYPE',
4067: avalue => l_budget_type);
4068: --
4065: itemkey => l_itemkey,
4066: aname => 'AMS_BUDGET_TYPE',
4067: avalue => l_budget_type);
4068: --
4069: Wf_Engine.SetItemAttrText(itemtype => l_itemtype,
4070: itemkey => l_itemkey,
4071: aname => 'AMS_PARENT_WAITING',
4072: avalue => p_parent_process_flag);
4073: --
4070: itemkey => l_itemkey,
4071: aname => 'AMS_PARENT_WAITING',
4072: avalue => p_parent_process_flag);
4073: --
4074: Wf_Engine.SetItemAttrText(itemtype => l_itemtype,
4075: itemkey => l_itemkey,
4076: aname => 'AMS_PARENT_ITEMKEY',
4077: avalue => p_parent_process_key);
4078: --
4075: itemkey => l_itemkey,
4076: aname => 'AMS_PARENT_ITEMKEY',
4077: avalue => p_parent_process_key);
4078: --
4079: Wf_Engine.SetItemAttrText(itemtype => l_itemtype,
4080: itemkey => l_itemkey,
4081: aname => 'AMS_PARENT_APPROVED',
4082: avalue => p_parent_approval_flag);
4083:
4081: aname => 'AMS_PARENT_APPROVED',
4082: avalue => p_parent_approval_flag);
4083:
4084: --
4085: Wf_Engine.SetItemAttrText(itemtype => l_itemtype,
4086: itemkey => l_itemkey,
4087: aname => 'AMS_CONTINUE_FLOW',
4088: avalue => p_continue_flow);
4089:
4096: RAISE Fnd_Api.G_EXC_ERROR;
4097: END IF;
4098:
4099: --
4100: Wf_Engine.SetItemAttrNumber( itemtype => l_itemtype,
4101: itemkey => l_itemkey,
4102: aname => 'AMS_REQUESTER_ID',
4103: avalue => p_requestor_id);
4104:
4102: aname => 'AMS_REQUESTER_ID',
4103: avalue => p_requestor_id);
4104:
4105: --
4106: Wf_Engine.SetItemAttrText( itemtype => l_itemtype,
4107: itemkey => l_itemkey,
4108: aname => 'AMS_REQUESTER',
4109: avalue => l_requestor_name);
4110:
4153: END IF;
4154:
4155: --
4156: /*
4157: wf_engine.SetItemAttrText(itemtype => l_itemtype,
4158: itemkey => l_itemkey,
4159: aname => 'AMS_ACT_NAME',
4160: avalue => l_approver_obj.name);
4161: */
4159: aname => 'AMS_ACT_NAME',
4160: avalue => l_approver_obj.name);
4161: */
4162:
4163: Wf_Engine.SetItemAttrText(itemtype => l_itemtype,
4164: itemkey => l_itemkey,
4165: aname => 'AMS_BUDGET_NAME',
4166: avalue => l_object_details.name);
4167:
4169: ( p_user_id => l_object_details.owner_id,
4170: x_full_name => l_full_name,
4171: x_return_status => l_return_status );
4172:
4173: Wf_Engine.SetItemAttrText(itemtype => l_itemtype,
4174: itemkey => l_itemkey,
4175: aname => 'AMS_BUDGET_OWNER',
4176: avalue => l_full_name );
4177:
4174: itemkey => l_itemkey,
4175: aname => 'AMS_BUDGET_OWNER',
4176: avalue => l_full_name );
4177:
4178: Wf_Engine.SetItemAttrText(itemtype => l_itemtype,
4179: itemkey => l_itemkey,
4180: aname => 'AMS_BUDGET_CURRENCY',
4181: avalue => l_budget_currency);
4182:
4179: itemkey => l_itemkey,
4180: aname => 'AMS_BUDGET_CURRENCY',
4181: avalue => l_budget_currency);
4182:
4183: Wf_Engine.SetItemAttrNumber(itemtype => l_itemtype,
4184: itemkey => l_itemkey,
4185: aname => 'AMS_BUDGET_AMOUNT',
4186: avalue => l_request_amount);
4187: --
4184: itemkey => l_itemkey,
4185: aname => 'AMS_BUDGET_AMOUNT',
4186: avalue => l_request_amount);
4187: --
4188: Wf_Engine.SetItemAttrNumber(itemtype => l_itemtype,
4189: itemkey => l_itemkey,
4190: aname => 'AMS_BUDGET_AMOUNT_CONV',
4191: avalue => l_budget_amount);
4192:
4190: aname => 'AMS_BUDGET_AMOUNT_CONV',
4191: avalue => l_budget_amount);
4192:
4193: --
4194: Wf_Engine.SetItemAttrNumber(itemtype => l_itemtype,
4195: itemkey => l_itemkey,
4196: aname => 'AMS_APPROVED_LINE_AMOUNT',
4197: avalue => l_budget_amount);
4198:
4196: aname => 'AMS_APPROVED_LINE_AMOUNT',
4197: avalue => l_budget_amount);
4198:
4199: --
4200: Wf_Engine.SetItemAttrText(itemtype => l_itemtype,
4201: itemkey => l_itemkey,
4202: aname => 'AMS_CURRENCY',
4203: avalue => l_budget_currency);
4204:
4202: aname => 'AMS_CURRENCY',
4203: avalue => l_budget_currency);
4204:
4205: --
4206: Wf_Engine.SetItemAttrNumber(itemtype => l_itemtype,
4207: itemkey => l_itemkey,
4208: aname => 'AMS_APPROVER_SEQ',
4209: avalue => l_approver_seq);
4210:
4208: aname => 'AMS_APPROVER_SEQ',
4209: avalue => l_approver_seq);
4210:
4211: --
4212: Wf_Engine.SetItemAttrNumber(itemtype => l_itemtype,
4213: itemkey => l_itemkey,
4214: aname => 'AMS_ACTIVITY_DETAIL_ID',
4215: avalue => l_activity_detail_id);
4216:
4220: l_return_status,
4221: l_appr_meaning);
4222:
4223: -- check for description of activity
4224: wf_engine.SetItemAttrText(itemtype => l_itemtype ,
4225: itemkey => l_itemkey,
4226: aname => 'AMS_APPROVAL_OBJECT_MEANING',
4227: avalue => l_appr_meaning );
4228: */
4226: aname => 'AMS_APPROVAL_OBJECT_MEANING',
4227: avalue => l_appr_meaning );
4228: */
4229:
4230: Wf_Engine.SetItemAttrText(itemtype => l_itemtype ,
4231: itemkey => l_itemkey,
4232: aname => 'AMS_APPROVAL_TYPE',
4233: avalue => 'BUDGET' );
4234:
4236: --
4237: -- owner of the process
4238: l_owner := l_requestor_name;
4239:
4240: Wf_Engine.SetItemOwner(itemtype =>l_itemtype,
4241: itemkey => l_itemkey,
4242: owner => l_owner );
4243:
4244: -- start the process
4242: owner => l_owner );
4243:
4244: -- start the process
4245: --
4246: Wf_Engine.StartProcess(itemtype => l_itemtype,
4247: itemkey => l_itemkey );
4248:
4249:
4250: l_appr_hist_rec.object_id := p_act_budget_id;
4527: IF (funcmode = 'RUN') THEN
4528: --resultout := 'COMPLETE:ERROR';
4529:
4530: -- get the activity id
4531: l_approval_amount := Wf_Engine.GetItemAttrNumber(
4532: itemtype => itemtype,
4533: itemkey => itemkey,
4534: aname => 'AMS_ACTIVITY_AMOUNT' );
4535:
4533: itemkey => itemkey,
4534: aname => 'AMS_ACTIVITY_AMOUNT' );
4535:
4536: -- get the activity id
4537: l_activity_id := Wf_Engine.GetItemAttrNumber(
4538: itemtype => itemtype,
4539: itemkey => itemkey,
4540: aname => 'AMS_ACTIVITY_ID' );
4541:
4539: itemkey => itemkey,
4540: aname => 'AMS_ACTIVITY_ID' );
4541:
4542: -- get the activity type
4543: l_activity_type := Wf_Engine.GetItemAttrText(
4544: itemtype => itemtype,
4545: itemkey => itemkey,
4546: aname => 'AMS_ACTIVITY_TYPE' );
4547:
4545: itemkey => itemkey,
4546: aname => 'AMS_ACTIVITY_TYPE' );
4547:
4548: -- get the requestor id
4549: l_requestor_id := Wf_Engine.GetItemAttrNumber(
4550: itemtype => itemtype,
4551: itemkey => itemkey,
4552: aname => 'AMS_REQUESTER_ID' );
4553:
4782: -- RUN mode
4783: --
4784: IF (funcmode = 'RUN') THEN
4785: -- get the approval detail id
4786: l_approval_detail_id := Wf_Engine.GetItemAttrNumber(
4787: itemtype => itemtype,
4788: itemkey => itemkey,
4789: aname => 'AMS_ACTIVITY_DETAIL_ID'
4790: );
4788: itemkey => itemkey,
4789: aname => 'AMS_ACTIVITY_DETAIL_ID'
4790: );
4791: -- get the budget type
4792: l_current_seq := Wf_Engine.GetItemAttrNumber(
4793: itemtype => itemtype,
4794: itemkey => itemkey,
4795: aname => 'AMS_APPROVER_SEQ'
4796: );
4825: END IF;
4826:
4827: -- 11.5.9
4828: -- Get the Activity Budget Id
4829: l_act_budget_id := Wf_Engine.GetItemAttrNumber(
4830: itemtype => itemtype,
4831: itemkey => itemkey,
4832: aname => 'AMS_ACT_BUDGET_ID'
4833: );
4831: itemkey => itemkey,
4832: aname => 'AMS_ACT_BUDGET_ID'
4833: );
4834:
4835: l_version := Wf_Engine.GetItemAttrNumber(
4836: itemtype => itemtype,
4837: itemkey => itemkey,
4838: aname => 'AMS_OBJECT_VERSION_NUMBER'
4839: );
4927: IF l_return_status <> Fnd_Api.G_RET_STS_SUCCESS THEN
4928: RAISE Fnd_Api.G_EXC_ERROR;
4929: END IF;
4930:
4931: l_prev_role_name := Wf_Engine.GetItemAttrText(
4932: itemtype => itemtype,
4933: itemkey => itemkey,
4934: aname => 'AMS_APPROVAL_ROLE' );
4935:
4932: itemtype => itemtype,
4933: itemkey => itemkey,
4934: aname => 'AMS_APPROVAL_ROLE' );
4935:
4936: Wf_Engine.SetItemAttrText( itemtype => itemtype,
4937: itemkey => itemkey,
4938: aname => 'AMS_APPROVAL_ROLE',
4939: avalue => l_role_name);
4940:
4938: aname => 'AMS_APPROVAL_ROLE',
4939: avalue => l_role_name);
4940:
4941: -- get the activity id
4942: l_activity_id := Wf_Engine.GetItemAttrNumber(
4943: itemtype => itemtype,
4944: itemkey => itemkey,
4945: aname => 'AMS_ACTIVITY_ID' );
4946:
4944: itemkey => itemkey,
4945: aname => 'AMS_ACTIVITY_ID' );
4946:
4947: -- get the activity type
4948: l_activity_type := Wf_Engine.GetItemAttrText(
4949: itemtype => itemtype,
4950: itemkey => itemkey,
4951: aname => 'AMS_ACTIVITY_TYPE' );
4952:
4950: itemkey => itemkey,
4951: aname => 'AMS_ACTIVITY_TYPE' );
4952:
4953: -- get the activity note
4954: l_note := Wf_Engine.GetItemAttrText(
4955: itemtype => itemtype,
4956: itemkey => itemkey,
4957: aname => 'AMS_NOTE' );
4958:
4971: RAISE Fnd_Api.G_EXC_ERROR;
4972: END IF;
4973:
4974: -- get all the budget line notes
4975: l_all_note := Wf_Engine.GetItemAttrText(
4976: itemtype => itemtype,
4977: itemkey => itemkey,
4978: aname => 'AMS_ALL_NOTE' );
4979:
4981: -- issue : cannot distinguish from notes created by activities or budget lines
4982: -- option : can insert a carriage return when concaniting notes
4983: l_all_note := l_all_note || l_note;
4984:
4985: Wf_Engine.SetItemAttrText( itemtype => itemtype,
4986: itemkey => itemkey,
4987: aname => 'AMS_ALL_NOTE' ,
4988: avalue => l_all_note ) ;
4989:
4988: avalue => l_all_note ) ;
4989:
4990: -- set the note to null
4991: l_note := NULL;
4992: Wf_Engine.SetItemAttrText( itemtype => itemtype,
4993: itemkey => itemkey,
4994: aname => 'AMS_NOTE' ,
4995: avalue => l_note ) ;
4996:
4993: itemkey => itemkey,
4994: aname => 'AMS_NOTE' ,
4995: avalue => l_note ) ;
4996:
4997: Wf_Engine.SetItemAttrNumber(itemtype => itemtype,
4998: itemkey => itemkey,
4999: aname => 'AMS_APPROVER_ID',
5000: avalue => l_object_approver_id);
5001: --avalue => l_object_approver);
5001: --avalue => l_object_approver);
5002:
5003: -- Changed by VMODUR from l_approver to l_approver_display_name
5004: -- Unchanged
5005: Wf_Engine.SetItemAttrText( itemtype => itemtype,
5006: itemkey => itemkey,
5007: aname => 'AMS_APPR_USERNAME',
5008: avalue => l_approver);
5009:
5006: itemkey => itemkey,
5007: aname => 'AMS_APPR_USERNAME',
5008: avalue => l_approver);
5009:
5010: Wf_Engine.SetItemAttrText( itemtype => itemtype,
5011: itemkey => itemkey,
5012: aname => 'AMS_APPR_DISPLAY_NAME',
5013: avalue => l_approver_display_name);
5014:
5011: itemkey => itemkey,
5012: aname => 'AMS_APPR_DISPLAY_NAME',
5013: avalue => l_approver_display_name);
5014:
5015: Wf_Engine.SetItemAttrText( itemtype => itemtype,
5016: itemkey => itemkey,
5017: aname => 'AMS_NOTIFICATION_TYPE',
5018: avalue => l_notification_type);
5019:
5016: itemkey => itemkey,
5017: aname => 'AMS_NOTIFICATION_TYPE',
5018: avalue => l_notification_type);
5019:
5020: Wf_Engine.SetItemAttrNumber(itemtype => itemtype,
5021: itemkey => itemkey,
5022: aname => 'AMS_NOTIFICATION_TIMEOUT',
5023: avalue => l_notification_timeout);
5024:
5156: --
5157: IF (funcmode = 'RUN') THEN
5158:
5159: -- get the approval detail id
5160: l_approval_detail_id := Wf_Engine.GetItemAttrNumber(
5161: itemtype => itemtype,
5162: itemkey => itemkey,
5163: aname => 'AMS_ACTIVITY_DETAIL_ID' );
5164:
5162: itemkey => itemkey,
5163: aname => 'AMS_ACTIVITY_DETAIL_ID' );
5164:
5165: -- get the budget type
5166: l_current_seq := Wf_Engine.GetItemAttrNumber(
5167: itemtype => itemtype,
5168: itemkey => itemkey,
5169: aname => 'AMS_APPROVER_SEQ' );
5170:
5174: x_next_seq => l_next_seq,
5175: x_required_flag => l_required_flag);
5176:
5177: -- Added for 11.5.9
5178: l_version := Wf_Engine.GetItemAttrNumber(
5179: itemtype => itemtype,
5180: itemkey => itemkey,
5181: aname => 'AMS_OBJECT_VERSION_NUMBER' );
5182:
5179: itemtype => itemtype,
5180: itemkey => itemkey,
5181: aname => 'AMS_OBJECT_VERSION_NUMBER' );
5182:
5183: l_act_budget_id := Wf_Engine.GetItemAttrNumber(
5184: itemtype => itemtype,
5185: itemkey => itemkey,
5186: aname => 'AMS_ACT_BUDGET_ID' );
5187:
5184: itemtype => itemtype,
5185: itemkey => itemkey,
5186: aname => 'AMS_ACT_BUDGET_ID' );
5187:
5188: l_approver_id := Wf_Engine.GetItemAttrNumber(
5189: itemtype => itemtype,
5190: itemkey => itemkey,
5191: aname => 'AMS_APPROVER_ID');
5192:
5189: itemtype => itemtype,
5190: itemkey => itemkey,
5191: aname => 'AMS_APPROVER_ID');
5192:
5193: l_note := Wf_Engine.GetItemAttrText(
5194: itemtype => itemtype,
5195: itemkey => itemkey,
5196: aname => 'AMS_NOTE' );
5197:
5259:
5260: --IF l_required_flag = FND_API.G_TRUE THEN
5261: IF l_next_seq IS NOT NULL THEN
5262: --
5263: Wf_Engine.SetItemAttrNumber(itemtype => itemtype,
5264: itemkey => itemkey,
5265: aname => 'AMS_APPROVER_SEQ',
5266: avalue => l_next_seq);
5267:
5383: -- RUN mode
5384: --
5385: IF (funcmode = 'RUN') THEN
5386: -- get the budget id
5387: l_act_budget_id := Wf_Engine.GetItemAttrNumber(
5388: itemtype => itemtype,
5389: itemkey => itemkey,
5390: aname => 'AMS_ACT_BUDGET_ID' );
5391:
5389: itemkey => itemkey,
5390: aname => 'AMS_ACT_BUDGET_ID' );
5391:
5392: -- get the approved id
5393: l_approver_id := Wf_Engine.GetItemAttrNumber(
5394: itemtype => itemtype,
5395: itemkey => itemkey,
5396: aname => 'AMS_APPROVER_ID' );
5397:
5395: itemkey => itemkey,
5396: aname => 'AMS_APPROVER_ID' );
5397:
5398: -- get the approved amount
5399: l_approved_amount := Wf_Engine.GetItemAttrNumber(
5400: itemtype => itemtype,
5401: itemkey => itemkey,
5402: aname => 'AMS_APPROVED_LINE_AMOUNT' );
5403:
5401: itemkey => itemkey,
5402: aname => 'AMS_APPROVED_LINE_AMOUNT' );
5403:
5404: -- get the approved currency
5405: l_approved_currency := Wf_Engine.GetItemAttrText(
5406: itemtype => itemtype,
5407: itemkey => itemkey,
5408: aname => 'AMS_CURRENCY' );
5409:
5407: itemkey => itemkey,
5408: aname => 'AMS_CURRENCY' );
5409:
5410: -- get the approved status id
5411: l_approved_status_id := Wf_Engine.GetItemAttrNumber(
5412: itemtype => itemtype,
5413: itemkey => itemkey,
5414: aname => 'AMS_LINE_NEW_STAT_ID' );
5415:
5412: itemtype => itemtype,
5413: itemkey => itemkey,
5414: aname => 'AMS_LINE_NEW_STAT_ID' );
5415:
5416: l_comment := Wf_Engine.GetItemAttrText(
5417: itemtype => itemtype,
5418: itemkey => itemkey,
5419: aname => 'AMS_NOTE' );
5420:
5417: itemtype => itemtype,
5418: itemkey => itemkey,
5419: aname => 'AMS_NOTE' );
5420:
5421: l_approver := wf_engine.GetItemAttrText(
5422: itemtype => itemtype,
5423: itemkey => itemkey,
5424: aname => 'AMS_APPR_USERNAME');
5425:
5422: itemtype => itemtype,
5423: itemkey => itemkey,
5424: aname => 'AMS_APPR_USERNAME');
5425:
5426: l_budget_amount := wf_engine.GetItemAttrNumber(
5427: itemtype => itemtype,
5428: itemkey => itemkey,
5429: aname => 'AMS_BUDGET_AMOUNT_CONV');
5430:
5593: -- RUN mode
5594: --
5595: IF (funcmode = 'RUN') THEN
5596: -- get the budget id
5597: l_act_budget_id := Wf_Engine.GetItemAttrNumber(
5598: itemtype => itemtype,
5599: itemkey => itemkey,
5600: aname => 'AMS_ACT_BUDGET_ID' );
5601:
5599: itemkey => itemkey,
5600: aname => 'AMS_ACT_BUDGET_ID' );
5601:
5602: -- get the approved id
5603: l_approver_id := Wf_Engine.GetItemAttrNumber(
5604: itemtype => itemtype,
5605: itemkey => itemkey,
5606: aname => 'AMS_APPROVER_ID' );
5607:
5605: itemkey => itemkey,
5606: aname => 'AMS_APPROVER_ID' );
5607:
5608: -- get the approved amount
5609: l_approved_amount := Wf_Engine.GetItemAttrNumber(
5610: itemtype => itemtype,
5611: itemkey => itemkey,
5612: aname => 'AMS_APPROVED_LINE_AMOUNT' );
5613:
5611: itemkey => itemkey,
5612: aname => 'AMS_APPROVED_LINE_AMOUNT' );
5613:
5614: -- get the approved currency
5615: l_approved_currency := Wf_Engine.GetItemAttrText(
5616: itemtype => itemtype,
5617: itemkey => itemkey,
5618: aname => 'AMS_CURRENCY' );
5619:
5617: itemkey => itemkey,
5618: aname => 'AMS_CURRENCY' );
5619:
5620: -- get the rejected status id
5621: l_rejected_status_id := Wf_Engine.GetItemAttrNumber(
5622: itemtype => itemtype,
5623: itemkey => itemkey,
5624: aname => 'AMS_LINE_REJECT_STAT_ID' );
5625:
5622: itemtype => itemtype,
5623: itemkey => itemkey,
5624: aname => 'AMS_LINE_REJECT_STAT_ID' );
5625:
5626: l_comment := Wf_Engine.GetItemAttrText(
5627: itemtype => itemtype,
5628: itemkey => itemkey,
5629: aname => 'AMS_NOTE' );
5630:
5627: itemtype => itemtype,
5628: itemkey => itemkey,
5629: aname => 'AMS_NOTE' );
5630:
5631: l_approver := wf_engine.GetItemAttrText(
5632: itemtype => itemtype,
5633: itemkey => itemkey,
5634: aname => 'AMS_APPR_USERNAME');
5635:
5632: itemtype => itemtype,
5633: itemkey => itemkey,
5634: aname => 'AMS_APPR_USERNAME');
5635:
5636: l_budget_amount := wf_engine.GetItemAttrNumber(
5637: itemtype => itemtype,
5638: itemkey => itemkey,
5639: aname => 'AMS_BUDGET_AMOUNT_CONV');
5640:
5638: itemkey => itemkey,
5639: aname => 'AMS_BUDGET_AMOUNT_CONV');
5640:
5641: -- 11.5.9 version sequence and note
5642: l_version := Wf_Engine.GetItemAttrNumber(
5643: itemtype => itemtype,
5644: itemkey => itemkey,
5645: aname => 'AMS_OBJECT_VERSION_NUMBER' );
5646:
5643: itemtype => itemtype,
5644: itemkey => itemkey,
5645: aname => 'AMS_OBJECT_VERSION_NUMBER' );
5646:
5647: l_approver_seq := Wf_Engine.GetItemAttrNumber(
5648: itemtype => itemtype,
5649: itemkey => itemkey,
5650: aname => 'AMS_APPROVER_SEQ' );
5651:
5649: itemkey => itemkey,
5650: aname => 'AMS_APPROVER_SEQ' );
5651:
5652: -- get the note
5653: l_note := Wf_Engine.GetItemAttrText(
5654: itemtype => itemtype,
5655: itemkey => itemkey,
5656: aname => 'AMS_NOTE' );
5657:
5875: -- RUN mode
5876: --
5877: IF (funcmode = 'RUN') THEN
5878: -- get the budget id
5879: l_act_budget_id := Wf_Engine.GetItemAttrNumber(
5880: itemtype => itemtype,
5881: itemkey => itemkey,
5882: aname => 'AMS_ACT_BUDGET_ID' );
5883:
5881: itemkey => itemkey,
5882: aname => 'AMS_ACT_BUDGET_ID' );
5883:
5884: -- get the approved id
5885: l_approver_id := Wf_Engine.GetItemAttrNumber(
5886: itemtype => itemtype,
5887: itemkey => itemkey,
5888: aname => 'AMS_APPROVER_ID' );
5889:
5887: itemkey => itemkey,
5888: aname => 'AMS_APPROVER_ID' );
5889:
5890: -- get the approved amount
5891: l_approved_amount := Wf_Engine.GetItemAttrNumber(
5892: itemtype => itemtype,
5893: itemkey => itemkey,
5894: aname => 'AMS_APPROVED_LINE_AMOUNT' );
5895:
5893: itemkey => itemkey,
5894: aname => 'AMS_APPROVED_LINE_AMOUNT' );
5895:
5896: -- get the approved currency
5897: l_approved_currency := Wf_Engine.GetItemAttrText(
5898: itemtype => itemtype,
5899: itemkey => itemkey,
5900: aname => 'AMS_CURRENCY' );
5901:
5899: itemkey => itemkey,
5900: aname => 'AMS_CURRENCY' );
5901:
5902: -- get the rejected status id
5903: l_rejected_status_id := Wf_Engine.GetItemAttrNumber(
5904: itemtype => itemtype,
5905: itemkey => itemkey,
5906: aname => 'AMS_LINE_REJECT_STAT_ID' );
5907:
5904: itemtype => itemtype,
5905: itemkey => itemkey,
5906: aname => 'AMS_LINE_REJECT_STAT_ID' );
5907:
5908: l_comment := Wf_Engine.GetItemAttrText(
5909: itemtype => itemtype,
5910: itemkey => itemkey,
5911: aname => 'AMS_NOTE' );
5912: BEGIN
5960: RAISE Fnd_Api.G_EXC_ERROR;
5961: END;
5962:
5963: -- 11.5.9 addition
5964: l_version := Wf_Engine.GetItemAttrNumber(
5965: itemtype => itemtype,
5966: itemkey => itemkey,
5967: aname => 'AMS_OBJECT_VERSION_NUMBER' );
5968:
6081: -- RUN mode
6082: --
6083: IF (funcmode = 'RUN') THEN
6084:
6085: l_parent_waiting_flag := Wf_Engine.GetItemAttrText(
6086: itemtype => itemtype,
6087: itemkey => itemkey,
6088: aname => 'AMS_PARENT_WAITING' );
6089:
6180: -- RUN mode
6181: --
6182: IF (funcmode = 'RUN') THEN
6183: -- get the approval amount
6184: l_approval_amount := Wf_Engine.GetItemAttrNumber(
6185: itemtype => itemtype,
6186: itemkey => itemkey,
6187: aname => 'AMS_ACTIVITY_AMOUNT' );
6188:
6186: itemkey => itemkey,
6187: aname => 'AMS_ACTIVITY_AMOUNT' );
6188:
6189: -- get the activity id
6190: l_activity_id := Wf_Engine.GetItemAttrNumber(
6191: itemtype => itemtype,
6192: itemkey => itemkey,
6193: aname => 'AMS_ACTIVITY_ID' );
6194:
6192: itemkey => itemkey,
6193: aname => 'AMS_ACTIVITY_ID' );
6194:
6195: -- get the activity type
6196: l_activity_type := Wf_Engine.GetItemAttrText(
6197: itemtype => itemtype,
6198: itemkey => itemkey,
6199: aname => 'AMS_ACTIVITY_TYPE' );
6200:
6198: itemkey => itemkey,
6199: aname => 'AMS_ACTIVITY_TYPE' );
6200:
6201: -- get parent process approved flag
6202: l_parent_approval_flag := Wf_Engine.GetItemAttrText(
6203: itemtype => itemtype,
6204: itemkey => itemkey,
6205: aname => 'AMS_PARENT_APPROVED' );
6206:
6205: aname => 'AMS_PARENT_APPROVED' );
6206:
6207: -- set the continue flow (if continues) to second continue flow
6208: --
6209: Wf_Engine.SetItemAttrText(itemtype => itemtype,
6210: itemkey => itemkey,
6211: aname => 'AMS_CONTINUEFLOW',
6212: avalue => 'CONTINUEFLOW');
6213:
6222: IF l_approval_flag = Fnd_Api.G_TRUE THEN
6223: -- set continue to true
6224: l_continue_flag := Fnd_Api.G_TRUE;
6225:
6226: Wf_Engine.SetItemAttrText(itemtype => itemtype,
6227: itemkey => itemkey,
6228: aname => 'AMS_CONTINUE_FLOW',
6229: avalue => l_continue_flag);
6230:
6334: --
6335: IF (funcmode = 'RUN') THEN
6336:
6337: -- get the activity id
6338: l_activity_id := Wf_Engine.GetItemAttrNumber(
6339: itemtype => itemtype,
6340: itemkey => itemkey,
6341: aname => 'AMS_ACTIVITY_ID' );
6342:
6340: itemkey => itemkey,
6341: aname => 'AMS_ACTIVITY_ID' );
6342:
6343: -- get the activity type
6344: l_activity_type := Wf_Engine.GetItemAttrText(
6345: itemtype => itemtype,
6346: itemkey => itemkey,
6347: aname => 'AMS_ACTIVITY_TYPE' );
6348:
6361: IF l_remaining_flag = Fnd_Api.G_FALSE THEN
6362: -- set continue to true
6363: l_continue_flag := Fnd_Api.G_TRUE;
6364:
6365: Wf_Engine.SetItemAttrText(itemtype => itemtype,
6366: itemkey => itemkey,
6367: aname => 'AMS_CONTINUE_FLOW',
6368: avalue => l_continue_flag);
6369: resultout := 'COMPLETE:N';
6467: -- RUN mode
6468: --
6469: IF (funcmode = 'RUN') THEN
6470:
6471: l_continue_flag := Wf_Engine.GetItemAttrText(
6472: itemtype => itemtype,
6473: itemkey => itemkey,
6474: aname => 'AMS_CONTINUE_FLOW' );
6475:
6474: aname => 'AMS_CONTINUE_FLOW' );
6475:
6476: IF l_continue_flag = Fnd_Api.G_TRUE THEN
6477: -- get the activity id
6478: l_activity_id := Wf_Engine.GetItemAttrNumber(
6479: itemtype => itemtype,
6480: itemkey => itemkey,
6481: aname => 'AMS_ACTIVITY_ID' );
6482:
6480: itemkey => itemkey,
6481: aname => 'AMS_ACTIVITY_ID' );
6482:
6483: -- get the activity id
6484: l_activity_type := Wf_Engine.GetItemAttrText(
6485: itemtype => itemtype,
6486: itemkey => itemkey,
6487: aname => 'AMS_ACTIVITY_TYPE' );
6488:
6486: itemkey => itemkey,
6487: aname => 'AMS_ACTIVITY_TYPE' );
6488:
6489: -- get the activity type
6490: l_parent_itemkey := Wf_Engine.GetItemAttrText(
6491: itemtype => itemtype,
6492: itemkey => itemkey,
6493: aname => 'AMS_PARENT_ITEMKEY' );
6494:
6504:
6505: -- derive the itemkeys that were set while creating them
6506: l_itemkey := l_line_id||'_'||l_parent_itemkey;
6507:
6508: Wf_Engine.SetItemAttrText ( itemtype => itemtype,
6509: itemkey => l_itemkey,
6510: aname => 'AMS_CONTINUE_FLOW',
6511: avalue => l_continue_flag);
6512:
6509: itemkey => l_itemkey,
6510: aname => 'AMS_CONTINUE_FLOW',
6511: avalue => l_continue_flag);
6512:
6513: Wf_Engine.SetItemAttrText ( itemtype => itemtype,
6514: itemkey => l_itemkey,
6515: aname => 'AMS_PARENT_APPROVED',
6516: avalue => l_parent_approved);
6517: END LOOP;
6604: -- RUN mode
6605: --
6606: IF (funcmode = 'RUN') THEN
6607: -- get the activity type
6608: l_parent_itemkey := Wf_Engine.GetItemAttrText(
6609: itemtype => itemtype,
6610: itemkey => itemkey,
6611: aname => 'AMS_PARENT_ITEMKEY' );
6612:
6611: aname => 'AMS_PARENT_ITEMKEY' );
6612:
6613: BEGIN
6614: /* Added for zero budget Approval */
6615: Wf_Engine.BeginActivity(itemtype => g_itemtype,
6616: itemkey => l_parent_itemkey,
6617: activity => l_parent_process||':'||l_activity_label
6618: );
6619: Wf_Engine.CompleteActivity(itemtype => g_itemtype,
6615: Wf_Engine.BeginActivity(itemtype => g_itemtype,
6616: itemkey => l_parent_itemkey,
6617: activity => l_parent_process||':'||l_activity_label
6618: );
6619: Wf_Engine.CompleteActivity(itemtype => g_itemtype,
6620: itemkey => l_parent_itemkey,
6621: activity => l_parent_process||':'||l_activity_label,
6622: result => 'COMPLETE:');
6623: EXCEPTION
6720:
6721: Ams_Utility_Pvt.debug_message('Start :Item Type : '||itemtype
6722: ||' Item key : '||itemkey);
6723:
6724: Wf_Engine.CreateProcess (itemtype => itemtype,
6725: itemkey => itemkey ,
6726: process => p_workflowprocess);
6727:
6728: Wf_Engine.SetItemUserkey(itemtype => itemtype,
6724: Wf_Engine.CreateProcess (itemtype => itemtype,
6725: itemkey => itemkey ,
6726: process => p_workflowprocess);
6727:
6728: Wf_Engine.SetItemUserkey(itemtype => itemtype,
6729: itemkey => itemkey ,
6730: userkey => itemuserkey);
6731:
6732:
6734: Initialize Workflow Item Attributes
6735: *****************************************************************/
6736:
6737:
6738: Wf_Engine.SetItemAttrText(itemtype => itemtype ,
6739: itemkey => itemkey,
6740: aname => 'AMS_DELV_NAME',
6741: avalue => p_deliverable_name );
6742:
6739: itemkey => itemkey,
6740: aname => 'AMS_DELV_NAME',
6741: avalue => p_deliverable_name );
6742:
6743: Wf_Engine.SetItemAttrText(itemtype => itemtype ,
6744: itemkey => itemkey,
6745: aname => 'AMS_DELV_USEDBY_NAME',
6746: avalue => p_usedby_object_name );
6747:
6744: itemkey => itemkey,
6745: aname => 'AMS_DELV_USEDBY_NAME',
6746: avalue => p_usedby_object_name );
6747:
6748: Wf_Engine.SetItemAttrText(itemtype => itemtype ,
6749: itemkey => itemkey,
6750: aname => 'AMS_DELV_USEDBY_TYPE',
6751: avalue => p_usedby_object_type_name );
6752:
6766: RAISE Fnd_Api.G_EXC_ERROR;
6767: END IF;
6768:
6769:
6770: Wf_Engine.SetItemAttrText(itemtype => itemtype,
6771: itemkey => itemkey,
6772: aname => 'AMS_DELV_USER',
6773: avalue => l_delv_user_role );
6774:
6781: RAISE Fnd_Api.G_EXC_ERROR;
6782: END IF;
6783:
6784:
6785: Wf_Engine.SetItemOwner(itemtype => itemtype,
6786: itemkey => itemkey,
6787: owner => l_requester_role);
6788:
6789:
6787: owner => l_requester_role);
6788:
6789:
6790: -- Start the Process
6791: Wf_Engine.StartProcess (itemtype => itemtype,
6792: itemkey => itemkey);
6793:
6794:
6795: EXCEPTION
6827: AND parent_item_key = item_key_in
6828: AND END_DATE IS NULL;
6829:
6830: BEGIN
6831: l_activity_id := Wf_Engine.GetItemAttrNumber(
6832: itemtype => itemtype,
6833: itemkey => itemkey,
6834: aname => 'AMS_ACTIVITY_ID' );
6835:
6833: itemkey => itemkey,
6834: aname => 'AMS_ACTIVITY_ID' );
6835:
6836: -- get the activity type
6837: l_activity_type := Wf_Engine.GetItemAttrText(
6838: itemtype => itemtype,
6839: itemkey => itemkey,
6840: aname => 'AMS_ACTIVITY_TYPE' );
6841:
6838: itemtype => itemtype,
6839: itemkey => itemkey,
6840: aname => 'AMS_ACTIVITY_TYPE' );
6841:
6842: l_approved_currency := Wf_Engine.GetItemAttrText(
6843: itemtype => itemtype,
6844: itemkey => itemkey,
6845: aname => 'AMS_CURRENCY' );
6846:
6875: CLOSE c_find_child;
6876: END IF;
6877: EXCEPTION
6878: WHEN Fnd_Api.G_EXC_ERROR THEN
6879: -- wf_engine.threshold := l_save_threshold ;
6880: Fnd_Msg_Pub.Count_And_Get (
6881: p_encoded => Fnd_Api.G_FALSE,
6882: p_count => l_msg_count,
6883: p_data => l_msg_data);
6917: -- RUN mode
6918: --
6919: IF (funcmode = 'RUN') THEN
6920: -- get the acitvity id
6921: l_activity_id := Wf_Engine.GetItemAttrNumber(
6922: itemtype => itemtype,
6923: itemkey => itemkey,
6924: aname => 'AMS_ACTIVITY_ID' );
6925:
6923: itemkey => itemkey,
6924: aname => 'AMS_ACTIVITY_ID' );
6925:
6926: -- get the activity type
6927: l_activity_type := Wf_Engine.GetItemAttrText(
6928: itemtype => itemtype,
6929: itemkey => itemkey,
6930: aname => 'AMS_ACTIVITY_TYPE' );
6931:
6930: aname => 'AMS_ACTIVITY_TYPE' );
6931:
6932: IF l_activity_type = 'OFFR' THEN
6933:
6934: l_act_budget_id := Wf_Engine.GetItemAttrText(
6935: itemtype => itemtype,
6936: itemkey => itemkey,
6937: aname => 'AMS_ACT_BUDGET_ID' );
6938:
7060: --
7061: IF (funcmode = 'RUN') THEN
7062:
7063: -- Get the Requestor
7064: l_requestor := Wf_Engine.GetItemAttrNumber(itemtype => itemtype,
7065: itemkey => itemkey,
7066: aname => 'AMS_REQUESTER_ID');
7067:
7068: -- Get the Approver
7065: itemkey => itemkey,
7066: aname => 'AMS_REQUESTER_ID');
7067:
7068: -- Get the Approver
7069: l_approver := Wf_Engine.GetItemAttrNumber(itemtype => itemtype,
7070: itemkey => itemkey,
7071: aname => 'AMS_APPROVER_ID');
7072:
7073: IF l_requestor = l_approver THEN
7135: IF (funcmode = 'RUN') THEN
7136: Fnd_Msg_Pub.initialize();
7137:
7138: -- Get the Approver Id
7139: l_approver_id := Wf_Engine.GetItemAttrNumber( itemtype => itemtype,
7140: itemkey => itemkey,
7141: aname => 'AMS_APPROVER_ID' );
7142: -- Get the user id
7143: OPEN res_user_csr (l_approver_id);
7151: IF l_auto_amount > 0 THEN
7152:
7153: -- Get the Budget ID
7154:
7155: l_act_budget_id := Wf_Engine.GetItemAttrNumber( itemtype => itemtype,
7156: itemkey => itemkey,
7157: aname => 'AMS_ACT_BUDGET_ID' );
7158:
7159: IF l_act_budget_id IS NOT NULL THEN
7159: IF l_act_budget_id IS NOT NULL THEN
7160: -- It is a budget line
7161:
7162: -- get the approved line amount that is seen by approver
7163: l_appr_line_amount := Wf_Engine.GetItemAttrNumber( itemtype => itemtype,
7164: itemkey => itemkey,
7165: aname => 'AMS_APPROVED_LINE_AMOUNT');
7166:
7167: IF l_appr_line_amount <= l_auto_amount THEN
7177: ELSE
7178: -- It is not a budget line
7179:
7180: -- Get the Activity Amount
7181: l_activity_amount := Wf_Engine.GetItemAttrNumber( itemtype => itemtype,
7182: itemkey => itemkey,
7183: aname => 'AMS_ACTIVITY_AMOUNT');
7184: IF l_activity_amount > 0 THEN
7185: IF l_activity_amount <= l_auto_amount THEN
7291:
7292: l_appr_hist_rec AMS_Appr_Hist_Pvt.Appr_Hist_Rec_Type;
7293:
7294: BEGIN
7295: l_nid := wf_engine.context_nid;
7296:
7297: IF (funcmode = 'RESPOND') THEN
7298:
7299: l_result := upper(wf_notification.GETATTRTEXT(l_nid, 'RESULT'));
7308:
7309: -- Set the forwarded/transferred notification id so that
7310: -- we can use it later to see actual approver
7311:
7312: l_assignee := WF_ENGINE.context_text;
7313:
7314: -- ams_forward_nid is not really needed.
7315: wf_engine.SetItemAttrNumber(itemtype => itemtype,
7316: itemkey => itemkey,
7311:
7312: l_assignee := WF_ENGINE.context_text;
7313:
7314: -- ams_forward_nid is not really needed.
7315: wf_engine.SetItemAttrNumber(itemtype => itemtype,
7316: itemkey => itemkey,
7317: aname => 'AMS_FORWARD_NID',
7318: avalue => l_nid);
7319:
7326: RAISE Fnd_Api.G_EXC_ERROR;
7327: END IF;
7328:
7329: -- Set the WF Attributes
7330: wf_engine.SetItemAttrText( itemtype => itemtype,
7331: itemkey => itemkey,
7332: aname => 'AMS_APPR_USERNAME',
7333: avalue => l_assignee);
7334:
7331: itemkey => itemkey,
7332: aname => 'AMS_APPR_USERNAME',
7333: avalue => l_assignee);
7334:
7335: wf_engine.SetItemAttrNumber(itemtype => itemtype,
7336: itemkey => itemkey,
7337: aname => 'AMS_APPROVER_ID',
7338: avalue => l_new_approver_id);
7339:
7336: itemkey => itemkey,
7337: aname => 'AMS_APPROVER_ID',
7338: avalue => l_new_approver_id);
7339:
7340: wf_engine.SetItemAttrText( itemtype => itemtype,
7341: itemkey => itemkey,
7342: aname => 'AMS_APPR_DISPLAY_NAME',
7343: avalue => l_appr_display_name);
7344:
7343: avalue => l_appr_display_name);
7344:
7345: -- Update the approver details here
7346:
7347: l_activity_type := Wf_Engine.GetItemAttrText(
7348: itemtype => itemtype,
7349: itemkey => itemkey,
7350: aname => 'AMS_ACTIVITY_TYPE' );
7351:
7348: itemtype => itemtype,
7349: itemkey => itemkey,
7350: aname => 'AMS_ACTIVITY_TYPE' );
7351:
7352: l_act_budget_id := Wf_Engine.GetItemAttrNumber(
7353: itemtype => itemtype,
7354: itemkey => itemkey,
7355: aname => 'AMS_ACT_BUDGET_ID'
7356: );
7354: itemkey => itemkey,
7355: aname => 'AMS_ACT_BUDGET_ID'
7356: );
7357:
7358: l_version := Wf_Engine.GetItemAttrNumber(
7359: itemtype => itemtype,
7360: itemkey => itemkey,
7361: aname => 'AMS_OBJECT_VERSION_NUMBER'
7362: );
7360: itemkey => itemkey,
7361: aname => 'AMS_OBJECT_VERSION_NUMBER'
7362: );
7363:
7364: l_activity_id := Wf_Engine.GetItemAttrNumber(
7365: itemtype => itemtype,
7366: itemkey => itemkey,
7367: aname => 'AMS_ACTIVITY_ID' );
7368:
7365: itemtype => itemtype,
7366: itemkey => itemkey,
7367: aname => 'AMS_ACTIVITY_ID' );
7368:
7369: l_current_seq := Wf_Engine.GetItemAttrText(
7370: itemtype => itemtype,
7371: itemkey => itemkey,
7372: aname => 'AMS_APPROVER_SEQ' );
7373:
7370: itemtype => itemtype,
7371: itemkey => itemkey,
7372: aname => 'AMS_APPROVER_SEQ' );
7373:
7374: l_approval_type := Wf_Engine.GetItemAttrText(
7375: itemtype => itemtype,
7376: itemkey => itemkey,
7377: aname => 'AMS_APPROVAL_TYPE' );
7378:
7455: -- RUN mode
7456: --
7457: IF (funcmode = 'RUN') THEN
7458: -- get the acitvity id
7459: l_activity_id := Wf_Engine.GetItemAttrNumber(
7460: itemtype => itemtype,
7461: itemkey => itemkey,
7462: aname => 'AMS_ACTIVITY_ID' );
7463:
7461: itemkey => itemkey,
7462: aname => 'AMS_ACTIVITY_ID' );
7463:
7464: -- get the activity type
7465: l_activity_type := Wf_Engine.GetItemAttrText(
7466: itemtype => itemtype,
7467: itemkey => itemkey,
7468: aname => 'AMS_ACTIVITY_TYPE' );
7469:
7468: aname => 'AMS_ACTIVITY_TYPE' );
7469:
7470: IF l_activity_type = 'OFFR' THEN
7471:
7472: -- l_act_budget_id := Wf_Engine.GetItemAttrText(
7473: -- itemtype => itemtype,
7474: -- itemkey => itemkey,
7475: -- aname => 'AMS_ACT_BUDGET_ID' );
7476:
7588: IF (funcmode = 'RUN') THEN
7589:
7590: resultout := 'COMPLETE:N';
7591: -- get the activity type
7592: l_activity_type := Wf_Engine.GetItemAttrText(
7593: itemtype => itemtype,
7594: itemkey => itemkey,
7595: aname => 'AMS_ACTIVITY_TYPE' );
7596: IF l_activity_type = 'OFFR' THEN
7595: aname => 'AMS_ACTIVITY_TYPE' );
7596: IF l_activity_type = 'OFFR' THEN
7597:
7598: -- Get the Activity Id
7599: l_activity_id := Wf_Engine.GetItemAttrNumber(
7600: itemtype => itemtype,
7601: itemkey => itemkey,
7602: aname => 'AMS_ACTIVITY_ID' );
7603:
7743: l_process_type varchar2(80);
7744: l_activity_type varchar2(80);
7745: BEGIN
7746:
7747: l_activity_type := wf_engine.GetItemAttrText(
7748: itemtype => itemtype,
7749: itemkey => itemkey,
7750: aname => 'AMS_ACTIVITY_TYPE' );
7751: