Questions & Answers

SOLVED
fidelbravo
I'm new here

CorporateContent - Abonnement manipulieren

Jump to solution

Hallo zusammen,

Es ist mรถglich die Knotenliste eines รคnderbaren Pakets รผber die API zu manipulieren.

paket_knotenliste.png

  Ich habe folgendes ausprobiert leider ohne Erfolg.

//!Beanshell

import de.espirit.firstspirit.access.packagepool.PackageManager;

import de.espirit.firstspirit.access.packagepool.Package;

import de.espirit.firstspirit.access.packagepool.Subscription;

import de.espirit.firstspirit.access.store.IDProvider;

import de.espirit.firstspirit.access.packagepool.Package;

import java.util.Collection;

import de.espirit.firstspirit.access.store.StoreElement;

StoreElement element =  (StoreElement) context.getElement();

if(element.isSubscribedItem() && element.isChangeable()){

   Package pack = element.getPackage();

   PackageManager pm = (PackageManager) context.getConnection().getService(PackageManager.SERVICE_NAME);

   Collection col = pm.getSubscriptions(pack);

   if(col.size()>0){

    Subscription sub = col.iterator().next();

    sub.includeNode((IDProvider) element);

    sub.save();

    sub.refresh();

   }

}

Der Geltungsbereich des Skripts ist Kontextmenรผ.

Hat jemand eine Idee warum es nicht funktioniert?

Danke & GrรผรŸe,

Fidel

0 Kudos
1 Solution

Accepted Solutions

Hallo Ibrahim, hallo Fidel,

das funktioniert, ich habe es ausprobiert. Da muss man aber schon sehr genau in der Doku lesen, um das zu verstehen. Wobei es natรผrlich logisch ist, dass man nicht das lokale Element sondern das aus dem Master exkludieren bzw. inkludieren muss. Danke auf jeden Fall, ich kann das auch grad gebrauchen Smiley Wink

GrรผรŸe

Matthias

View solution in original post

0 Kudos
2 Replies
iakyuez
I'm new here

Hallo Fidel,

so wie ich das sehe รผbergibst du das falsche Element. Laut Doku muss es sich dabei um das IDProvider-Objekt aus dem Paket-Master handeln.

An diesen kommst du z.B. wie folgt ran:

...

IdTranslator idTranslator = sub.getElementIdTranslator();

Long idFromPublisher = idTranslator.translateIdToPublisher(element.getId());

IDProvider idProviderFromPublisher = element.getPackage().getPublisher().getUserService().getStore(Store.Type.SITESTORE, false).getStoreElement(idFromPublisher);

sub.includeNode(idProviderFromPublisher);

...

Dabei muss natรผrlich der korrekte Store.Type gewรคhlt werden.

Ich hoffe das hilft dir weiter Smiley Happy

Viele GrรผรŸe,
Ibrahim

0 Kudos

Hallo Ibrahim, hallo Fidel,

das funktioniert, ich habe es ausprobiert. Da muss man aber schon sehr genau in der Doku lesen, um das zu verstehen. Wobei es natรผrlich logisch ist, dass man nicht das lokale Element sondern das aus dem Master exkludieren bzw. inkludieren muss. Danke auf jeden Fall, ich kann das auch grad gebrauchen Smiley Wink

GrรผรŸe

Matthias

0 Kudos

Type a product name