Hi All,
Mass Data Run feature is only works for custom business object, you can schedule an action for many instances of custom business object using MDR.
But you can not be create MDR on standard BO, however there is always requirement to run a job to update standard object.
We have a work around with this we can update standard object periodically.
We will create a MDR on custom business and in action which will run for MDR, we write logic for updating standard object. I am trying to give you details how can you update standard object with MDR.
Pre-Requisite: You have created a custom business object with an action and query. In my example I will update Customer BO and have extended a field in customer BO and will update this field via MDR.

Custom BO Customer XBO
MDR will update extended field “Valid till”, for each instance of available customers
Details |
Images |
Right click on custom BO and create MDR |
 |
Enter name of MDR and select custom action where you will write action to update customer(std) bo.
|
 |
In step2, select query this query will use in selecting custom bo instance.
for example I have used two fields from query as selection parameter ‘FeedbakID’ and ‘Creation Date’. I will use this query at run time while creating run id for MDR.
|
 |
In step3, selection option from drop down,
application logs will be deleted by the the retention time.
In Step4, Review all details for MDR and click on finish
In solution explorer “UpdateCustomer.run” content will be created, activate this and right click and create screens. 3 screens will created( OWL, QAF and View)
|
 

|
Write the logic in custom action which you have selected in MDR to update the customer(std bo), I would suggest does not use this action to change custom bo instance.
This action is querying Customer BO wtithout any selection so it will returns all available customers in BO and then in loop, each instance will get updated.
|
 |
Now Assigned MDR work center view to Work center, I have already have created screens for custom BO, now I have assigned WoC view to custom WoC. |
 |
Now all the design activity has completed and our MDR is ready, now login into system and assigned Custom work center to your user or any other business user. Before assigning to business user your solution should be scoped. |
|
Create run Id for MDR, click on New button it will open a new window(QAF).
Here you will see two selection parameter has been added, so now we should set query selection parameter in a way so we will only read only one records. In this image with Feedback ID =5 there is only one instance is available. My custom action will run for only this instance, and in action it query all customer instance and update extended field with current system date.
Save and Activate this run id.
.
|
 |
Now schedule this run ID |
 |
Now here you have option to schedule the batch job, you can set as recurrence(daily weekly etc), however I will start it immediately |
 |
wait for some time and check for execution details for scheduled run Id.
Once it will be executed maximum severity will become green, in case if it get red then click on log id to check the logs
|
 |
Now all available customer records has been updated, and added extension field ‘Valid till’ has updated with current system date. |
 |
We are touching standard BO by querying in custom BO, and from MDR point of view it will execute single instance of custom bo however custom bo action will read all instance from Customer(standard bo), and update the required value. You should check this link Re: Mass data run-Custom field update with system date on daily basis
Note: You should not work one customer BO (std BO) when MDR is in execution, there is possibility you may have locked any customer(std bo) instance and MDR will returns lock errors.
There is another very nice blog has written for scheduling MDR every hour, How to create an hourly mass data run in C4C | SCN
Regards
Sunil
What is the max number of records that could be processed in this way before the MDR times out?
Hi
We have not tried for huge records but what I have updated arround 1580 records.
As per my knowledge maximum time limit for one MDR package is 10hrs, in this case we have only one instance for MDR and that will keep executing till 10 hrs. I guess you can update many records (arround 5K to 10K). but make sure no records is locked by any other user when you running.
Hi Sunil,
If one of the record is locked by the user, does MDRO fails entirely or it will give an error for that particular record and continue processing for the rest of the records?
Thanks,
Gayatri
Hello Sunil,
I've gone through one of your thread https://archive.sap.com/discussions/thread/3512841 where you had issues updating tickets using MDR. I've the same exact problem. Could you please let me know how did you resolve that issue?
Thanks.
Regards,
Mohan Babu
It has been long time .. I made bunch of data to update through MDR let say 500 of ticket get updated first then other which bunch would stop we had to correct manually each ticket.
Hello Sunil,
Do you have a workaround for the issue where, in your example if one of the Customer BOs fails to save then none of the Customer BOs will be saved?
(Since everything is run in one package).
Hello Sunil
Thank you for the Blog.
I have a similar scenario where I need to Update the customer. When the Customer is updated in C4C , Customer in the CRM is also getting updated as there is integration using PI.
In my Custom BO, I have all the Customer ID which should be updated . When I run the MDRO, all the customer gets updated. But in 1 Payload I have instances of all the customer which got updated and this doesnt work with PI. I want 1 instance in Payload. Do you have any Idea or a way to achieve this.
Thanks
Regards
Pratyush
Hello Sunil,
When i write logic to update the extended field of standard BO, the whole BO field (even extended field ) became read only , and i can not update it.
Error 37 [Activate] Identifier ‘Zitemtext’ is read-only and cannot be changed.
Unfortunately, depending on how you set up your system, if the update is doing a cross deployment unit call you will not be able to update certain fields, they will be read only. See link below. We have worked around by writing code in the MDR to do an oData web service call to update the field, that is quite a bit of work - Communication Arrangement needs to be set up. There may be other possible workarounds as well.
Understanding “Deployment Units” | SAP Blogs