Answer
Rather than calling Transaction_SYS.Deferred_Call directly against your own custom procedure's specific signature (which can trigger this overload-ambiguity error depending on the exact parameter types/count used), route it through the framework's own standard wrapper instead: build the PL/SQL you want to run as a plain string, wrap it using Message_SYS.Construct('UPD') plus Message_SYS.Add_Attribute(..., 'SQL', <your_statement_string>), and call Transaction_SYS.Deferred_Call targeting Fnd_Event_Action_API.Action_Executeonlinesql (a fixed, already-correctly-overloaded framework method) with that constructed message as the payload — rather than calling Deferred_Call against your own custom procedure's signature directly. This consistently avoids the ambiguous-overload error that a direct call to a custom procedure can trigger.