赛捷软件论坛's Archiver

lynn.yu 发表于 2020-3-9 15:52

[V12功能解说] 5天学习Sage X3 Web Services 第5天

[b]* 本文由赛捷软件(上海)有限公司翻译完成,未经授权不得转载。如需转载,请先联系相应版块的版主取得授权。[/b]


[attach]5910[/attach]


[b]第5天 自.Net耗用X3子程序[/b]


这是整个5部分系列的第5部分,主要涉及如何为Sage X3 V12创建和耗用web services。这篇文章将着重于说明如何基于来自.Net的web services耗用子程序。在第1部分中我们探讨了Sage X3 Web Services池的设置,在第2部分中我们讨论了基于X3对象和子程序创建和发布web services,在第3部分中,则讨论了运用X3 web services测试器来测试和评估web services,而在第4部分中,我们探讨了自.Net程序调用基于X3对象的web services。


[b]在.NET中耗用X3 WEB SERVICES[/b]

通过采用X3的web services WSDL,可以自.net耗用X3 Web Services。以下是创建一个新的.Net项目来耗用X3 web services的具体步骤。若想从解决方案入手,那么第4天的博文中涵盖了关于添加和创建授权类的说明,涉及为web service的耗用创建.net初始化应用程序。

[b]初始化关联背景[/b]

下面是一个.net关联背景初始化的例子。
•        X3 Language——即“ENG”
•        X3 WS Pool——这是X3中设定的web service池名称。这可能与端点名称相同或不同,取决于其设置方法。
•        Context——变量属性是在此处设置的,包括返回格式(XML或JSON)。
•        Web Services Endpoint——在WSDL添加至项目时,这是默认添加至.config文件的,但是它是可以更改的。应该在这里指定它以覆盖原始定义。
•        Credentials——这是一个X3用户。必须在X3中设置这个用户才能访问web services。
•        Timeout——如果在web service调用过程中发生超时,那么可以增加这个数值。
•        Object Keys——这些是有些web service调用类型必须的,用来读取/更新特定的记录等。
[attach]5911[/attach]


[b]错误处理[/b]
•        web service resultXML会包含一个为0(失败)或为1(成功)的状态。
•        如果状态为0,则报错消息将作为CAdxMessage类型的数组返回。这些可以与消息文本一起进行严重程度评估。
•        如果状态为1,则表示web service成功。web service的结果可以从一个XML或JSON字符串反序列化到一个预定义的类中。
[attach]5912[/attach]


[b]调用一个X3子程序WEB SERVICE[/b]

调用一个自X3子程序发布的web service需要使用web service中的“run”方法。下面是调用我们在本系列第2天中创建的YWSCUSTLIS子程序的一个例子。

1. 第一步是初始化调用关联背景和基本身份验证属性。

2. 如果状态为1,则表示web service成功。web service的结果可以从一个XML或JSON字符串反序列化到一个预定义的类中。

3. 结果反序列化到的预定义类如下所示。
[attach]5913[/attach]

4. 下面是完整代码。
[attach]5914[/attach]

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.