跳到主要内容

明细数据映射(明细中含动态)

明细数据映射(明细中含动态)

# 引入要映射的数据(如审批申请详情)
res = context['input_data']['t_data']
# 引入动态映射数据表(如查询商品列表)
product = context['input_data']['product']

# 定义商品映射
res_product = {}# 存储商品映射的结果
for p in product:# 遍历商品列表,p为列表中的每条数据
res_product[p['name']] = p['code']# 字段映射关系配置(将name映射为code,因为下一个节点写入的时候要用到的是编码)

t_data = res['t_data']# 引入要映射的数据(t_data)

detail = t_data['采购明细']# 引入要映射的明细数据(采购明细)
# 遍历采购明细
result=[]# 定义遍历的结果
for i in detail:# 开始遍历,i为明细中的每一条数据
dic={}# 定义目标数据结构,{}表示目标数据结构是字典类型
# 以下为字段映射关系配置
productCode = i['采购明细_物品名称']# 取数据来源中要映射字段的字段值(如采购明细_物品名称),productCode为定义的变量,用来装取到的字段值
if productCode in res_product:# 判断取到的字段值在不在商品的映射结果里面
productCode = res_product[productCode] # 如果在,就把product的name变成code
dic['productCode']=productCode# 映射为从其他动作中取到的动态值

dic['warehouseCode']='DEFALUT'# 映射为固定值
dic['spec']=i['采购明细_型号或规格']# 映射为采购明细中的动态值
dic['isFreeGift']='0'
dic['taxPct']='0'
dic['transQty']=str(i['采购明细_数量'])
dic['transUomName']='米'
dic['price']=i['采购明细_金额']
dic['amount']=str(i['采购明细_金额'])
dic['comments']=i['采购明细_备注']
result.append(dic)# 保存组织好的结果
output={'result':result}# 输出结果