如何查找和使用U8的API.docx

上传人:b****2 文档编号:1265566 上传时间:2022-10-19 格式:DOCX 页数:14 大小:438.86KB
下载 相关 举报
如何查找和使用U8的API.docx_第1页
第1页 / 共14页
如何查找和使用U8的API.docx_第2页
第2页 / 共14页
如何查找和使用U8的API.docx_第3页
第3页 / 共14页
如何查找和使用U8的API.docx_第4页
第4页 / 共14页
如何查找和使用U8的API.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

如何查找和使用U8的API.docx

《如何查找和使用U8的API.docx》由会员分享,可在线阅读,更多相关《如何查找和使用U8的API.docx(14页珍藏版)》请在冰豆网上搜索。

如何查找和使用U8的API.docx

如何查找和使用U8的API

如何查找和使用U8的API

 

 

————————————————————————————————作者:

————————————————————————————————日期:

 

如何查找和使用U8的API

摘要

客户化开发中常常有将某些数据经过加工后存储至U8标准单据中的需求,通常客开人员是通过将数据插入物理表的方式进行,这时插入的数据未经系统的业务校验,为后续操作埋下诸多隐患。

U8的API接口,则是提供给客开操作系统单据的一个接口,客开只需将数据组织好,系统校验、增、删、改等操作都有不同的API接口来实现,调用相应API就可以完成操作。

如何使用API

a)API位置

如下图所示:

b)API接口描述

选择服务接口,右键,可以查看该接口的描述、代码示例,如下图所示:

c)API参考代码示例

实际应用

本文以C#代码为例,数据源采用系统中已存在单据做为数据源进行讲解。

调用API代码示例

///<summary>

   /// 销售订单(业务类型报错)

   ///

   ///

 ///</param>

   publicstaticvoidAddSO_SOMain(U8Login.clsLoginu8Login,Stringid, ref stringvNewIDRet)

   {

   //第二步:

构造环境上下文对象,传入login,并按需设置其它上下文参数

  U8EnvContextenvContext=newU8EnvContext();

    envContext.U8Login= u8Login;

  //销售所有接口均支持内部独立事务和外部事务,默认内部事务

  //如果是外部事务,则需要传递ADO.Connection对象,并将IsIndependenceTransaction属性设置为false

    //envContext.BizDbConnection =newADO.Connection();

  //envContext.IsIndependenceTransaction= false;

  //设置上下文参数

    envContext.SetApiContext("VoucherType",12);//上下文数据类型:

int,含义:

单据类型:

12

 //第三步:

设置API地址标识(Url)

      //当前API:

新增或修改的地址标识为:

U8API/SaleOrder/Save

  U8ApiAddressmyApiAddress=newU8ApiAddress("U8API/SaleOrder/Save");

    //第四步:

构造APIBroker

    U8ApiBrokerbroker= newU8ApiBroker(myApiAddress,envContext);

     //第五步:

API参数赋值

   //给BO表头参数domHead赋值,此BO参数的业务类型为销售订单,属表头参数。

BO参数均按引用传递

   //提示:

给BO表头参数domHead赋值有两种方法

    //方法一是直接传入MSXML2.DOMDocumentClass对象

   //broker.AssignNormalValue("domHead", new MSXML2.DOMDocumentClass())

    ADODB.Connectionconn= newADODB.ConnectionClass();

     ADODB.Recordsetrs = newADODB.RecordsetClass();

      MSXML2.DOMDocument domhead =newMSXML2.DOMDocumentClass();

 stringstrConn= string.Format("Provider=SQLOLEDB;InitialCatalog={0};Data Source={1};","UFData_"+ u8Login.get_cAcc_Id()+"_"+u8Login.cIYear,u8Login.dbServerName);

   conn.Open(strConn,"sa", u8Login.SysPassword,0);

    stringsql ="selecttop1*from SaleOrderQwhere id='"+id+"'";

    rs.Open(sql,conn, ADODB.CursorTypeEnum.adOpenForwardOnly,ADODB.LockTypeEnum.adLockOptimistic,-1);

   rs.Save(domhead,ADODB.PersistFormatEnum.adPersistXML);

 U8APIHelper.FormatDom(refdomhead,"A");

    broker.AssignNormalValue("DomHead",domhead);

 domhead.selectSingleNode("//rs:

data/z:

row").attributes.getNamedItem("id").nodeValue ="";

   MSXML2.DOMDocumentdomBody= newMSXML2.DOMDocumentClass();

  //domBody.RowCount=1;

   ADODB.Connectionconn1=newADODB.ConnectionClass();

  ADODB.Recordsetrs1 = newADODB.RecordsetClass();

 stringstrConn1= string.Format("Provider=SQLOLEDB;InitialCatalog={0};DataSource={1};","UFData_" +u8Login.get_cAcc_Id()+"_"+u8Login.cIYear,u8Login.dbServerName);

    conn1.Open(strConn,"sa",u8Login.SysPassword,0);

  sql="selecttop 1*fromSaleOrderSQwhere id='"+id+ "'";

     rs1.Open(sql,conn,ADODB.CursorTypeEnum.adOpenForwardOnly,ADODB.LockTypeEnum.adLockOptimistic,-1);

 rs1.Save(domBody, ADODB.PersistFormatEnum.adPersistXML);

   U8APIHelper.FormatDom(refdomBody, "A");

   broker.AssignNormalValue("domBody",domBody);

       domBody.selectSingleNode("//rs:

data/z:

row").attributes.getNamedItem("id").nodeValue="";

  domBody.selectSingleNode("//rs:

data/z:

row").attributes.getNamedItem("autoid").nodeValue = "";

  

 //给普通参数VoucherState赋值。

此参数的数据类型为int,此参数按值传递,表示状态:

0增加;1修改

   broker.AssignNormalValue("VoucherState",0);

  //该参数vNewID为INOUT型普通参数。

此参数的数据类型为string,此参数按值传递。

在API调用返回时,可以通过GetResult("vNewID")获取其值

  broker.AssignNormalValue("vNewID","");

   //给普通参数DomConfig赋值。

此参数的数据类型为MSXML2.IXMLDOMDocument2,此参数按引用传递,表示ATO,PTO选配

    MSXML2.IXMLDOMDocument2 DomConfig=newMSXML2.DOMDocumentClass();

    broker.AssignNormalValue("DomConfig",DomConfig);

     //第六步:

调用API

        if(!

broker.Invoke())

    {

    //错误处理

  ExceptionapiEx=broker.GetException();

  if (apiEx!

=null)

  {

        if (apiExis MomSysException)

     {

     MomSysExceptionsysEx= apiExasMomSysException;

      Console.WriteLine("系统异常:

" +sysEx.Message);

         //todo:

异常处理

    }

       elseif(apiExisMomBizException)

     {

    MomBizException bizEx = apiEx asMomBizException;

   Console.WriteLine("API异常:

"+bizEx.Message);

     //todo:

异常处理

    }

   //异常原因

     StringexReason=broker.GetExceptionString();

    if (exReason.Length!

= 0)

    {

     Console.WriteLine("异常原因:

"+ exReason);

 }

  }

   //结束本次调用,释放API资源

      broker.Release();

   return;

  }

  //第七步:

获取返回结果

  //获取返回值

 //获取普通返回值。

此返回值数据类型为System.String,此参数按值传递,表示成功为空串

 stringresult = broker.GetReturnValue()asSystem.String;

 //获取out/inout参数值

//获取普通INOUT参数vNewID。

此返回值数据类型为string

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1