Checked the code again, and found this:
IF lu_name_ = 'DocIssue' THEN
Get_Receiver_And_Admins___(receiver_, admin_list_, key_ref_, include_admins_);
ELSE
receiver_ := 'NO RECEIVER DEFINED';
END IF;
As you can see and which is perhaps the reason you ask, when an approval routing is connected to other business objects than documents, there is really no receiver for this event, and the code just sets ‘NO RECEIVER DEFINED’ then. The only way we could have one would be to store whoever added the approval step, and use that as the receiver here. We don’t do that though. Or, we could of course enhance this functionality and make it configurable per object type how to determine the receiver. So, there is room for improvement here…
What you probably can do is to use another event action type, Execute Online SQL. There you can run and SQL or PL/SQL you need to determine the receiver. Once you have it you can send an e-mail using the Command_SYS package. If you search here on Community you might find some code example from which you can copy some code.
Here is the method signature for the Mail method in that package:
PROCEDURE Mail(
sender_ IN VARCHAR2,
from_ IN VARCHAR2,
to_list_ IN VARCHAR2,
cc_list_ IN VARCHAR2 DEFAULT NULL,
bcc_list_ IN VARCHAR2 DEFAULT NULL,
subject_ IN VARCHAR2,
text_ IN CLOB,
attachments_ attachment_arr,
mail_sender_ IN VARCHAR2 DEFAULT NULL);
Good luck!