Skip to main content

Freigeben abhängiger Objekte bei Datenquellen

Comments

5 comments

  • Zendesk API User
    Author: ampersand83 - 1/14/2014 11:48

    Achso, das hatte ich eben vergessen. Die Freigabe über das Skript erfolgt mit dem DependentType IDProvider.DependentReleaseType.DEPENDENT_RELEASE_NEW_AND_CHANGED.

    Wenn das bewusst so gemacht ist, wie kann ich am einfachsten den in der Seite referenzierten Datensatz freigeben? Muss ich mir diesen im Skript noch explizit holen und dann zusätzlich freigeben?

    0
  • Zendesk API User
    Author: ampersand83 - 1/20/2014 8:25

    Weiß hier wirklich niemand was zu zu sagen? Ist dies eine so ungewöhnliche Anforderung?

    0
  • Zendesk API User
    Author: mbergmann - 1/26/2014 16:16

    Hallo Stefan,

    Datensätze werden hier nicht einbezogen, siehe Kapitel 6.2.8 in der Doku:

    "Weitere Fälle, in denen abhängige Objekte zwar im Referenzgraphen angezeigt werden, aber bei der abhängigen Freigabe nicht mit freigegeben werden.

    ...

    • SeiteDatensatz: Seite mit der CONTENTLIST/FS_LIST/... -Komponente, in der Datensätze referenziert werden.
      CS-Objekt wird nicht mit freigegeben."

    D.h. Du musst hier über eine entsprechende Implementierung den Datensatz gesondert freigeben.

    Viele Grüße

    Michael

    0
  • Zendesk API User
    Author: zava - 1/27/2014 14:19

    Ich weiß es nicht ob das dir Helfen kann, ich habe eine Funktion geschriben...

      static public void releaseEntityRelations(Entity entity, UserService us) {

        //release all Outgoing reference

        ContentStoreRoot cs = (ContentStoreRoot) us.getStore(Store.Type.CONTENTSTORE, false);

        Map<String, String> typemap = new HashMap<String, String>();

        typemap.put("users", "ds_ext_users");

        typemap.put("media", "content_ext_media");

        typemap.put("downloads", "content_ext_downloads");

        typemap.put("publications", "content_ext_publications");

        EntityType entityType = entity.getEntityType();

        if (typemap.get(entityType.toString()) != null) {

          Content2 content = cs.getContent2ByName(typemap.get(entityType.toString()));

          Logging.logInfo(entityType.toString(), LOGGER);

          Schema schema = content.getTemplate().getSchema();

          ReferenceEntry[] allInReference = schema.getOutgoingReferences(entity);

          for (ReferenceEntry reference : allInReference) {

            try {

              Object element = reference.getReferencedObject();

              if (!(element instanceof Entity)) {

                if (((IDProvider) element).isReleaseSupported()) {

                  ((IDProvider) element).setLock(true, false);

                  ((IDProvider) element).release(false);

                  ((IDProvider) element).setLock(false, false);

                  if (element instanceof Media) {

                    PageUtils.releaseParents((IDProvider) element);

                  }

                }

              }

            } catch (Exception e) {

              e.printStackTrace();

            }

          }

        }

      }

    0
  • Zendesk API User
    Author: ampersand83 - 1/27/2014 14:28

    Hey, vielen Dank für die Antworten,

    ich werde es mal mit einer eigenen Implementierung versuchen. Ich denke Antonios Lösung mit der Funktion könnte hilfreich sein.

    0

Please sign in to leave a comment.