diff --git a/content/en/docs/partners/siemens/teamcenter-connector/_index.md b/content/en/docs/partners/siemens/teamcenter-connector/_index.md new file mode 100644 index 00000000000..d2a95dc6b65 --- /dev/null +++ b/content/en/docs/partners/siemens/teamcenter-connector/_index.md @@ -0,0 +1,41 @@ +--- +title: "Teamcenter Connector" +url: /partners/siemens/teamcenter-connector/ +weight: 30 +description: "Describes the configuration and usage of the Teamcenter Connector, which allows the digital management of product and manufacturing data in the context of a product lifecycle." +--- + +## Introduction + +Teamcenter is a virtual gateway to your company’s product information, connecting all who need to collaborate with product and process knowledge. Teamcenter enables you to digitally manage your product and manufacturing data in the context of the product life cycle. + +Teamcenter Connector for Mendix enables Mendix developers to access product data from Teamcenter or create and modify product data in Teamcenter. + +This documentation provides guidance on using Teamcenter Connector for Mendix. It assumes that you are familiar with Mendix concepts, processes, and terminology for application development. + +## Prerequisites + +To use Teamcenter Connector for Mendix, you need the following: + +* Appropriate Teamcenter licenses +* A running and accessible Teamcenter instance. The minimum Teamcenter version supported is version 2406. +* The minimum Teamcenter X version supported is version 2506. +* The minimum Teamcenter Security Services version supported is version 2406 and above. + +## Downloading Teamcenter Connector, the Sample Application, and Dependencies + +You must download the Teamcenter Connector for Mendixapp, the sample application, and the dependencies. + +Teamcenter Connector for Mendix is available on the [Mendix Marketplace](https://marketplace.mendix.com/link/component/111627). To add the connector to your project: + +1. Open your Mendix Modeler project. +2. Click the Marketplace icon on the menu bar to access the Mendix Marketplace. +3. Search for or navigate to the Teamcenter Connector and click the link. +4. On the Teamcenter Connector page, click **Download**. +5. In the **Import Module** dialog box, click **Import**. + The connector is imported in your project in the App Store Modules folder. +6. Similarly, download the following applications from the Mendix Marketplace: + + * (Optional) Siemens PLM Software UI Resources. This application should be in the project that contains the Teamcenter Connector. + * (Optional) Teamcenter Connector Sample Application. The Sample Application contains sample microflows. You do not require to download the Sample Application in the same project that also contains the Teamcenter Connector. + diff --git a/content/en/docs/partners/siemens/teamcenter-connector/configuring-connection.md b/content/en/docs/partners/siemens/teamcenter-connector/configuring-connection.md new file mode 100644 index 00000000000..c0b1dd28f6f --- /dev/null +++ b/content/en/docs/partners/siemens/teamcenter-connector/configuring-connection.md @@ -0,0 +1,92 @@ +--- +title: "Configuring the Connection to Teamcenter" +url: /partners/siemens/configuring-connection/ +weight: 1 +description: "Describes the connection configuration steps for Teamcenter." +--- + +## Configuring the Connection to Teamcenter + +To help administrators configure the connection to Teamcenter, the Teamcenter Connector contains configuration microflows and pages. To configure the connection to Teamcenter, the Mendix administrator must do the following: + +1. In the navigation, update the Default home page to connect to the **ExecuteAdminLogin** microflow. + + {{< figure src="/attachments/partners/siemens/teamcenter/image005.png" alt="" class="no-border" >}} + +2. In navigation, update the **Role-based home pages** to connect to **AdminLogin** and **UserLogin** microflows based on the role. + + {{< figure src="/attachments/partners/siemens/teamcenter/image010.png" alt="" class="no-border" >}} + +3. In navigation, update the **Home** menu items to include the **ExecuteAdminLogin** and **ExecuteLogin** microflows. + + {{< figure src="/attachments/partners/siemens/teamcenter/image011.png" alt="" class="no-border" >}} + +4. In the security page of your project, add the respective administrator and user roles in the **User roles** tab. + + {{< figure src="/attachments/partners/siemens/teamcenter/image012.png" alt="" class="no-border" >}} + +5. Run your project. The browser displays the AdminHomePage. + + {{< figure src="/attachments/partners/siemens/teamcenter/image006.png" alt="" class="no-border" >}} + +6. Click the **TEAMCENTER CONFIGURATIONS** tile in the web browser. + +7. Click **New** in the Teamcenter Environment Configuration page. + +8. In the **Add Teamcenter Configuration** dialog box, specify the required fields and click **Save**. + +9. Once you have updated the Teamcenter configuration information, log on to Teamcenter using the **TEAMCENTER LOGIN** icon. + +In the previous steps, the configuration shows the Home page. If you want to customize the page that you finally see, create a new microflow that contains the **ExecuteAdminLogin** and the **ExecuteLogin** microflows. Update your **Default home page** and the **Home** menu item to connect to the microflow you created. + +In the security page of Teamcenter Connector, select the appropriate permissions for the new microflows you created. + +The Teamcenter Sample Application has a microflow called **MyAdminLogin** that uses the **ExecuteAdminLogin** service. Refer to that microflow for help. + +{{< figure src="/attachments/partners/siemens/teamcenter/image009.png" alt="" class="no-border" >}} + +## Configuring the Connection to Teamcenter with SSO {#teamcenter-sso} + +To configure the connection to Teamcenter with SSO, you must setup the Teamcenter connection, update Mendix settings, and specify proxy details in the host file. + +1. In the navigation, update the Default home page and the **Home** menu item to connect to the **ExecuteAdminLogin** microflow. + + {{< figure src="/attachments/partners/siemens/teamcenter/image005.png" alt="" class="no-border" >}} + +2. Add the **SSO_RegisterRequestHandlers** microflow to your startup microflow. You can perform this step in the **Runtime** tab of the **Settings** panel. + + {{< figure src="/attachments/partners/siemens/teamcenter/image007.png" alt="" class="no-border" >}} + +3. Add any Teamcenter SSL certificates to the **Certificates** tab. + +4. Specify the proxy host details in the host file. + + {{< figure src="/attachments/partners/siemens/teamcenter/proxy-host-details.png" alt="" class="no-border" >}} + +5. Run your project. The browser displays the AdminHomePage. + + {{< figure src="/attachments/partners/siemens/teamcenter/image006.png" alt="" class="no-border" >}} + +6. Click the **TEAMCENTER CONFIGURATIONS** tile. + +7. Click **New** in the Teamcenter Environment Configuration page. + +8. In the **Add Teamcenter Configuration** dialog box, specify the required fields: + + * **SSO Login Server URL** + Specify the SSO Login Server URL in this format: `http:///login-service/weblogin/login_redirect` + Example: `http://10.134.57.23/ssol/weblogin/login_redirect` + + * **SSO Identity Server URL** + Specify the SSO Identity Server URL in this format: `http://` + Example: `http://10.134.57.23/ssoi` + + * **Teamcenter Application ID** + Provide the existing Teamcenter Application ID from the Teamcenter Security Services Identity Service configuration. + + * **Mendix Application ID** + Create a new **Application Id** for your Mendix app in the Teamcenter Security Services Identity Service configuration and enter your Mendix application root URL in the Identity Service **Application Root URL** field. + This action is required to redirect the browser to your Mendix app after successful authentication with Teamcenter Security Services. + For more information about using SSO with Teamcenter, see the [Teamcenter Security Services](https://docs.sw.siemens.com/doc/282219420/PL20241125556497283.tss00001/xid373993) help. + + {{< figure src="/attachments/partners/siemens/teamcenter/tc_connection_configuration.png" alt="" class="no-border" >}} diff --git a/content/en/docs/partners/siemens/teamcenter-connector/designing-applications.md b/content/en/docs/partners/siemens/teamcenter-connector/designing-applications.md new file mode 100755 index 00000000000..fab4c8a3f7a --- /dev/null +++ b/content/en/docs/partners/siemens/teamcenter-connector/designing-applications.md @@ -0,0 +1,58 @@ +--- +title: "Designing Mendix Applications with Single or Multiple Active Teamcenter Configurations" +linktitle: "Designing Mendix applications" +url: /partners/siemens/designing-applications/ +weight: 3 +description: "Describes the process of designing Mendix application with single of multiple active Teamcenter configurations." +--- + +## Introduction + +Ensure that you perform the following steps when designing your Mendix applications, depending on single or multiple Teamcenter configurations. + +### Applications with a Single Active Teamcenter Configuration + +* Ensure that the value of the **EnableMultipleActiveConfig** constant in Mendix is **False**. + + {{< figure src="/attachments/partners/siemens/teamcenter/image017.png" alt="" class="no-border" >}} + +* Ensure that the value of the **ConfigurationName** parameter in the java action to be used is empty. + +### Applications with Multiple Active Teamcenter Configurations + +* Ensure that the value of the **EnableMultipleActiveConfig** constant in Mendix is **True**. +* Note down the value of the configuration name when designing the Mendix application with multiple Teamcenter configurations. +* Ensure that the value of the **ConfigurationName** parameter in the java action has the configuration you want to use. +* The configuration name can be passed dynamically or can be hardcoded. If it is hardcoded, ensure that the configuration name after application deployment is the same as that in the **ConfigurationName** parameter in the java actions. +* To pass the configuration dynamically, add the logic to the application using microflows or java actions. + +### Creating Configurations that Contain Teamcenter Connection Information + +1. Run your project. +2. Go to the Home page. +3. Click the **TEAMCENTER CONFIGURATIONS** tile in the web browser. + {{< figure src="/attachments/partners/siemens/teamcenter/image006.png" alt="" class="no-border" >}} +4. To create a new Teamcenter configuration, click **New**. + {{< figure src="/attachments/partners/siemens/teamcenter/image015.png" alt="" class="no-border" >}} +5. In the **Add Teamcenter Configuration** dialog box, specify the required fields and click **Save**. +6. If you have enabled SSO, ensure that you [specify the SSO information](/partners/siemens/configuring-connection/#teamcenter-sso). + +### Setting a Teamcenter Configuration as Active + +1. Run your project. +2. Go to the Home page. +3. Click the **TEAMCENTER CONFIGURATIONS** tile in the web browser. + {{< figure src="/attachments/partners/siemens/teamcenter/image006.png" alt="" class="no-border" >}} +4. Select a Teamcenter configuration that you want to set as active or inactive and click **Toggle Active**. + {{< figure src="/attachments/partners/siemens/teamcenter/image015.png" alt="" class="no-border" >}} + +If you have setup multiple Teamcenter configurations, you can choose a specific Teamcenter configuration as follows: + +1. Run your project. +2. Go to the Home page. +3. Click the **TEAMCENTER CONFIGURATIONS** tile in the web browser. + {{< figure src="/attachments/partners/siemens/teamcenter/image006.png" alt="" class="no-border" >}} +4. From the configurations list, click **Login** against the configuration that you want to use. + {{< figure src="/attachments/partners/siemens/teamcenter/image016.png" alt="" class="no-border" >}} +5. In the page that appears, log on to the chosen configuration. + diff --git a/content/en/docs/partners/siemens/teamcenter-connector/documentation-references.md b/content/en/docs/partners/siemens/teamcenter-connector/documentation-references.md new file mode 100644 index 00000000000..a196d376bb7 --- /dev/null +++ b/content/en/docs/partners/siemens/teamcenter-connector/documentation-references.md @@ -0,0 +1,18 @@ +--- +title: "Documentation References" +url: /partners/siemens/references/ +weight: 7 +description: "Provides information on obtaining additional documentation." +--- + +## Accessing the Teamcenter Connector Services JAVA Actions Documentation + +Teamcenter Connector services are provided through JAVA actions. + +You can refer to the Teamcenter Connector for Mendix - Domain Model, Microflows, and Services Reference documentation on Support Center. + +## Generating the SOA API Documentation Used in Active Workspace + +You can generate SOA APIs that are used in Active Workspace by running the genSoaApi script. + +For more information, refer to the [Active Workspace Customization documentation](https://docs.sw.siemens.com/doc/282219420/PL20241125556497283.Configuration/xid1211135). \ No newline at end of file diff --git a/content/en/docs/partners/siemens/teamcenter-connector/services-included.md b/content/en/docs/partners/siemens/teamcenter-connector/services-included.md new file mode 100755 index 00000000000..deacf681827 --- /dev/null +++ b/content/en/docs/partners/siemens/teamcenter-connector/services-included.md @@ -0,0 +1,59 @@ +--- +title: "Using Teamcenter Services Included with the Teamcenter Connector" +linktitle: "Using Included Teamcenter Services" +url: /partners/siemens/using-included-services/ +weight: 5 +description: "Describes how to use Teamcenter services that are included in the connector." +--- + +## Introduction + +Teamcenter services are provided through Java actions. You can see the available services in the **Teamcenter** section of the **Toolbox**. + +{{< figure src="/attachments/partners/siemens/teamcenter/image019.png" alt="" class="no-border" >}} + +## Using Teamcenter Services through the Teamcenter Connector: Process Workflow + +{{< figure src="/attachments/partners/siemens/teamcenter/image018.png" alt="" class="no-border" >}} + +## Using Teamcenter Services Available in the Teamcenter Connector + +1. Design a microflow as per your business logic. +2. Drag a service from the Teamcenter category of the toolbox into the microflow. +3. Specify input parameters for the Teamcenter service. +4. Specify how data is retrieved. +5. Test your application. + +## Example: Using the Available Teamcenter Services + +The Sample Application has microflows that use the available services such as **CreateItem** and **Search**. Download the Teamcenter Connector Sample Application from the [Mendix Marketplace](https://appstore.mendix.com/link/component/111688), and import it into your project. + +## Handling Errors + +It is a good practice to set up error handling on all your Teamcenter services in a microflow. + +Use the **HandleServiceErrors** microflow to handle errors. To handle errors: + +1. In your microflow, right-click your Teamcenter service and choose **Set error handling**. +2. In the **Error handling** dialog box, choose the [error handling component](/refguide/error-handling-in-microflows/). + + {{< figure src="/attachments/partners/siemens/teamcenter/image020.png" alt="" class="no-border" >}} + +3. Drag the **Microflow call** service from the **Toolbox** to your microflow. + + * Update the **Action** section of the microflow and select the **TcConnector.HandleServiceErrors** microflow. + * Update the **ServiceExeption** parameter and specify the type of error. + + {{< figure src="/attachments/partners/siemens/teamcenter/image021.png" alt="" class="no-border" >}} + +4. Connect the **Microflow call** service with the service from where the error will originate. + + {{< figure src="/attachments/partners/siemens/teamcenter/image022.png" alt="" class="no-border" >}} + +5. Right-click the anchor point of the Teamcenter service and choose **Set as error handler**. + + {{< figure src="/attachments/partners/siemens/teamcenter/image023.png" alt="" class="no-border" >}} + +6. Specify an end event for your **Handle Service Errors** service. + + {{< figure src="/attachments/partners/siemens/teamcenter/image024.png" alt="" class="no-border" >}} diff --git a/content/en/docs/partners/siemens/teamcenter-connector/services-not-included.md b/content/en/docs/partners/siemens/teamcenter-connector/services-not-included.md new file mode 100755 index 00000000000..8499865fa95 --- /dev/null +++ b/content/en/docs/partners/siemens/teamcenter-connector/services-not-included.md @@ -0,0 +1,235 @@ +--- +title: "Using Teamcenter Services Not Included with the Teamcenter Connector" +linktitle: "Using Teamcenter Services Not Included" +url: /partners/siemens/services-not-included/ +weight: 6 +description: "Describes how to use Teamcenter services that are not included in the connector." +--- + +## Overview + +The Teamcenter connector provides two APIs for calling any service operation that is part of Teamcenter Services. + +* **CallTeamcenterService** — Java action + + This Java action can be used directly in any microflow and maps the Mendix domain entities to or from the JSON data structures that are used by Teamcenter Services operations. + +* **TcConnection.callTeamcenterService** — Java method + + This Java method can only be used from within the Java code and requires that the caller create and parse JSONObjects directly for the call. The **TcConnector** class also exposes an entity version of the **callTeamcenterService** method that matches the Java action. + +Both APIs have general error handling and take care of the Teamcenter server session management. The **Login** service operation must be called before calling any other service operation using these APIs. The **ShowLoginPage** and **ExecuteLogin** microflows perform this function. + +## Using the Java Action + +The **CallTeamcenterService** Java action is the entry point for calling Teamcenter service operations from a microflow. This Java action allows the developer to create a custom mapping between the Teamcenter service operation and the Mendix Domain Model entities. This Java action takes the following arguments: + +* **Service Name**: The name of the Teamcenter service operation +* **Input Argument**: The entity containing the input data for the service operation. +* **Response Object**: The entity instance to which the service operation response will be written. This may be any entity type that extends from **ServiceResponse**. +* **Operation Mapping**: The mapping definition for this service operation. +* **Business Object Mapping**: The mapping of Teamcenter business object names to Mendix entity names. +* **ConfigurationName**: The Teamcenter configuration name to be used to perform this action. In case of single active connection pass the configuration name or empty value. + +### Operation mapping + +This maps a Teamcenter service operation request and a response each to the Mendix entities. The mapping is defined as a JSON document, either a as a file or provided as an input string to the **CallTeamcenterService** Java action. The JSON schema for an operation mapping document is as follows: + +``` +{ +ServiceOperation: The operation name (Core-2011-06-Session/login). +InputType: The Entity type to map the input from. +ResponseType: The Entity type to map the response to. +ObjectMapping: The business object mappings. +OperationInput: The template for the service operation input. Must represent the complete service operation input. +OperationResponse: The template for the service operation response. May contain only the specific elements of the response that are mapped. +} +``` + +Within the **OperationInput** and **OperationResponse** templates, values are either hard coded or use the **$Input** or **$Response** substitution keywords. These substitution keys have the following syntax: + +``` +$Input[/Association][;Instruction] +$Response[/Association] +``` + +Where: + +* **Association** — Optional association name on the given entity type. Multiple associations can be sequenced, each separated by a '/'. +* **Attribute** — Optional attribute name on the given entity type. +* **Instruction** — Optional instruction to be applied to the substitution. Multiple instructions can be used, each separated with a semicolon. The supported instructions are: +* **AttributeAsArray** — single valued JSONArray for each attribute value. +* **DateFormat=Format** — Use the custom date format for serializing date attributes. +* **ignoreNull** – Use to omit the key if the value of that key is null. + +Examples of which attributes that will be mapped: + +* **$Input** – The full entity +* **$Input/TcConnector.itemRev** – The entity referenced by the **TcConnector.itemRev** association +* **$Input/TcConnector.user/person** – The person attribute on the referenced entity (TcConnector.user association) +* **$Input;DateFormat=MM/dd/yyyy** – The full entity, with any date attributes serialized in the format mm/dd/yyyy + +{{% alert color="info" %}} This is a JSON document, so the forward slash ‘/’ character in any quoted string must be escaped ‘\/’. {{% /alert %}} + +A sample mapping JSON document: + +``` +{ + "ServiceOperation": "Cad-2007-01-StructureManagement\/createBOMWindows", + "InputType": "TcConnector.CreateBomWindowInput", + "ResponseType": "TcConnector.CreateBomWindowResponse", + "ObjectMapping": "BOMLine=TcConnector.BOMLine", + "OperationInput": + { "info": + [{ "clientId": "CreateBOMWindows", + "item": "", + "itemRev": "$Input\/TcConnector.itemRev", + "bomView": "", + "objectForConfigure": "", + "activeAssemblyArrangement":"", + "revRuleConfigInfo": + { "clientId": "", + "revRule": "$Input\/TcConnector.revRule", + "props": + { "unitNo": -1, + "date": "", + "today": true, + "endItem": "", + "endItemRevision": "", + "overrideFolders": + [{ "ruleEntry": "", + "folder": "" + }] + } + } + }] + }, + "OperationResponse": + { "output": + [{"bomLine": "$Response\/TcConnector.createBomWindowResponseBOMLine" + }] + } +} +``` + +### ExpandGRMRelationsForPrimary Example + +The SOA request and response structure for ‘Core-2007-09-DataManagement/expandGRMRelationsForPrimary’ are as follows: + +{{< figure src="/attachments/partners/siemens/teamcenter/image046.png" alt="" class="no-border" >}} + +To create the operation mapping, refer to the request and response entities and substitute the corresponding entity attributes and associations for the key or the structure. In this example we have created the entities structure as follows: + +{{< figure src="/attachments/partners/siemens/teamcenter/image047.png" alt="" class="no-border" >}} + +#### Request Entities + +* **ExpandGRMPrimaryInput** – Input entity. +* **Relation** – Represents the info structure in the request. +* **relations** – Many-to-one association between ExpandGRMPrimaryInput and Relation entities. +* **primaryObjects** – One-to-one association with list of model objects represents the **primaryObjects** key in request. + +#### Response Entities + +* **ExpandGRMPrimaryResponse** – Response Entity derived from ServiceResponse +* **relationshipObject** – Represents relationshipObjects structure in the response. +* **relationshipObjects** – many to One Association between ExpandGRMPrimaryResponse and relationshipObject entities. +* **otherSideObject** – One to One association with ModelObject represents the otherSideObject key in the response. + +Following is the operation mapping file for expandGRMRelationsForPrimary SOA call: + +{{< figure src="/attachments/partners/siemens/teamcenter/image048.png" alt="" class="no-border" >}} + +### CreateWorkflow Example + +The SOA request and response structure for ‘Workflow-2014-10-Workflow/createWorkflow’ are as follows: + +{{< figure src="/attachments/partners/siemens/teamcenter/image049.png" alt="" class="no-border" >}} + +To create the operation mapping, refer the request and response entities and substitute the corresponding entity attributes and associations for the key or the structure. In this example we have created the entities structure as follows: + +{{< figure src="/attachments/partners/siemens/teamcenter/image050.png" alt="" class="no-border" >}} + +#### Request Entities + +* **CreateWorkflowInput** – Input entity. +* **createWorkflowtRelationTypes** – Entity representing attachmentRelationTypes key in the request. +* **relationTypes** – One to Many Association between **CreateWorkflowInput** and **createWorkflowtRelationTypes** entities. +* **attachments** - One to Many Association between **CreateWorkflowInput** and **ModelObject** entities representing attachments key in the request. +* **assignedUser** - One to Many Association between **CreateWorkflowInput** and **User** entities representing **assignedUserList** key in the request. +* **responsibleParty** - One to One Association between **CreateWorkflowInput** and User entities representing **responsibleParty** key in the request. +* **workflowOwner** - One to One Association between **CreateWorkflowInput** and User entities representing **workflowOwner** key in the request. +* **processName** – String attribute on **CreateWorkflowInput** entity representing **processName** key in request. +* **processDescription** – String attribute on **CreateWorkflowInput** entity representing **processDescription** key in request. +* **processTemplate** – String attribute on **CreateWorkflowInput** entity representing **processTemplate** key in request. +* **dueDate** – Date and time attribute on **CreateWorkflowInput** entity representing **dueDate** key in request. +* **attachmentRelationTypes** – String attribute on **createWorkflowtRelationTypes** entity representing the **attachmentRelationTypes** key in request, which is array of strings, so we add the instruction **AttributeAsArray** after the path to attribute. This will take care to give the input to this key in form of array of strings. + +#### Response Entities + +* **CreateWorkflowResponse** – Response Entity derived from **ServiceResponse**. +* **workflowTask** – One to Many association between **CreateWorkflowResponse** and **EPMTask** entities representing **workflowTask** structure of the response. + +Following is the operation mapping file for createWorkflow SOA call: + +{{< figure src="/attachments/partners/siemens/teamcenter/image051.png" alt="" class="no-border" >}} + +#### Entity Mapping + +Mendix Domain Model entities are mapped to Teamcenter service operation data structures based on naming conventions. The Teamcenter structure element names (keys in JSON document) map one-to-one to the entity member (attributes or associations) names, with the following caveats: + +* The entity member name is prefixed with an underscore '_', for example '_type'. In this case the '_' is ignored, thus matching the Teamcenter name of 'type'. +* The entity member name is suffixed with '__XXX', for example, 'phone__Home'. In this case the '__Home' is ignored, thus matching the Teamcenter name of 'phone'. + +When traversing entities across associations, the entity names are not used. Only the associations between entities must match or be mappable. + +#### ModelObject Mapping + +The **ModelObject** entity is the Mendix Domain Model representation of a Teamcenter business object. Any entity that extends from **ModelObject** is considered to be a **ModelObject**. The mapping of **ModelObject** entities follows the general mapping of entity mapping (see previous section), with the following additions: + +* Member names defined directly on the ModelObject entity (UID, _Type...) are ignored. +* All other entity member names are mapped one-to-one with the business object type property name. +* Attributes of type `String` are the display value or localized value of the business object property, while attributes of other types (Boolean, Decimal, and Integer, Localized Date and time), are the database value of the business object property. To map a database value of a business object String property, the attribute name must be suffixed with '__DB' that is, 'description__DB'. + +#### Business object mapping + +This refers to the mapping of Teamcenter business object type names to Mendix entity names. This mapping is applied to the business objects that are returned from the service operation. The syntax for this mapping is a semicolon-separated list of Teamcenter or Mendix names. + +``` +BOMLine=TcConnector.BOMLine;ItemRevision=TcConnector.ItemRevision +``` + +For any business object returned from the service operation that is not in this mapping (that is, EngChange_Revision), the nearest mapped parent (ItemRevision) is instantiated. + +#### Error Handling + +The **CallTeamcenterService** Java action handles all non-service errors that occur during the processing of the service request. This includes networking errors (HTTP errors connecting to the Teamcenter server), session time-out, and parsing errors. These errors are displayed as an exception, and the calling microflow must set an error handler on the Java action and then create a flow from the Java action that is set as the error handler. This flow must display the **$latestError/Message** and then exit the microflow. + +## Using the Java Method + +The **callTeamcenterService** Java method (**tcconnector.foundation.TcConnection.callTeamcenterService**) is the entry point for calling Teamcenter service operations from the Java code. This Java method differs from the **CallTeamcenterService** Java action in that the input and output data are JSONObject versus Mendix entities. The developer is responsible to creating the JSONObject input that conforms to the Teamcenter service operation definition and parsing the returned JSONObject. This Java method takes 3 arguments: + +* **Service Name** – The name of the Teamcenter service operation. +* **Input Argument** – The JSONObject containing the input data for the service operation. +* **Policy** – The Object Property Policy defining which values should be returned. + +A JSONObject is returned from this method with the contents of the service operation response. All business object references (UIDs) throughout the response structure are replaced with the full ModelObject instance from the ServiceData. JSONObject instances that represent a ModelObject or ServiceData can be cast to JModelObject or JSerivceData: + +``` +JModelObject bomLine = (JModelObject)output.getJSONObject("bomline"); +JServiceData sd = (JServiceData)response.getJSONObject("serviceData"); +``` + +Both the JModelObject and JServiceData class have methods to conveniently access data on this structure and convert to Mendix entities. + +### The JModelObject Class + +The JModelObject class (**tcconector.foundation.JModelObject**) extends the JSONObject class to represent a single Teamcenter business object (ModelObject). This class has convenience methods to access property values and other elements defined on the ModelObject type. Conversation of a JModelObject to an entity uses ModelObject Mapping. + +### The JServiceData Class + +The JServiceData class (**tcconector.foundation.JServiceData**) extends the JSONObject class to represent the ServiceData structure common to most Teamcenter service operations. This class has convenience methods to access data in the ServiceData. Conversion of JServiceData to an entity uses ModelObject Mapping. + +### The JPolicy Class + +The JPolicy class (**tcconector.foundation.JPolicy**) extends the JSONObject class to represent an Object Property Policy. The Object Property Policy defines what properties should be returned from the service operation call for the given set of business object types. The JPolicy is constructed from Business Object Mapping, which defines a policy that includes all the entity member names. diff --git a/content/en/docs/partners/siemens/teamcenter-connector/teamcenter-domain-model.md b/content/en/docs/partners/siemens/teamcenter-connector/teamcenter-domain-model.md new file mode 100644 index 00000000000..3c6c9607f4b --- /dev/null +++ b/content/en/docs/partners/siemens/teamcenter-connector/teamcenter-domain-model.md @@ -0,0 +1,165 @@ +--- +title: "Teamcenter Connector Domain Model" +url: /partners/siemens/teamcenter-domain-model/ +weight: 4 +description: "Describes the Teamcenter Connector domain model." +--- + +## Introduction + +The Domain Model is a data model that describes the information in your application domain in an abstract way. It is central to the architecture of your application. The Domain Model consists of [entities](/refguide/entities/) and their relations that are represented by [associations](/refguide/associations/). + +The Teamcenter Connector for Mendix Domain Model represents Teamcenter business object types and their properties. + +You can view the Teamcenter Connector Domain Model by navigating to TcConnector > Domain Model from the **Project Explorer**. + +To export the Domain Model documentation, right-click the **Project Explorer** and choose **Export documentation**. The Domain Model documentation is exported as an HTML file. + +## Guidelines to Extend the Teamcenter Connector Domain Model + +The Domain Model in Mendix consists of entities, associations, and annotations. It is analogous to the Teamcenter data model. When you want to extend the Domain Model, ensure that: + +* You extend the Domain Model in a separate module and not the Teamcenter Connector Domain Model. +* The entities and associations must match the corresponding Teamcenter object type names and their properties. You can find Teamcenter object types and properties in the Teamcenter Developer Documentation or in the Business Modeler IDE application in Teamcenter. + +## Example: Extending the Domain Model to Access Additional Information + +To access other object types or properties which are not already defined, you must add their definition to your app's Domain Model. This process is the same regardless of whether the object or property is OOTB or custom. + +The Teamcenter Business Modeler IDE view of a custom business object is as follows. It is a child of the **ItemRevision** object and contains two new properties. + +The Mendix Domain Model entity that you must create to retrieve these properties is as follows. + +{{< figure src="/attachments/partners/siemens/teamcenter/image026.png" alt="" class="no-border" >}} + +1. Examine the Teamcenter object. + Examine the Teamcenter object and determine which properties you want to retrieve. + + 1. This object has **ItemRevision** as its parent. + + {{< figure src="/attachments/partners/siemens/teamcenter/image027.png" alt="" class="no-border" >}} + + 2. It defines two properties that you want to retrieve. + + {{< figure src="/attachments/partners/siemens/teamcenter/image028.png" alt="" class="no-border" >}} + +2. Create a new domain entity. + + 1. In your module's Domain Model, create a new entity. + + 2. Change the entity's name to match the Teamcenter object type name. + + {{< figure src="/attachments/partners/siemens/teamcenter/image030.png" alt="" class="no-border" >}} + + 3. Define the new entity's generalization to match the Teamcenter parent object type. + + {{< figure src="/attachments/partners/siemens/teamcenter/image031.png" alt="" class="no-border" >}} + +3. Define new attributes to match the Teamcenter properties. + Match the Teamcenter property name, attribute type, and other parameters to create the Mendix attribute. + + * Teamcenter + {{< figure src="/attachments/partners/siemens/teamcenter/image032.png" alt="" class="no-border" >}} + * Mendix + {{< figure src="/attachments/partners/siemens/teamcenter/image033.png" alt="" class="no-border" >}} + +The process is complete, and you can now use your new Mendix domain entity and its attributes. + +{{< figure src="/attachments/partners/siemens/teamcenter/image026.png" alt="" class="no-border" >}} + +Repeat this process for each object whose properties you want to work with. + +## Extending the Domain Model while Using Available Teamcenter Services + +* Create the required entities in a separate module as a subtype of an existing entity (specialized entity). + +* For example, if you want to create an entity for the `ChangeNoticeRevision` business object, you can create it as a subtype of the `ItemRevision` entity. In this case, the `ChangeNoticeRevision` entity is a specialized entity based on the ItemRevision entity. + +* If the required entity is available but the required properties are not available, create a subtype of the entity in a new module and then add the required properties to the new entity. + + {{% alert color="info" %}} Mendix recommends that you always create new entities and not make any changes to the entities that come with Teamcenter Connector. {{% /alert %}} + +* Design a microflow as per your business logic. + +* Drag a service from the **Teamcenter** section of the toolbox into the microflow. + +* Specify inputs for the Teamcenter service. + +* Instantiate and specify input parameters to the Teamcenter service. + +* Specify business object mapping to the Teamcenter service. + +* Specify how data is retrieved. + +* Test your application. + +## Example: Extend the Domain Model to Call a Service to Create a Change Notice Revision + +1. Create a module that represents the Change management domain. Skip this step if the module exists. + + {{< figure src="/attachments/partners/siemens/teamcenter/image034.png" alt="" class="no-border" >}} + +2. Define the Domain Model. + Create ChangeNotice and ChangeNoticeRevision entities based on the **TcConnector.Item** and **TcConnector.ItemRevision** entities. Skip this step if the entities exist. Ensure that the names and properties of the defined entity match the corresponding Teamcenter business object type name and properties. The Reference properties on Teamcenter object types must be represented as associations in the Mendix Domain Model. + + {{< figure src="/attachments/partners/siemens/teamcenter/image035.png" alt="" class="no-border" >}} + + You can find Teamcenter business objects and their properties in the Teamcenter Developer Documentation. + +3. Plan your microflow and decide what services you want to use. The Teamcenter services are available in the microflow Toolbox under the Teamcenter category. For creating a Change Notice Revision, the microflow typically consists of the following activities: + + {{< figure src="/attachments/partners/siemens/teamcenter/image036.png" alt="" class="no-border" >}} + +4. Select the appropriate Teamcenter service and drag it to your microflow. For example, you can use the Create Object service under the Teamcenter category to create a change notice. + + {{< figure src="/attachments/partners/siemens/teamcenter/image037.png" alt="" class="no-border" >}} + + Your microflow now appears as follows: + + {{< figure src="/attachments/partners/siemens/teamcenter/image038.png" alt="" class="no-border" >}} + +5. In your microflow, specify the input parameters that the Teamcenter service will use. The **CreateObject** service requires two input parameters: + + * An input variable or entity that contains the information required to create the change notice. + * The mapping between Teamcenter business object names and Mendix entities. In the following example, the input entity, is the default **TcConnector.CreateInput** parameter. + + {{< figure src="/attachments/partners/siemens/teamcenter/image039.png" alt="" class="no-border" >}} + +6. In the previous step, an existing input entity served as the input parameter. If you need specific properties to be sent as an input, you must create new input entities or specialize the default input entity and instantiate it. For example, to send properties specific to Change Notice and Change Notice Revision, you must specialize the **CreateInput** entity as follows: + + * In your Change Management module, create the entities **CNCreateInput** and **CNCompoundCreateInput** deriving from the **ItemCreateInput** and **ItemRevisionCompoundCreateInput** entities that are available in the Teamcenter connector. + + {{< figure src="/attachments/partners/siemens/teamcenter/image040.png" alt="" class="no-border" >}} + + * Provide input parameters to your microflow. When creating input parameters, ensure that you instantiate it if necessary. + Your microflow appears as follows: + + {{< figure src="/attachments/partners/siemens/teamcenter/image041.png" alt="" class="no-border" >}} + + The input parameter contains the instantiated entities **CNCreateInput** and **CNCompoundCreateInput**. + +7. You must also specify the **Business object mapping**, which is the mapping between an entity and the corresponding Teamcenter business object types that the microflow is dealing with. For example, the Teamcenter business object **ChangeNotice** is represented by the **ChangeManagement.ChangeNotice** entity and **ChangeNoticeRevision**, by the **ChangeManagement.ChangeNoticeRevision** entity. Thus, the mapping can be specified as: + + ``` + 'ChangeNotice=ChangeManagement.ChangeNotice;ChangeNoticeRevision=ChangeManagement.ChangeNoticeRevision' + ``` + +8. Retrieve the objects by dragging the **Retrieve** action to your microflow. + + * To retrieve response data use the **$createObjectResponse/ResponseData** association. + + {{< figure src="/attachments/partners/siemens/teamcenter/image042.png" alt="" class="no-border" >}} + + * To retrieve partial error data, drag the **Microflow call** action into your microflow and call the use the **TcConnector.ShowPartialErrors** microflow. + + {{< figure src="/attachments/partners/siemens/teamcenter/image043.png" alt="" class="no-border" >}} + + * To retrieve created objects use the **$ServiceData/Created** association. + + {{< figure src="/attachments/partners/siemens/teamcenter/image044.png" alt="" class="no-border" >}} + + Your microflow appears as follows: + + {{< figure src="/attachments/partners/siemens/teamcenter/image045.png" alt="" class="no-border" >}} + +9. Test your microflow. diff --git a/content/en/docs/partners/siemens/teamcenter-connector/teamcenterx.md b/content/en/docs/partners/siemens/teamcenter-connector/teamcenterx.md new file mode 100755 index 00000000000..e921398e617 --- /dev/null +++ b/content/en/docs/partners/siemens/teamcenter-connector/teamcenterx.md @@ -0,0 +1,76 @@ +--- +title: "Configuring the Connection to Teamcenter X" +url: /partners/siemens/teamcenterx/ +weight: 2 +description: "Describes the steps to connect to Teamcenter X." +--- + +## Prerequisites + +Before setting up the connection to Teamcenter X, you must get some information from your Teamcenter representative: + +* **OIDC configuration information** + * Mendix app client ID + * Mendix app secret + +* **SAM Auth information** + * Token Exchange Client ID + * Token Exchange Client Secret + * Token end point + * Teamcenter X Client ID + +* **Teamcenter X environment information** + * Teamcenter Host URL + * Teamcenter FMS URL + +## Configuring the Mendix OIDC Module + +To allow users of your Mendix app to log on via Single Sign-On (SSO), you must set up the OIDC module. +Ensure that the [Mendix OIDC module](/appstore/modules/oidc/) and its dependent modules are added to your Mendix app. + +1. Install the following dependent modules from the Mendix Marketplace: + + * Community Commons + * Nanoflow Commons + * Mx Model Reflection + * User Commons + * OIDC Module + +2. In Mendix, navigate to **App Users** and assign admin and user roles to their respective equivalents. +3. Set the constant **Encryption.EncryptionKey** with a random 32-character string. +4. Setup Mx Model Reflection and synchronize all module entities and microflows. + For more information, see the [Mx Model Reflection documentation](/appstore/modules/oidc/#mxmodelreflection). +Setup SAMAuth registration in the configuration folder of the OIDC module by [setting the following constants](/appstore/modules/oidc/#deploy-time-idps-for-sso-and-api-security-configuration). + +| **Field** | **Description** | +| --------- | ----------------| +| **Client Alias** | A custom name for the client. | +| **Client Id** | The ID for the Mendix app registered with SamAuth. | +| **Client Secret** | The secret key for the Mendix app registered with SamAuth. | +| **AutomaticConfigurationURL** | The well-known config URL that provides metadata for the SamAuth configuration.
For example, `https://samauth.us-east-1.sws.siemens.com/.well-known/openid-configuration`. | +| **SelectedScope** | The scope for **openid** and **sam_account**.
Multiple values can be separated by a space. | + +## Configuring the Mendix OIDC Module with your Mendix App + +To allow users of your Mendix app to log on via Single Sign-On (SSO), you must set up the OIDC module. + +1. Assign admin and user roles to their respective equivalents. +2. Give the admin and user roles access to the following elements in the OIDC module: + + | **Element** | **Element name** | + | ------- | ------------ | + | Microflow | **DS_GetClientConfigurationList**
**GetAuthorizationURL** | + | Nanoflow | **ACT_StartWebSignIn**
**DS_GetReturnURL**
**DS_StartWebLogin** | + | Entities | **ClientConfig**
**ClientConfig_Ext** | + | Pages | **Login_Web_Button** | + +## Connecting the Teamcenter Connector to Teamcenter X + +To connect Teamcenter Connector for Mendix with Teamcenter X, you must specify the connection details in the Teamcenter Environment Configuration page. + +1. Run your project. The browser displays the AdminHomePage. +2. Click **TEAMCENTER CONFIGURATIONS**. +3. Click **New** in the Teamcenter Environment Configuration page. +4. Within Add Teamcenter Configuration, set the **Is TcX Environment** option to **Yes** and complete the fields with the information you received from your Siemens representative. + {{< figure src="/attachments/partners/siemens/teamcenter/tc_connector_configuration_initial.png" alt="" class="no-border" >}} +5. Click **Save**. diff --git a/static/attachments/partners/siemens/teamcenter/image005.png b/static/attachments/partners/siemens/teamcenter/image005.png new file mode 100644 index 00000000000..e8704b6789e Binary files /dev/null and b/static/attachments/partners/siemens/teamcenter/image005.png differ diff --git a/static/attachments/partners/siemens/teamcenter/image006.png b/static/attachments/partners/siemens/teamcenter/image006.png new file mode 100644 index 00000000000..d1a1c15c265 Binary files /dev/null and b/static/attachments/partners/siemens/teamcenter/image006.png differ diff --git a/static/attachments/partners/siemens/teamcenter/image007.png b/static/attachments/partners/siemens/teamcenter/image007.png new file mode 100644 index 00000000000..7afc9cef3c4 Binary files /dev/null and b/static/attachments/partners/siemens/teamcenter/image007.png differ diff --git a/static/attachments/partners/siemens/teamcenter/image009.png b/static/attachments/partners/siemens/teamcenter/image009.png new file mode 100644 index 00000000000..1812ce13a35 Binary files /dev/null and b/static/attachments/partners/siemens/teamcenter/image009.png differ diff --git a/static/attachments/partners/siemens/teamcenter/image010.png b/static/attachments/partners/siemens/teamcenter/image010.png new file mode 100644 index 00000000000..037c1d44118 Binary files /dev/null and b/static/attachments/partners/siemens/teamcenter/image010.png differ diff --git a/static/attachments/partners/siemens/teamcenter/image011.png b/static/attachments/partners/siemens/teamcenter/image011.png new file mode 100644 index 00000000000..5f5d45e0850 Binary files /dev/null and b/static/attachments/partners/siemens/teamcenter/image011.png differ diff --git a/static/attachments/partners/siemens/teamcenter/image012.png b/static/attachments/partners/siemens/teamcenter/image012.png new file mode 100644 index 00000000000..cd73b694d3a Binary files /dev/null and b/static/attachments/partners/siemens/teamcenter/image012.png differ diff --git a/static/attachments/partners/siemens/teamcenter/image015.png b/static/attachments/partners/siemens/teamcenter/image015.png new file mode 100644 index 00000000000..1bdcd9aecc3 Binary files /dev/null and b/static/attachments/partners/siemens/teamcenter/image015.png differ diff --git a/static/attachments/partners/siemens/teamcenter/image016.png b/static/attachments/partners/siemens/teamcenter/image016.png new file mode 100644 index 00000000000..a3277ab0290 Binary files /dev/null and b/static/attachments/partners/siemens/teamcenter/image016.png differ diff --git a/static/attachments/partners/siemens/teamcenter/image017.png b/static/attachments/partners/siemens/teamcenter/image017.png new file mode 100644 index 00000000000..2fc4916ddab Binary files /dev/null and b/static/attachments/partners/siemens/teamcenter/image017.png differ diff --git a/static/attachments/partners/siemens/teamcenter/image018.png b/static/attachments/partners/siemens/teamcenter/image018.png new file mode 100644 index 00000000000..e1ff9a121de Binary files /dev/null and b/static/attachments/partners/siemens/teamcenter/image018.png differ diff --git a/static/attachments/partners/siemens/teamcenter/image019.png b/static/attachments/partners/siemens/teamcenter/image019.png new file mode 100644 index 00000000000..59c10776c54 Binary files /dev/null and b/static/attachments/partners/siemens/teamcenter/image019.png differ diff --git a/static/attachments/partners/siemens/teamcenter/image020.png b/static/attachments/partners/siemens/teamcenter/image020.png new file mode 100644 index 00000000000..e8e6db1bca9 Binary files /dev/null and b/static/attachments/partners/siemens/teamcenter/image020.png differ diff --git a/static/attachments/partners/siemens/teamcenter/image021.png b/static/attachments/partners/siemens/teamcenter/image021.png new file mode 100644 index 00000000000..849211c208d Binary files /dev/null and b/static/attachments/partners/siemens/teamcenter/image021.png differ diff --git a/static/attachments/partners/siemens/teamcenter/image022.png b/static/attachments/partners/siemens/teamcenter/image022.png new file mode 100644 index 00000000000..a267a13aa73 Binary files /dev/null and b/static/attachments/partners/siemens/teamcenter/image022.png differ diff --git a/static/attachments/partners/siemens/teamcenter/image023.png b/static/attachments/partners/siemens/teamcenter/image023.png new file mode 100644 index 00000000000..752c8984600 Binary files /dev/null and b/static/attachments/partners/siemens/teamcenter/image023.png differ diff --git a/static/attachments/partners/siemens/teamcenter/image024.png b/static/attachments/partners/siemens/teamcenter/image024.png new file mode 100644 index 00000000000..6f6444b487f Binary files /dev/null and b/static/attachments/partners/siemens/teamcenter/image024.png differ diff --git a/static/attachments/partners/siemens/teamcenter/image025.jpg b/static/attachments/partners/siemens/teamcenter/image025.jpg new file mode 100644 index 00000000000..c3cf459d767 Binary files /dev/null and b/static/attachments/partners/siemens/teamcenter/image025.jpg differ diff --git a/static/attachments/partners/siemens/teamcenter/image026.png b/static/attachments/partners/siemens/teamcenter/image026.png new file mode 100644 index 00000000000..3ca1510abaa Binary files /dev/null and b/static/attachments/partners/siemens/teamcenter/image026.png differ diff --git a/static/attachments/partners/siemens/teamcenter/image027.png b/static/attachments/partners/siemens/teamcenter/image027.png new file mode 100644 index 00000000000..98e596f7554 Binary files /dev/null and b/static/attachments/partners/siemens/teamcenter/image027.png differ diff --git a/static/attachments/partners/siemens/teamcenter/image028.png b/static/attachments/partners/siemens/teamcenter/image028.png new file mode 100644 index 00000000000..df71fc49097 Binary files /dev/null and b/static/attachments/partners/siemens/teamcenter/image028.png differ diff --git a/static/attachments/partners/siemens/teamcenter/image029.png b/static/attachments/partners/siemens/teamcenter/image029.png new file mode 100644 index 00000000000..0ea5848110e Binary files /dev/null and b/static/attachments/partners/siemens/teamcenter/image029.png differ diff --git a/static/attachments/partners/siemens/teamcenter/image030.png b/static/attachments/partners/siemens/teamcenter/image030.png new file mode 100644 index 00000000000..4525a33d963 Binary files /dev/null and b/static/attachments/partners/siemens/teamcenter/image030.png differ diff --git a/static/attachments/partners/siemens/teamcenter/image031.png b/static/attachments/partners/siemens/teamcenter/image031.png new file mode 100644 index 00000000000..5ef47348c08 Binary files /dev/null and b/static/attachments/partners/siemens/teamcenter/image031.png differ diff --git a/static/attachments/partners/siemens/teamcenter/image032.png b/static/attachments/partners/siemens/teamcenter/image032.png new file mode 100644 index 00000000000..cbe642d21d6 Binary files /dev/null and b/static/attachments/partners/siemens/teamcenter/image032.png differ diff --git a/static/attachments/partners/siemens/teamcenter/image033.png b/static/attachments/partners/siemens/teamcenter/image033.png new file mode 100644 index 00000000000..ab319e6c23e Binary files /dev/null and b/static/attachments/partners/siemens/teamcenter/image033.png differ diff --git a/static/attachments/partners/siemens/teamcenter/image034.png b/static/attachments/partners/siemens/teamcenter/image034.png new file mode 100644 index 00000000000..77cecfde20c Binary files /dev/null and b/static/attachments/partners/siemens/teamcenter/image034.png differ diff --git a/static/attachments/partners/siemens/teamcenter/image035.png b/static/attachments/partners/siemens/teamcenter/image035.png new file mode 100644 index 00000000000..da99858df1f Binary files /dev/null and b/static/attachments/partners/siemens/teamcenter/image035.png differ diff --git a/static/attachments/partners/siemens/teamcenter/image036.png b/static/attachments/partners/siemens/teamcenter/image036.png new file mode 100644 index 00000000000..a7f57974367 Binary files /dev/null and b/static/attachments/partners/siemens/teamcenter/image036.png differ diff --git a/static/attachments/partners/siemens/teamcenter/image037.png b/static/attachments/partners/siemens/teamcenter/image037.png new file mode 100644 index 00000000000..97c5ef6f27c Binary files /dev/null and b/static/attachments/partners/siemens/teamcenter/image037.png differ diff --git a/static/attachments/partners/siemens/teamcenter/image038.png b/static/attachments/partners/siemens/teamcenter/image038.png new file mode 100644 index 00000000000..0ecfa2cf841 Binary files /dev/null and b/static/attachments/partners/siemens/teamcenter/image038.png differ diff --git a/static/attachments/partners/siemens/teamcenter/image039.png b/static/attachments/partners/siemens/teamcenter/image039.png new file mode 100644 index 00000000000..8fa833493e3 Binary files /dev/null and b/static/attachments/partners/siemens/teamcenter/image039.png differ diff --git a/static/attachments/partners/siemens/teamcenter/image040.png b/static/attachments/partners/siemens/teamcenter/image040.png new file mode 100644 index 00000000000..2a2ccd23aac Binary files /dev/null and b/static/attachments/partners/siemens/teamcenter/image040.png differ diff --git a/static/attachments/partners/siemens/teamcenter/image041.png b/static/attachments/partners/siemens/teamcenter/image041.png new file mode 100644 index 00000000000..958afbce80b Binary files /dev/null and b/static/attachments/partners/siemens/teamcenter/image041.png differ diff --git a/static/attachments/partners/siemens/teamcenter/image042.png b/static/attachments/partners/siemens/teamcenter/image042.png new file mode 100644 index 00000000000..942b78584a7 Binary files /dev/null and b/static/attachments/partners/siemens/teamcenter/image042.png differ diff --git a/static/attachments/partners/siemens/teamcenter/image043.png b/static/attachments/partners/siemens/teamcenter/image043.png new file mode 100644 index 00000000000..28173a68902 Binary files /dev/null and b/static/attachments/partners/siemens/teamcenter/image043.png differ diff --git a/static/attachments/partners/siemens/teamcenter/image044.png b/static/attachments/partners/siemens/teamcenter/image044.png new file mode 100644 index 00000000000..f96cea97f23 Binary files /dev/null and b/static/attachments/partners/siemens/teamcenter/image044.png differ diff --git a/static/attachments/partners/siemens/teamcenter/image045.png b/static/attachments/partners/siemens/teamcenter/image045.png new file mode 100644 index 00000000000..08c5d803974 Binary files /dev/null and b/static/attachments/partners/siemens/teamcenter/image045.png differ diff --git a/static/attachments/partners/siemens/teamcenter/image046.png b/static/attachments/partners/siemens/teamcenter/image046.png new file mode 100644 index 00000000000..ae24e705583 Binary files /dev/null and b/static/attachments/partners/siemens/teamcenter/image046.png differ diff --git a/static/attachments/partners/siemens/teamcenter/image047.png b/static/attachments/partners/siemens/teamcenter/image047.png new file mode 100644 index 00000000000..baa6a39e8ef Binary files /dev/null and b/static/attachments/partners/siemens/teamcenter/image047.png differ diff --git a/static/attachments/partners/siemens/teamcenter/image048.png b/static/attachments/partners/siemens/teamcenter/image048.png new file mode 100644 index 00000000000..86342140e5d Binary files /dev/null and b/static/attachments/partners/siemens/teamcenter/image048.png differ diff --git a/static/attachments/partners/siemens/teamcenter/image049.png b/static/attachments/partners/siemens/teamcenter/image049.png new file mode 100644 index 00000000000..2b0acff4b40 Binary files /dev/null and b/static/attachments/partners/siemens/teamcenter/image049.png differ diff --git a/static/attachments/partners/siemens/teamcenter/image050.png b/static/attachments/partners/siemens/teamcenter/image050.png new file mode 100644 index 00000000000..75a427c91f5 Binary files /dev/null and b/static/attachments/partners/siemens/teamcenter/image050.png differ diff --git a/static/attachments/partners/siemens/teamcenter/image051.png b/static/attachments/partners/siemens/teamcenter/image051.png new file mode 100644 index 00000000000..6053a2e088d Binary files /dev/null and b/static/attachments/partners/siemens/teamcenter/image051.png differ diff --git a/static/attachments/partners/siemens/teamcenter/proxy-host-details.png b/static/attachments/partners/siemens/teamcenter/proxy-host-details.png new file mode 100644 index 00000000000..e9a8b3d8ee4 Binary files /dev/null and b/static/attachments/partners/siemens/teamcenter/proxy-host-details.png differ diff --git a/static/attachments/partners/siemens/teamcenter/tc_connection_configuration.png b/static/attachments/partners/siemens/teamcenter/tc_connection_configuration.png new file mode 100644 index 00000000000..3492ab5a930 Binary files /dev/null and b/static/attachments/partners/siemens/teamcenter/tc_connection_configuration.png differ diff --git a/static/attachments/partners/siemens/teamcenter/tc_connector_configuration_initial.png b/static/attachments/partners/siemens/teamcenter/tc_connector_configuration_initial.png new file mode 100644 index 00000000000..ba4ce464c07 Binary files /dev/null and b/static/attachments/partners/siemens/teamcenter/tc_connector_configuration_initial.png differ