Query to get workflow details in oracle apps
SQL to get workflow activity history
Backend query for workflow
1. Query to get workflow item details
SELECT * FROM (SELECT workflowitemeo.item_type, workflowitemeo.item_key, workflowitemeo.root_activity, activityeo.display_name process_name, workflowitemeo.root_activity_version, workflowitemeo.owner_role, workflowitemeo.parent_item_type, workflowitemeo.parent_item_key, workflowitemeo.parent_context, workflowitemeo.begin_date, workflowitemeo.end_date, workflowitemeo.user_key, workflowitemtypeeo.name, workflowitemtypeeo.display_name, wf_directory.getroledisplayname2 (workflowitemeo.owner_role) AS role_name, wf_fwkmon.getitemstatus (workflowitemeo.item_type, workflowitemeo.item_key, workflowitemeo.end_date, workflowitemeo.root_activity, workflowitemeo.root_activity_version) AS status_code, wf_fwkmon.getroleemailaddress (workflowitemeo.owner_role) AS role_email, DECODE ( (SELECT COUNT (0) FROM wf_items wi2 WHERE workflowitemeo.item_type = wi2.parent_item_type AND workflowitemeo.item_key = wi2.parent_item_key), 0, 'WfMonNoChildren', 'WfMonChildrenExist') AS child_switcher FROM wf_items workflowitemeo, wf_item_types_vl workflowitemtypeeo, wf_activities_vl activityeo WHERE workflowitemeo.item_type = workflowitemtypeeo.name AND ActivityEO.ITEM_TYPE = WorkflowItemEO.ITEM_TYPE AND ActivityEO.NAME = WorkflowItemEO.ROOT_ACTIVITY AND activityeo.version = workflowitemeo.root_activity_version) QRSLT WHERE (item_type = :item_type AND item_key = :item_key);
2. Query to get workflow activity history
SELECT * FROM (SELECT wias.item_type AS item_type, wias.item_key AS item_key, wias.process_activity AS process_activity, wias.ROWID AS row_id, 'R' AS row_source, wias.notification_id AS notif_id, DECODE (wn.status, 'OPEN', NVL (wn.more_info_role, wias.assigned_user), wias.assigned_user) AS assigned_user, wias.activity_status AS activity_status, wias.activity_result_code AS activity_result_code, wias.execution_time AS execution_time, wias.begin_date AS begin_date, wias.end_date AS end_date, wias.due_date AS due_date, wl.meaning AS status_display, wa.name AS activity_name, wa.display_name AS activity_display, wi.user_key AS user_key, wa2.name AS parent_activity, DECODE (wa2.name, 'ROOT', '', wa2.display_name) AS parent_activity_display_name, wa.TYPE AS activity_type, wf_fwkmon.getroleemailaddress ( DECODE ( wn.status, 'OPEN', NVL (wn.more_info_role, wias.assigned_user), wias.assigned_user)) AS role_email_address, wf_directory.getroledisplayname2 ( DECODE ( wn.status, 'OPEN', NVL (wn.more_info_role, wias.assigned_user), wias.assigned_user)) AS role_display_name, DECODE (wias.activity_result_code, '#NULL', 'WfNoCloseDate', 'WfCloseDate') AS end_date_col_switch, DECODE (wias.activity_status, 'ERROR', 'WfStatusErrorText', 'WfStatusNoterrText') AS status_column_switch, DECODE (wias.activity_status, 'ERROR', 'WfStatusError', 'COMPLETE', 'WfStatusComplete', 'SUSPEND', 'WfStatusSuspended', 'WAITING', 'WfStatusWaiting', 'DEFERRED', 'WfStatusDeferred', 'NOTIFIED', 'WfStatusNotified', 'WfStatusActive') AS image_column_switch, wf_core.activity_result ( wa.result_type, DECODE (wias.activity_result_code, '#NULL', NULL, wias.activity_result_code)) AS result_display, wpa.activity_item_type AS activity_item_type, DECODE ( wa.TYPE, 'NOTICE', DECODE (wias.activity_status, 'NOTIFIED', 'WfReassignEnabled', 'ERROR', 'WfReassignEnabled', 'WfReassignDisabled'), 'WfReassignDisabled') AS reassign_switcher, DECODE (wias.activity_status, 'NOTIFIED', 'N', 'ACTIVE', 'N', 'ERROR', 'N', 'WAITING', 'N', 'DEFERRED', 'N', 'Y') AS select_disabled, DECODE ( wa.TYPE, 'PROCESS', DECODE (wias.activity_status, 'SUSPEND', 'WfResumeEnabled', 'COMPLETE', 'WfSuspResDisabled', 'WfSuspendEnabled'), 'WfSuspResDisabled') AS suspend_switcher, wa.expand_role AS expand_role, DECODE ( wn.status, 'OPEN', NVL2 ( wn.more_info_role, wf_core.TRANSLATE ('WFNTF_MOREINFO_REQUESTED'), wnl.meaning), wnl.meaning) AS notification_status FROM wf_item_activity_statuses wias LEFT JOIN wf_notifications wn ON wias.notification_id = wn.notification_id LEFT JOIN wf_lookups wnl ON wnl.lookup_code = wn.status AND wnl.lookup_type = 'WF_NOTIFICATION_STATUS', wf_lookups wl, wf_items wi, wf_activities_vl wa, wf_process_activities wpa, wf_activities_vl wa2 WHERE wl.lookup_code = wias.activity_status AND wl.lookup_type = 'WFENG_STATUS' AND wias.item_type = wi.item_type AND wias.item_key = wi.item_key AND wias.process_activity = wpa.instance_id AND wpa.activity_name = wa.name AND wpa.activity_item_type = wa.item_type AND wi.begin_date BETWEEN wa.begin_date AND NVL (wa.end_date, wi.begin_date) AND wpa.process_name = wa2.name AND wpa.process_item_type = wa2.item_type AND wpa.process_version = wa2.version AND wias.item_type = :item_type AND wias.item_key = :item_key UNION ALL SELECT wiash.item_type AS item_type, wiash.item_key AS item_key, wiash.process_activity AS process_activity, wiash.ROWID AS row_id, 'H' AS row_source, wiash.notification_id AS notif_id, DECODE (wn.status, 'OPEN', NVL (wn.more_info_role, wiash.assigned_user), wiash.assigned_user) AS assigned_user, wiash.activity_status AS activity_status, wiash.activity_result_code AS activity_result_code, wiash.execution_time AS execution_time, wiash.begin_date AS begin_date, wiash.end_date AS end_date, wiash.due_date AS due_date, wl.meaning AS status_display, wa.name AS activity_name, wa.display_name AS activity_display, wi.user_key AS user_key, wa2.name AS parent_activity, DECODE (wa2.name, 'ROOT', '', wa2.display_name) AS parent_activity_display_name, wa.TYPE AS activity_type, wf_fwkmon.getroleemailaddress ( DECODE ( wn.status, 'OPEN', NVL (wn.more_info_role, wiash.assigned_user), wiash.assigned_user)) AS role_email_address, wf_directory.getroledisplayname2 ( DECODE ( wn.status, 'OPEN', NVL (wn.more_info_role, wiash.assigned_user), wiash.assigned_user)) AS role_display_name, DECODE (wiash.activity_result_code, '#NULL', 'WfNoCloseDate', 'WfCloseDate') AS end_date_col_switch, DECODE (wiash.activity_status, 'ERROR', 'WfStatusErrorText', 'WfStatusNoterrText') AS status_column_switch, DECODE (wiash.activity_status, 'ERROR', 'WfStatusError', 'COMPLETE', 'WfStatusComplete', 'SUSPEND', 'WfStatusSuspended', 'WAITING', 'WfStatusWaiting', 'DEFERRED', 'WfStatusDeferred', 'NOTIFIED', 'WfStatusNotified', 'WfStatusActive') AS image_column_switch, wf_core.activity_result ( wa.result_type, DECODE (wiash.activity_result_code, '#NULL', NULL, wiash.activity_result_code)) AS result_display, wpa.activity_item_type AS activity_item_type, DECODE ( wa.TYPE, 'NOTICE', DECODE (wiash.activity_status, 'NOTIFIED', 'WfReassignEnabled', 'ERROR', 'WfReassignEnabled', 'WfReassignDisabled'), 'WfReassignDisabled') AS reassign_switcher, DECODE (wiash.activity_status, 'NOTIFIED', 'N', 'ACTIVE', 'N', 'ERROR', 'N', 'WAITING', 'N', 'DEFERRED', 'N', 'Y') AS select_disabled, DECODE ( wa.TYPE, 'PROCESS', DECODE (wiash.activity_status, 'SUSPEND', 'WfResumeEnabled', 'COMPLETE', 'WfSuspResDisabled', 'WfSuspendEnabled'), 'WfSuspResDisabled') AS suspend_switcher, wa.expand_role AS expand_role, DECODE ( wn.status, 'OPEN', NVL2 ( wn.more_info_role, wf_core.TRANSLATE ('WFNTF_MOREINFO_REQUESTED'), wnl.meaning), wnl.meaning) AS notification_status FROM wf_item_activity_statuses_h wiash LEFT JOIN wf_notifications wn ON wiash.notification_id = wn.notification_id LEFT JOIN wf_lookups wnl ON wnl.lookup_code = wn.status AND wnl.lookup_type = 'WF_NOTIFICATION_STATUS', wf_lookups wl, wf_items wi, wf_activities_vl wa, wf_process_activities wpa, wf_activities_vl wa2 WHERE wl.lookup_code = wiash.activity_status AND wl.lookup_type = 'WFENG_STATUS' AND wiash.item_type = wi.item_type AND wiash.item_key = wi.item_key AND wiash.process_activity = wpa.instance_id AND wpa.activity_name = wa.name AND wpa.activity_item_type = wa.item_type AND wi.begin_date BETWEEN wa.begin_date AND NVL (wa.end_date, wi.begin_date) AND wpa.process_name = wa2.name AND wpa.process_item_type = wa2.item_type AND wpa.process_version = wa2.version AND wiash.item_type = :item_type AND wiash.item_key = :item_key) qrslt ORDER BY 11 DESC, 10 DESC
If you have read only access to apps user objects, please use below query.
SELECT (SELECT Invoice_num FROM apps.ap_invoices_all apinv WHERE SUBSTR (qrslt.ITEM_KEY, 1, 7) = apinv.invoice_id) invoice_num, qrslt.* FROM (SELECT wias.item_type AS item_type, wias.item_key AS item_key, wias.process_activity AS process_activity, wias.ROWID AS row_id, 'R' AS row_source, wias.notification_id AS notif_id, DECODE (wn.status, 'OPEN', NVL (wn.more_info_role, wias.assigned_user), wias.assigned_user) AS assigned_user, wias.activity_status AS activity_status, wias.activity_result_code AS activity_result_code, wias.execution_time AS execution_time, wias.begin_date AS begin_date, wias.end_date AS end_date, wias.due_date AS due_date, wl.meaning AS status_display, wa.name AS activity_name, wa.display_name AS activity_display, wi.user_key AS user_key, wa2.name AS parent_activity, DECODE (wa2.name, 'ROOT', '', wa2.display_name) AS parent_activity_display_name, wa.TYPE AS activity_type, -- wf_fwkmon.getroleemailaddress ( -- DECODE ( -- wn.status, -- 'OPEN', NVL (wn.more_info_role, wias.assigned_user), -- wias.assigned_user)) wias.assigned_user AS role_email_address, -- wf_directory.getroledisplayname2 ( -- DECODE ( -- wn.status, -- 'OPEN', NVL (wn.more_info_role, wias.assigned_user), -- wias.assigned_user)) wias.assigned_user AS role_display_name, DECODE (wias.activity_result_code, '#NULL', 'WfNoCloseDate', 'WfCloseDate') AS end_date_col_switch, DECODE (wias.activity_status, 'ERROR', 'WfStatusErrorText', 'WfStatusNoterrText') AS status_column_switch, DECODE (wias.activity_status, 'ERROR', 'WfStatusError', 'COMPLETE', 'WfStatusComplete', 'SUSPEND', 'WfStatusSuspended', 'WAITING', 'WfStatusWaiting', 'DEFERRED', 'WfStatusDeferred', 'NOTIFIED', 'WfStatusNotified', 'WfStatusActive') AS image_column_switch, -- wf_core.activity_result ( -- wa.result_type, -- DECODE (wias.activity_result_code, -- '#NULL', NULL, -- wias.activity_result_code)) wias.activity_result_code AS result_display, wpa.activity_item_type AS activity_item_type, DECODE ( wa.TYPE, 'NOTICE', DECODE (wias.activity_status, 'NOTIFIED', 'WfReassignEnabled', 'ERROR', 'WfReassignEnabled', 'WfReassignDisabled'), 'WfReassignDisabled') AS reassign_switcher, DECODE (wias.activity_status, 'NOTIFIED', 'N', 'ACTIVE', 'N', 'ERROR', 'N', 'WAITING', 'N', 'DEFERRED', 'N', 'Y') AS select_disabled, DECODE ( wa.TYPE, 'PROCESS', DECODE (wias.activity_status, 'SUSPEND', 'WfResumeEnabled', 'COMPLETE', 'WfSuspResDisabled', 'WfSuspendEnabled'), 'WfSuspResDisabled') AS suspend_switcher, wa.expand_role AS expand_role, -- DECODE ( -- wn.status, -- 'OPEN', NVL2 ( -- wn.more_info_role, -- wf_core.TRANSLATE ('WFNTF_MOREINFO_REQUESTED'), -- wnl.meaning), -- wnl.meaning) wnl.meaning AS notification_status FROM apps.wf_item_activity_statuses wias LEFT JOIN apps.wf_notifications wn ON wias.notification_id = wn.notification_id LEFT JOIN apps.wf_lookups wnl ON wnl.lookup_code = wn.status AND wnl.lookup_type = 'WF_NOTIFICATION_STATUS', apps.wf_lookups wl, apps.wf_items wi, apps.wf_activities_vl wa, apps.wf_process_activities wpa, apps.wf_activities_vl wa2 WHERE wl.lookup_code = wias.activity_status AND wl.lookup_type = 'WFENG_STATUS' AND wias.item_type = wi.item_type AND wias.item_key = wi.item_key AND wias.process_activity = wpa.instance_id AND wpa.activity_name = wa.name AND wpa.activity_item_type = wa.item_type AND wi.begin_date BETWEEN wa.begin_date AND NVL (wa.end_date, wi.begin_date) AND wpa.process_name = wa2.name AND wpa.process_item_type = wa2.item_type AND wpa.process_version = wa2.version AND wias.item_type = :item_type -- AND wias.item_key = :item_key UNION ALL SELECT wiash.item_type AS item_type, wiash.item_key AS item_key, wiash.process_activity AS process_activity, wiash.ROWID AS row_id, 'H' AS row_source, wiash.notification_id AS notif_id, DECODE (wn.status, 'OPEN', NVL (wn.more_info_role, wiash.assigned_user), wiash.assigned_user) AS assigned_user, wiash.activity_status AS activity_status, wiash.activity_result_code AS activity_result_code, wiash.execution_time AS execution_time, wiash.begin_date AS begin_date, wiash.end_date AS end_date, wiash.due_date AS due_date, wl.meaning AS status_display, wa.name AS activity_name, wa.display_name AS activity_display, wi.user_key AS user_key, wa2.name AS parent_activity, DECODE (wa2.name, 'ROOT', '', wa2.display_name) AS parent_activity_display_name, wa.TYPE AS activity_type, -- wf_fwkmon.getroleemailaddress ( -- DECODE ( -- wn.status, -- 'OPEN', NVL (wn.more_info_role, wiash.assigned_user), -- wiash.assigned_user)) wiash.assigned_user AS role_email_address, -- wf_directory.getroledisplayname2 ( -- DECODE ( -- wn.status, -- 'OPEN', NVL (wn.more_info_role, wiash.assigned_user), -- wiash.assigned_user)) wiash.assigned_user AS role_display_name, DECODE (wiash.activity_result_code, '#NULL', 'WfNoCloseDate', 'WfCloseDate') AS end_date_col_switch, DECODE (wiash.activity_status, 'ERROR', 'WfStatusErrorText', 'WfStatusNoterrText') AS status_column_switch, DECODE (wiash.activity_status, 'ERROR', 'WfStatusError', 'COMPLETE', 'WfStatusComplete', 'SUSPEND', 'WfStatusSuspended', 'WAITING', 'WfStatusWaiting', 'DEFERRED', 'WfStatusDeferred', 'NOTIFIED', 'WfStatusNotified', 'WfStatusActive') AS image_column_switch, -- wf_core.activity_result ( -- wa.result_type, -- DECODE (wiash.activity_result_code, -- '#NULL', NULL, -- wiash.activity_result_code)) wiash.activity_result_code AS result_display, wpa.activity_item_type AS activity_item_type, DECODE ( wa.TYPE, 'NOTICE', DECODE (wiash.activity_status, 'NOTIFIED', 'WfReassignEnabled', 'ERROR', 'WfReassignEnabled', 'WfReassignDisabled'), 'WfReassignDisabled') AS reassign_switcher, DECODE (wiash.activity_status, 'NOTIFIED', 'N', 'ACTIVE', 'N', 'ERROR', 'N', 'WAITING', 'N', 'DEFERRED', 'N', 'Y') AS select_disabled, DECODE ( wa.TYPE, 'PROCESS', DECODE (wiash.activity_status, 'SUSPEND', 'WfResumeEnabled', 'COMPLETE', 'WfSuspResDisabled', 'WfSuspendEnabled'), 'WfSuspResDisabled') AS suspend_switcher, wa.expand_role AS expand_role, -- DECODE ( -- wn.status, -- 'OPEN', NVL2 ( -- wn.more_info_role, -- wf_core.TRANSLATE ('WFNTF_MOREINFO_REQUESTED'), -- wnl.meaning), -- wnl.meaning) wnl.meaning AS notification_status FROM apps.wf_item_activity_statuses_h wiash LEFT JOIN apps.wf_notifications wn ON wiash.notification_id = wn.notification_id LEFT JOIN apps.wf_lookups wnl ON wnl.lookup_code = wn.status AND wnl.lookup_type = 'WF_NOTIFICATION_STATUS', apps.wf_lookups wl, apps.wf_items wi, apps.wf_activities_vl wa, apps.wf_process_activities wpa, apps.wf_activities_vl wa2 WHERE wl.lookup_code = wiash.activity_status AND wl.lookup_type = 'WFENG_STATUS' AND wiash.item_type = wi.item_type AND wiash.item_key = wi.item_key AND wiash.process_activity = wpa.instance_id AND wpa.activity_name = wa.name AND wpa.activity_item_type = wa.item_type AND wi.begin_date BETWEEN wa.begin_date AND NVL (wa.end_date, wi.begin_date) AND wpa.process_name = wa2.name AND wpa.process_item_type = wa2.item_type AND wpa.process_version = wa2.version AND wiash.item_type = :item_type -- AND wiash.item_key = :item_key ) qrslt WHERE 1 = 1 ----begin_date >sysdate-30 ORDER BY 11 DESC, 10 DESCRelated posts: Upload your own post and refer it anywhere anytime: