金蝶云星空使用WebAPI来新增单据

本文介绍了如何使用金蝶云星空提供的WebAPI接口在后台自动生成生产订单。通过示例代码展示了如何构建JSON参数对象,包括设置必要的字段值,如单据编号、单据类型、生产组织等,并调用WebAPI进行保存、提交和审核操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有很多客户需求在后台自动生成某张单据,金蝶云星空提供了WebApi,包含了保存,提交,审核,删除单据的接口,下面以生产订单的保存,提交,审核为例,说明一下应用WebApi后台自动生成生产订单的功能,下面是代码示例,其他单据可以根据示例代码做相应的修改:

using Kingdee.BOS.Core.Bill.PlugIn;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Kingdee.BOS;
using Kingdee.BOS.Core.Bill;
using Kingdee.BOS.Core.DynamicForm;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel;
using Kingdee.BOS.Core.List;
using Kingdee.BOS.Core.Metadata;
using Kingdee.BOS.Core.Metadata.ControlElement;
using Kingdee.BOS.JSON;
using Kingdee.BOS.Resource;
using Kingdee.BOS.Util;
//using Kingdee.BOS.Core.Bill.PlugIn;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.Core.Msg;
using Kingdee.BOS.Orm.Drivers;
using Kingdee.BOS.App.Data;
using Kingdee.BOS.DataEntity;
using System.ComponentModel;
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using System.Data;
using Newtonsoft.Json.Linq;
using Kingdee.BOS.WebApi.Client;
using Newtonsoft.Json;

public class DisProOrder : AbstractBillPlugIn

{

K3CloudApiClient client = new K3CloudApiClient("http://X.X.X.X:XXX/K3Cloud/");//参数是K3/Cloud的URL

//传入的参数根据需求来自行修改

public void SaveBill(DataSet ds, string OrderQty, string TouLiaoQty,int billno)
        {
            DataSet dstemp = new DataSet();
            DataTable dtTemp = new DataTable();
            string result = "";
            if (ds.Tables.Count > 0)
            {
                if (ds.Tables[0].Rows.Count == 0)
                {

                }
                else
                {
                    #region 保存生产订单信息
                    try
                    {

                        // 开始构建Web API参数对象
                        // 参数根对象:包含Creator、NeedUpDateFields、Model这三个子参数
                        // using Newtonsoft.Json.Linq;  // (需引用Newtonsoft.Json.dll)
                        JObject jsonRoot = new JObject();

                        // Creator: 创建用户
                        jsonRoot.Add("CREATOR", "administrator");

                        // NeedUpDateFields: 哪些字段需要更新?为空则表示参数中全部字段,均需要更新
                        jsonRoot.Add("NEEDUPDATEFIELDS", new JArray(""));
                        jsonRoot.Add("NEEDRETURNFIELDS", new JArray(""));
                        jsonRoot.Add("ISDELETEENTRY", "TRUE");
                        jsonRoot.Add("SUBSYSTEMID", "");

                        // Model: 单据详细数据参数
                        JObject model = new JObject();
                        jsonRoot.Add("Model", model);

                        // 开始设置单据字段值
                        // 必须设置的字段:主键、单据类型、主业务组织,各必录且没有设置默认值的字段
                        // 特别注意:字段Key大小写是敏感的,建议从BOS设计器中,直接复制字段的标识属性过来

                        // 单据主键:必须填写,系统据此判断是新增还是修改单据;新增单据,填0
                        model.Add("FID", "0");

                        JObject basedata = new JObject();
                        //单据编号
                        model.Add("FBillNo", this.View.Model.GetValue("FBillNo").ToString()+billno.ToString("000"));
                        //单据类型
                        if (this.View.Model.GetValue("FBillType").ToString() != "")
                        {
                            basedata = new JObject();
                            DynamicObject BillType = this.View.Model.GetValue("FBillType") as DynamicObject;
                            string BillTypeNO = BillType["number"].ToString();
                            basedata.Add("FNumber", BillTypeNO);
                            model.Add("FBillType", basedata);
                        }
                        //单据日期
                        model.Add("FDate", this.View.Model.GetValue("FDate").ToString());
                        
                        //生产组织
                        if (this.View.Model.GetValue("FPrdOrgId").ToString() != "")
                        {
                            basedata = new JObject();
                            DynamicObject FPrdOrg = this.View.Model.GetValue("FPrdOrgId") as DynamicObject;
                            string FPrdOrgNO = FPrdOrg["number"].ToString();
                            basedata.Add("FNumber", FPrdOrgNO);
                            model.Add("FPrdOrgId", basedata);
                        }
                        //计划组:FWorkGroupId
                        if (ds.Tables[0].Rows[0]["FWORKGROUPID"].ToString() != "0")
                        {
      &

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值