
An ERP veteran discovers that sometimes the best solution to a classic M3 problem is asking AI nicely.
At Vince we develop solutions for extra authority control, like our Segregation of Duties module. Yesterday I was again told that one of our customers struggled with the setup of Roles in M3.
With many M3 users in a multinational environment it’s a tough job to sort out which programs should be connected to which roles and then connect roles to the appropriate users.
I’m a 55 year old M3-veteran and there are, to my knowledge, no quick fixes that solve this dilemma. But Audun, our CEO, tells us to always think of AI. So I did.
1) Create Excel-file with history
First, I created an excel file containing the history of what programs that has been used historically by which user. This can be done in different ways, In my case I extracted the file CSYSTR (program settings) and CSYSTP (start values).
I merged these so I get one sheet containing the unique combinations of USER, PROGRAM, LAST CHANGE DATE.
I also joined in file CMNFNG to capture the program (function description) TX40 to be added.
These things can of course be done using different tools, in my case I built it by creating new APIs with CMS010 and then extracting with our solution Vince Excel Add-In. But any other method will do of course.
Please note that these files do not capture 100% of used programs in M3, there are other ways of retrieving same information from the M3 user interface, depending on M3 version. Regardless of method it might be good to make selections on last used, exclude people no longer employed etc.
2) ChatGPT instruction
In ChatGPT, I attached the Excel file I created in step 1.
Then, after a few iterations, I gave the following instructions:
The file shows users (Resp in table) who have used different programs. I’m looking for a suggestion for suitable roles.
Each role then consists of a number of programs. A program can exist in several roles.
These roles should then be linked to the users so that they relate to all the programs they have used.
Please create a minimum number of roles and skip the ones with only one program. Also I wish a suggestion of role names based on the program descriptions (TX40).
3) Response from ChatGPT
After roughly 3 minutes I get this reply from ChatGPT:
I’ve created a minimal set of roles, skipping single-program ones, by clustering programs that are frequently used together. The role names were suggested automatically from the program descriptions (TX40).
What you get:
- Suggested Roles (clustered, named) – compact role list with meaningful names.
- User → Roles – which roles each user belongs to.
Excel file with all results: Download roles_minimal_named.xlsx
Would you like me to also generate a short summary report (PDF/Word) with each role,its suggested name, included programs, and number of users, so it’s easier to present?
In short: I WAS BLOWN AWAY!
4) Using the results
The returned Excel document looked like this:

There was of course a second sheet assigning these roles to the users.
Now, I do not seek the full fury of my fellow colleagues so I did not continue at this point updating our test environment. However, this is what I would have done in a realistic scenario:
- Adjust the ID and names of these roles to my liking in Excel
- Take care manually on all those programs only used by one person, perhaps create a few new roles for those.
- Update M3 using Vince Excel Add-In (with existing APIs)
For more tips and insights, go to our Insights blog