rkurz
Elite Observer

ValueService im WebEdit schreibt Rückgabewert nicht bzw. spät bzw. blockiert den Browser

Hallo Community,

es geht um die FirstSpirit Version 5.0.510.62658 - im Speziellen um das WebEdit.

Wir haben in einem Formular zwei Felder, deren Werte über den ValueService gesetzt werden.

16-07-2014 09-58-11.jpg

Im Client funktioniert das natürlich gut:

16-07-2014 09-59-09.jpg

Im WebEdit ist uns aufgefallen, dass der ValueService Requests "ohne Ende" abfeuert und entweder "irgendwann" einen Rückgabewert schreibt oder irgendwann den Browser aufgrund der Masse an Requests blockiert (1823 Requests in diesem Bild - Chrome spielt da gerade noch so mit...).

16-07-2014 09-48-41.jpg

Aber es gibt auch Momente, in denen die Werte sauber im WebClient zurück kommen (allerdings nach ca. 5-10 Sekunden, bei geschlossenem Developer-Tools):

16-07-2014 10-03-26.jpg

Bei geöffneten Developer-Tools (oder Firebug im FF) ist irgendwann der Browser blockiert.

Aber es gibt auch Momente, in denen nur die Hälfte erledigt wird:

16-07-2014 10-08-39.jpg

Da in diesem Fall keine Developer-Tools im Chrome geöffnet waren, haben wir die Requests per LiveHeader-Erweiterung "gezählt" und bei 4200 Requests abgebrochen.

Leider haben wir nicht rausbekommen, welche Umstände dazu führen, dass "Text value" mal geschrieben und warum mal nicht.

Die Formular-Felder sehen so aus:

<CMS_INPUT_TEXT name="tt_textvalue" editable="yes" hFill="yes" useLanguages="no">

        <LANGINFOS>

          <LANGINFO lang="*" label="Text value"/>

        </LANGINFOS>

      </CMS_INPUT_TEXT>

      <CMS_INPUT_NUMBER name="tt_numbervalue" editable="yes" hFill="yes" hidden="no" useLanguages="no">

        <LANGINFOS>

          <LANGINFO lang="*" label="Number value"/>

        </LANGINFOS>

      </CMS_INPUT_NUMBER>

Die Regeln dazu so:

<ON_EVENT>

                    <SCHEDULE service="DynamicForms" id="a" delay="0">

                              <CONDITION>

                                        <AND>

                                                  <PROPERTY source="tt_numbervalue" name="EMPTY"/>

                                        </AND>

                              </CONDITION>  

                              <PARAM name="event"><TEXT>GET_PROJECTID</TEXT></PARAM>

                    </SCHEDULE>

                    <DO>

                              <PROPERTY source="tt_numbervalue" name="VALUE"/>

                    </DO>

          </ON_EVENT>

<ON_EVENT>

                    <SCHEDULE service="DynamicForms" id="x" delay="2">

                              <CONDITION>

                                        <AND>

                                                  <PROPERTY source="tt_textvalue" name="EMPTY"/>

                                        </AND>

                              </CONDITION>  

                              <PARAM name="event"><TEXT>GET_PROJECTNAME</TEXT></PARAM>

                    </SCHEDULE>

                    <DO>

                              <PROPERTY source="tt_textvalue" name="VALUE"/>

                    </DO>

          </ON_EVENT>

Der Typ des Rückgabewertes vom ValueService für tt_textvalue ist String und der Typ für tt_numbervalue ist Long.

Für event="GET_PROJECTNAME" liefert der ValueService lediglich den projectName von WebeditUiAgent.getPreviewElement().getProject().getName() zurück und für event="GET_PROJECTID" liefert der ValueService eine fs_id eines Datensatzes zurück (Long).

Wir haben erwartet, dass der ValueService einen Request abschickt und wenigstens die Antwort abwartet - aber stattdessen scheint er jeweils "stur" die Regel auszuführen - womit er zwar Recht hat, sich aber im Zweifel irgendwann aufhängt.

Könnte es ein Bug sein - immerhin funktioniert es ja ab und zu?
Oder könnnen wir was tun, dass der ValueService im WebEdit nur einmal ausgeführt wird?

Danke für Eure Antworten und Ideen!

0 Kudos
0 Replies