二开案例.WebApi.工作流审批

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

二开案例.WebApi.工作流审批

【应用场景】

WebApi,工作流审批。


【案例演示】

采购订单某张单据已启动工作流,使用WebApi接口,执行工作流当前节点的审批动作。


【准备工作】

使用demo用户登录业务系统,采购订单绑定工作流,新增采购订单,并提交单据,启动工作流。


【实现步骤】

<1>登录业务站点,打开WebApi测试页,选择采购订单,切换到工作流审批接口,进行在线测试,定义好请求数据包,验证接口,如下图所示。

请求数据包:

{
    "FormId": "PUR_PurchaseOrder",
    "Numbers": ["CGDD000695"],
    "UserId": 100008,
    "ApprovalType": 1
}


返回数据包:

{
    "Result": {
        "ResponseStatus": {
            "IsSuccess": true,
            "Errors": [],
            "SuccessEntitys": [{
            "Id": "630c57231424b8",
            "Number": null,
            "DIndex": 0
            }],
            "SuccessMessages": [],
            "MsgCode": 0
        }
    }
}

demo审批通过后,工作流跳转到下一个审批节点。


<2>在线验证通过后,即可参考请求数据包实现WebApi接口调用。

using Kingdee.BOS.WebApi.Client;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System.Collections.Generic;
namespace Jac.XkDemo.BOS.WebApiTests
{
    /// <summary>
    /// WebApi.工作流审批.采购订单审批
    /// </summary>
    [TestClass]
    public class PurchaseOrderWorkflowAudit
    {
        [TestMethod]
        public void Test()
        {
            // 使用webapi引用组件Kingdee.BOS.WebApi.Client.dll
            K3CloudApiClient client = new K3CloudApiClient("http://localhost:1600/k3cloud/");
            var loginResult = client.ValidateLogin("602f2c09aee85f", "Administrator", "888888", 2052);
            var resultType = JObject.Parse(loginResult)["LoginResultType"].Value<int>();
            //登录结果类型等于1,代表登录成功
            if (resultType == 1)
            {
                /*
{
"FormId": "PUR_PurchaseOrder",
"Numbers": ["CGDD000695"],
"UserId": 135880,
"ApprovalType": 1
}
                 */
                var dataObj = new
                {
                    FormId = "PUR_PurchaseOrder", // 业务对象标识
                    Numbers = new[] { "CGDD000695" }, // 单据编号
                    UserId = 100008, // 审批人内码(SQL:SELECT FUSERID FROM T_SEC_USER WHERE FNAME=N'demo')
                    ApprovalType = 1 // 审批类型,整型(1:审批通过;2:驳回;3:终止)
                };
                var data = JsonConvert.SerializeObject(dataObj);
                var result = client.WorkflowAudit(data);
                var responseDto = ResponseDto.Parse(result);
                Assert.IsTrue(responseDto != null);
                Assert.IsTrue(responseDto.Result != null);
                Assert.IsTrue(responseDto.Result.ResponseStatus != null);
                Assert.IsTrue(responseDto.Result.ResponseStatus.IsSuccess);
                return;
            }
            Assert.IsFalse(true);
        }
        #region ResponseDto
        /// <summary>
        /// 响应数据包
        /// </summary>
        public class ResponseDto
        {
            #region method
            /// <summary>
            /// 将当前对象序列化为Json字符串
            /// </summary>
            /// <returns></returns>
            public virtual string ToJson()
            {
                return JsonConvert.SerializeObject(this);
            }
            /// <summary>
            /// 将Json字符串反序列化为指定对象
            /// </summary>
            /// <param name="json"></param>
            /// <returns></returns>
            public static ResponseDto Parse(string json)
            {
                return JsonConvert.DeserializeObject<ResponseDto>(json);
            }
            #endregion
            #region property
            /// <summary>
            /// 响应结果
            /// </summary>
            public ResponseResult Result { get; set; }
            #endregion
            #region class
            public class ResponseResult
            {
                public string Id { get; set; }
                public ResponseResultStatus ResponseStatus { get; set; }
                public class ResponseResultStatus
                {
                    public string MsgCode { get; set; }
                    public bool IsSuccess { get; set; }
                    public string ErrorCode { get; set; }
                    public IList<ResponseMessage> Errors { get; set; }
                    public IList<ResponseMessage> SuccessMessages { get; set; }
                    public IList<SuccessEntity> SuccessEntitys { get; set; }
                    public class ResponseMessage
                    {
                        public string FieldName { get; set; }
                        public string Message { get; set; }
                        public int DIndex { get; set; }
                    }
                    public class SuccessEntity
                    {
                        public virtual string Id { get; set; }
                        public virtual string Number { get; set; }
                        public virtual string BillNo { get; set; }
                        public virtual int DIndex { get; set; }
                    }
                }
                #endregion
            }
            #endregion
        }
    }
}

---------------------------------------------------------------------------------------------------------













【金蝶云星空BOS二次开发案例演示】https://vip.kingdee.com/article/94751030918525696

二开案例.WebApi.工作流审批

【应用场景】WebApi,工作流审批。【案例演示】采购订单某张单据已启动工作流,使用WebApi接口,执行工作流当前节点的审批动作。【准备工作...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息