71.1、WebApi,自定义接口,读取客户信息原创
金蝶云社区-林荫大道cc身份
林荫大道cc
21人赞赏了该文章 8488次浏览 未经作者许可,禁止转载编辑于2021年06月22日 13:49:43
封面

业务场景:通过参数“组织”,读取 客户的内码,编码,名称



1、打开VS,新建一个类,具体可以参考   4.1  1-7步


1.1、引用



Kingdee.BOS.dll;

Kingdee.BOS.App.dll;

Kingdee.BOS.ServiceFacade.KDServiceFx.dll

Kingdee.BOS.WebApi.ServicesStub.dll

Newtonsoft.Json.dll

 

1.2、使用


using System.Data;

using Kingdee.BOS.App.Data;

using Newtonsoft.Json.Linq;

using Kingdee.BOS.WebApi.ServicesStub;

using Kingdee.BOS.ServiceFacade.KDServiceFx;

 

1.3、继承的方法



AbstractWebApiBusinessService

 



2、重写方法



public GetCust (KDServiceContext context)
 : base(context)
{

}

 


3、 调用方法


        //接收组织的Json, 返回JObject
        
        public JObject ExecuteService(JObject parameter)
        {
            string OrgNo = MyConvert.ToString(parameter["OrgNo"]);
            //返回客户信息
            JObject jsonRoot = new JObject();
            //正确
            JObject jsonRootTrue = new JObject();
            //错误
            JObject jsonRootErr = new JObject();
            string Err = "";
            if (OrgNo == "")
            {
                Err = "组织字段不可以为空";
            }
            else
            {   
                       
//数据库查询,是否有这个组织
string sql = "/*dialect*/select FORGID from T_ORG_Organizations where FDOCUMENTSTATUS='C' 
AND FNUMBER='" + OrgNo + "'";


DataSet ds = DBUtils.ExecuteDataSet(this.KDContext.Session.AppContext, sql);
DataTable dt = ds.Tables[0];
if(dt.Rows.Count ==1)
{
                               
//查询组织下面的客户
string sql1 = @"/*dialect*/select b.FCUSTID,FNUMBER,a.FNAME from T_BD_CUSTOMER_L a 
inner join T_BD_CUSTOMER b on a.FCUSTID=b.FCUSTID 
where FUSEORGID=" + (int)dt.Rows[0]["FORGID"] + " and a.FLOCALEID=2052";
                                        
                    DataSet ds1 = DBUtils.ExecuteDataSet(this.KDContext.Session.AppContext, sql1);
                    DataTable dt1 = ds1.Tables[0];
                    jsonRootTrue.Add("IsSuccess", "true");
                    
                    //构造Json
                    JArray Rows = new JArray();
                    jsonRootTrue.Add("Cust", Rows);
                    for(int i =0; i < dt1.Rows.Count;i++)
                    {
                        JObject Row = new JObject();
                        Row.Add("Custid", dt1.Rows[i]["FCUSTID"].ToString());
                        Row.Add("CustNumber", dt1.Rows[i]["FNUMBER"].ToString());
                        Row.Add("CustName", dt1.Rows[i]["FNAME"].ToString());
                        Rows.Add(Row);
                    }
                }
                else
                {
                    Err = "组织字段没有找到对应的编码";
                }
            }
            if(Err !="")
            {
                jsonRootErr.Add("IsSuccess", "false");
                jsonRootErr.Add("Errors", Err);
                jsonRoot = jsonRootErr;
            }
            else
            {
                jsonRoot = jsonRootTrue;
            }
            return jsonRoot;
        }


image.png



查询客户信息


image.png


image.png

image.png


 至此,自定义WebApi接口就做好了,下一节 71.2 介绍如何  客户端调用


视频下载链接:

链接:https://pan.baidu.com/s/1N94WTmjumF8OaxA7Z7X6Ww

提取码:KISS 



总目录链接

https://vip.kingdee.com/article/6499387201459123


71.1.zip(17.13KB)

赞 21