1. Kingdee WEB API
1.1. 原理
金蝶WEBAPI原理
基于RestFul架构的http+Json请求方式,cookie的接口登录授权、统一接口无需按单据区分接口(只需改变参数)
EBS接口原理
综合管理系统中,在相关单据的流程节点提交前编写 JavaScript 逻辑,调用系统预置的方法(runwebservic),请求后端Java服务,Java调用HTTP 请求,保存并返回给浏览器以模拟登录。登录成功后真正的业务接口把cookie 作为一个额外的参数传递给后端预定义的接口,实现接口调用。
1.2. 接口定义
1.2.1. 获取金蝶系统接口授权信息

1.2.2. EBS中定义登录接口

- URI
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 |
调用参考:
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. 表单数据查询接口
服务地址:
接口参数:
| 参数列表 | 参数含义 | 备注 |
|---|---|---|
| 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
例如:
需要注意的是,自定义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 空操作接口
服务地址:
接口参数:
| 参数列表 | 参数含义 | 备注 |
|---|---|---|
| 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);
}
})
}
})
}
}
});