13: g_mid_pay_period_change constant varchar2(30) := 'HR_MID_PAY_PERIOD_CHANGE';
14: g_oa_media constant varchar2(100) DEFAULT fnd_web_config.web_server||'OA_MEDIA/';
15: g_oa_html constant varchar2(100) DEFAULT fnd_web_config.jsp_agent;
16:
17: g_debug boolean := hr_utility.debug_enabled;
18: gv_item_name VARCHAR2(100) DEFAULT 'ADDITIONAL_APPROVER_';
19: -- cursor determines if an attribute exists
20: cursor csr_wiav (p_item_type in varchar2
21: ,p_item_key in varchar2
206: begin
207:
208: begin
209: if g_debug then
210: hr_utility.set_location('querying hr_api_transactions.item_type for p_transaction_id:'||p_transaction_id, 2);
211: end if;
212: select t.item_type
213: into c_item_type
214: from hr_api_transactions t
216: exception
217: when no_data_found then
218: -- get the data from the steps
219: if g_debug then
220: hr_utility.set_location('querying hr_api_transaction_steps.item_type for p_transaction_id:'||p_transaction_id, 2);
221: end if;
222: select ts.item_type
223: into get_item_type.c_item_type
224: from hr_api_transaction_steps ts
250: begin
251:
252: begin
253: if g_debug then
254: hr_utility.set_location('querying hr_api_transactions.item_type for p_transaction_id:'||p_transaction_id, 2);
255: end if;
256: select t.item_key
257: into get_item_key.c_item_key
258: from hr_api_transactions t
260: exception
261: when no_data_found then
262: -- get the data from the steps
263: if g_debug then
264: hr_utility.set_location('querying hr_api_transaction_steps.item_type for p_transaction_id:'||p_transaction_id, 2);
265: end if;
266: select ts.item_key
267: into get_item_key.c_item_key
268: from hr_api_transaction_steps ts
1111: c_proc varchar2(30) default 'GetActivityAttrText';
1112:
1113:
1114: begin
1115: g_debug := hr_utility.debug_enabled;
1116:
1117: if g_debug then
1118: hr_utility.set_location('Entering:'|| g_package||'.'||c_proc, 1);
1119: end if;
1114: begin
1115: g_debug := hr_utility.debug_enabled;
1116:
1117: if g_debug then
1118: hr_utility.set_location('Entering:'|| g_package||'.'||c_proc, 1);
1119: end if;
1120:
1121:
1122: if(ignore_notfound='TRUE') then
1120:
1121:
1122: if(ignore_notfound='TRUE') then
1123: if g_debug then
1124: hr_utility.set_location('calling WF_ENGINE.GetActivityAttrText ', 2);
1125: end if;
1126: return WF_ENGINE.GetActivityAttrText(itemtype=>itemtype,
1127: itemkey=>itemkey,
1128: actid=>actid,
1129: aname=>aname,
1130: ignore_notfound=>TRUE);
1131: elsif (ignore_notfound='FALSE') then
1132: if g_debug then
1133: hr_utility.set_location('calling WF_ENGINE.GetActivityAttrText ', 2);
1134: end if;
1135:
1136: return WF_ENGINE.GetActivityAttrText(itemtype=>itemtype,
1137: itemkey=>itemkey,
1157: return date is
1158: c_proc varchar2(30) default 'GetActivityAttrDate';
1159:
1160: begin
1161: g_debug := hr_utility.debug_enabled;
1162:
1163: if g_debug then
1164: hr_utility.set_location('Entering:'|| g_package||'.'||c_proc, 1);
1165: end if;
1160: begin
1161: g_debug := hr_utility.debug_enabled;
1162:
1163: if g_debug then
1164: hr_utility.set_location('Entering:'|| g_package||'.'||c_proc, 1);
1165: end if;
1166:
1167: if(ignore_notfound='TRUE') then
1168: if g_debug then
1165: end if;
1166:
1167: if(ignore_notfound='TRUE') then
1168: if g_debug then
1169: hr_utility.set_location('calling WF_ENGINE.GetActivityAttrDate ', 2);
1170: end if;
1171: return WF_ENGINE.GetActivityAttrDate(itemtype=>itemtype,
1172: itemkey=>itemkey,
1173: actid=>actid,
1174: aname=>aname,
1175: ignore_notfound=>TRUE);
1176: elsif (ignore_notfound='FALSE') then
1177: if g_debug then
1178: hr_utility.set_location('calling WF_ENGINE.GetActivityAttrDate ', 2);
1179: end if;
1180: return WF_ENGINE.GetActivityAttrDate(itemtype=>itemtype,
1181: itemkey=>itemkey,
1182: actid=>actid,
1203: return number is
1204: c_proc varchar2(30) default 'GetActivityAttrNumber';
1205:
1206: begin
1207: g_debug := hr_utility.debug_enabled;
1208:
1209: if g_debug then
1210: hr_utility.set_location('Entering:'|| g_package||'.'||c_proc, 1);
1211: end if;
1206: begin
1207: g_debug := hr_utility.debug_enabled;
1208:
1209: if g_debug then
1210: hr_utility.set_location('Entering:'|| g_package||'.'||c_proc, 1);
1211: end if;
1212:
1213: if(ignore_notfound='TRUE') then
1214: if g_debug then
1211: end if;
1212:
1213: if(ignore_notfound='TRUE') then
1214: if g_debug then
1215: hr_utility.set_location('calling WF_ENGINE.GetActivityAttrNumber ', 2);
1216: end if;
1217: return WF_ENGINE.GetActivityAttrNumber(itemtype=>itemtype,
1218: itemkey=>itemkey,
1219: actid=>actid,
1220: aname=>aname,
1221: ignore_notfound=>TRUE);
1222: elsif (ignore_notfound='FALSE') then
1223: if g_debug then
1224: hr_utility.set_location('calling WF_ENGINE.GetActivityAttrNumber ', 2);
1225: end if;
1226:
1227: return WF_ENGINE.GetActivityAttrNumber(itemtype=>itemtype,
1228: itemkey=>itemkey,
1254: lv_page_type wf_item_attribute_values.text_value%type;
1255: ln_page_applicationId wf_item_attribute_values.number_value%type;
1256: lv_additional_params wf_item_attribute_values.text_value%type;
1257: BEGIN
1258: hr_utility.set_location(lv_procedure_name,1);
1259: if(hr_utility.debug_enabled) then
1260: -- write debug statements
1261: hr_utility.set_location('Entered'||lv_procedure_name||'with itemtype:'||p_item_type, 2);
1262: hr_utility.set_location('Entered'||lv_procedure_name||'with itemkey:'||p_item_key, 2);
1255: ln_page_applicationId wf_item_attribute_values.number_value%type;
1256: lv_additional_params wf_item_attribute_values.text_value%type;
1257: BEGIN
1258: hr_utility.set_location(lv_procedure_name,1);
1259: if(hr_utility.debug_enabled) then
1260: -- write debug statements
1261: hr_utility.set_location('Entered'||lv_procedure_name||'with itemtype:'||p_item_type, 2);
1262: hr_utility.set_location('Entered'||lv_procedure_name||'with itemkey:'||p_item_key, 2);
1263: end if;
1257: BEGIN
1258: hr_utility.set_location(lv_procedure_name,1);
1259: if(hr_utility.debug_enabled) then
1260: -- write debug statements
1261: hr_utility.set_location('Entered'||lv_procedure_name||'with itemtype:'||p_item_type, 2);
1262: hr_utility.set_location('Entered'||lv_procedure_name||'with itemkey:'||p_item_key, 2);
1263: end if;
1264: -- get the activity id for blocked page activity
1265: -- activity used for page should have activity attribute
1258: hr_utility.set_location(lv_procedure_name,1);
1259: if(hr_utility.debug_enabled) then
1260: -- write debug statements
1261: hr_utility.set_location('Entered'||lv_procedure_name||'with itemtype:'||p_item_type, 2);
1262: hr_utility.set_location('Entered'||lv_procedure_name||'with itemkey:'||p_item_key, 2);
1263: end if;
1264: -- get the activity id for blocked page activity
1265: -- activity used for page should have activity attribute
1266: -- of type 'FORM'
1264: -- get the activity id for blocked page activity
1265: -- activity used for page should have activity attribute
1266: -- of type 'FORM'
1267: begin
1268: if(hr_utility.debug_enabled) then
1269: -- write debug statements
1270: hr_utility.set_location('Querying WF_ITEM_ACTIVITY_STATUSES for notified activity of type FORM'||lv_procedure_name||'with itemtype:', 3);
1271: end if;
1272:
1266: -- of type 'FORM'
1267: begin
1268: if(hr_utility.debug_enabled) then
1269: -- write debug statements
1270: hr_utility.set_location('Querying WF_ITEM_ACTIVITY_STATUSES for notified activity of type FORM'||lv_procedure_name||'with itemtype:', 3);
1271: end if;
1272:
1273: -- Fix for bug 3719338
1274: SELECT process_activity
1301: where rownum<=1;
1302:
1303: exception
1304: when no_data_found then
1305: if(hr_utility.debug_enabled) then
1306: -- write debug statements
1307: hr_utility.set_location('no notified activity found in WF_ITEM_ACTIVITY_STATUSES of type FORM for itemtype:'|| p_item_type||' and item key:'||p_item_key, 4);
1308: end if;
1309: ln_activityId := null;
1303: exception
1304: when no_data_found then
1305: if(hr_utility.debug_enabled) then
1306: -- write debug statements
1307: hr_utility.set_location('no notified activity found in WF_ITEM_ACTIVITY_STATUSES of type FORM for itemtype:'|| p_item_type||' and item key:'||p_item_key, 4);
1308: end if;
1309: ln_activityId := null;
1310: when others then
1311: ln_activityId := null;
1309: ln_activityId := null;
1310: when others then
1311: ln_activityId := null;
1312: fnd_message.set_name('PER', SQLERRM ||' '||to_char(SQLCODE));
1313: hr_utility.raise_error;
1314: end;
1315:
1316: if(ln_activityId is not null) then
1317: -- we have a blocked page activity in the wf root process
1315:
1316: if(ln_activityId is not null) then
1317: -- we have a blocked page activity in the wf root process
1318: -- get the activity attribute values
1319: if(hr_utility.debug_enabled) then
1320: -- write debug statements
1321: hr_utility.set_location('getting activity attributes for activity id:'||ln_activityId ||', itemtype:'|| p_item_type||' and item key:'||p_item_key, 5);
1322: end if;
1323: lv_page := wf_engine.GetActivityAttrText(
1317: -- we have a blocked page activity in the wf root process
1318: -- get the activity attribute values
1319: if(hr_utility.debug_enabled) then
1320: -- write debug statements
1321: hr_utility.set_location('getting activity attributes for activity id:'||ln_activityId ||', itemtype:'|| p_item_type||' and item key:'||p_item_key, 5);
1322: end if;
1323: lv_page := wf_engine.GetActivityAttrText(
1324: itemtype => p_item_type
1325: ,itemkey => p_item_key
1352: p_page_applicationId :=ln_page_applicationId;
1353: p_additional_params := lv_additional_params;
1354: else
1355: -- there is no blocked page activity, check for additional details
1356: if(hr_utility.debug_enabled) then
1357: -- write debug statements
1358: hr_utility.set_location(' itemtype:'|| p_item_type||' and item key:'||p_item_key, 6);
1359: p_activityId :='0'; -- fix for bug 3823494
1360: end if;
1354: else
1355: -- there is no blocked page activity, check for additional details
1356: if(hr_utility.debug_enabled) then
1357: -- write debug statements
1358: hr_utility.set_location(' itemtype:'|| p_item_type||' and item key:'||p_item_key, 6);
1359: p_activityId :='0'; -- fix for bug 3823494
1360: end if;
1361: end if;
1362:
1359: p_activityId :='0'; -- fix for bug 3823494
1360: end if;
1361: end if;
1362:
1363: if(hr_utility.debug_enabled) then
1364: -- write debug statements
1365: hr_utility.set_location('Leaving '||lv_procedure_name||'with itemtype:'||p_item_type, 10);
1366: end if;
1367:
1361: end if;
1362:
1363: if(hr_utility.debug_enabled) then
1364: -- write debug statements
1365: hr_utility.set_location('Leaving '||lv_procedure_name||'with itemtype:'||p_item_type, 10);
1366: end if;
1367:
1368: EXCEPTION
1369: WHEN OTHERS THEN
1367:
1368: EXCEPTION
1369: WHEN OTHERS THEN
1370: fnd_message.set_name('PER', SQLERRM ||' '||to_char(SQLCODE));
1371: hr_utility.raise_error;
1372: END getPageDetails;
1373:
1374: function GetItemAttrText(itemtype in varchar2,
1375: itemkey in varchar2,
1379: c_proc varchar2(30) default 'GetItemAttrText';
1380:
1381:
1382: begin
1383: g_debug := hr_utility.debug_enabled;
1384:
1385: if g_debug then
1386: hr_utility.set_location('Entering:'|| g_package||'.'||c_proc, 1);
1387: end if;
1382: begin
1383: g_debug := hr_utility.debug_enabled;
1384:
1385: if g_debug then
1386: hr_utility.set_location('Entering:'|| g_package||'.'||c_proc, 1);
1387: end if;
1388:
1389:
1390: if(ignore_notfound='TRUE') then
1388:
1389:
1390: if(ignore_notfound='TRUE') then
1391: if g_debug then
1392: hr_utility.set_location('calling WF_ENGINE.GetItemAttrText ', 2);
1393: end if;
1394: return WF_ENGINE.GetItemAttrText(itemtype=>itemtype,
1395: itemkey=>itemkey,
1396: aname=>aname,
1396: aname=>aname,
1397: ignore_notfound=>TRUE);
1398: elsif (ignore_notfound='FALSE') then
1399: if g_debug then
1400: hr_utility.set_location('calling WF_ENGINE.GetItemAttrText ', 2);
1401: end if;
1402:
1403: return WF_ENGINE.GetItemAttrText(itemtype=>itemtype,
1404: itemkey=>itemkey,
1422: lv_item_type wf_item_activity_statuses.item_type%type;
1423: lv_item_key wf_item_activity_statuses.item_key%type;
1424: lv_activity_id wf_item_activity_statuses.process_activity%type;
1425: begin
1426: g_debug := hr_utility.debug_enabled;
1427: if g_debug then
1428: hr_utility.set_location('Entering:'|| g_package||'.'||c_proc, 1);
1429: end if;
1430:
1424: lv_activity_id wf_item_activity_statuses.process_activity%type;
1425: begin
1426: g_debug := hr_utility.debug_enabled;
1427: if g_debug then
1428: hr_utility.set_location('Entering:'|| g_package||'.'||c_proc, 1);
1429: end if;
1430:
1431: -- get the itemtype and item key for the notification id
1432: begin
1444: from wf_notifications
1445: where notification_id = p_ntfid;
1446: exception
1447: when no_data_found then
1448: hr_utility.set_location('Error in '|| g_package||'.'||c_proc ||SQLERRM ||' '||to_char(SQLCODE), 20);
1449: raise;
1450: when others then
1451: raise;
1452: end;
1458: p_itemKey := lv_item_key;
1459:
1460: exception
1461: when others then
1462: hr_utility.set_location('hr_workflow_ss.get_item_type_and_key errored : '||SQLERRM ||' '||to_char(SQLCODE), 30);
1463: Wf_Core.Context('hr_workflow_ss', 'get_item_type_and_key', p_ntfId);
1464: raise;
1465: end get_item_type_and_key;
1466:
1488: lv_ntf_due WF_NOTIFICATIONS.DUE_DATE%type;
1489: lv_ntf_status WF_NOTIFICATIONS.STATUS%type;
1490:
1491: begin
1492: g_debug := hr_utility.debug_enabled;
1493: if g_debug then
1494: hr_utility.set_location('Entering:'|| g_package||'.'||c_proc, 1);
1495: end if;
1496:
1490:
1491: begin
1492: g_debug := hr_utility.debug_enabled;
1493: if g_debug then
1494: hr_utility.set_location('Entering:'|| g_package||'.'||c_proc, 1);
1495: end if;
1496:
1497: -- fix for bug#3333763
1498: -- check the status of the notification before doing any iterations.
1512: -- check if the workflow process has been configured to
1513: --restrict edit to transaction owner/creator
1514: -- HR_RESTRICT_EDIT_ATTR
1515: if g_debug then
1516: hr_utility.set_location('querying wf_engine.GetItemAttrText for HR_RESTRICT_EDIT_ATTR with itemtype:itemkey '||lv_item_type||':'||lv_item_key, 2);
1517: end if;
1518:
1519: lv_restrict_edit_to_owner :=wf_engine.GetItemAttrText(itemtype=>lv_item_type,
1520: itemkey=>lv_item_key,
1520: itemkey=>lv_item_key,
1521: aname=>'HR_RESTRICT_EDIT_ATTR',
1522: ignore_notfound=>TRUE);
1523: if g_debug then
1524: hr_utility.set_location('HR_RESTRICT_EDIT_ATTR value:'||lv_restrict_edit_to_owner,3);
1525: end if;
1526:
1527: if(lv_restrict_edit_to_owner='Y') then
1528: hr_utility.set_location('process configured to restrict edit to owner/creator, no edit so returning',4);
1524: hr_utility.set_location('HR_RESTRICT_EDIT_ATTR value:'||lv_restrict_edit_to_owner,3);
1525: end if;
1526:
1527: if(lv_restrict_edit_to_owner='Y') then
1528: hr_utility.set_location('process configured to restrict edit to owner/creator, no edit so returning',4);
1529: -- get the current login user name and compare with the creator user name
1530: if(fnd_global.USER_NAME=wf_engine.GetItemAttrText(itemtype=>lv_item_type,
1531: itemkey=>lv_item_key,
1532: aname=>'CREATOR_PERSON_USERNAME',
1584: from fnd_form_functions_vl
1585: where function_name=lv_pageFunc;
1586: exception
1587: when no_data_found then
1588: hr_utility.set_location('Unable to retrieve function details,web_html_call and parameters for:'||lv_pageFunc||' '|| g_package||'.'||c_proc, 10);
1589: when others then
1590: raise;
1591: end;
1592: -- set the out variables
1603: document := null;
1604: end if;
1605:
1606: if g_debug then
1607: hr_utility.set_location('Leaving:'|| g_package||'.'||c_proc, 30);
1608: end if;
1609:
1610: exception
1611: when others then
1610: exception
1611: when others then
1612: document := null;
1613: document_type :=null;
1614: hr_utility.set_location('hr_workflow_ss.build_edit_link errored : '||SQLERRM ||' '||to_char(SQLCODE), 20);
1615: Wf_Core.Context('hr_workflow_ss', 'build_edit_link', document_id, display_type);
1616: raise;
1617: end build_edit_link;
1618:
1624: return number is
1625: c_proc varchar2(30) default 'GetAttrNumber';
1626: lvalue wf_notification_attributes.NUMBER_VALUE%type;
1627: begin
1628: g_debug := hr_utility.debug_enabled;
1629:
1630: if g_debug then
1631: hr_utility.set_location('Entering:'|| g_package||'.'||c_proc, 1);
1632: end if;
1627: begin
1628: g_debug := hr_utility.debug_enabled;
1629:
1630: if g_debug then
1631: hr_utility.set_location('Entering:'|| g_package||'.'||c_proc, 1);
1632: end if;
1633: if ((nid is null) or (aname is null)) then
1634: wf_core.token('NID', to_char(nid));
1635: wf_core.token('ANAME', aname);
1637: end if;
1638:
1639: begin
1640: if g_debug then
1641: hr_utility.set_location('querying wf_notification_attributes.number_value for aname:nid'||aname||':'||nid, 2);
1642: end if;
1643: select WNA.NUMBER_VALUE
1644: into lvalue
1645: from WF_NOTIFICATION_ATTRIBUTES WNA
1658: return(lvalue);
1659: exception
1660: when others then
1661: wf_core.context('hr_workflow_ss', 'GetAttrNumber', to_char(nid), aname);
1662: hr_utility.set_location('Error querying wf_notification_attributes.NUMBER_VALUE for aname:nid'||aname||':'||nid||'-'||SQLERRM ||' '||to_char(SQLCODE), 10);
1663: raise;
1664: end GetAttrNumber;
1665:
1666: function GetAttrText (nid in number,
1669: return varchar2 is
1670: c_proc varchar2(30) default 'GetAttrText';
1671: lvalue wf_notification_attributes.text_value%type;
1672: begin
1673: g_debug := hr_utility.debug_enabled;
1674:
1675: if g_debug then
1676: hr_utility.set_location('Entering:'|| g_package||'.'||c_proc, 1);
1677: end if;
1672: begin
1673: g_debug := hr_utility.debug_enabled;
1674:
1675: if g_debug then
1676: hr_utility.set_location('Entering:'|| g_package||'.'||c_proc, 1);
1677: end if;
1678: if ((nid is null) or (aname is null)) then
1679: wf_core.token('NID', to_char(nid));
1680: wf_core.token('ANAME', aname);
1682: end if;
1683:
1684: begin
1685: if g_debug then
1686: hr_utility.set_location('querying wf_notification_attributes.text_value for aname:nid'||aname||':'||nid, 2);
1687: end if;
1688: select WNA.TEXT_VALUE
1689: into lvalue
1690: from WF_NOTIFICATION_ATTRIBUTES WNA
1703: return(lvalue);
1704: exception
1705: when others then
1706: wf_core.context('hr_workflow_ss', 'GetAttrText', to_char(nid), aname);
1707: hr_utility.set_location('Error querying wf_notification_attributes.text_value for aname:nid'||aname||':'||nid||'-'||SQLERRM ||' '||to_char(SQLCODE), 10);
1708: raise;
1709: end GetAttrText;
1710:
1711: function getApprStartingPointPersonId
1752: end;
1753: end if;
1754: exception
1755: when others then
1756: hr_utility.trace(' exception in checking the hr_api_transactions.transaction_ref_table:'||
1757: 'rollback_transaction'||' : ' || sqlerrm);
1758: -- just log the message no need to raise it
1759: end;
1760:
1780: dynamicQuery varchar2(4000) default null;
1781: queryProcedure varchar2(4000) default 'pqh_ss_workflow.set_transaction_status';
1782: actionStatus varchar2(3) default 'SFL';
1783: begin
1784: g_debug := hr_utility.debug_enabled;
1785:
1786: if g_debug then
1787: hr_utility.set_location('Entering:'|| g_package||'.'||c_proc, 10);
1788: end if;
1783: begin
1784: g_debug := hr_utility.debug_enabled;
1785:
1786: if g_debug then
1787: hr_utility.set_location('Entering:'|| g_package||'.'||c_proc, 10);
1788: end if;
1789:
1790: -- fix for bug 4454439
1791: begin
1803:
1804: if ( funmode = wf_engine.eng_run ) then
1805: -- code to update status and history
1806: if g_debug then
1807: hr_utility.set_location('Calling queryProcedure: '||queryProcedure, 20);
1808: hr_utility.set_location('itemType: '|| itemType, 21);
1809: hr_utility.set_location('itemKey: '|| itemKey, 22);
1810: hr_utility.set_location('actId: '|| actId, 23);
1811: end if;
1804: if ( funmode = wf_engine.eng_run ) then
1805: -- code to update status and history
1806: if g_debug then
1807: hr_utility.set_location('Calling queryProcedure: '||queryProcedure, 20);
1808: hr_utility.set_location('itemType: '|| itemType, 21);
1809: hr_utility.set_location('itemKey: '|| itemKey, 22);
1810: hr_utility.set_location('actId: '|| actId, 23);
1811: end if;
1812:
1805: -- code to update status and history
1806: if g_debug then
1807: hr_utility.set_location('Calling queryProcedure: '||queryProcedure, 20);
1808: hr_utility.set_location('itemType: '|| itemType, 21);
1809: hr_utility.set_location('itemKey: '|| itemKey, 22);
1810: hr_utility.set_location('actId: '|| actId, 23);
1811: end if;
1812:
1813: dynamicQuery :=
1806: if g_debug then
1807: hr_utility.set_location('Calling queryProcedure: '||queryProcedure, 20);
1808: hr_utility.set_location('itemType: '|| itemType, 21);
1809: hr_utility.set_location('itemKey: '|| itemKey, 22);
1810: hr_utility.set_location('actId: '|| actId, 23);
1811: end if;
1812:
1813: dynamicQuery :=
1814: 'begin ' ||
1821: in actId,
1822: in actionStatus,
1823: out result;
1824: if g_debug then
1825: hr_utility.set_location('After queryProcedure: '||queryProcedure, 40);
1826: hr_utility.set_location('result: '|| result, 41);
1827: end if;
1828:
1829:
1822: in actionStatus,
1823: out result;
1824: if g_debug then
1825: hr_utility.set_location('After queryProcedure: '||queryProcedure, 40);
1826: hr_utility.set_location('result: '|| result, 41);
1827: end if;
1828:
1829:
1830: --
1830: --
1831: elsif ( funmode = wf_engine.eng_cancel ) then
1832: --
1833: if g_debug then
1834: hr_utility.set_location(g_package ||'.updateSFLTransaction called in funmode:'||funmode, 50);
1835: hr_utility.set_location('itemType: '|| itemType, 51);
1836: hr_utility.set_location('itemKey: '|| itemKey, 52);
1837: hr_utility.set_location('actId: '|| actId, 53);
1838: end if;
1831: elsif ( funmode = wf_engine.eng_cancel ) then
1832: --
1833: if g_debug then
1834: hr_utility.set_location(g_package ||'.updateSFLTransaction called in funmode:'||funmode, 50);
1835: hr_utility.set_location('itemType: '|| itemType, 51);
1836: hr_utility.set_location('itemKey: '|| itemKey, 52);
1837: hr_utility.set_location('actId: '|| actId, 53);
1838: end if;
1839: end if;
1832: --
1833: if g_debug then
1834: hr_utility.set_location(g_package ||'.updateSFLTransaction called in funmode:'||funmode, 50);
1835: hr_utility.set_location('itemType: '|| itemType, 51);
1836: hr_utility.set_location('itemKey: '|| itemKey, 52);
1837: hr_utility.set_location('actId: '|| actId, 53);
1838: end if;
1839: end if;
1840:
1833: if g_debug then
1834: hr_utility.set_location(g_package ||'.updateSFLTransaction called in funmode:'||funmode, 50);
1835: hr_utility.set_location('itemType: '|| itemType, 51);
1836: hr_utility.set_location('itemKey: '|| itemKey, 52);
1837: hr_utility.set_location('actId: '|| actId, 53);
1838: end if;
1839: end if;
1840:
1841: EXCEPTION
1840:
1841: EXCEPTION
1842: WHEN OTHERS THEN
1843: WF_CORE.CONTEXT(g_package,'.updateSFLTransaction',itemtype,itemkey,funmode);
1844: hr_utility.set_location(''||SQLERRM ||' '||to_char(SQLCODE), 100);
1845: RAISE;
1846:
1847:
1848: end updateSFLTransaction;
1857: lv_ntf_sub_msg wf_item_attribute_values.text_value%type;
1858:
1859: begin
1860: if g_debug then
1861: hr_utility.set_location('Entering:'|| g_package||'.'||c_proc, 10);
1862: end if;
1863: if g_debug then
1864: hr_utility.set_location('Querying wf_runnable_processes_v',11);
1865: hr_utility.set_location('ItemType:'||itemtype,12);
1860: if g_debug then
1861: hr_utility.set_location('Entering:'|| g_package||'.'||c_proc, 10);
1862: end if;
1863: if g_debug then
1864: hr_utility.set_location('Querying wf_runnable_processes_v',11);
1865: hr_utility.set_location('ItemType:'||itemtype,12);
1866: hr_utility.set_location('ItemKey:'||itemkey,13);
1867: end if;
1868:
1861: hr_utility.set_location('Entering:'|| g_package||'.'||c_proc, 10);
1862: end if;
1863: if g_debug then
1864: hr_utility.set_location('Querying wf_runnable_processes_v',11);
1865: hr_utility.set_location('ItemType:'||itemtype,12);
1866: hr_utility.set_location('ItemKey:'||itemkey,13);
1867: end if;
1868:
1869: begin
1862: end if;
1863: if g_debug then
1864: hr_utility.set_location('Querying wf_runnable_processes_v',11);
1865: hr_utility.set_location('ItemType:'||itemtype,12);
1866: hr_utility.set_location('ItemKey:'||itemkey,13);
1867: end if;
1868:
1869: begin
1870: lv_ntf_sub_msg := wf_engine.GetItemAttrText(itemtype => itemtype ,
1887: when others then
1888: getProcessDisplayName.lv_display_name := itemtype||':'||itemkey;
1889: end;
1890: if g_debug then
1891: hr_utility.set_location('Leaving:'|| g_package||'.'||c_proc, 20);
1892: end if;
1893:
1894: return getProcessDisplayName.lv_display_name;
1895: exception
1907: lv_item_type wf_item_activity_statuses.item_type%type;
1908: lv_item_key wf_item_activity_statuses.item_key%type;
1909:
1910: begin
1911: g_debug := hr_utility.debug_enabled;
1912: if g_debug then
1913: hr_utility.set_location('Entering:'|| g_package||'.'||c_proc, 1);
1914: end if;
1915:
1909:
1910: begin
1911: g_debug := hr_utility.debug_enabled;
1912: if g_debug then
1913: hr_utility.set_location('Entering:'|| g_package||'.'||c_proc, 1);
1914: end if;
1915:
1916: if g_debug then
1917: hr_utility.set_location('Calling hr_workflow_ss.get_item_type_and_key for NtfId:'||document_id, 11);
1913: hr_utility.set_location('Entering:'|| g_package||'.'||c_proc, 1);
1914: end if;
1915:
1916: if g_debug then
1917: hr_utility.set_location('Calling hr_workflow_ss.get_item_type_and_key for NtfId:'||document_id, 11);
1918: end if;
1919: -- get the itemtype and item key for the notification id
1920: hr_workflow_ss.get_item_type_and_key(document_id,lv_item_type,lv_item_key);
1921: -- set the document type
1921: -- set the document type
1922: document_type := wf_notification.doc_html;
1923: -- set the document
1924: if g_debug then
1925: hr_utility.set_location('Calling getProcessDisplayName',12);
1926: hr_utility.set_location('ItemType:'||lv_item_type,13);
1927: hr_utility.set_location('ItemKey:'||lv_item_key,14);
1928: end if;
1929: document := hr_workflow_ss.getProcessDisplayName(lv_item_type,lv_item_key);
1922: document_type := wf_notification.doc_html;
1923: -- set the document
1924: if g_debug then
1925: hr_utility.set_location('Calling getProcessDisplayName',12);
1926: hr_utility.set_location('ItemType:'||lv_item_type,13);
1927: hr_utility.set_location('ItemKey:'||lv_item_key,14);
1928: end if;
1929: document := hr_workflow_ss.getProcessDisplayName(lv_item_type,lv_item_key);
1930:
1923: -- set the document
1924: if g_debug then
1925: hr_utility.set_location('Calling getProcessDisplayName',12);
1926: hr_utility.set_location('ItemType:'||lv_item_type,13);
1927: hr_utility.set_location('ItemKey:'||lv_item_key,14);
1928: end if;
1929: document := hr_workflow_ss.getProcessDisplayName(lv_item_type,lv_item_key);
1930:
1931: if g_debug then
1928: end if;
1929: document := hr_workflow_ss.getProcessDisplayName(lv_item_type,lv_item_key);
1930:
1931: if g_debug then
1932: hr_utility.set_location('Leaving:'|| g_package||'.'||c_proc, 30);
1933: end if;
1934:
1935: exception
1936: when others then
1934:
1935: exception
1936: when others then
1937: document :=null;
1938: hr_utility.set_location('hr_workflow_ss.getProcessDisplayName errored : '||SQLERRM ||' '||to_char(SQLCODE), 20);
1939: Wf_Core.Context('hr_workflow_ss', 'getProcessDisplayName', document_id, display_type);
1940: raise;
1941: end getProcessDisplayName;
1942:
1960: lv_custom_callBack varchar2(60);
1961: l_sqlbuf Varchar2(1000);
1962:
1963: begin
1964: g_debug := hr_utility.debug_enabled;
1965: if g_debug then
1966: hr_utility.set_location('Entering:'|| g_package||'.'||c_proc, 10);
1967: end if;
1968:
1962:
1963: begin
1964: g_debug := hr_utility.debug_enabled;
1965: if g_debug then
1966: hr_utility.set_location('Entering:'|| g_package||'.'||c_proc, 10);
1967: end if;
1968:
1969: -- check if we have custom callback for the Approval Ntf subject
1970: --
1987: End If;
1988: exception
1989: when others then
1990: document :=null;
1991: hr_utility.set_location('hr_workflow_ss.getApprovalMsgSubject errored for custom call: '||SQLERRM ||' '||to_char(SQLCODE), 100);
1992: Wf_Core.Context('hr_workflow_ss', 'getApprovalMsgSubject', document_id, display_type);
1993: raise;
1994: end;
1995:
1996:
1997:
1998: -- get the itemtype and item key for the notification id
1999: if g_debug then
2000: hr_utility.set_location('Calling hr_workflow_ss.get_item_type_and_key for NtfId:'||document_id, 11);
2001: end if;
2002: hr_workflow_ss.get_item_type_and_key(document_id,lv_item_type,lv_item_key);
2003:
2004: -- get the process display name
2002: hr_workflow_ss.get_item_type_and_key(document_id,lv_item_type,lv_item_key);
2003:
2004: -- get the process display name
2005: if g_debug then
2006: hr_utility.set_location('Calling getProcessDisplayName',12);
2007: hr_utility.set_location('ItemType:'||lv_item_type,13);
2008: hr_utility.set_location('ItemKey:'||lv_item_key,14);
2009: end if;
2010: -- lv_process_display_name := hr_workflow_ss.getProcessDisplayName(lv_item_type,lv_item_key);
2003:
2004: -- get the process display name
2005: if g_debug then
2006: hr_utility.set_location('Calling getProcessDisplayName',12);
2007: hr_utility.set_location('ItemType:'||lv_item_type,13);
2008: hr_utility.set_location('ItemKey:'||lv_item_key,14);
2009: end if;
2010: -- lv_process_display_name := hr_workflow_ss.getProcessDisplayName(lv_item_type,lv_item_key);
2011:
2004: -- get the process display name
2005: if g_debug then
2006: hr_utility.set_location('Calling getProcessDisplayName',12);
2007: hr_utility.set_location('ItemType:'||lv_item_type,13);
2008: hr_utility.set_location('ItemKey:'||lv_item_key,14);
2009: end if;
2010: -- lv_process_display_name := hr_workflow_ss.getProcessDisplayName(lv_item_type,lv_item_key);
2011:
2012: lv_ntf_sub_msg := wf_engine.GetItemAttrText(itemtype => lv_item_type ,
2032: (itemtype => lv_item_type
2033: ,itemkey => lv_item_key
2034: ,aname => 'CURRENT_PERSON_ID');
2035: if g_debug then
2036: hr_utility.set_location('Creator_person_id:'||l_creator_person_id,15);
2037: hr_utility.set_location('Current_person_id:'||l_current_person_id,16);
2038: end if;
2039: if g_debug then
2040: hr_utility.set_location('Building subject for NtfId:'||document_id,17);
2033: ,itemkey => lv_item_key
2034: ,aname => 'CURRENT_PERSON_ID');
2035: if g_debug then
2036: hr_utility.set_location('Creator_person_id:'||l_creator_person_id,15);
2037: hr_utility.set_location('Current_person_id:'||l_current_person_id,16);
2038: end if;
2039: if g_debug then
2040: hr_utility.set_location('Building subject for NtfId:'||document_id,17);
2041: end if;
2036: hr_utility.set_location('Creator_person_id:'||l_creator_person_id,15);
2037: hr_utility.set_location('Current_person_id:'||l_current_person_id,16);
2038: end if;
2039: if g_debug then
2040: hr_utility.set_location('Building subject for NtfId:'||document_id,17);
2041: end if;
2042: if(l_creator_person_id=l_current_person_id) then
2043: if g_debug then
2044: hr_utility.set_location('calling wf_directory.GetUserName for person_id:'||l_creator_person_id,18);
2040: hr_utility.set_location('Building subject for NtfId:'||document_id,17);
2041: end if;
2042: if(l_creator_person_id=l_current_person_id) then
2043: if g_debug then
2044: hr_utility.set_location('calling wf_directory.GetUserName for person_id:'||l_creator_person_id,18);
2045: end if;
2046:
2047: -- get creator display name from role
2048: wf_directory.GetUserName
2056: end if;
2057: -- Subject pattern
2058: -- "Change Job for Doe, John "
2059: if g_debug then
2060: hr_utility.set_location('Getting message HR_SS_APPROVER_MSG_SUB_SELF',19);
2061: end if;
2062: fnd_message.set_name('PER','HR_SS_APPROVER_MSG_SUB_SELF');
2063: fnd_message.set_token('PROCESS_DISPLAY_NAME',lv_process_display_name,false);
2064: fnd_message.set_token('CURRENT_PERSON_DISPLAY_NAME',l_creator_disp_name,false);
2066:
2067: else
2068: -- get creator display name from role
2069: if g_debug then
2070: hr_utility.set_location('calling wf_directory.GetUserName for person_id:'||l_creator_person_id,20);
2071: end if;
2072: wf_directory.GetUserName
2073: (p_orig_system => 'PER'
2074: ,p_orig_system_id => l_creator_person_id
2076: ,p_display_name => l_creator_disp_name);
2077:
2078: -- get current person display name from role
2079: if g_debug then
2080: hr_utility.set_location('calling wf_directory.GetUserName for person_id:'||l_current_person_id,21);
2081: end if;
2082: wf_directory.GetUserName
2083: (p_orig_system => 'PER'
2084: ,p_orig_system_id => l_current_person_id
2112:
2113: -- Subject pattern
2114: -- "Change Job for Doe, John (proposed by Bond, James)"
2115: if g_debug then
2116: hr_utility.set_location('Getting message HR_SS_APPROVER_MSG_SUB_REPORTS',22);
2117: end if;
2118:
2119: fnd_message.set_name('PER','HR_SS_APPROVER_MSG_SUB_REPORTS');
2120: fnd_message.set_token('PROCESS_DISPLAY_NAME',lv_process_display_name,false);
2127: -- set the document type
2128: document_type := wf_notification.doc_html;
2129:
2130: if g_debug then
2131: hr_utility.set_location('Leaving:'|| g_package||'.'||c_proc, 30);
2132: end if;
2133:
2134: exception
2135: when others then
2133:
2134: exception
2135: when others then
2136: document :=null;
2137: hr_utility.set_location('hr_workflow_ss.getApprovalMsgSubject errored : '||SQLERRM ||' '||to_char(SQLCODE), 40);
2138: Wf_Core.Context('hr_workflow_ss', 'getApprovalMsgSubject', document_id, display_type);
2139: raise;
2140: end getApprovalMsgSubject;
2141:
2171: v_next_approver_rec ame_util.approverstable2;
2172: v_default_approvers ame_util.approversTable2;
2173:
2174: begin
2175: hr_utility.set_location(lv_procedure_name,1);
2176: if(hr_utility.debug_enabled) then
2177: -- write debug statements
2178: hr_utility.set_location('Entered'||lv_procedure_name||'with itemtype:'||p_item_type, 2);
2179: hr_utility.set_location('Entered'||lv_procedure_name||'with itemkey:'||p_item_key, 2);
2172: v_default_approvers ame_util.approversTable2;
2173:
2174: begin
2175: hr_utility.set_location(lv_procedure_name,1);
2176: if(hr_utility.debug_enabled) then
2177: -- write debug statements
2178: hr_utility.set_location('Entered'||lv_procedure_name||'with itemtype:'||p_item_type, 2);
2179: hr_utility.set_location('Entered'||lv_procedure_name||'with itemkey:'||p_item_key, 2);
2180: end if;
2174: begin
2175: hr_utility.set_location(lv_procedure_name,1);
2176: if(hr_utility.debug_enabled) then
2177: -- write debug statements
2178: hr_utility.set_location('Entered'||lv_procedure_name||'with itemtype:'||p_item_type, 2);
2179: hr_utility.set_location('Entered'||lv_procedure_name||'with itemkey:'||p_item_key, 2);
2180: end if;
2181:
2182: -- processing logic
2175: hr_utility.set_location(lv_procedure_name,1);
2176: if(hr_utility.debug_enabled) then
2177: -- write debug statements
2178: hr_utility.set_location('Entered'||lv_procedure_name||'with itemtype:'||p_item_type, 2);
2179: hr_utility.set_location('Entered'||lv_procedure_name||'with itemkey:'||p_item_key, 2);
2180: end if;
2181:
2182: -- processing logic
2183: if(p_item_type is null OR p_item_key is null) then
2387: end if;
2388:
2389:
2390:
2391: if(hr_utility.debug_enabled) then
2392: -- write debug statements
2393: hr_utility.set_location('Leaving '||lv_procedure_name||'with itemtype:'||p_item_type, 10);
2394: end if;
2395:
2389:
2390:
2391: if(hr_utility.debug_enabled) then
2392: -- write debug statements
2393: hr_utility.set_location('Leaving '||lv_procedure_name||'with itemtype:'||p_item_type, 10);
2394: end if;
2395:
2396: EXCEPTION
2397: WHEN OTHERS THEN
2395:
2396: EXCEPTION
2397: WHEN OTHERS THEN
2398: fnd_message.set_name('PER', SQLERRM ||' '||to_char(SQLCODE));
2399: hr_utility.raise_error;
2400: return null;
2401: end getNextApproverForHist;
2402:
2403: function Authenticate(p_username in varchar2,