Combination View Flat View Tree View
Threads [ Previous | Next ]
toggle
What does NAMEGEN do?
Answer
1/9/19 1:48 PM
Hi

While looking through the BPMN Library I found an attribute called "__NameGeneration__". The default value of that attribute starts with (what looks like) a keyword called "NAMEGEN". This reminded me of attributes like "AttrRep", "GraphRep" or "Class cardinality". However, I was not able to find anything about "NAMEGEN" in the development-toolkit help file.

So my questions are: What does it do? How does it work? Do I need it (my guess: it is optional)?

Here is the code from the ALL:
1ATTRIBUTE <__NameGeneration__>
2TYPE STRING
3VALUE "NAMEGEN srcattr:\"Referenced subprocess\" format:\"%m\""

RE: What does NAMEGEN do?
Answer
10/9/14 10:18 AM as a reply to Patrik.
Dear Patrick,

the instance name generation function is effective for those classes which own an instance attribute __NameGeneration__ of type STRING. It can be executed by selecting the menu item "Edit" - "Update object attributes" - "Generate object names".

The name generation is just taking a specified reference attribute value and assigning it as the new instance name. This is done for all instances of classes which have a name generation definition. If the reference attribute is of type INTERREF an output format can be specified. So just the object name of an inter-model reference could be assigned. The reference attribute and the output format are specified in the attribute's default value (attribute value of class).Sometimes the user gives his own names to objects and does not want them to be overwritten. For the reason of recognizing if a name was generated or has been choosen by the user the name which was generated at last is saved in __NameGeneration__ of each instance. If the current instance name differs from the last name the instance name keeps unchanged.


The syntax of the language for the generation of instance names is based on the following grammar:

NameGenDefinition :                             NAMEGEN srcattr:attrName [ format:outputFormat ] [attrprofattr:attrProfAttrName]
NameGenValue :                                   NAMEGEN last:lastAttrName  
attrName, outputFormat, attrProfAttrName and lastInstName are string values.

The value of the atttribute specified by attrName is used for the name generation.
1.   If this attribute is an INTERREF attribute, the format can be specified by outputFormat.outputFormat can be any string. The following characters are replaced by attribute value information:
  • %m model name
  • %t model type
  • %o instance name
  • %c class name
The default value for instance (object) references is "%o (%c) - %m (%t)", the default value for model references is "%m (%t)"

2.    If the attribute specified by attrName is of type ATTRPROFILEREFERENCE, the value of an attribute of the referenced   attribute-profile-instance can be defined for name generation. In this case the attribute-profile-attribute can be specified by attrProfAttrName. If the ATTRPROFILEREFERENCE does not reference an instance of the attribute-profile-class, the default values defined for the attribute-profile-class are used for name generation (if there are defined default values in for the class).

RE: What does NAMEGEN do?
Answer
10/20/14 6:05 AM as a reply to Patrik.
Thanks, that answers my questions.

RE: What does NAMEGEN do?
Answer
10/29/14 10:48 AM as a reply to Mehmet Albayrak.
I have found another attribute that looks important, but I am not sure what it does. It is found in the Sub-Process class of the BPMN Library. This is the ALL code in question:
1CLASSATTRIBUTE <__PointerAttribute_IgnoreCall__>
2    TYPE STRING
3    VALUE "Suppress Sub-Process"
What is this one used for?

RE: What does NAMEGEN do?
Answer
10/29/14 11:36 AM as a reply to Patrik.
Dear Patrik,
this attribute is used in the simulation component. It enables the simulation process to skip the defined sub-process.
To realize this functionality you have to do the following step by step instructions
1.     Add an instance attribute of type STRING or ENUMERATION to the subprocess call class. The attribute can have any name (e.g. "Suppress Sub-Process"), but it must be able to hold the value "Yes" (and maybe also other values, like e.g. "No").
2.     Add a class attribute named "__PointerAttribute_IgnoreCall__" to the subprocess call class. (Type STRING.)
3.     The value of this attribute must be the name of the first attribute.
Now when the user enters the value "Yes" in the first attribute, then the simulation will skip this subprocess call and not simulate it. The subprocess call object is then considered to be a "neutral object".

RE: What does NAMEGEN do?
Answer
10/29/14 11:39 AM as a reply to Mehmet Albayrak.
Thanks

RE: What does NAMEGEN do?
Answer
10/30/14 8:50 AM as a reply to Mehmet Albayrak.
Since I didn't find it anywhere mentioned, I post it here so it can be found in the future. Also I do have one question about it.

I came accros a "__Manual__" class attribute for the Random Generator. Like the "__PointerAttribute_IgnoreCall__" class attribute it contained the name of another instance attribute. The help text of the instance attribute contained the following: "The activation of the 'Manual random generator' (Value 'Yes') enables the manual allocation of variables during the simulation. The activation of the 'Manual random generator' is visualised by the system with a hand symbol in the graphical representation (on the left above the random generator object)."

Does this mean that the user selects the variable value for every simulation? So if the user uses the "default" 1000 number of simulations during the Path analysis, would the user have to specify the variable value 1000 times before they finally get the result?

RE: What does NAMEGEN do?
Answer
11/5/14 7:54 PM as a reply to Patrik.
Yes!
Possibly, you do not want to do that for 1000 runs, but the functionality is there! You can try that when you have a look in the implementation in BPMN.