Creating a Transformation Configuration
The following section provides some fundamentals from AutomationML required for creating the configurations.
-
Role classes: collected within role class libraries. A role class describes an abstract functionality without defining the underlying technical implementation, thus, it has to be seen as an indicator for the semantics of an object.
-
Interface classes: An interface class describes an abstract relation an element can have to other elements or to information not covered within the CAEX-based model. Each AutomationML user can define new interface classes following its use cases and needs for data exchange.
AutomationML only defines some rules for interface class definition. Each interface class can have attributes. These attributes have to be used and filled with values in each occurrence of an instance of the interface class.
-
System unit classes: System unit classes can be considered as reusable system components or as templates for system modeling depending on the point of view.
Usually, they reflect either a vendor-dependent library of components or devices, or a set of templates used within an engineering tool to structure discipline-dependent model information.
-
The Instance-Hierarchy with its integrated hierarchy of InternalElements. It represents the actual engineering data to be modeled by CAEX following an object-oriented and hierarchical structure.
-
Placeholders: The list of placeholder variables that are to be replaced in the configuration.
-
from_xPath: Navigate xPath to this XML node in AML file.
-
assetInformation: The information relevant for populating the "assetInformation" element of the AAS (for example, assetKind and globalAssetId).
-
assetShell: Information about the "AssetAdministrationShell" element of an AAS json, such as the Identification and IdShort elements.
-
submodels: An array, each element of which contains the information for creating individual submodels that describe a domain or use-case of an asset.
The assetInformation element describes the meta information about the represented asset including its globalAssetId.
assetShell object: The model short description and the model internalId are defined by this object.
The idGeneration defines the ID of the assetShell that is mapped to the Model internalId.
The idea of having submodels is that one can reuse them as templates in various AML files to extract information in a standardized way.
-
from_xpath: the path in the XML node structure where the navigation from XPath should start (selecting the current node in the xml).
-
semanticId_ref: this is the mapping key to the template object in SAP Asset Intelligence Network.
-
idGeneration: define the internal ID of the template object.
-
submodelElements: An array containing the child objects of the template object.
A submodelElementCollection contains a list of SubmodelElements. A SubmodelElement can be either another SubmodelElementCollection (will be mapped to another NestedStructure or AttributeGroup) or a dataelement like a Property (mapped to an attribute in SAP Asset Intelligence Network).
The mapping of Properties to individual XML elements of the AutomationML file, takes place through the Properties elements. The configuration of a property element below instructs that the value of the AML Attribute Element with "Name = Manufacturer".
Identification Submodels:
-
The transformation config json must contain a submodel with following elements:
-
Submodel
-
Semantic Id: http://www.sap.com/ain/identificationData

-
Internal Id: IdentificationData
-
-
A submodelElementCollection
-
Semantic Id: http://www.sap.com/ain/identificationData/collection

-
Internal Id: IdentificationData
-
-
A Property
-
Semantic Id: 0112/2///61987#ABA565
-
Internal Id: Manufacturer
-
-
Placeholders
Placeholders are variables that are used in the configuration file that are to be filled during runtime. They are used to pass information such the asset name from the UI, in order to make the configuration reusable for different contexts and AML files.
The placeholders are declared in the root element of the configuration json.