Hello,
in AX 2012 R3 we experienced this issue at our customer when a query using SecurityRole system table is called. The error happens after we copy data and model database A (PROD) to data and model database B (PREPROD - another environment with different SQL and AOS servers). Then in database B, when we call the query which inludes SecurityRole table, the following error is thrown.
Error: "Invalid object name <original model database name>.dbo.SECURITYROLE_INLINEFUNC".
Obviously, AX is still using original database path when calling SECURITYROLE_INLINEFUNC. The problem is solved by DataDictionary synchronization in the target environment. But where is the path to original model database stored then?
I found out that the SecurityRole_INLINEFUNC object is a SQL table-valued function in a AX model database (as I have read it works as the SQL view but it can handle/use input parameters).
I guess this function is called by AOS when a „select“ should be done on SecurityRole system table.
SecurityRole table is used in the our query which throws the error and it is a system table and it is possible that AOS handles that in a special way.
When I open a TableBrowser on the SecurityRole table retrieved data correspond to those retrieved by the SECURITYROLE_INLINEFUNC function (data, columns, number of rows returned).
Does anybody have any more details on the implementation of SecurityRole (and SecurityTask as well) system tables in AX 2012?
*This post is locked for comments