jan_fruehwacht
I'm new here

Unerwartetes Verhalten bei einem API Aufruf ?

Hallo,

aktuell überprüfe ich unsere Module und kompiliere sie gegen die FirstSpirit 5.1.106 API.

Dabei ist mir ein ?inkonsistenter? Zustand aufgefallen:

Wir haben ein FormatTemplate mit dem Referenznamen "br":

<FORMATTEMPLATE editor="3251" id="1047839" name="br" revision="2150486">

    <LANG displayname="br" language="MAS"/>

    <style quote="1" tag="br" view="marked">

        <render>

            <channel conversion="Unicode to HTML4" name="html" templateSetId="1046073"/>

        </render>

        <attr name="font" value="SansSerif"/>

        <attr name="name" value="br"/>

        <attr name="align" value="LEFT"/>

    </style>

</FORMATTEMPLATE>

Beim Versuch das FormatTemplate über folgenden API Aufruf in eine Variable zu speichern wurde immer "null" zurück geliefert:

TemplateStoreRoot.getFormatTemplates().getFormatTemplate("br");

Das Template wurde mit einem Projektimport aus der FirstSpirit-Version 4.2.454 mitimportiert.

Nachdem ich das Template bearbeitet, umbenannt (in "br_abc", abgespeichert und danach wieder bearbeitet, umbenannt (wieder zurück in "br") und abgespeichert habe, hat der API Aufruf wieder funktioniert.

Das Template sah danach in seiner XML-Repräsentation auch so aus:

<FORMATTEMPLATE editor="1" id="1047839" name="br" revision="2353357">

    <LANG displayname="br" language="MAS"/>

    <style quote="1" tag="br" view="marked">

        <render>

            <channel conversion="Unicode to HTML4" name="html" templateSetId="1046073"/>

        </render>

        <attr name="color" value=""/>

        <attr name="font" value="SansSerif"/>

        <attr name="font-size" value=""/>

        <attr name="font-style" value=""/>

        <attr name="name" value="br"/>

        <attr name="align" value="LEFT"/>

        <attr name="background-color" value=""/>

        <attr name="border-color" value=""/>

        <attr name="tooltip" value=""/>

    </style>

    <LANG language="EN_GB"/>

    <LANG language="DE_DE"/>

    <LANG language="DE_CH"/>

    <LANG language="FR_FR"/>

    <LANG language="FR_BE"/>

    <LANG language="FR_CH"/>

    <LANG language="ES_ES"/>

    <LANG language="NL_NL"/>

    <LANG language="NL_BE"/>

    <LANG language="IT_IT"/>

    <LANG language="IT_CH"/>

    <LANG language="PT_PT"/>

    <LANG language="RU_RU"/>

    <LANG language="EN_ZA"/>

    <LANG language="EN_AU"/>

    <LANG language="DE_AT"/>

</FORMATTEMPLATE>

Ich möchte dies hier zu Dokumentationszwecken und auch Frage bereitstellen.

Eventuell stoßen andere Entwickler auch darüber und verschwenden unnötig Zeit.

Viele Grüße

Jan

Labels (1)
0 Kudos
3 Replies
j_mueller
Elite Observer

Re: Unerwartetes Verhalten bei einem API Aufruf ?

Wir hatten auch bereits einige Male das Phänomen, dass wir Elemente nicht mehr anhand ihrer Referenznamen finden konnten. Dabei beschränkte sich das Problem allerdings nicht auf den Templatestore, sondern betraf auch Strukturseiten, Medien und globale Inhalte.

Nach Rücksprache mit dem Helpdesk habe ich erfahren, dass es eine Art Matching-Tabelle gibt, in der die Referenznamen geführt werden. Diese schien also nicht in Ordnung zu sein, bzw. Inhalte zu fehlen.

Sobald man ein Element einmal in Bearbeitung nahm (egal aus welchem Store), ließ es sich wieder über die Suche auffinden.

Ich habe damals ein Skripte implementiert, die alle Elemente 'durchloopten' und praktisch einmal 'anfassten'. Dann hat alles wieder funktioniert.

Ich glaube also einmal Bearbeitungsmodus und wieder raus, hätte das Problem ebenso behoben. Bei uns trat das Problem auch zum ersten Mal in FS5 auf. Vorher nie.

Diese Info ebenfalls zu Dokumentationszwecken Smiley Happy

Schöne Grüße

Julius

jan_fruehwacht
I'm new here

Re: Unerwartetes Verhalten bei einem API Aufruf ?

Hi Julius,

danke für die Erklärung.

Gut, wenn an bestimmter Stelle Daten fehlen, ist es wahrscheinlich tatsächlich schwer den API-Aufruf zu fixen.

Vielen Dank schon mal.

0 Kudos
j_mueller
Elite Observer

Re: Unerwartetes Verhalten bei einem API Aufruf ?

Hi Jan-Martin,

gerne.

Der API-Call ist ja an sich korrekt. Der Fehler ist eher, dass FirstSpirit das Element nicht mehr kennt. So war es zumindest bei uns.

Anbei auch nochmal das Skript, was alle Templates einmal in Bearbeitung nimmt und somit wieder auffindbar macht.

Falls die Referenznamen bei euch des öfteren verloren gehen und ihr herausfindet warum, lasst es mir bitte wissen. 🙂

Schöne Grüße

Julius

0 Kudos