BizTalk LDAP 请求平面文件。如何在地图中做到这一点?

问题描述 投票:0回答:0

我正在使用 LDAP 请求根据要求获取 AD 数据。请求的结果是 xml 文档(缺少结果的模式。包含结果/XMLDoc 的消息名为 msg_AD_xxx_response),其屏蔽值如下:

<ns0:AllBfnUsers xmlns:ns0="http://xxx_LDAPSearchResult">
    <ResultEntry>
        <AgressoID_extensionAttribute2>xxx000003</AgressoID_extensionAttribute2>
        <Fornamn_givenName>Donald</Fornamn_givenName>
        <Efternamn_sn>Duck</Efternamn_sn>
        <EHandelsroll_extensionAttribute5>xxx</EHandelsroll_extensionAttribute5>
        <Mail_mail>[email protected]</Mail_mail>
        <Personnummer_extensionAttribute3>1234</Personnummer_extensionAttribute3>
    </ResultEntry>
    <ResultEntry>
        <AgressoID_extensionAttribute2>xxx000002</AgressoID_extensionAttribute2>
        <Fornamn_givenName>Daisy</Fornamn_givenName>
        <Efternamn_sn>Duck</Efternamn_sn>
        <EHandelsroll_extensionAttribute5>xxx</EHandelsroll_extensionAttribute5>
        <Mail_mail>[email protected]</Mail_mail>
        <Personnummer_extensionAttribute3>4321</Personnummer_extensionAttribute3>
    </ResultEntry>

 .
 . (Lots of ResultEntries)
 .

</ns0:AllBfnUsers>

最终结果应该是一个平面文件,第一行作为带有特定不可更改数据和属性的标题(但这将是另一个问题。此信息仅用于上下文,但如果解决方案很简单,请随意泄露它)和其余的条目其余的 LDAP 用户。

USER;xxx;1067;2023-05-02T13:40:01;[email protected];F;
070511234;Donald;Duck;[email protected];;;;;;;;1234;
070514321;Daisy;Duck;[email protected];;;;;;;;4321;

我确实意识到我需要源和目标的模式,但我不知道如何使数据从源到目标并到正确的节点(如“Efternamn_sn”到“姓氏”)。

我创建的目标 FF 模式如下所示。

<?xml version="1.0" encoding="utf-16"?>
<xs:schema xmlns="http://xxx.xxx_HR_xxx_to_xxx.Schemas.xxx_LDAPSearchResult" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" targetNamespace="http://xxx.xxx_HR_xxx_to_xxx.Schemas.xxx_LDAPSearchResult" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="AllBfnUsers">
    <xs:annotation>
      <xs:appinfo>
        <b:recordInfo rootTypeName="AllBfnUsers" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" />
      </xs:appinfo>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" name="ResultEntry">
          <xs:complexType>
            <xs:sequence>
              <xs:element minOccurs="0" name="xxx_extensionAttribute2" type="xs:string" />
              <xs:element minOccurs="0" name="Fornamn_givenName" type="xs:string" />
              <xs:element minOccurs="0" name="Efternamn_sn" type="xs:string" />
              <xs:element minOccurs="0" name="xxx_extensionAttribute5" type="xs:string" />
              <xs:element minOccurs="0" name="Mail_mail" type="xs:string" />
              <xs:element minOccurs="0" name="xxx_extensionAttribute3" type="xs:string" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

现在,我在谷歌上搜索了一下,发现了一个可以用作映射的源模式(未修改)的模式,但对此也不太确定。

<?xml version="1.0" encoding="utf-16"?>
<xs:schema xmlns:b="http://schemas.microsoft.com/BizTalk/2003" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="LDAPSearchResults">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" name="ResultEntry">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" name="LDAPAttribute">
                <xs:complexType>
                  <xs:attribute name="Type" type="xs:string" />
                  <xs:attribute name="Value" type="xs:string" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
            <xs:attribute name="DN" type="xs:string" use="required" />
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

我希望有人能看到这个问题的简单解决方案,并希望能提供帮助。

xsd ldap mapping biztalk flat-file
© www.soinside.com 2019 - 2024. All rights reserved.