励嘉五金网 >> 数控刀柄

TeamcenterEngineering中文件自动签字技术的研究与实现开原

2022-08-30

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

Teamcenter Engineering中文件自动签字技术的研究与实现 2011年12月03日 来源: 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所示。

本文以如何实现Excel为例,阐述如何与ActionHandler结合实现自动签字功能。SubstMacros-MSExcel.wsf文件中实现自动签字的基本步骤如下:(1)调用Function ReadObjec(t dataline)函数读取临时文件中的流程信息(流程中每一节点的节点名称、审批者姓名),保存到Scripting.Dictionary对象的实例Data中。data=ReadObjec(t line)(2)在后台打开需要签字的Excel文件。Set xlApp=CreateObjec(t"Excel.Application")Set xlBook=xlApp.Workbooks.Open(docFileName)(3)逐个搜索Excel中所有已使用的单元格。for Each xlSheet in xlBook.WorkSheetsset objCell=xlSheet.UsedRangeFor Each Cells in objCell(4)判断单元格中的文本是否包含特殊字符S[],截取内容,搜索Data对象中的数据,进行替换。temp=mid(word,startPos,endPos-startPos+1)name=replace(word,temp,value)Cells.Value=name(5)保存Excel文件,退出VBA程序。".*基于N38,Z2M NW8=V68,=-技术的<+N(NW8=&N/类文件签名信息定位技术)VBA通过AutoCAD ActiveX Automation接口将消息发送到AutoCAD。AutoCAD VBA允许VBA环境与AutoCAD同时运行,并通过ActiveX Automation接口对AutoCAD进行编程控制。AutoCAD类文件自动签字的实现原理(其流程如图4所示)与上述Office类文件略有不同。在AutoCAD文件中利用块来定位签字信息的位置,只需在ActionHandler的-ExtraParameters参数中指定需要填写流程信息的块名称,则VBA程序就只在指定的块中查找替换流程信息,可大大减少搜索量,加快程序搜索的速度。对比图3和图4,SubsMacros-AutoCAD.wsf实现自动签字与SubstMacros-MSExcel.wsf相同的步骤不再赘述,其关键步骤如下:(1)读取流程信息,同Excel。(2)打开AutoCAD文件,得到需要签字的块。Set acadApp=CreateObjec(t"Autocad.Application")Set doc=acadApp.Documents.Open(dwgFileName)Set block=doc.Blocks(blockName)(3)枚举Block中所有的Entity。for each entity in block(4)枚举Data对象中所有的数据。for each name In data(5)使用函数subst(base,name,value,result)查找替换Entity中包含Data中的资料。if subs(t entity.ImageFile,"["&name&"]",value,result)=result thenntity.ImageFile=resultend if(6)保存AutoCAD文件,退出VBA程序。3、应用实例笔者参加了某汽车企业PDM/CAX/ERP项目的开发与实施工作,该企业在Teamcenter Engineering系统中管理的工艺文件的主要类型为Word,Excel以及AutoCAD文件,笔者应企业要求开发了相关的ActionHandler以及VBA程序,实现了对上述三种文件的自动签字功能。在该企业的Teamcenter Engineering系统中,建立相应流程,在适当位置设立审批任务,如设计、校对、审核……,并分配相应的负责人或负责组。最后部分放置一个AddStatus节点,在AddStatus任务的完成操作中加入Export-Signoff-Info Action-Handler,位于Add-status Handler之后,并设置图5所示参数(对应MSWord资料集)。需要添加对其他数据集的自动签字,则添加多个Export-Signoff-Info ActionHandler,设置相应的参数即可。目前该功能在企业运行情况良好,达到了既定的目标。

4、小结如上所述,通过对Teamcenter Engineering系统进行客户端或者服务器端的二次开发,结合其他相关的计算机技术,能够使该PDM系统适应不同企业的实际情况,达到方便企业用户使用Teamcenter Engineering系统的目的。在满足企业的个性化需求的同时,能够极大地提高企业的效率。(end)

智能电表测试数字电秒表测试功能

弹簧减震器安装规范

空气成像无介质成像设备

耿力厂家湿喷机水电站工程机械混凝土湿喷机GYP-90液压湿喷机

江苏口碑好的平开断桥门窗供应商-性价比高的简约阳光房

喷砂机厂家-河北锯片自动喷砂机-锯片专用喷砂机

广东青龙石产地原产地青龙石青龙石批发价格

大理打井钻井价格威龙钻井大理打井钻井

上海注册公司多少钱上海公司注册代理费用

针灸减肥培训解晓丽针灸减肥培训

友情链接