帖子
帖子
用户
博客
课程
显示全部楼层
9
帖子
0
勋章
66
Y币

原厂单据在保存规则链如何设置 特征自定义项

[复制链接]
发表于 2023-7-8 18:05:56
本帖最后由 BIP165931 于 2023-7-8 18:07 编辑

需要在发货单保存时更新特征自定义项,现在碰到问题是 如果发货单特征字段已经有值 就能更新, 如果没有特征字段 值就设置不了。



for (var i = 0; i < param.data[0].deliveryDetails.length; i++){
          if(param.data[0].deliveryDetails.deliveryDetailDefineCharacter!=undefined)
          {
//这段代码能正常更新
             param.data[0].deliveryDetails.deliveryDetailDefineCharacter.set('FY009','abc');
             param.data[0].deliveryDetails.deliveryDetailDefineCharacter.set('_status','Update');
          }
          else
          {
//这段代码无效
            let def = {'_entityName':'voucher.delivery.DeliveryDetailDefineCharacter',
                        '_keyName':'id',
                        'FY009': '12',
                        '_status':'Insert',
                        'ytenant':'ebkitg4w',
                        'id':''
            }
            param.data[0].deliveryDetails.set('deliveryDetailDefineCharacter',def)
          }
        }




本帖子中包含更多资源,您需要 登录 才可以下载或查看,没有帐号?立即注册

X
BIP165931
9
帖子
0
勋章
66
Y币
最佳答案
最终实现代码 for (var i = 0; i < param.data[0].deliveryDetails.length; i++){ if(! param.data[0].deliveryDetails.deliveryDetailDefineCharacter){ param.data[0].deliveryDetails.set('deliveryDetailDefineCharacter',{}); param.data[0].deliveryDetails.deliveryDetailDefineCharacter.set('FY009','新增'); } else{ param.data[0].deliveryDetails.deliveryDetailDefineCharacter.set('FY009','更新'); } } 注意点: 1.明细行 _status 为新增 修改, 特征才会修改。 2. 规则链位置尽量靠前(在生成特征表ID之前)
143
帖子
2
勋章
4万+
Y币
试试这种类似的写法
if(!arrivalOrder.bodyFreeItem){
        arrivalOrder.set("bodyFreeItem", {});
        arrivalOrder.bodyFreeItem.set("_entityName", "pu.arrivalorder.ArrivalOrdersCustomItem");
        arrivalOrder.bodyFreeItem.set("_keyName", "id");
        arrivalOrder.bodyFreeItem.set("_realtype", true);
        arrivalOrder.bodyFreeItem.set("_status", "Insert");
        arrivalOrder.bodyFreeItem.set("id", arrivalOrder.id + "");
}
9
帖子
0
勋章
66
Y币
yonyouhmm · 2023-7-8 18:16试试这种类似的写法
if(!arrivalOrder.bodyFreeItem){
        arrivalOrder.set("bodyFreeItem", {});

改成了这样 还是不行

for (var i = 0; i < param.data[0].deliveryDetails.length; i++){
          if(param.data[0].deliveryDetails.deliveryDetailDefineCharacter!=undefined)
          {
             param.data[0].deliveryDetails.deliveryDetailDefineCharacter.set('FY009','abc');
             param.data[0].deliveryDetails.deliveryDetailDefineCharacter.set('_status','Update');
          }
          else
          {
            /*
            let def = {'_entityName':'voucher.delivery.DeliveryDetailDefineCharacter',
                        '_keyName':'id',
                        'FY009': '12',
                        '_status':'Insert',
                        'ytenant':'ebkitg4w',
                        'id':''
            }
            param.data[0].deliveryDetails.set('deliveryDetailDefineCharacter',def)
            */
            
            param.data[0].deliveryDetails.set('deliveryDetailDefineCharacter',{});
            param.data[0].deliveryDetails.deliveryDetailDefineCharacter.set('_entityName','voucher.delivery.DeliveryDetailDefineCharacter');
            param.data[0].deliveryDetails.deliveryDetailDefineCharacter.set('_keyName','id');
            param.data[0].deliveryDetails.deliveryDetailDefineCharacter.set('FY009','12');
            param.data[0].deliveryDetails.deliveryDetailDefineCharacter.set('_status','Insert');
            param.data[0].deliveryDetails.deliveryDetailDefineCharacter.set('ytenant','ebkitg4w');
            param.data[0].deliveryDetails.deliveryDetailDefineCharacter.set('id', param.data[0].deliveryDetails.id+'');
            
          }
        }
9
帖子
0
勋章
66
Y币
BIP165931 · 2023-7-8 18:43改成了这样 还是不行

for (var i = 0; i < param.data[0].deliveryDetails.length; i++){

我看数据已经写进 voucher.delivery.DeliveryDetailDefineCharacter 了, 但是 好像没有跟发货单子表关联起来
143
帖子
2
勋章
4万+
Y币
arrivalOrder.set("bodyFreeItem", {});
就这个这样写  其他的按照你自己的结构写
9
帖子
0
勋章
66
Y币
最终实现代码

for (var i = 0; i < param.data[0].deliveryDetails.length; i++){
         
          if(! param.data[0].deliveryDetails[i].deliveryDetailDefineCharacter){
             param.data[0].deliveryDetails[i].set('deliveryDetailDefineCharacter',{});
             param.data[0].deliveryDetails[i].deliveryDetailDefineCharacter.set('FY009','新增');
          }
          else{
             param.data[0].deliveryDetails[i].deliveryDetailDefineCharacter.set('FY009','更新');
          }
        }

注意点: 1.明细行 _status 为新增 修改, 特征才会修改。 2. 规则链位置尽量靠前(在生成特征表ID之前)



您需要登录后才可以回帖 登录

本版积分规则