Ausdruck evaluiert in der Vorschau *im* Spreadsheet korrekt, aber in der Step-Vorschau (und im Durchlauf) falsch

Ganz komisches Verhalten: ich evaluiere den gewünschten Wert für die Spalte ItemMarking1ID in Freemarker:

<#if (ItemMarking1ID == "1" || ItemMarking1ID == "3" || ItemMarking1ID == "4")>
  ${ItemMarking1ID!}
<#else>
  <#if (isSale == "1")>
    <#if (ItemMarking1ID == "2")>
      0
    <#else>
      ${ItemMarking1ID!}
    </#if>
  <#elseif (result["reallyIsNew"] == "1")>
    2
  <#else>
    <#if (ItemMarking1ID == "2")>
      0
    <#else>
      ${ItemMarking1ID!}
    </#if>
  </#if>
</#if>

Dabei sind die betrachteten Werte wie folgt:

  • ItemMarking1ID = 0
  • isSale = 0
  • reallyIsNew = 1

Entsprechend sollte dann 2 raus kommen.

Tuts auch, im Spreadsheet selbst in der Vorschau:

Aber nicht in der Vorschau „von draußen“ aus:
2025-09-01 15_28_09-Step Configuration - Synesty Studio - https___apps.synesty.com_studio_jobControl

Und auch nicht im wirklichen Durchlauf (die Markierung wird immer entfernt, also auf 0 gesetzt).

Im Spreadsheet-Mapper ist kein Caching aktiv. Mach ich was falsch?

Danke Daniel

Moin Daniel,

setz mal überall in den if-Bedingungen noch ein ?trim dahinter - also z.B. ItemMarking1ID?trim == “1” - ich hatte selbiges auch schon mal, dass Vorschau und Execution deshalb nicht den gleichen Output generiert haben.

LG
Tim

Hey @samenhaus-admin ,

kann es sein, dass es an den result[“…”]-Sachen liegt? Ich habe im Kopf, dass sich das in der Vorschau anders verhält als in einem richtigen Flowdurchlauf.

Alle result-Spalten, die verwendet werden sollen, müssen zuvor definiert sein. Also links von der eigentlichen Spalte im Mapper auftauchen.

Edit: Wo ich mir deine Problemfall weiter anschaue, bin ich mir fast sicher, dass die Result-Geschichte schuld ist. Wenn result[„reallyIsNew“] nicht existiert und als leere String evaluiert wird, ergibt dein Skript 0.

Gruß

Gustav

Hi zusammen,

Ja, gute Idee, war mir so auch schon mal passiert gewesen, aber hier nicht. Habs überprüft, weil ich mir aber auch nicht getraut habe :wink:

War hier tatsächlich auch korrekt, reallyIsNew war F, und ItemMarking1ID mit dem Code auf Q. Der Fallstrick war mir bekannt…

Trotzdem:

Ja, war sie auch. Das result ging auf eine Spalte mit einem Querverweis. Ich habe diesen QV jetzt in einen eigenen Mapper davor umgezogen, und der Code liest jetzt den Wert ohne dass ein result überhaupt nötig ist. Und es funktioniert :star_struck:

Ich bin mir nicht ganz sicher warum, aber gut. Dein Riecher war gut :flexed_biceps:

Danke & Grüße,
Daniel

Hallo Daniel,

benutzt du einen der Passthrough-Modi? Dann ist ja deine Spaltenanordnung im Mapper nicht unbedingt gleich der tatsächlichen Spaltenanordnung. Wenn’s das nicht ist, bin ich zu der Ursache auch überfragt.

Aber wenigstens läufts jetzt!

Gruß

Gustav