Alexander_Haufl
I'm new here

Scripting: Query löschen

Jump to solution

Hallo zusammen,

ich habe folgendes Script:

pageRef = Contentprojektion.

page = page mit DQ-A im Body

newPage = page mit DQ-B im Body

newQuery = eine Abfrage, welche sich auf die DQ-B bezieht

pageRef.setLock(true);

pageRef.setPage(newPage);

pageRef.save();

pageRef.setLock(false);

pageRef.refresh();

pageRef.setLock(true);

pageRef.getContent2Params().setQuery(newQuery);

pageRef.save();

pageRef.setLock(false);

pageRef.refresh();

In der Zeile, wo ich die neue Query setzen will wird ein Fehler geworfen, dass sich die Abfrage auf die falsche DQ bezieht.

pageRef.getContent2Params().getQuery();

Hierbei wird immer noch die alte Query ausgegeben.

Wenn ich im Client die Seite auswähle, anschliessend zu einer anderen Seite und wieder zurück wechsel, dann wird die richtige Page angezeigt und die Query ist weg.

Ich habe auch schon versucht dazwischen repairReferences laufen zu lassen oer mir die PageRef complett neu zu holen:

pageRef2=context.getConnection().getProjectById(1313228).getUserService().getStore(Type.SITESTORE, false).getStoreElement(pageRef.getId());

Immer das selbe Ergebniss, ist es ein Bug oder gibt es eine Möglichkeit die Content2Params zu refreshen oder neu zu laden oder ....?

MfG

Alex

0 Kudos
1 Solution

Accepted Solutions

Im aktuellen Stand (5.1_DEV.5) funktioniert das. Ich habe, wie gesagt, eine Vermutung an welchen Bugfixes es liegen könnte. Wenn die Vermutung richtig ist, dann sollte es auch ab 5.0.110 funktionieren, allerdings sind diese Bugfixes nicht in ihrer Version.

Bitte wenden Sie sich an den Helpdesk, um die Vermutung ggfls. bestätigen zu lassen. Interne ID #124543

Als Workaround könnten sie versuchen vor dem holen der Content2Params, diese explizit zu entfernen

pageRef.setLock(true, false);

try {

     cParams = pageRef.getContent2Params();

     if (cParams != null && cParams.getQuery() != null) {

          // workaround - after setting new page there shouldn't be any query

          pageRef.removeChild(cParams);

          cParams = pageRef.getContent2Params();

     }

     // set new quer ..

     pageRef.save("...", false);

} finally {

     pageRefs.setLock(false, false);

}

View solution in original post

0 Kudos
3 Replies
gockel
Crownpeak employee

Und hier mal wieder meine Standardfrage vorweg Smiley Happy  Über welche FS-Version reden wir hier? (Bitte immer sofort dazu posten - vergl. auch Demo Posting)

Es gab in dem Umfeld Fehler, die bereits behoben sind.

0 Kudos

Hallo Sebastian,

Sorry vergess ich immer wieder: Server-Version: 4.2.468.50982

0 Kudos

Im aktuellen Stand (5.1_DEV.5) funktioniert das. Ich habe, wie gesagt, eine Vermutung an welchen Bugfixes es liegen könnte. Wenn die Vermutung richtig ist, dann sollte es auch ab 5.0.110 funktionieren, allerdings sind diese Bugfixes nicht in ihrer Version.

Bitte wenden Sie sich an den Helpdesk, um die Vermutung ggfls. bestätigen zu lassen. Interne ID #124543

Als Workaround könnten sie versuchen vor dem holen der Content2Params, diese explizit zu entfernen

pageRef.setLock(true, false);

try {

     cParams = pageRef.getContent2Params();

     if (cParams != null && cParams.getQuery() != null) {

          // workaround - after setting new page there shouldn't be any query

          pageRef.removeChild(cParams);

          cParams = pageRef.getContent2Params();

     }

     // set new quer ..

     pageRef.save("...", false);

} finally {

     pageRefs.setLock(false, false);

}

0 Kudos