创建预留关系
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Kingdee.BOS.BusinessEntity;
using Kingdee.BOS.Core.Bill;
using Kingdee.BOS.Core.Bill.PlugIn.Args;
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel;
using Kingdee.BOS.Core.List.PlugIn;
using Kingdee.BOS.Core.List.PlugIn.Args;
using Kingdee.BOS.DataEntity;
using Kingdee.BOS.KDThread;
//using Lyf.Common.Core;
//using Lyf.HFD.ServiceHelper;
using Kingdee.BOS.WebApi.Client;
using Kingdee.BOS.JSON;
using Kingdee.BOS.Core.Bill.PlugIn;
using Kingdee.BOS.Core.DynamicForm;
using System.Collections;
using Kingdee.BOS.Orm.DataEntity;
using JD.BOS.POOrder.Po.PurService;
//预留
namespace Lyf.HFD.App.Core
{
public class PLN_RESERVE_Api
{
public void BarItem(Dictionary<string, object> dic)
{
Write_Log log = new Write_Log();
//var a1 = dic["dic"];
Dictionary<string, object> itemArr = new Dictionary<string, object>();
Dictionary<string, object> FEntity1 = new Dictionary<string, object>();
foreach (var item in dic)
{
var item1 = item.Value;
itemArr = item1 as Dictionary<string, object>;
FEntity1 = itemArr["ENTRY"] as Dictionary<string, object>;
}
K3CloudApiClient client = new K3CloudApiClient("http://PC-20200419WNOL:8000/");
//// 调用登陆接口 参数 数据中心Id,用户名,密码,语言id -----select * from T_BAS_DATACENTER ;
bool ret = client.Login("5e9d1da2413bd1", "demo", "888888", 2052);//5e9d1da2413bd1
log.WriteLog("登陆是否成功="+ ret);
// 登陆成功
if (ret)
{
JSONObject departMent = new JSONObject();
departMent.Put("FID", 0);
departMent.Put("FGenerateId0", "b88687c04234a8f111eb1ffbe217774e");//创建者标示
departMent.Put("FDEMANDBILLNO", itemArr["BillNo"].ToString());//xsd000091
departMent.Put("FSRCENTRYID",itemArr["Id"].ToString());//顶级需求内码100507
// departMent.Put("FBASEDEMANDUNITID", Number("Pcs"));
departMent.Put("FDosageType", "2");
departMent.Put("FSupRate", "100");
departMent.Put("FMATERIALID", Number(itemArr["Number"].ToString()));//物料编码
departMent.Put("FDEMANDORGID", Number(itemArr["Number1"].ToString()));//101.2
departMent.Put("FDEMANDFORMID", Number("FID", itemArr["FFormId"].ToString()));//"SAL_SaleOrder"
departMent.Put("FDEMANDDATE", itemArr["Date"].ToString());//需求日期
departMent.Put("FDEMANDINTERID", itemArr["MaterialId_Ids"].ToString());//需求预留内码100198 xsd90
departMent.Put("FDemandENTRYID", itemArr["Id"].ToString());//需求预留分录内码100507 xsd90
departMent.Put("FINTDEMANDID", itemArr["MaterialId_Ids"].ToString());//100198
departMent.Put("FINTDEMANDENTRYID", itemArr["Id"].ToString());
//顶级需求
departMent.Put("FSRCBILLNO",itemArr["BillNo"].ToString());
departMent.Put("FSRCFORMID",Number("FID",itemArr["FFormId"].ToString()));
departMent.Put("FSRCINTERID", itemArr["MaterialId_Ids"].ToString());//100198
departMent.Put("FINTSRCID", itemArr["MaterialId_Ids"].ToString());//100198
departMent.Put("FINTSRCENTRYID", itemArr["Id"].ToString());//100507
departMent.Put("FEntity", FEntity(FEntity1, itemArr));
List<JSONObject> departmentList = new List<JSONObject>();
departmentList.Add(departMent);
JSONObject DepartMentBath = new JSONObject();
DepartMentBath.Put("Creator", "");
DepartMentBath.Put("NeedUpDateFields", new ArrayList());
DepartMentBath.Put("NeedReturnFields", new ArrayList());
DepartMentBath.Put("IsDeleteEntry", "true");
DepartMentBath.Put("SubSystemId", "");
DepartMentBath.Put("IsVerifyBaseDataField", "false");
DepartMentBath.Put("IsEntryBatchFill", "true");
DepartMentBath.Put("ValidateFlag", "false");//验证
DepartMentBath.Put("NumberSearch", "true");
DepartMentBath.Put("InterationFlags", "");
DepartMentBath.Put("IsAutoSubmitAndAudit", "false");
DepartMentBath.Put("Model", departMent);
object obj1 = client.Save("PLN_RESERVELINK", DepartMentBath.ToString());//保存
log.WriteLog("预留保存是否成功=" + obj1);
log.WriteLog("预留保存数据包=" + DepartMentBath.ToString());
// 将结果转成JSONObject类型
JSONObject jsobj = JSONObject.Parse(obj1.ToString());
object jsonobj =dataEncapsulation(jsobj);
// 提交
object result1 = client.Submit("PLN_RESERVELINK", jsonobj.ToString());
// 审核
object result2 = client.Audit("PLN_RESERVELINK", jsonobj.ToString());
}
}
private List<JSONObject> FEntity(Dictionary<string, object> FEntity1, Dictionary<string, object> itemArr)
{
List<JSONObject> FEntity2 = new List<JSONObject>();
JSONObject departMent = new JSONObject();
foreach (var item3 in FEntity1)
{
var asd = item3.Key;
var asd1 = item3.Value;
// List<JSONObject> FEntity = new List<JSONObject>();
// JSONObject departMent = new JSONObject();
departMent.Put("FSUPPLYFORMID", Number("FID", "STK_Inventory"));
departMent.Put("FSUPPLYINTERID", item3.Key.ToString());//即时库存内码必填b88687c0-4234-b657-11ea-851499a304cc
departMent.Put("FSUPPLYMATERIALID", Number(itemArr["Number"].ToString()));//物料编码1.01.0001
departMent.Put("FSUPPLYORGID", Number(itemArr["Number1"].ToString()));//101.2
// FSUPPLYLOT批号123460
// departMent.Put("FSUPPLYDATE", "2020-11-20 00:00:00");
//departMent.Put("FSUPPLYSTOCKID", Number("CK001"));//仓库
//departMent.Put("FBASESUPPLYUNITID", Number("Pcs"));
departMent.Put("FSTOCKFORMID", Number("FID", "STK_Inventory"));
departMent.Put("FBASESUPPLYQTY", item3.Value.ToString());//预留数量
departMent.Put("FISMTO", false);
//"FSecQty": 8.0
FEntity2.Add(departMent);
}
return FEntity2;
}
public object dataEncapsulation(JSONObject obj)
{
// 结果集
object Result = obj.Get("Result");
// 编码
object number = JSONObject.Parse(Result.ToString()).Get("Number");
// id
object id = JSONObject.Parse(Result.ToString()).Get("Id");
// 构建json参数
JSONObject jsobje = new JSONObject();
jsobje.Put("CreateOrgId", 0);
ArrayList al = new ArrayList();
al.Add(number);
jsobje.Put("Numbers", al);
jsobje.Put("Ids", id.ToString());
jsobje.Put("SelectedPostId", 0);
jsobje.Put("NetworkCtrl", "");
return jsobje.ToString();
}
private JSONObject Number0(object value)
{
JSONObject numberJson = new JSONObject();
return numberJson;
}
private JSONObject Number(object value)
{
JSONObject numberJson = new JSONObject();
numberJson.Put("FNumber", value);
return numberJson;
}
private JSONObject Number(string key, object value)
{
JSONObject numberJson = new JSONObject();
numberJson.Put(key, value);
return numberJson;
}
public object jsonprlitw(JSONObject obj1)
{
//审核
JSONObject jsobje = new JSONObject();
jsobje.Put("CreateOrgId", 0);
//jsobje.Put("Number", new ArrayList());
//获取SuccessEntitys的json数据
object Result = obj1.Get("Result");
var ResponseStatus = JSONObject.Parse(Result.ToString()).Get("ResponseStatus").ToString();
string SuccessEntitys = JSONObject.Parse(ResponseStatus.ToString()).Get("SuccessEntitys").ToString();
string[] sArray1 = SuccessEntitys.Split(new char[2] { '[', ']' });
//获取编码
ArrayList arr = new ArrayList();
string number = JSONObject.Parse(sArray1[1].ToString()).Get("Number").ToString();
arr.Add(number);
jsobje.Put("Numbers", arr);
//获取ID
string Ids = JSONObject.Parse(sArray1[1].ToString()).Get("Id").ToString();
jsobje.Put("Ids", Ids);
jsobje.Put("InterationFlags", 0);
jsobje.Put("NetworkCtrl", "");
return jsobje.ToString();
}
public object jsonprlit(JSONObject obj1)
{
//提交
JSONObject jsobje = new JSONObject();
jsobje.Put("CreateOrgId", 0);
//jsobje.Put("Number", new ArrayList());
//获取SuccessEntitys的json数据
object Result = obj1.Get("Result");
var ResponseStatus = JSONObject.Parse(Result.ToString()).Get("ResponseStatus").ToString();
string SuccessEntitys = JSONObject.Parse(ResponseStatus.ToString()).Get("SuccessEntitys").ToString();
string[] sArray1 = SuccessEntitys.Split(new char[2] { '[', ']' });
//获取编码
ArrayList arr = new ArrayList();
string number = JSONObject.Parse(sArray1[1].ToString()).Get("Number").ToString();
arr.Add(number);
jsobje.Put("Numbers", arr);
//获取ID
string Ids = JSONObject.Parse(sArray1[1].ToString()).Get("Id").ToString();
jsobje.Put("Ids", Ids);
jsobje.Put("SelectedPostId", 0);
jsobje.Put("NetworkCtrl", "");
return jsobje.ToString();
}
}
}
保存了预留关系就有效果了?父项需求和顶级需求可以不填?
我承认你很强,但是可以将照片稍微往后放一放或者放小点吗
必填项
FSUPPLYFORMID='STK_Inventory' --供给类型
FSUPPLYINTERID='3448edf6-4709-8abc-11eb-bd34ff7caa63' --供给单据内码
FBASEQTY='5' --数量
编号不存在? 设置:"ValidateFlag", "false" --验证
【emoji】
【emoji】
不愧是星空大佬
1
创建预留关系
本文2024-09-16 17:22:47发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-15336.html
貌似只能保存不能提交审核。提交审核保存:表单预留关系不存状态字段,不能进行状态转换。