智慧车间增加取数接口1.背景智慧车间通过WEBSERVICE接口可从CLOUD服务器获取某些单据的信息,目前标准产品提供了常用单据的数据获取接口,在某些现场根据自身项目的特点,需要增加其他单据或已有单据不同格式的数据获取接口。本文档旨在指导二次开发人员利用标准产品的智慧车间API接口平台(详见《智慧车间API接口平台介绍》)增加自定义取数接口。2.适用对象二次开发人员。3.基于平台增加取数接口本文将以“按状态获取工单信息”为例,描述如何通过智慧车间API接口平台新增一个取数接口,并根据传入的状态值及组织信息,获取符合条件的工单数据。开发的准备步骤详见《智慧车间接口自定义返回值.docx》中的第3章,本文档不再对此赘述,只介绍插件开发的核心方法。1.1定义参数和返回值对象调用接口时需要指定接口的传入参数类以及返回结果类。本示例想通过调用标准产品预置的通用接口来实现取数,而通用接口的参数类和结果类均使用的是默认值,因此原则上不需要单独建立。参数可以通过通用接口中的Param1~Param10输入,如本示例中需要传入组织编码和工单状态,因此只使用Param1、Param2即可。当然,对于复杂的参数,建议在Param1~Param10中传入Json文本,后续在处理器中再做解析。而返回结果需要包含工单的信息,如工单编号、分录行号、分录状态、产品编码、产品名称、数量等信息,由于结构相对复杂,直接返回默认结果类的话,在构造数据和返回显示上不太友好。因此最好建一个类来承接结果数据,这个类需要继承SFSDefaultParam类,命名空间为Kingdee.K3.MFG.SFS.Common.Core.ParamValue。图3-1返回结果类1.2定义接口实现类接口实现类用来校验输入参数是否合法,处理取数逻辑,并构建返回值。图3-2接口实现类必须继承自AbstractSFSAPIExecutor,并将标准传入参数类及返回结果类作为泛型传入。需要覆盖超类的如下几个方法: 参数校验方法ValidateParamValue验证参数合法性,如果不合法可以抛出KDBusinessException。 数据校验方法OnValidate必须覆盖,本示例不做任何处理。 逻辑处理方法图3-3根据传入参数获取目标单据的数据,并将其封装到返回结果中。构建返回结果时要注意,如果返回的是数据集合,则要将数据封装到this.ReturnListValue中,否则将数据封装到this.ReturnValue。图3-4如上图中,根据数据行数,逐一加到集合中,而且基于性能考虑,应该要限制一下返回的总行数,如本示例中控制最多只返回150行。 返回结果的集合属性方法IsList、ListCount图3-51.3注册接口在【车间Web接口定义】中注册接口实现类图3-61.4接口调用图3-71.5查看结果图3-8