Aller au contenu principal

Isolated vs Non-Isolated FS_LIST-Verwirrung

Commentaires

6 commentaires

  • Zendesk API User
    Author: boersteken - 8/15/2018 15:55

    Hallo Heiko,

    warum an dieser Stelle nun Objekte einer anderen internen Klasse zurückkommen kann ich nicht sagen. Wie du aber richtig erkannt hast, hat sich das Verhalten der API nicht verändert. Das Problem entsteht dadurch, dass ihr Abhängigkeiten zu Klassen habt die nicht Teil der API sind. Davon raten wir stark ab, unter anderem um genau diese Situation die ihr jetzt habt zu vermeiden.

    Daher ist meine Frage: Warum genau prüft ihr hart kodiert auf die Klasse EntityFormData und was ist eure fachliche Anforderung, die dies erzwingt?

    Grüße,

    Philipp

    0
  • Zendesk API User
    Author: hbarthel - 8/15/2018 21:41

    Hallo Philipp,

    das müssen wir noch herausfinden, wir haben den Code wie gesagt nicht geschrieben. Aber es beruhigt mich ungemein, dass e-Spirit selber nicht weiß, warum beim isolated und non-isolated jeweils Objekte unterschiedlichen Typs raus gegeben werden.

    0
  • Zendesk API User
    Author: gottschalk1 - 8/16/2018 9:40

    Hallo Heiko,

    um das Problem sinnvoll beurteilen zu können und einem etwaigen Problem auf die schliche zu kommen müsstest du uns mehr Informationen zur Verfügung stellen. Wo prüft Ihr auf die Klasse? im Ausgabekanal? in einem Script? in eurer eigenen Modulimplementierung?

    Kannst du uns den Quellcode zwecks Reproduktion zur Verfügung stellen? Ich würde gerne ausschließen das Ihr gegen eine unserer internen Implementierungsklassen entwickelt.

    Grüße aus Dortmund

    Johannes

    0
  • Zendesk API User
    Author: hbarthel - 8/16/2018 9:50

    Hallo Johannes,

    das Mithras-Projekt nehmen und einmal im isolated und einmal im not-isolated FS:

    - Brechpunkt in Vorlage "Products.job_categories" Zeile 13

    - Seitenref "jobs_2" im Template Debugger laufen lassen

    Die Variable _job hat dann jeweils verschiedenen Klassen: EntityFormData vs IdentifiableIdProvidingFormData.

    Dass "wir", also unsere Vorgänger interne Klassen verwenden, habe ich ja jetzt schon zweimal geschrieben.

    0
  • Zendesk API User
    Author: mikula - 9/4/2018 15:21

    Hallo Heiko,

    ihr verwendet wie du bereits geschrieben hattest interne Klassen. Die Kollegen aus der Entwicklung des Kernproduktes versuchen bei Ihren Implementierungen immer API Kompatibel zu sein. Das bedeutet jedoch nicht, dass sie versuchen an allen Stellen die gleichen Interna zurückzugeben. Wie du selbst merken konntest, kann sich dies bei unterschiedlichen Betriebsformen durchaus unterscheiden.

    Kurz: Bei der Entwicklung von Skripten oder Modulen, möglichst Immer versuchen API kompatibel zu bleiben.

    In dem Konkreten Fall hieße dies: einfach nur mit "IdProvidingFormData" arbeiten.

    Viele Grüße

    Martin

    0
  • Zendesk API User
    Author: mbergmann - 9/5/2018 6:54

    Hallo Heiko,

    vielleicht als kleiner Tipp:

    Ich vermute mal, dass ihr die internen Klassen im Rahmen einer "instanceof"-Prüfung nutzt. Das kann man genauso gut mit class("...").isCase(obj) machen - und da können dann auch Interfaces angegeben werden:

    $CMS_IF(class("de.espirit.firstspirit.access.editor.fslist.IdProvidingFormData").isCase(someValue))$

    Das entspricht einem

    if(someValue instanceof IdProvidingFormData)

    Viele Grüße

    Michael

    0

Vous devez vous connecter pour laisser un commentaire.