Количество входных данных для скриптового функтоида не совпадает с количеством входных данных, ожидаемых шаблоном xsl: call - PullRequest
0 голосов
/ 16 апреля 2019

Я работаю над проектом BizTalk, и мне нужно получить минимальную дату между многими датами, находящимися в разных узлах, используя сопоставление BizTalk и XSLT.

У меня есть поиск по какому-то примеру, и я нашел это: Как найти минимальную дату в разных узлах даты xml, используя xslt , что кажется мне уместным для моей проблемы.

Таким образом, я изменил код и поместил его в функтоид Scripting под типом скрипта «Шаблон вызова Inline XSLT», затем я построил свой проект, и он возвращает мне эту ошибку «Количество входов в функтоид скриптов не совпадает с числом входных данных, ожидаемых шаблоном xsl: call. "

Поскольку я довольно новичок в XSLT и BizTalk, любая помощь приветствуется.

Я уже переместил связь между узлом ввода и функтоидом, но получил ту же ошибку.

Вот скрипт XSLT Inline

<xsl:template name="ExtractMinStartDate">
     <xsl:for-each select="/*[local-name()='Employee']/*[local-name()='Contracts']/*[local-name()='Contract']/*[local-name()='EmployementStartDate']">
         <xsl:sort select="substring(Date,1,4)" data-type="string" order="ascending"/>
         <xsl:sort select="substring(Date,6,2)" data-type="string" order="ascending"/>
         <xsl:sort select="substring(Date,9,2)" data-type="string" order="ascending"/>
              <xsl:if test="position()=1">
                   <xsl:value-of select="EmployementStartDate" />  
              </xsl:if>
     </xsl:for-each>
</xsl:template>

Вот XML на входе

<Employee xmlns="http://Securitas.ESB.HR.EmployeeUDMToRostar.MDSRequest_Schema">
    <Number>157989</Number>
    <SagaNumber>23776</SagaNumber>
    <SurNameFull>Test</SurNameFull>
    <FirstName>test</FirstName>
    <GivenName>test</GivenName>
    <Gender>Man</Gender>
    <DateOfBirth>1992-04-07T00:00:00.0000000+02:00</DateOfBirth>
    <EmailPrivate>test@hotmail.com</EmailPrivate>
    <PhoneMobilePrivate>5145454558</PhoneMobilePrivate>
    <PhonePrivate/>
    <EmployementStartDate/>
    <EmployementEndDate/>
    <UPN/>
    <SAMAccountName/>
    <Functions>
        <Function>
            <StartDate>2011-10-10T00:00:00.0000000+02:00</StartDate>
            <EndDate>2015-05-31T00:00:00.0000000+02:00</EndDate>
            <CostCenter>sdrg gerg jytfjdqert htrh</CostCenter>
            <CostCenterCode/>
            <Position>ihygkhgkjhgv A</Position>
        </Function>
    </Functions>
    <Contracts>
        <Contract>
            <ID>ce369e13-f21f-4210-88e5-502bee3cdcc0</ID>
            <StartDate>2015-10-10T00:00:00.0000000+02:00</StartDate>
            <EndDate/>
            <EmployementStartDate>2024-10-10T00:00:00.0000000+02:00</EmployementStartDate>
            <EmployementEndDate/>
            <Type>Onbepaalde tijd</Type>
            <PhaseID>O</PhaseID>
            <PB_CAO>true</PB_CAO>
            <DissimelarCAO>VPB</DissimelarCAO>
        </Contract>
                <Contract>
            <ID>ce369e13-f21f-4210-88e5-502bee3cdcc0</ID>
            <StartDate>2011-10-10T00:00:00.0000000+02:00</StartDate>
            <EndDate/>
            <EmployementStartDate>2011-10-10T00:00:00.0000000+02:00</EmployementStartDate>
            <EmployementEndDate/>
            <Type>Onbepaalde tijd</Type>
            <PhaseID>O</PhaseID>
            <PB_CAO>true</PB_CAO>
            <DissimelarCAO>VPB</DissimelarCAO>
        </Contract>
    </Contracts>
    <Roosters>
        <Rooster>
            <StartDate>2011-10-10T00:00:00.0000000+02:00</StartDate>
            <EndDate/>
            <WeekAmountOfHours>30.5</WeekAmountOfHours>
        </Rooster>
    </Roosters>
    <Wages>
        <Wage>
            <ID>c4df91b1-292d-464e-b17f-259968b9c39c</ID>
            <StartDate>2016-12-05T00:00:00.0000000+01:00</StartDate>
            <EndDate>2017-01-01T00:00:00.0000000+01:00</EndDate>
            <HourlyWage>12.74</HourlyWage>
            <RightTravelExpense>true</RightTravelExpense>
            <RightTravelHours>true</RightTravelHours>
            <RightAdditions>true</RightAdditions>
            <MaxKm/>
            <DissimelarZipCode/>
        </Wage>
    </Wages>
</Employee>

Результат, ожидаемый в выходном XML, должен получить самую старую "EmployementStartDate", поэтому в этом случае

<Employee xmlns="http://Securitas.ESB.HR.EmployeeUDMToRostar.MDSRequest_Schema">
    <Number>157989</Number>
    <SagaNumber>23776</SagaNumber>
    <SurNameFull>Test</SurNameFull>
    <FirstName>test</FirstName>
    <GivenName>test</GivenName>
    <Gender>Man</Gender>
    <DateOfBirth>1992-04-07T00:00:00.0000000+02:00</DateOfBirth>
    <EmailPrivate>test@hotmail.com</EmailPrivate>
    <PhoneMobilePrivate>5145454558</PhoneMobilePrivate>
    <PhonePrivate/>
    <EmployementStartDate>2011-10-10T00:00:00.0000000+02:00</EmployementStartDate>
    .
    .
    .
</Employee>
...