Zum Hauptinhalt gehen

TargetReference - Remote Medien validieren

Kommentare

3 Kommentare

  • Zendesk API User
    Author: felix_reinhold - 6/7/2021 15:08

    Hi Andre,

    du könntest dir über den BrokerAgent einen Broker für das Remote-Projekt holen.

    Über diesen Broker holst du dir dann den Store bzw. die Stores.

    getUid und getUidType sollten auch auf der Remote-TargetReference funktionieren.

    Auf dem "Remote-Store" kannst du dann mit getStoreElement(uid, uidType) das Element holen. Wenn null zurück kommt, dann existiert es nicht.

    Den Store bzw. die Stores würde ich mir einmalig zu Beginn des Skripts holen. Trotzdem kann dieses Abfragen der Existenz sich natürlich negativ auf die Performance des Skriptes auswirken.

    Viele Grüße

    Felix

    0
  • Zendesk API User
    Author: astember - 6/11/2021 10:46

    Danke, das hilft schon etwas weiter, allerdings wäre ein kleines Code-Beispiel hilfreich, da ich bisher kaum mit dem SpecialistsBroker interface gearbeitet hab.

    Habe mal über die Beanshell-Konsole folgendes versucht, bekomme aber nur ein NULL zurück.

    import de.espirit.firstspirit.agency.*

    connection = context.getConnection();

    broker = connection.getBroker();

    remote = broker.requireSpecialist(BrokerAgent.TYPE).getBroker("global_media");

    Ich vermute mal, dass ich über den lokalen Projekt-Kontext den falschen broker bekomme.

    0
  • Zendesk API User
    Author: felix_reinhold - 6/11/2021 11:55

    Hi Andre,

    habe mal schnell was als Beanshell-Skript zusammengetippt:

    import de.espirit.firstspirit.access.project.Project;

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

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

    import de.espirit.firstspirit.agency.BrokerAgent;

    import de.espirit.firstspirit.agency.StoreAgent;

    import de.espirit.firstspirit.agency.SpecialistsBroker;

    IDProvider element = context.getElement();

    BrokerAgent brokerAgent = context.requireSpecialist(BrokerAgent.TYPE);

    SpecialistsBroker broker = brokerAgent.getBrokerByProjectName("Mithras Energy");

    StoreAgent storeAgent = broker.requireSpecialist(StoreAgent.TYPE);

    Store store = storeAgent.getStore(element.getStore().getType());

    context.logInfo("Exists: " + (store.getStoreElement(element.getUid(), element.getUidType()) != null));

    Wenn du das als Kontextmenü-Skript anlegst kannst du Rechtsklick auf einem Element machen und er zeigt dir, ob das Element im Projekt "Mithras Energy" existiert.
    Ich denke das solltest du für deine Bedürfnisse anpassen können. Alternativ zum fest verdrahteten Projektnamen kannst du dir bspw. auch aus den RemoteProjektKonfigurationen das Remote-Media-Projekt raussuchen.

    Gruß

    Felix

    0

Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.