The list of users displayed in "User Name" on the "User Access Control" tab can programatically be customized based on your application requirements.  Some applications use non-system users in which case you will need to create your own subroutine to return the list of users.  This is done by editing the subroutine RPT.GET_USER_LIST in the USERBP file.


The standard RPT.GET_USER_LIST subroutine for D3 is as follows:



You may make this subroutine as simple or as complex as required as long as the returned data is in the expected format.


Returned format


Parameter lstUsers: (single attribute, multi-value, 2 sub-values per value.)


lstUsers<1,1,1> = "User Name 1"

lstUsers<1,1,2> = "UserID1"


lstUsers<1,2,1> = "User Name 2"

lstUsers<1,2,2> = "UserID2"



*** WARNING *** When a custom RPT.GET_USER_LIST is used, you MUST also provide custom RPT.GET_USER_ID and RPT.CHECK_USER_ID subroutine to validate users.


The RPT.GET_USER_ID subroutine returns the currently logged on user.


The RPT.CHECK_USER_ID subroutine validates if a user Id exists.


The RPT.LOGON_USER subroutine validates a username and password combination.  This subroutine is called by the Json/OData services to authenticate a user.  This subroutine is only called when token based or basic authentication is used.