造数脚本--OPENAPIV1.0脚本编写指引

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

造数脚本--OPENAPIV1.0脚本编写指引

1 概述

苍穹的开放平台对外提供多种接口类型,包括操作服务、自定义服务、AI服务。

  • 操作服务是将业务对象(单据、基础资料)的操作(保存,提交,查询等)一键发布成为OpenAPI,系统自动生成服务接口及服务契约;

  • 自定义服务可以将任何功能开发出来,这类服务不依附任何业务对象,出入参数可以完全自定义;

  • AI服务是对接金蝶AI平台的一种特殊服务,可以将AI平台的命令与插件适配,并执行对应插件逻辑。


本文主要介绍没有自定义接口服务的情况下,如何使用操作服务的OpenAPI,发出接口请求,可用来做接口测试和性能测试等


2  OpenAPI脚本编写

样例:以【制造云】→【生产任务管理】→【生产工单】“新增”为例。

目标:使用OpenAPI接口创建生产工单。

具体操作如下。

2.1  建立API服务

步骤1:新增OpenAPI服务

【苍穹首页】→【开发服务云】→【开放平台】→【API服务管理】→"新增",选择"操作服务"→"创建",进入API的配置页。填写完成后,点击"保存"。



步骤2:查询API服务

在API服务管理列表中搜索“生产工单”,新建的“生产工单新增”已创建。


2.2 确定字段类型

确定字段的类型,可进入表单设计器查看。

进入路径有两种:

1.在生产工单的单据页面,快捷键Ctrl+Alt+G进入“生产工单”的设计器;

2.通过【苍穹首页】→【开发服务云-】→【开发平台】→【制造云】→【生产任务管理】→【生产工单 】,进入“生产工单”的设计器。



如下图所示,左边为表单的字段、元素列表,右边为属性,中间区域为可视化展示表单界面,点击相应位置,左右两边会切换到相应属性。


通过表单设计器中可以识别必填和非必填字段,必填字段在表单中以“*”标记。通过右边的属性栏,可以看到字段类型,从而确定字段类型。设计器看到的字段类型不同于自定义接口中规定的类型。


2.3 确定键值对

新建OpenAPI,HTTP请求使用post方式,内容格式一般为application/json,所以需要确定JSON对象和数组,通过表单设计器获取字段的属性、字段名,部分值。

确定字段名和字段格式后,开始写接口请求,具体的传值与请求的目的相关。在接口测试中,不同的传值对应不同的用例。


字段类型—引用字段


请先看“生产组织”这个字段。首先定位到“生产组织”,查看右边的属性,“生产组织”的标识为org,也即OpenAPI的字段名为org。


在右边的属性区域可以看到组织的字段类型为“组织”,说明生产工单中的组织通过关联组织表获得,引用属性中有number,可通过number来引用具体的值,比如"org":{"number":"Org-00014"},也可通过ID来引用,ID在数据库中存储的字段名为fid。




如何获取生产组织表中number值?

1.可以通过生产工单打开生产组织的F7,编码直接展示在F7的页面;

2.去数据库中查询生产组织的number值。

比如在F7的页面,可以通过number为"0001”取名称为“fenfen"的组织。




到此,字段名和值均获取,即API的请求中,可编写  

"org":{"number":"Org-00014"};


通过设计器,我们可以了解一个字段是否通过关联其他表获得,字段类型为基础资料、组织、物料、计量单位等在单据页面需要通过F7取值的均为引用字段。


字段类型下拉列表


生产工单中,组件清单异步状态字段 类型为下拉列表。通过标识得到字段名为asyncstatuspom。



点击下拉项,查看下拉项的下拉值,我们得到“处理中”的下拉值为“A”。



即 “组件清单异步状态”字段在API请求中传值为:"asyncstatuspom":"A" (表示组件清单异步状态为处理中)。


字段类型表单分录


分录以JSON数组形式组装(可以去详细了解JSON格式)。

生产工单的分录的标识为treeentryentity。



分录中的每条分录以数组的形式组装,比如一条分录可以表示为:

"treeentryentity":[{"producttype":"C","material":{"number":"03011MQW"},"materialname":"","modelnum":"AAA-L29C","unit":{"number":"PCS整数"},"qty":"10","inwardept":{"number":"Org-00012"},"bomid":{"number":"BOM-1220-03896"},"bomversion":{"number":"BOM-1220-03896"},"expendbomtime":"2021-01-11 10:47:38.0","planpreparetime":"2021-01-11 10:47:38.0","planbegintime":"2021-01-11 10:47:38.0","planendtime":"2021-01-11 10:47:38.0"}]

一条分录表示一个JSON对象,用“花括号{}”括起来,整个分录体是一个JSON数组,用“中括号[]”括起来。




字段类型文本类型


文本类型的字段直接传值,比如生产工单中的“备注”字段。文本类型一般为“String”类型,值需用引号括起来。比如“remark”:”生产工单test”。



文本类型的字段可直接填写。



字段类型基础资料属性


字段类型为 “基础资料属性”,即来源于基础资料的某个字段。

如图,生产工单里的业务类型,来源于生产事务类型的“业务类型.名称”。

在页面,当选择生产事务类型时,“业务类型.名称"自动带出。

在接口传参时,可参考页面上自动带出的值,也可以去数据库查询生产事务类型表中的“业务类型.名称”。


请注意与前面“生产事务类型”的值匹配,它们是“生产事物类型”表中同一条数据的两个值。



页面上选择生产事务类型为”HA标准生产”,业务类型自动带出”标准生产”。



3 请求

按照各个字段的属性,通过上述方法得出键值对,拼写成请求入参。

下图为新增生产工单的请求入参,选取了几个重要字段,本文不涉及数据的参数化。



4 入参参数化

入参可以通过Beanshell脚本进行参数化,比如分录如果需要创建几万条,可以写一个循环结构来创建几万条的数组,如果请求的参数需要灵活取值,比如随机关联基础资料,时间分布均匀化,可通过方法参数化后再传入。

Beanshell的功能比较强大,作为Jmeter的扩展功能,可灵活处理各种场景。本文不详叙。


5 一些小技巧

接口字段格式和传值不知如何确定时,有以下小技巧可用:

1.可先在页面建一条数据,然后去数据库中查看存储的值,接口中的传值,大多数情况会和数据库中存储的值一致。

2.先在页面填写值,点击保存,通过谷歌浏览器F12对请求抓包,查看请求入参,参考如何取值。

造数脚本--OPENAPIV1.0脚本编写指引

1 概述苍穹的开放平台对外提供多种接口类型,包括操作服务、自定义服务、AI服务。操作服务是将业务对象(单据、基础资料)的操作(保存,...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息