Module: Oracle Payables Symptoms: AP Workflow not started for invoice price variance hold. The invoice approval history is empty and the notification is not sent out to the approver/Buyer Note: The symptoms may happen to other hold types when the same setup. Cause: "Manual Release Allowed" options in the Hold Setup for price variance hold was not Enabled. Reason: Holds resolution workflow is only initiated during invoice validation with both conditions: 1) The Initiate Workflow option is selected for hold type; 2) ‘Manual Release Allowed’ option is checked.
Solution: Payables Responsibility > Setup : Invoice >Hold and Release Names Query for the Hold: example: Price Enable "Manual Release Allowed" options Challenges: The price hold (or other holds) is not supposed to be manually released. By selecting ‘Manual Release Allowed’, manual release is open. Luckily we have the rule that for all those holds supposed to send out notifications by initiating workflow, manual release is not allowed. Workaround: A form personalization is needed to turn off release button and manual release option in action window. 1) Make ‘Release button’ disabled. Condition: Trigger event: WHEN-NEW-RECORD-INSTANCE Trigger Object: AP_HOLDS Condition: XX_5011_AP_HOLD_INV_NTF_PKG.XX_Manual_Release_Not_Allowed(:AP_HOLDS.HOLD_NAME) = 'Y' Actions: Type: Property Object Type: Item Target Object: AP_HOLDS_CONTROL.ACTION_BUTTON Property Name: ENABLED Value: FALSE 2) Make manual release option disable in action window. Condition: Trigger event: WHEN-NEW-RECORD-INSTANCE Trigger Object: AP_HOLDS Condition: XX_5011_AP_HOLD_INV_NTF_PKG.XX_Manual_Release_Not_Allowed(:AP_HOLDS.HOLD_NAME) = 'Y' Actions: 1 Type: Property Object Type: Item Target Object: AP_HOLDS.RELEASE_NAME Property Name: ENTERABLE (APPLICATIONS COVER) Value: FALSE Actions: 2 Type: Property Object Type: Item Target Object: AP_HOLDS.RELEASE_REASON Property Name: ENTERABLE (APPLICATIONS COVER) Value: FALSE The package to be called:
XX_5011_AP_HOLD_INV_NTF_PKG.XX_Manual_Release_Not_Allowed(:AP_HOLDS.HOLD_NAME)
Logic: Return ‘Y’ if ‘Initiate Workflow’ option is checked.
Function XX_Manual_Release_Not_Allowed(l_HOLD_LOOKUP_CODE in varchar2) RETURN varchar2 IS -- PRAGMA AUTONOMOUS_TRANSACTION; l_initiate_workflow_flag ap.ap_hold_codes.initiate_workflow_flag%type; -- l_user_releaseable_flag ap.ap_hold_codes.user_releaseable_flag%type; l_hold_id ap.ap_holds_all.hold_id%type; -- l_hold_lookup_code ap.ap_hold_codes.hold_lookup_code%type; BEGIN select nvl(ahc.initiate_workflow_flag, 'N') INTO l_initiate_workflow_flag from ap.ap_hold_codes ahc, ap_lookup_codes alc where ahc.hold_lookup_code = alc.lookup_code and alc.lookup_type = 'HOLD CODE' and nvl(alc.displayed_field, 'X') = nvl(l_HOLD_LOOKUP_CODE, 'X'); RETURN l_initiate_workflow_flag;
EXCEPTION WHEN no_data_found THEN RETURN 'N'; WHEN OTHERS THEN -- ROLLBACK; FND_FILE.PUT_LINE(FND_FILE.LOG, 'XX_5011_Manual_Release_Not_Allowed' || ' ' || SQLERRM || 'hold_lookup_code:' || l_hold_lookup_code); RAISE_APPLICATION_ERROR(-20001, 'XX_5011_Manual_Release_Not_Allowed' || ' ' || SQLERRM || 'hold_lookup_code:' || l_hold_lookup_code); END XX_Manual_Release_Not_Allowed;
|