电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

bos webapi 单据查询接口调用参数示例

来源:金蝶云社区作者:金蝶2024-09-161

bos webapi 单据查询接口调用参数示例

单据查询接口:

"executeBillQueryUrl": "http://xxx:xxx/k3cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery.common.kdsvc"



--销售订单

{
    "FormId": "SAL_SaleOrder",
    "FieldKeys": "FSaleOrgId.FNUMBER,FCustId.FNAME,FID,FBillNo,FSaleOrderEntry_FEntryID,FTaxPrice,FSaleOrderFinance_FEntryId",
    "FilterString": "(FSaleOrgId=F_HANS_Base AND  FDOCUMENTSTATUS='C'  and FFORBIDSTATUS='A'   and  (FMODIFYDATE>=to_date('2000-05-08 00:00:00','yyyy-mm-dd hh24:mi:ss')  and FMODIFYDATE<=to_date('2022-05-08 00:00:00','yyyy-mm-dd hh24:mi:ss') ) )",
    "OrderString": "",
    "TopRowCount": 2,
    "StartRow": 0,
    "Limit": 0,
    "SubSystemId": ""
}
/// <summary>
        /// POST api/webapi/mdmqryerp
        /// 主数据平台拉取ERP单据数据
        /// </summary>
        /// <param name="inputJO"></param>
        /// <returns></returns>
        [HttpPost]
        [Route("mdmqryerp")]
        public IActionResult MDMQueryERP([FromBody] JObject inputJO)
        {
            //k3cloud的单据唯一标识
            string k3CloudFormId = Convert.ToString(inputJO[WebApiInputFieldName.K3CLOUDFORMID]);
            //增量时间字段
            string strTime = Convert.ToString(inputJO[WebApiInputFieldName.MDM_TIME]);
            //起始页码:注意:从0开始
            string strPageIndex = Convert.ToString(inputJO[WebApiInputFieldName.MDM_PAGEINDEX]);
            //每页大小(如:50)
            string strPageSize = Convert.ToString(inputJO[WebApiInputFieldName.MDM_PAGESIZE]);

            //返回数据
            string backJson = string.Empty;

            if (string.IsNullOrEmpty(k3CloudFormId) 
                || string.IsNullOrEmpty(strTime) 
                || string.IsNullOrEmpty(strPageIndex)
                || string.IsNullOrEmpty(strPageSize)
                )
            {
                JObject o = new JObject();
                o.Add(WebApiOutputFieldName.MDMTOCLOUD_CODE, Define.MDMTOCLOUD_ERROR);
                o.Add(WebApiOutputFieldName.MDMTOCLOUD_MESSAGE, Define.MDMTOCLOUD_FAIL);
                o.Add(WebApiOutputFieldName.MDMTOCLOUD_DETAIL, "接口调用失败,入参非法");
                backJson = JsonConvert.SerializeObject(o);
            }
            else
            {

                #region 入参数据结构
                //入参数据结构:
                /*
                    {
                        "FormId": "BD_Customer",
                        "FieldKeys": "FNumber,FMODIFYDATE",
                        "FilterString": "FNumber IN ('ZZ99000','ZZ99014')  and FUSEORGID=FCreateOrgId and  (FMODIFYDATE>=to_date('2009-11-01 11:49:46','yyyy-mm-dd hh24:mi:ss')  and FMODIFYDATE<=to_date('2029-11-01 11:49:46','yyyy-mm-dd hh24:mi:ss') )",
                        "OrderString": "",
                        "TopRowCount": 2000,
                        "StartRow": 0,
                        "Limit": 0,
                        "SubSystemId": ""
                    }                 
                 */
                #endregion

                //修改日期时间开始,结束
                string bFMODIFYDATE = strTime;
                string eFMODIFYDATE = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                string strFilter = $" ( FDOCUMENTSTATUS='C'  and FFORBIDSTATUS='A'  and FUSEORGID=FCreateOrgId and  (FMODIFYDATE>=to_date('{bFMODIFYDATE}','yyyy-mm-dd hh24:mi:ss')  and FMODIFYDATE<=to_date('{eFMODIFYDATE}','yyyy-mm-dd hh24:mi:ss') ) )";
                
                string strSqlFilter = $" ( x.FDOCUMENTSTATUS='C'  and x.FFORBIDSTATUS='A'  and x.FUSEORGID=x.FCreateOrgId and  (x.FMODIFYDATE>=to_date('{bFMODIFYDATE}','yyyy-mm-dd hh24:mi:ss')  and x.FMODIFYDATE<=to_date('{eFMODIFYDATE}','yyyy-mm-dd hh24:mi:ss') ) )";
                string strFieldKeys = PubCollExt.GetCloudFieldKeysByFormId(k3CloudFormId);

                JObject jo = new JObject();
                jo.Add("FormId", k3CloudFormId);
                jo.Add("FieldKeys", strFieldKeys);
                jo.Add("FilterString", strFilter);
                jo.Add("TopRowCount", strPageSize);
                jo.Add("StartRow", strPageIndex);
 
                string strClassName = $"HansWebApi.MDMQRYBLL.{k3CloudFormId}Bll";
                string strClassMethod = "QryOrder";
                CallBllMethod billMothod = new CallBllMethod(strClassName, strClassMethod, new object[] { k3CloudFormId, jo, strSqlFilter });
                backJson = billMothod.BllMethod();
            }

            return Ok(backJson);
        }
using Common;
using HansWebApi.Common;
using HansWebApi.MDMBLL;
using HansWebApi.Models;
using Model;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

namespace HansWebApi.MDMQRYBLL
{
    /// <summary>
    /// 主数据拉数据通用处理类
    /// </summary>
    public class MDMQryCloudBll : MDMBase
    {
        /// <summary>
        /// K3Cloud单据唯一标识
        /// </summary>
        protected string _formId;

        /// <summary>
        /// 用查询单据记录总条数
        /// </summary>
        protected string _sqlFilter;

        /// <summary>
        /// json数据包
        /// </summary>
        protected JObject _dataPacket;

        /// <summary>
        /// 主数据拉数据通用处理类
        /// </summary>
        /// <param name="k3CloudFormId">formId</param>
        /// <param name="dataPacket">用于调用CloudExecuteBillQueryByObject</param>
        /// <param name="sqlFilter">用查询单据记录总条数</param>
        public MDMQryCloudBll(string k3CloudFormId, JObject dataPacket, string sqlFilter)
        {
            _formId = k3CloudFormId;
            _sqlFilter = sqlFilter;
            _dataPacket = dataPacket;
        }

        /// <summary>
        /// 重写业务逻辑
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        public virtual MdmInQryModel BusinessProcess(string data)
        {
            MdmInQryModel retData = new MdmInQryModel(_formId: _formId, _data: new JArray(), _backJson: string.Empty);
            return retData;
        }

        /// <summary>
        /// 主数据拉取K3Cloud单据数据
        /// </summary>
        public virtual string QryOrder()
        {
            string backJson = string.Empty;
            string jsonData = _dataPacket.ToJson();
            var orginalJsonData = ICloudLinkBll.CloudExecuteBillQuery(jsonData);
            MdmInQryModel retData = BusinessProcess(orginalJsonData);
            if (!string.IsNullOrEmpty(retData.backJson))
            {
                //若产生异常直接返回
                return retData.backJson;
            }

            JObject o = new JObject();
            try
            {
                string totalRecord = GetTotalRecordWithFilter(_sqlFilter);
                o.Add(WebApiOutputFieldName.MDMTOCLOUD_RTNCODE, Define.MDMTOCLOUD_RTNCODE_S);
                o.Add(WebApiOutputFieldName.MDMTOCLOUD_RTNMSG, retData.backJson);
                o.Add(WebApiOutputFieldName.MDMTOCLOUD_RTNTOTALRECORD, totalRecord);
                o.Add(WebApiOutputFieldName.MDMTOCLOUD_RTNDATA, retData.data);
            }
            catch (Exception ex)
            {
                o.Add(WebApiOutputFieldName.MDMTOCLOUD_RTNCODE, Define.MDMTOCLOUD_RTNCODE_F);
                o.Add(WebApiOutputFieldName.MDMTOCLOUD_RTNMSG, ex.ToString());
                o.Add(WebApiOutputFieldName.MDMTOCLOUD_RTNTOTALRECORD, Define.MDMTOCLOUD_RTNTOTALRECORD_0);
                o.Add(WebApiOutputFieldName.MDMTOCLOUD_RTNDATA, retData.data);
            }
            backJson = o.ToJson();
            return backJson;
        }

        /// <summary>
        /// 根据SQL获取符合条件的总记录数
        /// </summary>
        /// <param name="sql"></param>
        /// <returns></returns>
        public virtual string GetTotalRecordWithFilter(string sql)
        {
            if (string.IsNullOrEmpty(sql)) return string.Empty;

            string strTotalRecord = string.Empty;
            var dbResult = ICloudLinkBll.CloudDbWebApi(sql);
            if (dbResult.status == "0" && dbResult.result != "[]")
            {
                var jaResultList = (JArray)JsonConvert.DeserializeObject(dbResult.result);
                foreach (var model in jaResultList)
                {
                    BasicDataModel m = new BasicDataModel();
                    var joResult = JObject.Parse(model.ToString());
                    strTotalRecord = joResult["TOTALRECORD"].ToString();
                }
            }
            return strTotalRecord;
        }

    }
}
using K3CloudLink;

namespace HansWebApi.MDMBLL
{
    public class MDMBase
    {
        /// <summary>
        /// Cloud的接口
        /// </summary>
        internal ICloudLink ICloudLinkBll

bos webapi 单据查询接口调用参数示例

单据查询接口:"executeBillQueryUrl": "http://xxx:xxx/k3cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery.c...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信