ARIS Community - We Love BPM

Converting every instance of the "Person" type into "Role" type in Architect

Miguel_'s picture
by Miguel Miguel in Reports & Macros posted on 2018-01-26


The project's database I'm working on uses the "Internal Person" symbol (Person type) to denote who participates in an activity (function), supposedly because when the project started the Person type was required for compatibility reasons with other systems.

The issue with using the Person type is that when converting the EPC flow to BPMN, the system won't be able to tell who the different actors of the process are and therefore it will show the entire flow inside a single lane. This is troublesome, since one of the goals of the project is to eventually document the flow of every process using BPMN, and because there are countless activities and processes already, it's not realistic to manually convert every instance of the Person type into the role type.

My question is, is there any way to check an entire database and automatically convert every instance of the "Person" type into "Role" type, without disrupting the work already in place ? I've tried the Report function, but don't know nearly enough to be comfortable using it.


Thanks in advance.


There are no attachments
Kay Fischbach posted on 2018-01-31

What you are trying to do is a little bit more complicated than it might first seem. The biggest problem is that ARIS works with two types, "Object Type" and "Symbol Type". Every object definition (each object definition is located within a certain group) has an "Object Type" and every Object occurrence (each object occurrence is located within a certain model) has a "Symbol Type". A single object occurrence always has exactly 1 object definition, but one object definition can have many object occurrences.

What you are trying to do is not only changing the symbol type, but also the object type. Abstract example: You are not trying to turn a red car into a blue car, instead you are trying to turn a red car into a blue helicopter.

Is it possible with standard ARIS functionality? No, I don't think so. Is it possible with a report? Certainly yes, reports are very powerful. Does it require a lot of work? Also yes, it would require a lot of work. Note: It is impossible to do what you want with the What-you-see-is-what you-get editor alone, considering it only allows object evaluation while you need object manipulation. So be prepared to do the scripting manually.

Basically what you would need to do is

  1. create new object definitions with the object type Role wherever you find a object definition with the type Person
  2. Copy the value of all maintained attributes from the Person object definition into the new Role object definition
  3. Obtain a list of all Object Occurrences for each Person, store the Function - Person connection type, connection points and the occurrence position, delete the Person occurrence and then create a new Role occurrence with the newly created Role Object Definition. Lastly create a new connection, taking the stored connection type and connection points as a reference.

If you have no experience with Javascript, most importantly the For each/In loop structure I would not recommend that you develop such a report. Go get a Javascript crash course first. If you do understand the basics of Javascript and the before mentioned loop structure, it is not that hard to do the ArisScript report development.

I also recommend checking out the ARIS scripting tutorials, although they are a little bit old (nearly 8 years old) they still serve as good learning material to get started with ArisScript.

Stuff not mentioned in the tutorial:

  • Script method help: find it by clicking on the question mark in the upper right corner of the ARIS Architect software and then picking "ARIS Script" (At least that's where it is located for me in ARIS 9.8.5).
  • During development when your text insertion mark rests on a ArisScript method name press the "F1" key to open the script method help directly at the page of the method. Very useful when you want to know what you can do with a returned object, but also useful for just finding out what a method actually does
Robert Goldenbaum posted on 2018-01-31


well, there is a standard report for this: "Replace object types" below Administration (start context database). The problem with this report is, that it is a standard report :-)   So you will have to go through multiple dialogs to select just the right mapping of object types, symbol types and especially connection types.

It could be easier to get a script for just your use case from one of the report solution providers available on the market.

BR Robert

M. Zschuckelt posted on 2018-02-06

Good point Robert. Suggestion: Do some thorough testing on some copies of your production database first to make sure that you get the report settings right for the result you desire to achieve. And before you finally let it go on production, another backup is most advisable. There is no other simple way of undoing this.