cancel
Showing results for 
Search instead for 
Did you mean: 

error handling with ext. service desk

richard_pietsch
Active Contributor
0 Kudos

Hi all,

we are implementing external service desk interface and I was wondering what the error handling in SolMan looks like.

Example: message is locked in one of the systems and the sync. cannot be performed.

I found table ICT_FAILURES that might be useful here. Entries are written from cl_sol_ict_tools=>set_failure which is called from BAdI AUTO_FW_ICT_TO_THIRD. Also I noticed report ICT_RETRY_FAILED_ACTIONS to reprocess failed requests. However, all refer to action AUTO_FORWARD_ICT_TO_THIRD whereas we have PASS_ICT_SEND_TO_THIRD (from SMIN) in use.

What's the differnece between AUTO_FORWARD_ICT_TO_THIRD and PASS_ICT_SEND_TO_THIRD?

Can I use a similar implementation to realize an error handling in our case?

Thanks for your input.

Regards,

Richard

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Hello, did you resolve issue ? I have same error, could you please post solution here.

Thank you!

BR Bakhtiyar!

richard_pietsch
Active Contributor
0 Kudos

Hi,

our soultion became quite complex in the meantime. Here are the main facts:

- I modified class CL_IM_PASS_ICT_TO_THIRD and put in my own coding for handling errors in case lv_error_occurred = X (e.g. add errors to table ICT_FAILURES, insert a comment into the incident, show message)

- in class CL_IM_PASS_ICT_TO_THIRD I also redife the SAP default error messages and map them to custom ones which I process

- the error messages are processed in method GET_MESSAGE_FOR_ERROR_CODE of CL_SOL_ICT_OUTBOUND_PROCESSOR, here SAP matches all "external" error codes to SOLMAN_ICT E011.. I modified this method in order to catch the error codes as well as the long texts from external service desk (e.g. to get the reason for the error, such as locks etc.)

- as the user status does not work synchronously with the ICT status I check the old db user status and the new user status, in case of an error I reset the user status in CL_SOL_ICT_OUTBOUND_PROCESSOR~PROCESS_INCIDENT without triggering the PPF actions to the old one to allow a postprocessing

- in BSP component AIC_INCIDENT_H I added a "synchronize" button which triggers a new sending process, the way it's executed is defined by an enhancement in CL_IM_PASS_ICT_TO_THIRD (here I check the ict status together with the new user status and assign the corresponding operation, such as ADD, ACCEPT etc.)

- the synchronize button can be used in case of errors during dialog processing, in addition I use a custom report similar to report ICT_RETRY_FAILED_ACTIONS that re-processed failed requests, this report is scheduled as background job

- once the request has been completed without errors the CRM error messages will be deleted, table ICT_FAILURES is updated and an additional text is inserted in the incident's text log

So... yepp it's quite complex

Regards, Richard