ArasInnovator二次开发的一些常用代码段。(笔记)分类:ArasInnovator2013-08-0201:19473人阅读评论(0)收藏举报///每个关系类对应一张表例如part和BOM关系表为PartBOMjavascript方法可以不写returnthis;///Innovator连接服务器Example:HttpServerConnectionconnection=IOMFactory.CreateHttpServerConnecton(服务器名,数据库名,用户名,密码);大部分版本可以。Itemlogin_result=connection.Login();Aras执行存储过程,注意区分大小写:ItemresItem=inn.newItem(SQL,SQLPROCESS);resItem.setProperty(name,getProjectDocument);resItem.setProperty(PROCESS,CALL);resItem.setProperty(ARG1,1017);resItem.setProperty(ARG2,Drawing);resItem.setProperty(ARG3,Proto);resItem=resItem.apply();////Innovator查询,查询中的字段应严格注意大小写,属性一般都为小写Example:ItemMyItem=MyInnovator.newItem(User,get);MyItem.setAttribute(select,first_name,last_name);ItemMyResult=MyItem.apply();for(inti=0;iMyResult.getItemCount();i++){msgBox.AppendText(\n+i++MyResult.getItemByIndex(i).getProperty(first_name,na)++MyResult.getItemByIndex(i).getProperty(last_name,na));}///Document实例的添加注:必填项属性必须设置,属性名一般为小写,若为大写将不可识别,属性的空格用_代替,若属性值为系统已有的内置属性,则必须与系统内置属性值相等,区分大小写Example:Innovatorinnovator=newInnovator(connection);Itemitem=innovator.newItem(Document,add);item.setProperty(item_number,0002);item.setProperty(name,Example1);item.setProperty(classification,/Document/Software);item.setProperty(authoring_tool,Other);item.setProperty(effective_date,2010-01-21);item=item.apply();///修改多语言字段注:itemtype为对象类名称,lang为多语言字段缩写,name为字段名Example:stringlang=zh;Itemresultitem=innovator.newItem(itemtype,edit);resultitem.setAttribute(id,id);resultitem.setProperty(name,value,lang);resultitem=resultitem.apply();///提升版本方法1:Itemresultitem=innovator.newItem(itemtype,edit);resultitem.setAttribute(id,id);resultitem.promote(active,Pleasereview);resultitem=resultitem.apply();方法2:q.setAttribute(action,PromoteItem);q.setAttribute(typeId,thisItem.getProperty(itemtype,));q.setID(thisItem.getID());q.setProperty(state,toState);r=q.apply();///InnovatorRelationShip的添加注:添加RelationShip时,relationshipType需指定一个联系的对象(item)添加关系时应特别注意,向文档中添加文件时的关系添加,如向Part中添加BOM的关系操作不同,不同对象的关系添加方式不同Example:此例子为向文档中添加已存在的文件Innovatorinnovator=newInnovator(connection);Itemitem=innovator.newItem(Document,add);item.setProperty(item_number,0002);item.setProperty(classification,/Document/Software);item.setProperty(name,First);item.setProperty(authoring_tool,Other);item.setProperty(effective_date,2010-01-21);///获取关联文件Itemfile=innovator.newItem(File,get);file.setProperty(select,keyed_name,id,filename);file.setProperty(id,8FA86396EDDA493481BF0A3AA6F15D44);file=file.apply();///DocumentFile表存储了文档和文件的关系Itemdocfile=innovator.newItem(DocumentFile,add);docfile.setProperty(source_id,item.getID());docfile.setPropertyAttribute(source_id,keyed_name,item.getProperty(keyed_name));docfile.getPropertyAttribute(source_id,type,Document);docfile.setProperty(related_id,file.getID());docfile.setPropertyAttribute(related_id,keyed_name,file.getProperty(keyed_name));docfile.setPropertyAttribute(related_id,Type,File);item.addRelationship(docfile);item.apply();判断当前窗体对象是否被锁定:if(!document.thisItem.isNew()&&document.thisItem.getAttribute(action)!=add&&document.thisItem.isLocked()!=1){returntop.aras.newError(请先锁定窗体!);}方法简化:为Document添加File关系为:Itemrelationship=innovator.newItem(DocumentFile,add);relationship.setRelatedItem(file);item.addRelationship(relationship);item.apply();///C#连接excelstringstrconn=Provider=Microsoft.Jet.OLEDB.4.0;DataSource={0};ExtendedProperties='Excel8.0;HDR=Yes;IMEX=1;';///连接字符串中的空格不可去掉stringcommand=string.Format(select*from[{0}$],sheetname);///$不可去掉using(OleDbConnectionoleconnection=newOleDbConnection(string.Format(strconn,filepath))){oleconnection.Open();DataTablest=oleconnection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,null);OleDbDataAdapteroleadapter=newOleDbDataAdapter(command,oleconnection);DataSetds=newDataSet();oleadapter.Fill(ds);returnds;}///小知识点activity表的message为显示在Inbasket中的介绍(introduction)///关于Item.apply()方法的说明当Item.apply()提交的数据与数据库中数据产生冲突时,会自动不予提交///上传文件path文件路径Itemitem=innovator.newItem(File,add);intindex=path.LastIndexOf(\\);stringfilename=path.subString(index+1);item.setProperty(filename,filename);item.attachPhysicalFile(path);item=item.apply();提升生命周期状态:actionitem=innovator.newItem(ActionItem,edit);actionitem.setAttribute(where,string.Format(id='{0}',actid));actionitem.promote(active,Pleasereview....);actionitem=actionitem.apply();AML关系查找示例:Itemtype=MyPartaction=addselect=id,namepart_number1/part_numberRelationshipsItemtype=MyBOMaction=getrelated_idItemtype=MyPartaction=getpart_number2/part_number/Item/related_id/Item/Relationships/Item///javascript操作页面元素varresults=document.thisItem;///获取页面元素varelement=results.getItemsByXpath('//Item[@type=TPK_Millstone]');document.thisItem.isLocked()=1表示页面元素被锁定document.thisItem.isNew()判断页面对象是否为新建对象document.thisItem.getAttribute(action)!=add判断当前的操作是否为add///获取属性的子属性stringnewitem=resulitem.getPropertyAttribute(current_state,keyed_name);///赋予权限,applySQL只有当前用户为Administrator或superuser身份时可用,ArasPLM也具有applySQL的权限,一般在系统内部使用其他身份若要使用applySQL需要先赋予权限Aras.Server.Security.IdentityplmIdentity=Aras.Server.Security.Ident