Table Looping zusammen mit Logical Functoid

Nachdem ich ein wenig an einem Table-Looping - Functoid “rumgespielt” hatte, funktionierte auf einmal gar nichts mehr. Der Build-Vorgang brach mit der Meldung

XSL transform error: Unable to write output instance to the following <file:///../test_output.xml>. XSLT compile error at (40,38).
See InnerException for details. ‘userCSharp:LogicalNe(string($var:) , “”)’ is an invalid XPath expression.
‘userCSharp:LogicalNe(string($var:) , “”)’ has an invalid qualified name.

ab. Klar, $var: alleine ist ungültig, da fehlt ein Bezeichner. Aber wer ist für das Fehlen desselben verantwortlich ;) Selbst nachdem ich im Table Looping Grid alles wieder zurückgestellt hatte, lief es nicht mehr. Testweise habe ich alle Logical Functoide nach den Table Extractoren entfernt - damit ist der Build wenigstens nicht mehr abgebrochen. Sobald die Logical Functoide wieder eingefügt waren, kam der Fehler aber auch wieder auf…

Ein Blick in die XML-Struktur des Mappings hat dann zum Glück Aufschluß gegeben.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<Input-Parameters>
<Parameter Type="Link" Value="3" Guid="{E9C93BDE-5549-480E-9660-2E377AF69017}" />
<Parameter Type="Constant" Value="4" Guid="{733A959C-2274-4458-A60C-144C6B66A117}" />
<Parameter Type="Constant" Value="" Guid="{9384FA51-D98B-4AC7-B22D-E18DF194E62D}" />
<Parameter Type="Link" Value="5" Guid="{4E2E8416-11C5-40FC-BBDE-79AE82E43DDF}" />
<Parameter Type="Link" Value="7" Guid="{1AE0E57A-6059-49A3-A39F-7DB4B0AB3C77}" />
<Parameter Type="Link" Value="8" Guid="{D8040325-2872-4FA8-B570-753BC07304ED}" />
<Parameter Type="Link" Value="9" Guid="{7EF84EED-DCFA-4DBD-A816-B6CF978FE3E4}" />
<Parameter Type="Link" Value="15" Guid="{F101BE29-E1D3-4A5B-AD6C-0225718DC878}" />
<Parameter Type="Link" Value="16" Guid="{8FBC49DA-6EC8-496B-A9CE-643718C7FFB7}" />
</Input-Parameters>
<TableLoopingData Rows="2" Columns="4" Gated="Yes">
<Row>
<Column Value="{4E2E8416-11C5-40FC-BBDE-79AE82E43DDF}" />
<Column Value="{254A7D7C-A8E0-48B6-8221-F50E4DA60A4E}" />
<Column Value="{9384FA51-D98B-4AC7-B22D-E18DF194E62D}" />
<Column Value="{D8040325-2872-4FA8-B570-753BC07304ED}" />
</Row>
<Row>
<Column Value="{1AE0E57A-6059-49A3-A39F-7DB4B0AB3C77}" />
<Column Value="{F101BE29-E1D3-4A5B-AD6C-0225718DC878}" />
<Column Value="{7EF84EED-DCFA-4DBD-A816-B6CF978FE3E4}" />
<Column Value="{254A7D7C-A8E0-48B6-8221-F50E4DA60A4E}" />
</Row>
</TableLoopingData>

Hier stehen innerhalb der Columns GUIDs, die als Parameter unbekannt sind (in diesem Fall gleich 2x die {254A7D7C-A8E0-48B6-8221-F50E4DA60A4E}). Beim Konfigurieren des Grids ist das nicht aufgefallen, da hier nun leere Felder stehen - und die waren in dem Fall an den betroffenen Stellen erwünscht. Sobald man an dieser Stelle das leere Feld explizit auswählt und mit OK bestätigt, funktioniert alles wie gehabt.

Meine Tests haben ergeben, dass ich zuvor wohl einen im Grid bereits zugewiesenen Parameter gelöscht haben muss. Unbemerkt ist es geblieben, da ich an den Stellen (wie im Bild zu sehen) ein leeres Feld erwünscht war, aber nicht explizit das richtige leere Feld ausgewählt wurde, sondern ein nun nicht mehr vorhandenen Feld ausgewählt blieb.