Mass Maintenance in SAP Project Systems (Part 3): CNMASSCREATE

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

The previous blogs covering CNMASS and CNMASSSTATUS highlight useful features that SAP’s development team has released via their CEI program.  This last one will cover CNMASSCREATE which…  well you can probably guess what it does.

I find the previous ones to be helpful and am glad to use them when necessary but its CNMASSCREATE that I find particularly helpful during an SAP project.

How is this useful?

Everyone’s workflows are different but when I’m working on an SAP implementation or upgrade, I’ve found that CNMASSCREATE is most useful in the following scenarios:

Legacy Conversion

Obviously, the time on an SAP project where we are creating the most data is at go-live.  You might want to think that it’s during the testing phase but I haven’t found that to be the case.

There are a few different ways to create legacy projects in SAP and CNMASSCREATE is now another option to consider.  In the past, I’ve used LSMW using a screen recording (would not recommend), LSMW using a BAPI (100% recommend) and have worked on S/4HANA projects where LTMC was an option.  There are other non-SAP tools such as WinShuttle (now called Precisely Evolve) and perhaps some others too.  In the end there are many options out there.

However, at my most recent S/4HANA implementation I chose to use CNMASSCREATE.  The reason being that we could handle everything ourselves without integrating with the LSMW team or getting a WinShuttle license.  Also, they didn’t have many projects to load so it was easier to handle everything on our own.  We were able to load the projects using CNMASSCREATE, then perform some manual QA steps directly at CJ20N including the final release of the project.  It worked fine and I will consider it for future situations.

That said, for larger project conversions, or ones with more project variety (i.e., networks), or any other complexities, this may not be suitable.

Testing

The other time to mass create projects is during testing.  You may think the benefit is that you can load a lot of projects but to me, the bigger benefit is that I can load the most accurate project.  With CNMASSCREATE, I was able to quickly load a single project that had a full representative hierarchy of what the customer was used to seeing for that particular project type.

This approach had several benefits for the implementation:

  • Famliarity — After working with the customer and covering some of their existing project structures, we were able to jointly agree on a prominent one that they were used to seeing in their legacy system, model it in the SAP Excel template, and load it repeatedly whenever we had to test a particular scenario.  In this way they were always working with a full project structure for the given test that they had to work with.  At no point did we create a single project definition with a single WBS called “test”.  It was always the same large project that they used for capex spending, a separate project for accounting/expense projects, a separate project for maintenance, another one for sales projects, etc.
  • Repetition — Just like with other upload tools, this can be executed as often as necessary.  And because we had authorization to a PS transaction code, it’s one that we could quickly do ourselves.
  • Convienence — It’s also quick and convienent to work through.  We never had to work with a developer, fill out a functional spec, could make changes as we saw fit, and didn’t need access to a transaction code that was deemed to be outside our scope.
  • Test Quality — By being able to promptly create a legitimate project for a single test, we improved test quality because the costs, settlement, planning/budgeting, etc. that we were testing was always performed against a representative project.  So often I will see multiple tests performed on the same “test123” project structure and being able to quickly load 10 projects for 10 different tests gave the customer (and myself) greater confidence in the test results.

How does it work?

Unlike CNMASS, this does not use the mass maintenance tool to do the creation.  MASS doesn’t create data (that I’m aware of) and neither does CNMASS or CNMASSSTATUS either.

When you go to CNMASSCREATE, you’ll see the below screen.

Three quick items to point out at the top:

  1. There is program documentation available.  It documents the basic processing steps which are mostly self-taught but it only takes a minute to read so you might consider going through it.
  2. There is a button available at the top to download the necessary Excel template.  You’ll obviously need to do that in order to get a copy of the load template.
  3. If you don’t see a field for Standard Project Definition, look at note 2577443.

The Load Template

When you press the button to download the template, Excel should launch and a series of tabs and column headings be inserted.  If you get this error “The data you’re pasting isn’t the same size as your selection”…

… go into [File > Options > General] and activate the parameter below.  It requires a restart of Excel.  The template should then download correctly.

A key item to mention is that the download of the template has to be done out of each SAP landscape/platform.  i.e., as a consultant, I can’t just download this once and take it to another customer because that customer’s industry add-ons, EhP, switches… and most importantly… their user fields (i.e., CI_PRPS) could be different.  But assuming that the development-quality-production systems are consistent within a single SAP landscape, downloading it from one environment and using it in any system within that landscape is sufficient.

When you open the file, you’ll see 4 tabs at the bottom.  There is one for the project definition fields (Project Details tab), the WBS element fields (WBS Details tab) and two additional tabs for any custom fields that have been added via the CNEX0006 and CNEX0007 user exits.  These are not the user-defined fields that are delivered on by SAP on the WBS element.

As I said earlier about the download process… in this system, the custom fields haven’t been implemented so the last two tabs are essentially blank.  In one system that I downloaded the file, CI_PROJ hasn’t been implemented and so the template only contains this dummy field from an include called “Project Definition Master Data – Persistent Include”.  I have to be honest, I have no idea what that field is for.  But if your system has custom fields, they’ll be output on those two tabs.

The next step is to fill out the template.  When this first came out, I had some issues where I couldn’t create the project definition and the WBS hiearchy in the same file.  I would load a template with 100 projects and then re-run it using a second file that had all of the WBS elements.  Maybe it was user error or a bug but I don’t have that issue anymore so it’s reasonable to get the full project hierarchy in a single template and load it one time.

Let’s look at my file.  I’ve cleaned up the template to make it a bit easier to work with. I’m creating a single project…

… with 14 WBS elements.

The hardest part of the template is to build out the WBS hierarchy with each node’s parent and superior object.  This is similar to how the data is stored in table PRHI and for a really large project or lots of projects, it’s tricky to get right.

The other option is to leave both columns blank.  This will create all of the WBS as an L1.  If you have a coding mask, you could then use the derive structure function to get the hierarchy structured correctly.  If not, then you’ll have to do it here in Excel and while it’s not hard, it’s definitely tedious.

Executing CNMASSCREATE

There is a background option but I won’t cover it in detail as it behaves as you would expect.  In this case I’m running the file in test mode.

Backing up and running it in update mode.  Looks like everything was created.

If I jump over to CJ20N, I can see the project is created with the right hierarchy (looks like I did that part correctly!).

What else?

Here are a few things I’ve learned from the tool:

  • One nice thing is that you can run the upload with the Excel file open.  You don’t have to exit out of Excel or even close the file.  That said, uploads like this sometimes rely on cursor commands so I wouldn’t do anything with the mouse on the Excel file itself while the upload is taking place.
  • The test run seems to only do a basic technical check.  I will frequently run a file in test with no errors and then get plenty of errors when run in update mode.  It’s not as valuable as I would expect.
  • The messag log isn’t very helpful.  I will frequently get WBSs that error out but without any message at all.  This happens the most when the project has to deal with…
  • Validations/Substitutions seem to be particularly problematic with the upload.  There are times while I’m troubleshooting a load that I’ll have to deactivate the [Automatic Validation/Substitution] parameter on the project profile in order to get the file to load.  Val/Sub will frequently cause an issue with the template and it doesn’t do a good job of communicating the actual error back to the message log (previous point).  Of course, this creates an additional problem because then I have to manually trigger them at CJ20N which is tedious if you have a lot of projects.
  • If you are using the [Standard Project Definition] option, there are a lot of fields on the upload template that become irrelevant.  For instance, the project profile you specify won’t be used; SAP will use the one from the standard project.  Other fields such as the dates and description will be used.  Also, the WBS Details tab isn’t required at all because SAP will get the hierarchy from the standard project.  So, if you’re using this option I’d recommend playing around with it to figure out which fields are truly uploaded from the template.
  • You can use this approach to add WBS elements to already existing projects.  Just leave the Project Details tab blank and reference the project definition in the last column of the WBS details.  I haven’t tried it but I don’t see why it couldn’t load WBS to multiple projects in a single file.
  • As you can probably tell if you’ve gotten this far, the tool only supports the upload of project definitions and WBS elements.  Networks aren’t supported.