one of my clients requirement is to create a change request to a Grantor Agreement (GAG). As SAP provided a demo template (tcode: CRMC_WEBREQ) which can be doable through web requests. However we have ton of custom fields (more than 170) enhanced to the GAG component and user wanted to have most of them on change request form.
As per the standard SAP process (based on the template), it uses a XML structure to pass old values and capture new values from change request screen. I can modify the xml structure and include all the required custom fields. But the template does not provide delete / add new items to an agreement through change request form. Can someone help me with the procedure how can I achieve the requirement ?
Also the template provided by SAP has two step process -
1. Create a change request using change request form
2. Release the CR through Change Request search object
But my client wants to have it automated into one step process. Hence I am planning to follow the below steps -
1. Create a change request
2. Link the change request to Agreement ( so that it can be pulled through CR search object) --> It is required because user want to see the history later in the future. I can see in the template that SAP captures the history in a separate assignment block.
3. Update the new values (including custom fields) to Agreement using CRM_ORDER_MAINTAIN.
But I am not sure how to proceed with the above outlined steps.Really appreciate if anyone can through some ideas on how to achieve the requirement.
When you create a change request it automatically links with an agreement, nothing is required to link it.
In your case you might want to explore possibility of scheduling action on change request to release it automatically because changes are only applied by CR engine once it is released. As a standard solution SAP provides to change Amount at line item and change of validity dates.
Logically how SAP does to change agreement is to revert the release status of Agreement and apply changes and put back the release status again.
For updating customised fields your approach is right to use CRM_ORDER_MAINTAIN, this also you might want to explore to put it into action.
Thank you Deepak. Yes I'll be enhancing the BADI 'ORDER_SAVE' to supply the new values for custom fields. But for the change of CR, I can read the previous values (old values) from the XML string but not sure how to setback the new values to the XML string.
Even if I change the CR status to some intermediate status (the way SAP does) but how to populate the new vlaues to XML string ? Please through some directions...
I am not very clear from your statement in which scenario you are using order_save. As for as XML is concerned this is how it works.
There is a DEMO changerequest webrequest given by SAP and should refer
1. You configure webrequest in configuration
2. Create structure ( It generates XML structure)
3. Generate BSP/Adobe from structure
4. Modify it based on your need
5. You may require BADI implementation
You can refer sap help for detail
Once it is done you maintain your change request against program in Process Control assignment block, when you click at change request in Agreement workcenter you get to create change requests against agreement which will be the webrequest you have configured/created. That's where you enter data.
I hope it has answered your question
Yes. This is the process which I did follow while creating the change request. Once we create the change request, user wants to edit the same CR. This is where I was facing the challenges. During edit time I don't want to create another CR.
I'll keep update if I find any solution.
Thanks for your quick response...
I guess I am able to resolve it. SAP automatically saves the new values to the XML structure.
1. In the debug, enabled the change icon from the Overview screen 'WebrequestOverview' of component CRMCMP_GRM_WRD. The edit Icon is disabled in method 'PREPARE_TOOLBAR'
2. Once we click the change icon from CR result list, it will open the CR form in edit mode. (Same as creation of CR)
3. Provided new values in the above step
4. Again in the debug bypassed the standard template code from FORM_ON_EVENT of Web Request 'BADI' (CRM_SERVICE_WEBREQ).
5. Through this way, CR form did not create a new Change Request and it updates the existing change request only.
Thanks for your time and trying to help me in this regard.