第三方系统如何利用WebApi调用生产订单的状态机操作原创
金蝶云社区-Tracy_Huang
Tracy_Huang
6人赞赏了该文章 3230次浏览 未经作者许可,禁止转载编辑于2021年09月26日 15:40:04

因为生产订单状态机的复杂性和特殊性,所以订单的状态机是针对订单分录来执行的,并且Cloud系统内部调用是已经封装了订单状态机的调用接口的,第三方系统利用WebApi调用生产订单的状态机操作,只需要去封装Webapi的实现类,实现类里面主要是调用订单的状态机代码

如何封装Webapi实现类示例如下:
using Kingdee.BOS.JSON;
using Kingdee.BOS.Orm;
using Kingdee.BOS.Util;
using Kingdee.BOS.ServiceFacade.KDServiceFx;
using Kingdee.BOS.WebApi.ServicesStub;
using Kingdee.K3.MFG.App;
using Kingdee.K3.MFG.Contracts.PRD;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Kingdee.EK.K3.MFG.WebApi.ServicesStub
{
   public class MoTransfer : AbstractWebApiBusinessService
   {
       public MoTransfer(KDServiceContext context)
           : base(context)
       {

}

public JSONArray ExecuteService(KeyValuePair<string, List

}
           catch (Exception ex)
           {
               jsonArray.Add(ex.Message);
           }
           finally
           {

}
           return jsonArray;
       }
   }
}

第三方系统调用WebApi实现类如下:
// 使用webapi引用组件Kingdee.BOS.WebApi.Client.dll
           //http://localhost:1400/ 本地部署的Cloud站点地址
           ApiClient client = new ApiClient("http://localhost:1400/");
           //参数:数据中心ID,用户名,密码,语言
           bool result = client.Login("59c9f8153bb26a", "demo", "888888", 2052);
           // 登陆成功
           object responseOut = null;
           if (result)
           {                
               //状态机操作码,打开BOS设计器操作列表里面可以找到相应的操作码
               string operation = "ToStart";
               //生产订单分录内码集合
               List

3、代码实现后,如何调试到WebApi的接口类,首先保证Kingdee.EK.K3.MFG.WebApi.ServicesStub这个组件要在本地Cloud的安装目录下面WebSite\Bin下面,调试采用附加IIS进程的方式就可以调试到这个实现类里面了