我正在使用Data Import Export Framework
(DIXF)处理文件交换(导出),我想添加生成方法来查找与接收行LineAmount
关联的VendPackingSlipTrans
Purchline PurchLine
table.I创建以下脚本但我需要帮助:
[DMFTargetTransformationAttribute(true),DMFTargetTransformationDescAttribute("Function that generate LineAmount"),
DMFTargetTransformationSequenceAttribute(11),
DMFTargetTransFieldListAttribute([fieldStr(DMFVendPackingSlipTransEntity,LineAmount)])
]
public container GenerateLineAmount(boolean _stagingToTarget = true)
{
container res;
PurchLine purchLine;
VendPackingSlipTrans vendPackingSlipTrans;
if (_stagingToTarget)
{
select firstOnly purchLine
where purchLine.LineAmount == entity.LineAmount &&
vendPackingSlipTrans.OrigPurchid == purchLine.PurchId &&
vendPackingSlipTrans.PurchaseLineLineNumber == purchLine.LineNumber;
if ( ! purchLine )
{
entity.LineAmount = purchLine.LineAmount ;
entity.insert();
}
}
res = [entity.LineAmount];
return res;
}
我必须使用DMF将数据从ax导出到文件,因此我在VendPackingSlipTrans中存在一些字段,因此在临时表中添加了这些字段,但其他字段存在于LineAmount等其他表中。我不知道如何在登台表中添加此其他字段。为了在myEnityclass中我创建了generat方法来关联源表中的字段。到临时表
答案 0 :(得分:2)
因此,您似乎希望使用数据导入/导出框架(DIXF)的自定义实体从VendPackingSlipTrans
记录中导出PurchLine
条记录以及其他信息。如果这是正确的,那么您的实现中会出现一些问题:
if (_stagingToTarget)
分支中的逻辑:由于框架可用于导入和导出,因此_stagingToTarget
用于区分两者。如果_stagingToTarget
为true
,则会将数据从登台表导入Dynamics AX目标表。所以你需要把逻辑放在else
分支。PurchLine
记录:当前实现永远不会选择PurchLine
记录,因为未实例化的VendPackingSlipTrans
表变量的值将用作select语句中的条件。所选标准也是错误的,请查看表purchLine
的方法VendPackingSlipTrans
,了解如何获取PurchLine
记录的VendPackingSlipTrans
记录并使用{{1变量实例化target
表变量。 VendPackingSlipTrans
:此检查表示如果可以使用上一个select语句找到NO if (! purchLine)
记录,则此空记录的PurchLine
将用于登台记录。这是错误的,而您想要使用已找到的记录的LineAmount
。LineAmount
:正如我在评论中提到的,实体记录不应该插入到generate方法中;框架将负责插入这些问题的可能修复方法如下:
entity.insert()