1. Kingdee WEB API

1.1. 原理

  • 金蝶WEBAPI原理

    基于RestFul架构的http+Json请求方式,cookie的接口登录授权、统一接口无需按单据区分接口(只需改变参数)

  • EBS接口原理

    综合管理系统中,在相关单据的流程节点提交前编写 JavaScript 逻辑,调用系统预置的方法(runwebservic),请求后端Java服务,Java调用HTTP 请求,保存并返回给浏览器以模拟登录。登录成功后真正的业务接口把cookie 作为一个额外的参数传递给后端预定义的接口,实现接口调用。

1.2. 接口定义

1.2.1. 获取金蝶系统接口授权信息

image-20200812112952868

1.2.2. EBS中定义登录接口

image-20200812113414082

  • URI

http://demo.com/K3Cloud/Kingdee.BOS.WebApi.ServicesStub.AuthService.ValidateUser.common.kdsvc&&acctID=5e8f261b8f6559&username=demo&password=&lcid=2052

1.2.3. EBS中定义操作接口

同登录接口定义,根据具体接口调整URL和参数即可。

1.3. 附-详情接口

1.3.1. 1.1.1. 登陆验证接口

服务地址:

http://ServerIp/K3Cloud/Kingdee.BOS.WebApi.ServicesStub.AuthService.ValidateUser.common.kdsvc

接口参数:

参数列表 参数含义 备注
acctID 账套Id,从管理中心数据库查询获得 参考查询:select FDATACENTERID from T_BAS_DATACENTER 必须
username 用户登陆名 必须
password 密码 必须
lcid 语言id,选择哪种语言访问,参考:中文2052,英文1033,繁体3076 非必须,引用SDK组件辅助类调用则必须

返回参数:

参数列表 参数含义 备注
LoginResultType //激活 Activation = -7, //云通行证未绑定Cloud账号 EntryCloudUnBind = -6, //需要表单处理 DealWithForm = -5, //登录警告 Wanning = -4, //密码验证不通过(强制的) PWInvalid_Required = -3, //密码验证不通过(可选的) PWInvalid_Optional = -2, //登录失败 Failure = -1, //用户或密码错误 PWError = 0, //登录成功 Success = 1 管理员登陆可能出现返回-5的情况,这种情况在api验证时也可认为是允许的,具体可以根据实际情况来定。 var result = JObject.Parse(ret)["LoginResultType"].Value(); if (result == 1||result==-5) { return true; }

调用参考:

1)SDK辅助类示例(引用Kingdee.BOS.WebAPI.Client.dll):

说明:下文中出现的client都为此处进行过登陆验证的ApiClient实例。

ApiClient client = new ApiClient("http://192.168.66.60/k3cloud/");
string dbId = "5756960b27b1aa"; //AotuTest117
bool bLogin = client.Login(dbId, "demo", "888888", 2052);
if (bLogin)
{
//todo:登陆成功处理业务 
}

2)无引用组件示例(不引用金蝶的组件):

说明:以下HttpClient为自定义客户端调用辅助类,下文中所指HttpClient都表示这个类。

登陆验证参考:

  HttpClient httpClient = new HttpClient();

  httpClient.Url = "http://192.168.66.60/k3cloud/Kingdee.BOS.WebApi.ServicesStub.AuthService.ValidateUser.common.kdsvc";

  List<object> Parameters = new List<object>();

  Parameters.Add("558cbb01bfc79b");//帐套Id

  Parameters.Add("Administrator");//用户名

  Parameters.Add("888888");//密码

  Parameters.Add(2052);

  httpClient.Content = JsonConvert.SerializeObject(Parameters);

  var iResult = JObject.Parse(httpClient.AsyncRequest())["LoginResultType"].Value<int>();

  if (iResult == 1){

  //todo:验证成功,处理业务

  }

1.3.2. 1.1.2. 查看表单数据接口

服务地址:

http://ServerIp/K3Cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.View.common.kdsvc

接口参数:

参数列表 参数含义 备注
formid 表单Id,格式参考:"IV_SALESIC"//表示发票 必须
data 数据包,Number表示单据编号或者基础资料编码,Id为主键,CreateOrgId为创建组织Id。格式参考:"{\"CreateOrgId\":0,\"Id\":0,\"Number\":\"SVINV00000003\"}" CreateOrgId:非必须 Id和Number:任选一个

返回参数:

参数列表 参数含义 备注
ResponseStatus 操作状态 操作是否成功,如果失败,具体失败原因
Result 单据数据包 单据完整数据内容

调用参考:

1)SDK辅助类示例(引用Kingdee.BOS.WebAPI.Client.dll):

 string sJson = "{\"Number\":\"SVINV00000003\"}"; 

  var result = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.View",

  new object[] { "IV_SALESIC", sJson })

2)无引用组件示例(不引用金蝶的组件):

HttpClient httpClient = new HttpClient();

httpClient.Url = "http://192.168.66.60/k3cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.View.common.kdsvc";

List<object> Parameters = new List<object>();

//业务对象Id 

String formid = "IV_SALESIC";//发票

Parameters.Add(formid);

//Json字串

string data = "{\"Number\":\"SVINV00000003\"}";

Parameters.Add(data);

httpClient.Content = JsonConvert.SerializeObject(Parameters);

var result = httpClient.AsyncRequest();

1.3.3. 1.1.3. 保存表单数据接口

服务地址:

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

接口参数:

参数列表 参数含义 备注
formid 表单Id,格式参考:" GL_VOUCHER "//表示币别 必须
data 数据包,数据格式参考以币别为例:"{\"Creator\":\"\", \"NeedUpDateFields\":[\"\"], \"IsDeleteEntry\":\"false\", \"NeedReturnFields\":\" \", \"IsVerifyBaseDataField\":\"false\", \"IsEntryBatchFill\":\"false\", \"Model\":{\"FNumber\": \"PRENB001\", \"FName\":\"牛币\",\"FCODE\":\"CNYY\", \"FPRICEDIGITS\":6, \"FAMOUNTDIGITS\":2, \"FPRIORITY\":0, \"FIsShowCSymbol\":true}}" Creator:非必须 NeedUpDateFields:非必须,如果是更新单据而不是新增一个单据,可以设置这个数据集合,内容为字段标识,使用逗号分隔,如果需要更新表体数据,则需要填写表体的标识。一般情况下,如果Model中只填写了需要更新的字段信息,没有其他冗余的字段,那么这个参数不需要设置,否则其他冗余字段会覆盖ERP中的源单数据。 IsDeleteEntry:非必须,在修改单据时是否需要删除已经存在的分录。 NeedReturnFields:非必须,需要返回的所有字段。 IsVerifyBaseDataField:非必须,是否需要验证基础资料。 IsEntryBatchFill:非必须,是否需要批量填充分录。 Model:必须,Model数据格式说明:所有字段和实体都是用元素的标识来识别。单据头字段直接填写字段标识和数据,子单据头字段需要先申明是子单据头信息,然后再填写其字段信息,例如\"SubHeadEntity\":{\"FBARCODE\":\"20305\"}如果是单据体字段则需要申明为集合,例如:\"EntryDetail\":[{第1条明细},{第N条明细}],需要用中括号括起来。 另外要注意的是更新单据时,表体信息必须填写明细表体的主键,如果不填写,将会删除源单的表体,而没有主键的数据会视为新增,有明细主键的视为更新。

返回参数:

参数列表 参数含义 备注
ResponseStatus 操作状态 {"ResponseStatus":{"ErrorCode":"", "IsSuccess":false, "Errors":[{"FieldName":"", "Message":"","DIndex":0}], "SuccessEntitys":[{"Id":"","Number":"","DIndex":0}], "SuccessMessages":[{"FieldName":"","Message":"","DIndex":0}],"MsgCode":0} IsSuccess:操作是否成功, Errors:如果失败,具体失败原因 DIndex:原始数据行号, MsgCode:等于1,会话丢失,重新登录;等于0,其他情况

1.3.4. 1.1.4. 批量保存表单数据接口

服务地址:

http://ServerIp/K3Cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.BatchSave.common.kdsvc

接口参数:

参数列表 参数含义 备注
formid 表单Id,格式参考:"SAL_SaleOrder"//表示销售订单 必须
data 数据包,格式参考以销售订单为例: "{\"NeedUpDateFields\":[],\"BatchCount\":\"2\", \"Model\":[{\"FID\":\"0\",\"FBILLTYPEID\":{\"FNumber\":\"XSDD01_SYS\"},\"FSaleOrgId\":{\"FNumber\":\"NCIC\"},\"FSaleDeptId\":{\"FNumber\":\"01.A13\"},\"FCustId\":{\"FNumber\":\"500\"},\"FDATE\":\"2016/2/23\",\"FSettleCurrId\":{\"FNumber\":\"RMB\"},\"FSalerId\":{\"FNumber\":\"B027\"},\"FBusinessType\":\"NORMAL\",\"FSaleOrderFinance\":{\"FEXCHANGETYPE\":{\"FNumber\":\"NCIC\"},\"FExchangeRate\":\"1\"},\"FSaleOrderEntry\":[{\"FMATERIALID\":{\"FNumber\":\"A.0060480931\"},\"FUNITID\":{\"FNumber\":\"03\"},\"FQty\":\"1\",\"FTaxPrice\":\"100\",\"FEntryTaxRate\":\"17.00\"}]},{\"FID\":\"0\",\"FBILLTYPEID\":{\"FNumber\":\"XSDD01_SYS\"},\"FSaleOrgId\":{\"FNumber\":\"NCIC\"},\"FSaleDeptId\":{\"FNumber\":\"01.A13\"},\"FCustId\":{\"FNumber\":\"500\"},\"FDATE\":\"2016/2/23\",\"FSettleCurrId\":{\"FNumber\":\"RMB\"},\"FSalerId\":{\"FNumber\":\"B027\"},\"FBusinessType\":\"NORMAL\",\"FSaleOrderFinance\":{\"FEXCHANGETYPE\":{\"FNumber\":\"NCIC\"},\"FExchangeRate\":\"1\"},\"FSaleOrderEntry\":[{\"FMATERIALID\":{\"FNumber\":\"A.0060480931 \"}, \"FUNITID\":{\"FNumber\":\"03\"},\"FQty\":\"1\",\"FTaxPrice\":\"100\",\"FEntryTaxRate\":\"17.00\"}]},{\"FID\":\"0\",\"FBILLTYPEID\":{\"FNumber\":\"XSDD01_SYS\"},\"FSaleOrgId\":{\"FNumber\":\"NCIC\"},\"FSaleDeptId\":{\"FNumber\":\"01.A13\"},\"FCustId\":{\"FNumber\":\"500\"},\"FDATE\":\"2016/2/23\",\"FSettleCurrId\":{\"FNumber\":\"RMB\"},\"FSalerId\":{\"FNumber\":\"B027\"},\"FBusinessType\":\"NORMAL\",\"FSaleOrderFinance\":{\"FEXCHANGETYPE\":{\"FNumber\":\"NCIC\"},\"FExchangeRate\":\"1\"},\"FSaleOrderEntry\":[{\"FMATERIALID\":{\"FNumber\":\"A.0060480931\"},\"FUNITID\":{\"FNumber\":\"03\"},\"FQty\":\"1\",\"FTaxPrice\":\"100\",\"FEntryTaxRate\":\"17.00\"}]}]}" BatchCount:非必须。此参数主要用于优化性能,当传入的单据数据量较大时,可以设定此参数的并行分批执行次数。例如传入100张单据数据,此参数设定为10,则表示在k3cloud系统中,以10个单据为一批,分10批,同时并发保存,提升效率。 数据包参数格式和Save接口的类似,主要差别在于批量保存是传入多张单据的数据,Modle数据用[]括起来,而Save仅传入一张单据数据。再一个区别是批量保存多了一个参数BatchCount。

返回参数:

参数列表 参数含义 备注
ResponseStatus 操作状态 {"ResponseStatus":{"ErrorCode":"", "IsSuccess":false, "Errors":[{"FieldName":"", "Message":"","DIndex":0}], "SuccessEntitys":[{"Id":"","Number":"","DIndex":0}], "SuccessMessages":[{"FieldName":"","Message":"","DIndex":0}],"MsgCode":0} IsSuccess:操作是否成功, Errors:如果失败,具体失败原因 DIndex:原始数据行号,如果接口参数启用了BatchCount,则DIndex返回的顺序不是所有数据的顺序,而是每批次中 MsgCode:等于1,会话丢失,重新登录;等于0,其他情况的顺序。

1.3.5. 1.1.5. 提交表单数据接口

服务地址:

http://ServerIp/K3Cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit.common.kdsvc

接口参数:

参数列表 参数含义 备注
formid 表单Id,格式参考:"BD_Currency"//表示币别 必须
data 数据包,Number表示单据编号或者基础资料编码,Id为主键,CreateOrgId为创建组织Id。数据格式参考以币别为例:"{\"CreateOrgId\":0,\"UseOrgId\":0,\"Numbers\":[\"PRE002\",\"PRE006\"]}" CreateOrgId:创建组织Id,非必须 UseOrgId:使用组织Id,非必须 Numbers:必须

返回参数:

参数列表 参数含义 备注
ResponseStatus 操作状态 {"ResponseStatus":{"ErrorCode":"", "IsSuccess":false, "Errors":[{"FieldName":"", "Message":"","DIndex":0}], "SuccessEntitys":[{"Id":"","Number":"","DIndex":0}], "SuccessMessages":[{"FieldName":"","Message":"","DIndex":0}],”MsgCode”:0} IsSuccess:操作是否成功, Errors:如果失败,具体失败原因 DIndex:原始数据行号, MsgCode:等于1,会话丢失,重新登录;等于0,其他情况

1.3.6. 1.1.6. 审核表单数据接口

服务地址:

http://ServerIp/K3Cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit.common.kdsvc

接口参数:

参数列表 参数含义 备注
formid 表单Id,格式参考:"BD_Currency"//表示币别 必须
data 数据包,Number表示单据编号或者基础资料编码,Id为主键,CreateOrgId为创建组织Id。数据格式参考以币别为例:"{\"CreateOrgId\":0,\"UseOrgId\":0,\"Numbers\":[\"PRE002\",\"PRE006\"]}" CreateOrgId:创建组织Id,非必须 UseOrgId:使用组织Id,非必须 Numbers:必须

返回参数:

参数列表 参数含义 备注
ResponseStatus 操作状态 {"ResponseStatus":{"ErrorCode":"", "IsSuccess":false, "Errors":[{"FieldName":"", "Message":"","DIndex":0}], "SuccessEntitys":[{"Id":"","Number":"","DIndex":0}], "SuccessMessages":[{"FieldName":"","Message":"","DIndex":0}], “MsgCode”:0} IsSuccess:操作是否成功, Errors:如果失败,具体失败原因 DIndex:原始数据行号, MsgCode:等于1,会话丢失,重新登录;等于0,其他情况

1.3.7. 1.1.7. 反审核表单数据接口

服务地址:

http://ServerIp/K3Cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.UnAudit.common.kdsvc

接口参数:

参数列表 参数含义 备注
formid 表单Id,格式参考:"BD_Currency"//表示币别 必须
data 数据包,Number表示单据编号或者基础资料编码,Id为主键,CreateOrgId为创建组织Id。数据格式参考以币别为例:"{\"CreateOrgId\":0,\"UseOrgId\":0,\"Numbers\":[\"PRE002\",\"PRE006\"]}" CreateOrgId:创建组织Id,非必须 UseOrgId:使用组织Id,非必须 Numbers:必须

返回参数:

参数列表 参数含义 备注
ResponseStatus 操作状态 {"ResponseStatus":{"ErrorCode":"", "IsSuccess":false, "Errors":[{"FieldName":"", "Message":"","DIndex":0}], "SuccessEntitys":[{"Id":"","Number":"","DIndex":0}], "SuccessMessages":[{"FieldName":"","Message":"","DIndex":0}], “MsgCode”:0} IsSuccess:操作是否成功, Errors:如果失败,具体失败原因 DIndex:原始数据行号, MsgCode:等于1,会话丢失,重新登录;等于0,其他情况

1.3.8. 1.1.8. 删除表单数据接口

服务地址:

http://ServerIp/K3Cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Delete.common.kdsvc

接口参数:

参数列表 参数含义 备注
formid 表单Id,格式参考:"BD_Currency"//表示币别 必须
data 数据包,Number表示单据编号或者基础资料编码,Id为主键,CreateOrgId为创建组织Id。数据格式参考以币别为例:"{\"CreateOrgId\":0,\"UseOrgId\":0,\"Numbers\":[\"PRE002\",\"PRE006\"]}" CreateOrgId:创建组织Id,非必须 UseOrgId:使用组织Id,非必须 Numbers:必须

返回参数:

参数列表 参数含义 备注
ResponseStatus 操作状态 {"ResponseStatus":{"ErrorCode":"", "IsSuccess":false, "Errors":[{"FieldName":"", "Message":"","DIndex":0}], "SuccessEntitys":[{"Id":"","Number":"","DIndex":0}], "SuccessMessages":[{"FieldName":"","Message":"","DIndex":0}], “MsgCode”:0} IsSuccess:操作是否成功, Errors:如果失败,具体失败原因 DIndex:原始数据行号, MsgCode:等于1,会话丢失,重新登录;等于0,其他情况

1.3.9. 1.1.9. 表单数据查询接口

服务地址:

http://ServerIp/K3Cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery.common.kdsvc

接口参数:

参数列表 参数含义 备注
data 数据包格式参考:
{
"FormId": "PUR_PurchaseOrder",
"TopRowCount": 0,
"Limit": 10,
"StartRow": 0,
"FilterString": "FMaterialId.FNumber='HG_TEST'",
"OrderString": "FID ASC",
"FieldKeys": "FID,FSupplierId,FMaterialId,FMaterialId.FNumber,FMaterialName"
}
FormId:查询表单元数据唯一标识 TopRowCount: 最多允许查询的数量,0或者不要此属性表示不限制 Limit:分页取数每页允许获取的数据,最大不能超过2000 StartRow:分页取数开始行索引,从0开始,例如每页10行数据,第2页开始是10,第3页开始是20 FilterString:过滤条件 OrderString:排序条件 FieldKeys:待查询表单的字段列表

1.3.10. 1.1.10. 自定义WebAPI接口

服务地址:

http://ServerIp/K3Cloud/接口命名空间.接口实现类名.方法,组件名.common.kdsvc

例如:

"http://192.168.66.60/k3cloud/ApiServiceTest.AAA.CustomBusinessService.ExecuteService,ApiServiceTest.AAA.common.kdsvc"

需要注意的是,自定义webapi接口服务地址中比其他标准接口地址多了一个组件名,如果需要和其他其他标准接口保持一致,则二开自定义的webapi接口命名空间必须以.ServicesStub结尾,例如以下示例自定义接口则其服务地址可以参考如下格式:

"http://192.168.66.60/k3cloud/Kingdee.K3Erp.WebAPI.ServiceExtend.ServicesStub.CustomBusinessService ExecuteService.common.kdsvc"

1.3.11. 1.1.11. 登录验证接口带踢人功能

服务地址:

http://ServerIp/K3Cloud/Kingdee.BOS.WebApi.ServicesStub.AuthService.ValidateUser2.common.kdsvc

接口参数:

参数列表 参数含义 备注
acctID 账套Id,从管理中心数据库查询获得
参考查询:select FDATACENTERID from T_BAS_DATACENTER
必须
username 用户登陆名 必须
password 密码 必须
isKickOff 是否踢人,true:相同客户端会相互踢人 必须
lcid 语言id,选择哪种语言访问,参考:中文2052,英文1033,繁体3076 非必须,引用SDK组件辅助类调用则必须

1.3.12. 1.1.12. 暂存表单数据接口

服务地址:

http://ServerIp/K3Cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Draft.common.kdsvc

接口说明:

请参考保存接口。

1.3.13. 1.1.13. 分配表单数据接口

服务地址:

http://ServerIp/K3Cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Allocate.common.kdsvc

接口参数:

参数列表 参数含义 备注
formid 表单Id,格式参考:" BD_MATERIAL "//表示物料 必录
data 数据包 "{\"PkIds\":\"id1,id2...\", \"TOrgIds\":\"tId1,tId2…\", \"IsAutoSubmitAndAudit\":\"false\"}" PkIds:必须,被分配的单据主键Id集合. TOrgIds:必须,目标组织Id集合 IsAutoSubmitAndAudit: 分配后是否自动提交与审核(非必录)(默认不提交与审核)。

返回参数:

参数列表 参数含义 备注
ResponseStatus 操作状态 {"ResponseStatus":{"ErrorCode":"", "IsSuccess":false, "Errors":[{"FieldName":"", "Message":"","DIndex":0}], "SuccessEntitys":[{"Id":"","Number":"","DIndex":0}], "SuccessMessages":[{"FieldName":"","Message":"","DIndex":0}],”MsgCode”:0} IsSuccess:操作是否成功, Errors:如果失败,具体失败原因 DIndex:原始数据行号, MsgCode:等于1,会话丢失,重新登录;等于0,其他情况

1.3.14. 1.1.14 下推接口

服务地址:

http://ServerIp/K3Cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Push.common.kdsvc

接口参数:

参数列表 参数含义 备注
formid 表单Id,格式参考:" BD_MATERIAL "//表示物料 必录
data 数据包 {\"Ids\":\"\", \"Numbers\":[], \"EntryIds\":\"\", \"RuleId\":\"\", \"TargetBillTypeId\":\"\", \"TargetOrgId\":\"0\", \"TargetFormId\":\"\", \"IsEnableDefaultRule\":\"false\", \"CustomParams\":{}} 1.Ids:单据内码,字符串类型,格式"Id1,Id2,..."(逗号分开,未传Numbers,则必录) 2.Numbers:单据编号集合,数组类型,格式["billNo1","billNo1",...],数组类型(未传Ids,则必录) 3.EntryIds: 分录内码集合,逗号分隔(分录下推时必录),注(按分录下推时,单据内码和编码不需要填,否则按整单下推) 3.RuleId:转换规则内码,字符串类型,格式"RuleId"(未启用默认转换规则时,则必录) 4.TargetBillTypeId:目标单据类型内码,字符串类型,格式"Id1"(非必录) 5.TargetOrgId:目标组织内码,整数类型,格式"Id1"(非必录) 6.TargetFormId:目标单据FormId,字符串类型,格式:"FormId"(启用默认转换规则时,则必录) 7.IsEnableDefaultRule:是否启用默认转换规则,布尔类型,默认值False,格式"false"(非必录) 8.CustomParams:自定义参数,字典类型,格式"{key1:value1,key2:value2,...}"(非必录)

返回参数:

参数列表 参数含义 备注
ResponseStatus 操作状态 {"ResponseStatus":{"ErrorCode":"", "IsSuccess":false, "Errors":[{"FieldName":"", "Message":"","DIndex":0}], "SuccessEntitys":[{"Id":"","Number":"","DIndex":0}], "SuccessMessages":[{"FieldName":"","Message":"","DIndex":0}], “MsgCode”:0} 返回保存成功后的下游单据内码和编号; IsSuccess:操作是否成功, Errors:如果失败,具体失败原因 DIndex:原始数据行号, MsgCode:等于1,会话丢失,重新登录;等于0,其他情况

1.3.15. 1.1.15 分组保存接口

服务地址:

http://ServerIp/K3Cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.GroupSave.common.kdsvc

接口参数:

参数列表 参数含义 备注
formid 表单Id,格式参考:" BD_MATERIAL "//表示物料 必录
data 数据包 {\" GroupFieldKey\":\"\", \" FParentId\":, \" FNumber \":\"\", \" FName \":\"\", \" FDescription \":\"\"} 1. GroupFieldKey:分组字段Key,字符串类型,注(不填时取默认,无默认,取第一个分组) 2. FParentId:父分组内码,整型(非必录) 3. FNumber:分组编码,字符串类型(必录),注(必须唯一) 4. FName:分组名,字符串类型(必录) 5. FDescription:分组描述,字符串类型(非必录)

返回参数:

参数列表 参数含义 备注
ResponseStatus 操作状态 {"ResponseStatus":{"ErrorCode":"", "IsSuccess":false, "Errors":[{"FieldName":"", "Message":"","DIndex":0}], "SuccessEntitys":[{"Id":"","Number":"","DIndex":0}], "SuccessMessages":[{"FieldName":"","Message":"","DIndex":0}]”MsgCode”:0} 返回保存成功后的下游单据内码和编号; IsSuccess:操作是否成功, Errors:如果失败,具体失败原因 DIndex:原始数据行号, MsgCode:等于1,会话丢失,重新登录;等于0,其他情况

1.3.16. 1.1.16 弹性域保存接口

服务地址:

http://ServerIp/K3Cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.FlexSave.common.kdsvc

接口参数:

参数列表 参数含义 备注
formid 表单Id,格式参考:" BD_MATERIAL "//表示物料 必录
data 数据包 ,Json格式,例如: var json = "{"Model": [ {"FF100001":{"FNumber":"A"}, "FF100002":{"FNumber":"Japen"},"FF100003":22} ] }"; 1. Model:数据包集合,数组类型 2. FF100001:维度,{"FNumber":"A"}维度值

返回参数:

参数列表 参数含义 备注
ResponseStatus 操作状态 {"ResponseStatus":{"ErrorCode":"", "IsSuccess":false, "Errors":[{"FieldName":"", "Message":"","DIndex":0}], "SuccessEntitys":[{"Id":"","Number":"","DIndex":0}], "SuccessMessages":[{"FieldName":"","Message":"","DIndex":0}], “MsgCode”:0} 返回保存成功后的下游单据内码和编号; IsSuccess:操作是否成功, Errors:如果失败,具体失败原因 DIndex:原始数据行号, MsgCode:等于1,会话丢失,重新登录;等于0,其他情况

1.3.17. 1.1.17 发送消息接口

服务地址:

http://ServerIp/K3Cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.SendMsg.common.kdsvc

接口参数:

参数列表 参数含义 备注
data 数据包 ,Json格式,例如: {\"Model\":[{\"FTitle\":\"FTitleff\",\"FContent\":\"FConteffb2\",\"FReceivers\":\"110\",\"FType\":\"0\"}," +"{\"FTitle\":\"FTitlffa22\",\"FContent\":\"FContentff33\",\"FReceivers\":\"110\"}]}" 1. Model:数据包集合,数组类型 2. FTitle:消息标题 3. FContent:消息内容 4. FReceivers:消息接收者 5. FType:消息类型

1.3.18. 1.1.18 登出接口

服务地址:

http://ServerIp/K3Cloud/Kingdee.BOS.WebApi.ServicesStub.AuthService.Logout.common.kdsvc

接口参数:

参数列表 参数含义 备注
当前请求会话的退出

返回结果:true/false 成功or失败

1.3.19. 1.1.19 空操作接口

服务地址:

http://ServerIp/K3Cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteOperation.common.kdsvc

接口参数:

参数列表 参数含义 备注
formid 表单Id,格式参考:" BD_MATERIAL "//表示物料 必录
opNumber 操作编码,字符串类型 必录
data 1.Parameters:参数集合 2.Numbers:单据编码集合 3.Ids:单据内码集合 4.Model:表单数据包 1.Parameters:参数集合,字符串类型(非必录) 注(其值传给操作选项) 2.Numbers:单据编码集合,数组类型,格式:[No1,No2,...](使用编码时必录) 3.Ids:单据内码集合,字符串类型,格式:"Id1,Id2,..."(使用内码时必录) 4.Model:表单数据包,JSON类型(使用数据包时必录)

返回参数:

参数列表 参数含义 备注
ResponseStatus 操作状态 {"ResponseStatus":{"ErrorCode":"", "IsSuccess":false, "Errors":[{"FieldName":"", "Message":"","DIndex":0}], "SuccessEntitys":[{"Id":"","Number":"","DIndex":0}], "SuccessMessages":[{"FieldName":"","Message":"","DIndex":0}]”MsgCode”:0} 返回保存成功后的下游单据内码和编号; IsSuccess:操作是否成功, Errors:如果失败,具体失败原因 DIndex:原始数据行号, MsgCode:等于1,会话丢失,重新登录;等于0,其他情况

1.4. EBS代码示例

以流程节点通过JavaScript提交为例(但不限于节点)

var strcookie = "";
operation = "abort";
var object={
            "NeedUpDateFields": [],
            "NeedReturnFields": [],
            "IsDeleteEntry": "true",
            "SubSystemId": "",
            "IsVerifyBaseDataField": "false",
            "IsEntryBatchFill": "true",
            "ValidateFlag": "true",
            "NumberSearch": "true",
            "InterationFlags": ""
}
var model = {
    "FID": 0,
    "FCreateOrgId": {
        "FNumber": order.ord_jdzz
    },
    "FUseOrgId": {
        "FNumber": order.ord_jdzz
    }
    //"FName": data.getElementsByTagName("ord_wlswmc")[0].innerHTML,
}
var ids = "";
proj_getdw.runsql4xml(function(iseof, data, dsname) {
    if (!iseof && dsname == "t1") {
        //console.log(data);
        if(data.getElementsByTagName("ord_spwxsw")[0].innerHTML == '是') {
           model["FName"] = data.getElementsByTagName("ord_wlswmc")[0].innerHTML,
           object["Model"] = model;

           //保存
            runwebservice("qsy_voucher_login_ml",{},function(result,data){    
                eval("kingdee_login_result="+data)
                console.log("kingdee_login_result.KDSVCSessionId="+kingdee_login_result.KDSVCSessionId+"____;document.cookie="+document.cookie);

                if(kingdee_login_result.LoginResultType==-5||kingdee_login_result.LoginResultType==1){    
                    strcookie = document.cookie;
                    runwebservice("qsy_voucher",{cookie: tohex2(strcookie),postdata:JSON.stringify({formid:"FIN_OTHERS",data:JSON.stringify(object)})},function(result,data){
                        eval("kingdee_result="+data);
                        if(kingdee_result.Result.ResponseStatus.IsSuccess === true){
                            ids = kingdee_result.Result.Id;
                            var object1 = {
                                "CreateOrgId": 0,
                                "Numbers": [],
                                "Ids": kingdee_result.Result.Id,
                                "SelectedPostId": 0,
                                "NetworkCtrl": ""
                            };                
                            //提交
                        runwebservice("qsy_vouch_submit",{cookeie: tohex2(strcookie),postdata:JSON.stringify({formid:"FIN_OTHERS",data:JSON.stringify(object1)})},function(result,data){
                            eval("kingdee_result1="+data);                   
                            if(kingdee_result1.Result.ResponseStatus.IsSuccess === true){
                                var object2 = {
                                    "CreateOrgId": 0,
                                    "Numbers": [],
                                    "Ids": kingdee_result1.Result.Id,
                                    "InterationFlags": "",
                                    "NetworkCtrl": ""
                                    }                        
                                    //审核
                                runwebservice("qsy_vouch_audit",{cookeie: tohex2(strcookie),postdata:JSON.stringify({formid:"FIN_OTHERS",data:JSON.stringify(object2)})},function(result,data){
                                    eval("kingdee_result2="+data);
                                    console.log(data);
                                    if(kingdee_result2.Result.ResponseStatus.IsSuccess === true){
                                        operation = "continue";
                                            //alert("接口提交完成");
                                            applyjob_();/*继续提交流程*/
                                    }
                                    else{
                                        alert("其它往来单位审核接口异常提示"+data);
                                    }
                                })
                            }
                            else{
                                alert("其它往来单位提交接口异常提示"+data);
                            }
                        });
                            //operation = "continue";
                            //alert("接口提交完成");
                            //applyjob_();/*继续提交流程*/
                        }else{
                        alert("接口异常提示"+data);
                        }
                })    
                }
            })

        }
    }
});

1.5. 附-官方文档

https://vip.kingdee.com/article/9185

results matching ""

    No results matching ""