1、如何查找和使用U8的API如何查找和使用U的A 作者: 日期:如何查找和使用U的AI摘要客户化开发中常常有将某些数据经过加工后存储至U8标准单据中的需求,通常客开人员是通过将数据插入物理表的方式进行,这时插入的数据未经系统的业务校验,为后续操作埋下诸多隐患。U8的A接口,则是提供给客开操作系统单据的一个接口,客开只需将数据组织好,系统校验、增、删、改等操作都有不同的AI接口来实现,调用相应API就可以完成操作。如何使用APIa) AI位置如下图所示:b) AI接口描述选择服务接口,右键,可以查看该接口的描述、代码示例,如下图所示:c) API参考代码示例实际应用本文以#代码为例,数据源采用系统
2、中已存在单据做为数据源进行讲解。调用P代码示例/ sumry /销售订单(业务类型报错) /uar / / /aram pbic staic void Add_Sai(U8Lgn.csLogin uLogn,Sti d,efsring vewIDRt) /第二步:构造环境上下文对象,传入loin,并按需设置其它上下文参数 U8Envontxt envotext = new U8EnvContex(); vCntxt8Log =uLgin; /销售所有接口均支持内部独立事务和外部事务,默认内部事务 /如果是外部事务,则需要传递AO.Connectin对象,并将IndeeneTranscton属性
3、设置为false /nvContet.BizDboneon new AD.Cnneco(); /nvContxtIIndependncTransac =le; /设置上下文参数 envontext.SeAntex(uherType, 2); /上下文数据类型:int,含义:单据类型:2 /第三步:设置API地址标识(Url) /当前P:新增或修改的地址标识为:8API/SaleOrder/Sav U8AAdes myApiAdres = new U8ApiAddress(U8API/SalOder/Save); /第四步:构造AIBroker UApiBroe broker =ew U8piB
4、roke(mypAddress, envContext); /第五步:PI参数赋值 /给BO表头参数omHed赋值,此BO参数的业务类型为销售订单,属表头参数。参数均按引用传递 /提示:给表头参数omHed赋值有两种方法 /方法一是直接传入XML2.OMDcumenClass对象 /brokeAsignNomalle(dmHead,nMXM2.DcumentCas() ADD.Conntin c =ew ADODB.Conetionlass(); ADODB.Records r=new ADDB.Recodsetlass(); MSXML2.DMDoumtdomhed= new SXML2.O
5、Mocutlas(); string stro =stin.Forma(ProviderQLOLED;nitial Catlog=0;DaaSource=1;, FDaa_ +u8Lgi.ge_cAcc_I() + _ + u8Lin.cIYa, uLogin.bServeNme); conn.On(sCon, s,u8Logn.ysPaswor, 0); srg ql= e op 1 * romSalOer r id= id + ; r.Open(ql, cn,AODB.ursrypeEnumaenForardOly, AODB.LockTpeEum.adLockOptimistic, -1
6、); ae(doma, ADDB.PersistFrmEu.aPersisX); UHlperFmatDom(ef ed, A); broerAssigNormaVaue(DomHad, omhea); domhead.slectngeode(/rs:dataz:o).attriutegtNedItem(i).odeVlu= ; SXML.DOMcumen domod new MSXML2.ODoumntClss(); /domBody.Rowut = ; DOB.onncon co = new ADODConnectioClass(); ADD.cordet rs1=ne ADODBecds
7、etCl(); sring stn1 =stng.Frat(Provier=SOB;nitia Catao=0;Data oce1;, UFData_+ uLoggtcAcc_Id() _ + uLoginIYea, Login.dberverName); conn1.Open(stonn, sa, u8Login.ysPord, ); sq = elt p1 * from leOdr whre id + i +; s1Opn(sql, conn, DODBCusorTypeEnu.aOpnorwardOnl, ADODB.LokTypeEnumadLockpimisti, 1); s1.Sa
8、e(domBdy,AODB.PeristFormatEnum.adPesit); AIeleForaom(re omBd,A); rokerssinNormalVal(dmody, oody); domBoy.slctSingleNod(/rs:dta/:row).attuesgtNamdItm(id).nodVale = ; mBody.eletSinleNde(/rs:daa/z:row)atribtes.gNamedItem(autoi).ndalue; /给普通参数Vuchete赋值。此参数的数据类型为it,此参数按值传递,表示状态:0增加;修改 boke.AsiormalVue(oc
9、hrStte, 0); 该参数Nw为IO型普通参数。此参数的数据类型为sig,此参数按值传递。在API调用返回时,可以通过etReult(vNwD)获取其值 rokr.AssignNomllue(wID, ); /给普通参数DoConig赋值。此参数的数据类型为MSX2.IMLDODocumt2,此参数按引用传递,表示ATO,TO选配 SXML2IXMDOMDoumnt2DoCofig nw MSML2.OMocumentClass(); bror.AssignmaVaue(DmCofig, Domonfg); /第六步:调用AI if (!broker.Inoke() /错误处理 Ectio
10、n apiEx rokr.GetExcption(); if(aiEx != null) (aiE isMomSysxceptn) MomSyExptin ysEx =apiE as MomsExepion; ConolertLie(系统异常:+ sysEx.essae); /td:异常处理 lse if (piEx is omBiException) MomBizExceionbix=aixas MoBizExcepton; Console.ieLine(API异常: bizEx.Message); /todo:异常处理 /异常原因 Sting xRason = brkeGeExetionSting(); if(eReason.Length !=0) Cosoe.WriLie(异常原因: +xeason); /结束本次调用,释放AP资源 roker.Reese(); turn; /第七步:获取返回结果 /获取返回值 /获取普通返回值。此返回值数据类型为System.Sin,此参数按值传递,表示成功为空串 stin ret=brkeGetReturnValue() as Systemtring; /获取ot/inut参数值 /获取普通INU参数NeID。此返回值数据类型为string
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1