This post is about a weird short dump issue that I encountered in the implementation. User initiated the process from the portal and received a success message with process reference number, indicating that the process was started. But the next approver did not receive work item in his UWL.
As first debugging step I checked SWI1 and found that no workflow was triggered. Next logical thing to do was to check in SCASE if the case was created in Case Management or not? To my surprise not only the case instance was missing in case management but also the process object was not instantiated ( no entry in the table T5ASRPROCESSES ). Considering the fact that application did generate a process reference number , missing process object reference in T5ASRPROCESSES was a surprise.
SU53 came clean for the test user. As last resort before attempting debug, I checked ST22 and found short-dump below,
From the position of the code where the exception was raised, below was evident,
1) The code raising one of the exception of method CREATE did not pass message type or some attribute of the message when raising exception.
2) The issue was either missing authorization or some other failure while creating case instance. My initial guess was that it will not be an authorization issues as SU53 was clean so I started debugging application from method CREATE of class CL_SCMG_CASE to identified what caused the application to raise exception.
Debugging the application showed that application was raising NO_AUTHORITY exception without any specific error message.
Authorizations checked were related to Case Management and Records Management like the one shown below.
I found number of authorization checks on different authorization objects failing for the user.
After assigning these missing authorizations, the short dump issue was resolved.
My concerns as developer are follows,
1) Even when the authorization check are failing, ideally SAP standard application is not expected to give short dump from the functionality point of view. This happens because of bug in the code when raising exception NO_AUTHORITY without any error message. The calling method tried to do exception handling using system variables like SY-MSGNO, SY-MSGTY etc. Code can be corrected any one place i.e. either while raising or handling exception.
I suspect that it is because of this short dump that the authorization failures were not logged in SU53.
2) SAP documentation on Authorization concept in HCM Process and Forms do not refer directly to Case and Record Management authorizations. Some other links like SAP Library – Human Resources does not list all the authorizations required. It would be great if there is a single page on help.sap.com with details on all the authorizations required to execute the end to end process with HCM P&F application.
Below is the list of authorization object check failures that I have encountered while implementing HCM P&F.
3) Success message on portal with process reference number with no mention of what went wrong in back-end application is misleading for the end user as process was not started successfully in reality.
4) SAP provides a note 1539246 which explains similar issue. But I did not see calling class CL_POBJ_CASE, method CREATE_CASE referring to table T5ASRSETTINGS specified in the note and not sure application of the manual activities as per instructions in the SAP note would be effective. Instead this calling class passes authority-check parameter ( IM_CHECK_AUTHORITY ) as false i.e. no authority checks are needed as shown below. And as I observed, authority checks are still performed for Case and Records Management.
I hope this post would be a good reference for others facing similar issues and will save some debugging efforts. 🙂