ARIS Community - We Love BPM

ARIS scripting tutorials

Eva Klein's picture
by Eva Klein in ARIS BPM Blog posted on 2010-04-27

We have started a new initiative on reports and macros in ARIS. In the next articles you can learn some interesting facts about how to develop scripts in ARIS.

Here, in this post, I will just list the links to the published articles. We won’t post the articles to the blog, because people might not be interested in them. Instead, the articles are posted to the "Reports & Macros in ARIS" group within ARIS Community. You can subscribe to the feed of this group or visit this post from time to time to get updated on the latest features.

Here is a list of report & macro articles, which my colleagues will discuss in the coming weeks here in ARIS Community:


Semantic Check:

There are no attachments
Tom Einar Nyberg posted on 2010-08-26

Very useful to collect these types of treads in one place



Jorge Cavaleiro posted on 2010-10-07

Hi Eva.

Nice and very useful post!


Just a question regarding this topic: do you or does anyone else know if there are any available courses based on a workshop method (or a similar one) besides this one ARIS Report Script Customizing?

Thanks in advance,


ravi kiran posted on 2011-07-20

hi eva i want folder structure of aris using subversions


Srinivas CH posted on 2012-01-18


Can anyone please let me know How to find the model name with the roles that are present in the EPC or any other model.

For example Let us consider I have a group called "Income Tax". In that three model are there,1 EPC("Pay Tax") and 2 Function allocation diagrams.

   In my EPC model, I have three roles like Accountant1,Cashier,Cashier2. Now How can I get the name of the model for the different roles in the output. It should be like..

Group                                    Model                                     Role

1.Income Tax                     Pay Tax                                 Accountant1

2.Income Tax                     Pay Tax                                 Cashier1

3.Income Tax                     Pay Tax                                 Cashier2

Eva Klein posted on 2012-01-18

You can solve this in the following way:

var oOutputFile = Context.createOutputObject();     // Output object
var nLocale = Context.getSelectedLanguage();    // Selected database language
var aGroups = ArisData.getSelectedGroups(); 

oOutputFile.BeginTable(100, Constants.C_BLACK, Constants.C_TRANSPARENT, Constants.FMT_LEFT, 0);  
 //table header
oOutputFile.TableCell("Group", 20, "Arial", 10, Constants.C_BLACK, Constants.C_TRANSPARENT, 0, Constants.FMT_BOLD | Constants.FMT_CENTER | Constants.FMT_VTOP, 0);         
oOutputFile.TableCell("Model", 20, "Arial", 10, Constants.C_BLACK, Constants.C_TRANSPARENT, 0, Constants.FMT_BOLD | Constants.FMT_CENTER | Constants.FMT_VTOP, 0);         
oOutputFile.TableCell("Role", 20, "Arial", 10, Constants.C_BLACK, Constants.C_TRANSPARENT, 0, Constants.FMT_BOLD | Constants.FMT_CENTER | Constants.FMT_VTOP, 0);         

for (var l=0;l<aGroups.length;l++){
    var aModels = aGroups[l].ModelList();     // Array of selected models

    for (var i = 0; i < aModels.length; i++) {  
        var oModel = aModels[i];                    // Current model
        var sModelName = oModel.Name(nLocale);      // Name of current model
        var oRoleOccs = oModel.ObjOccListFilter(Constants.OT_POS);  //you can change "OT_POS" in the object type you are searching for
        for (var k = 0; k < oRoleOccs.length; k++) {
            var role = oRoleOccs[k];
            oOutputFile.TableCell(aGroups[l].Name(nLocale), 20, "Arial", 10, Constants.C_BLACK, Constants.C_TRANSPARENT, 0, Constants.FMT_BOLD | Constants.FMT_LEFT | Constants.FMT_VTOP, 0);         
            oOutputFile.TableCell(sModelName, 20, "Arial", 10, Constants.C_BLACK, Constants.C_TRANSPARENT, 0, Constants.FMT_BOLD | Constants.FMT_LEFT | Constants.FMT_VTOP, 0);         
            oOutputFile.TableCell(role.ObjDef().Name(nLocale), 20, "Arial", 10, Constants.C_BLACK, Constants.C_TRANSPARENT, 0, Constants.FMT_BOLD | Constants.FMT_LEFT | Constants.FMT_VTOP, 0);         
oOutputFile.EndTable("", 100, "Arial", 10, Constants.C_BLACK, Constants.C_TRANSPARENT, 0, Constants.FMT_LEFT | Constants.FMT_VTOP, 0);

If you have further questions please feel free to ask!


Pankaj Patel posted on 2016-01-03


I need to add checkboxes with username in the report script so that the checkboxes symbol and values are created in the Word document format output.

Example of the output result: Checkbox1  Name1

                                               Checkbox2 Name2 ...   

Thanks in advance.



Mark Madavi posted on 2012-01-18

If you are just interesed in the model path, you can use Find at the Main Group level, searching for objects of the type you want- Roles in your case, and the symbols you use for them (or all symbols). The Group column in the results will have the full path to each model. You can then select all the rows, and copy and paste them to an Excel spreadsheet. In the spreadsheet, the whole path will be inserted into one column. If you need to separate them, you can use Excel's "Text To Column" function using "\" as a separator. You will then have one column for each level of the hierarcy.

I hope this helps, as an alternative to scripting.

Srinivas CH posted on 2012-01-19

Thank you very much Eva and Mark for your solutions.


Srinivas CH posted on 2012-02-20


Have a nice day


Roberto Feliciano posted on 2012-03-20

Hi All,

I'm trying to find a report that will give me all the Source Objects (roles) and their Targeted Object (Business Process Step).


For purposes of this example, I'm looking for this two roles and let's say that I have the Reviewer Role connected (carries out) to the 1.1.3 function object in the 1.1 EPC and the Processor Role connected (carries out) to the 5.4.9 function object in the 5.4 EPC.

I'm trying to find a report(if there is one available) that will output something similar to this information.

Role (Person Type)     Business Process Step (Hierarchy number)

Reviewer   -----------------------  1.1.3

Processor-----------------------   5.4.9

The way I'm doing it right now is doing a "Find" in the Main Group, What: "Models", Type: EPC, Start, Select All, right click, evaluate, Start Report, Output object information (table), Output Relationship.

Then I do a cross-reference for the GUID, source name and targeted object name and then I get the Hierarchy number that in my case will be the business process step number that i'm looking for.

Is there a simple way of getting this information?

I appreciate your help on this matter.  :)




Elaine Wrobel posted on 2012-03-20

Hi Roberto,

I am not much into programming, so I create reports using the WYSIWYG tool.

In the Reports module, start a new report. Fill out all the General information, and under context select the model types your report will be generated from (e.g. EPC).
Insert a Data Table with 2 columns. Select Object Ocurrences (filterable by type) > Connection list (filterable) as parameters. Select the Person type as the object type you want to be listed (under Sort by you can play around with the order you want it to output in your report; you don't need to change the Direction fields).
Insert a Data Field in the first column of your table and select Source object > Name (the source object in this case is the Role).
Insert a Data Field in the second column of your table and select Target object > Name (the target object in this case is the Function).

I know I was pretty high level here in my explanation, but I think you will get the info you need.


Roberto Feliciano posted on 2012-03-21

Hi Elaine, thanks for the quick response.  I was able in somewhat way to create the report, but don't know how to do the Select Object Ocurrences (filterable by type), etc.

I haven't used Aris in a long time and have never created a report before.  Please see the below screen shot.  this is what I have so far.  Don't know if I'm heading the correct path or not.

Please advise.

Thanks again for your time.


Roberto Feliciano posted on 2012-03-21

Hi Elaine,

I was able to create the report! Thanks so much for your help.

Also, I'm trying to output the hierarchy number of the function object that the person type(role) is connected to.  I'm not able to find it there.

I'm guessing I will need to create another column to output this attribute and there I will have the option to select the attribute needed?

Please advise.

Thanks so much again for your help.  :)

 Have a great day!

Roberto Feliciano posted on 2012-03-21

Hi Elaine,

Just figured it out! ;)

Thanks for your help.  :)

Elaine Wrobel posted on 2012-03-21

Hi Roberto,

I'm glad I could help.
I usually test the different parameters to see what outputs I can get and it's been working very well for me. I created fairly complex reports using this method!


Lubo Lambo posted on 2014-07-30

I am trying to write a script that makes the connections with one and same lenght. Could you help me, please

Pierre-Alain MILLET posted on 2016-06-22


thanks again for these very helpful materials

A question regarding assigned models,

Using designer, I want a table with objects and assigned models

But when creating a datatable based on object, i do not see any "assignment" relation available

and when i use the "assigned models" query, it do not see the objects linked..

Thanks in advance for your advise..




Rachmat Fajar posted on 2016-06-28

Hi All ,

I want to create a script or script copy the database syn subgroups and a model of the database group in the group database x to y and z, so that each of the content in the database y and z will be the same database with a database of x, every script is run it.

please help me ,
what has reference links about it?





JAI VISHWAKARMA posted on 2016-11-30

Great help. Thank you community members.