金蝶云星空WebApi详解系列(一)保存原创
金蝶云社区-zcls86
zcls86
55人赞赏了该文章 1768次浏览 未经作者许可,禁止转载编辑于2023年10月07日 09:56:06

金蝶云星空WebApi详解系列(一)保存

 

 

组件调用与非组件调用区别


 

引用组件调用时

组件:Kingdee.BOS.WebApi.Client.dll

地址为:

http://IP/K3Cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save

语言:C#,vb.net调用

 

不引用组件调用时

地址为:

http://IP/K3Cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save.common.kdsvc

语言:不限

 

不引用组件与引用组件调用,地址后面多了.common.kdsvc

 

保存(新增和修改)


 

请求地址:

http://IP/K3Cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save

 

参数

Data参数信息

Dim json As New JObject()

        Dim arrayNeed As New JArray()

        Dim arrayReturn As New JArray()

        arrayReturn.Add("FBillNo")

        arrayReturn.Add("FEntity.ID,FEntity.FSeq")

        arrayReturn.Add("FEntity.FMaterialId")

        '需返回的字段 格式[key,entitykey.key,...]

        json.Add("NeedReturnFields", arrayReturn)

        '需要更新的字段(修改常用) 格式[key,entitykey.key,...]

        json.Add("NeedUpDateFields", arrayNeed)

 

        '是否删除已存在的分录【修改时控制分录是否删除】

        '修改时必传单据ID,明细ID 默认true

        json.Add("IsDeleteEntry", "true")

 

        '是否验证标记 '默认true

        '【为true时会验证表单必录和操作上的校验】

        json.Add("ValidateFlag", "true")

 

        '是否验证所有基础资料有效性 '默认false

        '验证基础资料存在性(禁用也是不存在)

        json.Add("IsVerifyBaseDataField", "false")

 

        '是否批量填充分录 '默认true

        json.Add("IsEntryBatchFill", "true")

 

        '是否用编码搜索基础资料 '默认true

        json.Add("NumberSearch", "true")

 

        '是否自动调整json字段顺序 '默认false

        json.Add("IsAutoAdjustField", "false")

        '是否自动提交审核 '默认false

        json.Add("IsAutoSubmitAndAudit", "true")

 

        '子系统

        json.Add("SubSystemId", "")

        '交互标志

        json.Add("InterationFlags", "")

        '是否充许忽略交互 '默认true

        json.Add("IgnoreInterationFlag", "true")    

 

        '单据

        Dim BillModel As New JObject()

        json.Add("Model", BillModel)

        BillModel省略

 

Dim para As Object() = {"FormId", json.ToString()}

        result = client.Execute(Of String)("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", para)

 

IsDeleteEntry:

在更新单据时,没有明细Id则会视为删除行,

没有明细Id的数据会视为新增,

有明细主键的视为更新

 

ValidateFlag和IsVerifyBaseDataField参数

 

Validate

Flag

是否验证标记

IsVerifyBase

DataField

所有基础资料有效性

 

基础资料(属性必录)

 

基础资料

传值情况

 

 

接口调用结果

 

成功与否影响参数

true

true

 

 

 

 

必录

值不存在

失败(该基础资料值必有效才成功)

 

 

 

二者

true

false

值不存在

失败(该基础资料值必有效才成功)

false

true

值不存在

失败(该基础资料值必有效才成功)

false

false

值不存在

成功(该基础资料值为空)



true

true

 

 

 

非必录

值不存在

失败(该基础资料值必有效才成功)

 

 

IsVerifyBase

DataField

 

true

false

值不存在

成功(该基础资料值为空)

false

true

值不存在

失败(该基础资料值必有效才成功)

false

false

值不存在

成功(该基础资料值为空)

 

总结:

上述除Model外的参数,如果都不传,则系统取参数默认值

Model拼接是模拟在ERP录入字段信息的过程,

Model中的字段先后顺序是影响字段赋值成功的关键

Model中的字段不必全都传,只传必录且关心的字段即可

有默认值的字段可以不传,除非默认值不是你需要的值

如果必录字段有默认值或是通过另一必录字段值更新得来,该字段也可不传 

 

保存返回参数(新增和修改)


 

成功json

image.png


失败json

image.png

 

ResponseStatus.IsSuccess:成功标识

ResponseStatus.Id:单据内码(成功才有值)

ResponseStatus.Number:单据编号(成功才有值)

ResponseStatus.MsgCode: MsgCode代码说明

           0:默认(成功时为默认)

           1:上下文丢失

           2:没有权限

           3:操作标识为空

           4:异常

           5:单据标识为空

           6:数据库操作失败

           7:许可错误

           8:参数错误

           9:指定字段/值不存在

           10:未找到对应数据

           11:验证失败

           12:不可操作

           13:网控冲突

 

Errors参数:失败数据包

1、 DIndex:传入单据的顺序号(此处始终是0,因为是单个保存)

2、 FieldName:具体错误字段名

3、 Message:具体错误信息

 

SuccessEntitys参数:成功数据包

1、DIndex:传入单据顺序号(此处始终是0,因为是单个保存)

2、ID:单据内码

3、FBillNo:单据编号

 

NeedReturnData返回的字段信息取决于传参时NeedReturnFields指定的字段

 

批量保存(新增和修改)


 

请求地址:

http://IP/K3Cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.BatchSave

 

与保存参数区别

1、 多个BatchCount参数:服务端开启的线程数,整型(非必录)

注(数据包数应大于此值,否则无效)

2、 Model与保存参数不同在于,批量Model是数组

Dim json As New JObject()

………

        Dim billArray As New JArray()

        json.Add("Model", billArray)

        For index = 1 To 2

            '单据

            Dim BillModel As New JObject()

            billArray.Add(BillModel)

            BillModel省略

        Next

 image.png

 

批量保存返回参数(新增和修改)


 


 image.png

ResponseStatus.IsSuccess:只要有一单错误,返回的IsSuccess就为False

 

Errors参数:

1、 DIndex:传入单据的顺序号(Model中数组序号)

2、 FieldName:具体错误字段名

3、Message:具体错误信息

 

SuccessEntitys参数:

1、DIndex:也是传入单据顺序号

2、ID:单据内码

3、FBillNo:单据编号


扫码关注,更多内容

image.png


系列文章-插件开发

https://vip.kingdee.com/article/435130016238639872?productLineId=1

赞 55