调用WebAPI生成物料出错
金蝶云社区-云社区用户z3xD9270
云社区用户z3xD9270
0人赞赏了该文章 1,325次浏览 未经作者许可,禁止转载编辑于2015年11月18日 12:48:02

代码如下:[code] JObject js = new JObject();
js.Add("Creator", "");
js.Add("NeedUpDateFields", new JArray());

JObject model = new JObject();
js.Add("Model", model);
model.Add("FMasterId", 0);
model.Add("FNumber", "Mytest");
model.Add("FName", "A");
model.Add("FMaterialSRC", "B");//物料来源:ERP

model.Add("FCreateOrgId", K3CloudClient.JsonObject("FNumber", "100"));
model.Add("FUseOrgId", K3CloudClient.JsonObject("FNumber", "100"));

//基本页
JObject tmp = new JObject();
tmp.Add("FErpClsID", "1");//外购
tmp.Add("FIsPurchase", true);//允许采购
tmp.Add("FIsSale", true);//允许销售
tmp.Add("FIsInventory", true);//允许库存
tmp.Add("FIsSubContract", false);//允许委外
tmp.Add("FIsProduce", false);//允许生产
tmp.Add("FIsAsset", false);

tmp.Add("FCategoryID", K3CloudClient.JsonObject("FNumber", "CHLB05_SYS"));//存货类别:产成品
tmp.Add("FTaxType", K3CloudClient.JsonObject("FNumber", "WLDSFL03_SYS"));//税分类:零税率
tmp.Add("FTaxRateId", K3CloudClient.JsonObject("FNumber", "SL04_SYS"));//零税率时的增值税
tmp.Add("FBaseUnitId", K3CloudClient.JsonObject("FNumber", "Pcs"));//个
tmp.Add("FWEIGHTUNITID", K3CloudClient.JsonObject("FNumber", "kg"));//重量单位
tmp.Add("FVOLUMEUNITID", K3CloudClient.JsonObject("FNumber", "m"));//长度单位
model.Add("BD_MATERIAL__SubHeadEntity", tmp);

//库存
tmp = new JObject();
tmp.Add("FStoreUnitID", K3CloudClient.JsonObject("FNumber", "pcs"));
tmp.Add("FCurrencyId", K3CloudClient.JsonObject("FNumber", "PRE001"));
tmp.Add("FIsLockStock", true);
tmp.Add("FUnitConvertDir", "1");//换算方向:从库存单位至辅助单位
// tmp.Add("FStockId", K3CloudClient.JsonObject("FNumber", "001"));//默认仓库
model.Add("BD_MATERIAL__SubHeadEntity1", tmp);

//销售
tmp = new JObject();
tmp.Add("FSaleUnitId", K3CloudClient.JsonObject("FNumber", "pcs"));
tmp.Add("FSalePriceUnitId", K3CloudClient.JsonObject("FNumber", "pcs"));
tmp.Add("FIsReturn", true);
model.Add("BD_MATERIAL__SubHeadEntity2", tmp);

//采购
tmp = new JObject();
tmp.Add("FPurchaseUnitId", K3CloudClient.JsonObject("FNumber", "pcs"));
tmp.Add("FPurchasePriceUnitId", K3CloudClient.JsonObject("FNumber", "pcs"));
tmp.Add("FIsReturnMaterial", true);
//tmp.Add("FDefaultVendor", K3CloudClient.JsonObject("FNumber", "A"));//默认供应商
model.Add("BD_MATERIAL__SubHeadEntity3", tmp);

//委外
tmp = new JObject();
tmp.Add("FSubconUnitId", K3CloudClient.JsonObject("FNumber", "pcs"));
tmp.Add("FSubconPriceUnitId", K3CloudClient.JsonObject("FNumber", "pcs"));
tmp.Add("FSubBillType", K3CloudClient.JsonObject("FNumber", "WWDD01_SYS"));
model.Add("BD_MATERIAL__SubHeadEntity7", tmp);

//质量
tmp = new JObject();
model.Add("BD_MATERIAL__SubHeadEntity6", tmp);

//计划
tmp = new JObject();
tmp.Add("FPlanMode", "0");//计划模式MTS
tmp.Add("FPlanningStrategy", "1");//计划策略:MRP
tmp.Add("FMfgPolicyId", K3CloudClient.JsonObject("FNumber", "ZZCL001_SYS"));//制造策略:考虑库存
tmp.Add("FOrderPolicy", "0");//订货策略:批对批
tmp.Add("FReserveType", "1");//预留类型:弱预留
tmp.Add("FOrderIntervalTimeType", "1");//订货间隔期单位:天
tmp.Add("FFixLeadTimeType", "1");//固定提前期单位:天
tmp.Add("FVarLeadTimeType", "1");//变动提前期单位:天
tmp.Add("FCheckLeadTimeType", "1");//检验提前期单位:天
tmp.Add("FMaxPOQty", 100);//最大订货量
tmp.Add("FAllowPartDelay", true);//预计入库允许部分延后
tmp.Add("FPlanOffsetTimeType", "1");//时间单位
model.Add("BD_MATERIAL__SubHeadEntity4", tmp);

//生产
tmp = new JObject();
tmp.Add("FProduceUnitId", K3CloudClient.JsonObject("FNumber", "Pcs"));
tmp.Add("FProduceBillType", K3CloudClient.JsonObject("FNumber", "SCDD03_SYS"));//生产类型:普通生产
tmp.Add("FOrgTrustBillType", K3CloudClient.JsonObject("FNumber", "SCDD06_SYS"));//组织间受托类型:直接入库
tmp.Add("FBOMUnitId", K3CloudClient.JsonObject("FNumber", "Pcs"));//子项单位
tmp.Add("FIssueType", "1");//直接发料
tmp.Add("FOverControlMode", "2");//超发控制方式:允许超发
model.Add("BD_MATERIAL__SubHeadEntity5", tmp);

//库存属性
JArray ja = new JArray();
model.Add("BD_MATERIAL__FEntityInvPty", ja);

//辅助属性
ja = new JArray();
model.Add("BD_MATERIAL__FEntityAuxPty", ja);

JObject ret = K3CloudClient.Invoke("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save",
new object[] { "BD_MATERIAL", js.ToString() });[/code]

错误如下:

[code]{"InnerExWrapper":{"IsEmpty":false,"Data":{},"HelpLink":null,"Message":"调用的目标发生了异常。","Source":null,"StackTrace":" 在 System.RuntimeMethodHandle._InvokeMethodFast(IRuntimeMethodInfo method, Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeType typeOwner)\r\n 在 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)\r\n 在 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)\r\n 在 Kingdee.BOS.ServiceFacade.KDServiceFx.ServiceExecutor.Execute(KDServiceContext context, ServiceType svcType, String[] paraValues, SerializerProxy serializeProxy, ServiceType beginMethod)","TargetSite":null,"ExceptionType":"System.Reflection.TargetInvocationException, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089","InnerException":{"IsEmpty":false,"Data":{},"HelpLink":null,"Message":"给定关键字不在字典中。","Source":null,"StackTrace":" 在 Kingdee.BOS.WebApi.FormService.WebApiServiceCall.ExecuteOperation(Context ctx, FormMetadata metadata, FormOperation op, String data)\r\n 在 Kingdee.BOS.WebApi.FormService.WebApiServiceCall.ExcuteSpecialOperation(Context ctx, String formId, String data, Int64 opId)\r\n 在 Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save(String formid, String data)","TargetSite":null,"ExceptionType":"System.Exception, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089","InnerException":null}},"ClassName":"Kingdee.BOS.ServiceFacade.ServiceException","Message":"给定关键字不在字典中。","Data":null,"InnerException":null,"HelpURL":null,"StackTraceString":" 在 Kingdee.BOS.ServiceFacade.KDServiceFx.ServiceExecutor.Execute(KDServiceContext context, ServiceType svcType, String[] paraValues, SerializerProxy serializeProxy, ServiceType beginMethod)\r\n 在 Kingdee.BOS.ServiceFacade.KDServiceFx.ExecuteServiceModule.OnProcess(KDServiceContext context)\r\n 在 Kingdee.BOS.ServiceFacade.KDServiceFx.ModulePipeline.ExcuteRequest(KDServiceContext context)\r\n 在 Kingdee.BOS.ServiceFacade.KDServiceFx.RequestExcuteRuntime.BeginRquest(RequestExtractor requestExtractor, WebContext webCtx)\r\n 在 Kingdee.BOS.ServiceFacade.KDServiceFx.RequestExcuteRuntime.StartRequest(RequestExtractor requestExtractor, WebContext context)\r\n 在 Kingdee.BOS.ServiceFacade.KDServiceFx.KDSVCHandler.ExecuteRequest(WebContext ctx, RequestExtractor requestExtractor)\r\n 在 Kingdee.BOS.ServiceFacade.KDServiceFx.KDSVCHandler.ProcessRequestInternal(WebContext webCtx, RequestExtractor requestExtractor)","RemoteStackTraceString":null,"RemoteStackIndex":0,"ExceptionMethod":"8\nExecute\nKingdee.BOS.ServiceFacade.KDServiceFx, Version=5.1.206.6, Culture=neutral, PublicKeyToken=null\nKingdee.BOS.ServiceFacade.KDServiceFx.ServiceExecutor\nSystem.String Execute(Kingdee.BOS.ServiceFacade.KDServiceFx.KDServiceContext, Kingdee.BOS.ServiceFacade.KDServiceFx.ServiceType, System.String[], Kingdee.BOS.ServiceFacade.SerializerProxy, Kingdee.BOS.ServiceFacade.KDServiceFx.ServiceType)","HResult":-2147467259,"Source":"Kingdee.BOS.ServiceFacade.KDServiceFx","WatsonBuckets":null,"_httpCode":500}[/code]求助,我这是那里又出错了?总部这边能改下代码,让提示更明确一些吗?