天拓学堂 | Teamcenter二次开发技巧分享
发布日期:
2022-11-14

欢迎来到天拓云课堂,今天和大家一起分享关于Teamcenter二次开发技巧。

天拓说:Teamcenter的实施,并不是简单地安装使用。它需要软件销售商和软件购买单位密切合作,制定一个完善的信息化制度和规范,原则上要求软件购买单位按照Teamcenter的内定规则来实现生产。但是,不同的企业有着各自的不同,这就要求销售商有针对性地进行定制软件。因此Teamcenter提供很强的定制能力。

Teamcenter的定制能力,一方面是通过软件本身的配置来实现的;另一方面是根据对软件的二次开发来实现的。一般我们把'根据客户要求定制'称之为'客户化';Teamcenter主要使用C/C++和JAVA来进行二次开发。

目前项目上开发的种类

1、菜单客制化开发:用户点击菜单栏、工具栏、右键、视图、应用等;

2、渲染开发:属性渲染、表单渲染、视图渲染;

3、TC内部对象操作;

4、 Handler开发:rule handler、action handler;

5、集成开发:webservice、中间表、工具(POI、ITextPDF等);

6、AWC开发;

7、扩展点开发  ...

01 RAC开发

RAC开发,指的是TC的胖客户端开发。通过plugin in project项目实现对TC胖客户端的修改。

02 ITK开发

ITK开发,是对Teamcenter的服务器端进行开发,多用于审批流程中对业务逻辑的定制开发,全称为:Integration Toolkit。

03 SOA开发

SOA开发,多用与PLM多个系统之间的集成,发布WebService服务供调用进行数据之间的交户。

一、RAC开发

1)定义菜单、工具条、邮件菜单添加三要素

Command

有一个唯一的ID号,它代表了一个动作的抽象意义,例如拷贝,粘贴,保存。它不代表 一个动作的实施。

Menu contributions

代表一个特定的视图或者一个命令的视图话呈现。它创建了菜单和工具条的结构框架并 且把他们插入到Eclipse的正确位置。每个位置都是用URI( Uniform Resource Identifier ) 来标识的。Menu contribution能够定义一个菜单的标签,助记符和图标。它和已经被定义 的Command之间相互关联。一个菜单可以通过 visibleWhen来控制它的显示。

Handlers

大多数是继承于AbstractHandler类。Handlers在它的execute(*)方法中提供了一个应用程 序上下文。如果一个命令没有一个激活的handlers被定义,任何一个Menu contributions中 定义的Command都不可见。一个Command可以定义一个默认的handler来确保它能够有一 个可被激活的handler。handler可以通过ActiveWhen语句来被显示的激活声明或者被编程的 形式激活。Handler也可以在任何一个Menu contributions中用enabledWhen表达式,显示的定义一个按钮什么时候可显示。

2)表单渲染

XML Style Sheet

允许利用Predefined XML style sheet 的方式控制表单的显示,包含显示的顺序与 渲染的方式。

Automatic forms

不需要任何定义,系统自动显示所有的表单属性,包含继承下来的POM class 属性。

JavaBean

允许使用JavaBean 与一个IDE (譬如Eclipse)去显示表单属性。每一个JavaBean 知道如何取显示与保存指定的属性类型。这方法稍微复杂,但是仍旧需要 编写程序。

Abstract Rendering

允许延伸AbstractRendering 类编写表单显示。这是最有弹性的做法,同时也是最 复杂且需要写程序的方法。

二、ITK开发

1)定义 Handler 的步骤

先在 site-name_register_callbacks() 函式内定义

CUSTOM_register_exit('site-name', 'USER_gs_shell_init_module',   (CUSTOM_EXIT_ftn_t)CUST_init_module); 

在 cust_init.c 文件中,编写新的函数 CUST_init_module(),注册 handlers

√ 使用 EPM_register_action_handler() 注册 action handler

 EPM_register_action_handler(“your-action-handler-namer',“your action handler description',(EPM_action_handler_t) your-action-handler-function)

√ 使用 EPM_register_rule_handler() 注册 rule handler

EPM_register_rule_handler(' your-action-rule-namer ',' your rule handler description ',(EPM_rule_handler_t) your-rule-handler-function)

编写 action handler/rule handler 要执行的函式

√ Action Handler 函数的格式为int your-action-handler-function-name (EPM_action_message_t msg)

√ Rule Handler 函数的格式为EPM_decision_t your-rule-handler-function-name (EPM_rule_message_t msg)

三、SOA开发

1)常用类

CredentialManager(凭证理器)

SOA客户端框架使用此接口从客户端应用程序获取身份验证凭证。SOA框架支持两种模式的身份验证,标准凭证(用户/密码/组/角色/鉴别器)和SSO凭证。

SessionService

SessionService公开用于管理与Teamcenter服务器的客户端会话的操作。所有客户端会话必须从登录操作开始,并以注销操作结束。在整个客户端会话中,SessionService可用于更改状态,如组、角色等。

DataManagementService

数据管理服务提供了广泛的操作,在Teamcenter的整个生命周期中,从数据创建到数据检索。应用程序或客户端可以使用任何操作,如创建、存储、检索和操作数据。数据可以是任何业务对象,如项目、项目修订、数据集、表单、文件夹等。

1.创建、删除、修改业务对象

2.加载/刷新/修订/另存/验证业务对象

3.通过GRM 关系找到相关的业务对象

4.获取业务对象的详细信息,例如类型,属性值,数据集文件,组织信息等。

5.移除数据集的引用

6.添加和删除参与者,更改所有权