您所在的位置:e-works首页 > 产品创新数字化(PLM) > PDM/PLM

Teamcenter Engineering中文件自动签字技术的研究与实现

发表时间:2008-2-3 张华 张国军 喻道远 来源:万方数据
主要对Teamcenter Engineering系统中的ITK(Integration Tool Kit)技术以及Windows平台下的VBA技术进行了相关的研究,并且开发了一个新的ActionHandler以及相应的Windows脚本文件,使得Teamcenter Engineering的流程实例结束时,流程信息能够自动添加到各种类型文件(Word,Excel,AutoCAD等)指定位置。

    PDM(Product Data Management)技术的诞生不仅解决了企业中与产品相关的文件的组织与管理的问题,实现了数据的安全共享,还实现了企业中工作流程的管理,实现了企业流程的电子化,提高了企业的工作效率与竞争力。

    EDS公司的Teamcenter Engineering作为一个企业级的商业应用PDM软件,提供了良好的开发接口,具有极大的开放性,用户可以方便地对其服务器端以及客户端进行二次开发,提供增强的功能,以满足用户的特殊需要。本文研究了如何在Teamcenter Engineering系统上,通过对Teamcenter Engineering进行定制和服务器端的二次开发实现流程信息的自动收集,并在服务器端调用VBA程序完成电子文件自动签字的功能。

    1、自动签字技术实现原理

    虽然企业中各种电子文件都在Teamcenter Engineering系统中实现了统一管理,但不少企业由于信息化的普及程度以及成本的原因,用来指导生产的文件还是以纸介质的形式存在,他们还是希望能够在打印发放的文件中看到流程审批信息。而在Teamcenter Engineering系统中,电子文件进入流程后,原则上各阶段审批人员对电子文件不具有修改权限,如果放开这一权限,文件的安全性将无法得到保证;另外即使能够放开权限,在大量电子文件发起流程时,由审批人员手工对每一文件进行手工签字也是不现实的。因此本文提出了利用ITK技术结合VBA技术的解决方案。

    下面以一个简单的流程为例,说明自动签字技术的实现原理。流程示例如图1所示。电子文件一旦进入流程,则在流程的各阶段(编制、校对、审核、批准)均设定为只读,这就保证了文件在流程中不会被任意修改,保证了其在流程中的安全;只有在最终归档阶段才开放电子文件的修改权限。归档是一个自动完成的过程,该阶段不设任何审批人员,不需要人工干预,从而最大限度地保证了文件的安全。归档阶段Teamcenter Engineering系统除完成其他必要的工作之外,实现自动签字的流程如图2所示。

    ①Teamcenter Engineering系统在流程进入到归档阶段时,触发ActionHandler(EPM-export-signoff-info)。EPM-export-si-gnoff-info将流程信息导出到Teamcenter Engineering服务器所在计算机的Temp文件夹,命名为SignoffInfo.txt。②ActionHandler枚举流程中的所有数据集,逐个判断其数据集类型,分别调用相应的WSF文件完成自动签字,文件名为“SubstMacros-数据集名称.wsf”,如Word文件则调用SubstMacros-MSWord.wsf,Excel则调用SubstMacros-MSExcel.wsf,AutoCAD则调用SubstMacros-AutoCAD.wsf。③对应的VBA程序从ActionHandler导出的临时文件SignoffInfo.txt中读取流程信息,保存到内存中。VBA程序自动将流程中审批者的信息填写到数据集中。④由ActionHandler完成数据集的保存工作,流程结束。

    2、关键技术

    2.1、ITK(签名信息提取技术)

    Teamcenter Engineering的全部功能模块是建立在一组集成开发工具包(Integration Tool Kit,ITK)之上的应用模块。ITK中的User Exit工具不仅提供了对Teamcenter Engineering的核心部分进行定制的功能,还能让用户开发其他的处理函数扩展Teamcenter Engineering的功能。通过Teamcenter Engineering的User Exit工具能够实现的功能如下所述:

    (1)对Teamcenter Engineering系统提供的函数进行修改;

    (2)增加处理CR&EPM(Enterprise Process Model)流程的Handler;

    (3)为Teamcenter Engineering增加新的功能函数。

    需要实现的自动签字功能需要使用的就是Teamcenter EngineeringUser Exit的第二种功能,通过自行开发的C语言程序ActionHandler(EPM-export-signoff-info)导出流程信息,并根据进入流程的数据集类型的不同调用相应的VBA程序实现自动签字功能。

    ActionHandler“EPM-export-signoff-info”实现的步骤可以简单地解释为如下几步:

    (1)读取流程中设置的EPM-export-signoff-info的参数,决定本ActionHandler处理的数据集类型(Word,Excel或者Auto-CAD),对不同的数据集可通过在流程中设置多个EPM-exportsignoff-info来实现。

    ITK-ask-argument-named-value((const char*)IMAN-next-argumen(t msg.arguments),&str-name,&str-value)

    (2)得到EPM-export-signoff-info所需要处理的流程,包括所有的流程信息(审批姓名、审批意见、审批日期、……),保存到Job中。

    EPM-ask-job(msg.task,&job)

    (3)取得流程每一个节点的信息。CR-ask-release-levels(job,&release-level-count,&release-levels)

    (4)取得每一个节点的审批者信息。CR-ask-reviewers(job,release-levels[j],&n,&groupmembers)SA-ask-groupmember-user(groupmembers[i],&user-tag)CR-ask-decision(job,release-levels[j],user-tag,&decision,reviewercomments,&decision-date)SA-ask-user-identifier(user-tag,user-id)SA-ask-user-person-name(user-tag,user-name)

    (5)将每一个节点的审批者信息依次按指定顺序写入临时文件SignoffInfo.txt。

    (6)导出数据集到临时目录。IMF-export-file(im-file,ds-file-name)

    (7)使用System函数调用与该数据集一致的VBA程序实现自动签字。

    (8)导入数据集,保存数据集。

    IMF-import-file(ds-file-name,"",SS-BINARY,&im-file,&file-descriptor)

    AOM-save(im-file)

    新的ActionHandler需要在user-uif.c文件中的USER-register-callbacks(void)函数体中使用EPM-register-action-handler("Export-Signoff-Info","",EPM-export-signoff-info)函数注册后才能在Teamcenter Engineering系统被流程调用。

    将所有新建的C文件以及经过修改的文件重新编译(如complie-DIPLIB=libuser-extis filename.c),并与libuser-exits.dll文件链接,最后将新生成的libuser-exits.dll文件拷贝到%TEAMCENTER ENGINEERING-ROOT&%bin目录。

    2.2、VBA技术(office类文件签名信息定位技术)

    Windows脚本文件(*.wsf)是含有可扩展标记语言(XML)代码的文本文件。它综合了几个可增强脚本灵活性的功能。本文中完成自动签字功能的Windows脚本文件使用的脚本引擎就是基于VBScript的VBA(Visual Basic for Application)。

    ActionHandler本身并不完成数据集的自动签字功能,自动签字是由服务器端的VBA程序完成的。将此ActionHandler与VBA程序的实现的功能分开,就给程序带来了很大的扩展性。按目前的结构,如果需要增加对新的数据集的签字功能,只需要编写相对应的VBA程序,并在流程归档节点调用ActionHandler时设置参数即可;反之如果签字功能在ActionHandler中完成,则需要重新编写ActionHandler,不利于系统的扩展和维护。

    Excel与Word作为Office系统中的两款软件,其实现自动签字功能的原理大同小异,都是使用特殊字符来实现签字功能,如签署审批者姓名的位置在Word与Excel文件中以S[审批]符号标注,VBA程序查找到该位置时,按照从临时文件中读取的流程信息,自动地将审批者的姓名进行替换,可保留S[审批]标记的位置以及字体信息,其流程如图3所示。

本文为授权转载文章,任何人未经原授权方同意,不得复制、转载、摘编等任何方式进行使用,e-works不承担由此而产生的任何法律责任! 如有异议请及时告之,以便进行及时处理。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。

责任编辑:王阳
2