Aller au contenu principal

Mehr Details aus getIncomingReferences()?

Commentaires

6 commentaires

  • Zendesk API User
    Author: aVogt - 12/19/2013 11:54

    Hallo Matthias,

    bei mir kommt zumindest eine Section:

    <SECTION editor="2766" id="1105017" name="fliesstext" revision="56252" sectiontemplate="65">

        <LANG displayname="Fließtext" language="DE"/>

    </SECTION>

    Darüber müsstest Du zumindest an die Sprache kommen.

    Getestet mit:

    ss = context.getProject().getUserService().getStore(Store.Type.SITESTORE, false);

    st = ss.getStoreElement("startseite", IDProvider.UidType.SITESTORE_LEAF);

    ReferenceEntry[] ref = st.getIncomingReferences();

    for (int i = 0; i < ref.length; i++){

        context.logInfo(i + ": " + ref[i].getReferencedObject());

    }

    Vielleicht geht das ja erst ab einer bestimmten FS Version? Ich habs gerade mit  5.0.424 getestet.

    Was zeigt Dir denn der Abhängigkeitsgraph direkt in FS an, von einer pageRef? Auch die Seite oder den Absatz?

    Grüße

    Andreas

    0
  • Zendesk API User
    Author: matthiasforberg - 12/19/2013 12:38

    Hallo Andreas,

    danke für die schnelle Antwort. Klar, getReferencedObject gibt natürlich ganz unterschiedliche Klassen zurück. Ich bekomme in meinem Testprojekt referenzierte Objekte der Typen Page, Section, GCAPage, Content2, Template, TableTemplate etc.

    Am wichtigsten sind natürlich erst mal die aus Page und Section. Beides ist möglich, je nachdem, wo der Link angelegt ist. Aber auch aus Section kann ich keine Sprache erkennen. Beipiel:

    <SECTION editor="98627" id="906613" name="text_box" revision="240156" sectiontemplate="996">

        <LANG displayname="Text Box" language="EN"/>

        <LANG displayname="Text Box" language="DE"/>

        <LANG displayname="Text Box" language="ES"/>

    </SECTION>

    diese Sprachen bezeichnen ja nur die (gesetzten) Anzeigenamen des Absatztes. Die Referenz ist aber in der Sprache PT gesetzt. Das kann ich so nicht erkennen und wenn getReferencedObject schon die Section zurückliefert, sehe ich keine Möglichkeit mehr, darin zu erkennen, wo der Link genau gesetzt ist. Der Referenzgraph zeigt mir auch nur den Absatz an, da sind keine Informationen über Sprache oder Name der Eingabekomponente angegeben.

    Ich hatte gehofft, dass es vielleicht irgendwo eine (undokumentierte) Methode zum direkten Auslesen aus der ReferenceEntry gibt, also noch vor getReferencedObject. Um bei Deinem obigen Beispiel zu bleiben, z.B. sowas in der Art:

    for (ref : st.getIncomingReferences()){

        context.logInfo(ref.getReferenceLanguage() + ", " + ref.getReferenceAttribute());

    }

    Aber ich befürchte, man muss in der gefundenen Referenz bzw. dem referencedObject wieder rekursiv durch alle Sprachen und Attribute gehen und die outgoingReferences vergleichen, um herauszufinden, wo genau die Referenz versteckt ist :smileysad:

    Grüße

    Matthias

    0
  • Zendesk API User
    Author: feddersen - 12/19/2013 12:46

    Der http://www.e-spirit.com/odfs50/dev/?de/espirit/firstspirit/agency/ValidationAgent.html könnte dir weiterhelfen. Damit kannst du etwaige Regelverletzungen und auch die Sprachen, in denen es Probleme gibt, ermitteln.

    0
  • Zendesk API User
    Author: matthiasforberg - 12/19/2013 12:55

    Danke Christoph!

    Der bringt mich zwar grad nicht weiter, weil es noch um die Version 4.2 geht, aber den merke ich mir auf jeden Fall mal für die Zukunft.

    Grüße

    Matthias

    0
  • Zendesk API User
    Author: gockel - 12/20/2013 14:15

    Hallo Matthias,

    die Datengrundlage des Referenzgraphen kennt diese Informationen nicht.

    Die Kardinalität ist dem Referenzgraph auch nicht bekannt. Es wird jede Referenz also nur maximal 1 mal als eingehende Kante zu einem bestimmten Element geliefert unabhängig davon, wie oft diese in den Daten referenziert wird und von wo.

    0
  • Zendesk API User
    Author: thmarx - 1/9/2014 9:08

    Hallo Matthias,

    benötigst Du noch weitere Hilfe oder hat Dir die Antwort von Sebastian 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

    Thorsten

    0

Vous devez vous connecter pour laisser un commentaire.