Skip to main content

DeltaGenerierung - Gelöschte Datensätze (Entities) ermitteln - FS5

Comments

8 comments

  • Zendesk API User
    Author: Peter_Jodeleit - 3/17/2014 11:21

    Es gibt für jeden gelöschten Datensatz einen entsprechendes Element in den "getDeletedPageInfos". Allerdings kommt man darüber nicht an die Datensatz-ID, es gibt also aktuell keinen Weg.

    Darf man fragen, wofür wird diese Information benötigt wird?

    0
  • Zendesk API User
    Author: bIT_sosswald - 3/17/2014 12:03

    Hallo,

    danke für die Antwort und natürlich darf man nach dem genauen Anwendungsfall fragen. :smileyhappy:

    Ich befülle einen Suchindex nach einer Voll- aber auch Deltagenerierung.

    Bei der Vollgeneriering, wird entsprechend eine Vollindizierung (gesamten Index löschen und neu aufbauen) durchgeführt.

    Bei der Deltagenerierung, wird entsprechend nur eine Deltaindizierung (neue Seiten zum Index hinzufügen, geänderte Seiten Updaten, gelöschte Seiten Entfernen) durchgeführt.

    Um Einträge im Suchindex gezielt ändern, bzw. löschen zu können besitzen diese eine eindeutige ID. Diese besteht bei normalen Seiten aus der ID (nicht UId) der PageRef und bei Seiten aus einer Contentprojektion aus der ID der PageRef sowie der ID des entsprechenden Datensatzes, also z.B. "1039_512"

    Bei normalen Seiten komme ich problemlos an alle benötigten Daten, so dass eine Deltaindizierung durchgeführt werden kann.


    Bei Detailseiten aus einer Contentprojektion kann ich derzeit neue Einträge zum Index hinzufügen, sowie bestehende Einträge updaten, da ich über die EntityStartNodes an die benötigten Informationen gelange. Lediglich das Löschen der entsprechenden Indexeinträge von Detailseiten einer Contentprojektion, ist derzeit noch nicht möglich, da ich wie beschrieben noch nicht an die IDs der gelöschten Datensätze gelange.

    Beste Grüße

    Sandro

    0
  • Zendesk API User
    Author: Peter_Jodeleit - 3/17/2014 13:19

    Beim Suchindex die Seiten-URL als Zugriffsschlüssel zu nehmen ist keine Option?

    0
  • Zendesk API User
    Author: bIT_sosswald - 3/19/2014 11:01

    Hallo,

    daran den Pfad der jeweiligen Seite als ID im Index zu verwenden habe ich auch schon gedacht.

    Ich wollte allerdings erst scher gehen, dass es keine Möglichkeit gibt dies über die ID zu realisieren, da sich die Pfade bzw. URLs bei Änderung der Konfiguration des verwendeten URLCreators oder beim austausch des URLCreators ändern. Die IDs wären in diesem Falle identisch geblieben.

    Ich habe das Modul mittlerweise so umgebaut, dass es die vom URLCreator erzeugten Pfade (nicht URL) als ID verwendet, da mir die DeletedPageInfos ja auch die Pfade zurückliefern.

    Dies funktioniert auch. Leider gibt es aber beim Löschen von Detailseiten einer Contentprojektion wieder einen Punkt der mich etwas verdutzt.

    Die DeteletPageInfos liefern mir nur Pfade zu zu XML-Dateien des Sprachkanals EN und nicht zu den entsprechenden HTML Dateien.

    Evtl. liegt dies an meiner Konfiguration der DeltaGenerierung.

    Skript zur Erzeugung der DeltaGenerierung

    import de.espirit.firstspirit.access.schedule.*;

    deltaGeneration = DeploymentUtil.createDeltaGeneration(context); //(1)

    DeltaGeneration.ChangeSet changeSet = deltaGeneration.calculateChangeSet(); //(2)

    changeSet.configureGenerateTask(); //(3)

    context.setProperty("changeSet", changeSet);

    //---------------------------------

    context.logInfo("***** isFullGenerate: " + changeSet.isFullGenerate()); //(4)

    Die Konfiguration des Generate-Tasks ist in den angehängten Screenshots zu sehen.

    Auslesen der DeletedPageInfos im Modul

    private Iterable<DeletedPageInfo> getDeletedPageInfos(ScriptContext context) {

            Iterable<DeletedPageInfo> deletedPageInfos = null;

            Object property = context.getProperty("changeSet");

            if (property instanceof ChangeSet) {

                ChangeSet changeSet = (ChangeSet) property;

                deletedPageInfos = changeSet.getDeletedPageInfos();

            }

            return deletedPageInfos;

        }

    Beim Iterieren über die DeletedPageInfos werden mir für Detailseiten einer Contentprojektion, wie bereits beschrieben, lediglich Informationen zu XML Dateien im Sprachkanal EN ausgegeben. Ich hätte auch Informationen zu den HTML-Dateien in den einzelnen Sprachkanälen erwartet.

    Grüße

    Sandro

    0
  • Zendesk API User
    Author: Peter_Jodeleit - 3/19/2014 13:03

    Welche FirstSpirit-Version ist das? Das kommt mir vage bekannt vor, eventuell gab es da mal ein Fehlverhalten (aka Bug :smileywink:). Oder mal den Helpdesk fragen..

    0
  • Zendesk API User
    Author: bIT_sosswald - 3/19/2014 14:44

    FirstSpirit Client 5.0.425.60000

    Version Server: 5.0.425.60000

    Java Version: 1.6.0_45 64bit Sun Microsystems Inc.

    Ich frage aber parallel noch einmal am Helpdesk nach.

    Vielen Dank für die Antwort! :smileyhappy:

    0
  • Zendesk API User
    Author: Peter_Jodeleit - 3/20/2014 13:02

    Es gibt da einige interne Ids zu dem Thema: #149093, #149074 und #139048

    D.h. das ist beim Helpdesk schon richtig aufgehoben. Kannst du diese Info noch an das Ticket dranhängen, den Bezug habe ich hier leider nicht. Danke!

    0
  • Zendesk API User
    Author: bIT_sosswald - 3/21/2014 8:06

    Schon passiert.

    Nochmals Danke für die schnelle Antwort!

    0

Please sign in to leave a comment.