aalbrecht
I'm new here

Corporate Content Seiten im Zielprojekt löschen

Hallo,

beim Corporate Content wird im Zielprojekt eine Seite nicht gelöscht, sondern nur die Paketverbindung entfernt, wenn die Seite im Quellprojekt gelöscht wird.

Deswegen läuft nach der Paketpublizierung ein Workflow um die Seiten auch im Zielprojekt zu löschen. Mit der ImportInfo kommt man an die removed nodes:

ImportInfo importInfo = (ImportInfo) context.getSession().get(ImportInfo.IMPORT_INFO_KEY);
importInfo.setUserService(context.getUserService());
IDProvider removedNode = importInfo.getRemovedNode(i);

Wenn im Zielprojekt die Seite aber aus dem Abonnoment excludiert wird, dann taucht diese Seite beim nächsten Paket publish leider in der Liste der removed Nodes auf und wird dadurch fälschlicherweise im Zielprojekt gelöscht.

Wie finde ich jetzt heraus, ob es sich bei dem Element in getRemovedNode um ein gelöschtes oder ein excludiertes Element handelt.

Ich hatte erst überlegt einen Abgleich über die uid im Quell und Zielprojekt zu machen, aber die uid's können sich ja unterscheiden.

Dann habe ich versucht über die Subscription und den idTranslator an die id des Elements im Quellprojekt zu kommen:

IdTranslator elementIdTranslator = subscription.getElementIdTranslator();

Long masterId = elementIdTranslator.translateIdToPublisher(removedNode.getId());

Dies liefert aber immer null. Egal ob das Element gelöscht wurde oder nur excludiert wurde.

Wie komme ich jetzt an die Info, ob das Element im Quellprojekt gelöscht wurde oder ob es einfach nur excludiert wurde?

Viele Grüße

Alex

0 Kudos
4 Replies
boersteken
Crownpeak employee

Hallo Alexander,

nur um sicherzustellen, dass mein Verständnis deines Problems richtig ist: Du hast die Anforderung eine Seite im Zielprojekt aus dem Abonnement zu exkludieren, trotzdem aber diese Seite weiterhin im Zielprojekt zu behalten. Ist das richtig?

Grüße,

Philipp

0 Kudos

Hallo Philipp,

das ist richtig.

Viele Grüße

Alex

0 Kudos

Hi Alex,

du könntest deinen Lösch-Workflow um einen Test auf isPackageItem() (am Interface PackagePoolItem) erweitern, wenn mich nicht alles täuscht.

Grüße,

Hannes

0 Kudos
marro
Crownpeak employee

Hallo Alex,

benötigst Du noch weitere Hilfe oder hat Dir die Antwort von Hannes bereits geholfen?

In diesem Fall wäre es super, wenn Du die "richtige Antwort" entsprechend markierst, damit auch andere

Community-Teilnehmer diese auf den ersten Blick finden. Solltest Du zwischenzeitlich eine eigene Lösung

gefunden haben, wäre es nett, wenn Du diese hier bereitstellst.

Viele Grüße

Donato

0 Kudos