Hello Everyone. Good Morning!
I’m having a little issue when deploying changes to our PRD environment when using SAP Notifications.
This issue is with “SAP DDIC-Cache” - Every time that we deploy a package to our PRD, we have to manually clear the DDIC-Cache structures related to the changed SAP RFC Notification.
I’m finding this proccess too manual, and we had some issues like the new IDOC fields that our SAP Team added to the notification weren’t reaching to our IS interface, even after cleaning the Function DDIC-Cache. To solve it, I had to get the structures used in the function and manually clear their cache.
But I think that it is too risky to do this in PRD enviroment. I’m afraid whether this could cause some issue to another unrelated SAP Function/Structure and break something.
Please, is there a way to automatically clear the DDIC-Cache after deploying a new version of a SAP Function? Or a way to disable it? Or a best way to manage it and avoid this type of issue?
Does it help if you disable the notification and stop the connection prior to the deployment?
DDIC cache doesn’t persist restart of the Integration server. SAP adapter would pull the structure from SAP post restart so certainly one option is you do rolling deployment & restart (safe, and works all the time).
Reloading SAP adapter package may work but this will reload all your other dependant interfaces. Unless you quiesce the server to not to allow any traffic, this option may not be great.
Unfortunately, clearing the DDIC cache option seems available only through IS admin page. If you find any private service inside WmSAPAdapter package you may try that. Of course, usage of such service is at your own risk but you could.
There are only 2 recommended ways in which DDIC cache can be cleared:
- During IS shutdown
- Manually by user through DDIC-Cache page
There are no public sap adapter services exposed for clearing DDIC cache.
We have changed our process to handle this type of issue. When we have code that needs to be deployed that includes SAP RFC changes to it, we wait for SAP to deploy their code first. Once they are done, we then deploy our code. Upon deploying the code in wM, no matter how it is done, it will go out to that RFC and get the new structure. This eliminates the need to clear DDIC and get a new structure in. Simple and effective every time.