U8API开发手册Word格式.docx
- 文档编号:15903899
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:34
- 大小:220.63KB
U8API开发手册Word格式.docx
《U8API开发手册Word格式.docx》由会员分享,可在线阅读,更多相关《U8API开发手册Word格式.docx(34页珍藏版)》请在冰豆网上搜索。
正确使用则可以调用成功,否则会返回详细的错误信息。
以下代码中均以C#为例,VB语言请具体查看对应的VB代码示例部分。
图2.1接口描述
图2.2代码示例
2.1.2API调用过程
Ø
组件引用
针对两种语言,需要引用不同的组件。
(1)C#:
%U8SOFT%\Interop\Interop.U8Login.dll、
%U8SOFT%\Interop\Interop.MSXML2.dll、%U8SOFT%\UFMOM\U8APIFramework\UFIDA.U8.U8APIFramework.dll、%U8SOFT%\UFMOM\U8APIFramework\UFIDA.U8.MomServiceCommon.dll、%U8SOFT%\UFMOM\U8APIFramework\UFIDA.U8.U8MOMAPIFramework.dll
如下图2.3、2.4、2.5所示。
(2)VB:
%U8SOFT%\UFMOM\U8APIFramework\UFIDA.U8.U8APIFramework.tlb、%U8SOFT%\UFMOM\U8APIFramework\UFIDA.U8.MomServiceCommon.tlb、%U8SOFT%\UFMOM\U8APIFramework\UFIDA.U8.U8MOMAPIFramework.tlb、
添加MicrosoftXMLv3.0引用
如下图2.6、2.7所示。
其中,%U8SOFT%表示U8-872的安装目录。
图2.3添加对U8Login.dll引用
图2.4添加对Interop.MSXML2.dll引用
图2.5添加对U8API框架类库引用(.dll)
图2.6添加对U8API框架类库引用(.tlb)
图2.7添加MicrosoftXMLv3.0引用
API调用
添加必要的引用后,可以直接利用自动生成的代码示例(支持C#和VB两种语言),结合API接口详细描述,填入必要的参数值,就可以调用U8API。
总体上,对U8API的调用分成七个步骤:
1)构造u8login对象并登陆;
2)构造环境上下文对象,传入login,并按需设置其它上下文参数;
3)设置API地址标识(Url)参数;
4)构造APIBroker;
5)API参数赋值;
6)调用API;
7)获取返回结果。
详细的API调用过程请看下文“API内容”中各个模块中介绍的“开发步骤”。
BO参数赋值
API参数分两种类型:
BO参数和普通参数。
BO参数即单据表头或表体类型的参数,普通参数则是非表头表头类型的参数。
对BO参数,支持两种方式传入,一种传BO对象,另一种传DOM对象。
以下分别介绍:
(1)传BO对象
给BO表头参数或表体参数赋值,推荐使用BO对象(BussinessObject)。
例如:
BusinessObjectDomHead=broker.GetBoParam("
DomHead"
);
DomHead.RowCount=10;
//设置行数,不设置也可
//给BO对象的字段赋值,值可以是真实类型,也可以是无类型字符串
//以下代码示例只设置第一行值。
各字段定义详见API服务接口定义
/******************************以下是必输字段****************************/
DomHead[0]["
poid"
]="
"
;
//主关键字段,int类型
dpodate"
//日期,DateTime类型
cpoid"
//订单编号,string类型
……
/*****************************以下是非必输字段****************************/
ipresent"
//现存量,string类型
cmaketime"
//制单时间,DateTime类型
cmodifytime"
//修改时间,DateTime类型
在此种情况下U8API框架会对BO对象各字段进行参数校验。
对字段进行赋值时,值可以是真实类型,也可以是无类型字符串。
(2)传DOM对象
给BO表头参数或表体参数赋值,也支持直接传入DOM对象(DOMDocument)。
MSXML2.DOMDocumentClassdomHead=newMSXML2.DOMDocumentClass();
domHead.load("
domHead.xml"
broker.AssignNormalValue("
domHead"
domHead);
但是,在此种情况下U8API框架不会对DOM对象进行参数验证。
请在使用该方法之前,确保DOM对象的正确性。
2.1.3API典型应用场景
执行单一操作
单一操作指一项任务只需要一个API完成,比如:
单据新增、审核/弃审、删除等单一操作。
这是API调用最常见的场景,只需按照API的接口规范构造参数直接调用即可。
执行复合操作
复合操作,即一项任务由多个API的协作来完成。
比如,自定义的单据维护界面的主要逻辑,一般由以下四个步骤构成:
8)加载单据;
9)在编辑界面上显示;
10)用户修改单据字段;
11)提交保存。
以上步骤需要进行两次API调用:
1)加载单据时候调用“加载API”,以获取单据BO对象(或原始DOM对象)并在界面上展现;
2)用户在修改单据时其实就是在修改BO对象,用户保存单据时调用“保存API”,此时要将此BO对象传给“保存API”(而不用构造新的BO对象)。
代码示例:
首先,登陆;
//构造u8login对象并登陆
U8Login.clsLoginu8Login=newU8Login.clsLogin();
StringsSubId="
AS"
StringsAccID="
(default)@001"
StringsYear="
2008"
StringsUserID="
demo"
StringsPassword="
StringsDate="
2008-09-30"
StringsServer="
localhost"
StringsSerial="
if(!
u8Login.Login(refsSubId,refsAccID,refsYear,refsUserID,refsPassword,refsDate,refsServer,refsSerial))
{
Console.WriteLine("
登陆失败,原因:
+u8Login.ShareString);
Marshal.FinalReleaseComObject(u8Login);
return;
}
然后,通过LOAD接口获取BO对象;
//构造环境上下文对象,传入login,并按需设置其它上下文参数
U8EnvContextenvContext=newU8EnvContext();
envContext.U8Login=u8Login;
//设置上下文参数
//设置API地址标识(Url)
U8ApiAddressmyApiAddress=newU8ApiAddress(“装载单据的地址标识”);
//构造APIBroker
U8ApiBrokerbroker=newU8ApiBroker(myApiAddress,envContext);
//API参数赋值
参数名"
"
参数值"
//调用LOAD接口API
broker.Invoke())
//错误处理
ExceptionapiEx=broker.GetException();
if(apiEx!
=null)
{
if(apiExisMomSysException)
{
MomSysExceptionsysEx=apiExasMomSysException;
Console.WriteLine("
系统异常:
+sysEx.Message);
//todo:
异常处理
}
elseif(apiExisMomBizException)
MomBizExceptionbizEx=apiExasMomBizException;
API异常:
+bizEx.Message);
}
//结束本次调用,释放API资源
broker.Release();
//获取表头或表体的BO对象,如果要取原始的XMLDOM对象结果,请使用GetResult(参数名)
BusinessObjectDomRet=broker.GetBoParam("
表头或表体参数名"
接着,BO对象经用户修改重新赋值,并传递给UPDATE接口提交保存;
//修改获取的BO对象,对需要更改的字段重新赋值
DomRet[0]["
字段
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- U8API 开发 手册