Mass Maintenance in SAP Project Systems (Part 1): CNMASS

Microsoft excel and microsoft powerpoint.
Blog Series:
Mass Maintenance in SAP Project Systems (Part 1): CNMASS
Mass Maintenance in SAP Project Systems (Part 2): CNMASSSTATUS
Mass Maintenance in SAP Project Systems (Part 3): CNMASSCREATE


SAP has done a really good job with their Customer Engagement Initiative (CEI).  We’ve covered it a few times already (links below) and I’ve been particularly impressed at the overall engagement that the Project Systems development team has given the SAP customer base through the program.  They’ve been a very consistent player in the program and consistently rolled out new solutions.  All of the items they’ve released are very small in scope which leads to an easy implementation and rollout to the business.

Of course, there hasn’t been any significant change in PS functionality from ECC to S/4HANA OP.  I wonder if these two events are related?

Back to CEI… two of the items that SAP has rolled out assist in mass processing of PS master data and have quickly become a go-to solution for me when I’m working on a project.

Blog Series:
SAP's CEI Project and New Developments for Project Systems
New Development Project for PLM/PS in 2020
New Development Project for PLM/PS in 2021
S/4HANA Changes for Project Systems


But First

But before I can dive into these new items, I want to (very) quickly cover the mass maintenance of project data.

SAP rolled out a new tool way back in R/3 Release 4.5 called the Mass Maintenance Tool.  Most people only know it by its transaction code: MASS.  It’s a generic tool and it’s up to the developers in each topic area (GL, FI-AA, MM, etc.) to utilize it so that the master data in their respective module can be processed by MASS.  As of S/4HANA OP 2021, the below image shows the list of modules that can be pulled up at MASS.


There are a couple of points I want to make on MASS before moving on.  The first is that an item such as “G/L Accounts” can be changed directly here at MASS but can also be changed by transactions in the GL area (OB_GLACC11 – OB_GLACC14).   Two transaction codes and paths that lead to the same solution.  Same for the other areas such as Cost Center (KS01N and KS12N) or Profit Center (KE55).

But the second and more prominent point is that the PS master data (project definition, WBS, network, network activities) isn’t listed. 



For some reason that I’m not aware of, the PS developers implemented their own approach that is slightly different.  For starters, it uses the same logical database (PSJ) that is in a lot of project reports so the selection screen looks familiar (it’s the logical database that drives how the selection screen works).  But make no mistake, this is still built on top of and uses the generic MASS tool mentioned earlier.


You start by pressing the [Enter field values for mass changes] button.  Then the below pop-up window will appear showing all of the different PS object types that can be used.


In this case, I need to change the Person Responsible which is on both the Project Definition and WBS Elements.  For each one, I’ll select that tab and then press the [Choose Fields] button.  This will then launch the next window shown below where each possible field on that object can be selected for mass change.  This window is a terribly small one for a task like this which I think can lead to mistakes with using the tool.  On the right side is a listing of the available fields and on the left is the list of choosen fields.  In this case I’ve selected the Person Responsible field and moved it to the left side.  I did the same thing for the Project Definition.  


Finally, note that you can add up to a maximum of 19 fields to the left panel… you can simultaneously be making mass changes for upto 19 fields at once.  But I view that as being a bit risky so I usually just change one field at a time.

When you’re returned to the first pop-up window, you can enter in the new value for the field(s) that was selected earlier. In this case, I’m specifying the value for the Person Responsible as 60000082.  I could choose to make it conditional on the existing value by specifying that in the [Replace Only] field underneath it.  But that is an optional step… though recommended for more complex requirements.  I did the same thing on the Project Definition tab so you’ll notice that each one has a green checkmark on it while the others are unchanged.  There are several buttons at the bottom of the window that are self-explanatory.  It’s possible to execute it in update or test mode from here but I usually just hit [Transfer] to return to the initial screen.


Before proceeding, I’ll jump over to the CN43N report to get a list of the current WBS elements in this project and the respective values for the Person Responsible.


Going back over to CNMASS, notice that the [Enter Field Values for Mass Changes] button now has a green check mark.  This indicates that a set of fields and values have been specified.  Also notice that t [Test Run] parameter has appeared at the bottom.


After executing it in test mode, the resulting log is displayed. The first message confirms that this is a test run.  The subsequent rows confirm that the changes were made for both the project definition and the WBS elements.  Even though the messages say “WBS xxxxx is changed”, no changes were carried out.


If I backup and execute it in update mode by removing the [Test Run] parameter, the process is slightly different.  First, I get this pop-up window confirming that changes have been made.


Then the results log is shown and the messaging is also different.  In my system, I have quite a few validations and substitutions active so it confirms that their logic was included in this change.  That’s good… that’s a consistent usage of how they are processed both in dialog or in the background.


Lastly, when I go to exit, I get this prompt.  Always save the results to a log.


To confirm that the changes are what I wanted, I’ll re-execute my project structure report.


Mass Change Log CNMASSPROT

The nice thing about CNMASS is that you can pull up the log using it’s own dedicated transaction code CNMASSPROT.  Most of the time you can execute it using the default parameters.  But you can also click the button highlighted below…


… and the selection screen will be expanded to include some other criteria.  The most useful fields here are User or Transaction Code.


After reviewing this information and then pressing execute, the log history is displayed.  As you can see, I was playing around with this quite a bit today as I have several executions and the first errored out (because of a bad substitution I was testing).


What Else?

Here is a quick list of items that you may not know about CNMASS:

  • Not every single field on the PS master data is available for change.  For instance, you can’t change the Project Profile in dialog for obvious reasons and you can’t do it at CNMASS either.  The IM Profile is another example where it can’t be changed for technical reasons though it can be changed in dialog.
  • CNMASS can’t be used to change sytem or user status. However, you can use it to release networks.
  • You can initiate a mass change from the structure reports but not the new ones (CN41 works, not CN41N).
  • It’s possible to add any custom defined fields (i.e., CI_PRPS) via a small BADI switch.  If you have a significant number of custom fields, you should consider this.
  • The Investment Management fields (Investment Reasons, Scale, Reason for Environmental Investment) can be added via note 3062610.


What’ Next?

With that basic stuff out of the way, I’ll cover the two PS mass change functions in a subsequent blog.