金蝶接口开发

不引用金蝶的sdk接口开发

目录

不引用金蝶的sdk接口开发

    1.准备工作

2.下面为登录接口调用加查询物料接口

3.在金蝶云添加一个工单,然后通过 下推形成工单入库(暂存)

 4.将暂存的工单入库修改

5.工单入库提交


    1.准备工作

   创建一个自己的类

public class HttpClient
    {
        /// <summary>
        /// Seivice URL
        /// </summary>
        public string Url { get; set; }
        /// <summary>
        /// 内容
        /// </summary>
        public string Content { get; set; }
        /// <summary>
        /// Cookie,保证登录后,所有访问持有一个Cookie;
        /// </summary>
        static CookieContainer Cookie = new CookieContainer();

        /// <summary>
        /// HTTP访问
        /// </summary>
        public string AsyncRequest()
        {
            HttpWebRequest httpRequest = HttpWebRequest.Create(Url) as HttpWebRequest;
            httpRequest.Method = "POST";
            httpRequest.ContentType = "application/json";
            httpRequest.CookieContainer = Cookie;
            httpRequest.Timeout = 1000 * 60 * 10;//10min

            using (Stream reqStream = httpRequest.GetRequestStream())
            {
                JObject jObj = new JObject();
                jObj.Add("format", 1);
                jObj.Add("useragent", "ApiClient");
                jObj.Add("rid", Guid.NewGuid().ToString().GetHashCode().ToString());
                jObj.Add("parameters", Content);
                jObj.Add("timestamp", DateTime.Now);
                jObj.Add("v", "1.0");
                string sContent = jObj.ToString();
                var bytes = UnicodeEncoding.UTF8.GetBytes(sContent);
                reqStream.Write(bytes, 0, bytes.Length);
                reqStream.Flush();
            }
            using (var repStream = httpRequest.GetResponse().GetResponseStream())
            {
                using (var reader = new StreamReader(repStream))
                {
                    return ValidateResult(reader.ReadToEnd());
                }
            }
        }

        private static string ValidateResult(string responseText)
        {
            if (responseText.StartsWith("response_error:"))
            {
                return responseText.TrimStart("response_error:".ToCharArray());
            }
            return responseText;
        }

    }
2.下面为登录接口调用加查询物料接口
HttpClient httpClient = new HttpClient();
            httpClient.Url = "http://192.168.3.5/k3cloud/Kingdee.BOS.WebApi.ServicesStub.AuthService.ValidateUser.common.kdsvc";
            List<object> Parameters = new List<object>();
            Parameters.Add("658537121f1222");//帐套Id 到金蝶的web api里面可以查到
            Parameters.Add("demo3");//用户名
            Parameters.Add("111111");//密码
            Parameters.Add(2052);//语言编码
            httpClient.Content = JsonConvert.SerializeObject(Parameters);
            var iResult = JObject.Parse(httpClient.AsyncRequest())["LoginResultType"].Value<int>();
            if (iResult == 1)
            {
                HttpClient httpClient1 = new HttpClient();
                httpClient1.Url = "http://192.168.3.5/k3cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.View.common.kdsvc";
                List<object> Parameters1 = new List<object>();
                //业务对象Id 
                String formid = "BD_MATERIAL";//发票
                Parameters1.Add(formid);
                //Json字串
                string data = "{\"NUMBER\":\"0101010030007\"}";
                Parameters1.Add(data);
                httpClient1.Content = JsonConvert.SerializeObject(Parameters1);
                var result = httpClient1.AsyncRequest();
                MessageBox.Show(result);

                //todo:验证成功,处理业务
            }
3.在金蝶云添加一个工单,然后通过 下推形成工单入库(暂存)
HttpClient httpClient1 = new HttpClient();
httpClient1.Url = "http://192.168.3.5/k3cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Push.common.kdsvc";

List<object> Parameters1 = new List<object>();
//业务对象Id 
String formid = "PRD_MO";//发票
Parameters1.Add(formid);
//Json字串  下推时需开启IsDraftWhenSaveFail=true,不然失败就无法生成单子
//RuleId:需要星空云开发的文件-》规则转换的单据转换的主界面
string data = "{\"TargetOrgId\":\"101\",\"Numbers\":[\"101-MO240120233580\"],\"RuleId\":\"PRD_MO2DIRECTSENDTOINSTOCK\",\"IsDraftWhenSaveFail\":\"true\"}";
Parameters1.Add(data);
httpClient1.Content = JsonConvert.SerializeObject(Parameters1);
var result = httpClient1.AsyncRequest();
if (!HttpClient.islogin) {
    kh.LoginKinde();//登录接口调用的封装
    result = httpClient1.AsyncRequest();
}
MessageBox.Show(result);
 4.将暂存的工单入库修改

这一步有点出乎意料,因为金蝶接口是没有修改的接口的,只能通过保存接口实现

HttpClient httpClient1 = new HttpClient();
httpClient1.Url = "http://192.168.3.5/k3cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save.common.kdsvc";
          
List<object> Parameters1 = new List<object>();
//业务对象Id 
String formid = "PRD_INSTOCK";//生产入库
Parameters1.Add(formid);
//Json字串
string data = "{\"NeedUpDateFields\":[],\"Model\":{\"FID\":105510,\"FDate\":\"2024-01-22\" ,\"FEntity\":[{\"FEntryID\": 106509,"+
    "\"FLot\":{\"FNumber\":\"202401240001\"},\"FStockId\":{\"FNumber\":\"004\"},\"FStockLocId\": {\"FSTOCKLOCID__FF100002\": {\"FNumber\": \"002-A01\"}}, \"FRealQty\": 50,}]" +
    "}}";
/*
String data1 = "{\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"true\",\"SubSystemId\":\"\","+
    "\"IsVerifyBaseDataField\":\"false\",\"IsEntryBatchFill\":\"true\",\"ValidateFlag\":\"true\",\"NumberSearch\""+
    ":\"true\",\"IsAutoAdjustField\":\"false\",\"InterationFlags\":\"\",\"IgnoreInterationFlag\":\"\","+
    "\"IsControlPrecision\":\"false\",\"ValidateRepeatJson\":\"false\",\"Model\":{\"FID\":105503,\"FBillType\":" +
    "{\"FNUMBER\":\"\"},\"FDate\":\"2024-01-22\",\"FStockOrgId\":{\"FNumber\":\"\"},\"FStockId0\":{\"FNumber\":"+
    "\"\"},\"FPrdOrgId\":{\"FNumber\":\"\"},\"FWorkShopId\":{\"FNumber\":\"\"},\"FOwnerTypeId0\":\"\",\"FOwnerId0\""+
    ":{\"FNumber\":\"\"},\"FSTOCKERID\":{\"FNAME\":\"\"},\"FDescription\":\"\",\"FIsEntrust\":\"false\",\"FCurrId\""+
    ":{\"FNumber\":\"\"},\"FEntrustInStockId\":0,\"FScanBox\":\"\",\"FEntity\":[{\"FEntryID\":106502,\"FSrcEntryId\":0," +
    "\"FIsNew\":\"false\",\"FMaterialId\":{\"FNumber\":\"\"},\"FCheckProduct\":\"false\",\"FProductType\":\"\","+
    "\"FInStockType\":\"\",\"FUnitID\":{\"FNumber\":\"\"},\"FMustQty\":0,\"FRealQty\":0,\"FCostRate\":0,"+
    "\"FBaseUnitId\":{\"FNumber\":\"\"},\"FBaseMustQty\":0,\"FBaseRealQty\":0,\"FOwnerTypeId\":\"\",\"FOwnerId\":"+
    "{\"FNumber\":\"\"},\"FStockId\":{\"FNumber\":\"\"},\"FStockLocId\":{\"FSTOCKLOCID__FF100002\":{\"FNumber\":\"\"}"+
    ",\"FSTOCKLOCID__FF102001\":{\"FNumber\":\"\"}},\"FBomId\":{\"FNumber\":\"\"},\"FLot\":{\"FNumber\":\"\"},"+
    "\"FISBACKFLUSH\":\"false\",\"FMtoNo\":\"\",\"FProjectNo\":\"\",\"FWorkShopId1\":{\"FNumber\":\"\"},\"FLINEID\":"+
    "{\"FNUMBER\":\"\"},\"FShiftGroupId\":{\"FNumber\":\"\"},\"FMoBillNo\":\"\",\"FMoId\":0,\"FMoEntryId\":0,"+
    "\"FMoEntrySeq\":0,\"FAuxpropId\":{\"FAUXPROPID__FF100001\":{\"FNumber\":\"\"},\"FAUXPROPID__FF100002\":"+
    "{\"FNumber\":\"\"}},\"FMemo\":\"\",\"FStockUnitId\":{\"FNumber\":\"\"},\"FStockRealQty\":0,\"FSecUnitId\":"+
    "{\"FNumber\":\"\"},\"FSecRealQty\":0,\"FSrcBillType\":\"\",\"FSrcInterId\":0,\"FSrcBillNo\":\"\","+
    "\"FBasePrdRealQty\":0,\"FIsFinished\":\"false\",\"FStockStatusId\":{\"FNumber\":\"\"},\"FSrcEntrySeq\":0,"+
    "\"FMOMAINENTRYID\":0,\"FKeeperTypeId\":\"\",\"FKeeperId\":{\"FNumber\":\"\"},\"FProduceDate\":\"1900-01-01\","+
    "\"FExpiryDate\":\"1900-01-01\",\"FSelReStkQty\":0,\"FBaseSelReStkQty\":0,\"FSrcBusinessType\":\"\","+
    "\"FIsOverLegalOrg\":\"false\",\"FSendRowId\":\"\",\"F_POH\":\"\",\"F_XQDJWL\":{\"FNUMBER\":\"\"},\"F_OEMH\":\"\","+
    "\"F_KHXH\":\"\",\"F_PINPAI\":\"\",\"F_ZDKGRQ\":\"1900-01-01\",\"F_HZDKGRQ\":\"1900-01-01\",\"FSerialSubEntity\":"+
    "[{\"FDetailID\":0,\"FSerialNo\":\"\",\"FSerialId\":{\"FNumber\":\"\"},\"FQty\":0,\"FBaseSNQty\":0,\"FSerialNote\":"+
    "\"\"}]}]}}";*/
Parameters1.Add(data);
httpClient1.Content = JsonConvert.SerializeObject(Parameters1);
var result = httpClient1.AsyncRequest();
if (!HttpClient.islogin)
{
    kh.LoginKinde();
    result = httpClient1.AsyncRequest();
}
MessageBox.Show(result);
5.工单入库提交

将上诉的保存接口改成

 "http://192.168.3.5/k3cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit.common.kdsvc";

将string data = "{\"CreateOrgId\":101,\"Ids\":\"105510\"}"; 即可

以上是自己测试可用

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值