Skip to main content

Setting up BMIDE for coding and building DLL

 



Coding can be done either in external coding platforms like visual studio or using Teamcenter BMIDE application. Siemens suggests BMIDE for coding the server side customization. In this blog, let us see how to set up BMIDE for coding.

Set up a Business Modeler IDE project for coding

Modify BMIDE.bat file

  • When you install or configure the Business Modeler IDE, set up the JDK location and a compiler application.
  • The bmide.bat file starts the Business Modeler IDE. Set the location of the JDK in the install-location\bmide\client\bmide.bat file.
set JRE_HOME=C:\Program Files (x86)\Java\jrex
set JAVA_HOME=C:\Program Files (x86)\Java\jdkx.x.x
set JDK_HOME=C:\Program Files (x86)\Java\jdkx.x.x
  • Set TC_ROOT variable to Teamcenter installation path.
if not defined TC_ROOT set TC_ROOT=C:\Apps\Teamcenter12\TC_ROOT
  • On Windows when Microsoft Visual Studio is used for compiling, a call to the vcvarsall.bat file in the bmide.bat file is required. The call should be before the PATH statement. Add Visual studio bin directory to path variable.
call "C:\apps\MVSxx\...\vcvarsall.bat"
set PATH=%JDK_HOME%\bin;%JRE_HOME%\bin;TC_ROOT\lib;%FMS_HOME%\bin;%FMS_HOME%\lib;%PATH%;C:\apps\MVSxx\...\VC/BIN

BMIDE batch file

Build Configuration & Code Generation

  • Open the project template in BMIDE for which you are going to create library and generate code.
  • Open Build configuration by right click project->Properties in Navigator.
  • Select Build configuration and add the compiler home with visual studio path.
Build Configuration

  • Select Code generation and define the source folder for generating code. The files are generated to this mentioned path.
Code Generation

Create Library

  • If custom library is not created, create a new library in Extensions/Code Generation/Libraries. Right click Libraries folder and click New Library.
  • Create new library and set it as Active library. 
  • To set a active library, right click the corresponding library-> Organize->Set as active library.

Generate C++ Classes

  • Select the project -> Generate Code -> C++ Classes. This should generate make file and other c++ files.

C++ Classes
  • Project->Project Build should build the dll.


In the next blog, I will show how to write a custom handler in BMIDE and build the DLL. Teamcenter custom handler build in BMIDE

Related Posts:




 

Comments

Popular posts from this blog

Teamcenter Relations

Teamcenter Relation objects are created to relate two objects. It connects the primary business object and secondary business object through relation property. Relations are widely used in Teamcenter.  Out of the Box Teamcenter provides various relation objects to relate objects. Always we can create new relations through BMIDE under ImanRelation business object. ImanRelation B.O Steps to create new relation Open BMIDE and load the custom template. Search for ImanRelation in Business object tab. Right click ImanRelation -> New Business Object. Type in the Name (real name) and Display Name (This name will be shown to end user for pseudo folder name). Relation creation window

Teamcenter custom handler build in BMIDE

  In this blog we can see how to register and build a custom handler through BMIDE. Please refer my previous blog  Setting up BMIDE for coding and building DLL  to set up BMIDE for coding. Register Custom Handler Make sure you have a active library defined in  Extensions\Code Generation folders. If you need a new library for managing handlers, create a new library and make it as active library. Create a custom extension rule. Open the Extensions\Rules folders, right-click the Extensions folder, and choose New Extension Definition.  In Extension dialog box, along with Name of the extension and click the Add button to the right of Availability table. Select the business object as Session, Business object as Type, Operation as BMF_SESSION_register_epm_handlers and Extension Point as BaseAction. Extension availability Click Finish Extension view Add your custom extension as a base action on the BMF_SESSION_register_epm_handlers operation. Open the Session business object and click the Oper

Teamcenter Batch LOV

  Teamcenter offers 3 types of LOV and based on the use case, choose the LOV type. Unlike Classic and Dynamic LOVs, Batch LOVs are managed externally. To update or remove values from Classic or Dynamic LOV, we need to update LOV via BMIDE and deploy the changes as templates using tem.bat. Where as in Batch LOV, the updates happen using utility and does not require system downtime. Initially Batch LOV should be created in BMIDE and added to the respective property or properties. Once you deploy the batch lov to the database via tem, you can subsequently add values to the LOV using xml and load it into Teamcenter using  bmide_manage_batch_lovs utility. To update existing Batch LOVs, you can extract the existing LOV values through the same utility in XML format, update the xml files and load it back using same utility. Creating new Batch LOV 1. In BMIDE, open Extensions\LOV Folder. Right click Batch LOV folder and choose New Batch LOV. Batch LOV 2. Click Finish 3. Add the Batch LOV to th

Basics of Teamcenter Query Builder

Query Builder application in Teamcenter allows you to create customized searches for objects  in both local and remote Teamcenter databases. Basics of Query Builder Teamcenter Query is based on Teamcenter persistence data model. Refer  Teamcenter Data Model Layer   section to understand Teamcenter data model Query is created against any of the Teamcenter persistence class. Query criteria can be defined either on attribute of target object or for the related object which are related to search class through either GRM relation or reference. Referenced-by clauses allows creating query based on reversed-reference relationship. For example, query to find dataset objects that are referenced, through an IMAN_specification relationship, by an item revision with a specific name. Query hints assist user to navigate the schema by presenting a relationship to traverse and the steps required to build the relationships into query definition. For example, item to item-master form. Criteria can be mad

Teamcenter: Basics of Report Builder

  Teamcenter Report builder module allows to create custom reports based on PLM data from Teamcenter. Teamcenter Reports are mainly based on queries and PLMXML framework. Report definition specifies the data to display in the report. This includes the data source, additional properties to be extracted, and the rules for importing the data. XSL style sheets allow to control the properties you want to display in the report and the display order. They also help to define the look and format of the report. Report Administrators (DBA or non-DBA users) creates and manages the report definitions. End users uses these report definitions to generate various types of reports in Teamcenter or Active Workspace. Optional Teamcenter Reporting and Analytics( TcRA ) standalone application is used to create advanced reports using various data sources.  Types of Reports Summary Reports Summary reports present information based on a Teamcenter saved query definition. No object selection is requi

Cascading vs Interdependent LOV

Cascading LOV  Cascading LOV or hierarchical LOV is an LOV whose values have their own sub-lovs. In Teamcenter, the cascading lovs are display as levels. We can setup multiple levels of values, the final level value selected is stored as property value Foe example, to define city property with cascading lov of st level as country, 2nd level as states and 3rd level as cities.  Steps to create cascading LOV Create a main classic LOV to hold the sub LOV's. All the values of the main LOV should have a sub LOV assigned. For example, in main LOV create with state names as value, then create sub LOV for each state with city names. Main LOV Open the main LOV created in BMIDE. Select the Show Cascading View check box. Cascading LOV view is not shown unless the check box is selected. Select a value in the main LOV and choose sub LOV. In the LOV selection dialog box, select the sub lov. In case not created, create the sub lov for each value in main LOV. Sub LOV Cascading View Attach the main

Teamcenter Item Business Object (Item Data Model)

Items are the fundamental object used to model data in Teamcenter. They are commonly used to identify an element of a product (component, assembly, end item) or other data such as procurement specification, test procedure, standard part, shop tooling, change, and so on. Data modeled using the Item business object is generally revision controlled data and all revisions of the information must be maintained, tracked, and recoverable. Data must also be modeled using the Teamcenter concept of item if you want to build a structure of the items such as a bill of material (BOM) for items that represent a product. Item is the most common business object under which you create a new business object. Use the Item business object or its children when you want to create business objects to represent product parts. When you create a business object using Item (or one of its children) as the parent, in addition to the new business object, system also create an item master form, an item revision, and

Automatic Condition Task in Teamcenter Workflow

Teamcenter Condition task can be configured to complete either automatically or manually. Based on the use case, determine which is best suited for the workflow process. If a handler can determine the criteria, it is best to configure the task as automatic. Automatic Condition task Create a query against the target. Create a query against the task. Create a query against subprocesses. Action handler to set the task result to true. false or a customized value. Samples for automatic condition task 1. Using Query against target Use case: Branch based on target object type. If PDF is not found in target, route to false path Step 1: Create a new query in query builder. For this use case, the search class is workspaceobject and criteria is object_type=PDF Step 2: Add a condition task in the workflow.  Select Condition task and click Task attributes. In Attributes Panel, select Condition Query and choose the query created in Condition query dialog. Select Query against as Target Scope as Any

Teamcenter Data Model Layer

 Data model is core for any packaging software. To have a good technical knowledge in a software, it is important to have a good understanding of data model. This blog will help people new to Teamcenter to have better understanding of Teamcenter system. Three layers in Teamcenter data model: POM or Schema layer Business and Relational Object layer Business rules Data Model Layer POM/Schema layer is the lowermost layer it consist of database (table) which maps most of the classes. Developer interacts with POM layer for customization and extension of system. Business and Relation layer is actual requirement of business in which business object and relation defines overall data model from business perspective. It resides overs POM layer, Business analyst and solution architects interacts with this layer. Business Rules are the top level layer of Data Model. This layer basically consist Business Object behavior based on the rules configured in BMIDE. Business rules along with Business Ob