OpcenterEXFN UserManual
OpcenterEXFN UserManual
OpcenterEXFN UserManual
User Manual
07/2021
PL20210506303162726
Guidelines
This manual contains notes of varying importance that should be read with care; i.e.:
Important:
Highlights key information on handling the product, the product itself or to a particular part of the documentation.
Note: Provides supplementary information regarding handling the product, the product itself or a specific part of
the documentation.
Trademarks
All names identified by ® are registered trademarks of Siemens AG.
The remaining trademarks in this publication may be trademarks whose use by third parties for their own purposes
could violate the rights of the owner.
Disclaimer of Liability
We have reviewed the contents of this publication to ensure consistency with the hardware and software
described. Since variance cannot be precluded entirely, we cannot guarantee full consistency. However, the
information in this publication is reviewed regularly and any necessary corrections are included in subsequent
editions.
Security information
Siemens provides products and solutions with industrial security functions that support the secure operation of
plants, systems, machines and networks. In order to protect plants, systems, machines and networks against
cyber threats, it is necessary to implement – and continuously maintain – a holistic, state-of-the-art industrial
security concept. Siemens’ products and solutions only form one element of such a concept.
Customer is responsible to prevent unauthorized access to its plants, systems, machines and networks. Systems,
machines and components should only be connected to the enterprise network or the internet if and to the extent
necessary and with appropriate security measures (e.g. use of firewalls and network segmentation) in place.
Additionally, Siemens’ guidance on appropriate security measures should be taken into account. For more
information about industrial security, please visit https://www.siemens.com/industrialsecurity.
Siemens’ products and solutions undergo continuous development to make them more secure. Siemens strongly
recommends to apply product updates as soon as available and to always use the latest product versions. Use of
product versions that are no longer supported, and failure to apply latest updates may increase customer’s
exposure to cyber threats.
To stay informed about product updates, subscribe to the Siemens Industrial Security RSS Feed under https://
www.siemens.com/industrialsecurity.
Category Runtime
Revision PL20210506303162726
State Published
Author Siemens AG
Language en-US
UI Common Functionalities
UI Common Functionalities
Mode To select the required display style, which can be either Table or
List.
User To customize the current view by setting user preferences. You can
Preference choose column visibility, column order or tile property visibility
and the applied settings will be saved as default for the logged on
user.
Download To download the records that are listed in the table in the csv file
as csv format.
Help To view the help content related to the current screen. The icon is
always visible and behaves differently according to the following
circumstances:
• If either the help code or the page title is available along with
documentation, the system will display a modal popup with
help documentation.
• If either the help code or the page title is available but there is
no documentation loaded in the Documentation Center, the
system will display a warning popup with the following
message: No help available for <TITLE>.
• If either the help code or the page title is not available and
there is no documentation loaded in the Documentation
Center, the system will display a warning popup with the
following message: No help available.
Select All To select all the rows when the display Mode is Table.
While Select All checkbox is selected, rows that would be newly
added and the rows that are loaded by scrolling in server side
pagination will be selected automatically.
A convention on field names is applied for which in most of the screens the Id field corresponds to
the NId table property.
While selecting text from a row, selection of the row will be toggled. If text is long and some part of the text
is replaced by an ellipsis, respective column must be expanded to select hidden text.
When you click on a home card, the configured home tiles will be displayed in the same page by means of an in-
page scroll-down action.
The navigation menu will be based on the categories and the quick search will be configured to search by home
tiles.
As far as the sidebar navigation is concerned, Home card based categorization will not be applicable with this
option and the navigation menu will be based either on the included UI Modules or on the custom folders.
For more information on the available cards and on how to configure the home page, see Creating a UI Application
in the Opcenter Execution Foundation Development and Configuration Guide.
2 System Apps
The Opcenter EX FN System Apps are:
• Application Log App
• APS Interface App
• Audit Trail App
• Automation App
• Data Segregation App
• Signals App
• System App
For more information, see How To Manage Application Logs in Opcenter Execution Foundation Development and
Configuration Guide.
In Solution Studio:
1. Build and deploy the solution, then update the database to store packaged messages in the engineering
repository.
2. Install the Application Log App and associate its UI modules.
For more information on Solution Studio deploy procedures, see How to Deploy a Manufacturing Solution in
Opcenter Execution Foundation Development and Configuration Guide.
In the UI Application, access the Application Log page to view the logged messages.
Traces all actions Traces only application level Trace Viewer logs all the actions carried out by
messages the platform (such as command execution,
authentication, queries on the database), while
Application Log traces only application level
messages.
Is more development Is more end-user oriented Trace Viewer is more suitable for advanced
oriented troubleshooting issues since it is highly verbose
and technical. Moreover it can contain logs
generated by the business logic, in terms of
command/event handlers, if the code uses them.
On the other hand Application Log is more
functional and end-user oriented. Consequently,
its messages are also more readable, and they
can be translated.
Stores logs in a database Stores logs in a database Both applications can store logs in a database,
but database maintenance and database maintenance but while Application Log can apply standard
is custom is standard provided maintenance procedures to clean old messages,
for Trace Viewer the database maintenance is
custom.
Logs can be filtered and Logs can be filtered by level, In Trace Viewer, logs are classified in levels (from
sorted out by level and business command and verbose to critical), and in providers (representing
provider source Functional Block or the "component" which has generated a certain
App log). Levels and providers can be used to filter
messages, both in view mode and in storage
mode (to avoid that logs let the database grow in
uncontrolled way). In Application Log, logs can be
defined as different levels (from verbose to
critical as in Trace Viewer), return the name of the
business command that generated them, as well
as the "owners" of the commands (typically
Functional Blocks, Apps or Extension Apps).
For more information on Trace Viewer, see Logging and Analyzing Application Traces with Trace Viewer in Opcenter
Execution Foundation Development and Configuration Guide.
2.1.2.1 Prerequisites
• Application log messages are defined and packaged for every Functional Block/App/Extension App for which
you wish to log messages.
• All the defined messages are logged to the runtime database by means of the Application Log platform API.
• All the required Apps and the Application Log App are installed and the related UI Modules are associated to
your UI Application, for which you wish to view the application log messages.
• All standard operations such as building the packages, deploying the solution, updating the database (if
needed) and starting the host services have been executed.
Please refer to respective sections of Managing the Application Log File in the Opcenter Execution
Foundation Development and Configuration Guide for more information on how to accomplish
prerequisites and to view application log messages in different languages.
Allowed Operations
The Application Log page provides common UI functionalities to view application log messages. The filter
functionality lets you build a combination of multiple clauses to retrieve the most relevant application log
messages.
RootCommand (CorrelationId) The value that aggregates the commands that generated the
application log messages. This value is a combination of
RootCommand and CorrelationId.
Root Command The short name of the root command of the commands that
generated the application log messages.
Command The short name of the command that generated the application
log messages.
Owner The name of Functional Block, App or Extension App that owns
the application log messages.
Timestamp (UTC) The system time at which application log messages are
generated.
Field Description
Short Message A short text of application log message that has been logged in runtime
environment.
Long Message A long text of application log message that has been logged in runtime
environment. A long text contains more verbosity than a short text for a
message.
This configuration allows you to select application log messages as candidates to be processed by Data
Maintenance engine from Solution Studio. When a configuration with a default cleaning condition
All_ToBeCleaned_Entities is created for Data Maintenance from Solution Studio, the system will automatically
delete the candidate rows selected from the Application Log Maintenance from the runtime database. See What is
Maintenance in Opcenter Execution Foundation Development and Configuration Guide for more information on
Maintenance.
Workflow
A Rule can be created and configured by the following steps, explained further in the page
1. Create a Rule
2. Create a Condition Setting for the Maintenance Rule
3. (Optional) Create a Cleaning Schedule for the Maintenance Rule
A Maintenance Rule for application log can be scheduled for recurrent executions and can also run manually on
demand. However there can be only one execution of a Rule at any point of time. Executions spanning more than 12
hours will be ignored by the system to facilitate upcoming executions and the details of such executions will not be
updated in the overview tab of Application Log Maintenance Rule.
Prerequisites
Application log messages to be cleaned, based on the Rules configured in the Maintenance Rule screen
also requires a Data Maintenance configuration with the default cleaning condition All_ToBeCleaned_Entities to
be created and activated in Solution Studio.
See What is Maintenance in Opcenter Execution Foundation Development and Configuration Guide for more
information on Maintenance in Solution Studio.
Last Run Indicates the date and time of the previous run.
Number of Rows Indicates the number of rows selected to be cleaned in the previous run.
Result Indicates the status of the last run. Is one of the following: Failure, Success.
Next Run Indicates the scheduled date and time of the next execution of the rule.
Operation Description
Update a Application Log Maintenance Rule To modify a Rule by changing the Name and
Description.
Id The logical identifier assigned to the Rule. Once the Rule is created the field Id cannot
be modified.
Parameter Description
Updating a Rule
1. In the Application Log Maintenance Rule page, select the rule you want to edit and click .
2. In the Update Rule side panel, modify the Name and/or Description, if needed.
3. Save changes.
Deleting a Rule
In the Application Log Maintenance Rule page, select the rule you want to delete and click .
A recurrent execution of a Rule will be skipped if there is any on going execution at the scheduled time.
Upon Disabling a Schedule, the status of the Rule Execution will be set to Disabled and the Next Run field
will be reset until the Rule is again enabled for scheduled executions.
Run Now cannot be performed on a Rule if there is any on going execution, one has to wait until the
execution is completed.
Reloading a Rule
In the Application Log Maintenance Rule page, select the rule you want to reload and click .
Audit Trail data is available if the Audit Trail App is deployed and properly configured. For instructions,
see the Audit Trail App documentation.
To display the Audit Trail of a Application Log Maintenance Rule, select the Rule and then navigate to the Audit Trail
tab.
The Audit Trail tab shows the list of all changes performed on the selected Rule.
To see more details about each Audit Trail entry, click the arrow to the left of each row. This expands the details
of the respective Audit Trail entry.
Prerequisites
Rule must be created. See Configuring Rule for more details.
Operation Description
Update a Condition Setting To modify a Condition Setting by changing the Name, Description and
Condition Clauses.
3. In the Condition Settings tab, click to open the Add Condition Setting side panel.
4. In the Add Condition Setting side panel, provide the following information
Parameter Description
Id The logical identifier assigned to the Condition Setting. Once the Condition Setting
is created the field Id cannot be modified.
Condition Clauses Conditions to determine the application log messages that should be cleaned.
Maximum of 10 clauses are allowed. See Defining Condition Clauses for more
information.
5. Save changes
When the Level field is configured with the operator< or <= the Application Log messages with severity
lower than the selected Level will be considered for cleaning. For example "Level < Warning" means the
application log messages with Informational and Verbose levels will be considered for cleaning.
If you want to group clauses, click for each filter clause you want to group, and then select And or Or for the
first clause in the group.
Prerequisites
Rule must be created. See Configuring Rule for more details.
Time Zone Info Indicates the timezone in which the Schedule is configured.
Recurrence Indicates the number of hours (hourly recurrence type) or days (daily recurrence type).
Operation Description
3. In the Schedule tab, click Create New to open Add Schedule side panel.
4. In the Add Schedule side panel, provide the following information
Parameter Description
Start Date The fixed date and time when the Rule is Scheduled to start. By
default the current date and time will be selected.
End Date (Optional) The fixed date and time when the schedule must expire.
Schedule Mode The type of recurrence configured for the schedule. Three options-
Hourly Schedule, Daily Schedule and Weekly Schedule are provided.
By default Hourly Schedule is selected.
It Recurs Every The recurrence value of the Schedule according to the chosen
Schedule Mode as per number of days/hours or as specific week days.
5. Save changes.
When you create a periodic schedule for a rule, you should take the following limitation into account:
• The start time of a Schedule must be at least two minutes ahead of the time when Enable Schedule will
be performed, otherwise enabling a schedule will fail.
Updating a schedule
1. In the Application Log Maintenance Rule page, click the Schedule tab.
2. In the Schedule tab, click to open the Edit Schedule side panel.
3. In the Edit Schedule side panel, modify Name and/or Description if needed.
4. Modify Start Date, End Date, Timezone, Schedule Mode and the recurrence value according to the selected
schedule mode if needed.
5. Save changes.
Deleting a schedule
1. In the Application Log Maintenance Rule page, click the Schedule tab.
2. In the schedules tab, click .
These commands can be also used to detect interactions with Opcenter APS:
• when Opcenter APS starts updating data related to the scheduling, such as Work Order Operations and their
respective runtime equipment,
• when scheduling has been done,
• when the scheduling activity has been cancelled.
By default:
• The runtime environment resources are retrieved by Opcenter APS when it starts.
• Opcenter APS must be restarted to retrieve the latest state of the available resources of the runtime
environment.
• For detailed information on the artifacts contained in this Functional Block, see the APSInterface_OP
Reference Guide.
• For detailed information about the Entities mapping the views, see the APSInterface App Reference
Guide.
• For a general understanding of Functional Blocks, refer to the Overview of Functional Blocks section of
the Opcenter Execution Foundation Development and Configuration Guide.
Workflow
In order to use the APS Interface App, a System Integrator must take the following steps:
1. Create the views (required for the Entities of the the APS Interface App) within the data model.
The products based on Opcenter Execution Foundation provide the relevant script(s) to generate these
views.
This documentation does not provide such a script. It only provides basic information about what
these views must contain in terms of fields and their respective format.
We recommend that you contact the experts of Opcenter APS in order to perform this step.
Consider the creation of a package to perform the necessary bindings between the views and the data
model used by Opcenter APS.
Next step
In order to quickly customize the exposed data to Opcenter APS, see Quick Customization Related to the Views of
the APS Interface App.
We recommend that products based on Opcenter Execution Foundation implement the creation of the
views within their setup procedures.
To get a better understanding about the meaning of each view field, please refer to the Reference Guide of the APS
Interface App. The view fields are used to defined the properties of the Entities. The property names coincide with
the names of the view fields.
List of views:
• APSOperationRelation
• APSOperationResource
• APSOrder
• APSOrderStatus
• APSOrderOperation
• APSOrderOperationStatus
• APSResource
• APSResourceGroup
• APSResourceGroupMatrix
In order to quickly customize the exposed data to Opcenter APS, see chapter Quick Customization Related
to the Views of the APS Interface App.
APSOperationRelation view
Field Type
Id INT
DependencyType INT
OpderNId NVARCHAR(MAX)
OperationNId NVARCHAR(MAX)
OperationStatus NVARCHAR(MAX)
PredessorOperationNId NVARCHAR(MAX)
Type NVARCHAR(1)
APSOperationResource view
Field Type
Id INT
OperationNId NVARCHAR(MAX)
OpderNId NVARCHAR(MAX)
OperationStatus NVARCHAR(MAX)
ResourceNId NVARCHAR(MAX)
Sequence INT
Type NVARCHAR(1)
APSOrder view
Field Type
Id INT
DueDate DATETIMEOFFSET(7))
Field Type
OrderNId NVARCHAR(MAX)
OrderNote NVARCHAR(MAX)
Priority INT
ProductionType INT
Quantity DECIMAL(18,3)
ProductName NVARCHAR(MAX)
ProductNid NVARCHAR(MAX)
OrderStatus NVARCHAR(MAX)
Type NVARCHAR(1)
CustomField1 NVARCHAR(MAX)
CustomField2 NVARCHAR(MAX)
CustomField3 NVARCHAR(MAX)
CustomField4 NVARCHAR(MAX)
CustomField5 NVARCHAR(MAX)
CustomField6 NVARCHAR(MAX)
CustomField7 NVARCHAR(MAX)
CustomField8 NVARCHAR(MAX)
CustomField9 NVARCHAR(MAX)
CustomField10 NVARCHAR(MAX)
APSOrderStatus View
Field Type
Id INT
NId NVARCHAR(50)
Description NVARCHAR(50)
Field Type
Color INT
StateMachineNID NVARCHAR(MAX)
APSOrderOperation view
Field Type
Id INT
PlannedEndTime DATETIMEOFFSET(7))
ActualEndTime DATETIMEOFFSET(7))
PlannedResourceNId NVARCHAR(MAX)
ActualResourceNId NVARCHAR(MAX)
ResourceGroupNId NVARCHAR(MAX)
PlannedStartTime DATETIMEOFFSET(7))
ActualStartTime DATETIMEOFFSET(7))
Locked INT
OperationName NVARCHAR(MAX)
OperationNid NVARCHAR(MAX)
OperationSequence INT
OrderNId NVARCHAR(MAX)
ProcessRate DECIMAL(18,3)
ProcessTime INT
ProcessTimeType INT
OperationStatus NVARCHAR(MAX)
Type NVARCHAR(1)
CustomField1 NVARCHAR(MAX)
CustomField2 NVARCHAR(MAX)
Field Type
CustomField3 NVARCHAR(MAX)
CustomField4 NVARCHAR(MAX)
CustomField5 NVARCHAR(MAX)
CustomField6 NVARCHAR(MAX)
CustomField7 NVARCHAR(MAX)
CustomField8 NVARCHAR(MAX)
CustomField9 NVARCHAR(MAX)
CustomField10 NVARCHAR(MAX)
APSOrderOperationStatus view
Field Type
Id INT
NId NVARCHAR(50)
Description NVARCHAR(50)
Color IN
StateMachineNID NVARCHAR(MAX)
APSResource view
Field Type
Id INT
ResourceName NVARCHAR(MAX)
ResourceNId NVARCHAR(MAX)
ResourceLevel NVARCHAR(MAX)
ResourceType NVARCHAR(MAX)
CustomField1 NVARCHAR(MAX)
CustomField2 NVARCHAR(MAX)
Field Type
CustomField3 NVARCHAR(MAX)
CustomField4 NVARCHAR(MAX)
CustomField5 NVARCHAR(MAX)
CustomField6 NVARCHAR(MAX)
CustomField7 NVARCHAR(MAX)
CustomField8 NVARCHAR(MAX)
CustomField9 NVARCHAR(MAX)
CustomField10 NVARCHAR(MAX)
APSResourceGroup view
Field Type
Id INT
ResourceGroupName NVARCHAR(MAX)
ResourceGroupNId NVARCHAR(MAX)
ResourceCategory NVARCHAR(MAX)
ResourceType NVARCHAR(MAX)
CustomField1 NVARCHAR(MAX)
CustomField2 NVARCHAR(MAX)
CustomField3 NVARCHAR(MAX)
CustomField4 NVARCHAR(MAX)
CustomField5 NVARCHAR(MAX)
CustomField6 NVARCHAR(MAX)
CustomField7 NVARCHAR(MAX)
CustomField8 NVARCHAR(MAX)
CustomField9 NVARCHAR(MAX)
Field Type
CustomField10 NVARCHAR(MAX)
APSResourceGroupMatrix view
Field Type
Id INT
ResourceNId NVARCHAR(MAX)
ResourceGroupNId NVARCHAR(MAX)
2.2.2 Quick Customization Related to the Views of the APS Interface App
For System Integrators, Opcenter Execution Foundation facilitates the addition of data exposed to Opcenter
Advanced Planning & Scheduling regarding Entities provided by the APS Interface App.
These Entities depend on views.
Beware that the creation of these views is the responsibility of the System Integrator.
For several of these the Entities, there are eleven Properties dedicated to facilitate customization. These Properties
are named and numbered CustomField1, CustomField2, CustomField3, ..., CustomField10.
The views that provide theses custom fields are:
• APSOrder
• APSOrderOperation
• APSResource
• APSResourceGroup
Prerequisites
The Views mapped by the APS Interface App have been created by the System Integrator.
Workflow
1. Identify the code source that creates the APSOrder, APSOrderOperation, APSResource,
and APSResourceGroup. views.
2. Customize the code source of these views in order to populate the query fields with relevant data required by
your integration.
3. Customize the binding within Opcenter Advanced Planning & Scheduling for these custom fields. Please context
an Opcenter APS for further information if you need assistance.
• ES_SD
• ES_MS
For detailed information on the artifacts contained in these Functional Blocks, see the Reference Documentation of
the Functional Block.
For a general understanding of Functional Blocks, refer to Overview of Functional Blocks section of the Opcenter
Execution Foundation Development and Configuration Guide.
Entities in composition You can set the audit trail attribute only on the parent entity
and the system automatically makes all the composition parts
to audit trail relevant.
Derived entities (physical extension) You can set the audit trail attribute only on the root
entity and the system automatically propagates the audit trail
to all the derived entities.
Facets (logical extension) You can set the audit trail attribute only on the parent
entity and the system automatically propagates the audit trail
to all its facets.
Workflow
1. Add the Audit Trail App to the Solution.
2. Configure the audit trail relevant entities.
3. Configure the audit trail access rights.
4. Enable the configuration at runtime.
According to the selected entity types and their relationships within the data model, the system will automatically
apply the audit trail to some related model objects, as described below in the Audit trail behavior for related entity
types section.
The audit trail configuration is saved in the Engineering Repository and there can only be one configuration for the
Solution.
Operation Description
Create a new configuration from scratch To create a new configuration and enable it.
Entities in composition You can set the audit trail attribute only on the parent entity
and the system automatically makes all the composition
parts to audit trail relevant.
Derived entities (physical extension) You can set the audit trail attribute only on the root
entity and the system automatically propagates the audit trail
to all the derived entities.
Facets (logical extension) You can set the audit trail attribute only on the parent
entity and the system automatically propagates the audit trail
to all its facets.
To make the selection easier, you can search by entities or by entity domains. In case of extended
entities, you can also search by parts, facets or extended entities and the system will return the
associated base entity, enriched with the information on related parts, facets or extended entities (this
information can be accessed by clicking on the arrow icon placed next to the returned entity).
4. If you want to make this configuration ready to be deployed, select the Enable check box. The configuration is
not applied now, but it will be ready for tracking records after the Solution deployment (see Enabling the
Configuration at Runtime).
5. Save changes.
Exporting a configuration
In the Audit Trail Configuration page, click .
The output file name and the target directory cannot be modified. If you export the same configuration twice, the
previously exported file will be overwritten.
Security Note
Bear in mind that after you have exported an audit trail configuration, strict measures should be taken to
guarantee that the exported information is correctly and securely stored until it is re-imported.
Modifying a configuration
1. In the Audit Trail Configuration page, click .
2. Modify name or description if needed.
3. Select new entities or unselect any previously assigned entities to modify the entity assignment of the
configuration.
4. Save changes.
5. If you want to enable (or disable) the configuration, see Enabling the Configuration at Runtime.
Deleting a configuration
In the Audit Trail Configuration page, click .
If your audit trail configuration is running and you only want to temporarily stop it, you should better use the
disable functionality (see Enabling the Configuration at Runtime).
If your audit trail configuration is running and you delete it, the system goes on recording audit trails until you apply
the configuration.
2.3.1.3 How To Display Audit Trails in the Audit Trail App UI Screens
You can display audit trail records by using the Audit Trail App UI Screen as follows.
Workflow
1. Add the UI Screen to the UI Application in Solution Studio.
2. Deploy the Solution with the UI Application.
3. Display audit trail records.
Available operations
Operation Description
Sorting results You can sort results by choosing the field on which you want to apply the ordering
criteria (in ascending or descending order).
Searching By clicking on the icon placed on the top of the screen, you can enter search
criteria in the provided filters in order to search by the most relevant information
(operation time stamp, user name, action type, entity type name, entity element id,
executed command). You can only search by root entities, consequently:
• In case of extended entities, you can search either by the base entity or by the
extension entity.
• In case of composition parts or facets, you can only search by the base entity.
By clicking on the icon placed next to each retrieved record, the system
automatically fills in the search criteria with the Id (Guid) of the selected item and
makes it easier to search for all the items that are related to the selected one.
Expanding record You can expand each record to view the property details, such as the old value and the
details new value of either a simple property or a complex property or a navigation property,
or any associated data segregation tags.
The changes applied to the values of properties of large dimensions (such as blob
types or max length strings), in terms of old value and new value, are not displayed.
If the record you expand belongs to a root entity, the information on the child entities
will be displayed below, in the Show More section.
2.3.1.4.2 How to Retrieve Audit Trail Information and Apply Custom Logic
To retrieve audit trail information and apply the required business logic, you can subscribe a custom event handler
to the AuditTrailRecordCreated event.
You can also directly query the AuditTrailRecord entity, although a query is already implemented in the Audit Trail
UI Component, which can be directly embedded inside custom UIs.
You can promote the AuditTrailRecordCreated event to Signal in Project Studio, and modify the Signal Rule in the
Signal App to invoke the required logic when the event is triggered. You cannot directly use the AuditTrailRecord
entity as source block in the Signal Rule.
This page contains information about the AuditTrailRecord entity and the AuditTrailRecordCreated event.
3. Implement the custom event handler (see Implementing Command and Event Handlers).
4. Subscribe the handler to the AuditTrailRecordCreated (see Configuring Event Subscriptions).
Alternatively, you can also create a subscription to the AuditTrailRecordCreated and implement custom logic in an
external application that uses the IUnifiedSdkLean public interface (see Developing Third-Party Applications
Integrated with Opcenter Execution Foundation).
You cannot fire the AuditTrailRecordCreated: an authorization error will be returned at runtime
(ArgumentException).
See page AuditTrailRecord Entity and AuditTrailRecordCreated Event for the details on the parameters
returned by the AuditTrailRecordCreated so that you can properly use it inside your code.
RootEntityId Unique identifier of the Root Entity instance that was assigned to the
audit trail configuration.
RootEntityName Logical key of the Root Entity instance, obtained from the
concatenation of its logical keys.
RootEntityType Full name of the Root Entity Type that was assigned to the audit trail
configuration.
ChangedEntityName Logical key of the Entity instance that actually changed, obtained from
the concatenation of its logical keys.
Action Type of change executed in the transaction. Possible values are Added,
Modified, Deleted.
In case of freeze/unfreeze, lock/unlock or mark for cleaning operations,
more detailed information is contained in the ChangedEntity attribute
(see examples below).
In case of different values related to electronic signature management,
see ElectronicSignatureId element below in this table.
Environment The environment where the change occurred. It is defined during the
environment configuration phase (seeOpcenter Execution Foundation
Installation Guide).
ComputerName (For future implementation) The name of the computer where the
change occurred.
ChangedEntity JSON representation of the changes applied to the Entity instance (or
facet instance), without the representation of the values of the large
properties. See example below.
CorrelationId The value of the CorrelationId, which aggregates the Audit Trail
records generated during the execution chain.
Entity domain Incremental Id that represents the order by which the record was
inserted.
AssociatedRows An integer that identifies the main record inside a set of Audit Trail
records and represents the number of the associated records.
For example, in case of three entities in composition with a parent
entity and two parts, the AssociatedRows property of the record
corresponding to the parent entity would be AssociateRows = 3.
Element Description
LogicalKeyProperties The list of the scalar properties that make up the logical key,
represented by a sequence of nodes where each node contains
the property name and the property value.
The logical key values will not be represented in the scalar/
complex/navigation structures.
Element Description
ChangedScalarProperties For each simple entity property (or facet property), the
following elements:
• Name, containing the property name
• OldValue, containing the value before the change (always
set to null in a create action)
• NewValue, containing the newly inserted value.
In case of large properties, this element returns only the Name
element (and not OldValue and NewValue). To retrieve the
changed values, refer to the ChangedLargeProperties property
below.
Only for the following operations:
• freeze/unfreeze,
• lock/unlock,
• mark for cleaning,
the Type element is present and set to System, and for these
operations, the Name element is set to IsFrozen, IsLocked,
ToBeCleaned (see examples below) with the related values
(true or false) indicated in the OldValue or NewValue element.
ChangedComplexProperties The name of the modified complex types and for type, the list of
the modified simple properties expressed by the same elements
as the ChangedScalarProperties node.
ChangedForwardNavigationProperties The element contains the OldValue and the NewValue nodes
containing, respectively, the old values and the new values for
the Id and the logical key of the entity you are referencing.
For each OneToMany relationship, the node returns the
information related to the 'Many' side of the relationship.
In case of facets, this element returns the id of the base entity
(the entity to which the facet refers).
DataSegregationTags This element returns the list of the associated data segregation
tags.
• Update action on an entity
The JSON contains the same elements as the JSON for the create action (see table above).
Some of the update commands used by the Opcenter EX FN Apps overwrite all entity properties with the
entity original properties even in case of a single property change. In such cases, the AuditTrailRecord will
contain the list of the modified properties with OldValue and NewValue set to the same values.
• Delete action
The JSON contains the same elements as the JSON for the create but the returned information is limited to:
• Id, EntityType, UpdatedOn and LogicalKeyProperties. All other elements are always empty.
In the following example, the IsLocked property has been set to false (i.e. unlock entity):
In the following example, the ToBeCleaned property has been set to true (mark for cleaning):
The ChangedLargeProperties JSON object contains the same structure as the ChangedEntity property JSON, but
it only returns values for the following 'large' property types:
• blob
• string decorated with the MaxLength attribute
Large properties can be contained both inside the base entities (also inside value types) and inside the facets.
RootEntityId Unique identifier of the Root Entity instance that was assigned to the audit
trail configuration.
RootEntityName Logical key of the Root Entity instance, obtained from the concatenation
of its logical keys.
RootEntityType Full name of the Root Entity Type that was assigned to the audit trail
configuration.
ChangedEntityName Logical key of the Entity instance that actually changed, obtained from the
concatenation of its logical keys.
Environment The environment where the change occurred. It is defined during the
environment configuration phase (see Opcenter Execution
Foundation Installation Guide).
ComputerName (For future implementation) The name of the computer where the change
occurred.
ChangedEntity JSON representation of the changes applied to the Entity instance (or
facet instance), without the representation of the values of the large
properties.
HasLargeProperties Boolean. If this value is true, it means that 'large' properties have been
changed. To retrieve their values, you must perform a query to retrieve
the corresponding AuditTrailRecord instance and read data from the
ChangedLargeProperties property.
CorrelationId The value of the CorrelationId, which aggregates the Audit Trail records
generated during the execution chain.
Ordering Incremental Id that represents the order by which the record was inserted.
For an overview on the functionality start reading What is an Electronic Signature Scenario? and proceed
with Creating an Electronic Signature Scenario. Then refer to How to Integrate Electronic Signature in
Custom Applications section in the Opcenter Execution Foundation Development and Configuration
Guide for the integration guidelines.
In Opcenter EX FN, this set of data is stored by means of the user name and the related password.
Electronic Signatures are inserted by typing in the required credentials and are used at runtime to verify that a
certain authorized user has checked and validated an operation before proceeding with any other actions.
For example, if an operation requires the consumption of a certain material, the quality process may require that a
certain user certifies that the material consumption has been carried out properly before the operation can be
completed.
The procedure of validating the operation is performed by inserting the Electronic Signatures that are required for
that operation, according to the configuration provided in the Electronic Signature Scenario.
The Electronic Signature Scenario is the configuration of the Electronic Signatures that need to be collected at
runtime for a certain operation. There can be more different Electronic Signature Scenarios for all the needed
operations.
In each Electronic Signature Scenario, you must configure each signature by defining whether the signer is either a
specific user, or a user belonging to a certain Opcenter EX FN business role, or a logged on user. Additionally, you
can also define the reason for which the signature is required.
At runtime, User Management Component verifies that the user credentials are correct, and if they are correct, the
Audit Trail App validates the Electronic Signatures.
To start configuring the Electronic Signature scenarios see Creating an Electronic Signature Scenario and refer to
How to Integrate Electronic Signature in Custom Applications section in the Opcenter Execution
Foundation Development and Configuration Guide for integration guidelines.
For integration guidelines, see How to Integrate Electronic Signature in Custom Applications in the Opcenter
Execution Foundation Development and Configuration Guide.
The engineering functionalities of the Audit Trail App described in this section use the data model and the
commands available in the ES_MS Functional Block (see ES_MS Functional Block in the Opcenter Execution
Foundation Development and Configuration Guide).
Procedure
1. Do either of the following to open the Scenario Configurations page:
• Click the Scenario Configurations home tile.
• Click Electronic Signature Manager in the side menu bar and click Scenario Configurations.
2. In the Scenario Configurations page click .
3. Enter an ID, a name and a description to identify the configuration.
4. Click Save.
Signer According to the selected type, an item selected from the provided list of UMC users or
Opcenter EX FN roles.
The If selected, it will be mandatory to provide a comment together with the signature.
comment is
mandatory
5. Click Save. The new Signature is displayed in the Signatures tab.
Operation Description
Automation App
Audit Trail data is available if the Scenario Configuration entity is properly included in the Audit Trail configuration
as documented in How To Enable the Audit Trail Configuration.
To consult the Audit Trail of an Electronic Signature Scenario:
1. In the Scenario Configurations page, select a Scenario Configuration and click to open the Scenario
Configuration page.
2. In the Scenario Configuration page, select the desired Scenario Configuration item.
3. Click the Audit Trail tab to see the list of all changes performed on the selected Scenario Configuration.
4. To see the details about each Audit Trail entry, click the arrow to the left of each row.
Automation App
• Data Manager, which is the central data management process that handles runtime configuration data and core
services (e.g Name and Localization services, the Tag Persistency).
• Common Plant Model (CPM), which is the process that manages automation nodes at runtime.
• REDU Manager, which controls all redundancy relevant actions. It communicates with the peer server and based
on its own and the peer error states it manages the system status and initiates a switch-over.
• DIST Manager, which establishes the connection with the other systems, exchanges identifications on all
systems, transmits messages between the systems.
• OPC Driver, which manages the communication with the OPC Server.
• OPC UA Service, which is a web service providing both the capability to browse the name space of the OPC
Servers and the possibility to check the connection during the configuration of the OPC UA channels.
The Automation Gateway Server and the related ports must be properly enabled and configured in the Opcenter
Execution Foundation Configuration Tool, either with the procedure described in Configuring the Engineering
Host or in Modifying the Environment Configurations of the Opcenter Execution Foundation Installation Guide.
Opcenter EX FN Unified Domain Model provides you with a specific data model, the Automation Gateway data
model, which allows you to interface with the automation layer.
The Automation data model relies on a set of entities (Automation Node Types and Automation Node Instances)
that can be used to model automation data sources, such as plant machines and tools, and a set of properties
(Automation Parameters) that must be configured to communicate with the control systems. This engineering layer
is represented by the Automation Gateway App.
When the engineering configuration in the Automation data model is finalized, you can activate this configuration
on the Automation Gateway Server. This operation aligns the engineering configuration of the Automation Gateway
App with the Operational Data domain, activates the automation node configurations to the Automation Gateway
Server, which includes the configuration files for a specific HMI RTIL Platform service (CPM) that manages the
automation nodes at runtime, and their connections with the configured OPC servers or PLC. The activation
procedure is achieved through a set of distributed, event-driven operations that either succeed or fail consistently.
If they fail, you can correct the engineering configuration and then force a reset.
Automation App
• Automation Node Types. Node types represent structured sets of data that can be connected to the
automation layer. These data structures can represent abstract equipment types, machines, tools, or any other
automation data grouping. They contain automation parameters.
• Automation Node Instances. These instances, based on Automation Node Types, map real-world plant objects,
such as machines, tools or sensors. Their main function is to model these plant objects and enable data
exchange with the field. Any changes made to Automation Node Types will be propagated to all related
Automation Node Instances.
• Automation Channels. These entities are used to define the channels through which the Automation Node
Instances will connect to the automation layer. A Channel represents a connection to a specific OPC Server or a
specific PLC and therefore identify the OPC driver to be used to establish the connection.
All these entities are activated to the Automation Gateway Server and are used to configure the data acquisition
files.
Moreover, Automation Node Instances are also copied to the Opcenter EX FN Operational Data domain in order to
be available for the other runtime entities that require a link to automation nodes.
Thanks to this separation between Automation Node Instances in the Master Data domain, and Automation Nodes
in the Operational Data domain, it is possible to make changes to the engineering configuration without stopping
runtime Automation Gateway Server.
Automation App
The values retrieved from the source device tags are runtime values. They are not saved in the Opcenter EX
FN database, but in the Automation Gateway Server. It is consequently necessary to use specific APIs to perform
read and write operations on this data.
Automation App
time is used, it is always recommended to keep the time settings of the HMI Station and periphery devices as close
as possible.
To initialize the Automation App data, you cannot use the dbinit.xml file because it does not perform data
checks but you must follow the configuration workflow indicated below.
The integration scenario with the automation layer can be configured by executing the following steps.
Configuration workflow
1. Configure and approve the Automation Channels.
2. Configure and approve the Automation Node Types and add their Automation Parameters.
3. Configure and approve the Automation Node Instances and their Automation Parameters.
4. Activate Runtime Integration.
For each of the Automation entities (Channels, Types and Instances) you can choose which type of view you want to
see, by clicking the button Automation View Type in the relevant page and selecting from the drop-down menu
either of the following views:
• Current: the most recent details of the selected Automation entity
• Activated on Server: the latest details of the selected Automation entity activated on the Automation Gateway
Server.
At the end of this configuration, you can create a custom App and implement UI pages for displaying and
setting Automation Parameter attributes. For more information, see How to Read and Write on Automation
Node Parameter Values in the Opcenter Execution Foundation Development and Configuration Guide.
Workflow
The steps required to configure an Automation Channel are as follows:
1. Create the OPC UA Automation Channel.
2. Approve the Automation Channel so it can then be activated to the Automation Gateway Server.
If you want to tune up the OPC UA driver runtime behavior, you can manually modify the OPC UA driver
configuration file.
Automation App
Security Configurations
If you want to configure a secure Automation Channel, see Hardening Automation Gateway Server in the
Opcenter Execution Foundation Security Concept.
Available operations
Operation Description
For the OPC UA Automation Channel you can choose which type of view you want
Automation View
Type to see, by clicking Automation View Type in the relevant page and selecting
from the drop-down menu either of the following views:
• Current: the most recent details of the selected Automation Channel
• Activated on Server: the latest details of the selected Automation Channel
activated on the Automation Gateway Server.
In the Automation Channel page, you can see the list of addresses for the selected
Check Connection
Automation Channel and retrieve information about the connection status of the
Status
selected channel.
Approve To activate Automation Channels to the Automation Gateway Server, you must
complete the configuration and approve the Automation Channels.
Add Automation Channels are entities whose attributes are required to configure OPC
UA server connections in the Automation App.
The channel consequently makes it possible to connect an Automation Node
Instance to the field. To add a new Automation Channel , do as follows:
1. Click Automation Gateway Management in the side menu bar and click
Automation Channel.
2. In the Automation Channel page, click to set the attributes of the OPC UA
channel
Edit Automation Channels can be modified. You can change any previously defined
attributes except for the Channel Id and the Status.
Automation App
Operation Description
Automation Channels can be deleted if they are not referenced in any Automation
Delete
Parameters defined in the Automation Node Instance and when they are not in
Pending or Dismissed status.
If you delete an Automation Channel that has already been activated to the
Automation Gateway Server, the entity will be temporarily put in Dismissed status.
It is effectively deleted from the Master Data domain and from the Automation
Gateway Server only after you have activated the runtime integration.
For details on server endpoint and security-related parameters, refer to OPC Unified Architecture
specifications, in particular:
• Part 1: Overview and Concepts
• Part 2: Security Model
• Part 4: Services.
Procedure
1. Click Automation Gateway Management in the side menu bar and click Automation Channel.
2. In the Automation Channel page, click to add an OPC Channel.
3. Set the following attributes:
Attribute Description
/Section
Connecti The type of connection, automatically set to OPCUA. Once the Automation Channel is created,
on Type the Connection Type value cannot be modified.
Id The unique identifier assigned to the Automation Channel. Once the Automation Channel is
created, the Id value cannot be modified. The only characters supported are alphanumeric
characters and underscore (_).
Name (Optional) The name assigned to the Automation Channel. The only characters supported are
alphanumeric characters and underscore (_).
Address 1 The URL address of the OPC UA server endpoint to be used for establishing the connection. For
example: opc.tcp://localhost:48010.
Automation App
Attribute Description
/Section
Enable By enabling or disabling this toggle button option, it is possible to enable/disable the OPC UA
Server server redundancy support, and configure an additional endpoint (i.e. Address 2, below). For
Redunda more information, see What is the Automation Gateway Redundancy Support?
ncy
Failover
If you have migrated the Solution from any version prior to 4.2, the toggle button will
Mode be automatically disabled.
Address 2 Alternative URL address of the OPC UA Server to be used for redundancy, available only if the
Enable Server Redundancy Failover Mode option is enabled.
Identity The types of user authentication supported by the OPC UA server are:
Token
• Anonymous, without any authentication.
Type
• Username/Password, providing the credentials of an authenticated user.
User For the User Name/Password authentication type, you must insert the credentials that will be
Name required to authenticate on the OPC UA server.
and
Password
Security The security policy to be used to establish a secure channel with the OPC UA server. The
Policy possible options are:
• Basic128Rsa15
• Basic256
• Basic256Sha256
• None disables any security policy.
Managing certificates
Depending on the OPC UA Server security policy in use, another procedure could be
required on the OPC UA server side in order to trust the client certificates on the
server.
In case of a redundant configuration, you must repeat the same trust procedure on
the redundant server.
By default, at the end of the Opcenter EX FN setup, the client certificate and its private
key are generated and saved, respectively, on each Foundation host, in the following
folders:
• %ProgramData%\Siemens\Automation\Device-Certificate-
Store\own\certs\OPCEXFN_WCCILopcua.der, and
• %ProgramData%\Siemens\Automation\Device-Certificate-
Store\own\private\OPCEXFN_WCCILopcua.key.pem
To renew the certificates you must run the AgwPostSetupConf.exe program, which
can be found in %SITUnifiedSystemRoot%bin, by passing the following argument
-p=UAFProject.
Automation App
Attribute Description
/Section
Message In case of a Security Policy different from None, you must choose how to establish a secure
Security channel with the OPC UA server. The possible options are:
Mode
• Sign
• SignAndEncrypt
• None disables any security mode.
Reconnec The time interval, in seconds, to establish a connection to the server. Default value is 0.
t Time (s)
Server
1. If you have applied a security policy (i.e. Security Policy different from None), click next
Actions
to the configured connection Address to retrieve the related OPC UA server certificate.
2. To test the connection reliability to the OPC UA server, click next to the configured
connection Address: a message will inform you about the result of the connection availability,
but it can be ignored to continue the creation process.
Connection remarks
• Bear in mind that there is a maximum number of Automation Node Instance Parameters that can be
activated. To retrieve more detailed information, see Checking the OPC UA Automation Channel
Status.
• When you check the connection, if you have applied a security policy (i.e. different from None), you
must have already acquired the certificate of the OPC UA server. Depending on the OPC UA Server
security policy in use, an analogous procedure could be required on the OPC UA server side in order to
trust the client certificates on the server. The OPC UA client certificate and private key used for the
check connection are the same configured for the channel (see details in table above).
Automation App
If you have modified an Automation Channel that has been referenced in an Automation Node Instance, the
changes will be propagated to the Automation Node Instance. However, approval of the Automation Node Instance
will not be necessary again.
Prerequisites
If the Automation Channel is configured with Non-Transparent Redundancy, the addresses and the security
certificates must have been correctly inserted (otherwise the approval will fail).
Procedure
1. Click Automation Gateway Management in the side menu bar and click Automation Channel.
2. In the Automation Channel page, select the Automation Channel you want to approve and click Approve.
3. Confirm the operation to set the status of the configuration to Approved.
4. Once configured and approved, you can activate your Automation Channels to the Automation Gateway Server.
The changes take effects only after restarting the AGW Server (for example using the Opcenter EX FN AGW
Node Monitor tool).
Procedure
1. Open the config.level file, which can be found in the following folder:
%SITUnifiedSystemRoot%Automation\config.
2. According to the provided description, you can only modify the following subset of entries in the [opcua] file
section:
For each selected OPC UA Automation Channel, if you click the icon, you can see the list of addresses and
retrieve a message containing several information, such as:
• the status of the connection with the OPC UA Server
• the number of the Automation Node Instance Parameters which is ready to be activated
Automation App
• the maximum number of Automation Node Instance Parameters supported by the OPC UA Server for the
selected Automation Channel.
Bare in mind that Address 2 is disabled if not previously configured.
Should you reach the maximum allowed number, you can change the current configuration in order to redistribute
the exceeding number of Automation Node Instance Parameters to other Automation Channels.
Workflow
The configuration steps required to configure an Automation Node Type are as follows:
1. Create the Automation Node Types.
2. Specify the Automation Parameters (i.e. properties used to connect to the automation layer).
3. Approve the Automation Node Type so it can then be activated in the Automation Gateway Server, and to render
the related Automation Node Instances ready for approval.
Available Operations
Automation App
Operation Description
For each of the Automation Node Types you can choose which type of view you want to
Automation
View Type see, by clicking in the relevant page and selecting from the drop-down menu either
of the following views:
• Current: the most recent details of the selected Automation Node Type
• Activated on Server: the latest details of the selected Automation Note Type
activated on the Automation Gateway Server.
Approve To activate Automation Node Types, you must complete the configuration and approve
the Automation Node Types.
Add Automation Node Types are data structures in the Automation App that represent
abstract equipment types, machines, tools, or any other automation data grouping.
Automation Node Types have Automation Parameters, which contain the connection
information required to execute read and write operations on automation data.
You can either import Automation Node Types from an existing configuration or create
Automation Node Types from scratch.
Edit Automation Node Types can be modified if they are not in Pending or Dismissed status.
If you modify an Automation Node Type, which is in Approved or Activated status, all
the related Automaton Node Instances are automatically set in To Be Approved status
and need to be approved again.
Automation Node Types can be deleted if they are not in Pending or Dismissed status.
Delete
If you delete an Automation Node Type, any Automation Node Instances linked to it will
also be deleted.
When you delete an Automation Node Type that has already been activated in
the Automation Gateway server, the Automation Node Type will be temporarily put
in Dismissed status. The Automation Node Type is effectively deleted from the Master
Data domain and from the Automation Gateway Server after you have activated the
runtime integration.
Revert You can revert the configuration of a specific Automation Node Type in the Automation
Gateway to its last activated configuration to the Automation Gateway Server, as long
as the selected entity has been activated at least once.
If the revert operation completes successfully, all the modifications applied to the
selected Automation Node Type since the last activation will be deleted and replaced
with the details in the last activated configuration of the Automation Gateway.
Automation App
Automation Node Types have Automation Parameters, which contain the connection information required to
execute read and write operations on automation data.
You can either create Automation Node Types from scratch (as described in this page), or import Automation Node
Types from an existing configuration.
Procedure
1. Click Automation Gateway Management in the side menu bar and click Automation Node Type.
2. In the Automation Node Type page, click .
3. Set the following attributes:
Attribute Description
Name (Optional) The name assigned to the Automation Node Type. The only
characters supported are alphanumeric characters and underscore
(_).
Any changes applied to the Automation Parameters of an Automation Node Type will be propagated to the
related Automation Node Instances, which will need to be approved again.
Procedure
1. In the Automation Node Type page, select the Automation Node Type.
2. In the Parameters tab, click .
3. Set the following Automation Parameter attributes:
Automation App
Attribute Description
Data Type The data type of the Automation Parameter. For the possible data types, see
Automation Parameter Data Types. Depending on the Data Type you
select, the options of the Smoothing Mode of the Automation Node
Instance, will be enabled or disabled. Once the Automation Parameter is
created, the Data Type cannot be modified.
Automation App
(*) The Project Studio column indicates types that must be used in Opcenter EX FN and in the Apps that use
Opcenter EX FN.
(*1) All DateTime values are written on the Automation Gateway Server in UTC format. There are two types of
DateTime values, which either represent the Timestamp of the Automation Parameter value or the DateTime of the
Automation Parameter value itself (if defined as a DateTime data type).
The Timestamp is always expressed in UTC format and cannot be changed by the user as it represents the time
when the value was written on the Automation Gateway Server. The DateTime of the Automation Parameter value
is also written in UTC format, even if the method that was used to write it (AutomationWrite) expressed the
DateTime in a local time format.
(*2) If the parameter value is set to a value of decimal type, you must perform an explicit cast to avoid a “type
mismatch exception” when the AutomationWrite() method is called at runtime. As in the following code example:
Var MyEq;
// some code to get MyEq
// the following line of code shows how to set the value of a parameter of type
"Real" with the value of an argument of type "decimal"
MyEq.Parameters["RealParameter"].value =
decimal.ToSingle(MyCommand.decimal_argument);
(*3) You can use compatible types inside reading operations without any adjustments while inside writing
operations you should always assign the required values to the range of the target type because the compatible
types exceed the value they must represent.
(*4) The supported value range changes to the value range of the type Decimal in the following cases:
• When the Automation Parameter is configured in the Automation Source property of the rule;
• When the value of the Automation Node Parameter is assigned to a command or entity property.
Automation App
The value of an Automation Parameter can be set to a value of the same type or to a value of a compatible type. The
following table summarizes the compatibility between the types:
You can apply conversions on any of the Automation Gateway Server data types with some limitations, documented
in the following table.
The abscissa of the table contains the conversion target type while the ordinate contains the type you are trying to
convert. For all the required conversions, a check on the dimension is performed and in certain cases an error is
returned (for example, if you try to convert an Int16 to a Double).
The table uses the following conventions:
• R: The conversion is performed if the value does not exceed the destination type range (e.g. if a Byte ranges from
0 to 255, you cannot convert 256 from Integer to Byte);
• I: Implicit (C-style) conversion;
• T: If the value is greater than 0, the function returns True. Otherwise it returns False.
The conversion of a LReal type to Integer (Int, DInt, LInt) applies the following rounding functions:
• if the decimal ranges from 1 to 4, the integer is rounded down (e.g. 1.39 is rounded to 1)
• if the decimal ranges from 5 to 9, the integer is rounded up (e.g. 1.51 us rounded to 2)
If the LReal is converted to Byte, only the integer part is converted (while the decimals are lost).
Automation App
Procedure
1. Click Automation Gateway Management in the side menu bar and click Automation Node Type.
2. In the Automation Node Type page, in the Overview tab, do either of the following:
• select the Automation Node Type you want to approve, click and then either of the following:
• Type, to approve just the selected Automation Node Type
• Type and Instances, to approve the selected Automation Node Type together with all its
Automation Node Instances.
• do not select any Automation Node Types and click the following:
• Approve all Automation Node Types and Instances, to approve all the Automation Node
Types in To Be Approved status, together with all their Automation Node Instances.
3. Confirm the operation to set the status of the configuration to Approved.
Result
The status of the approved entities is set to Approved.
If some entities are not approved they remain in status To Be Approved and a warning message is displayed.
For detailed information on the failure reasons, refer to the Trace Viewer.
Workflow
The configuration steps required to configure an Automation Node Instance are as follows:
1. Create the Automation Node Instances.
2. Set the Automation Parameter Attributes to establish the connection with the automation layer.
3. Approve the Automation Node Instance so it can then be activated in the Automation Gateway Server.
Available operations
Automation App
Operation Description
For each of the Automation Node Instances you can choose which type of view you want
Automation
View Type to see, by clicking Automation View Type in the relevant page and selecting from
the drop-down menu either of the following views:
• Current: the most recent details of the selected Automation Node Instance
• Activated on Server: the latest details of the selected Automation Node Instance
activated on the Automation Gateway Server.
Approve Once you have configured the Automation Node Instance, you must to approve it before
you can activate it to the Automation Gateway Server.
The status of each Automation Node Instance is visible in the Overview tab.
Add Automation Node Instances, based on Automation Node Types, map and model real-
world plant objects, enabling data exchange with the field.
Any changes made to Automation Node Types will be propagated to all related
Automation Node Instances.
You can either create an Automation Node Instance from scratch or copy an existing one,
which can be in any status. The new Automation Node Instance will be in to Be
Approved status.
Edit You can modify Automation Node Instances if they are not
in Pending or Dismissed status.
Revert You can revert the configuration of a specific Automation Node Instance in the
Automation Gateway to its last activated configuration to the Automation Gateway
Server, as long as the selected entity has been activated at least once.
If the revert operation completes successfully, all the modifications applied to the
selected Automation Node Instance since the last activation will be deleted and replaced
with the details in the last activated configuration of the Automation Gateway.
Automation App
You can either create an Automation Node Instance from scratch or copy an existing Automation Node Instance,
which can be in any status. The new Automation Node Instance will be in To Be Approved status.
The Automation Channel is managed in Automation Node Instance instead of managing it for each
Automation Node Instance Parameter. Consequently, all parameters will be bound to the same
Automation Channel.
While changing the Channel Id in the Edit Automation Node Instance screen, you can maintain or delete the
binding details of the parameters by managing the Maintain Parameter Binding Details checkbox.
Automation Node Type The Automation Node Type associated to the Automation Node
Instance. Once the Automation Node Instance is created,
the Automation Node Type cannot be modified.
Automation App
Automation Node Instance Parameters are designed to override their corresponding Automation Node
Type parameters.
Consequently if no override operations are performed, no Automation Node Instance Parameters are
created.
Procedure
1. In the Automation Node Instance page, select the Automation Node Instance for which you want to set the
Automation Parameter attributes.
2. In the Parameters tab, select the required Automation Parameter and click .
3. In the Edit Automation Node Instance Parameter panel, set the required attributes (described in the following
table) . Click Save.
Attribute Description
Data Type The data type of the Automation Parameter. This field is read-only.
Automation App
Attribute Description
Address Type (Only for OPC UA Automation Channel Type) The type of the address
used to specify an item in the address space of an OPC UA server. The
available options are:
• NodeId
• BrowsePath
Address The address of the data item to connect to, for OPC UA Channels it is
the identifier of an item in the address space of an OPC UA server.
Acquisition Mode The mode in which the acquisition will take place. The available
options are:
• CyclicContinuous: the required data is retrieved at intervals
selected under Acquisition Cycle Id.
• OnChange: the required data is retrieved whenever any changes
occur. If selected, the Acquisition Cycle Id attribute is disabled.
Acquisition Cycle Id (Only for the CyclicContinuous Acquisition Mode) The unique
identifier of the Acquisition Cycle. The required data is retrieved at
the intervals set by this attribute. The possible options are:
• 100 milliseconds
• 250 milliseconds
• 500 milliseconds
• 1 second
• 2 seconds
• 5 seconds
• 10 seconds
• 1 minute
• 10 minutes
• 15 minutes
Smoothing Mode How smoothing rules will be applied. The possible options are:
• None, no smoothing mode will be applied.
• Value, if the original value changes by more than the specified
Delta Value, then the value is not smoothed, but is saved as the
original value. This is enabled only for numeric Data Type.
Depending on the Data Type you selected in the related Automation
Node Type, these attributes will either be enabled or disabled.
Automation App
Node ID
In OPC UA, every entity in the address space is a node. To uniquely identify a Node, each node has a NodeId, which
is always made up of three elements: NamespaceIndex, IdentifierType and Identifier.
The format of the string is:
ns=<NamespaceIndex>;<IdentifierType>=<Identifier>
Field Description
NamespaceIndex Integer index that identifies the namespace. If the index is 0, then the
following clause is entirely omitted:
ns=0;
IdentifierType The format and data type of the Identifier. The possible values are:
• i: NUMERIC (UInteger)
• s: STRING (String)
• g: GUID (Guid)
• b: OPAQUE (ByteString)
Identifier The identifier for a node in the address space of an OPC UA server. It is
encoded as string. The identifier is formatted using the XML data type
mapping for the identifier type.
Note that the identifier may contain any non-null UTF8 characters
including whitespace.
Examples:
ns=2;s=MyValue
i=2045
where the namespace index is 0 (therefore it is omitted) and the identifier type is numeric.
Browse Path
Automation App
The browse path is typically a sequence of Browse Names separated by / (forward slash). The Browse Name is a
qualified name with the following structure:
[<NamespaceIndex>:]<String>
Field Description
NamespaceIndex (Optional) Integer index that identifies the namespace. This is the index
of the namespace in the local Server’s namespace array. If the
namespace prefix is omitted, then the namespace index 0 is used.
"/Factory/2:East/2:Boiler1/2:FC1001/2:Measurement"
The & sign character is the escape character. It is used to specify reserved characters that appear within a Browse
Name. A reserved character is escaped by inserting the & in front of it.
Examples of Browse Names with escaped characters are:
“&/Name_1” “/Name_1”
“&.Name_2” “.Name_2”
“&:Name_3” “:Name_3”
“&&Name_4” “&Name_4”
For details on the Browse Path BFN definition, refer to OPC Unified Architecture specifications, in
particular to Part 4: Services specification (Annex A2).
Procedure
1. In the Automation Node Instance page, enable the assisted mode activating the Smart Binding button.
2. The Automation Parameters tab on the left side of the page displays a tree list with the existing instances
grouped by type, click the checkbox corresponding to the parameter of interest: the Configuration panel on the
right side of the page displays information regarding the parameter on the Current tab.
The Automation Parameters are highlighted in bold when bound with the OPC UA attribute, and vice-
versa.
Automation App
3. Select the Automation Node Instance followed by the unique identifier of the Automation Channel (used to
communicate with the automation layer) from Channel Id drop-down box, and manage the Maintain
Parameter Binding Details checkbox to maintain or delete the binding detail of the parameters. Click .
Upon saving the Channel information, the Channel Id of the selected Instance parameters will be updated.
4. Open the tree list available below the drop-down list box, and select the check box corresponding to the OPC UA
attribute to be linked to the parameter: the Configuration panel opens automatically; the Binding tab with all
the binding information to be saved in the future is displayed.
5. If necessary, modify the provided values. For detailed information on available parameters, see Setting
Automation Parameter Attributes for Automation Node Instances.
Saving operations
The saving operations can be performed in two ways:
• In the Channels panel, mouse over the OPC UA attribute and click the adjacent icon that
appears: the selected configuration contains the binding information of the OPC UA attribute
saved with the default values.
• In the Channels panel, click the checkbox of the desired node to display the Binding tab with
its details, optionally edit the default values and then click Save to confirm.
6. Select any Automation Parameter bound with the OPC UA attribute, the system automatically opens the OPC UA
tree list; the bounded OPC UA attribute is selected and displays the number of Automation Parameters that are
bounded with the OPC UA attribute along with button.
If the selected Automation Parameter is bound with an OPC UA attribute which has aliases, then the
first occurrence of that OPC UA attribute is selected automatically.
7. Click to view the list of Automation Parameters (displayed in the format: {{Automation Node Instance
Id}}.{{Parameter Id}}) bound with OPC UA attribute, and click on any of the listed Automation Parameters
to view them in the Automation Parameter tree list.
Prerequisites
Automation App
• The Automation Node Type, which is related to the current Automation Node Instance, must have been already
approved.
• The Automation Node Instance has just been created or it has been modified.
• The Automation Node Type, which is related to the current Automation Node Instance, or its Automation
Parameters have been added/modified/deleted.
Procedure
1. Click Automation Gateway Management in the side menu bar and click Automation Node Instance.
2. In the Automation Node Instance page, in the Overview tab, do either of the following:
• select the Automation Node Instance you want to approve, and click to approve the selected
Automation Node Instance.
• do not select any Automation Node Instance and click to approve all Automation Node Instances
that are in To Be Approved status.
3. Confirm the operation.
Result
The status of the approved entities is set to Approved.
If some entities are not approved they remain in status To Be Approved and a warning message is displayed.
For detailed information on the failure reasons, refer to the Trace Viewer.
Automation App
If the Delta activation fails, you can perform a Full activation. The Delta could fail for example because the driver
cannot correctly manage particular changes of the Automation Node configuration. For example, if you swap the
Node Ids of two Automation Node Parameters. For example this is due to a limitation of the current version of the
OPC UA driver and will be addressed to a future version.
When the Delta activation fails, you are notified of the failure and the Automation App asks you if you want to
proceed with a Full activation, which should solve the problem and successfully complete the operation. 'Full'
means that all the configurations carried out in the Automation App are activated on the Automation Gateway
Server, regardless of what was previously downloaded.
If you reactivate a node instance after assigning at least one of its parameters to another channel type, the
system automatically performs a Full download without notifying you.
Allowed operations
While the activate operation is still in progress, the entities in To Be Approved status can be modified as well as
new entities can be created.
Prerequisites
• All the Automation Channels and Automation Node Types that you want to activate must be in
either Approved or Dismissed status, otherwise if they are in To be Approved status they will be ignored during
the activation procedure.
• The Automation Node Instances that you want to activate must be either in Approved or Dismissed status,
otherwise if they are in To Be Approved status they will be ignored during the activation procedure.
• The Automation Channels must be activated before you can activate the Automation Node Instances to which
they refer.
If there is at least one Automation Node Type with its Automation Node Instances previously activated, if
you modify the Automation Node Type and approve it but you do not approve its Automation Node
Instances (they are still in To Be Approved status) the activation fails, and you must re-approve the
Automation Node Instances before proceeding.
1. Click Automation Gateway Management in the side menu bar and click Home.
2. In the Automation Gateway Management page, click .
3. From the drop-down list select Channels and then confirm the operation.
Automation App
If an operation on the Automation Gateway Server is still in progress, an error message is displayed. Wait
until the operation has completed and then repeat the activation.
Result
The ActivateFinished event and the ActivateFinishedSignal signal (see ATN_MS Functional Block in the Opcenter
Execution Foundation Development and Configuration Guide).
are fired to notify that the operation has been executed.
Signal Rules
If you have activated any configuration changes that could create inconsistencies with the deployed Signal
Rules, Signal Rules will fail and you must re-align them with the activated Automation configuration.
Procedure
1. Click Automation Gateway Management in the side menu bar and click Home.
2. In the Automation Gateway Management page, click and confirm the operation to export the current
configuration.
3. Click Save. The exported file will be saved in the download folder which is configured in the settings of your
browser and will be named AutomationConfiguration_yymmddhhmm.csv.
Bear in mind that if you export array parameters of string data type with default or initial values containing
semicolon as element value of an array, these semicolons will be replaced with the character %3B during
the export operation.
Automation App
rollback, without persisting the changes. All the invalid entries are logged by the Trace Viewer. For more details,
see Logging and Analyzing Application Traces with Trace Viewer in the Opcenter Execution Foundation Development
and Configuration Guide.
After the import, all the imported entities are set to Approved (except for a specific configuration which requires to
manually enter authentication credentials, as described below in the page). Consequently, after the import, you will
need to activate the new configuration.
To prevent unauthorized users from tampering with the exported packages, strict measures should be
taken to guarantee that the exported information is correctly and securely stored until it is re-imported.
Automation App
Operation Description
Import with Reset This operation imports the new configuration by first removing the
existing configuration and then importing the new one. This
operation also resets the server configuration and therefore you
will need to activate the configuration of channels and then the
configuration of types and instances. The activation will be full.
Import with Replace This operation first reverts the master data configuration to the last
activated configuration and then imports the new
configuration. This import type does not directly delete any model
objects that are in Active state, but sets them to
Dismissed (Dismissed objects can always be reactivated, if
needed). Objects that have never been activated are deleted.
In the Import with Replace operation, the revert phase performs a
check on the status of the master data objects:
• If the entities are in Approved, To Be Approved or Dismissed
status, the system reverts them to the last activated version.
• If the entities are in Active state, their version is not reverted.
After the revert, the import operation compares the master data
objects with the import file information and then:
• If an entity exists in the data model but is not within the import
file, this entity is set to Dismissed.
• If an entity exists both in the master data configuration and in
the file, a new version of the entity is created and it is set to
Approved.
• If an entity does not exist in the master data configuration, but
it exists in the file, the new entity is created and set to
Approved.
• If an entity is in Pending, the system returns a warning
message which suggests you to perform a Reset.
Automation App
Operation Description
Import operation on Automation Both import options apply to Automation Channels. Nevertheless
Channels the following constraints must be taken into account:
Automation Channels can be imported only from version 2.2.
Consequently:
• If the configuration file does not contain the
#AutomationChannels section (i.e. the file was either exported
from SIMATIC IT UAF 2.1 or it was manually created in
compatibility with SIMATIC IT UAF 2.1), the Channels that are
present in your configuration will not be deleted, regardless of
the import type performed.
• If the import file contains the #AutomationChannels section:
• in case of Import with Reset operation, the system
overwrites the existing data model with the import file
information. If the section is empty, the existing
Automation Channels will be deleted.
• in case of Import with Replace operation, the
Automation Channels will be reverted and then
overwritten as the other entities. If the section is empty,
the system will revert the Channels to the last activated
version and then will set them to Dismissed.
• If you import with replace a new configuration which does not
contain Automation Channels, but your existing configuration
already contained Channels that were previously associated to
Automation Node Instances and activated, you need to reset
the environment to successfully complete the import
operation.
Automation App
Operation Description
• If the Automation Channel you are importing is
configured with Security Policy and Message
Security Mode different from None and without any
Certificates either for the Address 1 or Address 2 (if
Server Redundancy Failover Mode is enabled),
when the Import operation is completed, the
Automation Channel is in To Be Approved. Complete
the Channel configuration by editing the just
imported Channel in the Automation Channel page
and retrieving the needed certificate(s).
• If Address 2 is missing, the configuration will be
imported assuming that Server Redundancy
Failover Mode is disabled.
Procedure
1. Click Automation Gateway Management in the side menu bar and click Home.
2. In the Automation Gateway Management page, click and then choose one of the following:
• Import with Reset
• Import with Replace
3. In the Import Configuration panel, browse to the CSV configuration file you want to import.
4. Click Import.
Automation App
In case of string arrays with semicolon separators between the values you must replace it with
the character %3B to import parameter values.
"#AutomationChannels"
"Id","Name","ConnectionType","IdentityTokenType","Address","Address2",
"SecurityPolicy","MessageSecurityMode","ReconnectTime","TimeStampMode","UserName",
"ServerCertificate","ServerCertificate2","ServerRedundancyFailoverMode"
"OPCUAChannel1","OPCUAChannel1","OPCUA","Anonymous","opc.tcp://host1:48010","opc.tcp;
//host2:48010","None","None","0","Server","","","","HotA"
"#AutomationNodeTypes"
"Id","Name","Description"
"ANT1","ANT1","ANT1"
"#AutomationNodeTypeParameters"
"AutomationNodeTypeRef","Id","DataType","ParameterType"
"ANT1","ArrayInt","Int","Array"
"ANT1","ScalarInt","Int","Scalar"
"#AutomationNodeInstances"
"AutomationNodeTypeRef","Id","Name","Description","ChannelNId"
"ANT1","NodeInst1","NodeInst1","NodeInst1","OPCUAChannel1"
"#AutomationNodeInstanceParameters"
"AutomationNodeInstanceRef","Id","ChannelNId","AddressType","Address",
"AcquisitionMode","AcquisitionCycleNId","SmoothingMode","DeltaValue"
"NodeInst1","ArrayInt","OPCUAChannel1","NodeId","ns=2;s=Demo.Static.Arrays.Int16",
"OnChange","","None",""
"NodeInst1","ScalarInt","OPCUAChannel1","NodeId","ns=2;s=Demo.Static.Scalar.Int16",
"OnChange","","None",""
Procedure
1. Click Automation Gateway Management in the side menu bar and click Automation Gateway
Administration.
2. In the Automation Gateway Administration page, click . You are prompted with an alert message
for Export and Migrate, Migrate Only and Cancel buttons.
Automation App
3. Click Export and Migrate to export the existing configuration into the CSV file and then migrate it. The exported
file will be saved in the download folder (configured in the settings of your browser) and will
be named AutomationConfigurationBeforeMigrate_yymmddhhmm.csv.
• The Delta Time property of the Automation Node Instance Parameter will not be exported with
the other configuration as it is removed while migrating to Opcenter Execution Foundation 4.0.
• In case the export is not necessary, a warning message is displayed to Abort or Continue the
migration process.
4. Click Migrate Only to migrate the existing configuration without exporting the data.
Procedure
1. Click Automation Gateway Management in the side menu bar and click Home.
2. In the Automation Gateway Management page, click and confirm the operation.
3. To use the configuration at runtime, re-activate the entire configuration (i.e. Automation Channels first and then
the Automation configuration). If the Reset operation is still in progress on the Automation Gateway Server, an
error message is displayed, and you must wait until this operation has completed before re-activating the
configuration.
Automation App
• If you do a revert on an Automation Node Type, all its related Automation Parameters, Automation
Node Instances and their Automation Parameters will also be affected (reverted to the last activated
configuration).
• If you select an Automation Node Type that has already been activated, but which has a new
Automation Node Instance created after the last activation, once you do a revert of this Automation
Node Type then the new Automation Node Instance will be deleted.
• If you select an Automation Node Type or Automation Node Instance, which has a new Automation
Parameter created after the last activation, once you do a revert the new Automation Parameter will be
deleted.
• If you do a revert on an Automation Node Instance, the related Automation Node Type is not affected.
• If you do a revert on an activated Automation Node Instance and the related activated Automation
Node Type has been modified since the last activation, an error occurs.
Prerequisite
The Automation Node Types and Automation Node Instances have been activated to the Automation Gateway
Server.
Automation App
1. Click Automation Gateway Management in the side menu bar and click Automation Node Viewer.
2. In the Automation Node page, in the left-hand pane select the activated Automation Node you are interested
in.
3. In the Parameters tab, the following attributes of the selected Automation Node Parameter are displayed:
• Name: the name you assigned to the Automation Node Type Parameter.
• Is an Array: the type of the parameter (Scalar if not selected).
• Parameter Value: the current value of the selected Automation Parameter.
• TimeStamp: the time corresponding to the last value change, always expressed in local format.
• Quality Status: the overall condition (severity) under which a parameter value was generated, and thereby the
information can be used as an indicator of the usability of the value. The possible values are: Bad, Uncertain
and Good.
• Quality SubStatus: the detailed condition under which the parameter value was generated.
For the description of the Quality Statuses (Bad, Good, Uncertain) and the Quality Substatuses, which are
associated with each Automation Parameter value, see AutomationQualityStatus Enumeration and
AutomationQualitySubStatus Enumeration in the Opcenter Execution Foundation Platform Reference Online
Help. In particular, use the code in brackets which refers to the Quality Substatus (for example
"QcsBConfigError") to search for the complete description in the Platform Reference Online Help.
If you import a master data configuration, you will not be able to view the imported configuration in the
Configuration tab until the configuration has been activated onto the Automation Gateway Server.
Although the WriteAutomationNodeParameters command is meant for internal use and should not be
invoked from custom UIs, you can view it in the list of the public Commands in Solution Studio and
consequently assign it to user roles, in order to control which users or groups have access to the writing
capability. For details on how to configure user roles, see Configuring Roles in the Opcenter Execution
Foundation Development and Configuration Guide.
Automation App
Prerequisites
Procedure
1. From <setup drive>:\Program Files\Siemens\SimaticIT\Unified\bin, run the SimaticIT.Agw.Nodes.exe file with
administrator rights.
2. Select an Automation Node from the Nodes list on the left. The related Automation Parameters are displayed on
the left.
3. Select the Automation Parameters and start monitoring them or execute any other required operation (see list
below).
Available operations
Automation App
Operation Description
Sorting and filtering Automation Nodes In the Node List, you can sort items by Node Name or Type by
means of the button, in ascending or descending order, or
search for a specific item.
Reloading the Automation Nodes If the tool was open while you were activating the runtime
integration, you must reload the Automation Nodes to view the
configuration changes in the Nodes area by means of the
button.
Reading the Automation Node engineering In the <Parameter name>Parameters area, the tool displays
configuration the Automation Parameters of the selected Automation Node
and the related engineering information.
For each Parameter, it shows the Parameter name and type,
the data type, the Channel Id and the Address (if configured),
whether the Parameter is Static, and, in case of cyclic
acquisition, it also displays the current cycle id.
Monitoring an Automation Parameter You must monitor an Automation Parameter to retrieve its
value.
To do so, you must select the required Automation Parameter
in the <Parameter name>Parameters area and click the
button. For each monitored Parameter, the tool adds a row in
the Monitored Parameters area below, and displays the
related runtime information.
To stop monitoring an Automation Parameter, click the
corresponding button.
Automation App
Operation Description
Retrieving the Automation Parameter value In the Monitored Parameters area, the tool displays the
monitored Automation Parameters and the related runtime
information.
For each Parameter, it shows the value, the data type, the
timestamp (expressed in local format), the data quality
information (status and substatus) , the Parameter internal ID
and the Subscription status.
Nodes and Automation Parameters are identified by internal
IDs. These IDs are useful to identify entities in the HMI RTIL
Platform Trace Viewer.
Automation App
Operation Description
Writing the Automation Parameter value In the Monitored Parameters area, you can modify the value
of the monitored Automation Parameter.
To do so, click on the value, modify it and then press ENTER to
confirm the change.
If you want to cancel the change, click anywhere outside the
cell instead of pressing ENTER.
Exporting/Importing the monitored You can export the configuration of the monitored Automation
configuration Parameters to a json file by clicking or you can import a
previously exported configuration by clicking and
browsing to the saved file.
If you import a second configuration without removing the
previously monitored Parameters, the imported items are
added to the existing ones.
If the imported configuration is not aligned with the current
configuration, a warning is displayed and the existing
Parameters are added to the grid.
Automation App
Operation Description
Viewing channel information For each Automation Parameter connected with the field, you
can click on the icon under the Channel Id column of the
Parameters area and a popup window with the channel
configuration will be displayed.
If you have enabled Failover Redundancy, in bold you will see
the server where the publishing is active.
Prerequisites
You are on the Opcenter EX FN Engineering host (as the SITUAAutomationUtil.exe utility runs only on the
Engineering host).
Procedure
1. Open a command prompt as Administrator and navigate to the Opcenter EX FN binary folder
(%SITUnifiedSystemRoot%bin).
2. Run the SITUAAutomationUtil.exe utility and invoke the export command by setting the following input
parameters:
Automation App
Example
Prerequisites
The user that runs the HMI RTIL Platform Trace Viewer must belong to the RTIL Tracing Users Windows group.
This user must be manually added to the mentioned local group, on each host where you need to launch the HMI
RTIL Platform Trace Viewer. After modifying the user group, restart the host to make changes effective.
Available operations
Operation Description
Launching RTILtraceViewer
Automation App
Persisting traces
From the Trace Viewer, select the File > Save As Text command to save the traces from the Trace Viewer into a text
file or CSV file.
Clearing traces
From the Trace Viewer, select the Edit > Clear traces command to remove all traces from the viewer.
Setting profiles
When the system starts for the first time, settings defined in the trace configuration will be used by default. For
example: Info, Warning, Error and Fatal messages will be shown.
To modify these settings, select Edit > Trace Profile from the Trace Viewer to open the Trace Profile dialog box.
If you want to use the same settings several times, you can save them from the Trace Viewer into a local file and
then load them when needed.
To do this, in the Profile dialog box, click the Save Profile button to save settings in a local XML file and then click
Load Profile to load the saved configuration.
The XML file contains the description of the applied settings.
Additional Trace Viewer settings, such as custom colors, column widths and so on will be added to this file as well.
Opcenter Execution Foundation adopts the CQRS pattern principle (Command Query Responsibility
Segregation), based on the separation of reading and writing channels. From version 2.3, Opcenter EX FN
implements data views based on session tags for reading channel requests. Consequently, interactive
users, logged on via Opcenter EX FN authentication server token, are able to retrieve only data tagged with
the same set of tags registered in the session tags. Tags are assigned to user by means of a personnel app.
When an interactive user logs in, tags assigned to the user are registered in the session tags. Tag-based
views are not applied to the retrieval of data from commands, events and signal rules from version 2.3 of
SIMATIC IT UAF.
Data Segregation in Opcenter EX FN implements data views based on segregation tags for reading channel
requests. Interactive users, logged on via Opcenter EX FN Authorization Server (as described at page Managing
Client Authorization in the Opcenter Execution Foundation Development and Configuration Guide), are able to retrieve
only data tagged with the same set of segregation tags. This is achieved by assigning session tags to users. This
assignment can be implemented:
• by the Personnel App
• by Custom apps: they may also be part of the same solution, can manage generic resources, such as equipment,
and associate them with users.
When a user creates a new instance of an entity, the session tags associated with his/her assigned Person (or
resource) can then be assigned to the new instance. In this way Data Segregation can be gradually applied to all
new instances.
When an interactive user logs on to query data, segregation tags assigned to the user are registered as the session
tags. Tag-based views are not applied to the retrieval of data from commands, events and signal rules.
2.5.2 Which Users and Entity Instances are involved in Data Segregation
Which Users are involved in Data Segregation
The users involved in Data Segregation functionality are:
• the SysAdmin user (for general information see How to Configure Accounts of the Opcenter Execution
Foundation Development and Configuration Guide)
• a UMC user (for information see the User Management Component documentation, i.e. UMC Web UI User
Manual and UMX User Manual).
The following table provides some useful concepts on these users you need to know to manage segregation tags.
Data Segregation App works in close collaboration with the Personnel App or any custom application
that allows you to manage persons in order to segregate the data each person has access to. For this
reason, a general knowledge on Personnel App is required before approaching this table.
Can assign the following roles to a UMC user in order If Persons are created in the Personnel App, must have
for the UMC user to assign segregation tags to these assigned roles in order to assign segregation tags
Persons created in the Personnel App: to Persons:
• AccessControlViewer • AccessControlViewer
• AccessControlAdmin • AccessControlAdmin
Can assign all required command rights to the role of The role of this user must have all assigned required
the UMC user in order for the UMC user to perform command rights in order for the user to perform
operations. For example, operations. For example, the CreatePerson command
the CreatePerson command is required to create is required to create Persons in the Personnel App.
Persons in the Personnel App.
Is the first user who accesses the UI Application and Can assign segregation tags to Persons (created in
creates segregation tags. He/she can assign the Personnel App or equivalent custom App) or entity
segregation tags to Persons (created in instances only if he/she is associated with a Person. This
the Personnel App or equivalent custom App) or because the tags assigned to the Person are available in
entity instances without needing to be associated session (the Assigned Tags panel in the Data
with a Person. If the Person to whom you want to Segregation UI) and can be view and manage by the
assign tags is associated with the SysAdmin user, user.
the operation cannot be performed because the
dedicated button is not displayed. This is because all
segregation tags are already assigned to
the SysAdmin user by default.
Can always assign segregation tags to Persons Can assign segregation tags to Persons (created in
(created in the Personnel App or equivalent custom the Personnel App or equivalent custom App) or entity
App) or entity instances because all segregation tags instances only if segregation tags have been assigned to
are already assigned to him/her by default the associated Person, otherwise he/she
by the Personnel App or equivalent custom App. cannot perform the operation.
Can view all segregated data (data associated with Can view segregated data only if the segregation tags,
tags) because all segregation tags are assigned to associated with this data, are assigned to the Person
him/her by default by the Personnel App or associated with this user. This because the tags
equivalent custom App. assigned to the Person are available in session (the
Assigned Tags panel in the Data Segregation UI) and
can be view by the user.
For example, if two tags are associated with an entity
instance, the user must have both these assigned tags in
order to view the instance. Otherwise, if the user has
only one assigned tag, he/she cannot view the instance.
Can always view all not segregated data (data which If Persons are created in the Personnel App, can view
are not associated with tags). not segregated data only if the associated Person has
been enabled to view them (by setting the dedicated
option View Unsegregated data). Created Persons
can view not segregated data by default but a user can
modify the default behavior in order for the created
Person to not view not segregated data.
Workflow
1. In the User Management Component, create a user who will log on to the UI Application, as described in the
UMC documentation (UMC Web UI User Manual and UMX User Manual).
2. From Solution Studio, install the Data Segregation App when creating your Solution, as described in Creating a
Solution from Scratch of the Opcenter Execution Foundation Development and Configuration Guide.
3. Enable the Enable data segregation tag selection option when creating your UI Application, as described in
Creating a UI Application of the Opcenter Execution Foundation Development and Configuration Guide, to display
the data segregation tags assigned to the user in the runtime application.
4. If the Personnel App will be used to create Persons, assign AccessControlViewer and AccessControlAdmin
roles to the UMC user who will log on to the UI Application. In this way, this user can assign segregation tags to
Persons. For information on these roles, see How to Configure Accounts in the Opcenter Execution
Foundation Development and Configuration Guide.
5. Assign all required command rights to the role of the UMC user who wants to perform the operations. For
example, the CreatePerson command is required to create Persons in the Personnel App. See Assigning Rights
to Roles in the Opcenter Execution Foundation Development and Configuration Guide.
6. Access the UI Application as SysAdmin user. For information on this user, see How to Configure Accounts in the
Opcenter Execution Foundation Development and Configuration Guide.
7. Create segregation tags in the Data Segregation App.
8. Log off from the UI application. Segregation tags are displayed and assigned to you by default
by the Personnel App or equivalent custom App the next time you log on.
9. Access the UI Application again.
10. Create a Person in the Personnel App or equivalent custom App and associate this Person with the UMC user. If
the Personnel App is used, the created Person can view not segregated data by default but you can modify the
default behavior in order for he/she to not view not segregated data.
11. Assign the required segregation tags to this Person.
Pay attention: when you assign segregation tags to Persons (or Person Groups), you are not
segregating them, but you are granting them the right to access to segregated data. When you assign
segregation tags to entities (for example, Materials), you are segregating them instead.
12. Create an entity instance (for example, create a Material in the Material App) and assign the required
segregation tags to it.
13. Log off from the UI application.
14. Access the UI application as the UMC user associated with the created Person. Now you can:
• Create other Persons or Group of Persons.
• Assign all segregation tags that are already assigned to you to these Persons or Group of Persons. Pay attention
that you are not segregating Person/Person Groups, but you are granting them the right to view/do something.
The session is populated with both tags assigned to Persons and tags assigned to Person Groups. Persons
inherit all tags assigned to the Groups to which they are associated. Segregation tags assigned to Person
Groups can be viewed in the Personnel Management environment by selecting the Person assigned to the
Person Group.
• Manage the instances with the same tags already assigned to you.
• Manage the not segregated instances if the Person associated with your user is enabled to view not segregated
data.
• Create new segregation tags. Pay attention that they are not assigned with you by default because you are not
logged on as SysAdmin user. For this reason, you cannot assign the new tags. To do it, you need to log on to the
UI application as SysAdmin user again and assign the new segregation tags to the Person associated with the
UMC user.
Example of Scenario
The following diagram shows an example of possible scenario. It has been split in three different phases to better
explain the system behavior.
Since Personnel App and Material App are involved in the example, a general knowledge on these Apps is
required before approaching this diagram.
Phase 1
Phase 2
Phase 3
Event Description
SessionPopulated Fired by Personnel App or a custom personnel app, to notify the end
of the populate action.
SessionUpdated Fired by the system to notify that a session has been updated.
SessionDeleted Fired by the system to notify that a session has been deleted.
When creating handlers for these Data Segregation system events, bear in mind that their envelopes may be NULL
For further information on the events involved see SystemData.Foundation reference documentation.
Behavior
When a user logs on to an App, requesting a token from the Opcenter EX FN Authorization Server (described in
Managing Client Authorization of the Opcenter Execution Foundation Development and Configuration Guide), the
system component triggers the SessionCreated event to which the Personnel App is subscribed. Through a
predefined event handler, the Personnel App performs the necessary business logic to retrieve:
• the Person associated with the session user
• the Groups to which the Person belongs.
Personnel Manager then populates the session with the list of Segregation Tags assigned to the retrieved Person
and Group(s), and sends a SessionPopulated event to the system.
The system waits for the SessionPopulated event from Personnel App or custom personnel app (or
the SessionAligned event when there is third-party integration App). The populate session operation has a default
timeout (10 seconds) which can be customized in the following configuration files in the Opcenter EX FN Application
Service Layer and in all hosts of the environment:
• %SITUnifiedSystemRoot%svc-runtime\Web.config
• %SITUnifiedSystemRoot%bin\Worker.exe.config
• %SITUnifiedSystemRoot%bin\Worker32.exe.config
You need to modify these files by adding the LoadSessionTimeout key (in milliseconds), as shown in the
following example:
<appSettings>
<add key="LoadSessionTimeout" value="10000" />
</appSettings>
If the timeout expires or the SessionPopulated event contains an error code, then the populate session
operation fails and the system generates a internal server error.
During create operations the selected tags associated with session user are by default assigned to the entity
instances. The user can modify this behavior directly in the business logic, by modifying the list of segregation tags
associated with the instance.
When the user logs off, the system triggers a SessionDeleted event and the session is cleared. If the token expires,
the related session also expires. The user must consequently repeat the log-in process, and the system triggers a
new SessionCreated event.
The Personnel App automatically assigns all available segregation tags to the SysAdmin user even if this
user is not associated with a Person.
Create Selected session tags are added by default to instances created via API
Platform.Create.
Command handler can modify the Segregation Tag list (see below).
In case of Composition relationship, the part entity inherits the tags of
the composite entity. Any tag added to the part entity in the command
handler will be ignored.
In case of Facet, during the submit operation, the segregation tags of
the related entity are automatically associated with the facet. This
means that the tags associated with the facet by the user will be merged
with the tags of the related entity, in order to restrict the access to the
facets in comparison to the entity (for example, a restricted document
associated to an unrestricted entity).
Edit By default the segregation tags are not modified. Command handler can
modify Segregation Tag list.
In case of simple relationship:
• Segregation tags associated with entity instances are not
propagated.
In case of Composition relationship:
• Part entity tags cannot be modified.
• Changes applied to the composite entity tags are propagated to the
part entity.
In case of Facet:
• Facet tags can be modified independently from the related entity
tags.
• Changes applied to the base entity tags are not propagated to the
Facet.
Copy When copying the entity instance, then segregation tags associated
with entity instances are propagated.
New Revision When creating a new revision of the entity instance, then segregation
tags associated with entity instances are propagated.
Bulk insert Selected session tags are added by default to instances created via API
Platform.Create.
The behavior is the same of the Create operation.
Bulk import Selected session tags are added by default to instances created via API
Platform.Create when the entity instance does not exist.
Signals Signals triggered when specific entity instances are created, updated,
deleted, frozen/unfrozen or locked/unlocked, are sent to users who are
subscribed to the signal via authorization server, if the segregation tags
associated with the entities are also assigned to the user.
Events and commands The user session is not propagated in business logic events, and
commands called from business logic events.
So no default values are inserted in create operations and queries are
not segregated.
Mark for cleaning Mark for cleaning operations do not modify segregation tags associated
with entity instances.
Queries Queries via Service Layer (including Reading Functions) or via SDKLean
application are segregated by using the selected session tags if a
request is made with a token generated from the Authentication Server.
Queries are not currently segregated in Workers.
GetCommittedEvent The following APIs are not segregated when they are invoked from a
APIs and SDKLean application or from a Reading Function, even if a request is
GetContentPayload API made with a token generated from the Authentication Server:
• IEvent GetCommittedEvent(Guid sessionId, EntityDomain
entityDomain);
• IEnumerable<IEvent> GetCommittedEvents(Guid lastSessionId,
EntityDomain entityDomain);
• IEnumerable<IEvent> GetCommittedEvents(Guid lastSessionId,
EntityDomain entityDomain, int pageSize);
• IEnumerable<IEvent> GetCommittedEventsInRange(Guid
sessionIdFrom, Guid sessionIdTo, EntityDomain entityDomain).
• Stream GetContentPayload(Guid id, UnifiedContentNamespace
contentNamespace = UnifiedContentNamespace.Application);
Modify the list of In case of Composition relationship, the involved entities must be
segregation tags composite entities. Parent entities will inherit all changes; this because
associated to entity any change applied to the composite entity tags will be propagated to
instances the part entity.
The session lifecycle is linked to the Token lifecycle. Different tokens created from the same user will
generate different sessions.
Segregation Tags assigned to a Person are available in Session the next time the associated user logs on.
Workflow
1. Creating segregation tags in the Data Segregation App.
2. Assign segregation tags to Persons in the Personnel App or custom Apps.
3. Assign segregation tags to entity instances in Apps using default values.
4. If needed, modify the list of segregation tags assigned to entity instances.
Operation Description
Edit To modify tag description, tag color and the option to make the tag relevant for logging
operations.
Delete All tags can be deleted, regardless of whether they have already been associated with an
entity instance or Person/Person Group.
Procedure
1. Do either of the following to open the Data Segregation Tag page:
• Click the Data Segregation Tag home tile.
• Click Data SegregationTags Management in the side menu bar and click Data Segregation Tag.
2. In the Data Segregation Tag page, click .
3. In the Add page insert a mandatory name for the new tag.
4. Add an optional description.
5. Select a color for the tag from the list of possibilities. Otherwise, a grey color will be displayed in the Assigned
Tags panel.
6. If you want to make the tag relevant for logging operations, select the Record access in segregation tag log
check box. Segregation logs will be displayed in the Segregation Tag Log page.
7. Click Save.
• Segregation tags are displayed in the Data Segregation panel the next time the associated user
logs on.
• The CreateSegregationTag Command allows you to create Segregation tags, as described in the
Commands section of the DGS_SD Reference Guide. If it has been directly used and the Color input
parameter has been configured by setting a not allowed value, segregation tags are displayed with a
Grey color in the Assigned Tags panel.
The following procedure describes how you can assign segregation tags to entity instances in Apps by using the
default values, without changing the business logic.
Prerequisites
• The Data Segregation App has been installed in the Solution.
• The Enable data segregation tag selection option has been enabled for your UI Application in Solution Studio,
as described in Creating a UI Application of the Opcenter Execution Foundation Development and Configuration
Guide.
• You have created Data Segregation tags in the Data Segregation App.
• You are a Sysadmin user, otherwise you have created Persons associated with users in the Personnel App or
equivalent custom App and you have associated Data Segregation tags with these Persons. It is possible to
create custom Apps with generic resources, such as equipment, and associate them with users.
• Entity instances to which you want to assign segregation tags must be able to be segregated (for example,
segregation tags, Persons and Persons Groups are not). For further information, see Which Users and Entity
Instances are involved in Data Segregation.
Procedure
1. Do either of the following to open the Data Segregation Tag page:
• Click the Data Segregation Tag home tile.
• Click Data SegregationTags Management in the side menu bar and click Data Segregation
Tag. The Tag Management dialog box opens displaying the following areas:
• Assigned Tags - The Data Segregation Tags that are assigned to the logged on user but not to the
entity instances.
• Assigned and Active Tags - The Data Segregation Tags that are assigned to the logged on user
and entity instances. By default this area is populated with all available tags.
Icon Description
3. Click OK.
The CreateSegregationTag Command allows you to create Segregation tags, as described in the
Commands section of the DGS_SD Functional Block Reference Guide. If it has been directly used and
the Color input parameter has been configured by setting a not allowed value, segregation tags are
displayed with a Grey color in the Assigned Tags panel.
Prerequisites
• The Data Segregation App has been installed in the Solution.
• The Enable data segregation tag selection option has been enabled for your UI Application in Solution Studio,
as described in Creating a UI Application of the Opcenter Execution Foundation Development and Configuration
Guide.
• You have created Data Segregation tags in the Data Segregation App.
• You are a Sysadmin user, otherwise you have created Persons associated with users in the Personnel App or
equivalent custom App and you have associated Data Segregation tags with these Persons. It is possible to
create custom Apps with generic resources, such as equipment, and associate them with users.
• You have assigned segregation tags to entity instances (entity instances are able to be segregated. For further
information, see Which Users and Entity Instances are involved in Data Segregation).
• In case of Composition relationship, the involved entities must be composite entities. Parent entities will inherit
all changes; this because any change applied to the composite entity tags will be propagated to the part
entity. For further information, see What Data Segregation is Applied to.
Procedure
1. In the runtime UI page of your App select an entity instance and click the icon.
The Tags Management sidebar displays the segregation tags that have already been assigned to the selected
entity instance, and those that are available but not currently assigned.
2. Modify the list of segregation tags assigned to the entity instance, as follows:
• To assign segregation tags to the selected entity instance, click the icon in the available tags list.
• To unassign segregation tags to the selected entity instance, click the icon in the assigned tags list.
3. Click Save All.
Available operations
Operation Description
Sorting results You can sort results by choosing the field on which you want to apply the ordering
criteria (in ascending or descending order).
Searching By clicking on the icon placed on the top of the screen, you can enter search
criteria in the provided filters in order to search by the most relevant information
(involved tags, operation time stamp, user name, action type, involved entities and
entity type, environment).
By clicking on the icon placed next to each retrieved log, the system
automatically fills in the search criteria with the name of the selected segregation tag
and makes it easier to search for all the items that are related to the selected one.
Expanding log details You can expand each log to view some details (time stamp, involved tag, entity to
whom the tag is assigned, environment).
However, custom apps can be used with the Data Segregation functionality to manage persons and/or resources,
such as equipment, and to associate them with users. These custom apps must have predefined event
subscriptions to the event generated when a user logs on the a session (SessionCreated), create and call a
command to invoke a specific method of IUnifiedSdkDataSegregationWriting interface to populate the
session (PopulateSessionSegregationInfo), and fire the SessionPopulated event to notify that the session has
been populated.
Data Segregation can also be used by third-party integration apps, via a predefined event subscription to the
SessionAlignment event. Once the event is fired, information on the session tags can be retrieved with
the GetSessionSegregationInfo command, custom logic can be implemented to manage the session tags, and the
SessionAligned event must be fired to notify that the session has been populated.
SessionId is a parameter of the Session Manager system events. You can programmatically retrieve the SessionId
from the current session by using the following code:
However, the user session is not propagated in business logic events, and commands called from business logic
events.
Available Operations
• Handling Persons or Resources with Custom Apps
• Implementing Data Segregation in Third-Party Integration Apps/Functional Blocks
• Logging Operations on Data Segregation Tags
Workflow
The SessionCreated and SessionPopulated events are available as referenced system events inside the
model project in Project Studio for Functional Blocks, Apps and Extension Apps.
Procedure
To handle the SessionCreated event through an event handler, invoke
the PopulateSessionSegregationInfo method and fire the SessionPopulated event, you have to go through the
following steps, described in the Opcenter Execution Foundation Development and Configuration Guide.
1. In the Functional Block, create a command to call the PopulateSessionSegregationInfo method (see How to
Implement Command Handlers in the Opcenter Execution Foundation Development and Configuration Guide). This
command populates the session with associated segregation tags. For more information on
the PopulateSessionSegregationInfo method see IUnifiedSdkDataSegregationWriting Methods in the Opcenter
Execution Foundation Platform Reference Guide.
2. In the Functional Block or in the App, create an event handler for the SessionCreated event (see How to
Implement Event Handlers in the Opcenter Execution Foundation Development and Configuration Guide). The
event is fired whenever a user logs on and also provides information on the expiry date of the session, the
authentication mode used, the identity of the user, and a unique Id assigned to the session. For reference
information on the SessionCreated event parameters, see SystemData.Foundation reference documentation in
the Foundation Model Reference Guide.
3. Implement the previously created event handler (see Implementing Command and Event Handlers in the
Opcenter Execution Foundation Development and Configuration Guide) to retrieve information on persons or
resources associated with the user passed as a parameter in the SessionCreated event, and their associated
Data Segregation tags. Then, invoke the previously defined command from the SessionCreated event
handler (see Invoking Commands in the Opcenter Execution Foundation Development and Configuration Guide).
4. Fire the SessionPopulated event from the event handler (see Raising Events in the Opcenter Execution
Foundation Development and Configuration Guide) to notify that the session has been successfully populated.
This operation needs to be always performed, even if an error returns or there are not tags to be associated. For
reference information on SessionPopulated event parameters, see SystemData.Foundation reference
documentation in the Foundation Model Reference Guide..
5. In the App, create a predefined event subscription for the SessionCreated event handler (see Configuring Event
Subscriptions in the Opcenter Execution Foundation Development and Configuration Guide). The event
subscription is needed to synchronize with the system so that it will wait for the
successive SessionPopulated event before proceeding.
Prerequisites
The view must satisfied certain conditions that are described in the Prerequisites for External Data Source
Views section of the Opcenter Execution Foundation Development and Configuration Guide.
Procedure
1. Create a table containing the session tags. This table must be populated when the Third-Party integration Apps/
Functional Blocks receives the SessionAlignment event handler. We suggest that you:
• Delete no more valid sessions by using the event handler for the SessionDeleted event.
• Implement a business logic of deleting based on the expiry date.
• Update the expiry date when receiving the SessionUpdated event.
For reference information on the SessionAlignment, SessionDeleted and SessionUpdated event
parameters, see the SystemData.Foundation reference documentation.
2. For each entity to be segregated, create an associated entity that can contain tags. We suggest that you keep
tags associated with the entity aligned by subscribing the SegregationTagDeleted event. For reference
information on the SegregationTagDeleted event, see SystemData.Foundation reference documentation.
3. Create or update the imported view by running a join query between the Third-Party table, the table with the
associated tags and the table with the session tags. See the following examples.
SELECT
FROM [dbo].[Ext1]
UNION ALL
SELECT
FROM [dbo].[Ext1]
AND Id NOT IN
SELECT
M2M.[Ext1_Id]
GO
Into this view, we suggest that you use the database context information. The CONTEXT_INFO is an array of bytes
that is initialized by the system with the data segregation information. See the following table.
• The NULL value of the CONTEXT_INFO is the same as the Data Segregation App which is not loaded.
• Bytes from 1 to 34 are reserved.
SELECT
t.*, ORA_ROWSCN
SELECT
M2M."MinimalA_Id"
AND (SYS_CONTEXT("ThirdParty".PKG_COMMON.FCN_GET_CONTEXT_NAME,
'UntaggedDataVisibility') = 1 OR t."Id" IN (SELECT "MinimalA_Id" FROM " ThirdParty "."
MinimalA-To-Segrega_160371995"));
Workflow
The SessionAlignment and SessionAligned events are available as referenced system events inside the
model project in Project Studio for Functional Blocks, Apps and Extension Apps.
Procedure
The third-party App must implement the required business logic to clear expired session records, even
when the SessionDeleted event is not triggered.
SegregationTag Name of the Segregation Tag that has been marked as tracking relevant.
InvolvedEntityId Unique identifier of the Entity instance, to/from which the relevant segregation tag
has been assigned or unassigned.
InvolvedEntityType Full name of the Entity Type, to/from which the relevant segregation tag has been
assigned or unassigned.
InvolvedEntityName Logical key of the Entity instance, to/from which the relevant segregation tag has
been assigned or unassigned.
InvolvedEntity For future use. This attribute will contain the JSON representation of the changes
applied to the Entity instance (or facet instance), to/from which the relevant
segregation tag has been assigned or unassigned.
Environment The environment where the change occurred. It is defined during the environment
configuration phase (see Opcenter Execution Foundation Installation Guide).
Signals App
Channel For future use. This attribute will identify the type of channel referring to the
performed operation. It is now set to 0 and refers to the Writing Channel.
Configuration phases
The life cycle of the rule consists of two main phases:
1. Definition and configuration: in this initial phase, you can configure the Signal Rule by:
Signals App
• Activation and deployment: this stage involves the approval and deployment of the completed Signal Rule.
Once successfully deployed, the runtime status of the Signal Rule will be Running and the command it triggers
can effectively be launched.
Beware that the sequential and synchronous behavior is not optimal in terms of performance and system
scalability because sequential long running logics could act as bottlenecks. Consequently, you should
always carefully evaluate the logic you are planning to execute sequentially.
Signals App
• Signal Rules with execution mode set to sequential cannot contain query blocks.
• A sequential Signal Rule does not guarantee the sequential execution for the commands it invokes in
the action block. To achieve this behavior, you must explicitly associate the required commands to a
sequential Worker Role (see Configuring Worker Roles in the Opcenter Execution
Foundation Development and Configuration Guide).
Users that are not assigned to at least one of these predefined roles will not be able to use the Signals App.
For details on how to do this, see the page Configuring Roles in the Opcenter Execution Foundation Development and
Configuration Guide.
SignalRu
lesAdmin
SignalRu
lesEngin
eer
SignalRu
lesViewe
r
Configuration Status
The configuration status defines the status of a Signal Rule during its modeling phase in the Signal Rule
Management.
Signals App
In editing The Signal Rule has been approved and deployed and is now being
modified without being previously disabled. This may cause a
misalignment between the configuration and runtime status.
Deployed The Signal Rule has been deployed and is consequently in execution.
Rules with this status can be disabled to stop their runtime execution.
This is mandatory before deleting a deployed rule, and can be
performed before modifying a Signal Rule in order to avoid a possible
misalignment between the configuration and runtime status.
Deleted The Signal Rule has been deleted, but its runtime status needs to be
aligned in order for it to be definitively removed. See Deleting Deployed
Signal Rules for further information.
If a configuration status change is not successful, one of the following error types is displayed in the Requires
Attention column next to the Signal Rule:
• for a System Error, which requires user intervention. To check what the problem may be, you can select
the rule, click the Overview button and see its Last Message field in the Overview Signal Rule pane.
A configuration error may occur, for example, if you try to approve a Signal Rule without configuring its action
tile.
Runtime Status
The runtime status defines the execution status of a Signal Rule once it has been deployed.
Signals App
Runtime Description
Status
Running The Signal Rule has been successfully deployed and it is in execution on the active host. Related to
this status, the following situations might occur:
• If the Signal Rule is running on the active host but a deploy error occurs on a stand-by host, the
Runtime status will be Running with the following warning (identified by the icon in
the Requires Attention column, and visible only in the details pane) Deploy failure on one or
more hosts. Please be aware that this rule is not guaranteed to run in case of a switch of the
active host. A possible approach to solve this situation could be to redeploy the rules. After an
additional deploy attempt, the rules will go in Running status without any warning if the
infrastructural problem, which previously prevented the deploy, was temporary and it is now
solved. If this is not the case, further investigations might be required on the server side by
means of other troubleshooting tools such as ETW Viewer.
• If you modify and approve an already deployed signal rule, the rule status remains Running
but the following warning Runtime must be aligned is returned to inform the user that the
running version of the rule differs from the rule which is currently approved. In this case, the
icon is displayed in the Deployed column (and not in the Requires Attention column).
• If you are deploying rules in a distributed environment, you should always check the status of
all the standby hosts in the Opcenter EX FN Worker Monitor tool (see Monitoring Worker
Runtime Instances in the Opcenter Execution Foundation Development and Configuration
Guide). Since the standby hosts do not return information to the current Signal Rule
Management page, if these hosts were not running, they would not be able to execute the
Signal Rules in case of failover switch.
Warning If the signal rule involves an Automation entity type and this rule is running without warnings (
), if the Automation Gateway Server disconnects from the HMI RTIL Platform, the rule
temporarily goes to Warning status and this situation should be automatically solved after the
Automation Gateway Server reconnects to the HMI RTIL Platform.
If the same Signal Rule is running with warnings, after the reconnection to the HMI RTIL Platform,
Signals App
Runtime Description
Status
Runtime errors can be checked in the Signal Rule log and trace files.
Simple types (Bool, Integer, Decimal, (always supported, except for the Timespan that is not supported
DateTime, Guid, Blob, Timespan) inside Query Blocks)
List of Simple Types ( with some limitations: list of simple types are not available for
filtering in Source and Query Block. In Filter block "Any" and "Not Any"
are the only available operators.
For more information, see Selecting the Signal Rule Trigger Source
(Source Block), Adding Source Queries to Signal Rules (Source Query
Block), Configuring Filters for Signal Rules (Filter Block) and Adding
Filter Queries to Signal Rules (Filter Query Block)).
List of Enumeration Types (if defined as optional, they are shown in Action block but cannot be
wired in Transform. For more information, see Configuring Actions for
Signal Rules (Action Block).
It is not managed in Query Block in Enable List configuration. For more
information, see Adding Source Queries to Signal Rules (Source Query
Block) and Adding Filter Queries to Signal Rules (Filter Query Block)).
Signals App
List of Value Types (in Query Block in Enable List configuration is possible to select only
one child of a Value Type field. For more information, see Adding Source
Queries to Signal Rules (Source Query Block) and Adding Filter Queries
to Signal Rules (Filter Query Block)).
List of Parameter type containing (if optional they are shown in Action block but cannot be wired in
simple type properties Transform. For more information, see Configuring Actions for Signal
Rules (Action Block)).
List of Parameter type (if optional they are shown in Action block but cannot be wired in
containing Parameter Types Transform. For more information, see Configuring Actions for Signal
Rules (Action Block)).
Workflow
1. Create a Signal Rule.
2. Configure the Signal Rule:
• Select a Signal Rule source.
• Add source queries to Signal Rules (optional).
• Combine source and query data (mandatory if additional queries have been configured).
• Configure a filter on the selected source (optional).
• Add filter queries to Signal Rule (optional).
• Select an action.
• Transform the parameters of Signal Rules.
• Check the consistency of Signal Rules.
3. Execute the Signal Rule.
Signals App
Creating a new Add This is the basic operation for creating a completely new Signal Rule.
Signal Rule from
scratch
Copying an Copy Signal Rules can be copied, regardless of their status, simply by providing a
existing Signal new unique Id.
Rule
This can save substantial time when creating a new Signal Rule, which is very
similar to an existing rule. The status of copied signals is New.
Importing a Import Signal rules that have been exported, using the Export function in
previously the Signal Rule Management page, are saved in the deployment folder in a
exported Signal JSON file.
Rule
This file must not be modified.
When new rules are imported various checks are performed to ensure the
imported file is valid:
• Only well-formed JSON files with a maximum size of 50MB are imported.
• An internal check is performed on the JSON file before it is imported,
ensuring that its contents have not been accidentally modified.
• If the model of the running solution changed (commands, entities,
signals, Automation types/instances), Signal Rules configured may be
rendered invalid. In particular, an error may return when deploying the
Signal Rule or the signal rule may not work properly at runtime.
Depending on the involved signal rule, do either of the following:
• Open the query editor to update the rule structure to the most
recent version of the solution and then save the query to persist
this information on the database.
• Click Reload to ensure the signal source/action data you are
viewing is aligned with the most recent version and then save the
information.
Prerequisites
The user performing this operation belongs to the SignalRulesAdmin or SignalRulesEngineer role.
Signals App
Attribut Description
e
Id A unique identifier for the new Signal Rule. The Id cannot successively be
modified. The Id value can only contain alphanumeric characters.
Templat (Read-only) The template that will be applied to the rule. Currently there is only one option
e available.
Executio Specifies how to execute the Signal Rule and you can choose one of the following options:
n Mode
• Parallel
• Sequential
For more information see What Are Signal Rules?.
Executio Specifies how to configure the execution history of the Signal Rule and you can choose one of
n History the following options:
• Disabled (default): information on the execution history is never stored.
• Enabled: information on the execution history is always stored.
• Enabled only in case of errors: information on the execution history is stored only if
the Signal Rule execution fails.
If set to Enabled or Enabled only in case of errors, the information on the execution history of
the Signal Rule will be stored in the Signal Rule Execution History page.
4. Click either Save to save and close or Save and Config to save the new rule and start configuring it.
Signals App
To prevent unauthorized users from tampering with the exported packages, strict measures should be
taken to guarantee that the exported information is correctly and securely stored until it is re-imported.
To use Signal Rules securely, the system provides you with a set of predefined roles. These roles guarantee
that permissions, especially administrative permissions, are divided in such a way as to minimize the risk
of elevation privilege. To prevent unauthorized users from tampering with Signal Rules, the least privilege
principle should be applied when assigning users or groups.
Signal Rules can be easily modified and deleted while they are still in the configuration phase and have not
been deployed, by using the following buttons:
• Edit to modify name and description of the Signal Rule and configuration of the Signal Rule
execution history.
• Open to modify the configuration of the Signal Rule, such as its source signal or filter.
• Delete to remove a Signal Rule from the list.
Deployed Signal Rules can be modified and deleted, but require extra steps to be performed.
The Signal Rule Management page provides common functionalities such as Group By, Quick Search,
Filter and User Preferences. The Filter functionality provides a more refined search in addition to Quick
Search. You can filter Signal Rules by Id, Configuration Status, Runtime Status, Hide
Approved and Hide Deployed.
Workflow
The configuration phase of a Signal Rule consists of the following main phases:
• Select a Signal Rule source.
• Add source queries to Signal Rules (optional).
• Combine source and query data (mandatory if additional queries have been configured).
• Configure a filter on the selected source (optional).
• Add filter queries to Signal Rule (optional).
• Select an action.
• Transform the parameters of Signal Rules.
• Check the consistency of Signal Rules.
Signals App
• All parameters belonging to the Automation Node Type Source or the Automation Node Instance
Source are available with their updated value in the Signal Rule Configuration Blocks, even if you did
not select them in the Automation Source Block. For this reason, you need to select only the
parameters required to trigger the Signal Rule.
• Automation parameters may change their values very frequently and can quickly cause data
saturation. A form of filtering logic can be applied server-side within the Automation App through the
smoothing function, which consequently reduces the volume of notifications.
• The data model used as trigger source can change frequently. You can click Reload to ensure the data
you are viewing is aligned with the most recent version, and then save the information. The Reload
operation updates the entity, business event or Automation type/instance structure, including value
types and parameter types.
Prerequisites
• The user performing this operation belongs to the SignalRulesAdmin or SignalRulesEngineer role.
• For Business Event source types: events must have been published as a signals (and subsequently deployed in
the installed App) in order to be accessible from the Signals App. For details on how to publish events as signals
see Publishing Artifacts as Signals in the Opcenter Execution Foundation Development and Configuration Guide.
• For Automation Node Type and Automation Instance source types:
• the Automation App is installed and deployed
• the runtime integration of the Automation Gateway App has been activated and there is at least one
activated Automation Node.
• the user performing configuration operations must have the following access rights:
• access rights to execute the GetAutomationDescriptor Reading Function
• access rights to read
the AutomationNodeInstance, AutomationNodeType, AutomationNodeTypeParameter,
AutomationNodeInstanceParameter Automation Entities.
Signals App
These rights can be assigned either by creating a new role from scratch or copying a predefined
signal role and modifying it as described in Creating Roles of the Opcenter Execution
Foundation Development and Configuration Guide).
Procedure
1. Do either of the following to open the Signal Rule Management page:
• Click the Signal Rule Management home tile.
• Click Signal Rule Management in the side menu bar and click Signal Rule Management.
2. In the Signal Rule Management page, select the Signal Rule you want to configure and click .
3. With the Source Block selected, in the Configure Source Block pane, in the Source Type tab, click on the tile
corresponding to the type of source you want to use by choosing one of the following and then click Next:
• Entity Added/Modified, to be notified when a specific entity, published in the Public Object Model of its
App, is added or modified.
• Entity Deleted/Frozen/Locked/MarkedForCleaning, to be notified when a specific entity, published in
the Public Object Model of its App, is deleted, frozen, locked or marked to be cleaned.
• Business Event, to be notified when an event, promoted to signal in its App, is fired.
• Time Based, to be notified when a timer event is fired.
• Automation Type, to be notified when the selected Automation Parameters of activated Automation
Instances created from the specified Automation Type change
• Automation Instance, to be notified when the selected Automation Parameters of a specific activated
Automation Instance change.
4. In the Properties tab, set the required properties, according to the artifact you have chosen. Click Save and
then Next.
Source type Properties to set
Entity Added/Modified Select the required App and then the required entity from the
drop-down list.
Its structure is displayed, with a list of simple properties and
value types. If you click on value types, the properties they
contain will be displayed. This source type notifies you when
an entity is added or modified.
Entity Deleted/Frozen/Locked/ Select the required App and then the required entity from the
MarkedForCleaning drop-down list.
The ID if the entity is displayed. This source type notifies you
when this entity is frozen, locked, deleted or marked to be
cleaned.
Business Event Select the required App and then the required event from the
drop-down list.
Its structure is displayed, with a list of its parameters.
Clicking on complex parameters will display the parameters
they contain. Lists of Enumeration Types and lists of
Parameter Types are displayed in gray color because they are
not supported.
Signals App
Automation Type Select the required Automation Node Type Id from the drop-
down list. If you want to receive the values of the Automation
Type every time the Signal Rule executes, including the first
run and when the Automation Gateway Server reconnects to
the Opcenter Execution Foundation host, select the Enable
Initial State check box. If left unchecked, the values
corresponding to the initial execution and any reconnections
of the Automation Gateway Server to the Opcenter Execution
Foundation host will be discarded.
The structure of the Automation Type is displayed, along
with its Automation Parameters. Select at least one
Automation Parameter to be notified on.
Signals App
Automation Instance Select the required Automation Node Instance Id from the
drop-down list. If you want to receive the values of the
Automation Instance every time the Signal Rule executes,
including the first run and when the Automation Gateway
Server reconnects to the Opcenter Execution
Foundation host, select the Enable Initial State check box. If
left unchecked, the values corresponding to the initial
execution and any reconnections of the Automation Gateway
Server to the Opcenter Execution Foundation host will be
discarded. The structure of the Automation Instance is
displayed, along with its Automation Parameters. Select at
least one Automation Parameter to be notified on.
5. In the Source Filter tab, set a filter according to the artifact you have chosen:
Selected Source Type.. Properties to Set...
Entity Added/Modified Select the required operations (Added, Modified). If no filters are
selected, you will be notified on all listed items.
Business Event Click Add new envelope and specify the field, operator and value
you want to filter by. Fields containing list of simple types are not
available for filtering because not managed. The filter on
envelopes will apply the OR operator, whilst the individual fields
within each envelope will apply the AND operator. For more
information on firing events with envelopes, see Raising Events in
the Opcenter Execution Foundation Development and
Configuration Guide.
Automation Type Use the Filter expression editor to create a filter in order to be
notified only when specific conditions are satisfied for selected
Automation Parameters. The filter is applied only if the Quality
Status associated with the Automation Parameter value
is Good. Changes made to the Automation parameters quality
trigger the Source Block even if a filter is configured. Parameter
defined as list of simple types are not available for filtering
because not managed.
Signals App
Automation Instance Use the Filter expression editor to create a filter in order to be
notified only when specific conditions are satisfied for selected
Automation Parameters. The filter is applied only if the Quality
Status associated with the Automation Parameter value
is Good. Changes made to the Automation parameters quality
trigger the Source Block even if a filter is configured. Parameter
defined as list of simple types are not available for filtering
because not managed.
If the App you selected has Extension Apps, the artifacts of the Extension App will also be displayed in
the list.
Whenever you open the query editor, the structure of the displayed entities (including value types) are
updated and aligned to the most recent version of the solution.
However, it is necessary to then save the query to persist this information on the database.
Example
A Signal Rule is configured with the business event TaskStatusChanged as its source. One of the parameters of the
event is TaskId (Guid), which represents the ID of the task that has changed status.
The Query block could then be configured to retrieve the task in question, using the ID provided in the TaskId
parameter.
To create this scenario, the following condition must be used in the query block: Id = TaskStatusChanged.TaskId.
The Query Block can be configured with two different behaviors:
• retrieving all selected fields of a single Entity
• retrieving only one field of a list of Entities. In this case, the output of the Query Block is a list of values of the
selected field.
Prerequisites
• The user performing this operation belongs to the SignalRulesAdmin or SignalRulesEngineer role.
• The user performing this operation must have reading permissions for the entities involved in the query. These
permissions can be assigned to a custom user role either by creating a new role from scratch or copying a
predefined signal role and modifying it. For details on how to do this see Creating Roles in the Opcenter
Execution Foundation Development and Configuration Guide.
Signals App
• If the source entities include Automation Entities, additional user rights are required.
• The Signal Rule is not configured for sequential execution (queries can only be added to parallel Signal Rules).
Procedure
The data type of the properties cannot be Timespan. For the supported data types, see Signal Rule
Supported Data Types.
Signals App
To delete a query block, simply select it and click Remove Source Query.
Bear in mind that deleting a query block could invalidate other successively configured blocks. For
example, if the results of the query had already been used in the filter diagram block.
Prerequisites
• The user performing this operation belongs to the SignalRulesAdmin or SignalRulesEngineer role.
• If the source entities include Automation runtime entities, additional user rights are required.
Procedure
1. Do either of the following to open the Signal Rule Management page:
• Click the Signal Rule Management home tile.
• Click Signal Rule Management in the side menu bar and click Signal Rule Management.
2. In the Signal Rule Management page, select the signal rule you want to configure and click .
3. In the Signal Rule Editor select the Combine Block diagram block.
4. In the Combine Type tab, select the combine type tile and click Next.
5. In the Properties tab, click the browse button next to the Expression edit box.
6. In the Combine Editor click Add New Property.
7. Enter a name for the new type in the Field edit box.
8. In the Wiring Type do either of the following:
• Click Constant, select a data type from the Value drop down list, and type the required value.
• Click Field and select the required property from the Value drop down list.
If the data type of the property for the Constant is TimeSpan, the manually entered value must
use the format d.HH:mm:ss, where d is optional and represents days between 0 and 10675199,
HH represents hours between 0 and 23 and mm / ss represents minutes / seconds between 0
and 59. For example, "100.13:59:01", "13:59:01".
9. After you have created all the properties you require, click Save.
Signals App
If you add a Query after having defined the Filter, you must redefine the Filter according to the new
Combine block properties.
Filter clauses can be grouped into two or more clauses and are case sensitive.
Prerequisites
• The source has been defined for the Signal Rule.
• The user performing this operation belongs to the SignalRulesAdmin or SignalRulesEngineer role.
• If the artifact (from the Source or Combine block) used in the filter contains only an enum in its property list,
and no other properties, this enum must not be nullable.
Procedure
1. Do either of the following to open the Signal Rule Management page:
• Click the Signal Rule Management home tile.
• Click Signal Rule Management in the side menu bar and click Signal Rule Management.
2. In the Signal Rule Management page, select the Signal Rule you want to configure and click .
3. In the Signal Rule Editor select the Filter block.
4. Click the Expression browse button in the Properties tab of the side panel.
5. Select the field on which you want to filter from the Field drop-down list.
In case of Automation Type or Automation Instance sources, you can apply criteria on the
Automation Parameter value, on the value attributes (such as the timestamp, the quality status and so
on, which are documented in the IAutomationValue Properties of the Opcenter Execution
Foundation Platform Reference Guide) including the possibility to execute the Signal Rule when the
Automation Parameter value changes (for example, if data value or parameter quality status change).
To do this, you must select from the Field drop-down list the AutomationParameter/IsChanged
attribute and set it to true/false.
6. Select the required operator and corresponding value. The operator depends on the selected field value.
7. Insert the required value for the filter, either by clicking Constant and manually entering a value, or by
clicking Field and selecting it from a list of possible values.
Signals App
If the data type of the property for the Constant is TimeSpan, the manually entered value must use the
format d.HH:mm:ss, where d is optional and represents days between 0 and 10675199, HH represents
hours between 0 and 23 and mm / ss represents minutes / seconds between 0 and 59. For example,
"100.13:59:01", "13:59:01".
If the property is a List of data type the available operators are Any/Not Any (i.e the list contains at
least one value/the list does not contain any value) and it is not possible to configure the Filter with a
Constant value.
8. If you want to group filters, select the check box for each filter clause you want to group, and then
select And or Or for the first clause in the group.
To add new clauses click Add New Clause, and select whether the new clause is additional or in
alternative to the first clause by selecting And or Or. To remove existing clauses, click .
9. Click Apply: the configured filter will now be displayed in the Filter Diagram Block of the Configuration tab.
Whenever you open the Query editor the structure of the displayed entities (including value types) are
updated and aligned to the most recent version of the solution.
However, it is necessary to then save the query to persist this information on the database.
Example
A Signal Rule is configured with the business event TaskStatusChanged as its source. One of the parameters of the
event is TaskId (Guid), which represents the ID of the task that has changed status.
The Query block could then be configured to retrieve the task in question, using the ID provided in
the TaskId parameter.
To create this scenario, the following condition must be used in the query block: Id = TaskStatusChanged.TaskId.
Prerequisites
• The user performing this operation belongs to the SignalRulesAdmin or SignalRulesEngineer role.
• If the source entities include Automation Entities, additional user rights are required.
Signals App
Procedure
1. Do either of the following to open the Signal Rule Management page:
• Click the Signal Rule Management home tile.
• Click Signal Rule Management in the side menu bar and click Signal Rule Management.
2. In the Signal Rule Management page, select the Signal Rule you want to configure and click .
3. In the Signal Rule Editor, select the Filter Block and click Add Filter Query.
4. In the Properties pane on the right, click on the Expression browse button.
5. In the Query editor, enter a name for your query and specify the App and specific entity you want to use for your
query.
6. Select the Is Relevant check box if required. If selected, the execution of the Signal Rule fails if the selected
query fails or does not return any data.
7. Select the Enable List check box if required. If selected the query will retrieve a list of the selected field of the
chosen Entity.
8. If Enable List checkbox is selected the maximum value of entities retrieved must be chosen. Only some values
are supported (25/50/75/100)
9. To include related entities in the query, such as the entity's facets, click the Expand tab and select the required
entities. The properties of the selected related entities will be displayed in the Select tab.
10. Click on the Select tab, and select which properties will be included in the query. If Enable List check box is
enabled only one field can be selected. In Enable List configuration Enum fields are not shown because they are
not managed and only child items of Value Type fields can be selected.
For the supported data types, see Signal Rule Supported Data Types.
If the selected App has Extension Apps, the entities from the Extension App will also be displayed and
can be selected.
11. To configure how the results are displayed, click on the Order by tab, and select the properties you want to
order by, specifying ascending or descending order.
12. Click on the Filter tab, to filter by constant or by selecting a source property, adding as many clauses as
required.
13. Click on the Filter tab, select the field you want to filter by and the operator, and in the Value edit box either:
• click Field, to select a property from the Combine block. Only properties with compatible data types
will be displayed. Properties containing lists are not available because not managed.
• click Constant, to enter a fixed value, along with its data type.
If the data type of the property for the Constant is TimeSpan, the manually entered value must
use the format d.HH:mm:ss, where d is optional and represents days between 0 and 10675199,
HH represents hours between 0 and 23 and mm / ss represents minutes / seconds between 0
and 59. For example, "100.13:59:01", "13:59:01".
14. When you have completed the query configuration click Apply, or Reset, to start over. Note that if the query
results have already been used in successive Signal Rule diagram blocks (Combine, Filter or Transform) a
warning message will be displayed, and confirmation is required before the reset operation will be executed.
15. Click Save.
16. To preview the results of the query, click View Result.
Signals App
To delete a Query block, simply select it and click Remove Filter Query.
Bear in mind that deleting a query block could invalidate other successively configured blocks. For
example, if the results of the query had already been used in the transform diagram block.
The data model of the Signal Rule action can change frequently. You can click Reload to ensure the data
you are viewing is aligned with the most recent version, and then save the information. The Reload
operation updates the complete data structure, including parameter types.
Prerequisites
• The Signal Rule source has been defined.
• The user performing this operation belongs to the SignalRulesAdmin or SignalRulesEngineer role.
Procedure
1. Do either of the following to open the Signal Rule Management page:
• Click the Signal Rule Management home tile.
• Click Signal Rule Management in the side menu bar and click Signal Rule Management.
2. In the Signal Rule Management page, select the Signal Rule you want to configure and click .
3. In the Signal Rule Editor, select the Action Block.
4. Do either of the following:
• In the Action Type side panel select the System Action tile, if not already selected by default. Then, in
the Properties side panel, select both the App your required command belongs to and the specific
command that will be triggered by the signal rule from the drop-down lists. The command is displayed,
along with its structure of parameters. Clicking on complex parameters will display their internal
structure. Lists of Enumeration Types and lists of Parameter Types are displayed in gray color because
they are not supported.
• If you are configuring the Signal Rule in order to trigger an action provided by other Apps (for example,
from the BPFlow App or from the Label App), in the Action Type side panel select the related tile and
follow the procedures described in the documentation of the involved App.
5. Click Save.
If the selected App has Extension Apps, the commands/composite commands from the Extension App will
also be displayed and can be selected.
For the supported data types, see Signal Rule Supported Data Types. List of Blob are not supported even if
optional.
What to do next
You must now wire the parameters of the Signal Rule.
Signals App
... optional
... mandatory
... an optional complex type with some mandatory If wires are not created for any of the parameters.
parameters
If wires are created for any of the parameters, wires
must be created for the mandatory parameters.
Prerequisites
• The Source and Action diagram blocks have been defined for the Signal Rule.
• The user performing this operation belongs to the SignalRulesAdmin or SignalRulesEngineer role.
• The data types of the wired properties are compatible:
Byte Byte
Int16 • Int16
• Byte
Int32 • Int32
• Int16
• Byte
Int64 • Int64
• Int32
• Int16
• Byte
Decimal Decimal
DateTimeOffset DateTimeOffset
TimeSpan TimeSpan
Signals App
String String
Boolean Boolean
Guid Guid
Blob Blob
Procedure
1. Do either of the following to open the Signal Rule Management page:
• Click the Signal Rule Management home tile.
• Click Signal Rule Management in the side menu bar and click Signal Rule Management.
2. In the Signal Rule Management page, select the Signal Rule you want to configure and click .
3. In the Signal Rule Editor, select the Transform Block.
4. Click the browse button next to the Expression edit box in the Properties pane.
5. In the Transform Editor the parameters belonging to the command defined in the action block are displayed.
Wiring is allowed only between lists containing the same type of parameters. Lists of Enumeration Types and
lists of Parameter Types are displayed in gray color because they are not supported.
If you have previously created and run a new Work Process by selecting the Start New Work
Process tile in the Action Type side panel, the system displays in the grid:
• All parameters of the selected Process Definition and of the related Process Template. When
you will save the configuration, the Process Definition parameters will be wired in the
Transform Block configuration, as well as Work Process NId, Work Process name and Work
Process Description.
• If you have selected the related Process Definition Context, the User Fields related to the
selected Context, with the naming convention: ProcessContextDefinition name/UserField
name.
If the data type of the property for the Constant is TimeSpan, the manually entered value must
use the format d.HH:mm:ss, where d is optional and represents days between 0 and 10675199,
HH represents hours between 0 and 23 and mm / ss represents minutes / seconds between 0
and 59. For example, "100.13:59:01", "13:59:01".
7. Click Save.
Signals App
If you want to transform parameters from the Task App in order to create a task with an Autogenerated Id,
insert NId as a constant in the value edit box for the NId parameter for the CreateTask action, preceded
by a special unicode character 0091, which can be copied from the unicode web site using Chrome or
Firefox web browsers. If you cannot use these browsers, this special character can also be created in
Microsoft Word as follows:
1. Enter the number 0091.
2. Selecting this number, type the key combination ALT + X.
3. Copy and paste the resulting character back into your web browser, immediately before the NId
constant.
What to do next
You can now approve your Signal Rule.
Prerequisites
The user performing this operation belongs to the SignalRulesAdmin or SignalRulesEngineer role.
Procedure
1. Do either of the following to open the Signal Rule Management page:
• Click the Signal Rule Management home tile.
• Click Signal Rule Management in the side menu bar and click Signal Rule Management.
2. In the Signal Rule Management page, select the signal rule you want to configure and click .
3. In the Signal Rule Editor click Check Rule Consistency. A list is displayed at the top of the screen with the
blocks that may contain errors and a description of the error.
4. Click the icon on the row corresponding to the inconsistency you want to check to reopen the Signal Rule in
the correct position to sort out the error.
Signals App
This is possible when a Signal Rule has been approved, and its consistency has been checked.
Available operations
• Approving Signal Rules
• Deploying Signal Rules
• Modifying Deployed Signal Rules
• Disabling Deployed Signal Rules
• Deleting Deployed Signal Rules
• Viewing Signal Rule Execution History
• Re-Executing Deployed Signal Rules
• Logging and Tracing Signal Rule Processing Operations
Prerequistes
• The source and action blocks of the signal rule have been correctly configured (the filter diagram block is
optional, and wiring is mandatory only if the command selected in the Action diagram block contains
mandatory parameters). If an error should occur for any of the signal rules in the list, a warning icon will be
displayed next to the rule in question, indicating that the signal rule must be reviewed in order to be able to
approve it. The last error to have occurred can be checked by opening the Details pane of the signal rule.
• The user performing this operation belongs to the SignalRulesAdmin role.
Procedure
1. Do either of the following to open the Signal Rule Management page:
• Click the Signal Rule Management home tile.
• Click Signal Rule Management in the side menu bar and click Signal Rule Management.
2. In the Signal Rule Management page, select the rule you want to approve.
To help find the required signal rule, click the filter symbol and filter the list by Id, Configuration
Status or Runtime Status, or by hiding approved and/or deleted rules form the list.
3. Click Approve. Consistency checks are automatically performed on the signal rule before its status is
changed to Approved.
Rules can also be approved directly from within the Signal Rule Editor, which is opened by selecting the
rule in the Signal Rule Management page, and clicking .
Signals App
If any problems occur during the deploy operation, and the runtime status of the signal rule is error, a flag is
displayed and the results of the deploy operation can be checked in the signal rule log and trace files.
Prerequisites
• The signal rule has been approved.
• The engineering host must be running for signal rules to be deployed. If you promote another engineering host
in your environment (as described in Promoting a Runtime Host to Engineering Host in an Already Configured
Environment of the Opcenter Execution Foundation Installation Guide), or if you manually move the signal files to
another host, you must then redeploy the signals.
• The user performing this operation belongs to the SignalRulesAdmin role.
• The Automation Gateway Server must be up and running before deploying Signal Rules that use Automation
Node Instances as source entities.
Procedure
1. Do either of the following to open the Signal Rule Management page:
• Click the Signal Rule Management home tile.
• Click Signal Rule Management in the side menu bar and click Signal Rule Management.
2. In the Signal Rules Management page, select the approved rules you want to deploy.
To help find the required signal rule, click the filter symbol and filter the list by Id, Configuration
Status or Runtime Status, or by hiding approved and/or deleted rules form the list.
3. Click . The signal rule will now be flagged as deployed, and its runtime status will be Running.
Rule execution
To avoid the same signal triggering more than one action on different hosts, Signal rules are all run on a
single active host, which can be either a runtime host or the engineering host. When a host is active, the
other environment hosts are in stand-by, ready to take over the rule execution if the active host fails.
Prerequisites
The user performing the operation belongs to the SignalRulesAdmin role in order to disable the signal rule.
Signals App
Once you have deployed Signal Rules, you must pay careful attention to any modifications made to your
solution in Solution Studio:
• if you modify the solution, by reloading or deleting Apps for example, or modifying Automation Node
Type Parameters in the Automation Gateway App, you must align these modifications in your Signal
Rule configuration, as artifacts used as a source or target may no longer be present.
• if you want to change the data source in Solution Studio, you must first export the Signal Rules, then
delete them from the signal rule editor. Once the data source has been changed you must re-import
the Signal Rules and re-align them with the runtime status, by approving and deploying again.
Procedure
1. Do either of the following to open the Signal Rule Management page:
• Click the Signal Rule Management home tile.
• Click Signal Rule Management in the side menu bar and click Signal Rule Management.
2. In the Signal Rule Management page, select the signal rule whose name or description you want to modify.
3. Then either:
• Click to modify the name and/or description of the signal rule. If an empty value is inserted, this will
effectively clear the value, or
• Click to modify the configuration of the signal rule, such as its filter.
4. Click Save. If you have changed the signal rule configuration, a warning icon is displayed, indicating that
the configuration and runtime statuses are not aligned.
5. Approve the signal rule.
6. Deploy the signal rule.
If you change the source artifact the filter will be reset and must be reconfigured for the new artifact.
Operation Consequences
modify If you change the configuration of the signal rule, it must then be
approved and deployed again in order to put it back in execution.
deleted No further operations are required, and the signal rule is removed from
the list.
enabled You can decide to put the signal rule back in running status, if you have
not modified its configuration, by clicking .
Prerequisites
The user performing the operation belongs to the SignalRulesAdmin role in order to disable the signal rule.
Signals App
Procedure
1. Do either of the following to open the Signal Rule Management page:
• Click the Signal Rule Management home tile.
• Click Signal Rule Management in the side menu bar and click Signal Rule Management.
2. In the Signal Rule Management page, select the signal rule whose runtime execution you want to stop.
3. Click .
New, not deployed The signal rule is deleted immediately and is removed from the list.
Deployed The signal rule must be approved and deleted in order to complete its
deletion, as the configuration and runtime statuses must be aligned.
Disabled The signal rule is deleted immediately and is removed from the list.
Prerequisites
The user performing the operation belongs to the SignalRulesAdmin role.
Procedure
1. Do either of the following to open the Signal Rule Management page:
• Click the Signal Rule Management home tile.
• Click Signal Rule Management in the side menu bar and click Signal Rule Management.
2. In the Signal Rule Management page, select the signal rule you want to modify or delete.
3. Click Delete.
4. (Deployed rules only) Approve and deploy the signal rule.
Signals App
Prerequisites
• The execution history of the Signal Rule has been configured as Enabled or Enabled only in case of errors.
• The Signal Rule has been deployed and executed.
Start Time The time when the Signal Rule execution is started.
End Time The time when the Signal Rule execution is ended.
Source Type The source type you have set when configuring the Source Block.
Action Type The action type you have set when configuring the Action Block.
Execution Status The status of the Signal Rule execution. Possible values:
Error Code The error code returned by the Action called by the Signal Rule. It is
filled only if the Action execution fails and the error is managed.
Signals App
Last Updated On The last update of the Signal Rule execution, corresponding to the
End Time.
Available Operations
Operation Description
Refresh Signal Rule Execution History To refresh the execution history of the Signal Rule.
Overview Signal Rule Execution To view an overview of the Signal Rule execution. The
Overview Signal Rule Execution dialog box displays the Id of
the Signal Rule, the reason why the Signal Rule has been re-
executed and details on Source and Action Blocks.
Prerequisites
• The execution history of the Signal Rule has been configured as Enabled or Enabled only in case of errors.
• The Signal Rule has been executed at least once.
• The Signal Rule has not been deleted.
• The runtime status of the Signal Rule is not Stopped.
• The user performing this operation belongs to the SignalRulesAdmin role.
Procedure
1. Access the Signal Rules Execution History page.
2. Select the Signal Rule you want to re-execute.
To help you find the required Signal Rule, click the filter symbol and filter the list by Id.
Signals App
3. Click .
4. In the side panel, insert the reason why you want to re-execute the Signal Rule and save the operation. The
Signal Rule will be re-executed.
Logs
The following log system events are persisted in the Windows Event Viewer, under the Application and Services
Logs > Siemens > SimaticIT > System > Admin node (see Persisting System, Security and Application Messages on
Microsoft Event Viewer in the Opcenter Execution Foundation Development and Configuration Guide):
Error The Signal Rule runtime processing The Signal Rule must be corrected and
returned a fatal error and the Signal Rule redeployed.
processing is now stopped.
[Signal Manager] The Rule "<Signal Rule
Name>" "<Rule revision number>" on Host
<Host Name> has terminated with failure
due to this error: <error description> (Error
Code: <Internal Error Code>).
System App
For details on the Signal Rule statuses, see Signal Rule Configuration and Runtime States.
Traces
Traces are displayed in Trace Viewer (see the Logging and Analyzing Application Traces with Trace Viewer section in
the Opcenter Execution Foundation Development and Configuration Guide).
The App references the SITUASys Functional Block. For detailed information on the artifacts contained in this
Functional Block, see the Reference Documentation of the Functional Block.
For a general understanding of Functional Blocks, see Overview of Functional Blocks in the Opcenter Execution
Foundation Development and Configuration Guide.
Barcode App
3 Manufacturing Apps
The Opcenter EX FN Manufacturing Apps are
• Barcode App
• Defect App (with QEMigration Extension App)
• Equipment App (with OPCUAConnect Extension App)
• Label App
• Material App
• Personnel App
• Reference App
Barcode App
The barcode parser is configured to decode MTU identifiers based on Serial Number field (21) as defined in GS1
codification, but it can be extended to decode other serial number fields, as described in How to Manage Barcode
Parser topic.
Workflow
1. Create Barcode Rules.
2. Add Rule Parts.
3. View the Barcode History.
4. Exporting and Importing Barcode Rules Data.
Available Operations
Operation Description
Edit To update:
• Barcode Rules
• Rule Parts
Delete To delete:
• Barcode Rules
• Rule Parts
Move up To move the selected Rule Part up one position in the grid (in the string
generated this corresponds to the Rule Part moving one position to the left).
Move down To move the selected Rule Part down one position in the grid (in the string
generated this corresponds to the Rule Part moving one position to the
right).
Audit Trail data is available if the Audit Trail App is deployed and properly configured. For instructions,
see the Audit Trail App documentation.
To display the Audit Trail of a Barcode Rule, select the Rule and then navigate to the Audit Trail tab.
Barcode App
The Audit Trail tab shows the list of all changes performed on the selected Barcode Rule.
To see more details about each Audit Trail entry, click the arrow to the left of each row. This expands the details
of the respective Audit Trail entry.
Procedure
1. To open the Barcode Rules page, click the Barcode Rules home tile.
2. In the Barcode Rules page, click .
3. Set the required attributes:
Attribute Description
Identifier The identifier assigned to the Barcode Rule. Once the Rule is created,
the Identifier value cannot be modified.
Procedure
1. In the Barcode Rules page, select a Barcode Rule and click .
2. Click the Rule Parts tab.
3. Click and set the required attributes:
Attribute Description
Identifier The identifier assigned to the Rule Part. Once the Rule Part is created, the
Identifier value cannot be modified.
Barcode App
Attribute Description
Item Type (Optional) Represents the item to be considered while defining the
Barcode Rule. An example of Item Type could be: Serial Number.
Expression Represents the regular expression which will be used to validate the
received Barcode string.
For example:
\d{3} means that the matching Barcode must contain three numbers.
Example
Here below an example of the same Barcode matching or not matching the regular expression defined in the Rule:
Result
In the Overview tab of the Barcode Rules page, if you add more than one Rule Parts to your Barcode Rule, it is
possible to view the sum of all the regular expressions in the Expression field.
Barcode App
Procedure
1. To open the Barcode History page, click the Barcode History home tile.
2. The system displays the following details:
Attribute Description
Rule Identifier The identifier of the Rule used to validate the Barcode.
Barcode Rules are parent entities and their Rule Parts are automatically exported.
Barcode App
Target user
System Integrator, Developer
Prerequisites
• Be familiar with Opcenter Execution Foundation developer environment Opcenter EX FN Development and
Configuration Guide.
• Be familiar with Javascript coding.
What can I do
In this chapter you are going to learn:
• How to include the Barcode Scanner in a User Interface
• Configuring the Barcode Parser
barcodeReaderService.waitForBarcode(function (barcode) {
var parsed = barcodeReaderService.parseBarcode(barcode);
//logic goes here
});
Barcode App
ComponentController.$inject = ['common.base',
'Siemens.OpcenterEX.PR.Barcode.BarcodeReader.service' ,'<App name>.constant'];
function ComponentController(base,barcodeService,barcodeParserConfig) {
barcodeService.injectConfig(barcodeParserConfig)
...
}
Barcode App
The parameters of these methods must be strings or objects as presented in the structure of the angular constant.
The inject methods add parameters to the existing configuration, while set methods update configured values.
Furthermore, the service provides you with method injectConfig(angularConstant) to inject the complete
structure of the Angular constant.
Example
barcodeservice.injectKeys(listofkeys.keys);
barcodeservice.injectEntityCodes(listofentitycodes.entityCodes);
barcodeservice.setStartCharacter( '+' );
barcodeservice.setEndCharacter ( 'CK');
barcodeservice.setSeparatorTag( '|');
Reference Documentation
See Opcenter Execution Foundation Development and Configuration Guide for further information on the creation of
Mashup UI Modules and UI Applications.
Barcode App
Set the angular.module with the name of the App you are using. In the example, it is the name suggested
for the creation of the App
angular.module('Siemens.Custom.UIContainer')
(function () {
'use strict';
angular.module('Siemens.Custom.UIContainer')
.constant('Siemens.Custom.UIContainer.CustomBarcodeParserConfig.constant',
CustomBarcodeParserDefaultConfig());
function CustomBarcodeParserDefaultConfig() {
return {
data: {
startCharacter: '+',
separatorTag: '|',
endIndicator: 'CK',
keys: [{
key: '212',
entityLength: 2
}],
entityCodes: [{
code: 21,
entity: 'CustomMTU',
uom: '',
propertyValueName: 'CustomMTUNID'
},
{
code: 11,
entity: 'CustomLOT',
uom: '',
propertyValueName: 'CustomLOTID'
}]
}
};
}
}());
After having called the waitForBarcode method , the parser intercepts every key pressed.
The parser's configuration consists of the following data:
Barcode App
Parameters Description
startCharacter, endIndicator If the start character is encountered, the service records the
subsequent characters, until it encounters the end indicator.
keys The keys, at the beginning of the barcode, indicate the length of
the subsequent entity code. For example, 214 identifies a 4-char
entity code.
entityCodes Entity codes specify the name of the entity from the given
barcode, and its unit of measure. The entity name becomes the
object name in JSON output.
Barcode App
data: {
startCharacter: '+',
separatorTag: '|',
endIndicator: 'CK',
keys: [{
key: '212',
entityLength: 2
}],
entityCodes: [{
code: 21,
entity: 'MTU',
uom: '',
propertyValueName: 'MTUNID'
}]
}
In case the scanned barcode cannot be parsed, the system returns it in NOPATTERNMATCHING vector.
If the scanned barcode starts with a wrong character the barcode will be not acquired.
You can create a custom App in order to define the rules used by barcode parser while decoding. The new
configuration overwrites the default configuration.
Procedure
1. In Project Studio:
• Create a new App ( if you are going to make more customizations) or extend the base app (if you want to
use the model and commands provided by the base app). Name it UIContainer and set the Prefix to
Siemens.Custom.
• In the UserInterface project, create a UI Component.
• Follow the wizard and set what you need.
• In Services folder, add a javascript file, that contains the definition of an angular constant. The angular
constant must be named Siemens.Custom.UIContainer.CustomBarcodeParserConfig.constant.
2. In Solution Studio:
• Create a UI Mashup Module.
• Include the UI Component, you have previously created in your custom App, in the UI Mashup Module.
• Generate the UI Mashup Module.
• Associate the UI Mashup Module you have just created with the UI Application you are configuring.
• Build and deploy the Solution.
Result
The Barcode App checks if a custom angular constant definition exists and loads it instead of the default.
Examples of parsing
Here some examples of barcode parsing using the default configuration
+21221MTU_00001CK {"MTU":[{"MTUNID":"MTU_00001","UoM":""}]}
Defect App
+21221MTU_00001|21221MTU_00002CK {"MTU":[{"MTUNID":"MTU_00001","UoM":""},
{"MTUNID":"MTU_00002","UoM":""}]}
+WrongMTU|21221MTU_00001| {"NOPATTERNMATCHING":["WrongMTU"],"MTU":
21221MTU_00002CK [{"MTUNID":"MTU_00001","UoM":""},
{"MTUNID":"MTU_00002","UoM":""}]}
Here some examples of barcode parsing using the custom configuration, provided as example
+21221MTU_00001|21210LOT_00001CK {"MTU":[{"MTUNID":"MTU_00001","UoM":""}],"LOT":
[{"LOTID":"LOT_00001","UoM":"number"}]}
+21210LOT_00001|21221MTU_00002| {"LOT":[{"LOTID":"LOT_00001","UoM":"number"},
21210LOT_00001CK {"LOTID":"LOT_00001","UoM":"number"}],"MTU":
[{"MTUNID":"MTU_00002","UoM":""}]}
Defect App
Detected Failures can be assigned to Quality Characteristics (Attributive, Variable and Visual) and organized in
more specific Sub-Failures, as well as Quality Actions can be organized in Quality Sub-Actions, representing more
specific actions to be performed.
In addition, Failures can be associated with Attachments, representing instructions that help you to better identify
the detected Failures. Attachments can be text files, videos and images.
Workflow
1. Add the QEMigration App to your Solution.
2. Reconfigure your UI Application, as described in Configuring UI Applications in the Opcenter Execution
Foundation Development and Configuration Guide.
3. Redeploying your Solution, as described in How to Deploy a Manufacturing Solution in the Opcenter Execution
Foundation Development and Configuration Guide.
4. Migrate the existing Failures.
Defect App
Once installed, you can select the Extension App and view the following information:
• In the Dependencies tab, the Functional Blocks referenced by the Extension App.
• In the Where Used tab, in which UI Components and Modules the Extension App is used.
For more information, see How to Manage Apps and Extension Apps in the Opcenter Execution
Foundation Development and Configuration Guide.
• Existing Failures having the same ID and Revision pair of new Failures, created in the Defect App, will
not be migrated.
• Once migrated:
• All existing Failures will be removed from the Work Instruction App.
• The QEMigration Extension App will not be required anymore and it can be removed from your
Solution.
The Defect App allows you to manage both Failures which can occur during the life cycle of a product or process
and Quality Actions required to resolve the detected failures. For this purpose, it provides a dedicated
environment where Failures and Quality Actions can be created, updated and deleted.
Detected Failures can be assigned to Quality Characteristics (Attributive, Variable and Visual) and organized in
more specific Sub-Failures, as well as Quality Actions can be organized in Quality Sub-Actions, representing more
specific actions to be performed.
In addition, Failures can be associated with Attachments, representing instructions that help you to better identify
the detected Failures. Attachments can be text files, videos and images.
Audit Trail is displayed in the each page to provide evidence of all the operations that have been carried out on a
specific Failure/Quality Action. Its records can be viewed by selecting the Failure/Quality Action and clicking
on Audit Trail tab.
Workflow
1. Create Failures.
2. (Optional) Create Sub-Failures.
3. Create Quality Actions.
4. (Optional) Create Quality Sub-Actions.
5. Create Attachments.
Defect App
Available Operations
Operation Description
To update:
Edit
• Failures
• Sub-Failures
• Quality Actions
• Quality Sub-Actions.
• Attachments (only from the Failure Attachment Management
page).
To delete:
Delete
• Failures.
• Sub-Failures
• Quality Actions
• Quality Sub-Actions.
• Attachments (only from the Failure Attachment Management
page).
Create New Revision To create a new revision of the selected Failure/Sub-Failure. The
new revision will have the same settings of the selected Failure/
Sub-Failure, but a new revision value.
Defect App
Procedure
1. Do either of the following to open the Failures page:
• Click the Failures home tile.
• Click Defect in the side menu bar and click Failures.
2. In the Failures page, click .
3. Set the required attributes:
Attribute Description
Id The identifier assigned to the Failure. Once the Failure is created, the Id value cannot
be modified.
The Id value cannot contain the following special characters: & (ampersand), ' (quote),
# (hashtag), " (double quotes), + (plus), : (colon).
Procedure
1. Do either of the following to open the Failures page:
• Click the Failures home tile.
• Click Defect in the side menu bar and click Failures.
2. In the Failures page, select a Failure and click .
3. Click the Sub-Failures tab.
4. Click and set the required attributes:
Defect App
Attribute Description
Procedure
1. Do either of the following to open the Quality Actions page:
• Click the Quality Actions home tile.
• Click Defect in the side menu bar and click Quality Actions.
2. In the Quality Actions page, click .
3. Set the required attributes:
Attribute Description
Type (Optional) If set to General, the Quality Action can be organized in Quality Sub-Actions.
4. Click Save.
Defect App
Procedure
1. Do either of the following to open the Quality Actions page:
• Click the Quality Actions home tile.
• Click Defect in the side menu bar and click Quality Actions.
2. In the Quality Actions page, select a Quality Action and click .
3. Click the Quality Sub-Actions tab.
4. Click .
5. Set the required attributes:
Attribute Description
Procedure
1. Do one of the following:
• Click the Failure Attachments home tile.
• Click Defect in the side menu bar and click Failure Attachments.
• Open the Failures page (see Creating Failures), select a Failure, click and then click the
Attachments tab.
2. Click .
3. Set the required attributes:
Attribute Description
File The document to be attached. You can browse text files, videos and images.
Defect App
4. Click Save.
Procedure
1. Do either of the following to open the Failures page:
• Click the Failures home tile.
• Click Defect in the side menu bar and click Failures.
2. In the Failures page, select a Failure/Sub-Failure and click .
3. Click the Quality Actions tab.
4. Click .
5. Set the required attribute:
Attribute Description
Procedure
1. Do either of the following:
• In the Failure Attachments page (see Creating Attachments), select an Attachment, click and in the
Failures tab select a Failure or a Sub-Failure.
• In the Failures page (see Creating Failures), select a Failure or a Sub-Failure, click and then click the
Attachments tab.
2. Click .
3. Set the required attribute:
Attribute Description
Defect App
Note that Quality Actions are parent entities and their Quality Sub-Actions are automatically exported.
Instead, Sub-Failures are not automatically exported with Failures and they must be exported as well.
Equipment App
Quality
Actions
Equipment App
The Equipment Configuration essentially defines the manufacturing resources that identify the equipment
capabilities and material position within the production environment.
You can create the Equipment Configuration starting from the definition of an Equipment Type. Used as a sort of
template, the Equipment Type allows you to inherit and share common properties with other Equipment
Configurations. You can then modify these properties for each Equipment Configuration.
An Equipment Configuration can have one or more State Machines, providing you with the flexibility to represent
different Equipment Configuration life cycles according to the different contexts of use, e.g. Maintenance,
Production or Resource Planning.
Furthermore, you can create Equipment Group Configurations, which are useful to simplify and speed up the
configuration of the plant, allowing you to define logical or functional collections of Equipment that have similar
capabilities or that can be used as alternatives in a routing node.
Each Equipment Configuration has a corresponding Equipment runtime instance. On this instance you can directly
set Property and Status values, depending on the contextual operational information.
Both at Equipment Type Property level and at Equipment Configuration Property level, you can define property
values will be editable at runtime, in the corresponding Equipment runtime instance. This capability allows you to
distinguish between properties that inherently represent the Equipment Configuration (such as its allowed voltage
range, maximum rotating speed or target internal temperature and so on) and properties whose value strictly
depends on the runtime contextual information.
You can represent the Equipment Configuration in a hierarchical-driven containment way by defining an Equipment
Hierarchy. This offers you the possibility to provide a logical model, for instance, of its own Plant Model (including
temporary resources such as material handling units) or specific parts of the Plant Model itself that share the same
business relevance, such as Quality Areas, Warehouses, Production Areas, Lines Units, Receiving, Packaging or
Shipping Areas. While doing this, you can use a set of predefined (and extensible) Equipment Levels that are
following major ISA 95 and ISA 88 definitions.
You can also aggregate Equipment Configurations by means of Equipment Flows. Flows are the representation of
physical materials’ flowing paths, which include the production machines and the pipelines used to connect them.
Equipment App
Example
1. Create the following Equipment Types:
• OEM1_Multipacker, with the property Status.
• OEM2_Multipacker, with the properties StateCurrent, StateRequested and StateChangeInProcess.
2. Create an Equipment Configuration from each previously created Equipment Type naming them Multipacker1
and Multipacker2, to define the Equipment available on the existing packaging lines.
3. Create the Equipment Group Multipacker and assign the previously defined Equipment Configurations to it.
Equipment App
4. After configuring the other Equipment your plant consists of (including the Palletizer), create the Plant
Equipment Hierarchy to organize them in a tree list that represents the logical organization of the Equipment
within the plant.
5. Create the PackagingLine1 Equipment Flow establishing a connection from the Multipacker Equipment Group
to the Palletizer Equipment Configuration. In this case, the production flow connects both Multipackers to the
Palletizer.
Workflow
1. (Optional) Define Equipment Configuration Levels.
2. (Optional) Define the Equipment Types.
3. Define the Equipment Configurations.
4. (Optional) Define the Equipment Group Configurations.
5. Do either of the following:
• Define connections among Equipment (Equipment Flows)
• Define the physical model of the Plant (Equipment Hierarchies)
6. (Optional) Configure the connection with the Automation Gateway.
Equipment App
When configuring your plant, you can decide to use the default levels or create new ones from scratch, as described
in the following procedure.
Audit Trail is displayed in the Equipment Level page to provide evidence of all the operations that have been
carried out on a specific Equipment Level. Its records can be viewed by selecting the particular Equipment Level
and clicking on Audit Trail tab.
Procedure
1. Do either of the following to open the Equipment Levels page:
Equipment App
• Click Equipment Engineering in the side menu bar and click Equipment Levels.
2. Click .
3. Set the following parameters and click Save:
Parameter Description
Level The code assigned to the Equipment Level. It must set to a value
>=0.
Operation Description
Equipment App
The Equipment Levels page provides common functionalities such as Group By, Quick Search, Filter and
User Preferences. The Filter functionality provides a more refined search in addition to Quick Search. You
can filter Equipment Levels by Id, Name, Level and Is Frozen.
Once created and configured, Equipment Types can be frozen (Freeze ) thus preventing users from modifying
them.
When creating Equipment Configurations, you can firstly define Equipment Types in order to specify a set of
common properties and a State Machine list that will be shared by all Equipment Configurations created from that
Equipment Type.
Equipment Type Properties allow you to extend the information of an Equipment Type, by defining additional
properties, with an Id, a data type and an optional (default) value.
Any change performed on the Equipment Type is not applied to the already created Equipment Configurations.
Even if an Equipment Configuration has been created specifying a reference Equipment Type and inheriting both
properties (their data types and values) and state machines, Equipment Configuration Properties and State
Machines can be managed adding new ones, updating or deleting the existing ones.
Audit Trail is displayed in the Equipment Type page to provide evidence of all the operations that have been
carried out on a specific Equipment Type and its properties. Its records can be viewed by selecting the
particular Equipment Type and clicking on Audit Trail tab.
Workflow
1. Create an Equipment Type.
2. (Optional) Add a Property to an Equipment Type.
3. (Optional) Assign one or more State Machines to an Equipment Type.
Equipment App
Parameter Description
1. In the Equipment Types page, select the Equipment Type to which you want to add the Property, and click
to open the Equipment Type page.
2. In the Properties tab, click .
3. Set the following parameters and click Save:
Parameter Description
Property Type The data type of the property (string, decimal, etc).
Property Default Value (Optional) The default value of the property, to be set according to
the format: 'yyyy'-'MM'-'dd' 'HH':'mm':'ss' (for example 2017-12-25
12:00:00).
Runtime Editing If selected, the property value can be modified in the runtime
environment.
4. To further detail the properties through additional attributes, click to open the Equipment
Type Properties page.
5. To define new attributes, in the Attribute tab select the created Property.
6. Click .
7. Set the following parameters and click Save.
Equipment App
Parameter Description
Attribute Type The data type of the attribute (string, decimal, etc).
Runtime Editing If selected, the attribute value can be modified in the runtime
environment.
Operation Description
/ Freeze/Unfreeze The Freeze operation allows you to configure an Equipment Type as read-
only, so that it cannot be edited. When the Freeze operation is performed on
an Equipment Type, the Equipment Type is flagged as IsFrozen.
You can remove the read-only setting by performing the Unfreeze
operation.
Set as Default To set the selected Equipment Type as default, thus allowing the system to
automatically select it while creating an Equipment Configuration.
Equipment App
Operation Description
Operation Description
Operation Description
Operation Description
The Equipment Types page provides common functionalities such as Group By, Quick Search, Filter and
User Preferences. The Filter functionality provides a more refined search in addition to Quick Search. You
can filter Equipment Types by Id, Name, Description, Is Default, Level and Is Frozen.
Equipment App
if you want to base them on an Equipment Type or not. Equipment Configurations inherit the properties and the
State Machines of the related Equipment Type, but you can customize the default values both of the inherited
properties and State Machines and define new ones.
Equipment used within Equipment Hierarchies or Equipment Flows cannot be deleted.
For the Equipment Configurations, more State Machines can be defined, each of them representing a life cycle in
different perspectives (see the following table showing class-based status types and values).
Dirty, Clean
TL1001200X
TL100X2001
When you create Equipment Configurations in the engineering environment, the system creates
automatically corresponding Equipment instances in the runtime environment.
Workflow
1. Create an Equipment Configuration.
2. (Optional) Add a Property to an Equipment Configuration.
3. (Optional) Associate an Equipment with an existing Equipment Group.
4. (Optional) Assign one or more State Machines to an Equipment Configuration.
Equipment App
• Click Equipment Engineering in the side menu bar and click Equipment Configurations.
2. Click .
3. Set the following parameters and click Save:
Parameter Description
Equipment App
Parameter Description
Property Type The data type of the property (string, decimal, etc).
Runtime Editing If selected, the property value can be modified in the runtime
environment.
5. To further detail the properties through additional attributes, click to open the Equipment
Configuration Properties page.
6. To define new attributes, click the Attribute tab and select the required Property.
7. Click .
8. Set the following parameters and click Save.
Parameter Description
Attribute Type The data type of the attribute (string, decimal, etc).
Runtime Editing If selected, the attribute value can be modified in the runtime
environment.
You can remove the association between Equipment Configuration and Equipment Group by selecting
the Equipment Configuration and clicking .
1. In the Equipment Configurations page, select the Equipment Configuration and click to
the Equipment Configuration page.
2. Click the State Machine tab. If the Equipment Configuration has been created starting from an existing
Equipment Type, here you can find the state machines assigned to Equipment Type inherited by the Equipment
Configuration.
Equipment App
Operation Description
/ Freeze/ The Freeze operation allows you to configure an Equipment Configuration as read-
Unfreeze only, so that it cannot be edited.
When the Freeze operation is performed on an Equipment Configuration,
the Equipment Configuration is flagged as IsFrozen.
You can remove the read-only setting by performing the Unfreeze operation.
Export To export selected entities and instances in an export package that can be
downloaded locally and imported afterwards.
See How to Export and Import Data.
Operation Description
Equipment App
Operation Description
Operation Description
The Equipment Configurations page provides common functionalities such as Group By, Quick Search,
Filter and User Preferences. The Filter functionality provides a more refined search in addition to Quick
Search. You can filter Equipment Configurations by Id, Name, Equipment Type, Level and Is Frozen.
Equipment Group Configurations can be edited (apart from the Id) and can be frozen (Freeze ) thus preventing
users from modifying them, as long as they do not have Equipment assigned.
In addition, Equipment Group Configurations can be associated with other Equipment Group Configurations, in
order to model equip classes and sub-classes.
Audit Trail is displayed in the Equipment Group Configuration page to provide evidence of all the operations that
have been carried out on a specific Equipment Group. Its records can be viewed by selecting the
particular Equipment Group and clicking on Audit Trail tab.
Workflow
1. Create an Equipment Group Configuration.
2. (Optional) Associate an Equipment Group Configuration with an existing Equipment Configuration.
3. (Optional) Join the selected Equipment Group Configuration (as sub-group) with another Equipment Group
Configuration.
4. (Optional) Associate another Equipment Group Configuration (as sub-group) with the selected Equipment
Group Configuration.
Equipment App
To remove the association between Equipment Groups and Equipment Configurations, click .
Equipment App
2. In the Equipment Group Configuration tab, select the Equipment Group Configuration you want to associate
with another Equipment Group Configuration.
3. Click .
4. In the Associate Equipment Group Configuration screen, select the Equipment Group Configuration you want
to associate with the Equipment Group Configuration.
5. Click Save. You can create one association at a time.
Operation Description
The Equipment Group Configurations page provides common functionalities such as Group By, Quick
Search, Filter and User Preferences. The Filter functionality provides a more refined search in addition to
Quick Search. You can filter Equipment Group Configurations by Id, Name, Category and Is Frozen.
Equipment App
Audit Trail is displayed in the Equipment Flow Configuration page to provide evidence of all the operations that
have been carried out on a specific Equipment flow configuration. Its records can be viewed by selecting the
particular Equipment flow and clicking on Audit Trail tab.
Prerequisite
If you want to define a Flow including more than ten Equipment, modify the web.config file of Opcenter EX
FN Service Layer, as described in the following table:
Section Add
Workflow
1. Create an Equipment Flow.
2. Configure an Equipment Flow.
Equipment App
4. Drag and drop the inserted item to the proper position. If the item is not moved, any subsequently inserted item
will be displayed on top of the existing one, hiding it.
5. To define connections, move the cursor over the item from which the connection starts and then drag and drop
one of the blue arrows displayed on its sides to the target item.
6. To add a label providing information on a connection, select the relative arrow, click , type the description
of interest and then click outside of the edit box to quit the editing mode.
7. If necessary, delete unnecessary items or connections, selecting them and then clicking .
8. Click Save.
The Equipment Flow Configurations page provides common functionalities such as Group By, Quick
Search, Filter and User Preferences. The Filter functionality provides a more refined search in addition
to Quick Search. You can filter Equipment Flow Configurations by Id and Name.
Equipment App
Audit Trail is displayed in the Equipment Hierarchy Configuration page to provide evidence of all the operations
that have been carried out on a specific Equipment hierarchy configuration. Its records can be viewed by selecting
the particular Equipment hierarchy configuration and clicking on Audit Trail tab.
Workflow
1. Create an Equipment Hierarchy.
2. Do either of the following:
• Configure an Equipment Hierarchy
• Import an Equipment Hierarchy
Parameter Description
To prevent unauthorized users from tampering with the exported packages, strict measures should be
taken to guarantee that the exported information is correctly and securely stored until it is re-imported.
Equipment App
2. In the Equipment Hierarchy Configurations page, select the previously created Equipment Hierarchy from the
list and click to open Equipment Hierarchy Configuration page. Note that this Equipment Hierarchy must
be empty, otherwise the import operation cannot be performed (the Import button is not displayed).
3. In the Hierarchy tab, click and browse for the .json file previously created.
4. Click , the Equipment Hierarchy is displayed below.
The Equipment Hierarchies page provides common functionalities such as Group By, Quick
Search, Filter and User Preferences. The Filter functionality provides a more refined search in addition
to Quick Search. You can filter Equipment Hierarchy by Id and Name
Operation Description
Note
In order to successfully import an Equipment Hierarchy from a .json file, please be sure to have already
defined the Equipment Configuration to be used as hierarchy's nodes.
Equipment App
[
{
"EquipmentId":1,
"EquipmentNId":"Equip1",
"EquipmentDesc":"Equip1",
"EquipmentTypeNId":"",
"ChildrenNodes":[
{
"EquipmentId":2,
"EquipmentNId":"Equip2",
"EquipmentDesc":"Equip2",
"EquipmentTypeNId":"",
"ChildrenNodes":[
{
"EquipmentId":3,
"EquipmentNId":"Equip3",
"EquipmentDesc":"Equip3",
"EquipmentTypeNId":"",
"ChildrenNodes":[
]
},
{
"EquipmentId":4,
"EquipmentNId":"Equip4",
"EquipmentDesc":"Equip4",
"EquipmentTypeNId":"",
"ChildrenNodes":[
]
}
]
},
{
"EquipmentId":5,
"EquipmentNId":"Equip5",
"EquipmentDesc":"Equip5",
"EquipmentTypeNId":"",
"ChildrenNodes":[
]
}
]
},
{
"EquipmentId":6,
"EquipmentNId":"Equip6",
"EquipmentDesc":"Equip6",
"EquipmentTypeNId":"",
Equipment App
"ChildrenNodes":[
]
}
]
Where:
Property Description
EquipmentTypeNId (Optional) The natural identifier of the Equipment Type associated with the
Equipment.
Equipment App
[
{
"EquipmentId":"1c16b46d-475c-4f4e-8fd6-667e3fb5389e",
"EquipmentNId":"EQ_12",
"EquipmentTypeNId":"EQ_T_2",
"ParentNodeId":"",
"LinkId":null,
"ChildrenNodes":[
]
},
{
"EquipmentId":"ab1ecb5d-81ab-4c5a-98e0-6bf436ebccf2",
"EquipmentNId":"EQ_16",
"EquipmentTypeNId":"EQ_T_2",
"ParentNodeId":"",
"LinkId":null,
"ChildrenNodes":[
{
"EquipmentId":"d98a8350-fc8b-42d6-b010-80980e07a83a",
"EquipmentNId":"EQ_18",
"EquipmentTypeNId":"EQ_T_2",
"ParentNodeId":"ab1ecb5d-81ab-4c5a-98e0-6bf436ebccf2",
"LinkId":"8e6e7f54-18e7-4f51-9fe3-84104e2f83a0",
"ChildrenNodes":null
}
]
},
{
"EquipmentNId":"EQ_19",
"EquipmentId":"dd12392a-5ae1-47eb-8d66-f790c4a6615d",
"ToBeDeleted":true
}
]
Property Description
ParentNodeId Optional) The identifier of the Parent Equipment. If you specify this
property, the Equipment will be added to the Hierarchy as child of another
Equipment; otherwise it will be set as a root element of the Hierarchy.
LinkId (Only if ParentNodeId property has been set) The identifier of the
connection between the Equipment and its parent.
ToBeDeleted Flag indicating if the Equipment must be removed from the hierarchy (true)
or not (false).
Equipment App
Note that both Equipment Configuration and Equipment Type are parent entities.
For more details on the obsolete properties, see Obsolete Functionalities in the Opcenter Execution
Foundation Release Notes.
Equipment App
Equipment App
Equipment App
We suggest you not freeze an Equipment Configuration if you have associated it to an Automation Node
Instance that is still not activated. This is due to the fact that when the Automation Node Instance will be
activated, the system will not be able to automatically create the association between the relative
Equipment and Automation Node.
Prerequisites
Automation Node Types and Instances are configured.
Workflow
1. Associate an Equipment Type with one or more Automation Node Types. This step allows you to create a
predefined association to be used as a template for the Equipment Configuration.
2. Associate an Equipment Configuration with one or more Automation Node Instances. This step allows you to
configure the communication between Equipment and Automation Gateway that will be used at runtime.
Equipment App
Procedure
1. Click Equipment Engineering in the sidebar and then click Equipment Type Management to
open the Equipment Type Management page.
2. Select an Equipment Type and click the Automation Node Type tab.
3. Click , browse and select the Automation Node Type.
Operation Description
Procedure
1. Click Equipment Engineering in the sidebar and then click Equipment Configuration Management to
open the Equipment Configuration Management page.
2. Click the Automation Node Instance tab.
3. (Optional) If you have associated an Equipment Type to the current Equipment configuration, select the Use all
Automation Node Instances (..) check box if you want to choose the Automation Node Instances from the
entire set of the available Automation Node Types, regardless of the Automation Node Type which is associated
to the Equipment Type. Otherwise, you will browse only the Automation Node Instances that belong to the
Automation Node Type which is associated to the Equipment Type.
4. Click and select the Automation Node Instance.
Equipment App
Operation Description
Equipment App
The Equipment page provides common functionalities such as Group By, Quick Search, Filter and User
Preferences. The Filter functionality provides a more refined search in addition to Quick Search. You can
filter Equipment by Id, Name, Level, Created On and Last Updated On.
Procedure
1. Do either of the following to open the Equipment page:
If the Equipment has been created without any State Machine, neither the Set Status icon is
displayed in the Equipment page nor State Machines are displayed in the State Machine tab.
Prerequisite
The property must have been configured with the Runtime Editing option selected.
Procedure
1. In the Equipment page, select the piece of Equipment whose Property value you want to modify and click .
2. Click the Properties tab and select a property having the Runtime Editing option set.
3. Click .
4. Modify the Property value.
5. Click Save.
Label App
Prerequisite
The attribute must have been configured with the Runtime Editing option selected.
Procedure
1. In the Equipment page, select the piece of Equipment whose property attribute you want to modify and click
.
2. Click the Properties tab and select the property.
3. Click .
4. Click the Attributes tab.
5. Select an attribute having the Runtime Editing option set.
6. Click .
7. Modify the attribute value and click Save.
Procedure
1. Open one of the following pages:
• Equipment Configurations (see How to Define Equipment Configurations)
• Equipment Configuration Groups (see How to Define Equipment Group Configurations)
• Equipment Hierarchy Configurations (see How to Define Connections among Equipment Items)
• Equipment Configuration Flows (see How to Define the Physical Model of the Plant)
2. Click .
3. Select Overwrite value on runtime properties if you want to overwrite runtime values with the master data
values (e.g. the imported values).
4. Click Execute.
Label App
• UDM_RF
For detailed information on the artifacts contained in these Functional Blocks, see the Reference Documentation of
the Functional Block.
For a general understanding of Functional Blocks, refer to Overview of Functional Blocks section of the Opcenter
Execution Foundation Development and Configuration Guide.
Concepts
The configuration data of the Label Management is stored by means of the following data model entities:
• Label Types are the containers of all the configurations required to retrieve manufacturing data and display it in
a predefined print format and layout.
• Label Tags are the placeholders to be filled at runtime with actual values.
• Label Templates are the source files in the specific Printer format; they define the final graphical layout and
specify at runtime where the actual values of the tags have to be displayed and printed.
• Label Printers contain the details on the print output destination.
The Label Management data structure can be graphically represented as follows:
Preliminary operations
On each machine where Opcenter Execution Foundationis installed verify the following prerequisites:
Label App
• Install Microsoft .NET Core Windows Hosting Bundle version 3.1.15. This software, which is a prerequisite for the
Label Printing Microservice, can be downloaded from https://dotnet.microsoft.com/download/dotnet-core/
3.1 (in the page, find the first ASP.NET Core Runtime 3.1.15 section, click the Hosting Bundle link in the
Windows row).
• After you have installed Opcenter Execution Foundation, verify that the Label Printing Microservice is running in
IIS by browsing the page: http://localhost/sit-svc/labelPrinting/swagger/v2/swagger.json
If the Label Printing Microservice is properly running the page must show a json file.
The Manufacturing Solution must contain both the Label App and the Signal App.
Workflow
1. Configure the label print layout.
2. Configure Label Types.
3. Configure printers.
4. Raise print requests.
Label App
Bear in mind that variables defined in the layout file must match exactly the Label Tags you will define later on in
the Label Type object and the encoding used to generate the design file must match the encoding you will specify in
the Label Template (as described further on in the Label app configuration procedures).
End-users must configure their own label layout design by applying their own tools and processes.
Therefore, the related instructions are not within the scope of this documentation.
Workflow
1. Create Label Types.
2. Create and associate Label Tags to the selected Label Type.
3. Create and associate Label Templates to the selected Label Type.
Procedure
1. Do either of the following to open the Label Types page:
Id The unique identifier assigned to the Label Type. Once the Label Type is created,
the Id value cannot be modified. The Id can contain only lower and uppercase letters,
digits, and underscore. The first character of the Id cannot be a digit.
Label App
Operation Description
Open It allows you to access the details of the selected Label Type, in order to associate Label
Tags and Label Templates.
Copy Allows you to copy a selected Label Type, and create a duplicate with all Label Tags and
Label Templates associated to the original.
The Copy side panel opens. The panel is pre-filled with all Attributes of the original Label
Type, except the Id.
Enter a new Id and update any other editable fields as needed, then save.
Delete Allows you to permanently remove a Label Type. A confirmation message prompts you to
confirm or cancel your action.
All Label Tags and Label Templates linked to the deleted Label Type are also deleted from
the system.
Label Printers linked to the deleted Label Type are not deleted from the system.
Segregation Allows you to add Data Segregation tags to limit data access of users. See What is Data
Tags Segregation?
To view this icon, the Data Segregation must be enabled and properly configured.
Label App
Operation Description
Allows you to export selected entities and instances in an export package that can be
Export
downloaded locally and imported afterwards. See How to Export and Import Data for
information about data exchange and Exporting and Importing Label Type and Printer
Data for further information on the import sequence of Label data.
Audit Trail data is available if the Audit Trail App is deployed and properly configured. For instructions,
see the Audit Trail App documentation.
To display the Audit Trail of a Label Type, select the Label Type and then navigate to the Audit Trail tab.
The Audit Trail tab shows the list of all changes performed on the selected Label Type and its child entities (Label
Tags, Label Templates, and the Label Printers associated to the Label Templates).
To see more details about each Audit Trail entry, click the arrow to the left of each row. This expands the details
of the respective Audit Trail entry.
Procedure
1. Do either of the following to open the Label Types page:
Id The identifier assigned to the Label Tag, unique under a Label Type. Once the Label Tag is
created, the Id value cannot be modified. The Id can contain only lower and uppercase
letters, digits, and underscore. The first character of the Id cannot be a digit.
Label App
Attribute Description
Variable Name The key used for the substitution logic in the source file. This must correspond to the
name of the tag contained in the source file and it is case sensitive. The Variable Name
can contain only lower and uppercase letters, digits, and underscore. The first character
of the Variable Name cannot be a digit.
No check is performed to see whether the placeholders present in the uploaded source
file actually match the Variable Names specified.
It is up to the user to define all tags present in the source file; otherwise errors will occur
at runtime.
Type The list of possible value types. The following types are available:
• Bigint
• Bool
• Datetime
• Decimal
• Guid
• Int
• Smallint
• String
• Tinyint
Default Value The Tag default value. It is applied when a print request is raised and the runtime value is
null or empty.
Format The format of the value defined above. Enabled only for the following types:
• Datetime
• Decimal
This formatting pattern is applied when a print request is raised on the runtime value
related to this Label Tag, so that for each Tag the user can specify the desired final printed
formatting.
No validation is performed on the format pattern string the user types. For a list of
supported format patterns for DateTimes and Float data types follow the guidelines
presented here: https://docs.microsoft.com/en-us/dotnet/standard/base-types/
standard-date-and-time-format-strings.
5. Click Save. The new Label Tag is created and added to the list of existing Label Tags of the selected Label Type.
Label App
On the existing Label Tags you can then perform the following operations, by selecting the Label Tag and clicking
the proper icon in the Label Tags tab.
Operation Description
Edit Allows you to modify the Variable Name, Type, Default Value, and/or Format of
a Label Tag.
Delete Allows you to permanently remove a Label Tag. A confirmation message prompts
you to confirm or cancel your action.
Segregation Tags Allows you to add Data Segregation tags to limit data access of users. See What is
Data Segregation?
To see this icon, Data Segregation must be enabled and properly configured.
Allows you to export selected entities and instances in an export package that
Export
can be downloaded locally and imported afterwards. See How to Export and
Import Data.
Allows you to export selected entities and instances in an export package that
can be downloaded locally and imported afterwards. See How to Export and
Import Data for information about data exchange and Exporting and Importing
Label Type and Printer Data for further information on the import sequence of
Label data.
Procedure
1. Do either of the following to open the Label Types page:
Label App
Id The identifier assigned to the Label Template, unique under a Label Type. Once
the Label Template is created, the Id value cannot be modified. The Id can contain only
lower and uppercase letters, digits, and underscore. The first character of the Id cannot
be a digit.
Source File The file containing the instructions to be sent to the printer, defined in terms of print
layout design and variables to be substituted with actual values.
The file must be only a text file (plain text, e.g. a file with extension .txt), and the file
format must be supported by the target printer.
Rich Text Format (.rtf) files, Word Documents (.docx), Portable Document
Format (.pdf) files or other formats are not supported.
The variables, marked with begin and end delimiters (see How to Configure the Label
Print Layout) must match all the Label Tag Variable Names specified for the given Label
Type (see Creating and Associating Label Tags). These placeholders in the source file
will be replaced at runtime with actual values when printing a label.
If the plain text file, which contains the instructions to be sent to the printer,
changes, you must update the Source File of the Label Template.
Encoding The encoding format that has been applied to the label print layout design file (such as
for example ASCII, UTF-8, UTF-16BE, UTF-16LE, ANSI, Unicode, Unicode Big Endian).
Formatting The culture that will be used when formatting all DateTime and Decimal tags belonging
Culture to the Label Template.
Begin Delimiter The character marking the beginning of the tag. This character must match the
characters that are present in the label print layout design file.
End Delimiter The character marking the end of the tag. This character must match the characters
that are present in the label print layout design file.
5. Click Save.
Label App
On the existing Label Templates you can perform the following operations, by selecting the Label Template
and clicking the proper icon in the Label Templates tab.
Operation Description
Allows you to modify the Name, Description, Source File, Encoding, Begin
Edit
Delimiter and/or End Delimiter of a Label Template.
Allows you to set a Label Template to default. The first Label Template you create for a
Set Default
Label Type is automatically set as default. In the list of Label Templates associated to a
Label Type, the Is Default column specifies the current default Label Template. To
change the default Label Template, select the required Label Template from the list
and click Set Default.
Allows you to add Data Segregation tags to limit data access of users. See What is Data
Segregation
Segregation?
Tags
The icon is visible only if Data Segregation is enabled and properly configured.
Allows you to export selected entities and instances in an export package that can be
Export
downloaded locally and imported afterwards. See How to Export and Import Data for
information about data exchange and Exporting and Importing Label Type and Printer
Data for further information on the import sequence of Label data.
Workflow
1. Create Printers.
2. Associate Printers to Label Templates.
Procedure
1. Do either of the following to open the Printers page:
Label App
Id The unique identifier assigned to the Label Printer. Once the Label
Printer is created, the Id value cannot be modified.
Labeling System To set the printing options, select one of the following:
• Event Only - to raise the LabelPrintRequested event - which
has all the print request information - so that it can be
managed by a custom procedure
• Printer - to perform the printing on a physical printer
• File - to print to a .txt file
The Print Event is always generated before creating the file or sending
the print request to the printer. This applies to the Printer and File
options as well.
Label App
Attribute Description
Labeling System Information The information needed depends on the Labeling System you have
previously selected. To correctly configure a working Printer or File
output, you must enter the following information:
• In case of Printer Labeling System:
• if the printer is installed locally, the name of the
printer
• if the printer is accessible over a network, the
network address of the printer: \\{MyServerName}\\
{PhysicalPrinterName}
Label App
Attribute Description
4. Click Save. The new Printer is created and added to the list of existing Printers.
Operation Description
Edit Allows you to modify the Name, Description, Labeling System and/
or Labeling System Information of a Label Printer.
Copy Allows you to copy a selected Label Printer, and create a duplicate using
the existing information of the original.
The Copy side panel opens. The panel is pre-filled with all Attributes of the
original Label Printer, except the Id.
Enter a new Id and update any other editable fields as needed, then save.
Segregation Tags Allows you to add Data Segregation tags to limit data access of users. See
What is Data Segregation?
For this, Data Segregation must be enabled and properly configured.
Label App
Procedure
1. Do either of the following to open the Label Types page:
The first Printer you associate with a Label Template is automatically set as default. In the
Set Default
list of Printers associated with a Label Template, the Is Default column specifies the
current default Printer.
To change the default Label Printer, select a Label Printer from the list and click Set
Default.
If a Printer is set as default, it cannot be deassociated from the Label Template. Set another
Remove
Printer as default and then remove the required one.
Label App
For such configurations, previous understanding of Signal App workflows is needed. Follow the
instructions presented in the Signal App documentation. See Creating Signal Rules and Configuring Signal
Rules.
The Signal App is used to create bindings between Opcenter EX FN data and print action input fields.
Once the Label App is deployed, it becomes possible for the user to configure a Signal Rule with a new specific type
of Action: the Print Label Action.
In this case, the Signal Rule trigger source is the runtime data linked to Label Tags, and the triggered action is a
Print Label Action.
Signal Rules are configured to start a Print Label Action by subscribing to any of the available Signal Rule sources.
Binding of Label Tags to actual values at runtime is configured inside the Signal Rule, allowing to retrieve runtime
data from the source. This also permits combining the source data with additional data retrieved via the Query
Block capabilities of the Signal App.
Label App
It is also possible to choose the Label Printer at runtime by configuring it within the Transform Block of a Signal
Rule; this overrules the Label Printer set at engineering time. If no such configuration is in place, the Signal Rule will
use the Label Printer configured at engineering time.
After the Print Label Action is invoked, a print event is always generated with all the print info payload (refer to the
LabelPrintRequested section of the LBM_OP Reference Guide). Then, depending on the printer used and its
configuration, a file may be generated, or a request may be sent to an actual printer. It is also possible to stop the
flow at event fire, without printing out the label. If the printer used is of type 'Event Only', then only the print event
is raised and no file is created, nor any physical label is printed.
The event can be used inside event subscriptions as well, in order to trigger business logic either from custom
event handlers or from external applications.
Procedure
When configuring Signal Rules of this type, you must perform the following:
1. Set the Action Type to Print Label Action.
2. For the Print Label Action, specify the Number of Copies to be printed, as well as the Label Type and an
associated Label Template and Label Printer. After the Label Type is specified, the associated Label Tags are
also displayed.
Note that it is not mandatory to specify a Label Template and/or Label Printer. If these fields are left empty,
the default ones are used by the system.
These entities are created in and retrieved from the Label App.
3. If needed, configure queries and combine them with the source in the Combine Block.
4. Configure the binding in the Transform Block: each Label Tag must be bound to a runtime value of the same
data type coming from the source or from the Query Blocks, if present.
5. Optional configurations:
Configure the Number of Copies in the Transform Block: associate the NumberOfCopies property to a
runtime value coming from the source OR enter a numeric runtime value for the
NumberOfCopies property, which represents the number of copies to be printed during this single Print
Request.
When the Signal Rule is triggered, the actual value representing the Number of Copies is chosen based on
availability, in the following priority order:
• the Number of Copies configured at runtime in the Transform Block of a Signal Rule - if available, or else
• the Number of Copies configured at engineering time in the Print Label Action Block in the Signal Rule - if
valid, or else
• the default Number of Copies, which is always 1
In case the Number of Copies configured at runtime in the Transform Block or at engineering
time in the Print Label Action Block is not a valid numeric value, then the default Number of
Copies is used, which is always 1.
Configure the Label Template in the Transform Block: associate the LabelTemplateId property to a
runtime value coming from the source, representing the required template information (its unique
identifier) - this template information must be configured on the source, and it must correspond to a
valid Label Template created in the Label App.
When the Signal Rule is triggered, the actual Label Template which will be used is chosen based on
availability, in the following priority order:
• the Label Template configured at runtime in the Transform Block of a Signal Rule - if available, or else
• the Label Template configured at engineering time in the Print Label Action Block in the Signal Rule - if
available, or else
• the Label Template set as default on the Label Type - always available
Label App
In case the Label Template configured at runtime does not correspond to a valid Label
Template created in the Label App, then the Label Template set as default on the Label Type is
used.
Configure the Label Printer in the Transform Block: associate the LabelPrinterId property to a runtime
value coming from the source, representing the required printer information (its unique identifier) - this
printer information must be configured on the source, and it must correspond to a valid Label Printer
created in the Label App.
When the Signal Rule is triggered, the actual Label Printer which will be used is chosen based on
availability, in the following priority order:
• the Label Printer configured at runtime in the Transform Block of a Signal Rule - if available, or else
• the Label Printer configured at engineering time in the Print Label Action Block in the Signal Rule - if
available, or else
• the Label Printer set as default within the Label Template > Label Type association - always available
In case the Label Printer configured at runtime does not correspond to a valid Label Printer
created in the Label App, then the Label Printer set as default within the Label Template is
used.
Timestamp Date and time information reflecting the moment the Print History entity was
recorded.
Label App
Attribute Description
Is a Reprint The checkbox is checked if the recorded Print History event represents a Print
Request executed as a result of a Reprint action.
Print Id The unique identifier of the Print History entity. The Id value cannot be modified.
Is Reprint of Stores the Print Id of the Print History entity for which the Reprint action was
triggered.
Initiated By Stores the name of the user who initiated the Reprint action.
Reprinting Labels
1. On the Print History page, select the Print History entity you want to reprint.
2. Click Reprint Labels.
3. On the Reprint side menu, reconfigure runtime values as needed:
• Enter the Number of Copies to be printed.
• Specify the Printer to be used for the Reprint action.
• Optionally, enter a Reason for executing the Reprint action.
4. Click OK to execute the Reprint action.
The Reprint action will use the Print Request data stored in the Print History (Label Template, Label Printer, Label
Tag values), as well as the previous configuration data, to trigger a new Print Request.
Whenever a Reprint is invoked, the reprint command is executed, and a new Print History entity is recorded. The
user triggering the Reprint action is also traced.
Label App
Note that Label Types are parent entities and their Label Templates and Label Tags are automatically
exported.
Material App
Material App
The following entities are created from templates and therefore can have Properties:
• Material
• Material Lot
• Material Tracking Unit
• Material Tracking Unit Aggregate.
Property Attributes
When creating Properties you can set the following attributes:
Attribute Description
Id The unique identifier assigned to the Property. Once the Property is created, the Id value
cannot be modified.
Type The type of the Property. For the possible types, see Property Types and Values.
UoM The Unit of Measure. This field is mandatory when the selected Type is Quantity.
Value (Optional) The Property value. For the possible values, see Property Types and Values.
If you have assigned Data Segregation tags to an entity, they are shown in the Property page for the selected entity.
Bool 7 true/false
Material App
Tinyint 2 0 to 255
Workflow
1. Configure Material Templates.
2. If needed, configure Material Groups (used to logically group Materials).
3. Configure Materials and assign them to the Material Groups.
Material App
values (if defined), Material Properties can be managed adding new ones, updating data type and values or deleting
them.
Workflow
1. Create a Material Template.
2. Add the required Properties to the Material Template.
Unit of Measure (Optional) The unit of measure (UoM) associated with the Material
Template. The UoM will be inherited by the Material but you can
modify it when creating the Material.
Once the first Material Template is created, the Material Template page is available by selecting the
Material Template and by clicking . Here
other Material Templates can be created from the Overview tab.
Material App
Operation Description
Edit Allows you to modify Name, Description and/or Unit of Measure of a Material
Template.
The Material Template must not be flagged as IsFrozen.
Freeze / The Freeze operation allows you to configure a Material Template as read-only, so that
Unfreeze it cannot be edited. When the Freeze operation is performed on a Material Template,
the Material Template is flagged as IsFrozen.
You can remove the read-only setting by performing the Unfreeze operation.
Set / Unset as Allows you to set the selected Material Template as default.
Default You can remove this setting by performing the Unset operation.
Allows you to export selected entities and instances in an export package that can be
Export
downloaded locally and imported afterwards.
See How To Export and Import Data for information about runtime data exchange
and Exporting and Importing Material Data for further information on the import
sequence of Material data.
Operation Description
Material App
Workflow
1. Create a Material Group.
2. Join the selected Material Group (as sub-group) to another Material Group.
3. Associate another Material Group (as sub-group) with the selected Material Group.
4. Associate a Material with the selected Material Group.
Once the first Material Group is created, the Material Group page is available by selecting the Material
Group and by clicking . Here other Material Groups can be created from the Overview tab.
You can remove the association of the Material Group with a Material Group by selecting the Material
Group to be disjoined in the Grouped In tab and clicking .
Material App
1. In the Material Groups page, select a Material Group and click to open the Material Group page.
2. In the Material Groups tab, select the Material Group you want to associate with another Material Group.
3. Click .
4. Select the Material Group you want to associate with the Material Group.
5. Click Save. The Material Group is associated with the other Material Group.
You can remove the association of the Material Group with another Material Group by selecting the
Material Group in the Material Groups tab and clicking .
• You can remove the association of the Material Group with the Material by selecting the Material Group
in the Materials tab and clicking .
• You can also associate a Material Group with a Material in the Materials page.
• You can access the associated Material in the Material page by selecting the Material and by clicking
.
Operation Description
Freeze/ Unfreeze The Freeze operation allows you to configure a Material Group as read-only,
so that it cannot be edited. When the Freeze operation is applied to a Material
Group, the Material Group is flagged as IsFrozen.
You can remove the read-only setting by applying the Unfreeze operation.
Allows you to export selected entities and instances in an export package that
Export
can be downloaded locally and imported afterwards.
See How To Export and Import Data for information about runtime data
exchange and Exporting and Importing Material Data for further information
on the import sequence of Material data.
Material App
Workflow
1. Create a Material.
2. Add a Property to a Material.
3. Associate a Material with a Material Group.
Creating a Material
1. Do either of the following to open the Materials page:
• Click the Materials home tile.
• Click Material Engineering in the side menu bar and click Materials.
2. Click to add a new Material.
3. Set the required attributes:
Attribute Description
Id The identifier assigned to the Material. Once the Material is created, the Id value
cannot be modified.
The Id value cannot contain the following special characters: & (ampersand), '
(quote), # (hashtag).
Revision The revision associated to the Material. Once the Material is created,
the Revision value cannot be modified.
Unique Identifier The identifier required to distinguish different instances of the same Material
revision.
If the value is left blank, then the system will automatically set the field with the
NId and Revision pair.
Material App
Attribute Description
Use Default Template Indicates that the Material will be created using the default Material Template.
Once the first Material is created, the Material page is available by selecting the Material and by clicking
. Here other Materials can be created from the Overview tab.
• You can remove the association of the Material to a Material Group by selecting the Material Group in
the Material Groups tab and clicking .
• You can also associate a Material Group with a Material in the Material Group page.
• You can access the associated Material Group in the Material Group page by selecting the Material
Group and by clicking .
Operation Description
Add New Revision Allows you to create a new revision of the selected Material. The new revision will have
the same settings of the selected Material, but a new revision value.
Material App
Operation Description
Set Material as Allows you to set as Current the selected revision of a Material (Material revision
flagged as IsCurrent).
Current/ Unset
Material as Current You can remove the setting as Current from a Material revision by applying the Unset
Current operation.
Lock/ Unlock The Lock operation allows you to configure a revised material as read-only, so that it
cannot be edited or deleted. When the locking operation is applied to a material,
the material is flagged as IsLocked.
You can remove the read-only setting by applying the Unlock operation.
Allows you to export selected entities and instances in an export package that can be
Export
downloaded locally and imported afterwards.
See How To Export and Import Data for information about data exchange
and Exporting and Importing Material Data for further information on the import
sequence of Material data.
Operation Description
Material App
Example: If you want to import Material Group and Material entities, and the Material Group entities were exported
selecting Include Descendants = False, you must first import the Material Group package and then the Material
one.
Material App
Workflow
1. Configure Material Lot Templates.
2. Configure Material Lots.
3. If needed, configure Material Tracking Unit Templates.
4. If needed, configure Material Tracking Units (and associate them to Material Lots and Material Tracking Unit
Aggregates, if necessary).
5. If needed, configure Material Tracking Unit Aggregates Templates.
6. If needed, configure Material Tracking Unit Aggregates.
Workflow
1. Create a Material Lot Template.
2. Add the required Properties to the Material Lot Template.
Material App
Attribute Description
Id The unique identifier assigned to the Material Lot Template. Once the Material Lot
Template is created, the Id value cannot be modified.
State Machine (Optional) The State Machine associated to the Material Lot Template. You need to
configure the State Machine in the Reference App.
Once the first Material Lot Template is created, the Material Lot Template page is available by selecting
the Material Lot Template and by clicking . Here
other Material Lot Templates can be created from the Overview tab.
Operation Description
Edit Allows you to modify Name, Description and/or StateMachineNId of a Material Lot
Template.
The Material Lot Template must not be flagged as IsFrozen.
Set/ Unset as Allows you to set the selected Material Lot Template as default.
Default You can remove this setting by performing the Unset operation.
Freeze/ The Freeze operation allows you to configure a Material Lot Template as read-only, in
Unfreeze order that it cannot be edited. When the Freeze operation is performed on a Material Lot
Template, the Material Lot Template is flagged as IsFrozen.
You can remove the read-only setting by performing the Unfreeze operation.
Material App
Operation Description
Operation Description
Material App
Workflow
1. Create a Material Lot.
2. Add the required Properties to the Material Lot.
Material App
Autogenerate Name If selected, the name of the Material Lot to be added will be
autogenerated using the Numbering Pattern defined for Material
Lot Name. If you are modifying an existing Material Lot, you can
automatically generate (or re-generate) the Material Lot Name by
selecting this check box (see Edit Material Lot operation in
Available Operations on Material Lots). You need to
configure Numbering Pattern in the Reference App.
Name (Optional) The name assigned to the Material Lot. If you have
selected Autogenerate Name, this field will be disabled.
Use Current Revision The field is read-only and the shown value is based on the Material
revision you have previously selected.
Use Any Revision If selected, the association will always link the Material Lot to the
revision which is current at that moment of time. If you have
selected a Material in a current revision, this field is disabled.
Material Revision (Optional) The Material revision associated with the Material Lot. If
you have selected Use Current Revision or Use Any Revision, this
field will be disabled.
Material Unique Identifier (Optional) This field is already selected when a specific Material
revision is chosen and only one a Unique identifier exists;
otherwise, one Unique identifier must be selected in the list of the
available ones. If you have selected Use Current Revision or Use
Any Revision, this field will be disabled.
Material App
Attribute Description
Use Default Material Lot Template If selected, the Material Lot will be created using the default
Material Lot Template.
Material Lot Template (Optional) The Material Lot Template to be used for the creation of
the Material Lot. If you have selected Use Default Material Lot
Template, this field will be disabled.
State Machine (Optional) The State Machine associated with the Material Lot. If a
State Machine is selected, it overrides the one potentially defined
in the chosen Material Lot Template. You need to configure the
State Machine in the Reference App.
Unit of Measure (Optional) The Unit of Measure associated with the Planned
Quantity Material Lot.
Planned Quantity (Optional) The planned quantity of the Material Lot. This value
is optional unless Unit of Measure is specified. In this case,
Planned Quantity becomes mandatory.
4. Click Save. The new Material Lot is created.
Once the first Material Lot is created, the Material Lot page is available by selecting the Material Lot and
by clicking . Here other Material Lots can be created from the Overview tab.
You can access the associated Material Tracking Unit in the Material Tracking Unit page by selecting
the Material Tracking Unit and by clicking .
Material App
Operation Description
Freeze/ The Freeze operation allows you to configure a Material Lot as read-only, so that it cannot be
edited. When the Freeze operation is applied to a Material Lot, the Material Lot is
Unfreeze
flagged as IsFrozen.
You can remove the read-only setting by applying the unfreeze operation.
Allows you to set a State Machine associated with the Material Lot.
Set
State This operation can be performed only if a State Machine is not already associated, otherwise
Machine the icon is not displayed.
Allows you to set a Material associated with the Material Lot. You must set the required
Set attributes:
Material
• New Material (mandatory)
• Use Any Revision
• New Material Revision
• New Material Unique Identifier
For the attribute details, see Creating a Material Lot.
Material App
Operation Description
Operation Description
Allows you to update a Material Tracking Unit associated with a Material Lot.
Edit
Disassociate Allows you to disassociate a Material Tracking Unit with the Material Lot.
Allows you to delete a Material Tracking Unit associated with a Material Lot.
Delete
Workflow
1. Create a Material Tracking Unit Template.
2. Add the required Properties to the Material Tracking Unit Template.
Material App
Attribute Description
State Machine (Optional) The State Machine associated to the MTU Template. You
need to configure the State Machine in the Reference App.
Once the first Material Tracking Unit Template is created, the Material Tracking Unit Template page is
available by selecting the Material Tracking Unit Template and by clicking . Here
other Material Tracking Unit Templates can be created from the Overview tab.
Operation Description
Edit Allows you to modify Name, Description and/or State Machine of a Material Tracking
Unit Template.
The Material Tracking Unit Template must not be flagged as IsFrozen.
Set/ Allows you to set the selected Material Tracking Unit Template as default.
Unset as Default You can remove this setting by performing the Unset operation.
Freeze/ The Freeze operation allows you to configure a Material Tracking Unit Template as read-
Unfreeze only, in order that it cannot be edited. When the Freeze operation is performed on a
Material Tracking Unit Template, the Material Tracking Unit Template is
flagged as IsFrozen.
You can remove the read-only setting by performing the Unfreeze operation.
Material App
Audit Trail data is available if the Audit Trail App is deployed and properly configured. For instructions,
see the Audit Trail App documentation.
To display the Audit Trail of a MTU Template, select the Template and then navigate to the Audit Trail tab.
The Audit Trail tab shows the list of all changes performed on the selected MTU Template.
To see more details about each Audit Trail entry, click the arrow to the left of each row. This expands the details
of the respective Audit Trail entry.
Workflow
1. Create a Material Tracking Unit.
2. Add the required Properties to the Material Tracking Unit.
Material App
• Click Material Runtime in the side menu bar and click Material Tracking Units.
2. Click to create a Material Tracking Unit.
3. Set the following attributes:
Attribute Description
Autogenerate Name If selected, the name of the Material Tracking Unit to be added
will be autogenerated using the Numbering Pattern defined for
Material Tracking Unit Name. If you are modifying an existing
Material Tracking Unit, you can automatically generate (or re-
generate) the Material Tracking Unit Name by selecting this check
box (see Edit Material Tracking Unit operation in Available
Operations on Material Tracking Units). You need to
configure Numbering Pattern in the Reference App.
Name (Optional) The name assigned to the Material Tracking Unit. If you
have selected Autogenerate Name, this field will be disabled.
Code Type (Optional) The type of Code assigned to the Material Tracking
Unit. The possible values are:
• BatchId: identifies a batch object
• SerialNumber: identifies an object that can be
serialized.
Material Id (Optional) The Material you want to associate with the Material
Tracking Unit. If you specify a Material, you can also specify the
Material Lot (but you cannot specify a Material Lot without
defining the Material). If you specify a Material, you must also
specify the Quantity.
Use Current Revision The field is read-only and the shown value is based on the
Material revision you have previously selected.
Material Revision (Optional) The Material revision associated with the Material
Tracking Unit. If you have selected Use Current Revision, this
field will be disabled.
Material App
Attribute Description
Material Unique Identifier (Optional) This field is already selected when a specific Material
revision is chosen and only one a Unique identifier exists;
otherwise, one Unique identifier must be selected in the list of
the available ones. If you have selected Use Current Revision,
this field will be disabled.
Unit of Measure (Optional) The Unit of Measure you want to associate with the
Material Tracking Unit. You can specify both UoM and Value
without specifying the Material.
Value (Optional) The Unit of Measure value. You can specify both Value
and UoM without specifying the Material.
This value is optional unless Unit of Measure is specified. In this
case, Value becomes mandatory.
Material Lot (Optional) The Material Lot you want to associate with the
Material Tracking Unit. If you have defined a Material, you can
specify the Material Lot.
Use Default Template If selected, the Material Tracking Unit will be created using the
default Material Tracking Unit Template.
Template (Optional) The Material Tracking Unit Template to be used for the
creation of the Material Tracking Unit. If you have selected Use
Default Material Tracking Unit Template, this field will be
disabled.
State Machine (Optional) The State Machine associated with the Material
Tracking Unit. If a State Machine is selected, it overrides the one
potentially defined in the chosen Material Tracking Unit
Template. You need to configure the State Machine in the
Reference App.
Material Tracking Unit Aggregate (Optional) The Material Tracking Unit Aggregate you want to
associate with the Material Tracking Unit. If you have selected
Equipment, this field will be disabled.
4. Click Save. The new Material Tracking Unit is created.
Once the first Material Tracking Unit is created, the Material Tracking Unit page is available by selecting
the Material Tracking Unit and by clicking . Here other Material Tracking Units can be created from the Overview tab.
Material App
Operation Description
Material App
Operation Description
Operation Description
Workflow
1. Create a Material Tracking Unit Aggregate Template.
2. Add the required Properties to the Material Tracking Unit Aggregate Template.
Material App
Attribute Description
Name (Optional) The name assigned to the Material Tracking Unit Aggregate
Template.
State Machine (Optional) The State Machine associated to the Material Tracking
Unit Aggregate Template. You need to configure the State Machine in
the Reference App.
Set as Default (Optional) If selected, sets the material lot template as default.
4. Click Save. The new Material Tracking Unit Aggregate Template is created.
Once the first Material Tracking Unit Aggregate Template is created, the Material Tracking Unit
Aggregate Template page is available by selecting the Material Tracking Unit Aggregate Template and by
clicking . Here
other Material Tracking Unit Aggregate Templates can be created from the Overview tab.
Operation Description
Edit Allows you to modify Name, Description and/or State Machine of a Material Tracking
Unit Aggregate Template.
The material tracking unit aggregate template must not be flagged as IsFrozen.
Set/ Unset Allows you to set the selected Material Tracking Unit Aggregate Template as default.
as Default You can remove this setting by performing the Unset operation.
Material App
Operation Description
Freeze/ The Freeze operation allows you to configure a Material Tracking Unit Aggregate
Unfreeze Template as read-only, in order that it cannot be edited. When the Freeze operation is
performed on a Material Tracking Unit Aggregate Template, Material Tracking Unit
Aggregate Template is flagged as IsFrozen.
You can remove the read-only setting by performing the Unfreeze operation.
Delete Allows you to permanently remove a Material Tracking Unit Aggregate Template.
Operation Description
Audit Trail data is available if the Audit Trail App is deployed and properly configured. For instructions,
see the Audit Trail App documentation.
To display the Audit Trail of a MTU Aggregate Template, select the Template and then navigate to the Audit Trail
tab.
The Audit Trail tab shows the list of all changes performed on the selected MTU Aggregate Template.
To see more details about each Audit Trail entry, click the arrow to the left of each row. This expands the details
of the respective Audit Trail entry.
Workflow
1. Create a Material Tracking Unit Aggregate.
2. Add the required Properties to the Material Tracking Unit Aggregate.
3. Add a Material Tracking Unit to a Material Tracking Unit Aggregate.
Material App
Autogenerate Name If selected, the name of the Material Tracking Unit Aggregate to
be added will be autogenerated using the Numbering Pattern
defined for Material Tracking Unit Aggregate Name. If you are
modifying an existing Material Tracking Unit Aggregate, you can
automatically generate (or re-generate) the Material Tracking
Unit Aggregate Name by selecting this check box (see Edit
Material Tracking UnitAggregate operation in Available
Operations on Material Tracking Units Aggregates). You need to
configure Numbering Pattern in the Reference App.
Code Type (Optional) The type of Code assigned to the Material Tracking
Unit. The possible values are:
• BatchId: identifies a batch object
• SerialNumber: identifies an object that can be
serialized.
Material Id (Optional) The Material you want to associate with the Material
Tracking Unit Aggregate.
Material App
Attribute Description
Use Current Revision The field is read-only and the shown value is based on the
Material revision you have previously selected.
Material Revision (Optional) The Material revision associated with the Material
Tracking Unit Aggregate. If you have selected Use Current
Revision, this field will be disabled.
Material Unique Identifier (Optional) This field is already selected when a specific Material
revision is chosen and only one a Unique identifier exists;
otherwise, one Unique identifier must be selected in the list of
the available ones. If you have selected Use Current Revision,
this field will be disabled.
Unit of Measure (Optional) The Unit of Measure you want to associate with the
Material Tracking Unit Aggregate.
Use Default Template If selected, indicates that the Material Tracking Unit Aggregate
will be created using the default Material Tracking Unit
Aggregate Template.
State Machine (Optional) The State Machine associated with the Material
Tracking Unit Aggregate. If a State Machine is selected, it
overrides the one potentially defined in the chosen Material
Tracking Unit Aggregate Template. You need to configure the
State Machine in the Reference App.
Material Tracking Unit Aggregate (Optional) The Material Tracking Unit Aggregate you want to
associate with the Material Tracking Unit Aggregate. If you have
selected Equipment, this field will be disabled.
4. Click Save. The new Material Tracking Unit Aggregate is created.
Material App
• Once the first Material Tracking Unit Aggregate is created, the Material Tracking Unit Aggregate page
is available by selecting the Material Tracking Unit Aggregate and by clicking
. Here other Material Tracking Unit Aggregates can be created from the Overview tab.
The create operation is also available in the Material Tracking Unit Aggregates tab to create and
• associate a Material Tracking Unit Aggregate with an existing Material Tracking Unit Aggregate.
You can access the associated Material Tracking Unit in the Material Tracking Unit page by selecting
the Material Tracking Unit and by clicking .
Operation Description
Edit Allows you to modify Name, Description, Code and Code Type.
If you want to apply the Numbering Pattern to the Name property,
you must select the Autogenerate Name check box (regardless of
whether you have already used it or not). If the Numbering Pattern
has been modified or if it contains parts that may change (such as a
counter or a timestamp), the Name property will be modified.
The Material Tracking Unit Aggregate must not be flagged
as IsFrozen.
This operation is also available in the Material Tracking Unit
Aggregates tab to update a Material Tracking Unit Aggregate
associated with another Material Tracking Unit Aggregate.
Material App
Operation Description
Freeze/ Unfreeze The Freeze operation allows you to configure a Material Tracking
Unit Aggregate as read-only, in order that it cannot be edited. When
the freezing operation is applied to a Material Tracking Unit
Aggregate, the Material Tracking Unit Aggregate is
flagged as IsFrozen.
You can remove the read-only setting by applying the Unfreeze
operation.
Personnel App
Operation Description
Operation Description
Personnel App
Security Note
The principles of data protection are important to Siemens and out affiliates. Our products, including
Opcenter Execution Foundation, are designed with privacy in mind and adhere to Siemens’ data protection
requirements. Please visit our privacy statement for more details.
The product processes / stores the following personal data: FirstName, LastName, Email Addresses, Phone
Numbers, Date Of Birth, Nationality, State, City, Address, ZipCode, UserName.
It is essential to collect this information to identify the authorized operators. We only store the data for as
long as necessary. Please contact customer support with any questions.
Personnel App
Workflow
1. Create a new Person either by:
• Adding a Person from scratch or based on a UMC User.
• Importing UMC Users or groups of UMC Users.
2. Assign Segregation Tags to Persons.
Operation Description
Overview To view an overview of the Person. The Person details dialog box displays:
• In the General tab, unique Id for the created Person and information on
Person name and description.
• In the Details tab, information on Person date of birth, nationality and
full address.
• In the Groups tab, the list of Person Groups to which a Person is
assigned.
Personnel App
Creation Description
method
Adding a new You can enter all useful information on a Person, including an image, in a single working
Person from environment.
scratch
It is strongly suggested to follow local data protection and privacy laws and
consequently avoid inserting personal information, such as the name or surname
of the user, in the mandatory Id field.
Adding a new You can create a Person, starting from a UMC user.
Person based on
a UMC User
Once the operation is completed, you can view the import details, by clicking View
Details. The Import Details dialog box provides the following information:
• the list of the UMC users that have been imported.
• the list of the UMC users that have been assigned to an existing Person.
• the list of the UMC users that have not been imported.
The creation of the Person entity, which contains the definition of the new Person, is not in itself a
segregated operation.
Prerequisites
Specific securable command rights (documented in the PRM_MS Functional Block in the Opcenter Execution
Foundation Development and Configuration Guide) are required to create and configure Persons:
• The CreatePerson command to create a new person.
• The AssignUserToPerson command must be assigned to the role of the user who wants to assign a UMC User to
a Person.
Personnel App
• The UnassignUserFromPerson command must be assigned to the role of the user who wants to unassign a
UMC User from a Person.
• (Only to import Users or User Groups) The ImportUsersByUserList command to import users from UMC
• (Only to import Users or User Groups) The ImportUsersByGroup command to import user groups from UMC.
• (Only to add a Person from scratch) The created Person can view not segregated data by default.
The SetCanViewUnsegregatedData command must be assigned to the role of the user who wants to modify
the default behavior in order for the created Person to not view not segregated data. The Data Segregation
functionality must be enabled to use this feature.
The AccessControlViewer or AccessControlAdmin role must also be assigned to the user, in order to be able to
view UMC users. For information on these roles, see How to Configure Accounts of the Opcenter Execution
Foundation Development and Configuration Guide.
Add Image Insert an image of the new person and browse for the file.
Id A mandatory unique Id for the person you are creating. Once defined,
this value cannot be modified.
Personnel App
9. (Optional) In the Other Details section, enter the information on the person's date of birth, nationality, and full
address. Use to select the month and year.
10. Click Save.
Add Image Insert an image of the new person and browse for the file.
Personnel App
In order to assign Segregation Tags to a Person, these tags must be assigned to the logged on user. In case
the logged user is the SysAdmin, all Segregation Tags are already assigned to him/her by default. In case
the logged user is not the SysAdmin, bear in mind to assign segregation tags to this user, otherwise he/she
cannot perform the operation.
The SysAdmin user can assign Segregation Tags to Persons or entity instances without needing to be
associated with a Person in the Personnel App.
For information on SysAdmin user, see Quick Start to Using Data Segregation and How to Configure
Accounts of the Opcenter Execution Foundation Development and Configuration Guide.
Prerequisites
• The Data Segregation App has been installed in the solution.
• The ManageSegregationTagsToPersonsAssociation command right must be assigned to the role of the user
who wants to assign the segregation tag. For more information, see PRM_MS Functional Block in the Opcenter
Execution Foundation Development and Configuration Guide).
• The AccessControlViewer or AccessControlAdmin role must also be assigned to the user, in order to assign
Segregation Tags to the Person. For information on these roles, see How to Configure Accounts of the Opcenter
Execution Foundation Development and Configuration Guide.
• In case the logged user is not the SysAdmin, segregation tags must be assigned to this user, otherwise he/she
cannot perform the operation (if the logged user is the SysAdmin, all Segregation Tags are already assigned to
him/her by default).
• The Person to whom you want to assign tags is not associated with the SysAdmin user. Otherwise, the
dedicated button ( Manage) is not displayed because all segregation tags are already assigned to the
SysAdmin user by default.
Procedure
1. Do either of the following to open the Segregation Tags Management page:
• Click the Segregation Tags Management home tile.
• Click Personnel Management in the side menu bar and click Segregation Tags Management.
Personnel App
2. In the Segregation Tags Management page filter the list of Persons (see UI Common Functionalities) to display
those to whom you want to assign tags. Otherwise, if you do not enter any filtering criteria, the grid remains
empty.
3. Select the user associated with the Person and click Manage. The Manage Tags sidebar displays the
Segregation Tags that have already been assigned to the selected Person, and those that are available but not
currently assigned.
4. To assign Segregation Tags to the selected Person, click the icon in the available tags list and click Save.
• Changes made to the Segregation Tags assigned to a Person are applied the next time the associated
user logs on.
• The Manage button is not displayed if the user associated with the Person is the SysAdmin. This
is because all segregation tags are already assigned to this user by default by the Personnel App.
• You can unassign Segregation Tags from the selected Person by clicking the icon in the Manage
Tags sidebar.
• Persons inherit all tags assigned to the Groups to which they are associated with. You can view
Segregation Tags assigned to Person Groups by selecting the Person assigned to the Person Group in
the Segregation Tags Management page and by clicking View Group Tags. The Person Group
Segregation Tags sidebar displays the Segregation Tags that are currently assigned to each Person
Group.
Prerequisites
Specific command rights (see PRM_MS Functional Block in the Opcenter Execution Foundation Development and
Configuration Guide) are required to modify Persons. In particular:
• The AssignUserToPerson command must be assigned to the role of the user who wants to assign a UMC User to
a Person.
• The UpdatePerson command to modify a Person.
• An existing Person can view non-segregated data by default. To allow a Person to view segregated data, you
must assign the SetCanViewUnsegregatedData command to the role of the user who wants to modify the
capability of the existing Person to view non-segregated data.
• The Data Segregation functionality must be enabled to use this feature.
The AccessControlViewer or AccessControlAdmin role must also be assigned to the user, in order to be able to
view UMC users. For information on these roles, see How to Configure Accounts of the Opcenter Execution
Foundation Development and Configuration Guide.
For more information on the mentioned command, see also PRM_MS Functional Block in the Opcenter Execution
Foundation Development and Configuration Guide.
Procedure
1. Do either of the following to open the Persons page:
• Click the Persons home tile.
• Click Personnel Management in the side menu bar and click Persons.
2. In the Persons page, select the required Person.
Personnel App
3. Click .
4. In the Edit Person dialog box, select the required section, modify the personal information and then click Save:
Section Description
Phone and Mobile Phone To modify work and personal phone numbers.
Prerequisites
• Specific command rights are required to modify Persons. In particular:
• The UnassignUserFromPerson command must be assigned to the role of the user who wants to
unassign a UMC User from a Person.
• The DeletePerson command right must be assigned to the role of the user who wants to delete a Person.
• The AccessControlViewer or AccessControlAdmin role must also be assigned to the user, in order to be able to
view UMC users. For information on these roles, see How to Configure Accounts of the Opcenter Execution
Foundation Development and Configuration Guide.
For more information on the mentioned commands see PRM_MS Functional Block in the Opcenter Execution
Foundation Development and Configuration Guide.
Procedure
1. Do either of the following to open the Persons page:
• Click the Persons home tile.
• Click Personnel Management in the side menu bar and click Persons.
2. In the Persons page, select the required Person.
3. Click .
Personnel App
You can complete the Group configuration by assigning a list of segregation tags, previously created in the Data
Segregation App, to the Person Group.
Workflow
1. Create a Person Group.
2. Assign a Person to a Person Group.
3. Assign Segregation Tags to a Person Group.
Operation Description
Prerequisites
The CreatePersonGroup command right (documented in PRM_MS Functional Block in the Opcenter Execution
Foundation Development and Configuration Guide) must be assigned to the role of the user who wants to create a
Person Group.
Procedure
1. Do either of the following to open the Person Groups page:
• Click the Person Groups home tile.
• Click Personnel Group Management in the side menu bar and click Person Groups.
Personnel App
Id The unique identifier assigned to the Person Group. Once the Person
Group is created, the Id value cannot be modified.
Prerequisites
• The AssociatePersonsWithPersonGroup command right must be assigned to the role of the user who wants to
associate Persons with Person Groups.
• The DisassociatePersonsFromPersonGroup command right must be assigned to the role of the user who
wants to remove the association between Persons and Person Groups. For more information, see PRM_MS
Functional Block in the Opcenter Execution Foundation Development and Configuration Guide).
Procedure
1. Do either of the following to open the Person Groups page:
• Click the Person Groups home tile.
• Click Personnel Group Management in the side menu bar and click Person Groups.
2. In the Person Groups page, select the required Person Group.
3. Click .
4. In the Assign Persons to Person Group page, do either of the following:
• Enter the required Person Id in the dedicated field.
• Click . In the displayed dialog box, select the required Person and click Select. The selected Person is
displayed in the dedicated field.
5. Click Add Person. The Person is assigned to the Person Group.
You can remove Persons from a Person Group by selecting one or more Persons and by clicking
Remove.
Personnel App
The creation of the PersonGroupSegregationTag entity, which associates segregated Tags to Person Groups, is not
in itself a segregated operation. So, when you assign segregation tags to Person Groups, you are not segregating
them but you are granting them the right to access to segregated data. See also PRM_MS Functional Block in the
Opcenter Execution Foundation Development and Configuration Guide).
In order to assign Segregation Tags to a Person Group, these tags must be assigned to the logged on user,
however all Segregation Tags are assigned to SysAdmin users by default.
The Opcenter Execution Foundation SysAdmin user can assign Segregation Tags to Person Groups or
entity instances without needing to be associated to a Person Group in the Personnel App.
Prerequisites
• The Data Segregation App has been installed in the solution.
• The Segregation Tags to be assigned to the Person Group must have already been assigned to the logged on
user.
• The ManageSegregationTagsToPersonGroupsAssociation command right must be assigned to the role of the
user who wants to assign the segregation tag. For more information, see PRM_MS Functional Block in the
Opcenter Execution Foundation Development and Configuration Guide).
Procedure
1. Do either of the following to open the Person Groups page:
• Click the Person Groups home tile.
• Click Personnel Group Management in the side menu bar and click Person Groups.
2. In the Person Groups page, select a Person Group and click . The Assign Segregation Tags sidebar displays
the segregation tags that have already been assigned to the selected Person Group, and those that are available
but not currently assigned.
3. To assign Segregation Tags to the selected Person Group, click the icon in the available tags list and click
Save.
• Changes made to the Segregation Tags assigned to a Person Group are applied the next time the
associated user logs on.
• You can unassign Segregation Tags from the selected Person Group by clicking the icon in
the Assign Segregation Tags sidebar.
• Persons inherit all tags assigned to the Groups to which they are associated with. You can view
Segregation Tags assigned to Person Groups in the Personnel Management environment by selecting
the Person assigned to the Person Group in the Segregation Tags Management page and by clicking
View Group Tags. The Person Group Segregation Tags sidebar displays the Segregation Tags
that are currently assigned to each Person Group.
Prerequisites
The UpdatePersonGroup command right must be assigned to the role of the user who wants to modify a Person
Group. For more information on the mentioned command, see also PRM_MS Functional Block in the Opcenter
Execution Foundation Development and Configuration Guide.
Personnel App
Procedure
1. Do either of the following to open the Person Groups page:
• Click the Person Groups home tile.
• Click Personnel Group Management in the side menu bar and click Person Groups.
2. In the Person Groups page, select the required Person Group.
3. Click and modify required fields. Only the Id of the Person Group cannot be modified.
4. Click Save.
Prerequisites
The DeletePersonGroup command right must be assigned to the role of the user who wants to delete a Person
Group. For more information on the mentioned command see PRM_MS Functional Block in the Opcenter Execution
Foundation Development and Configuration Guide.
Procedure
1. Do either of the following to open the Person Groups page:
• Click the Person Groups home tile.
• Click Personnel Group Management in the side menu bar and click Person Groups.
2. In the Person Groups page, select the required Person Group.
3. Click .
Reference App
Person Group
Reference App
symbols and ratio among the UoMs, but allowing the customization of the name and the description in a language
different from the default one.
In addition to the predefined entities, you can define custom entities such as UoM dimensions, base UoMs with
related multiples/submultiples, and UoM factors, by following this workflow:
Workflow
1. Create the UoM Dimension to which the new UoMs will belong.
2. Create the required base UoMs associated to the UoM Dimension.
3. Add to the base UoMs the required multiples and submultiples and/or the proper conversion factors between
base UoMs.
Workflow
1. Add a UoM Dimension.
2. Add a UoM to a UoM Dimension.
Reference App
Attribute Description
Once the first Units of Measure Dimension is created, the Units of Measure Dimension page is available by
selecting the Units of Measure Dimension and by clicking
. Here other Units of Measure Dimensions can be created from the Overview tab.
Operation Description
Reference App
Operation Description
The Hide operation allows you to prevent a UoM dimension from being
Hide/ Unhide
displayed among the UoM dimensions available for the UoM management.
When the Hide operation is performed on a UoM dimension, the UoM
dimension is flagged as IsHidden.
You can restore the visibility of a hidden UoM dimension by performing the
Unhide operation.
Export Allows you to export selected entities and instances in an export package
that can be downloaded locally and imported afterwards.
See How To Export and Import Data for information about runtime data
exchange and Exporting and Importing UoM Data for further information on
the import sequence of UoM data.
You can access the associated Unit of Measure in the Unit of Measure page by selecting the Unit of
Measure and by clicking .
Reference App
Operation Description
Hide/ Unhide The Hide operation allows you to prevent a UoM from being displayed among
the UoMs available for the UoM management. When the Hide operation is
performed on a UoM, the UoM is flagged as IsHidden.
You can restore the visibility of a hidden UoM by performing the Unhide
operation.
Audit Trail data is available if the Audit Trail App is deployed and properly configured. For instructions,
see the Audit Trail App documentation.
To display the Audit Trail of a Unit of Measure Dimension, select one and then navigate to the Audit Trail tab.
The Audit Trail tab shows the list of all changes performed on the selected Unit of Measure Dimension.
To see more details about each Audit Trail entry, click the arrow to the left of each row. This expands the details
of the respective Audit Trail entry.
Workflow
Reference App
Id The unique identifier assigned to the base UoM. Once the UoM is
created, the Id value cannot be modified.
UoM Dimension The UoM dimension to which the new UoM belongs.
4. Click Save. The new base UoM is created and displayed in the grid of the Unit of Measure Management page.
Once the first Units of Measure is created, the Units of Measure page is available by selecting the Units of
Measure and by clicking . Here other Units of Measures can be created from the Overview tab.
Operation Description
Reference App
Operation Description
Hide/ Unhide The Hide operation allows you to prevent a UoM from being displayed
among the UoMs available for the UoM management. When the Hide
operation is performed on a UoM, the UoM is flagged as IsHidden.
You can restore the visibility of a hidden UoM by performing the Unhide
operation.
Attribute Description
Reference App
4. Click Save. The new multiple/submultiple UoM is created and displayed in the Multiples/Submultiple Unit of
Measures grid.
Operation Description
Edit Allows you to modify Name, Description and the K value of a multiple/
submultiple UoM. The K value cannot be modified if a multiple/submultiple
UoM is flagged as IsSystemDefined, in order to maintain universally known
ratio among UoMs.
Hide/ Unhide The Hide operation allows you to prevent a UoM from being displayed
among the UoMs available for the UoM management. When the Hide
operation is performed on a UoM, the UoM is flagged as IsHidden.
You can restore the visibility of a hidden UoM by performing the Unhide
operation.
Target UoM The base UoM for which you are defining a conversion factor towards
the source base UoM, previously selected.
Reference App
Attribute Description
Addend The addend parameter A in the conversion formula. Default value (i.e.
when not specified) = 0
4. Click Save. The new conversion factor between a source base UoM and a target base UoM is created and
displayed in the UoM Factor grid.
Operation Description
Edit Allows you to modify all the attributes of a UoM factor. A UoM factor
flagged as IsSystemDefined cannot be modified .
If the conversion factor formula, be it direct or inverse, generates a complex number, the conversion will
return an error (complex numbers are not used inside MES procedures).
• Unit of Measures defined by the system (flagged as Is System Defined) cannot be exported.
• UoM Dimensions are parent entities and their UoM are exported automatically.
• If you export multiple/submultiple UoMs without exporting their own source UoM, the import
operation cannot be performed.
• You cannot import a child entity if it belongs to a parent entity that is not in the database during the
import operation.
Reference App
UoM Dimensions
UoM
Workflow
1. Create the Status Definitions.
2. Create the Status Transition Definitions (i.e. the Verbs).
3. Configure the State Machine (by assigning Statuses and Status Transitions, and optionally Status Behaviors)
Reference App
Color (Optional) The color (in hex code, for example #DF0000) that will be
associated to the Status Definition.
Reference App
Attribute Description
Outcome The Outcome of the status represents its result. The possible options
are:
• NoOutcome: it represents a status which is not final.
• Success: it represents a final status which has completed
correctly.
• Failure: it represents a final status which has not
completed correctly.
• Skip: it represents a status which is skipped.
4. Click Save. The new Status Definition is created and displayed in the Status Definitions grid.
Operation Description
Edit To modify Name, Description, Color and Outcome of the Status Definition.
Outcome cannot be modified if the Status Definition is flagged as
IsSystemDefined. The Status Definition must not be flagged as IsFrozen.
Freeze/ Unfreeze The Freeze operation allows you to configure a Status Definition as read-
only, so that it cannot be edited. When the Freeze operation is performed
on an entity, the Status Definition is flagged as IsFrozen.
You can remove the read-only setting by performing the Unfreeze
operation.
Hide/ Unhide The Hide operation allows you to prevent a Status Definition from being
displayed among the Status Definitions available for the definition of a
Status. When the Hide operation is performed on a Status Definition, the
Status Definition is flagged as IsHidden.
You can restore the visibility of a hidden Status Definition by performing the
Unhide operation.
Reference App
Workflow
1. Add a Status.
2. Associate a Status Behavior with a Status.
Adding a Status
1. Do either of the following to open the Statuses page:
• Click the Statuses home tile.
• Click Status Management in the side menu bar and click Statuses.
2. Click .
3. Set the following attributes:
Attribute Description
Status Definition The Status Definition associated with the Status. Status Definitions
represents all the status that you want to assign to an entity in order
to represent its lifecycle.
When selecting the Status Definition, the Color and the Outcome of
the selected Status Definition are automatically associated with the
Status.
State Machine The State Machine associated with the Status. A State Machine
represents a lifecycle, defined by a set of Statuses, as instances of
Status Definitions.
Name (Optional) The name assigned to the Status. If the value is left blank,
then the system will automatically set the field with the Name of
Status Definition associated with the Status.
Is Initial Allows you to set the selected Status as the initial status of the State
Machine.
4. Click Save. The new Status is created and displayed in the Statuses page.
Once the first Status is created, the Status page is available by selecting the Status and by clicking
. Here other Statuses can be created from the Overview tab.
Reference App
On the existing Status you can then perform the following operations, by selecting from the Overview tab, the
Status and clicking the proper icon.
Operation Description
Edit Allows you to modify Name, Description, Color and Outcome of the
Status. Outcome cannot be modified if the Status is flagged as
IsSystemDefined.
Allows you to set the selected Status as the initial status of the State
Set Status as Initial
Machine.
You can remove the association between a Status Behavior and a Status by selecting the Status Behavior
in the Status Behavior tab and clicking .
Reference App
3. Insert a value for the new Verb in order to identify a status transition.
4. Click Save. The new Status Transition Definition is created and displayed in the Status Transition
Definitions grid.
Operati Description
on
The Freeze operation allows you to configure a Status Transition Definition as read-only, so that it
Freeze/ cannot be edited. When the Freeze operation is performed on an entity, the
Status Transition Definition is flagged as IsFrozen.
Unfree You can remove the read-only setting by performing the Unfreeze operation.
ze
The Hide operation allows you to prevent a Status Transition Definition from being displayed among
Hide/ the Status Transition Definition available for the definition of a Status Transition. When the Hide
operation is performed on a Status Transition Definition, the Status Transition Definition is flagged
as IsHidden.
Unhide
You can restore the visibility of a hidden Status Transition Definition by performing the Unhide
operation.
Allows you to export selected entities and instances in an export package that can be downloaded
locally and imported afterwards.
Export
See How To Export and Import Data for information about runtime data exchange and Exporting and
Importing Entity Life Cycle and State Machine Data for further information on the import sequence of
Entity Life Cycle and State Machine data.
Reference App
Attribute Description
Operation Description
Edit Allows you to modify Name and Description of the Status Behavior
Definition.
Delete Allows you to permanently remove a Status Behavior Definition. If you delete
a Status Behavior Definition, any relationships with all the Statuses
associated to it will also be deleted.
Allows you to export selected entities and instances in an export package that
Export
can be downloaded locally and imported afterwards.
See How To Export and Import Data for information about runtime data
exchange and Exporting and Importing Entity Life Cycle and State Machine
Data for further information on the import sequence of Entity Life Cycle and
State Machine data.
Prerequisites
The required Status Definitions, Status Behavior Definitions and Status Transition Definitions have been
previously created.
Reference App
Workflow
1. Add a State Machine.
2. Assign Status to the State Machine.
3. Add a Status Transition to the State Machine.
Id The unique identifier assigned to the State Machine. Once the State
Machine is created, the Id value cannot be modified.
Once the first State Machine is created, the State Machine page is available by selecting the State Machine
and by clicking . Here other State Machines can be created from the Overview tab.
Operation Description
Edit Allows you to modify Name and/or Description of the State Machine.
The Status Definition must not be flagged as IsFrozen.
Freeze/ Unfreeze The Freeze operation allows you to configure a State Machine as read-only, in
order that it cannot be edited. When the Freeze operation is performed on an
entity, the State Machine is flagged as IsFrozen.
You can remove the read-only setting by performing the Unfreeze operation.
Reference App
Operation Description
Hide/ Unhide The Hide operation allows you to prevent a State Machine from being
displayed among the State Machines available for the definition of a lifecycle.
When the Hide operation is performed on a State Machine, the State Machine
is flagged as IsHidden.
You can restore the visibility of a hidden State Machine by performing the
Unhide operation.
Export Allows you to export selected entities and instances in an export package that
can be downloaded locally and imported afterwards.
See How To Export and Import Data for information about runtime data
exchange and Exporting and Importing Entity Life Cycle and State Machine
Data for further information on the import sequence of Entity Life Cycle and
State Machine data.
You can access the associated Statuses in the Statuses page by selecting the Status and by clicking .
Operation Description
Edit Allows you to modify Name, Description, Color and Outcome of the
Status. Outcome cannot be modified if the Status is flagged as
IsSystemDefined.
Reference App
Operation Description
Allows you to set the selected Status as the initial status of the State
Set Status as Initial
Machine.
To add a Status Transition at least two Status Definitions must have been created.
1. In the State Machines page, select a State Machine and click to open the State Machine page.
2. In the Transition tab, click .
3. Set the following attributes:
Attribute Description
Source Status The initial Status Definition of the Status Transition. Once the Status
Transition is created, the Source Status cannot be modified.
Target Status The target Status Definition of the Status Transition. Once the Status
Transition is created, the Target Status cannot be modified.
Do RaiseEvent Option to be selected if you want to raise an event when the transition
between the initial status and the target status occurs.
4. Click Save. The new Status Transition between the source Status and the target Status is created and displayed
in the Transition grid.
Operation Description
Reference App
Audit Trail data is available if the Audit Trail App is deployed and properly configured. For instructions,
see the Audit Trail App documentation.
To display the Audit Trail of a State Machine, select the State Machine and then navigate to the Audit Trail tab.
The Audit Trail tab shows the list of all changes performed on the selected State Machine.
To see more details about each Audit Trail entry, click the arrow to the left of each row. This expands the details
of the respective Audit Trail entry.
3.7.2.6 Exporting and Importing Entity Life Cycle and State Machine Data
The Reference App allows you to export and import its own master data entities. Unlike the Export operation, the
Import procedure depends on the exported entities and has to be performed carefully as described in the following
section.
Reference App
Status
Status Definition
Status Transition
Definition
Reference App
As the Id field must be unique, an error is thrown if its value already exists. Consequently, when
configuring a numbering pattern to be used for the Id field, you should ensure that the chosen
combination for the associated numbering pattern will generate unique strings, such as including a
Counter as part of the numbering pattern. For the same reason, pay attention when using the command
ResetCounter.
Workflow
1. Configure the Counters.
2. Configure the Numbering Patterns.
If needed, you can configure the autonumbering functionality for custom entities.
Procedure
Create a Counter doing either of the following:
• Create a Counter in the UI Application.
• Add the code required in the database initialization file (Dbinit.xml).
Reference App
Attributes Description
Enforced Sequencing If selected, enables the transactional behavior for counters. If the
creation command fails, the system rollback the progressive value
incremented by the Counter thus reusing the number after
command execution retry.
If not selected the system does not rollback the progressive value
incremented by the Counter thus further increasing the progressive
number after the command execution retry.
Seed The starting value of the Counter. The value must be positive or
equal to zero. The default value: 0.
Increment The incremental value added to the previous value. Only positive
values are supported. The default value: +1.
Max Value The highest value to be reached before the Counter is reset to its
seed. If not specified, it is never reset and a possible overflow error is
raised.
Leading Zeros If selected, enables zeros to be added before the first significant digit
in a numbering string. The default value: false.
Time Based Reset Defines when the reset takes place. The possible date formats are:
• yyyy, the Counter is automatically reset on the start of
a new calendar year.
• yyyy-MM, the Counter is automatically reset on the start
of a new calendar month.
• yyyy-ww, the Counter is automatically reset on the start
of a new calendar week.
The default value: an empty string.
Reference App
<Entity type="Siemens.SimaticIT.ReferenceData.UDM_RF.RFModel.DataModel.Counter">
<Property name="NId" kind="Plain" value="EntityCounter" />
<Property name="Name" kind="Plain" value="Entity Counter" />
<Property name="Description" kind="Plain" value="Entiy counter, 9 digit" />
<Property name="Seed" kind="Plain" value="1" />
<Property name="Increment" kind="Plain" value="1" />
<Property name="MaxValue" kind="Plain" value="99999999999" />
<Property name="LeadingZeros" kind="Plain" value="True" />
</Entity>
Operation Description
Edit If the Counter is not yet used in a Numbering Pattern, it allows you to modify
all the attributes of a Counter, apart from the Id.
If the Counter is already used in a Numbering Pattern, then it only allows you
to modify the Name, Description and Max Value of a Counter.
/ Freeze/Unfreeze The Freeze operation allows you to configure a Counter as read-only, so that it
cannot be edited. When the Freeze operation is performed on a Counter,
the Counter is flagged as IsFrozen.
You can remove the read-only setting by performing the Unfreeze operation.
/ Hide/Unhide The Hide operation allows you to prevent a Counter from being displayed
among the Counters available for the Numbering Pattern. When the Hide
operation is performed on a Counter, the Counter is flagged as IsHidden.
You can restore the visibility of a hidden Counter by performing the Unhide
operation.
Export To export selected entities and instances in an export package that can be
downloaded locally and imported afterwards.
See How To Export and Import Data for information about runtime data
exchange and Exporting and Importing Autonumbering Configuration Data
for further information on the import sequence of Autonumbering
Configuration data.
Reference App
Workflow
1. Define your Numbering Pattern doing either of the following:
• Configure Numbering Patterns in the UI Application.
• Add the code required in the database initialization file (Dbinit.xml).
2. Allocate Numbering Pattern Parts doing either of the following:
• Allocate Numbering Pattern Parts in the UI Application.
• Add the code required in the database initialization file (Dbinit.xml).
App Name The name of the App with the entity types to which you want to
apply the Numbering Pattern. You can choose one of the
following:
• Material
• Task
Entity Type The entity types to which the Numbering Pattern can be
applied. The entity types are filtered according to the selected
App Name.
The possible entity types are:
For the Material App:
• MaterialLot
• MaterialTrackingUnit
• MaterialTrackingUnitAggregate
For the Task App:
• Task
Destination Property The destination of the Numbering Pattern within the entity type.
The possible destination fields are:
• Id
• Name
Reference App
4. Click Save. The new Numbering Pattern is created as an empty container and you must now add the Numbering
Pattern Parts as required.
Once the first Numbering Pattern is created, the Numbering Pattern page is available by selecting the
Numbering Pattern and by clicking . Here other Numbering Patterns can be created from the
Overview tab.
<Entity
type="Siemens.SimaticIT.ReferenceData.UDM_RF.RFModel.DataModel.NumberingPattern">
<Property name="NId" kind="Plain" value="NId" />
<Property name="Name" kind="Plain" value="Numbering Pattern Name" />
<Property name="Description" kind="Plain" value="Numbering Pattern
Description" />
<Property name="EntityTypeNId" kind="Plain" value="AppName.EntityType" />
</Entity>
Operation Description
Export To export selected entities and instances in an export package that can be
downloaded locally and imported afterwards.
See How To Export and Import Data for information about runtime data
exchange and Exporting and Importing Autonumbering Configuration Data
for further information on the import sequence of Autonumbering
Configuration data.
Reference App
1. In the Numbering Patterns page, select a Numbering Pattern and click to open the Numbering Pattern
page
2. In the Numbering Pattern Part tab, select the Numbering Pattern you want to add the Numbering Pattern Part.
3. Click .
4. Set one of the allowed Numbering Pattern Parts (the other three will be automatically disabled as they must be
configured one at a time):
• Constant: the constant value string of your choice.
• Counter: a progressive numeric value previously configured.
• Timestamp: the string representing the point in time when this numbering pattern part is generated.
The available options are: yyyy (year), yyyy-MM (year-month) and yyyy-ww (year-week number)
• Parameter: the property of the entity whose value will be used in the Numbering Pattern. The available
options vary according to the Entity Type the Numbering Pattern refers to:
Entity Parameters
Material Tracking Unit in the Material App • MaterialNId, the Id of the Material
associated to the Material Tracking Unit.
• MaterialRevision, the revision of the
Material associated to the Material
Tracking Unit.
Reference App
Parameters are already provided by the system. See Adding a Numbering Pattern Part in the UI
Application.
• Define Counters by adding the code required in the database initialization file, as shown in the following
example. Otherwise, you can configure Counters in the UI Application.
<Entity
type="Siemens.SimaticIT.ReferenceData.UDM_RF.RFModel.DataModel.Counter">
<Property name="NId" kind="Plain" value="EntityCounter" />
<Property name="Name" kind="Plain" value="Entity Counter" />
<Property name="Description" kind="Plain" value="Entiy counter, 9
digit" />
<Property name="Seed" kind="Plain" value="1" />
<Property name="Increment" kind="Plain" value="1" />
<Property name="MaxValue" kind="Plain" value="99999999999" />
<Property name="LeadingZeros" kind="Plain" value="True" />
</Entity>
• Define the Numbering Pattern Part by adding the code required in the database initialization file, as
shown in the following example. Pay attention that the supported Timestamp formats are: yyyy (year),
yyyy-MM (year-month) and yyyy-ww (year-week number). Otherwise, you can configure Numbering
Patterns Parts in the UI Application.
Reference App
<Entity
type=
"Siemens.SimaticIT.ReferenceData.UDM_RF.RFModel.DataModel.NumberingPatternPa
rt">
<Property name="Counter" kind="SingleReferenceToParent">
<LogicalKey
entityType=
"Siemens.SimaticIT.ReferenceData.UDM_RF.RFModel.DataModel.Counter">
<Property name="NId" kind="Plain" value="EntityCounter" />
</LogicalKey>
</Property>
<Property name="NumberingPattern" kind="SingleReferenceToParent">
<LogicalKey
entityType=
"Siemens.SimaticIT.ReferenceData.UDM_RF.RFModel.DataModel.NumberingPattern">
<Property name="NId" kind="Plain" value="NId" />
<Property name="EntityTypeNId" kind="Plain"
value="AppName.EntityType" />
</LogicalKey>
</Property>
<Property name="Sequence" kind="Plain" value="4" />
</Entity>
<Entity
type=
"Siemens.SimaticIT.ReferenceData.UDM_RF.RFModel.DataModel.NumberingPatternPa
rt">
<Property name="Constant" kind="Plain" value="EntityName_" />
<Property name="NumberingPattern" kind="SingleReferenceToParent">
<LogicalKey
entityType=
"Siemens.SimaticIT.ReferenceData.UDM_RF.RFModel.DataModel.NumberingPattern">
<Property name="NId" kind="Plain" value="NId" />
<Property name="EntityTypeNId" kind="Plain"
value="AppName.EntityType" />
</LogicalKey>
</Property>
<Property name="Sequence" kind="Plain" value="3" />
</Entity>
<Entity
type=
"Siemens.SimaticIT.ReferenceData.UDM_RF.RFModel.DataModel.NumberingPatternPa
rt">
<Property name="Timestamp" kind="Plain" value="yyyy-ww" />
<Property name="NumberingPattern" kind="SingleReferenceToParent">
<LogicalKey
entityType=
"Siemens.SimaticIT.ReferenceData.UDM_RF.RFModel.DataModel.NumberingPattern">
<Property name="NId" kind="Plain" value="NId" />
<Property name="EntityTypeNId" kind="Plain"
value="AppName.EntityType" />
</LogicalKey>
</Property>
Reference App
Operation Description
Move To move the selected Numbering Pattern Part up one position in the grid (in the string generated
up this corresponds to the Numbering Pattern Part moving one position to the left).
Move To move the selected Numbering Pattern Part down one position in the grid (in the string
down generated this corresponds to the Numbering Pattern Part moving one position to the right).
Audit Trail data is available if the Audit Trail App is deployed and properly configured. For instructions,
see the Audit Trail App documentation.
To display the Audit Trail of a Numbering Pattern, select the Pattern and then navigate to the Audit Trail tab.
The Audit Trail tab shows the list of all changes performed on the selected Numbering Pattern.
To see more details about each Audit Trail entry, click the arrow to the left of each row. This expands the details
of the respective Audit Trail entry.
Reference App
Procedure
1. Open the database initialization file (Dbinit.xml).
2. Add the code required to customize App Name and Entity Type fields in the Numbering Pattern Management
page > Add dialog box, as shown in the following example.
Reference App
<Entity
type=
"Siemens.SimaticIT.ReferenceData.UDM_RF.RFModel.DataModel.NumberingPatternEntity">
<Property name="NId" kind="Plain" value="AppName.EntityType" />
</Entity>
<Entity
type=
"Siemens.SimaticIT.ReferenceData.UDM_RF.RFModel.DataModel.NumberingPatternEntityIn
fo">
<Property name="AppName" kind="Plain" value="AppName" />
<Property name="EntityName" kind="Plain" value="EntityType" />
<Property name="NumberingPatternEntityNId" kind="SingleReferenceToParent">
<LogicalKey
entityType=
"Siemens.SimaticIT.ReferenceData.UDM_RF.RFModel.DataModel.NumberingPatternEntity">
<Property name="NId" kind="Plain" value="AppName.EntityType" />
</LogicalKey>
</Property>
</Entity>
3. Define Numbering Patterns by adding the code required in the database initialization file, as shown in the
following example. Otherwise, you can configure Numbering Patterns in the UI Application.
<Entity
type="Siemens.SimaticIT.ReferenceData.UDM_RF.RFModel.DataModel.NumberingPattern">
<Property name="NId" kind="Plain" value="NId" />
<Property name="Name" kind="Plain" value="Numbering Pattern Name" />
<Property name="Description" kind="Plain" value="Numbering Pattern
Description" />
<Property name="EntityTypeNId" kind="Plain" value="AppName.EntityType" />
</Entity>
4. Define Numbering Pattern Parts that rely on Counters, Constant, Timestamp and Parameters, as follows:
• Define Parameters by adding the code required in the database initialization file, as shown in the
following example.
Reference App
<Entity
type=
"Siemens.SimaticIT.ReferenceData.UDM_RF.RFModel.DataModel.NumberingPatternPa
rameter">
<Property name="NumberingPatternEntity" kind="SingleReferenceToParent">
<LogicalKey
entityType=
"Siemens.SimaticIT.ReferenceData.UDM_RF.RFModel.DataModel.NumberingPatternEn
tity">
<Property name="NId" kind="Plain" value="AppName.EntityType" />
</LogicalKey>
</Property>
<Property name="NId" kind="Plain" value="Parameter1" />
</Entity>
<Entity
type=
"Siemens.SimaticIT.ReferenceData.UDM_RF.RFModel.DataModel.NumberingPatternPa
rameter">
<Property name="NumberingPatternEntity" kind="SingleReferenceToParent">
<LogicalKey
entityType=
"Siemens.SimaticIT.ReferenceData.UDM_RF.RFModel.DataModel.NumberingPatternEn
tity">
<Property name="NId" kind="Plain" value="AppName.EntityType" />
</LogicalKey>
</Property>
<Property name="NId" kind="Plain" value="Parameter2" />
</Entity>
• Define Counters by adding the code required in the database initialization file, as shown in the following
example. Otherwise, you can configure Counters in the UI Application.
<Entity
type="Siemens.SimaticIT.ReferenceData.UDM_RF.RFModel.DataModel.Counter">
<Property name="NId" kind="Plain" value="EntityCounter" />
<Property name="Name" kind="Plain" value="Entity Counter" />
<Property name="Description" kind="Plain" value="Entiy counter, 9
digit" />
<Property name="Seed" kind="Plain" value="1" />
<Property name="Increment" kind="Plain" value="1" />
<Property name="MaxValue" kind="Plain" value="99999999999" />
<Property name="LeadingZeros" kind="Plain" value="True" />
</Entity>
• Define the Numbering Pattern Part by adding the code required in the database initialization file, as
shown in the following example. Pay attention that the supported Timestamp formats are: yyyy (year),
yyyy-MM (year-month) and yyyy-ww (year-week number). Otherwise, you can configure Numbering
Patterns Parts in the UI Application.
Reference App
<Entity
type=
"Siemens.SimaticIT.ReferenceData.UDM_RF.RFModel.DataModel.NumberingPatternPa
rt">
<Property name="Counter" kind="SingleReferenceToParent">
<LogicalKey
entityType=
"Siemens.SimaticIT.ReferenceData.UDM_RF.RFModel.DataModel.Counter">
<Property name="NId" kind="Plain" value="EntityCounter" />
</LogicalKey>
</Property>
<Property name="NumberingPattern" kind="SingleReferenceToParent">
<LogicalKey
entityType=
"Siemens.SimaticIT.ReferenceData.UDM_RF.RFModel.DataModel.NumberingPattern">
<Property name="NId" kind="Plain" value="NId" />
<Property name="EntityTypeNId" kind="Plain"
value="AppName.EntityType" />
</LogicalKey>
</Property>
<Property name="Sequence" kind="Plain" value="5" />
</Entity>
<Entity
type=
"Siemens.SimaticIT.ReferenceData.UDM_RF.RFModel.DataModel.NumberingPatternPa
rt">
<Property name="Constant" kind="Plain" value="EntityType_" />
<Property name="NumberingPattern" kind="SingleReferenceToParent">
<LogicalKey
entityType=
"Siemens.SimaticIT.ReferenceData.UDM_RF.RFModel.DataModel.NumberingPattern">
<Property name="NId" kind="Plain" value="NId" />
<Property name="EntityTypeNId" kind="Plain"
value="AppName.EntityType" />
</LogicalKey>
</Property>
<Property name="Sequence" kind="Plain" value="4" />
</Entity>
<Entity
type=
"Siemens.SimaticIT.ReferenceData.UDM_RF.RFModel.DataModel.NumberingPatternPa
rt">
<Property name="Timestamp" kind="Plain" value="yyyy-ww" />
<Property name="NumberingPattern" kind="SingleReferenceToParent">
<LogicalKey
entityType=
"Siemens.SimaticIT.ReferenceData.UDM_RF.RFModel.DataModel.NumberingPattern">
<Property name="NId" kind="Plain" value="NId" />
<Property name="EntityTypeNId" kind="Plain"
value="AppName.EntityType" />
</LogicalKey>
</Property>
Reference App
Reference App
if (numberingPatternPart.Counter != null)
{
var counter = numberingPatternPart.Counter;
var value = platform.Counters.GetNext(counter.NId,
counter.Seed.GetValueOrDefault(), counter.Increment.GetValueOrDefault());
sb.Append(value);
continue;
}
}
entityTypeInstance.NId = sb.ToString();
}
catch (ArgumentException)
{
return new CreateEntityType.Response { Error = "Numbering pattern for
EntityType not exist" };
}
}
Reference App
Counters
4 Process Apps
The Opcenter Execution Foundation Process Apps are
• Business Process Flow App
• Task App
• Work Instruction App
Concepts
Business Process Flows are based on the following:
• Process Templates - Master Data domain entities which act as templates for the creation of Process
Definitions.
• Process Context Definitions - Metadata which describes how to contextualize (i.e. link to operational entities)
runtime work processes.
• Process Definitions - Master Data domain entities that contain the information required to describe a specific
business process, which can be used in the Flow Editor. Process Definitions can optionally be based on Process
Templates and optionally linked to Process Contexts.
• Consistency Checks - In order to be deemed executable, Process Definitions must pass consistency checks in
the approval process. The user cannot decide which conditions should be included in these checks. The model
design of the Process Definition as well as its internal consistency and external consistency (references to other
entities) are verified.
• Flow Editor - a graphical editor used to create and modify BPMN Diagrams starting from a specific Process
Definition.
• Work Processes - Operational domain entities, which are used to execute instances of Process Definitions.
• Work Process Contexts - The actual context of a specific Work Process instance.
Workflow
1. Create Process Templates.
2. Create Process Definitions.
3. Define Process Flow Diagrams.
Workflow
1. Add a new Process Template.
2. Set a Process Template as default.
3. Add Process Template Parameters.
Procedure
1. Do either of the following to open the Process Templates page:
The Process Templates page provides common functionalities such as Group By, Quick
Search, Filter and User Preferences. The Filter functionality provides a more refined search in
addition to Quick Search. You can filter Process Templates by Id, Name, Description, Is Default and Is
System Defined.
Only one Process Template at a time can be set to default, so whilst this operation cannot be undone, it is sufficient
to set a different Process Template to default to remove this option.
It is not mandatory to set a default Process Template.
Procedure
1. Do either of the following to open the Process Templates page:
Procedure
1. Do either of the following to open the Process Templates page:
Type The data type of the Process Template Parameter value. The
following data types are
supported: Bigint, Bool, Datetime, Decimal, GUID, Int, Quantity,
Smallint, String, Tinyint.
Unit of Measure It represents the base unit for measuring a physical quantity (such as
meter, kilogram). This is enabled only when Process
Template Parameter's Type is Quantity.
Attribute Description
If the value is not compliant with the data type (for example,
if an integer is supplied as a value for a Bool data type) the
Process Template Parameter cannot be saved.
The maximum number of characters for a string value is 255.
Read only If selected, indicates that the value of the parameter cannot be
modified or deleted when inherited by a Process Definition.
6. Click Save.
Workflow
1. Creating new Process Definitions
2. Creating a new revision of a Process Definition
3. Adding Process Definition Parameters
4. Setting a Process Definition to current
5. Locking a Process Definition
Available Operations
Operation Description
Operation Description
Unlock
Process Definitions support revision management. Each revision has a unique Id and a specific revision
number. All subsequent revisions of the same Process Definition will maintain this same Id.
From scratch The new Process Definition can be based on an existing Process
Template, or can be created totally from scratch.
By copying an existing Process Definition The newly created Process Definition inherits the attributes of the
original Process Definition, but has its own Id. The inherited
attributes, apart from the base Process Template, can be
modified and no dynamic link exists with is source Process
Definition.
By importing an existing Process Definition BPMN files can be imported, along with their parameters. If the
model was created in the Opcenter EX FN environment, its
contexts and context user fields will also be imported. If a BPMN
model is imported into an existing process definition model, the
template on which it was based will no longer be considered, and
any parameters, contexts and context user fields in the imported
files will overwrite the existing ones.
Attributes Definition
Use Default Template (Optional) If selected, the Process Definition will be based on
the Process Template defined as default.
To prevent unauthorized users from tampering with the exported packages, strict measures should be
taken to guarantee that the exported information is correctly and securely stored until it is re-imported.
Attributes Definition
Revision A mandatory number for the specific revision of the Process Definition.
4. Click on the browse icon in the Upload a bpmn file edit box a process definition model to import.
5. Click Save.
If the uploaded bpmn file contains obsolete definitions for Work Center or Location in any user task
configuration, you will be notified that they have been removed from the model, and this information will
also be traced in ETW as a warning.
Security Note
Bear in mind that after you have exported a Process Definition, strict measures should be taken to
guarantee that the exported information is correctly and securely stored until it is re-imported.
If you are importing a BPMN file having the direction of parameter as Input/Output from version 3.1 or
earlier versions, then you must manually change the direction of parameter to Input/Output otherwise
the direction of parameter is saved as Input.
The Process Definitions page provides common functionalities such as Group By, Quick
Search, Filter and User Preferences. The Filter functionality provides a more refined search in addition
to Quick Search. You can filter Process Definitions by Id, Name, Revision and Is Current.
Only one revision of each Process Definition can be current at any one time.
Procedure
1. Do either of the following to open the Process Definitions page:
Type The data type of the Process Definition Parameter value. The
following data types are
supported: Bigint, Bool, Datetime, Decimal, GUID, Int, Quantity,
Smallint, String, Tinyint.
Unit of Measure It represents the base unit for measuring a physical quantity (such as
meter, kilogram). This is enabled only when Process
Definition Parameter's Type is Quantity.
Attribute Description
Read only If selected, indicates that the default value of the parameter cannot
be modified or deleted at runtime.
6. Click Save. Parameters created for the Process Definition or those inherited from the Process Template are
listed in the Parameter tab.
Procedure
1. Do either of the following to open the Process Definitions page:
This operation can also be performed from when configuring the Process Definition Model by selecting the
Process Definition and clicking Set Current.
Procedure
1. Do either of the following to open the Process Definitions page:
This operation can also be performed from when configuring the Process Definition Model by selecting the
Process Definition and clicking .
BPMN entities cannot consequently be dragged and dropped onto locked process definition models, and
no changes can be made to the configuration of the elements or to the model itself.
From the BPF_MS Functional By populating the following base Allows contexts to be added to third-
Block entities in the dbinit file: party Functional Blocks
• ProcessContextDefinition Additional customization is possible to
• ProcessContextDefinitionUse improve query performance and
rField. provide property indexing by extending
the ContextEntityType.
Directly in the Business By using the Process Context Easy to use, with no code knowledge
Process Flow App Definition UI Screens provided by required.
the App
Provides the possibility to add
additional contexts without modifying
the underlying Functional Blocks.
For more information on the mentioned Functional Block, see BPF_MS Functional Block in the Opcenter Execution
Foundation Development and Configuration Guide.
Workflow
1. Create Process Contexts by either:
• Defining Process Contexts in Functional Blocks
• Defining Process Contexts in the Business Process Flow App
2. Associating Process Contexts to Process Definitions
ProcessContextDefinition
The structure of the ProcessContextDefinition base entity is as follows:
Parameter Description
NId The unique identifier assigned to the Process Context Definition. Once
created, the Id value cannot be modified.
Parameter Description
<Entity type="Siemens.SimaticIT.MasterData.BPF_MS.MSModel.DataModel.ProcessContex
tDefinition">
<Property name="NId" kind="Plain" value="ProcessDefinitionDataType" />
<Property name="Name" kind="Plain" value="ProcessDefinitionDataType" />
<Property name="Description" kind="Plain" value="Process Context Definition
with user fields each for type" />
<Property name="ContextEntityType" kind="Plain" value="Siemens.SimaticIT.Operat
ionalData.BPF_OP.OPModel.DataModel.IWorkProcessContext" />
<Property name="ProcessDefinitions" kind="ManyToManyReference" />
</Entity>
<Entity type="Siemens.SimaticIT.MasterData.BPF_MS.MSModel.DataModel.ProcessContex
tDefinition">
<Property name="NId" kind="Plain" value="ProcessDefinitionNULL" />
<Property name="Name" kind="Plain" value="ProcessDefinitionNULL" />
<Property name="Description" kind="Plain" value="Process Context Definition
with Context Entity Type equal to NULL" />
<Property name="ContextEntityType" kind="Plain" value="NULL" />
<Property name="ProcessDefinitions" kind="ManyToManyReference" />
</Entity>
<Entity type="Siemens.SimaticIT.MasterData.BPF_MS.MSModel.DataModel.ProcessContex
tDefinition">
<Property name="NId" kind="Plain" value="ProcessDefinitionExtend" />
<Property name="Name" kind="Plain" value="ProcessDefinitionExtend" />
<Property name="Description" kind="Plain" value="Process Context Definition for
extended Work Process Context" />
<Property name="ContextEntityType" kind="Plain" value="Siemens.SimaticIT.Operat
ionalData.BPFLibOP.OPModel.DataModel.IMyWorkProcessContext" />
<Property name="ProcessDefinitions" kind="ManyToManyReference" />
</Entity>
<Entity type="Siemens.SimaticIT.MasterData.BPF_MS.MSModel.DataModel.ProcessContex
tDefinition">
<Property name="NId" kind="Plain" value="ProcessDefinitionFacet" />
<Property name="Name" kind="Plain" value="ProcessDefinitionFacet" />
<Property name="Description" kind="Plain" value="Process Context Definition for
Work Process Context Facet" />
<Property name="ContextEntityType" kind="Plain" value="Siemens.SimaticIT.Operat
ionalData.BPFLibOP.OPModel.DataModel.IMyFacetWorkProcessContext" />
<Property name="ProcessDefinitions" kind="ManyToManyReference" />
</Entity>
ProcessContextDefinitionUserField
The structure of the ProcessContextDefinitionUserField base entity is as follows:
• NId, which acts as a unique identifier for the user field
• DefaultValue, a default value for the user field, which must be coherent with the specified DataType, even if it is
persisted as a string.
• DataType, the data type corresponds to same data types as those allowed for Task Parameters:
Bool 7 true/false
String 1 -
Tinyint 2 0 to 255
<Entity type="Siemens.SimaticIT.MasterData.BPF_MS.MSModel.DataModel.ProcessContex
tDefinitionUserField">
<Property name="NId" kind="Plain" value="PCDUFBool" />
<Property name="UserFieldValue" kind="Plain" value="false" />
<Property name="UserFieldType" kind="Plain" value="Bool" />
<Property name="ProcessContextDefinition" kind="SingleReferenceToParent">
<LogicalKey entityType="Siemens.SimaticIT.MasterData.BPF_MS.MSModel.DataModel
.ProcessContextDefinition_Siemens_SimaticIT_MasterData_BPF_MS_MSModel">
<Property name="NId" kind="Plain" value="ProcessDefinitionDataType" />
</LogicalKey>
</Property>
</Entity>
</Entity>
<Entity type="Siemens.SimaticIT.MasterData.BPF_MS.MSModel.DataModel.ProcessContex
tDefinitionUserField">
<Property name="NId" kind="Plain" value="PCDUFDatetime" />
<Property name="UserFieldValue" kind="Plain" value="2017-12-12T15:17:25" />
<Property name="UserFieldType" kind="Plain" value="Datetime" />
<Property name="ProcessContextDefinition" kind="SingleReferenceToParent">
<LogicalKey entityType="Siemens.SimaticIT.MasterData.BPF_MS.MSModel.DataModel
.ProcessContextDefinition_Siemens_SimaticIT_MasterData_BPF_MS_MSModel">
<Property name="NId" kind="Plain" value="ProcessDefinitionDataType" />
</LogicalKey>
</Property>
</Entity>
<LogicalKey entityType="Siemens.SimaticIT.MasterData.BPF_MS.MSModel.DataModel
.ProcessContextDefinition_Siemens_SimaticIT_MasterData_BPF_MS_MSModel">
<Property name="NId" kind="Plain" value="ProcessDefinitionNULL" />
</LogicalKey>
</Property>
</Entity>
<Entity type="Siemens.SimaticIT.MasterData.BPF_MS.MSModel.DataModel.ProcessContex
tDefinitionUserField">
<Property name="NId" kind="Plain" value="PCDUFBool" />
<Property name="UserFieldValue" kind="Plain" value="false" />
<Property name="UserFieldType" kind="Plain" value="Bool" />
<Property name="ProcessContextDefinition" kind="SingleReferenceToParent">
<LogicalKey entityType="Siemens.SimaticIT.MasterData.BPF_MS.MSModel.DataModel
.ProcessContextDefinition_Siemens_SimaticIT_MasterData_BPF_MS_MSModel">
<Property name="NId" kind="Plain" value="ProcessDefinitionDataType" />
</LogicalKey>
</Property>
</Entity>
<Entity type="Siemens.SimaticIT.MasterData.BPF_MS.MSModel.DataModel.ProcessContex
tDefinitionUserField">
<Property name="NId" kind="Plain" value="PCDUFDatetime" />
<Property name="UserFieldValue" kind="Plain" value="2017-12-12T15:17:25" />
<Property name="UserFieldType" kind="Plain" value="Datetime" />
<Property name="ProcessContextDefinition" kind="SingleReferenceToParent">
<LogicalKey entityType="Siemens.SimaticIT.MasterData.BPF_MS.MSModel.DataModel
.ProcessContextDefinition_Siemens_SimaticIT_MasterData_BPF_MS_MSModel">
<Property name="NId" kind="Plain" value="ProcessDefinitionDataType" />
</LogicalKey>
</Property>
</Entity>
<Entity type="Siemens.SimaticIT.MasterData.BPF_MS.MSModel.DataModel.ProcessContex
tDefinitionUserField">
<Property name="NId" kind="Plain" value="PCDUFDecimal" />
<Property name="UserFieldValue" kind="Plain" value="123.456" />
<Property name="UserFieldType" kind="Plain" value="Decimal" />
<Property name="ProcessContextDefinition" kind="SingleReferenceToParent">
<LogicalKey entityType="Siemens.SimaticIT.MasterData.BPF_MS.MSModel.DataModel
.ProcessContextDefinition_Siemens_SimaticIT_MasterData_BPF_MS_MSModel">
<Property name="NId" kind="Plain" value="ProcessDefinitionDataType" />
</LogicalKey>
</Property>
</Entity>
<Entity type="Siemens.SimaticIT.MasterData.BPF_MS.MSModel.DataModel.ProcessContex
tDefinitionUserField">
<Property name="NId" kind="Plain" value="PCDUFInt" />
<Property name="UserFieldValue" kind="Plain" value="123" />
<Property name="UserFieldType" kind="Plain" value="Int" />
<Property name="ProcessContextDefinition" kind="SingleReferenceToParent">
<LogicalKey entityType="Siemens.SimaticIT.MasterData.BPF_MS.MSModel.DataModel
.ProcessContextDefinition_Siemens_SimaticIT_MasterData_BPF_MS_MSModel">
<Property name="NId" kind="Plain" value="ProcessDefinitionDataType" />
</LogicalKey>
</Property>
</Entity>
<Entity type="Siemens.SimaticIT.MasterData.BPF_MS.MSModel.DataModel.ProcessContex
tDefinitionUserField">
<Property name="NId" kind="Plain" value="PCDUFString" />
<Property name="UserFieldValue" kind="Plain" value="ABC" />
<Property name="UserFieldType" kind="Plain" value="String" />
<Property name="ProcessContextDefinition" kind="SingleReferenceToParent">
<LogicalKey entityType="Siemens.SimaticIT.MasterData.BPF_MS.MSModel.DataModel
.ProcessContextDefinition_Siemens_SimaticIT_MasterData_BPF_MS_MSModel">
<Property name="NId" kind="Plain" value="ProcessDefinitionDataType" />
</LogicalKey>
</Property>
</Entity>
<Entity type="Siemens.SimaticIT.MasterData.BPF_MS.MSModel.DataModel.ProcessContex
tDefinitionUserField">
<Property name="NId" kind="Plain" value="MyBool" />
<Property name="UserFieldValue" kind="Plain" value="false" />
<Property name="UserFieldType" kind="Plain" value="Bool" />
<Property name="ProcessContextDefinition" kind="SingleReferenceToParent">
<LogicalKey entityType="Siemens.SimaticIT.MasterData.BPF_MS.MSModel.DataModel
.ProcessContextDefinition_Siemens_SimaticIT_MasterData_BPF_MS_MSModel">
<Property name="NId" kind="Plain" value="ProcessDefinitionExtend" />
</LogicalKey>
</Property>
</Entity>
<Entity type="Siemens.SimaticIT.MasterData.BPF_MS.MSModel.DataModel.ProcessContex
tDefinitionUserField">
<Property name="NId" kind="Plain" value="MyDatetime" />
<Property name="UserFieldValue" kind="Plain" value="2017-12-12T15:17:25" />
<Property name="UserFieldType" kind="Plain" value="Datetime" />
<Property name="ProcessContextDefinition" kind="SingleReferenceToParent">
<LogicalKey entityType="Siemens.SimaticIT.MasterData.BPF_MS.MSModel.DataModel
.ProcessContextDefinition_Siemens_SimaticIT_MasterData_BPF_MS_MSModel">
<Property name="NId" kind="Plain" value="ProcessDefinitionExtend" />
</LogicalKey>
</Property>
</Entity>
<Entity type="Siemens.SimaticIT.MasterData.BPF_MS.MSModel.DataModel.ProcessContex
tDefinitionUserField">
<Property name="NId" kind="Plain" value="MyDecimal" />
<Property name="UserFieldValue" kind="Plain" value="123.456" />
<Property name="UserFieldType" kind="Plain" value="Decimal" />
<Property name="ProcessContextDefinition" kind="SingleReferenceToParent">
<LogicalKey entityType="Siemens.SimaticIT.MasterData.BPF_MS.MSModel.DataModel
.ProcessContextDefinition_Siemens_SimaticIT_MasterData_BPF_MS_MSModel">
<Property name="NId" kind="Plain" value="ProcessDefinitionExtend" />
</LogicalKey>
</Property>
</Entity>
<Entity type="Siemens.SimaticIT.MasterData.BPF_MS.MSModel.DataModel.ProcessContex
tDefinitionUserField">
Procedure
1. Do either of the following to open the Process Context Definitions page:
Parameter Description
Type The data type of the user field. The following data types are
supported: Bigint, Bool, Datetime, Decimal, GUID, Int, Smallint,
String, Tinyint.
Value An optional value for the user field. This value can be set at runtime
during the configuration of the Work Process.
7. Click Save.
8. Repeat step 6 to create as many user fields as required for your process context definition. The new Process
Context will be displayed as a tile on the left hand side of the Process Context Definition page, along with any
Process Contexts that were defined in Functional Blocks.
The Process Context Definition page provides common functionalities such as Group By, Quick Search,
Filter and User Preferences. The Filter functionality provides a more refined search in addition to Quick
Search. You can filter Process Context Definitions by Id, Name and Description.
Procedure
1. Do either of the following to open the Process Definitions page:
You can remove the association of the Process Definition to a Process Context Definition by selecting the
Process Context Definition in the Context tab and clicking Disassociate Process Context Definition.
Workflow
1. Add a new Process Flow Model. This involves:
• Configuring Start and End Events in a Process Definition Models.
• Configuring Timer Intermediate Event in a Process Definition Models.
• Configuring Gateways in Process Definition Models.
• Configuring User Tasks in Process Definition Models.
• Configuring Call Activities in Process Definition Models.
• Configuring Annotations in Process Definition Models.
• Transforming Events in Process Definition Models.
• Transforming Activities in Process Definition Models.
• Transforming Gateways in Process Definition Models
2. Set Process Definition Models as Executable.
We suggest that you set at least 1366x768 screen resolution to better display the Process Definition Editor.
Operation Description
Set Current To set a Process Definition Model to current in the same way as the
Process Definition itself.
• Lock To lock or unlock a Process Definition Model in the same way as the
Process Definition itself.
• Unlock
End The final element in the model, which indicates the end
of the process.
Timer Intermediate Event The Timer indicates a when a workflow must start,
either by specifying a particular date and time or by
specifying a countdown.
Edge Two elements of BPMN flow present in the canvas can be connected to each other
with an edge. The edge can be resized or rearranged by dragging the waypoints
that appear by selecting the edge.
Procedure
1. Do either of the following to open the Process Definitions page:
4. Drag and drop the required BPMN elements onto the canvas and configure the new element. Follow the specific
procedure for each element type:
• Start and Stop events
• Timer Intermediate Event
• Gateways
• User tasks
• Call activities
• Annotations
5. To connect elements with sequence flows, select the element and click on the blue icon which points towards
the next element. Then, drag the arrow to the next element.
6. Provide a name for the connecting sequence flow by selecting it and clicking . This avoids ambiguity when
configuring gateways.
7. When you are satisfied with your diagram, click .
The label showing the name of the connecting sequence flow can be moved from the default position.
Start Each Process Definition must contain one, and only one, Start
Event, which is the first element in the process.
It does not have any predecessors, but can have any number of
successors.
End Each Process Definition must contain one, and only one, End Event,
which is the last element in the process.
It can have any number of predecessors, but no successors.
Procedure
1. In the Process Definition Editor, drag and drop the Start or End element onto the canvas.
2. If needed, modify the default ID and/or name of the element in the displayed dialog box and click Save.
3. Connect the Start event to its successor and the End event to its predecessor.
4. Click Save.
Procedure
1. In the Process Definition Editor, drag and drop the timer element onto the canvas.
2. If needed, modify the default ID and/or name of the element in the displayed dialog box and click Save.
UI guided approach For duration: Select the number of years, months, days, hours and/or
minutes the timer should expire. You can chose to specify only hours or
only minutes etc and the maximum value you can insert is 999. Seconds
cannot be specified and a default value of 00 is assigned. Then
click Generate duration.
For datetime: Specify the required date and time when the work process
should start. Seconds cannot be specified and a default value of 00 is
assigned. Then click Generate datetime.
Manually Insert an ISO 8601 compliant format value in the timer edit box
(PnYnMnDTnHnMnS for timespans and YYYYMMDDTHHMMSS for
datetimes). Validation checks are performed on all manually input
values.
Binding Select Process Content button, then select the required string or
datetime value and select Bind.
Scripting Select Script button to insert custom code and click Bind.
A javascript formatAsISODuration (YYY, MMM, DDD, HHH, mmm) can be
used to facilitate this operation.
The function expresses a duration, which is then converted into an ISO
8601 format (i.e. PnnYnnMnnDTnnHnnMnnS).
Examples of use:
formatAsISODuration(1,3,7)
//Represents a duration of 1 year, 3 months and 7
days. It will be converted into the ISO format
'P1Y3M7D'.
formatAsISODuration(1,3,7,43,100)
//Represents a duration of 1 year, 3 months, 7 days,
43 hours and 100 minutes. It will be converted into
the ISO format 'P1Y3M7D43H100M'.
formatAsISODuration(MyYears, 4)
//Represents a duration where the years are defined
by the value represented by the bound variable
'MyYears', 4 months. It will be converted into the
ISO format 'P<MyYears>Y4M'.
6. Click Apply.
Procedure
1. In the Process Definition Editor, drag and drop the Gateway element onto the canvas.
2. If needed, modify the default ID and/or name of the element in the displayed dialog box and click Save.
3. To facilitate the configuration of the gateway, select each outgoing sequence flow, click the edit icon and
provide a name for the sequence flow.
4. Only in case of Exclusive and Inclusive Gateways:
• Click the edit icon .
• Select an outgoing sequence flow, enter its condition using supported operators and data types in the
Condition edit box and click Set Condition using supported operators and data types.
In the Scripting tab, the Unit of Measure of parameters is not managed. For this reason, the
supported operators/methods that are applied to a quantity data type parameter could result
in a not correct evaluation.
• (Exclusive gateway only) Modify the order in which each condition will be evaluated by using the Move
Up and Move Down buttons.
• Select the default outgoing sequence flow, which will be followed if none of the conditions are satisfied,
by checking Is Default on the corresponding row. A slash marker is displayed on the default sequence
flow. Any conditions specified for the sequence flow will be maintained, but not considered at runtime
for as long as the flow is set as default.
• Click Apply.
The label showing the name of the connecting sequence flow can be moved from the default position.
User Task A User Task is associated to a Task There can be only one predecessor
Definition, and represents an action and one or more successors.
within the Process Definition flow.
A gateway of any kind can be inserted
before a User Task to model a merge
unambiguously.
Successors are executed in parallel.
Procedure
1. In the Process Definition Editor, drag and drop the User Task element onto the canvas.
2. If needed, modify the default ID and/or name of the element in the displayed dialog box and click Save.
The Input/Output parameter is available in both Input and Output tabs for specifying input and
output values respectively.
• (not for output parameters) select Manual Edit button to enter a value in the text box and click
Assign. Validation checks are performed on all manually input values.
• (not for output parameters) select Script button to enter a javascript expression, using the supported
operators and data types and click Bind.
In the Scripting tab, the Unit of Measure of parameters is not managed. For this reason, the
supported operators/methods that are applied to a quantity data type parameter could result
in a not correct evaluation.
• select Process Content button, then select a value to bind with the selected element and click Bind.
Type Description Can be linked to:
Output Determine the destination, where the Process Definition output parameters
value will be set.
When the data type of task input/output parameters is a quantity, the unit of measure is set in
the following ways:
- when inserting a manual value or script the UoM is selected from a drop down list
- when binding to another parameter or context user field, the UoM for the bound value is used,
and cannot be selected from a drop-down list.
In this way the source value always establishes the UoM.
6. In the Call tab, select One Way Asynch if you want the User Task to be performed asynchronously, so that the
workflow can continue and does not stop to wait for the end of the User Task.
7. If you want the User Task to be repeated more then once you can configure the looping behavior with
progressive complexity following these steps:
• Click the Loop tab.
• Select Looping: the Maximum Loops edit box will now be enabled. If looping is disabled, any looping
configuration is disabled but maintained.
• Specify how many times the loop can be repeated in the Maximum Loops edit box. The maximum
number of loops allowed is 9999. The Loop Condition edit box will now be enabled.
• Specify under which conditions the loop should be executed in the Loop Condition editor. The Execute
Before check box will now be enabled.
• Select Execute Before if you want any specified loop conditions to be evaluated before the loop
iteration is executed. By default loop conditions are evaluated after loop iteration execution.
8. Click Apply.
Call Activity The Call Activity invokes a separate A gateway of any kind can be
Process Definition, subscribing to the inserted before a user task to
event it triggers on completion in order model a merge unambiguously.
to resume the process.
There must be at least one
predecessor and successor.
In order to prevent excessive call
stacks the maximum number of
call stacks is 50.
Procedure
1. In the Process Definition Editor, drag and drop the Call Activity onto the canvas.
2. If needed, modify the default ID and/or name of the element in the displayed dialog box and click Save.
The Input/Output parameter is available in both Input and Output tabs for specifying input and
output values respectively.
• (not for output parameters) select Manual Edit button to enter a value in the text box and click
Assign. Validation checks are performed on all manually input values.
• (not for output parameters) select Script button to enter a javascript expression, using the supported
operators and data types and click Bind.
In the Scripting tab, the Unit of Measure of parameters is not managed. For this reason, the
supported operators/methods that are applied to a quantity data type parameter could result
in a not correct evaluation.
• select Process Content button, then select a value to bind with the selected element and click Bind.
Call Activity Details Determine the source of the value • A manually input value
to be set for the call activity • Process Definition
details. Contexts
• Process Definition
Input or Output
parameters
• Input/output
parameters and
context user fields of
any other element
included in the model
• Scripting
Input Parameters Determine the source of the value • A manually input value
to be set for the call activity input • Process Definition
parameters. Contexts
• Process Definition
Input or Output
parameters
• Input/output
parameters and
context user fields of
any other element
included in the model
• Scripting
Call Activity Contexts Determine the source of the value • A manually input value
User Fields to be set for the call activity • Process Definition
context user fields. Contexts
• Process Definition
Input or Output
parameters
• Input/output
parameters and
context user fields of
any other element
included in the model
• Scripts
When the data type of process definition input/output parameters is a quantity, the unit of
measure is set in the following ways:
- when inserting a manual value or script the UoM is selected from a drop down list
- when binding to another parameter or context user field, the UoM for the bound value is used,
and cannot be selected from a drop-down list.
In this way the source value always establishes the UoM.
6. In the Call tab, select One Way Asynch if you want the Call Activity to be performed asynchronously, so that the
workflow can continue and does not stop to wait for the end of the Call Activity processes.
7. If you want the Call Activity to be repeated more then once you can configure the looping behavior with
progressive complexity following these steps:
• Click the Loop tab.
• Select Looping: the Maximum Loops edit box will now be enabled. If looping is disabled, any looping
configuration is disabled but maintained.
• Specify how many times the loop can be repeated in the Maximum Loops edit box. The maximum
number of loops allowed is 9999. The Loop Condition edit box will now be enabled.
• Specify under which conditions the loop should be executed in the Loop Condition editor. The Execute
Before check box will now be enabled.
• Select Execute Before if you want any specified loop conditions to be evaluated before the loop
iteration is executed. By default loop conditions are evaluated after loop iteration execution.
8. Click Apply.
Procedure
1. In the Process Definition Editor, drag and drop the Text Annotation element onto the canvas.
2. Select the Text Annotation and click to modify the text displayed in the annotation.
3. Enter the new text.
4. Click outside the flow element to close it.
5. Click .
Supported operators
The following arithmetic operators are supported:
• Addition +
• Subtraction -
• Multiplication *
• Division /
• Modulus %
• Increment ++
• Decrement --
The following comparison operators are supported:
• greater than >
• greater than or equal to >=
• less than <
• less than or equal to <=
• equal to ==
• not equal to !=
The following logical operators are supported:
• not !
• and &&
• or ||
String 0 Length: Returns the character at the • charAt(): Returns the character at the
specified index. specified index.
• charCodeAt(): Returns a number
indicating the Unicode value of the
character at the given index.
• concat(): Combines the text of two strings
and returns a new string.
• indexOf(): Returns the index within the
calling String object of the first occurrence
of the specified value, or -1 if not found.
• lastIndexOf(): Returns the index within the
calling String object of the last occurrence
of the specified value, or -1 if not found.
• * localeCompare(): Returns a number
indicating whether a reference string
comes before or after or is the same as the
given string in sort order.
• slice(): Extracts a section of a string and
returns a new string.
• split(): Splits a String object into an array
of strings by separating the string into
substrings.
• substr(): Returns the characters in a string
beginning at the specified location
through the specified number of
characters.
• substring(): Returns the characters in a
string between two indexes into the string.
• * toLocaleLowerCase(): The characters
within a string are converted to lower case
while respecting the current locale.
• * toLocaleUpperCase(): The characters
within a string are converted to upper case
while respecting the current locale.
• toLowerCase(): Returns the calling string
value converted to lower case.
• toString(): Returns a string representing
the specified object.
• toUpperCase(): Returns the calling string
value converted to uppercase.
Math • E: Returns Euler's number (approx. • abs(x): Returns the absolute value of x
2.718) • acos(x): Returns the arccosine of x, in
• LN2: Returns the natural logarithm radians
of 2 (approx. 0.693) • asin(x): Returns the arcsine of x, in radians
• LN10: Returns the natural logarithm • atan(x): Returns the arctangent of x as a
of 10 (approx. 2.302) numeric value between -PI/2 and PI/2
• LOG2E: Returns the base-2 radians
logarithm of E (approx. 1.442) • atan2(y, x): Returns the arctangent of the
• LOG10E: Returns the base-10 quotient of its arguments
logarithm of E (approx. 0.434) • ceil(x): Returns x, rounded upwards to the
• PI: Returns PI (approx. 3.14) nearest integer
• SQRT1_2: Returns the square root • cos(x): Returns the cosine of x (x is in
of 1/2 (approx. 0.707) radians)
• SQRT2: Returns the square root of 2 • exp(x): Returns the value of Ex
(approx. 1.414) • floor(x): Returns x, rounded downwards to
the nearest integer
• log(x): Returns the natural logarithm (base
E) of x
• max(x, y, z, ..., n): Returns the number with
the highest value
• min(x, y, z, ..., n): Returns the number with
the lowest value
• pow(x, y): Returns the value of x to the
power of y
• random(): Returns a random number
between 0 and 1
• round(x): Rounds x to the nearest integer
• sin(x): Returns the sine of x (x is in radians)
• sqrt(x):Returns the square root of x
• tan(x): Returns the tangent of an angle
Timer event
Timer event
End event
Since there can only be one Start Event and one End Event in a Process Definition Model
• You cannot transform any Event to Start Event when a Start Event already exists.
• You cannot transform any Event to End Event when an End Event already exists.
Procedure
1. In the Process Definition Editor, select the event in the canvas.
2. Click .
3. From the drop down list box, select the target event of the transformation you want to perform.
4. Configure the target event as described in Configuring Start and End Events in Process Definition Models
or Configuring Timer Intermediate Events in Process Definition Models.
Timer Event Start Event Yes Outgoing edges are maintained while
incoming edges are deleted.
Timer Event End Event Yes Outgoing edges are deleted while incoming
edges are maintained.
Call Activity
Call Activity
Task
Procedure
1. In the Process Definition Editor, select the activity in the canvas.
2. Click .
3. From the drop down list box, select the target activity of the transformation you want to perform.
4. Configure the target activity as described at pages Configuring Call Activities in Process Definition Models or
Configuring User Tasks in Process Definition Models (for Tasks, see description in Adding a New Process
Definition Model).
In all of the activity transformations, all the incoming and outgoing edges are maintained.
Inclusive
Gateway
Exclusive
Gateway
Inclusive
Gateway
Procedure
1. In the Process Definition Editor, select the gateway in the canvas.
2. Click .
3. From the drop down list box, select the target gateway of the transformation you want to perform.
4. Configure the target gateway as described in Configuring Gateways in Process Definition Models.
In all of the gateway transformations, all the incoming and outgoing edges are maintained.
Variables must have a valid dot separated alphanumeric ID with a valid scope. Error
All Task Definitions and Process Definitions referenced in the flow diagram exist. Error
Used parameters are present in the Task Definition Parameters and their read-only Error
settings, direction and datatypes match.
A used parameter is present in the Task Definition Parameters, matching read-only setting Warning
and datatype, but its direction is Input and the corresponding Task Definition Parameter is
Input/Output.
Constraint Type
Used parameters are present in the Call Activity Process Parameters and their read-only Error
settings, direction and datatypes match.
A used parameter is present in the Process Definition Parameters, matching read-only Warning
setting and datatype, but its direction is Input and the corresponding Process Definition
Parameter is Input/Output.
Exclusive gateways must have at least one default or unconditional exit. Error
Exclusive gateways does not have more than one unconditional exit. Warning
Inclusive gateways must have at least one default or unconditional exit. Error
Property/Parameter data types of the variables used for binding must match. Error
User Tasks must be bound to a Task Definition and Call Activities to a Process Definition. Warning
The output parameters of one-way asynchronous activities should not be used as a data Warning
source when binding. They will be disregarded at runtime to avoid unpredictable behavior.
The output parameters of one-way asynchronous activities should not have a destination. Warning
They will be disregarded at runtime to avoid unpredictable behavior.
All the process definitions referenced by a call activity must have been set as executable. Error
Process Context Definition User Fields declared as Call Activity variables must exist and be Error
compatible.
Task Context Definition User Fields declared as User Task variables must exist and be Error
compatible.
If the uploaded bpmn file contains obsolete definitions for Work Center or Location in any Warning
user task configuration, you will be notified that they have been removed from the model,
and this information will also be traced in ETW as a warning.
Procedure
1. Do either of the following to open the Process Definitions page:
4. Click Yes when prompted to save your diagram. The process definition will be set as executable if no errors are
returned: once the Process Definition is set as executable, the Work Process drop down is displayed in the
command bar.
Result
The Process Definition Model is ready to be executed as a Work Process. You can perform this operation:
• from the current environment, selecting either of the following options from the Work Process drop down list
box:
• Create, to create a new Work Process to be started at a later time from the Process Runtime page.
• Create and Start, to create and immediately start a new Work Process.
• from the Process Runtime page.
While importing, if the user task configuration contains obsolete definitions for either Work Center or
Location then the information will be traced in ETW and these obsolete definitions will not be utilized for
Task initialization.
The table below indicates in which order you should import the exported packages, according to the app data
model: the first column lists the entities to be imported and the rows indicate the import sequence.
Process
Template
Available Operations
Operation Description
Overview of the selected Work Process To view the details of an individual Work Process,
including input and output parameters and contexts.
Open the Runtime Monitor for the selected To monitor Work Processes.
Work Process
Recover all the Work Processes To restore the status of all the Work Processes.
Procedure
1. Do either of the following to open the Work Process List page:
Result
The Work Process execution starts, if any errors arise, its status changes to Error, and you can check the Runtime
Monitor to identify and fix the problem.
For more information, see the SetExecutable command in the BPFlow App Reference Guide.
4.1.3.2 Configuring Signal Rules with Start New Work Process Action
From the Signal App, when you configure a Signal Rule, you can define an action that creates and runs a new Work
Process and that will be triggered by the Signal Rule.
Procedure
1. From the Signal Rule Editor, open the Action Block (as documented at page Configuring the Action for Signal
Rule).
2. In the Action Type side panel select the Start New Work Process tile.
3. In the Properties side panel, insert the following parameters:
Option Description
What to do next
You must now wire the parameters of the Signal Rule. In the Transform Editor the system will display in the grid
both the parameters belonging to the command defined in the action block and the following:
• All parameters of the selected Process Definition and of the related Process Template. When you will save the
configuration, the Process Definition parameters will be wired in the Transform Block configuration, as well as
Work Process NId, Work Process name and Work Process Description.
• If you have selected the related Process Definition Context, the User Fields related to the selected Context, with
the naming convention: ProcessContextDefinition name/UserField name.
Procedure
1. Do either of the following to open the Work Process List page:
All Work Processes are displayed in the Work Process List page, along with their basic configuration details and
when they were created and last updated.
Each element in the Work Process is displayed with colors and symbols to easily identify which elements are active,
have already been activated, contain active or past errors.
As the work process moves through its various steps, one or more tokens are displayed showing the progress point.
The configuration of the elements in the flow can be checked by clicking the info icon either next to the
element. User Tasks display the status of their tasks. Call Activities also display the status of their sub-processes,
when they have triggered only one instance, otherwise a stacked folders icon is displayed in the element, and
clicking on this will display a grid listing each instance and its corresponding status.
If errors occur during the execution of the Work Process, an error icon is displayed next to the corresponding
element. Clicking on this icon allows you to examine and solve the underlying issue. Once the error is solved the
error icon remains but its color changes to orange .
If one of the Work Process elements is a Call Activity that refers to another Process Definition, you can
select the block and click the icon to view the underlying Process Definition.
Procedure
1. Do either of the following to open the Work Process List page:
3. To monitor the execution and resolve possible errors of individual elements, click either the Info or
error icon in the following elements:
• inclusive and exclusive gateways
• user tasks
• call activities
• timers.
Procedure
1. Do either of the following to open the Work Process List page:
Once the error has been solved, the error icon will then become orange, and the solved error will be
displayed in the Amended Errors section. This section displays a list of all solved errors, with the date and
time when they occurred and a description of the error.
• the resolved error icon, displayed when an error occurred, which has already been solved.
Procedure
1. Do either of the following to open the Work Process List page:
Once the error has been solved, the error icon will then become orange, and the solved error will be
displayed in the Amended Errors section. This section displays a list of all solved errors, with the date and
time when they occurred and a description of the error.
Procedure
1. Do either of the following to open the Work Process List page:
4. Click on the Configuration tab to view in read-only mode how the user task has been configured, including the
task definition the user task is based on, its revision and parameters.
5. Click on the Execution tab to view details on all the associated task instances, such as their status and when
they were created, and the process definition they are associated with. You can order the grid by Task Id, Status
or date of creation. This data is displayed if the user task has been executed at least once.
6. Click on the Execution Errors tab to check which errors have arisen. Do one of the following to solve the error
situation:
• to definitively cause the entire work process to fail click Fail Work Process
• to skip a particular user task and to move the workflow forward click Skip Activity. If the User Task is in
the middle of a loop, the current loop-iteration will be skipped, and the loop will continue with the next
iteration, if there is one.
Once the error has been solved, the error icon will then become orange, and the solved error will be
displayed in the Amended Errors section. This section displays a list of all solved errors, with the date and
time when they occurred and a description of the error.
Procedure
1. Do either of the following to open the Work Process List page:
• The system verifies the timer has been configured correctly. Otherwise, a warning returns.
• If the timer expires when the system running the workflow engine is down, then the system will
properly notify of the expiration as soon as it will resume. The work process can continue its execution
anyway.
Once the error has been solved, the error icon will then become orange, and the solved error will be
displayed in the Amended Errors section. This section displays a list of all solved errors, with the date and
time when they occurred and a description of the error.
Available Operations
Operation Description
Recover all the Work Processes To restore the status of all the Work Processes.
Procedure
1. Do either of the following to open the Work Process List page:
2. In the Work Process List page, select the Work Process from the list. If you have a high number of Work
processes, you can apply a filter to the list. Multi-selection is supported, but the Pause or Resume button may
be disabled if not all selected Work Processes are in a status which can be paused or resumed.
3. (Optionally) If you prefer to work in the Runtime Monitor with a visual display of the Work Process execution,
click to open the monitor.
4. Click either:
• to temporarily stop the runtime execution.
• to restart a runtime execution that has been paused.
Pause and resume requests are not propagated to sub-processes referenced by any Call Activities included
in the Work Process.
Result
• After pausing a Work Process: the status of the Work Process is immediately changed to Paused. Any elements
within the Work Process that were in progress will complete their activity, but the workflow will not continue
any further.
• After resuming a Work Process: the status of the Work Process is immediately changed to Running. The
evaluation of the path and condition will then continue from the point where the work process was paused.
• If more than one Work Process was selected, and the required operation fails on any of these items, the
requested operation will be executed on the remaining Work Processes, and at the end of the operation a
warning message will be displayed, informing you which items failed. The Work Processes that generated errors
will remain flagged.
Procedure
1. Do either of the following to open the Work Process List page:
Cancel/abort requests are not propagated to sub-processes referenced by any Call Activities included in
the Work Process.
Task App
Result
The status of the Work Process is immediately changed to Cancelled or Aborted, depending on the initial status.
Any elements within the Work Process that were in progress will complete their activity, but the workflow will not
continue any further.
If more than one Work Process was selected, and the required operation fails on any of these items, the requested
operation will be executed on the remaining Work Processes, and at the end of the operation, a warning message
will be displayed, informing you which items failed. The Work Processes that generated errors will remain flagged.
Procedure
1. Do either of the following to open the Work Process List page:
Task App
Task
Administra
tion screen
(supervisor
s)
TaskListVi
ewCompon
ent
(operators)
Task App
The result of this check is called 'contribution'. If the status expected by the exit condition and the status outcome
match, the contribution is considered 'positive'. Skippable tasks always have a positive contribution.
The following table sums up the completion check logic and the relative contribution results.
Failure Negative:
must stop
Success Negative:
must stop
Task App
These attributes (sequence number, completion checks, skippable) are all defined when the runtime task is
created.
Repeating Tasks
Tasks can be repeated. This action corresponds to creating a new instance of the task definition on which the task is
based.
You can repeat a Task if the MaxIterations property is properly set during when creating a task. The task will then
be repeated until the maximum number of iterations is reached.
The contribution logic, applied to task sequencing, is also applied to repeatable tasks. The successive task in a task
flow is activated when the contribution of any of its iterations has a positive result. If the task reaches its maximum
number of iterations, and the contribution is continually negative, the status of the successive task
becomes Canceled.
Workflow
1. Create Task Definitions.
2. Add Task Definition Parameters.
3. Define Task Context Definitions.
4. Create a New Revision of a Task Definition.
5. Set a Task Definition Revision to Current.
Task App
If you have added both Work Instruction App and WITask Extension App to your Solution, after deploying
the Solution, a default Task Definition, named Inspection, will be created and displayed in the Task
Definition page. It is required to configure and use the Quality Execution functionality. For more
information, see Quality Execution.
If you have developed custom Task Types in Project Studio, and have developed custom web pages for
configuring Task Definitions, when you click the Add button in the Task Definition page and select the
custom task type, the system directs you to the custom Task Definition web page, instead of the standard
page provided by the Task App. In this case, the parameters requested may not correspond to those listed
below.
Revision The revision of the task definition. Once created, the Revision value
cannot be modified.
Name (Optional) The name assigned to the task definition. If this field is left
blank when updating the value, it will be set to null.
Task App
Attribute Description
The Task Definitions page provides common functionalities such as Group By, Quick Search, Filter and
User Preferences. The Filter functionality provides a more refined search in addition to Quick Search. You
can filter Task Definitions by Id, Revision, Name and Is Current.
Unset Current
Task App
Operation Description
Procedure
1. Do either of the following to open the Task Definitions page:
Type The data type of the parameter value. The following data types are
supported: Bigint, Bool, Datetime, Decimal, GUID, Int, Quantity,
Smallint, String, Tinyint.
Value (Optional) The parameter value. This value is the default value
displayed in the runtime Task. If you select the Read Only option,
this value cannot be overwritten at runtime. Depending on the Type
selected, a description of the format is provided next to the Value
label for Bool, Datetime and Guid. If this field is left blank when
updating the value, it will be set to null.
Read Only If selected, indicates that the value cannot be modified at runtime.
5. Click Save. The task parameter is added to the task definition.
Task App
Procedure
1. Do either of the following to open the Task Definitions page:
Note
Once Task Context Definition User Fields has been actualized at Task creation time, those values cannot
be modified anymore.
For example, in a scenario where Tasks are strictly related to Work Order Operations, the following context user
fields may be defined: Work Order, Work Order Operation and Operation.
Task Contexts can either be defined in two distinct ways:
Task App
From the TSK_MS By populating the following base Allows contexts to be added to third-party
Functional Block entities in the dbinit file: Functional Blocks
• TaskContextDefinition Additional customization is possible to
• TaskContextDefinitionUserFie improve query performance and provide
ld property indexing by extending the
ContextEntityType.
Directly in the Task App By using the Task Context Definition Easy to use, with no code knowledge
UI Screens provided by the App required.
Provides the possibility to add additional
contexts without modifying the
underlying Functional Blocks.
For more information on the mentioned Functional Block, see TSK_MS Functional Block in the Opcenter Execution
Foundation Development and Configuration Guide.
Workflow
1. Create Task Contexts by either:
• Defining Task Contexts in Functional Blocks.
• Defining Task Contexts in the Task App.
2. Associate Task Contexts to Task Definitions.
TaskContextDefinition
The structure of the TaskContextDefinition base entity is as follows:
Parameter Description
NId The unique identifier assigned to the Task Context Definition. Once
created, the Id value cannot be modified.
Task App
Parameter Description
The TaskContextDefinition Id must follow the defined limitations, if the TaskContextDefinition is then
used within the Business Process Flow App.
<Entity type="Siemens.SimaticIT.MasterData.TSK_MS.MSModel.DataModel.TaskContextDefini
tion">
<Property name="NId" kind="Plain" value="TaskContextDataType" />
<Property name="Name" kind="Plain" value="TaskContextDataType" />
<Property name="Description" kind="Plain" value="Task Context Definition with user
fields each for type" />
<Property name="ContextEntityType" kind="Plain" value="Siemens.SimaticIT.OperationalD
ata.TSK_OP.OPModel.DataModel.ITaskContext" />
<Property name="TaskDefinitions" kind="ManyToManyReference" />
</Entity>
Task App
<Entity type="Siemens.SimaticIT.MasterData.TSK_MS.MSModel.DataModel.TaskContextDefini
tion">
<Property name="NId" kind="Plain" value="TaskContextNULL" />
<Property name="Name" kind="Plain" value="TaskContextNULL" />
<Property name="Description" kind="Plain" value="Task Context Definition with Context
Entity Type equal to NULL" />
<Property name="ContextEntityType" kind="Plain" value="NULL" />
<Property name="TaskDefinitions" kind="ManyToManyReference" />
</Entity>
<Entity type="Siemens.SimaticIT.MasterData.TSK_MS.MSModel.DataModel.TaskContextDefini
tion">
<Property name="NId" kind="Plain" value="TaskContextExtend" />
<Property name="Name" kind="Plain" value="TaskContextExtend" />
<Property name="Description" kind="Plain" value="Task Context Definition for extended
Task Context" />
<Property name="ContextEntityType" kind="Plain" value="Siemens.SimaticIT.OperationalD
ata.BPFLibOP.OPModel.DataModel.IMyTaskContext" />
<Property name="TaskDefinitions" kind="ManyToManyReference" />
</Entity>
<Entity type="Siemens.SimaticIT.MasterData.TSK_MS.MSModel.DataModel.TaskContextDefini
tion">
<Property name="NId" kind="Plain" value="TaskContextFacet" />
<Property name="Name" kind="Plain" value="TaskContextFacet" />
<Property name="Description" kind="Plain" value="Task Context Definition for Task
Context Facet" />
<Property name="ContextEntityType" kind="Plain" value="Siemens.SimaticIT.OperationalD
ata.BPFLibOP.OPModel.DataModel.IMyFacetTaskContext" />
<Property name="TaskDefinitions" kind="ManyToManyReference" />
</Entity>
TaskContextDefinitionUserField
The structure of the TaskContextDefinitionUserField base entity is as follows: NId, DataType and DefaultValue,
where:
• NId, which acts as a unique identifier for the user field. In case of entity extensions, the NId property value must
be set to the name of the extended entity.
• DefaultValue, a default value for the user field, which must be coherent with the specified DataType, even if it is
persisted as a string.
• DataType, one of the following data types:
Task App
Bool 7 true/false
String 1 -
Tinyint 2 0 to 255
<Entity type="Siemens.SimaticIT.MasterData.TSK_MS.MSModel.DataModel.TaskContextDefini
tionUserField">
<Property name="NId" kind="Plain" value="TCDUFBool" />
<Property name="UserFieldValue" kind="Plain" value="false" />
<Property name="UserFieldType" kind="Plain" value="Bool" />
<Property name="TaskContextDefinition" kind="SingleReferenceToParent">
<LogicalKey entityType="Siemens.SimaticIT.MasterData.TSK_MS.MSModel.DataModel.TaskCon
textDefinition_Siemens_SimaticIT_MasterData_TSK_MS_MSModel">
<Property name="NId" kind="Plain" value="TaskContextDataType" />
</LogicalKey>
</Property>
</Entity>
Task App
Task App
<LogicalKey entityType="Siemens.SimaticIT.MasterData.TSK_MS.MSModel.DataModel.TaskCon
textDefinition_Siemens_SimaticIT_MasterData_TSK_MS_MSModel">
<Property name="NId" kind="Plain" value="TaskContextNULL" />
</LogicalKey>
</Property>
</Entity>
<Entity type="Siemens.SimaticIT.MasterData.TSK_MS.MSModel.DataModel.TaskContextDefini
tionUserField">
<Property name="NId" kind="Plain" value="TCDUFBool" />
<Property name="UserFieldValue" kind="Plain" value="false" />
<Property name="UserFieldType" kind="Plain" value="Bool" />
<Property name="TaskContextDefinition" kind="SingleReferenceToParent">
<LogicalKey entityType="Siemens.SimaticIT.MasterData.TSK_MS.MSModel.DataModel.TaskCon
textDefinition_Siemens_SimaticIT_MasterData_TSK_MS_MSModel">
<Property name="NId" kind="Plain" value="TaskContextDataType" />
</LogicalKey>
</Property>
</Entity>
<Entity type="Siemens.SimaticIT.MasterData.TSK_MS.MSModel.DataModel.TaskContextDefini
tionUserField">
<Property name="NId" kind="Plain" value="TCDUFDatetime" />
<Property name="UserFieldValue" kind="Plain" value="2017-12-12T15:17:25" />
<Property name="UserFieldType" kind="Plain" value="Datetime" />
<Property name="TaskContextDefinition" kind="SingleReferenceToParent">
<LogicalKey entityType="Siemens.SimaticIT.MasterData.TSK_MS.MSModel.DataModel.TaskCon
textDefinition_Siemens_SimaticIT_MasterData_TSK_MS_MSModel">
<Property name="NId" kind="Plain" value="TaskContextDataType" />
</LogicalKey>
</Property>
</Entity>
<Entity type="Siemens.SimaticIT.MasterData.TSK_MS.MSModel.DataModel.TaskContextDefini
tionUserField">
<Property name="NId" kind="Plain" value="TCDUFDecimal" />
<Property name="UserFieldValue" kind="Plain" value="123.456" />
<Property name="UserFieldType" kind="Plain" value="Decimal" />
<Property name="TaskContextDefinition" kind="SingleReferenceToParent">
<LogicalKey entityType="Siemens.SimaticIT.MasterData.TSK_MS.MSModel.DataModel.TaskCon
textDefinition_Siemens_SimaticIT_MasterData_TSK_MS_MSModel">
<Property name="NId" kind="Plain" value="TaskContextDataType" />
</LogicalKey>
</Property>
</Entity>
<Entity type="Siemens.SimaticIT.MasterData.TSK_MS.MSModel.DataModel.TaskContextDefini
tionUserField">
<Property name="NId" kind="Plain" value="TCDUFInt" />
<Property name="UserFieldValue" kind="Plain" value="123" />
<Property name="UserFieldType" kind="Plain" value="Int" />
<Property name="TaskContextDefinition" kind="SingleReferenceToParent">
<LogicalKey entityType="Siemens.SimaticIT.MasterData.TSK_MS.MSModel.DataModel.TaskCon
textDefinition_Siemens_SimaticIT_MasterData_TSK_MS_MSModel">
<Property name="NId" kind="Plain" value="TaskContextDataType" />
</LogicalKey>
Task App
</Property>
</Entity>
<Entity type="Siemens.SimaticIT.MasterData.TSK_MS.MSModel.DataModel.TaskContextDefini
tionUserField">
<Property name="NId" kind="Plain" value="TCDUFString" />
<Property name="UserFieldValue" kind="Plain" value="ABC" />
<Property name="UserFieldType" kind="Plain" value="String" />
<Property name="TaskContextDefinition" kind="SingleReferenceToParent">
<LogicalKey entityType="Siemens.SimaticIT.MasterData.TSK_MS.MSModel.DataModel.TaskCon
textDefinition_Siemens_SimaticIT_MasterData_TSK_MS_MSModel">
<Property name="NId" kind="Plain" value="TaskContextDataType" />
</LogicalKey>
</Property>
</Entity>
<Entity type="Siemens.SimaticIT.MasterData.TSK_MS.MSModel.DataModel.TaskContextDefini
tionUserField">
<Property name="NId" kind="Plain" value="TCDUFNULL" />
<Property name="UserFieldValue" kind="Plain" value="NULL" />
<Property name="UserFieldType" kind="Plain" value="String" />
<Property name="TaskContextDefinition" kind="SingleReferenceToParent">
<LogicalKey entityType="Siemens.SimaticIT.MasterData.TSK_MS.MSModel.DataModel.TaskCon
textDefinition_Siemens_SimaticIT_MasterData_TSK_MS_MSModel">
<Property name="NId" kind="Plain" value="TaskContextDataType" />
</LogicalKey>
</Property>
</Entity>
<Entity type="Siemens.SimaticIT.MasterData.TSK_MS.MSModel.DataModel.TaskContextDefini
tionUserField">
<Property name="NId" kind="Plain" value="MyBool" />
<Property name="UserFieldValue" kind="Plain" value="false" />
<Property name="UserFieldType" kind="Plain" value="Bool" />
<Property name="TaskContextDefinition" kind="SingleReferenceToParent">
<LogicalKey entityType="Siemens.SimaticIT.MasterData.TSK_MS.MSModel.DataModel.TaskCon
textDefinition_Siemens_SimaticIT_MasterData_TSK_MS_MSModel">
<Property name="NId" kind="Plain" value="TaskContextExtend" />
</LogicalKey>
</Property>
</Entity>
<Entity type="Siemens.SimaticIT.MasterData.TSK_MS.MSModel.DataModel.TaskContextDefini
tionUserField">
<Property name="NId" kind="Plain" value="MyDatetime" />
<Property name="UserFieldValue" kind="Plain" value="2017-12-12T15:17:25" />
<Property name="UserFieldType" kind="Plain" value="Datetime" />
<Property name="TaskContextDefinition" kind="SingleReferenceToParent">
<LogicalKey entityType="Siemens.SimaticIT.MasterData.TSK_MS.MSModel.DataModel.TaskCon
textDefinition_Siemens_SimaticIT_MasterData_TSK_MS_MSModel">
<Property name="NId" kind="Plain" value="TaskContextExtend" />
</LogicalKey>
</Property>
</Entity>
<Entity type="Siemens.SimaticIT.MasterData.TSK_MS.MSModel.DataModel.TaskContextDefini
tionUserField">
Task App
Task App
Task App
Procedure
1. Do either of the following to open the Task Context Definitions page:
Task App
Parameter Description
Type The data type of the user field. The following data types are
supported: Bigint, Bool, Datetime, Decimal, GUID, Int, Smallint,
String, Tinyint.
The Task Context Definitions page provides common functionalities such as Group By, Quick Search,
Filter and User Preferences. The Filter functionality provides a more refined search in addition to Quick
Search. You can filter Task Context Definitions by Id and Name.
Task App
Currently contexts cannot be explicitly managed at runtime. However custom logic can be implemented
by third-parties, using the task definition / context association when creating tasks.
Procedure
1. Do either of the following to open the Task Definitions page:
You can remove the association of the Task Definition to a Task Context Definition by selecting the Task
Context Definition in the Context tab and clicking Disassociate Task Context Definition.
Procedure
1. Do either of the following to open the Task Definitions page:
Task App
Task App
Operation Description
Edit To modify Task attributes (apart from the Id, Task Definition and Task Definition Revision
fields).
Edit To modify existing Task Parameters (and/or add new ones in a standard or custom page).
Parameters
Freeze To make a Task read-only. When read-only, the Task is visible and it cannot be edited, but it
can be deleted.
Unfreeze
To delete Tasks. Only tasks in a final status can be deleted. More than one task can be
Delete
deleted at a time.
Enable To enable or disable Auto Refresh of the Task Administration page. See Managing Task
Auto Refresh States.
Disable
Auto Refresh
Procedure
Task App
If you have developed custom Task Types in Project Studio, and have developed custom web pages for
configuring Tasks, if you select a Task Definition based on a custom type, the system directs you to the
custom Add Task web page, instead of the standard page provided by the Task App. In this case, the
parameters requested may not correspond to those listed below.
Id The unique identifier assigned to the Task. Once the Task is created,
the Id value cannot be modified. If you have selected
Autogenerated Id, this field will be disabled.
Autogenerated Name If selected, the name of the Task to be added will be autogenerated
using the Numbering Pattern defined for the Task Name. If you are
modifying an existing Task, you can automatically generate (or re-
generate) the Task Name by selecting this check box (see the note
below on Edit operations).
Name (Optional) The name assigned to the Task. If you have selected
Autogenerated Name, this field will be disabled. If this field is left
blank when updating the value, it will be set to null.
Task Definition The Task Definition you want to associate with the Task. This field is
read-only.
Task Definition Revision The Task Definition revision associated with the Task. This field is
read-only.
Task App
Attribute Description
Max iterations Defines the maximum number of times the task can be repeated.
The repetition of a task implies the creation of a new instance of the
original Task. This value is mandatory if you are implementing
sequencing. Note that if the task has been repeated at least once, its
Continue on Success, Continue on Failure, Is Skippable and Max
iterations fields cannot be updated.
Continue on Success Defines if the subsequent task in the sequence can be activated once
the current task has reached its final status and has Success as
Outcome property value. The Outcome of a task status is defined in
the standard Task App task state machine.
Continue on Failure Defines if the subsequent task in the sequence can be activated once
the current task has reached its final status and has Failure as
Outcome property value.
6. Click the Parameter tab, enter values for the input parameters specified for your Task Definitions. Default
values are displayed and can be modified. If parameters were set as read-only they cannot be modified.
7. Click the Context tab and enter values for the user fields of the task contexts that were associated to the Task
Definition. When the Task is executed an instance of the Task Context class will be created in the operational
domain, with its defined user fields.
8. Click Save. The new Task is created and displayed in the Task Administration page, along with the details on
when it was created and last updated. Its full details can be viewed from this page by clicking .
Note
Once Task Context Definition User Fields have been actualized at Task creation time, their values cannot
be modified anymore.
Task App
If you have developed custom Task Types in Project Studio, and have developed custom web pages, and
the task to which you are adding Task Parameters is based on a custom task type, the system may direct
you to the custom Task Parameters page, instead of the standard page provided by the Task App.
Procedure
1. Do either of the following to open the Task Administration page:
Attribute Description
Type The data type of the Task Parameter value. The following data
types are
supported: Bigint, Bool, Datetime, Decimal, GUID, Int,
Quantity, Smallint, String, Tinyint.
Unit of Measure It represents the base unit for measuring a physical quantity
(such as meter, kilogram). This is enabled only
when Parameter's Type is Quantity.
Value (Optional) The value of the Task Parameter. This value is the
default value displayed in the runtime Task. If you select the
Read Only option, this value cannot be overwritten at runtime.
Depending on the Type selected, a description of the format is
provided next to the Value label for Bool, Datetime and Guid. If
this field is left blank when updating the value, it will be set to
null.
Task App
Task App
• If a custom UI has been defined for the task execution, the custom UI will be displayed when the task
status is activated.
• If an error occurs in the task lifecycle (the value of the attribute Error Count is different from 0) and the
task is related to a Task Type for which a custom Task Message UI has been defined, a custom button
is displayed for activating the custom Task Message UI.
• Multi-selection is supported for all status transitions, except for the actions Start and Resume.
• The data within the Task Administration page can be automatically refreshed if a filter in the page is
configured and the auto refresh button is properly enabled. You can enable or disable the auto refresh
option of the Task Administration page by applying any filter to the list and clicking either to
enable the auto refresh or to disable the auto refresh. The auto refresh option is disabled by
default on page load. If the auto refresh is disabled, click Apply in Filters panel to view the updated
list.
• Should the status of the tasks change frequently, any Task Administration page where the auto
refresh option is enabled, could cause a high refresh rate. Therefore, to reduce the refresh rate, you
need to set the proper values for the filter fields.
Procedure
1. Do either of the following to open the Task Administration page:
Task App
Procedure
1. Do either of the following to open the Task Administration page:
To filter records, we recommend that you configure up to 5 context fields at a time in the Advanced
Search panel. If you set up a higher number of context fields at the same time, you can run into system
errors because the search query string length may exceed the default allowed value.
To set up a higher number of context fields, apply some specific custom configurations such as increasing
the query string length on the web server, as explained at Applying Custom Configurations to the Opcenter
EX FN Service Layer of the Opcenter EX FN Development and Configuration Guide.
Task App
Procedure
1. Do either of the following to open the Task Administration page:
Task App
For each Task Type and Task Definition, the system integrator must implement the business logic related to the
task statuses. Business logic usually interacts with the 'internal' events, which are the events related to the non-
final Task statuses.
This logic is implemented as command handlers in a Functional Block (typically in the same Functional Block where
the event handlers are implemented), which can be activated upon the notification of events. Consequently, the
system integrator must configure the event subscriptions necessary to activate the custom business logic.
The following events are fired:
• ActionOnTaskRequest - This event is fired when an action (e.g. Activate, Pause, Complete, etc.) on the task is
requested from a pre-defined command provided by Task Management (such as ActivateTask, PauseTask,
CompleteTask).
• StatusChanged - This event is fired when the status of the task has been changed successfully after invoking the
command SetTaskStatus.
• TaskEquipmentStatusChanged - This event is fired when a status of a task has been changed successfully after
invoking the command SetTaskStatus. It contains information on the Equipment to which the Task belongs to.
• StatusForced - This event is fired when the status of the task has been forced successfully after invoking the
command ForceTaskStatus.
• SequenceStepCompleted - This event is fired when an entire sequence step has been completed regardless of
whether it has completed successfully or not.
These events are all fired with a specific envelope on which you can filter while configuring the subscription.
State Machine
Runtime tasks follow a specific lifecycle based on the state machine described below:
No custom extensions can be applied to the Task State Machine provided by the Task App.
Task App
Procedure
For each custom task type:
1. Create a UI Component for managing task definitions, along with screens for creating, editing and viewing the
details of task definitions. You can use the following stateParams provided in input:
• $stateParams.componentStateParams.action: the corresponding action to be performed in the
screen, i.e. 'add'/'edit'/'view'.
• $stateParams.componentStateParams.taskTypeId: the selected Task Type Id
• $stateParams.componentStateParams.taskDefinitionId: the selected Task Definition Id (used in edit/
view)
• $stateParams.componentStateParams.previousStateName: the previous $state, used to return to
the previous UI page from the custom component.
• $stateParams.componentStateParams.commandBarType: the type of command bar previously used
before reloading for the action 'view', whose values can be "overview", "parameter" or "context".
It is possible to change the actions on the command bar of the Task Definition page depending on the selected
tab (Overview, Parameter and Context) within the Third Party UI Component.
To trigger the changes in the command bar it is possible to fire two events from the Third Party Component:
• "TaskDefinition:commandBarTypeChanged" with parameter "commandBarType" whose values can be
"overview", "parameter" or "context".
Example to change the command bar in order to view the actions corresponding to the Parameter tab:
$rootScope.$emit('TaskDefinition:commandBarTypeChanged', { commandBarType:
'parameter' });
• Create a UI Component for managing tasks, along with screens for creating, editing and adding tasks. You can
use the following stateParams provided in input:
Task App
<Entity type="Siemens.SimaticIT.MasterData.TSK_MS.MSModel.DataModel.TaskType">
<Property name="NId" kind="Plain" value="PartAndScrapCheckTaskType" />
<Property name="Name" kind="Plain" value="Part and Scrap Check" />
<Property name="Description" kind="Plain" value="Type of task for Part and
Scrap Check" />
<Property name="TaskEntityType" kind="Plain"
value="Siemens.SimaticIT.OperationalData.TSK_OP.OPModel.DataModel.ITask" />
<Property name="TaskDefinitionUI" kind="Plain"
value="Siemens.SimaticIT.TaskCUApp/
siemensSimaticitTaskcuappPartandscrapchecktaskdefinitioncomponent" />
<Property name="TaskMessageUI" kind="Plain" value="NULL" />
<Property name="TaskUI" kind="Plain" value="Siemens.SimaticIT.TaskCUApp/
siemensSimaticitTaskcuappPartandscrapcheckv2component" />
<Property name="TaskInstanceUI" kind="Plain"
value="Siemens.SimaticIT.TaskCUApp/
siemensSimaticitTaskcuappPartandscrapchecktaskcomponent" />
</Entity>
Task App
The Task List View component provides a dashboard view of the Task Administration, displaying all the tasks
within the system (whether created manually from the Task Administration, referred to as Tasks, or via Work
Orders, referred to as Work Order Tasks in versions prior to 3.0), their description, task type, date of creation and
last update, along with an icon and its color to represent their status.
It exposes two methods:
refresh Refreshes the grid that displays the tasks selected via
a filter.
It requires the oDataFilter string as an attribute,
which can be set to an oData $filter expression, for
example "NId eq 000000000000004" or "Name eq
\'Move Material\'" or "Status/StatusNId eq
\'InProgress\'".
If the string is empty, then all the tasks are displayed.
Procedure
1. Create a Mashup UI Module within your Solution in Solution studio, by clicking or Create New in the Mashup
page.
2. Provide a name, title and icon for the mashup UI module, and specify whether it will be securable or not.
3. Click Save.
4. Select the new Mashup UI Module and click .
5. In the UI Screen page, select your module and click .
6. In the UI Components tab, select the TaskListViewComponent in your App node in the toolbox and drag and
drop it into the layout design grid.
7. Click on the component and change its dimensions and position within the grid as required.
8. To define the mandatory Refresh method, click on the Wiring tab.
9. Click Add New and provide a name and optional description for the wiring.
10. Click Save.
11. From the Input-Output Components tile in the Components tab drag:
• the default mashup component to the Input Component section
• the siemensSimaticitTaskTaskListViewComponent to the Output Component section.
12. Click to create parameters for the module.
13. In the Parameters tab click Add New Parameter, and define its properties, as in the example:
Attribute Value
Name filter
Type String
Task App
Attribute Value
Name visible
Type boolean
Default false
8. Click Save.
Task App
Command Function
Procedure
1. Select the Mashup UI Module you created for the Task List View component and click .
2. Drag the Siemens.SimaticIT.TaskInfoComponent into the layout design grid. Adjust dimensions as required
and save.
3. In the Wiring tab, click and provide a name and optional description for the wiring.
4. Click Save.
5. From the Input Components tile in the Components tab drag
the siemensSimaticitTaskTaskListViewComponent component to the Input Component section.
6. From the Output Components tile in the Components tab drag the
siemensSimaticitTaskTaskinfocomponent to the Output Component section.
7. Click on the Configuration tab on the right-hand side, and select the following values from the drop-down lists:
Parameter Value
• How to Integrate and Use Quality Execution describes how to integrate and use Quality Execution functionality.
Concepts
Work Instructions are based on the following:
• Work Instruction Templates - Master Data domain entities which act as templates for the creation of Work
Instruction Definitions.
• Work Instruction Context Definitions - Metadata which describes how to contextualize (i.e. link to operational
entities) runtime Work Instruction Instances.
• Work Instruction Definitions - Master Data domain entities that contain the information required to describe a
specific Work Instruction. Work Instruction Definitions can optionally be based on Work Instruction Templates
or linked to Work Instruction Contexts.
• Work Instruction Authoring Tool - A graphical editor used to create and modify a Work Instruction starting
from a specific Work Instruction Definition.
• Work Instructions - Operational domain entities, which are used to execute instances of Work Instruction
Definitions.
• Work Instruction Contexts - The actual context of a specific Work Instruction instance.
Workflow
1. Create Work Instruction Templates.
2. Create Work Instruction Definitions.
3. Manage Work Instruction Definition Contents.
Workflow
1. Add a new Work Instruction Template.
2. Set a Work Instruction Template as default.
3. Add Work Instruction Template Parameters.
To export selected entities and instances in an export package that can be downloaded locally
Export
and imported afterwards. See How to Export and Import Data.
Procedure
1. Do either of the following to open the Work Instruction Templates page:
The Work Instruction Template page provides common functionalities such as Group By, Quick Search,
Filter and Mode. The Filter functionality provides a more refined search in addition to Quick Search. You
can filter Work Instruction Templates by Id, Name, Description, Created On, Last Updated On and Is
Default.
Procedure
1. Do either of the following to open the Work Instruction Templates page:
After being created, Work Instruction Template Parameters can be edited ( ) or deleted ( ).
Procedure
1. Do either of the following to open the Work Instruction Templates page:
Type The data type of the Work Instruction Template Parameter value. The
following data types are
supported: Bigint, Bool, Datetime, Decimal, GUID, Int, Quantity,
Smallint, String, Tinyint.
Unit of Measure It represents the base unit for measuring a physical quantity (such as
meter, kilogram). This is enabled only when Work Instruction
Template Parameter's Type is Quantity.
If the value is not compliant with the data type (for example,
if an integer is supplied as a value for a Bool data type) the
Work Instruction Template Parameter cannot be saved.
Read Only If selected, indicates that the value of the parameter cannot be
modified or deleted when inherited by a Work Instruction Definition.
5. Click Save.
Workflow
1. Add a new Work Instruction Definition.
2. Create a New Revision of a Work Instruction Definition.
3. Add Work Instruction Definition Parameters.
4. Set a Work Instruction Definition to Current.
Edit To modify Work Instruction Definition attributes, apart from the Id and
Revision.
Export (available from the To export a Work Instruction Definition to a JSON file.
command bar) Note: Electronic Signature Scenario associated to the Work Instruction
Definition Steps will not be exported along with their structures.
Export (available from the Allows you to export selected entities and instances in an export package
contextual command bar) that can be downloaded locally and imported afterwards.
See How To Export and Import Data for information about runtime data
exchange and Exporting and Importing Work Instruction Data for further
information on the import sequence of Work Instruction data.
Set Current To set or unset a specific Work Instruction Definition Revision to current.
Unset Current
Operation Description
By copying an existing Work Instruction The newly created Work Instruction Definition inherits the
Definition Revision attributes of the original Work Instruction Definition, but has its
own Id and Revision. The inherited attributes, apart from the
base Work Instruction Template, can be modified and no
dynamic link exists with the source Work Instruction Definition.
By importing a Work Instruction Definition Work Instruction Definition files can be imported, along with
from a JSON file their content and parameters. Imported Work Instruction
Definition inherits all the contents and parameters of the
exported Work Instruction Definition.
The import action will either create or update a Work
Instruction Definition depending upon the below scenarios:
• If the Id and Revision do not correspond to any
existing Work Instruction Definition, the import
action will create a new Work Instruction Definition.
• If only the Id (not the Revision) corresponds to an
existing Work Instruction Definition, the import
action will create a new revision of the Work
Instruction Definition.
• If the Id and Revision correspond to an existing
Work Instruction Definition, the import action will
update by overwriting the existing one on
confirmation.
Note: If you want to import an existing Work Instruction
Definition in order to update it, do not modify the Id and/or
Revision displayed. If you change the Id and/or Revision, the
result is that a new Work Instruction Definition (or Revision) is
created instead of the existing one to be updated.
Once a Work Instruction Definition is created, you can add or modify Work Instruction Definition parameters.
Use Default Template (Optional) If selected, the Work Instruction Definition is based
on the Work Instruction Template defined as default.
To prevent unauthorized users from tampering with the exported packages, strict measures should be
taken to guarantee that the exported information is correctly and securely stored until it is re-imported.
• Click Work Instruction Engineering in the side menu bar and click Work Instruction Definitions.
2. In the Work Instruction Definitions page, click .
3. Enter the following information:
Attributes Definition
Upload a json file A mandatory field to select and upload a valid json file. Once you
upload a valid json file, the Id and Revision fields are
automatically populated, but if necessary you can modify the
displayed values.
The Work Instruction Definition page provides common functionalities such as Group By, Quick Search,
Filter and User Preferences. The Filter functionality provides a more refined search in addition to Quick
Search. You can filter Work Instruction Definitions by Id, Name, Revision and Is Current.
Procedure
1. Do either of the following to open the Work Instruction Definitions page:
Procedure
1. Do either of the following to open the Work Instruction Definitions page:
Type The data type of the Work Instruction Definition Parameter value. The
following data types are
supported: Bigint, Bool, Datetime, Decimal, GUID, Int, Quantity,
Smallint, String, Tinyint.
Unit of Measure It represents the base unit for measuring a physical quantity (such as
meter, kilogram). This is enabled only when Work Instruction
Definition Parameter's Type is Quantity.
Attribute Description
If the value is not compliant with the data type (for example,
if an integer is supplied as a value for a Bool data type) the
Work Instruction Definition Parameter cannot be saved.
The maximum number of characters for a string value is 255.
Read Only If selected, indicates that the default value of the parameter cannot be
modified or deleted at runtime.
5. Click Save. Parameters created for the Work Instruction Definition or those inherited from the Work Instruction
Template are listed in the Parameter tab.
Procedure
1. Do either of the following to open the Work Instruction Definitions page:
Instruction Authoring Tool, once a Work Instruction Definition is created. You can provide the detailed steps of a
specific activity under Work Instruction Section.
To make the Work Instruction Definition executable, each Work Instruction Content must contain at least one
Section and each Section must have at least one Step.
A Work Instruction Step is a detailed instruction for performing a specific activity. You can define one or more steps
within a Work Instruction Section.
It can be of two types:
• Acknowledge containing detailed instructions that can be acknowledged by the user at runtime.
• Data Collection containing detailed instructions with data collection form which will be filled in by the user at
runtime.
Workflow
1. Add a new Work Instruction Section.
2. Create one of the following Work Instruction Steps:
• New Acknowledge Step
• New Data Collection Step
By copying an existing Work Instruction The copied Work Instruction Section inherits the attributes of
Section the original Work Instruction Section, but has a unique Id (auto
generated) which can be modified only once after copying.
The inherited attributes, except for the Id, can be modified and
no dynamic link exists with the source Work
Instruction Section.
A Work Instruction Section can be deleted by clicking . Deleting a Work Instruction Section will delete all the
steps created in the particular Work Instruction Section.
Title An optional title for the Work Instruction Section. Can be modified
after the creation of section.
6. Click Apply. The new section is displayed below the previously existing Section. You can now add Work
Instruction Steps to it (see Adding a New Acknowledge Step and Adding a New Data Collection Step).
7. If necessary, drag and drop the sections to re-order them.
8. Click Save.
Title An optional title for the Work Instruction Section. Can be modified
after the copying the section.
5. Click Apply.
6. If necessary, drag and drop the sections to re-order them.
7. You can add / delete Work Instruction Steps in the copied Work Instruction Section.
8. Click Save.
Once defined, Acknowledge Step attributes can be modified except for the Id.
Procedure
1. Do either of the following to open the Work Instruction Definitions page:
Type The type of a Work Instruction Step. Select the Acknowledge option.
Id A mandatory field to identify the Work Instruction Step. Once saved, this value
cannot be modified.
The field value admits letters, digits and underscore character, starting with a letter.
Title (Optional) The title to be displayed at runtime for the Work Instruction Step.
Signature Scenario (Optional) The Electronic Signature Scenario that is necessary to complete the step.
This option is available only if Audit Trail app is installed in your Solution.
6. Click Apply. the new step is displayed under the previously selected Work Instruction Section.
7. If necessary, re-order the configured steps within the section.
8. Click .
Procedure
Type The type of a Work Instruction Step. Select the Data Collection option.
Id A mandatory field to identify the Work Instruction Step. Once saved, this value cannot be
modified.
The field value admits letters, digits and underscore character, starting with a letter.
Title (Optional) The title to be displayed at runtime for the Work Instruction Step.
Instruc (Optional) Detailed information which is required by the user at runtime to accomplish the step.
tions Format the text using the buttons displayed in the toolbar. If necessary
• add images by clicking the icon.
• insert placeholders for Work Instruction Definition parameters by clicking the
icon. At runtime each placeholder will be replaced by the value of the respective
parameter.
Signat (Optional) The Electronic Signature Scenario grouping the signatures that are necessary to
ure complete the step. This option is available only if Audit Trail app is installed in your Solution.
Scenari
o
6. Click on the Data Collection Form tab.
7. Define the layout and content of the data collection form by dragging and dropping the Element Types of
interest. Each Data Collection Step can be composed of one or more Element Types. From a functional
perspective, Element Types can be grouped into four main categories: Elements for textual information,
Elements for numerical information, an Element for datetime information and Elements for custom
selection among a set of fixed values.
Functional Element Type Description
Category
Multiline Text You should use this Element when a multi-line text is expected to be
inserted at runtime. With this Element you can define Default Value, a
Element for
maximum allowed text Length and a Format to match the correctness of
textual
the runtime value.
information
Single Input You should use this Element when you need to provide the runtime user
Text with a single-line input box. With this Element you can define Default
Value, a maximum allowed text Length and a Format to match the
correctness of the runtime value.
Single Input You should use this Element when either Integer or Decimal values are
Decimal needed to be hosted and managed; this Element provides the localization
support for decimal and thousands separator. You can define Default
Value, Low/High Limits, Target and associate a Unit of Measure to the
value.
Element for
numerical
Single Input You should use this Element when only Integer values are needed to be
information
Integer hosted and managed; this Element provides the localization support for
thousands separator. With this Element you can define Default Value,
Low/High Limits, Target and associate a Unit of Measure to the value.
Single Input You should use this Element when an Integer or a Decimal or a value
Numeric represented in exponential notation could be needed; this Element is not
taking into consideration any localization aspect like decimal or
thousands separators. With this Element you can define Default Value,
Low/High Limits, Target and associate a Unit of Measure to the value.
Element Datetime You should use this Element when a datetime information is expected; this
for datetim Element support the localization for managed values. With this Element
e you can define Default Value, Low/High Limits, Target and Format. The
information Format specifies how the datetime value will be shown at runtime.
Checkbox You should use this Element when a true/false choice is expected; this
Element supports the definition of the Default Value and Target (true |
Element
false).
for custom
selections
among a set Dropdown You should use this Element when you want to provide a fixed set of
of fixed possible values without providing a target value.
values
Multiple You should use this Element when you want to provide a fixed set of
Choice possible values by means of option buttons; this Element supports the
definition of the Target.
8. Configure the Element Type attributes by clicking next to the label of the required Element Type and then by
clicking .
9. Provide the needed information according to the selected Element Type. See Element Types of Data Collection
Steps.
If necessary, it is possible to copy the existing Element Types in the form by clicking icon, instead of
inserting and then configuring new Element Types from scratch.
10. Click Apply: the new step is displayed under the previously selected Work Instruction Section.
11. If necessary re-order the configured steps within the section.
12. Click .
Attribute Description
Field Id A mandatory field to identify the Element Type. This field cannot be updated further.
Required (Optional) If true, indicates that the value must be provided at runtime. You can select the
Required checkbox by selecting the Manual Value option or bind a parameter by selecting
the Binding option.
Binding Note: this attribute can be bound with Parameters whose datatype is Bool.
Read Only (Optional) If true, indicates that the value cannot be edited at runtime. You can select the Read
Only checkbox by selecting the Manual Value option or bind a parameter by selecting
the Binding option.
Binding Note: this attribute can be bound with Parameters whose datatype is Bool.
Attribute Description
Placeholder Text (Optional) The text to be displayed within the Element Type when no runtime
value has been inserted.
Default Value The value to be auto populated in the corresponding Element Type at runtime.
You can provide the value by selecting the Manual Value option or bind a
parameter by selecting the Binding option.
The Binding attribute can be bound with Parameters whose datatype is String.
Length (Optional) The maximum number of characters that can be inserted into the
Element Type. You can provide the value by selecting the Manual Value option
or bind a parameter by selecting the Binding option.
The Binding attribute can be bound with Parameters whose datatype is BigInt,
Int, SmallInt and TinyInt.
Multiline Text
With the Element Type selected in edit mode (see Element Types of Data Collection Steps), you can provide the
following information:
Attribute Description
Placeholder Text (Optional) The text to be displayed within the Element Type when no runtime value has
been inserted.
Default Value The value to be auto populated in the corresponding Element Type at runtime. You can
provide the value by selecting the Manual Value option or bind a parameter by selecting
the Binding option.
The Binding attribute can be bound with Parameters whose datatype is String.
Format (Optional) Specify a valid JavaScript regular expression to be verified against the format of
the input value at runtime (see section below). You can provide the value by selecting
the Manual Value option or bind a parameter by selecting the Binding option.
The Binding attribute can be bound with Parameters whose datatype is String.
Size (Optional) The size of the text-box which will be displayed at runtime. The following
options are available:
• Small
• Medium
• Large
Length (Optional) The maximum number of characters that can be inserted into the Element
Type. You can provide the value by selecting the Manual Value option or bind a
parameter by selecting the Binding option.
The Binding attribute can be bound with Parameters whose datatype is BigInt, Int,
SmallInt and TinyInt
I want to be sure that every entered phone • Could start with '+'
number is respecting a well defined pattern • Could be from 10 to 16 chars and digits length
• Must be composed by only space char and digits from 0
to 9
An accepted phone number: +49 123 456 7890
Regular Expression: ^(\+)?([ 0-9]){10,16}$
Use Case: I want to be sure every entered value for my textual attribute is respecting a well defined pattern
• Prefix: Siemens
• A 6-digit serial number: 123456
• Suffix: Test
Resulting Code: Siemens123456Test
Regular Expression: (Siemens)\d{6}(Test)
Use Case: I want to be sure every entered phone number is respecting a well defined pattern
• Could start with '+'
• Could be from 10 to 16 chars and digits length
• Must be composed by only space char and digits from 0 to 9
An accepted phone number: +49 123 456 7890
Regular Expression: ^(\+)?([ 0-9]){10,16}$
Element Types for Numerical Information
This page describes the allowed configuration for Single Input Numeric, Single Input Integer and Single Input
Decimal Element Types.
The maximum number of supported digits is 15 for Low Limit, High Limit and Target fields (applicable
only for Single Input Numeric, Single Input Integer and Single Input Decimal) as the value might get
rounded-off automatically after 15 digits. A warning message appears for the same when the value
exceeds this limit.
Attribute Description
Default The value to be auto populated in the corresponding Element Type at runtime. You can provide
Value the value by selecting the Manual Value option or bind a parameter by selecting the Binding
option.
The Binding attribute can be bound with parameters whose datatype is Decimal, Integer,
SmallInt, TinyInt and Quantity.
You can clear the binding value as well as the pre filled and automatically selected UoM value by
clicking the Clear Binding button.
UoM (Optional) The base unit for measuring a physical quantity for the Element Type. You can provide
the value by selecting the Manual Value option or bind a parameter by selecting the Binding
option.
The Binding attribute can be bound with parameters whose datatype is String
You can remove the Manual and Binding values by clicking the Clear button.
Low Limit (Optional) The minimum value that can be inserted into the Element Type. It is visible at runtime
when its Visible check box is selected. You can provide the value by selecting the Manual Value
option or bind a parameter by selecting the Binding option.
The Binding attribute can be bound with parameters whose datatype is Decimal, Integer,
SmallInt, TinyInt and Quantity.
At runtime, if the actual value will exceed this limit, a warning message will inform the user but
the user will not be prevented from saving the value.
Target (Optional) The expected value to be collected at runtime. It is visible at runtime when its Visible
check box is selected. You can provide the value by selecting the Manual Value option or bind a
parameter by selecting the Binding option.
The Binding attribute can be bound with parameters whose datatype is Decimal, Integer,
SmallInt, TinyInt and Quantity.
High Limit (Optional) The maximum value that can be inserted into the Element Type. It is visible at runtime
when its Visible check box is selected. You can provide the value by selecting the Manual Value
option or bind a parameter by selecting the Binding option.
The Binding attribute can be bound with parameters whose datatype is Decimal, Integer,
SmallInt, TinyInt and Quantity.
At runtime, if the actual value will exceed this limit, a Warning message will inform the user but
the user will not be prevented from saving the value.
Attribute Description
Default Value The value to be auto populated in the corresponding Element Type at runtime. You can
provide the value by selecting the Manual Value option or bind a parameter by selecting
the Binding option.
The Binding attribute can be bound with parameters whose datatype is Integer, SmallInt,
TinyInt and Quantity.
You can clear the binding value as well as the pre-filled and automatically selected UoM
value by clicking the Clear Binding button.
UoM (Optional) The base unit for measuring a physical quantity for the Element Type. You can
provide the value by selecting the Manual Value option or bind a parameter by selecting
the Binding option.
The Binding attribute can be bound with parameters whose datatype is String
You can remove the Manual and Binding values by clicking the Clear button.
Low Limit (Optional) The minimum value that can be inserted into the Element Type. It is visible at
runtime when its Visible check box is selected. You can provide the value by selecting
the Manual Value option or bind a parameter by selecting the Binding option.
The Binding attribute can be bound with parameters whose datatype is Integer, SmallInt,
TinyInt and Quantity.
At runtime, if the actual value will exceed this limit, a warning message will inform the user
but the user will not be prevented from saving the value.
Target (Optional) The expected value to be collected at runtime. It is visible at runtime when its
Visible check box is selected. You can provide the value by selecting the Manual Value
option or bind a parameter by selecting the Binding option.
The Binding attribute can be bound with parameters whose datatype is Integer, SmallInt,
TinyInt and Quantity.
High Limit (Optional) The maximum value that can be inserted into the Element Type. It is visible at
runtime when its Visible check box is selected. You can provide the value by selecting
the Manual Value option or bind a parameter by selecting the Binding option.
The Binding attribute can be bound with parameters whose datatype is Integer, SmallInt,
TinyInt and Quantity.
At runtime, if the actual value will exceed this limit, a warning message will inform the user
but the user will not be prevented from saving the value.
Attribute Description
Default Value The value to be auto populated in the corresponding Element Type at runtime. You can
provide the value by selecting the Manual Value option or bind a parameter by
selecting the Binding option.
The Binding attribute can be bound with parameters whose datatype is Decimal,
Integer, SmallInt, TinyInt and Quantity.
You can clear the binding value as well as the pre-filled and automatically selected
UoM value by clicking the Clear Binding button.
UoM (Optional) The base unit for measuring a physical quantity for the Element Type. You
can provide the value by selecting the Manual Value option or bind a parameter by
selecting the Binding option.
The Binding attribute can be bound with parameters whose datatype is String.
You can remove the Manual and Binding values by clicking the Clear button.
Low Limit (Optional) The minimum value that can be inserted into the Element Type. It is visible
at runtime when its Visible check box is selected. You can provide the value by
selecting the Manual Value option or bind a parameter by selecting the Binding
option.
The Binding attribute can be bound with parameters whose datatype is Decimal,
Integer, SmallInt, TinyInt and Quantity.
At runtime, if the actual value will exceed this limit, a warning message will inform the
user but the user will not be prevented from saving the value.
Target (Optional) The expected value to be collected at runtime. It is visible at runtime when
its Visible check box is selected. You can provide the value by selecting the Manual
Value option or bind a parameter by selecting the Binding option.
The Binding attribute can be bound with parameters whose datatype is Decimal,
Integer, SmallInt, TinyInt and Quantity.
High Limit (Optional) The maximum value that can be inserted into the Element Type. It is visible
at runtime when its Visible check box is selected. You can provide the value by
selecting the Manual Value option or bind a parameter by selecting the Binding
option.
The Binding attribute can be bound with parameters whose datatype is Decimal,
Integer, SmallInt, TinyInt and Quantity.
At runtime, if the actual value will exceed this limit, a warning message will inform the
user but the user will not be prevented from saving the value.
Number of Decimal Truncates the Value, Limits and Target field values after their decimal point with the
Digits inserted value.
The value set for Low Limit is Current Date and 12:00:00 AM as time, while the value set for High Limit is
Current Date and 11:59:59 PM as time, referring to when the date time picker is opened.
Datetime attributes
With the Element Type selected in edit mode (see Element Types of Data Collection Steps), you can provide the
following information:
Attribute Description
Default Value The value to be auto-populated in the corresponding Element Type at runtime. You can
provide the value by selecting the Manual Value option or bind a parameter by selecting
the Binding option.
Binding Note: this attribute can be bound with parameters whose datatype is Datetime.
Format (Optional) You can specify a datetime format with the Format field of the Element Type (see
dedicated section below). A preview of the specified format is displayed below the textbox,
as you type. The format will be applied at runtime to the selected datetime value.
You can provide the value by selecting the Manual Value option or bind a parameter by
selecting the Binding option.
Binding Note: this attribute can be bound with parameters whose datatype is String.
Low Limit (Optional) The minimum value that can be inserted into the Element Type. It is visible at
runtime when its Visible check box is selected. You can provide the value by selecting
the Manual Value option or bind a parameter by selecting the Binding option.
Binding Note: this attribute can be bound with parameters whose datatype is Datetime.
At runtime, if the actual value will exceed this limit, a warning message will inform the user
but the user will not be prevented from saving the value.
High Limit (Optional) The maximum value that can be inserted into the Element Type. It is visible at
runtime when its Visible check box is selected. You can provide the value by selecting
the Manual Value option or bind a parameter by selecting the Binding option.
Binding Note: this attribute can be bound with parameters whose datatype is Datetime.
At runtime, if the actual value will exceed this limit, a Warning message will inform the user
but the user will not be prevented from saving the value.
Target (Optional) The expected value to be collected at runtime. It is visible at runtime when
its Visible check box is selected. You can provide the value by selecting
the Manual Value option or bind a parameter by selecting the Binding option.
Binding Note: this attribute can be bound with parameters whose datatype is Datetime.
Example date and time: Thursday, Nov 12th, 1970 at 4:20:00 AM in Genoa, Italy UTC+1, following the en-EN culture
a AM/PM marker AM
Checkbox
With the Element Type selected in edit mode (see Element Types of Data Collection Steps), you can provide the
following information:
Attribute Description
Default Value The value to be auto populated in the corresponding Element Type at runtime.
You can provide the value by selecting the Manual Value option or bind a
parameter by selecting the Binding option.
The Binding attribute can be bound with parameters whose datatype is Bool.
Dropdown
With the Element Type selected in edit mode (see Element Types of Data Collection Steps), you can provide the
following information:
Attribute Description
Placeholder Text (Optional) The text to be displayed within the Element Type when no runtime value
has been inserted.
Labels - Values A set of options to be displayed at runtime. For each option specify:
• Label: the string identifying the option in the UI at runtime.
• Value: the value to be saved on the database when the user selects the
corresponding string.
Multiple Choice
With the Element Type selected in edit mode (see Element Types of Data Collection Steps), you can provide the
following information:
Attribute Description
Work Instruction
Definition
Enable Auto Refresh To enable or disable Auto Refresh of the Work Instruction list.
See Executing Work Instructions.
Disable Auto Refresh
Prerequisites
A Work Instruction Definitions that contains at least one Step already exists.
Procedure
1. Do either of the following to open the Work Instruction List page:
Procedure
1. Do either of the following to open the Work Instruction List page:
Work Instruction Step Items configured as semi-automatic are characterized by an Acquire button, that allows the
user to acquire data automatically.
The values entered by the user in a Data Collection Step are saved automatically and the user's name is recorded
(over written if another user confirms with a different value).
When a Work Instruction is opened for the first time in the Work Instruction Execution screen, the status of the
Work Instruction is changed to In Editing, and once all the Sections are completed, it is changed to Completed.
The data within the Work Instruction List page can be automatically refreshed if the auto refresh button is
properly enabled. You can enable or disable the auto refresh option of the Work Instruction List by clicking
button to enable or button to disable the auto refresh. The auto refresh option is disabled by default on page
load. If the auto refresh is disabled, click Apply in Filters panel to view the updated list.
A Work Instruction with state In Editing, can be aborted by clicking the icon.
Procedure
The following procedure describes how to use the Work Instruction List page which can be used as a test
page to verify the final layout and content of the configured Work Instruction.
In a real scenario, the Work Instruction runtime functionality will be embedded in a custom screen by
means of the sitWorkInstructionInstanceViewer widget in the final UI Application.
• A warning icon appears beside the field label whenever the binding of any parameter
resolution fails, and once you click the icon, the list of warning messages will be
displayed.
• The maximum number of digits supported is 15 for the inserted value (applicable only
for Single Input Numeric, Single Input Integer and Single Input Decimal) as the value
might get rounded-off automatically after 15 digits. A warning message appears for the
same when the value exceeds this limit.
• When for a value Low Limit and High Limit are defined, and the value exceeds these
limits, a warning message will inform the user for the same, but it will not prevent the
user from saving the value.
• The latest change to the value of the Data Collection Item is automatically inherited by
the bound Work Instruction Parameter when the Work Instruction is completed, unless
the Parameter is defined as Read Only or its Direction is set to Input.
• Necessary modifications can be made for an acknowledged/confirmed Step by clicking
Re-Edit.
6. If the Electronic Signature Scenario is associated with the Step, click the Sign button and provide the User
Credential along with the comment (optional) to approve or reject the Step. It logs the Electronic Signature
details along with the status and inserted comments in the Audit Trail Records.
The Step will complete only if all the relevant users approve it. If the Step is rejected, then the user
should repeat step 5.
7. Repeat step 5 for each displayed Step, until all sections are executed.
Workflow
1. Add the WITask App to your Solution.
2. Add a Mashup UI Module for WITask App to your Solution.
3. Reconfigure your UI Application by associating the Mashup UI Module added in step 2, as described in
Configuring UI Applications in the Opcenter Execution Foundation Development and Configuration Guide.
4. Redeploy your Solution, as described in How to Deploy a Manufacturing Solution in the Opcenter Execution
Foundation Development and Configuration Guide.
5. Once your Solution has been redeployed, the following operations can be performed:
• Creating a Task Definition of Work Instruction Task Type.
• Creating and Executing a Task of Work Instruction Task Type.
• Executing a Work Instruction Linked to Task.
Once installed, you can select the Extension App and view the following information:
• In the Dependencies tab, the Functional Blocks referenced by the Extension App.
• In the Where Used tab, in which UI Components and Modules the Extension App is used.
For more information, see How to Manage Apps and Extension Apps in the Opcenter Execution
Foundation Development and Configuration Guide.
Once a Task Definition of WorkInstructionTask type is created, all the parameters of the linked Work Instruction
Definition are inherited by the Task Definition. These parameters can be modified or new parameters can be added
to it.
Once the Work Instruction Definition Id and/or Work Instruction Definition Revision of the Task
Definition are modified, all the existing parameters will be replaced by the parameters of the newly linked
Work Instruction Definition.
Procedure
1. Do either of the following to open the Task Definitions page:
Work Instruction Definition Id The Id of the Work Instruction Definition which will be
linked to the Task Definition.
Work Instruction Definition Revision The Revision of the Work Instruction Definition which will
be linked to the Task Definition.
4. Click Save. The new Task Definition is displayed in the Task Definitions page.
5. Click to open the Task Definition page, the linked Work Instruction Definition details are displayed in
Overview tab, and parameters of the linked Work Instruction Definition are listed in the Parameter tab.
Prerequisites
A Task Definition of type Work Instruction Task with fully configured Work Instruction Definition (i.e. having at
least one Section and one Step) should exist.
Procedure
1. Create a Task from a Task Definition of type Work Instruction Task in Task Administration page.
2. Select a task (of type Work Instruction Task) and click the icon that corresponds to the required action.
Icon Action Required starting status Target status Outcome
for WI Task
If the Task Execution screen of a WI Task is closed and its state is In Progress, the Task will be moved
to Paused state.
When a Work Instruction, linked to a Task, is deleted, the status of the Task will be changed to Aborted/
Canceled/Failed according to its current status.
Prerequisites
A Work Instruction linked to a Task should exist.
Procedure
1. Do either of the following to open the Work Instruction List page:
In addition, Failures can be associated with Attachments, representing instructions that help you to better identify
the detected Failures. Attachments can be text files, videos and images and can be created and assigned to Failures.
For more information, see Defect App.
Prerequisites
In Solution Studio, your Solution has been correctly configured installing all required Apps listed in Which Apps are
required for Quality Execution?.
Workflow
1. From the Defect App, create the required Failures and Quality Actions, with the related Sub-Failures and Sub-
Quality Actions (if needed), and associate Failures/Sub-Failures with Quality Actions, as described in How to
Manage Failures and Quality Actions. You can also create Attachments and associate them with Failures.
2. From the Work Instruction App, create the required Quality Characteristics, assign Failures to Quality
Characteristics and create Inspection Definitions, as described in How to Manage Quality Characteristics and
Inspection Definitions.
3. From the Task App, configure an Inspection Task. The system will populate your custom runtime
environment with all required data.
Diagram
The following diagrams show the described workflow. It has been split in different phases to make the
configuration easier.
Phase 1
Phase 2
Phase 3
Defect Required to manage Failures and Quality Actions, with the related Sub-Failures and
Sub-Quality Actions, and Attachments in the engineering phase.
QEMigration Optional. It is required only if you want to migrate existing Failures (created in
platform version 3.0) from Work Instruction App to Defect App.
(Extension of Defect
App)
Work Instruction Required to manage Quality Characteristics and Inspection Definitions in the
engineering phase.
Task Required to manage the Inspection Task Definition and the related Task.
Material Required to manage the Material and the Material Tracking Unit, needed to move
the Material, to be configured in the Task.
BPFlow Optional. It is required only if you want to use the Inspection Task Definition within
a Business Process Flow.
Data Segregation Optional. It is required only if you want to assign segregation tags to Quality
Characteristics, Failures or Quality Actions.
Once you have added the WITask App to your Solution and redeployed the Solution, a dedicated Task Definition,
named Inspection, will be created and displayed in the Task Definition page of the Task App.
From the Inspection Task Definition, you can create a runtime Task in the Task Administration of the Task App.
Once activated, this Task will populate your custom runtime environment with all required data.
Procedure
1. Access the App Management page in Solution Studio.
2. In the Installed tab, click on the WorkInstruction App.
3. In the Extensions tab, click . The system displays the WITask tile.
4. Click in the tile of the WITask Extension App to add it to your solution.
Once installed, you can select the Extension App and view the following information:
• In the Dependencies tab, the Functional Blocks referenced by the Extension App.
• In the Where Used tab, in which UI Components and Modules the Extension App is used.
For more information, see How to Manage Apps and Extension Apps in the Opcenter Execution
Foundation Development and Configuration Guide.
Parameter tab of the Task MTU The Material Tracking Unit required to move
Definition page Materials. For more information, see
Material App.
Context tab of the Task InspectionContext The context of the Inspection Task
Definition page Definition. For more information, see How
to Define Task Context Definitions.
User Field tab of the Task MaterialNId The Material you want to associate with the
Context Definition page Material Tracking Unit.
We suggest that you do not either modify parameters or remove the association between context and Task
Definition to avoid malfunctions.
<Entity type="Siemens.SimaticIT.MasterData.TSK_MS.MSModel.DataModel.TaskContextDe
finition">
<Property name="NId" kind="Plain" value="InspectionContext" />
<Property name="Name" kind="Plain" value="InspectionContext" />
<Property name="Description" kind="Plain" value="Quality Execution Inspection
Context" />
<Property name="ContextEntityType" kind="Plain" value="Siemens.SimaticIT.Operat
ionalData.TSK_OP.OPModel.DataModel.ITaskContext" />
<Property name="TaskDefinitions" kind="ManyToManyReference" />
</Entity>
<Entity type="Siemens.SimaticIT.MasterData.TSK_MS.MSModel.DataModel.TaskContextDe
finitionUserField">
<Property name="NId" kind="Plain" value="MaterialNId" />
<Property name="UserFieldValue" kind="Plain" value="NULL" />
<Property name="UserFieldType" kind="Plain" value="String" />
<Property name="TaskContextDefinition" kind="SingleReferenceToParent">
<LogicalKey entityType="Siemens.SimaticIT.MasterData.TSK_MS.MSModel.DataModel
.TaskContextDefinition">
<Property name="NId" kind="Plain" value="InspectionContext" />
</LogicalKey>
</Property>
</Entity>
<Entity type="Siemens.SimaticIT.MasterData.TSK_MS.MSModel.DataModel.TaskContextDe
finitionUserField">
<Property name="NId" kind="Plain" value="MaterialRevision" />
<Property name="UserFieldValue" kind="Plain" value="NULL" />
<Property name="UserFieldType" kind="Plain" value="String" />
<Property name="TaskContextDefinition" kind="SingleReferenceToParent">
<LogicalKey entityType="Siemens.SimaticIT.MasterData.TSK_MS.MSModel.DataModel
.TaskContextDefinition">
<Property name="NId" kind="Plain" value="InspectionContext" />
</LogicalKey>
</Property>
</Entity>
<Entity type="Siemens.SimaticIT.MasterData.TSK_MS.MSModel.DataModel.TaskDefinitio
n">
<Property name="Revision" kind="Plain" value="1" />
<Property name="Name" kind="Plain" value="Inspection" />
<Property name="Description" kind="Plain" value="Quality Execution Inspection
Task Definition" />
<Property name="TaskDefinitionUI" kind="Plain" value="NULL" />
<Property name="TaskMessageUI" kind="Plain" value="NULL" />
<Property name="TaskTypeNId" kind="Plain" value="TSKType" />
<Property name="NId" kind="Plain" value="Inspection" />
<Property name="TaskUI" kind="Plain" value="Siemens.SimaticIT.WITask/
siemensSimaticitWitaskQualityexecution" />
<Property name="TaskEntityType" kind="Plain" value="Siemens.SimaticIT.MasterDat
a.TSK_MS.MSModel.DataModel.TaskDefinition" />
<Property name="TaskInstanceUI" kind="Plain" value="NULL" />
• Variable Characteristic: contains information on measurements and allowed tolerances, indicating whether a
produced material respects a specific measurement (length, weight, thickness). Example: you are inspecting a
car and checking that the paint thickness is the required one, according to defined tolerances.
• Visual Characteristic: indicates whether visual defects (scuff marks, paint drops) have been detected in a
produced material. Example: you are inspecting a car and checking whether scuff marks are detected in the car
paint.
Audit Trail is displayed in the each page to provide evidence of all the operations that have been carried out on a
specific Quality Characteristic. Its records can be viewed by selecting the Quality Characteristic and clicking
on Audit Trail tab.
Workflow
1. Create one or more of the following Quality Characteristics:
• Attributive
• Variable
• Visual
2. Assign failures to Quality Characteristics.
3. Create Inspection Definitions.
Available Operations
Operation Description
To delete:
Delete
• Quality Characteristics.
• Failures assigned to Visual Characteristics.
Procedure
1. Do either of the following to open the Characteristics page:
Unique The identifier required to distinguish different instances of the same Attributive
Identifier Characteristic revision.
If the value is left blank, the system will automatically set the field with the Id and
Revision pair.
Once the Attributive Characteristic is created, the Unique Identifier value cannot be
modified.
Criticality The importance of the Attributive Characteristic in context of the production or process.
Possible values are:
• Critical
• Main
• Minor
Not OK Description defining that the Attributive Characteristic is not available during the product
Description inspection.
OK Description Description defining that the Attributive Characteristic is available during the product
inspection.
4. Click Save.
Procedure
1. Do either of the following to open the Characteristics page:
Attribute Description
Lower Tolerance Value (Optional) Contains the Lower Tolerance limit of measurements
and inspections.
Upper Tolerance Value (Optional) Contains the Upper Tolerance limit of measurements
and inspections.
4. Click Save.
You can define a Visual Characteristic without specifying any Image (and consequently no values for
neither Rows nor Columns). In this case, the runtime Sample offers to the user the capability to save the
number of each associated failure. Pay attention to an Image which is specified afterwards, when samples
of that specific Visual Characteristic have already been created. In this case, those samples will reflect any
Image at runtime which is specified in Visual Characteristic at engineering level.
Procedure
1. Do either of the following to open the Characteristics page:
Attribute Description
Procedure
1. Access the Characteristics page (see Creating Attributive Characteristics).
2. Select a Quality Characteristic and click .
3. Click the Potential Failures tab and click .
4. In the Potential Failure field, browse a Failure, previously created in the Defect App and click Select.
5. Click Save.
Workflow
1. Add a new Inspection Definition.
2. Create a New Revision of an Inspection Definition.
3. Set an Inspection Definition to Current.
Edit To modify Inspection Definition attributes, apart from the Id, Revision and
Sample Size.
Copy Revision To create a copy of an existing Inspection Definition Revision with a new Id
and Revision.
Unset Current
An additional option to navigate to the Scenario Configurations page is provided on the Inspection
Definitions page. Click Signature Scenario Configurations and navigate to the Scenario
Configurations page where you can create a new Scenario Configuration, edit or delete an existing
scenario.
Procedure
1. Do either of the following to open the Inspection Definitions page:
Sample Size The number of measurements for each sample. The only
supported value is 1.
Attribute Description
Frequency Value The interval at which the Inspection will be executed, when the
Frequency is selected as Part Based. In this case, the field is
mandatory and its lower limit is set to 0.001.
Procedure
1. Do either of the following to open the Inspection Definitions page:
Procedure
1. Do either of the following to open the Instruction Definitions page:
3. Click .
Characteristics If Characteristics is
exported by
& Inspection
setting Include
Definitions
Descendants to False
(Characteristic
Representation)
For more information on the CreateRuntimeChrReprContainer command, see the Commands section of
the CHR_OP Reference Guide.
• Also implement a user interface for Quality Execution in order to perform manual acquisitions. In this case, you
can:
• Integrate the provided UI component and widgets, as described in Implementing a User Interface for
Quality Execution. Your custom user interface will be populated with all required data by the system,
according to the configurations performed in the engineering phase. The operations that you can
perform if you implement the user interface following our guideline are described in What can I do in
Quality Execution Runtime Environment?.
• Implement custom UI Components and UI Modules, as described in Code-Based Development of UI
Components and UI Modules in the Opcenter Execution Foundation Development and Configuration Guide,
or custom Model-Driven UI Modules with the related UI Screens, as described in Model-Driven
Development of UI Modules and UI Screens in the Opcenter Execution Foundation Development and
Configuration Guide.
InspectionAcquisitionContext entity
This entity contains information on the context of the inspection acquisition and it is defined by the following
properties:
Property Description
When acquiring the value, the system creates an InspectionSample entity for each Quality Characteristic.
InspectionSample entity
This entity contains information on the acquired sample of a runtime Inspection Definition and it is defined by the
following properties:
Property Description
AnyViolation Indicates if any violation occurred during the sample acquisition, for
example a defect has been detected.
Possible values are:
• 0: no violation occurred
• 1: a violation occurred.
User The user who performed the last inserted value update.
Property Description
InspectionValue entity
This entity contains information on the measured values of a runtime Inspection Definition and it is defined by the
following properties:
Property Description
User The user who performed the last inserted value update.
VisualDetectedFailure entity
This entity contains information on the Failures detected in a runtime Inspection Definition and it is defined by the
following properties:
Property Description
Property Description
User The user who performed the last inserted value update.
RuntimeCharacteristicRepresentationContainer entity
This entity defines the container of the runtime Inspection Definitions and it is defined by the following property:
Property Description
The characteristicRepr widget reads this entity and displays its content in the runtime page.
RuntimeCharacteristicRepresentation entity
This entity contains information on the runtime Inspection Definitions and it is defined by the following properties:
Property Description
Property Description
PartBasedInspectionExecutionCriteria entity
This entity contains information on the criteria for the Part Based Inspection Execution and it is defined by the
following properties:
Property Description
InspectionExecutionEngine entity
This entity contains information on the Inspection Execution Counter and it is defined by the following properties:
Property Description
Property Description
PartBasedChrReprContainer entity
This entity contains information on the Containers associated with the Inspection Execution Engine and it is defined
by the following property:
Property Description
CandidateSerial entity
This entity contains information on the Candidate Serial associated with Containers of the Inspection Execution
Engine and it is defined by the following property:
Property Description
• In case of Inspection Definition associated with Attributive Characteristic, declare if the Quality Characteristic is
available or not. If not, you can associate the Inspection Definition with the detected Failures, previously
created in the Failure page.
• In case of Inspection Definition associated with Variable Characteristic, verify if the Quality Characteristic
respects the allowed tolerances. If tolerances have not been respected, you can associate the Inspection
Definition with the detected Failures, previously created in the Failure page.
• In case of Inspection Definition associated with Visual Characteristics, if defects have been detected, you need
to specify the number of defects. Then, you can associate the Inspection Definition with the involved Failures,
previously created in the Failure page. If an image have been assigned to the Visual Characteristic in the
engineering phase, you can pinpoint the area where Failures are detected and highlight the Failures with
colored dots. The color will be different, depending on the Failure you are taking into account. To avoid a
misalignment if a new image is loaded in the engineering phase, at runtime the visual image used to defect
acquisition is frozen, after the first defect is detected. In case of the Inspection Definition having frequency as
Part Based and no failures are detected, then you can click on to proceed with the Inspection.
For each Quality Characteristic type, you can see the Attachments associated with the involved Failures (if any).
Attachments help you to better identify the detected Failures.
If the Electronic Signature Scenario is associated with an Inspection Definition, the relevant users must sign off
using the Sign button as evidence that all the operations have been carried out. It logs the Electronic Signature
details along with the status and inserted comments in the Audit Trail Records.
Whenever you perform one operation, the system automatically acquires the related sample.
After a sample is acquired, you can read the values from the involved entities in the data model by implementing
runtime queries via a Service Layer oData query or an SDKLean ProjectionQuery. For information on the runtime
data model, see Quality Execution Data Model Entities.
In addition, you can manage the Inspection Task states.
Diagram
The following diagram shows an example of workflow.
Procedure
1. Integrate the sitTaskContainer widget in your code-based UI Module, as described in sitTaskContainer widget
overview.
2. From Solution Studio, add a Mashup UI Module for Quality Execution to your Solution to integrate the
characteristicRepr widget.
3. Reconfiguring your UI Application by associating the Mashup UI Module added in step 1, as described in
Configuring UI Applications in the Opcenter Execution Foundation Development and Configuration Guide.
4. Redeploy your Solution, as described in How to Deploy a Manufacturing Solution in the Opcenter Execution
Foundation Development and Configuration Guide.
<sit-task-container sit-icv-data="viewDataArray"
sit-icv-options="viewOptionsObject">
</sit-task-container>
For more information on the widget, see also the sitTaskContainer in the UI Framework Reference.
• In case of Inspection Definition associated with Attributive Characteristic, you can declare if the Quality
Characteristic is available or not. For this purpose, the widget provides two radio buttons, one to be selected if
the Quality Characteristic is available and one to be selected if not. The labels of the radio buttons are the ones
defined in the engineering phase (see Creating Attributive Characteristics). If the Quality Characteristic is not
available, the widget provides a button in order to associate the Inspection Definition with Failures, defined in
the engineering phase (see Creating Failures). When clicking this button, the system displays a dialog box where
you can select the involved Failures.
• In case of Inspection Definition associated with Variable Characteristic, you can verify if the Quality
Characteristic respects the allowed tolerance, defined in the engineering phase (see Creating Variable
Characteristics). For this purpose, the widget provides a dedicated field where you insert the Quality
Characteristic quantity. If the tolerance is not respected, a button to associate the Inspection Definition with
Failures, defined in the engineering phase, is available. When clicking this button, the system displays a dialog
box where you can select the involved Failures.
• In case of Inspection Definition associated with Visual Characteristic without any image assigned, if defects have
been detected, you can specify the number of defects. For this purpose, the widget provides a dedicated field
where you insert the defect number and a button to associate the Inspection Definition with Failures, defined in
the engineering phase. When clicking this button, the system displays a dialog box where you can select the
involved Failures.
• In case of Inspection Definition associated with Visual Characteristic with an image assigned, if defects have
been detected, you can both assign Failures and pinpoint the area where Failures are detected, highlighting the
Failures with colored dots. For this purpose, the widget:
• Provides a button to associate the Inspection Definition with Failures. When clicking this button, the
system displays a dialog box where you can select the involved Failures.
• Provides a dedicated field where you can browse the associated Failures.
• Displays the image assigned to the Visual Characteristic where you can highlight the Failures with
colored dots. To insert a colored dot, you need to click on the image. The color will be different,
depending on the Failure you have browsed.
• Displays the warning icon once the Quality Execution is completed in case of Inspection Definition
having frequency as Part Based. In this case you need not to carry out any further inspection.
• Displays the button to proceed with the inspection in case of the Inspection Definition having
frequency as Part Based and no failures are detected.
For each Quality Characteristic type, the widget also provides both the details of the Inspection Definition you are
taking into account and a button to see the Attachment associated with the involved Failures (if any). Attachments
help you to better identify the detected Failures.
The widget also provides the Sign button where the User Credentials along with the comment (optional) are
provided to approve that all the operations have been carried out (see Electronic Signature).
The widget is embedded by adding the dedicated Mashup UI Module containing the Quality Execution UI
Component to your Solution. The following is the related HTML code snippet:
For more information on the widget, see also the characteristicRepr in the UI Framework Reference.
Legend
• Blue: user interface section provided by the sitTaskContainer widget
• Yellow: user interface section provided by the characteristicRepr widget
Procedure
1. Create a Mashup UI Module. For more information on this step, see Creating a Mashup UI Module in the
Opcenter Execution Foundation Development and Configuration Guide.
2. Click within the tile of the newly created Mashup UI Module.
3. In the UI Screen page, select the screen you want to configure and click the arrow icon .
4. Click on the UI Components tab in the toolbox on the right-hand side and click on
the Siemens.SimaticIT.WITask.
5. Drag and drop the Quality Execution onto the editor.
6. Click to save the Mashup UI Module.
7. Navigate to the Mashups page and select the Mashup UI Module which you configured in the above steps. For
more information on this step, see Designing Mashup UI Modules in the Opcenter Execution
Foundation Development and Configuration Guide.
8. Click to generate the Mashup UI Module.
UpdatePartBasedInspectionExecutionCounter API
The UpdatePartBasedInspectionExecutionCounter API is exposed by Quality Execution to declare a Produced
Quantity. This API updates the InspectionExecutionEngine entity and calculates the
CharacteristicRepresentationRuntimeNumber and ActualCounter properties based on the declared Produced
Quantity. After calculation if the Quality Execution is needed, then the QualityInspectionExecutionNeeded event
is triggered. This API is defined by the following parameter:
Property Value
Category QualityInspectionExecutionNeeded
Module WorkInstruction
Tag QualityInspectionExecution
Topic WorkInstructionQE
UserField1 <Frequency>
CreateCandidateSerial API
This API creates the Candidate Serial on which the Inspection will be executed. The API is defined by the following
parameter:
DeleteCandidateSerial API
This API deletes the Candidate Serial on which the Inspection will be executed. The API is defined by the following
parameter:
Worflow
1. Export data from the runtime database.
2. (Optional) Modify the exported data.
3. Import data to the runtime database.
Bear in mind that to correctly perform the download of logs and export packages of any App, you must
configure the Site Settings of Chrome in order to support multiple downloads.
For more information about the Apps that support the Export Import functionality and the import sequence of the
related entity data, see the links below:
Label App Exporting and Importing Label Type and Printer Data
Business Process Flow App Exporting and Importing Process Definition Data
Golden rules
• The export package always contains the records of the base entity, including its facets and the entities in
composition. If you select the Include Descendants export option, the child entities (i.e. the entities defined as
Source in Project Studio) will be also exported.
• In case of promotion of scalar fields to navigation properties at App level, if the Export operation is performed
starting from the customized App, the Include Descendants export option will take into account these relations
when they are defined across the same domain. If these relations are defined across different domains, these
references will be just resolved in the target database during the Import operation (see Modifying the Exported
Data).
• For the overview of the export files see Modifying the Exported Data
Prerequisites
• If the runtime database is on SQL Server, the Export functionality requires the BCP Utility on each Foundation
host; see Prerequisites for Opcenter Execution Foundation Hosts in the Opcenter Execution
Foundation Installation Guide for details.
• The ExportImportAdmin UI Module must be associated to the UI Application whose data you want to export (see
Selecting UI Modules in the Opcenter Execution Foundation Development and Configuration Guide).
Procedure
1. In the desired App page, select the item to export and then click Export : the Export side panel opens.
If the Data Segregation is enabled, a warning message indicates that only the entities on which you have
visibility, based on your assigned data segregation tags, will be exported.
2. (Optional) select the Include Descendants check box to export the children relationships of the selected entity
and click Export.
3. Do either of the following to open the Export Import Administration page:
• click the Export Import Administration home tile.
• click Export Import Administration in the side menu bar and click Export Import Administration
4. Select the exported package, click Download and select Download Package: the zip file is downloaded
containing .DAT and .FMT files for each entity and a manifest file. For more information on the package content,
see Modifying the Exported Data.
To prevent unauthorized users from tampering with the exported packages, strict measures should be
taken to guarantee that the exported information is correctly and securely stored until it is re-imported.
On the existing export packages you can perform the following operations in the Export Import Administration
page, by selecting the operation type from the grid and clicking the proper icon.
The page displays the list of operations performed (Export or Import) and the related additional details such as
Operation Status, Application Name or Solution Name.
Operation Description
Details To display the operation details such as Source, Operation type, App name and
Solution name. The Operation Status description informs that this operation
cannot be executed.
Download Log To download the log corresponding to the export package in status Error or
Completed.
Download Package To download the export package in status Completed in a zip file.
To set the operation to Error and freeze it, and create a new operation with the
Recovery operation
same data of the selected one.
Golden Rules
Operation Golden Rule
Add/Modify Entity References • All physical references (foreign keys) to other entities must
be expressed as AId values (and not as Id values). AId values
will be recalculated to Id values during the import operation.
The referenced entities (parent entities), along with their
logical keys (AId value), must be present on the database
before you import an entity (source entity).
• If entities have logical references to other entities (simple
string references to entity logical keys), there are no
constraints on the import sequence of the related entities,
but you must be aware that before using applications at
runtime, the imported data must be consistent with the
source data model.
Manage Value type of reference type All references to other entities must be expressed as AId values
(and not as Id values). AId values will be recalculated to Id values
during the import operation.
Manage Scalar fields promoted to In case of promotion of scalar fields to navigation properties at
navigation properties App level, if the Export operation was performed starting from
the customized App and the relations are defined across
different domains, all references to other entities must be
expressed as AId values (and not as Id values). AId values will be
recalculated to Id values during the import operation.
Remove records If you attempt to remove a record from a base entity .dat file, no
changes will be applied to the target database.
Add/Remove Facets • If you remove a record from a facet .dat file, the facet record
will be removed.
• If you import a base entity with facets, the imported facets
will overwrite the entity facets in the target database.
Manage project-specific fields (e.g. The IsDefault property value of the source database is preserved
IsDefault) in the target database. Any configuration conflict must be
manually handled in the target environment. For example, if
there are two entities that are set as default, you must manually
modify one of the two.
Manage Segregation Tags The Segregation Tags that are associated to each entity are
contained in a separate file.
Manage Attachments You cannot add or modify attachments. You can only modify the
associations between entities and existing attachments.
Procedure
1. Extract files from the exported zip and open the .dat file corresponding to the entity model whose records you
want to modify (see description below).
2. Apply the required changes by adapting the examples below regarding the following use cases:
• Adding a new record
• Adding a new record with relations to other entities
• Modifying a record
3. Save the file.
4. Zip all extracted files to a new zip file, containing exactly the same folder structure as the exported one. The file
is ready to be imported.
File/Folder Description
Manifest.json File for internal use containing information about the exported package.
File/Folder Description
Format Folder containing internal files. These files are format files which must be modified only if
you need to align the exported schema to the current data model.
EquipmentType.dat
1 bb0345c1-26f5-4f46-9d90-fa0536349a49 bb0345c1-26f5-4f46-9d90-fa0536349a49 0 0 0
Siemens.SimaticIT.MasterData.EQU_MS.MSModel.DataModel.EquipmentType
EquipmentType_Siemens_SimaticIT_MasterData_EQU_MS_MSModel 2020-02-13 10:14:44.2265273
+00:00 2020-02-13 10:17:49.1842456 +00:00 0 0 EquipmentNId3 EquipmentName3
EquipmentDescription3 0 Enterprise
To add a new EquipmentTypeProperty record, add a line to the EquipmentTypeProperty.dat file and take note
of the following relevant fields within the example:
• AddedOrModified = 1
• Id = AId = unique Guid
• NId, Property Value = free fields
• EquipmentType_Id = EquipmentType AId value (read from the EquipmentType.dat package, e.g. 83453795-
b23e-40ea-acb1-eb31fe3fa783 in the example below)
EquipmentTypeProperty.dat
0 1DD59F0B-4A4E-EA11-8458-005056013851 A8DD9B0D-EE1D-BED4-4FBE-9F9D5F2D6A12 0
0 0 Siemens.SimaticIT.MasterData.EQU_MS.MSModel.DataModel.EquipmentTypeProperty
EquipmentTypeProperty_Siemens_SimaticIT_MasterData_EQU_MS_MSModel 2020-02-13
10:17:32.9532113 +00:00 2020-02-13 10:17:32.9532113 +00:00 0 0
Equipment1Property1 1 1 5 C1468276-BD4D-2EF6-3444-8E7B8F9C3582
1 30df6eba-7369-44e6-9d92-7627edf01804 30df6eba-7369-44e6-9d92-7627edf01804 0
0 0 Siemens.SimaticIT.MasterData.EQU_MS.MSModel.DataModel.EquipmentTypeProperty
EquipmentTypeProperty_Siemens_SimaticIT_MasterData_EQU_MS_MSModel 2020-02-13
10:17:49.1842456 +00:00 2020-02-13 10:17:49.1842456 +00:00 0 0
Equipment1Property3 true 0 7 83453795-b23e-40ea-acb1-eb31fe3fa783
EquipmentType.dat
0e 83453795-b23e-40ea-acb1-eb31fe3fa783 83453795-b23e-40ea-acb1-eb31fe3fa783 0
0 0 Siemens.SimaticIT.MasterData.EQU_MS.MSModel.DataModel.EquipmentType
EquipmentType_Siemens_SimaticIT_MasterData_EQU_MS_MSModel 2020-02-14 11:42:
03.9266667 +00:00 2020-02-14 11:42:03.9266667 +00:00 0 0 Equipment3 Equipment3
Equipment3 0 Enterprise
Example for a new record with n-m (many-to-many) relationship with another
entity
The example refers to a many-to-many relationship between the EquipmentGroupConfiguration source (child)
entity and the EquipmentConfiguration target (parent) entity.
The export package of the EquipmentConfiguration entity (with descendants) contains 3 data files which are
relevant for this use case:
• EquipmentGroupConfiguration.dat file containing the EquipmentGroupConfiguration entity records with
the AId values that you will use in the relation
• EquipmentConfiguration.dat file containing the EquipmentConfiguration entity records with the AId values
that you will use in the relationship
• EquipmentGroupConfiguration-To-EquipmentConfiguration.dat file containing the references (foreign keys)
both to the EquipmentConfiguration and to the EquipmentGroupConfiguration entity
In this use case, the relationship is not stored in the source entity file (as for the one-to-many relationship) but it is
stored in the EquipmentGroupConfiguration-To-EquipmentConfiguration.dat separate file.
To add a new EquipmentConfiguration record with its relationship you must modify the following two files instead
of one:
• In the EquipmentConfiguration.dat file add a line and take note of the following relevant fields within the
example
• AddeOrModified = 1
• Id = AId = unique Guid
• NId = free field
• In the EquipmentGroupConfiguration-To-EquipmentConfiguration.dat file, add a record with
• AddedOrModified = 1
EquipmentConfiguration.dat
1 fbb16cb8-b384-4369-8639-d5caffd746a6 fbb16cb8-b384-4369-8639-d5caffd746a6 0
0 0 Siemens.SimaticIT.MasterData.EQU_MS.MSModel.DataModel.EquipmentConfiguration
EquipmentConfiguration_Siemens_SimaticIT_MasterData_EQU_MS_MSModel 2020-02-14
11:34:24.5133333 +00:00 2020-02-14 11:34:24.5133333 +00:00 0 0
EquipmentConfiguration3 EquipmentConfiguration3 EquipmentConfiguration3
Equipment1 Enterprise
EquipmentGroupConfiguration
0 D202F62A-174F-EA11-8458-005056013851 89E2FF49-E4C8-2F85-656E-46A64EA2FBBC 0
0 0
Siemens.SimaticIT.MasterData.EQU_MS.MSModel.DataModel.EquipmentGroupConfiguration
EquipmentGroupConfiguration_Siemens_SimaticIT_MasterData_EQU_MS_MSModel 2020-02-14
10:45:52.1879207 +00:00 2020-02-14 11:34:24.5133333 +00:00 0 0
EquipmentGroupConfiguration1 EquipmentGroupConfiguration1
EquipmentGroupConfiguration EquipmentGroupConfiguration
1 044b7712-cc0b-42e1-9509-5753d89427ed 044b7712-cc0b-42e1-9509-5753d89427ed 0
0 0
Siemens.SimaticIT.MasterData.EQU_MS.MSModel.DataModel.EquipmentGroupConfiguration
EquipmentGroupConfiguration_Siemens_SimaticIT_MasterData_EQU_MS_MSModel 2020-02-14
10:45:52.1879207 +00:00 2020-02-14 11:34:24.5133333 +00:00 0 0
EquipmentGroupConfiguration2 EquipmentGroupConfiguration2
EquipmentGroupConfiguration EquipmentGroupConfiguration
EquipmentGroupConfiguration-To-EquipmentConfiguration.dat
0 5ED42544-3085-44FE-B4F5-F9AB26A27943 2FB4E228-BA3B-7441-A81E-121C5213D6ED 0
0 0
Siemens.SimaticIT.MasterData.EQU_MS.MSModel.DataModel.EquipmentGroupConfiguration
EquipmentGroupConfiguration_Siemens_SimaticIT_MasterData_EQU_MS_MSModel 2020-02-14
13:28:37.8500000 +00:00 2020-02-14 13:28:37.8500000 +00:00 0 0
EquipmentGroupConfiguration2 EquipmentGroupConfiguration2
EquipmentGroupConfiguration EquipmentGroupConfiguration
1 5ED42544-3085-44FE-B4F5-F9AB26A27943 2FB4E228-BA3B-7441-A81E-121C5213D6ED 0
0 0
Siemens.SimaticIT.MasterData.EQU_MS.MSModel.DataModel.EquipmentGroupConfiguration
EquipmentGroupConfiguration_Siemens_SimaticIT_MasterData_EQU_MS_MSModel 2020-02-14
13:28:37.8500000 +00:00 2020-02-14 13:28:37.8500000 +00:00 0 0
EquipmentGroupConfiguration2 EquipmentGroupConfiguration2
EquipmentGroupConfiguration New Description EquipmentGroupConfiguration
To prevent unauthorized users from tampering with the exported packages, strict measures should be
taken to guarantee that the exported information is correctly and securely stored until it is re-imported.
Golden rules
• In case of physical references (references via database foreign key), parent entities (i.e. the entities that have
been defined in Project Studio as the End side of the navigation) must be present on the database before you
import the required entity.
• The Import operation does not perform any checks on the custom logic and it is your responsibility to preserve
application data integrity. For example, in case of logical references towards other entities (for example, textual
references to logical keys which are managed at application level), there are no constraints on the import
sequence but in order to properly use applications at runtime you must be sure that the imported data is
consistent with the source data model.
• If you need to import packages that were exported in 3.x version and that contain entities which refer to
obsolete/removed entities, you must first apply manual changes to the package format files (fmt files) in order
to align the data model schema, before you can correctly perform the import operation.
Prerequisites
• Source database and target database must be aligned for both schema and collation.
• If the runtime database is on SQL Server, the Import functionality requires the BCP Utility on each Foundation
host; see Prerequisites for Opcenter Execution Foundation Hosts in the Opcenter Execution
Foundation Installation Guide for details.
• The user belongs to the SysAdmin role.
• You have associated the ExportImportAdmin UI Module to the UI Application containing the Apps whose data
you want to import. See Selecting UI Modules in the Opcenter Execution Foundation Development and
Configuration Guide
• You have previously exported the required data.
Procedure
1. Do either of the following to open the Export Import Administration page:
• click the Export Import Administration home tile.
• click Export Import Administration in the side menu bar and click Export Import Administration
2. From the Export Import Administration page, click Import package in the side menu bar: the
Import Package side panel opens.
3. In the Package box, click Browse , select the export package to be imported.
4. Set the following parameters or leave the check-boxes disabled (default), depending on your needs:
Parameter Description
Keep Package Value for Locked Flag If selected, the value of the system field IsLocked,
included in the export package, will be copied to the
target database.
If left disabled (default):
• If you are importing new data, the system will
reset the value of the system field IsLocked in
the target database.
• If you are importing data already existing in the
target database, the system will maintain the
current value of the system field IsLocked in
the target database.
Parameter Description
Keep Package Value for Frozen Flag If selected, the value of the system field IsFrozen,
included in the export package, will be copied to the
target database.
If left disabled (default):
• If you are importing new data, the system will
reset the value of the system field IsFrozen in
the target database.
• If you are importing data already existing in the
target database, the system will maintain the
current value of the system field IsFrozen in
the target database.
Keep Package Value for Current Flag If selected, the value of the system field IsCurrent,
included in the export package, will be copied to the
target database.
If left disabled (default):
• If you are importing new data, the system will
reset the value of the system field IsCurrent in
the target database.
• If you are importing data already existing in the
target database, the system will maintain the
current value of the system field IsCurrent in
the target database.
5. Click Import.
6. If you want to remove a previously selected package, click .
7. (Optional) In order to maintain query performances, rebuild the indexes manually as described in Index
Management in Opcenter Execution Foundation of Opcenter Execution Foundation Development and
Configuration Guide.
The Export Import Administration page displays a new row containing information about the just performed
import operation.
Icon Description
To display the operation details such as Source, Operation type, App name and Solution name.
Details
Icon Description
To download the log corresponding to the import operation in status Error or Completed. The
download folder depends on the browser settings.
Download
Log The log file provides you with several information such as the entity domain, the target database
tables, the number of imported rows and so on.
If you have imported referenced entities and there are any missing referenced logical keys in the
database, an Invalid Object Navigation error is returned. To properly import referenced entities,
you should follow the import procedures documented for each Foundation Apps.
To set the operation to Error and freeze it, and create a new operation with the same data of the
selected one.
Recovery
operation
• If the target environment has been configured with an auto numbering pattern that includes counters,
and the target entities are subject to auto numbering rules, bear in mind that the following manual
steps could be required:
a. Remove any counters from the auto numbering configuration.
b. Create a new counter starting from the number of the last used imported entity's seed.
• If you have imported entities associated with segregation tags, their segregation tags will be visible
after you log out and log in.
Procedure
To clean data related to the export or import operations from the <prefix>_UA_sys database, you must manually
execute the following SQL Server/Oracle Stored Procedures directly on the <prefix>_UA_sys database:
Procedure
To change the maximum age for the cache to live for an UI application follow the steps as listed below:
1. Open the web.config file from Internet Information Services (IIS).
a. Expand the Default Web Site > sit-ui > runtime node.
b. Right-click<UI Application Name> and select the Manage Folder > Explore to open the UI Application
main page.
c. Edit the web.config file in a text editor.
2. Provide a value to the attribute cacheControlMaxAge available in the xml tag clientCache, the value must be in
the format [-][d.]hh:mm:ss. The validity stated here applies to all the cached file types (currently configured
for: .js, .json, .css, .svg, and .png) for the particular UI application whose web.config will be modified.
For Example,
• If you want to set 1 hour as the time to live for cache in the client machine, then you should provide the
value as 01:00:00
• For 90 days you should provide the value as 90.00:00:00
• For 6 hours you should provide the value as 06:00:00
• For 1 minute you should provide the value as 00:01:00
3. If you want the changes on cacheControlMaxAge to be set immediately. Open Developer Tools in a web
browser and Empty Cache and Hard Reload the UI Application. Otherwise, the new validity will be in effect
once the previous validity has expired.
Nevertheless, the value for cacheControlMaxAge will be reset to the default value once a new version for the
solution is deployed.
Provided the web.config file for an UI application was modified with a change in the
cacheControlMaxAge and the UI content was not accessed from any browser, if there was a solution
deployment meanwhile you access the UI, then the latest files from the server will be loaded with the
value reset for the cacheControlMaxAge.