插件案例 —— 服务端基础资料赋值技巧

案例背景
下推的时候,有的时候我们可以在单据转换里面进行下游基础资料携带。但是有的基础资料没有办法经过携带,比如想下推过后默认携带当前用户的采购员、销售员,这些需要先取数,再赋值。
错误思路
直接给数据包赋值,比如 :
billObj["PurchaserId_Id"] =12138;
但是这样虽然能给给数据包赋值,界面上不显示呀,对应的数据模型没有填充。
代码思路一
如果基础资料仅后台生成过后,暂存,其实也确实是不需要赋值基础资料包,只要把对应的ID填写进数据库了,下次加载的时候,就会自动重新构建包。
代码思路二
BaseDataField purchaserIdField = e.TargetBusinessInfo.GetField("FPURCHASEID");
headDyn["PurchaserId_Id"] = Convert.ToInt64(取数的Id);
FieldUtils.SetBaseDataFieldValue(this.Context, purchaserIdField, headDyn, headDyn["PurchaserId_Id"]);FieldUtils.SetBaseDataFieldValue 其实利用的就是基础资料包Load后,再SetValue了。
public static void SetBaseDataFieldValue(Context ctx,BaseDataField field, DynamicObject data, object value)
{
long lPKValue = 0;
Int64.TryParse(value.ToString(), out lPKValue);
if (value.ToString().Length > 1 || lPKValue > 0)
{
DynamicObject valueObj = LoadReferenceData(ctx, field.RefFormDynamicObjectType, (object)value);
field.DynamicProperty.SetValue(data, valueObj);
filed.RefIDDynamicProperty.SetValue(data, value);
}
else
{
field.DynamicProperty.SetValue(data, null);
field.RefIDDynamicProperty.SetValue(data, 0);
}
}
public static Dynam插件案例 —— 服务端基础资料赋值技巧
案例背景下推的时候,有的时候我们可以在单据转换里面进行下游基础资料携带。但是有的基础资料没有办法经过携带,比如想下推过后默认携带当...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



