【问题标题】:Avoiding duplicates in parent scope when mapping field in Biztalk Map在 Biztalk Map 中映射字段时避免父范围中的重复
【发布时间】:2019-03-06 12:20:23
【问题描述】:

我的情况是这样的: 源树中的“代码”字段需要映射到目标树中的“代码”字段。目标树中的“代码”字段有 2 个父节点。对于要验证的目标模式,相同的代码不能在第二个父节点的范围内出现多次。这是层次结构的图像:

因此在“PurchaseInformation”范围内,不可能出现相同的“代码”。 “GoodsDescription”上的循环 functoid 循环。我试图创建一个内联 C# 脚本来处理它,但它没有考虑范围。见以下代码:

public System.Collections.Generic.List<string> duplicateList = new System.Collections.Generic.List<string>();

    public bool IsDuplicate(string code)
    {
         if( duplicateList.Contains(code)) {
            return false;
         } 
         else {
            duplicateList.Add(code);
            return true;
         }
    }

我的问题是创建的全局列表。它不会在每次循环后重置,但我不确定如何实现此功能。我的问题是如何确保在目标树的“PurchaseInformation”记录范围内没有映射重复代码?

【问题讨论】:

  • PurchaseInformation 是否有唯一的项目,例如 ReferenceNumber?然后连接 ReferenceNumber 和 Code 作为 IsDuplicate 函数的输入
  • PurchaseInformation 字段位于目标架构中。对不起,如果我没有在我的帖子中说清楚。尽管输入模式中的字段非常相似。我会看看其中一个是否是唯一的,并使用它与代码连接。

标签: c# xml xslt schema biztalk


【解决方案1】:

没有看到整个过程,很难给出可能是最好的解决方案......但是......

您可以尝试使用列表列表,而不是尝试重置集合(这是有困难的原因)。

假设 SimplifiedInvoice 是一个 ID 或其他东西,您可以使用列表字典来跟踪每个发票的唯一代码值列表。

【讨论】:

    猜你喜欢
    • 2021-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多