Smart Assistant

  • Hallo zusammen,


    nach längerer Abstinenz von der begonnenen agorum-Konfiguration stellen sich heute erneut die ersten, selbstgenerierten Probleme durch (vermutlich) Fehlbedienung ein...


    Problem 1:

    Ich habe den Versuch unternommen dem Tutorial mit der Nr. 8 zu folgen und eine neue ASA Config erstellt. Leider finde ich - auch in den Files aus dem Tutorial 8 - nirgendwo die Info, wo die Variablen _capitalPath etc. definiert werden.

    Im "nachgebauten" Versuch von mir, wird ein Verzeichnis mit dem Namen ${_capitalPath} erzeugt, die Variable aber nicht durch das MetaDatum ersetzt.


    Problem 2:

    Hängt dies damit zusammen, dass ich auch nicht in der Lage bin in der Liste Metadaten Einträge zu erstellen, sondern nur in der oberen Liste Platzhalter (Metadatum)?

    Die erwähnte Doku zum ASA finde ich leider auch nicht.



    Und weil es so schön ist direkt noch eine weitere Frage hinterher - Problem 3:

    Ich habe eine weitere ASA Config angelegt, hierin unter Datei => Metadaten ein Metadatum angelegt und die Einstellungen über "Exportieren" ins System gespielt. Die Folge war leider etwas unerwartet und überraschend: der Explorer ist verschwunden... Wie kann ich die Ursache herausfinden / die config debuggen und den Explorer wieder herstellen? Gibt es eine Möglichkeit eine ASA config zu löschen?


    Mit vielen Fragezeichen und der Hoffnung auf Erleuchtung warte ich gebannt, ob Ihr mir helfen könnt ;)

    Fabian

    • Offizieller Beitrag

    Hallo Fabian,


    zu Problem 1 / 2:

    es scheint, dass du gleich mit Video 8 angefangen hast und die restlichen Videos übersprungen bist, kann das sein? Generell ist es wichtig, dass du dir ein Konfigurationsprojekt mit dem Plug-In template manager aufbaust und in einer metadata.yml-Datei die Metadaten vorab vordefinierst.


    Daher rate ich dir, schaue dir auch die anderen Tutorials zu agorum core an, mindestens:

    Je mehr Videos du dir anschaust, desto sicherer wirst du werden. Denn unsere Software ist sehr individuell einrichtbar. Dadurch sehr mächtig und eine Freude für Entwickler, aber somit für den "Anfangs-agorum-Entwickler" etwas verwirrend, weil so vieles geht und an diversen Stellen eingerichtet werden kann / muss.



    Problem 3:

    Öffne deine asa Konfiguration und setze den Haken bei "AddOn", siehe: Einstellung "Add-On"

    Löschen kannst du asa Konfigurationen nicht, diese aber inaktiv schalten, dank des template managers: agorum core smart assistant Add-ons aktiv / inaktiv schalten


    Übirgens: hier ist die offizielle Doku zu unserem smart assistant konfigurator: agorum core smart assistant konfigurator

  • Hallo Annkatrin,


    danke für Deine Antwort.


    Ich hatte die vorhergehenden Tutorials durchgearbeitet. Auch die MetaDaten sind über die metadata.yml vordefiniert und eingespielt. Dennoch bekomme ich Sie nur in die obere Tabelle eingefügt. der "Stift" der unteren Tabelle lässt (browserunabhängig) keine Aktion zu. Nur das Feld "Optional" lässt sich hier editieren.


    Leider ist auch trotz Deaktivierung meiner "Konfigurationen" der Explorer nicht wieder aufgetaucht. Gibt es eine Möglichkeit diesen wieder sichtbar zu machen bzw. das System so zu debuggen, dass ich die Ursache finden kann? Ein erneutes aufsetzen des Systems ist (leider kam dies schon mehrfach vor) nicht der richtige Weg ;)


    VG Fabian

  • Leider ist auch trotz Deaktivierung meiner "Konfigurationen" der Explorer nicht wieder aufgetaucht. Gibt es eine Möglichkeit diesen wieder sichtbar zu machen bzw. das System so zu debuggen, dass ich die Ursache finden kann? Ein erneutes aufsetzen des Systems ist (leider kam dies schon mehrfach vor) nicht der richtige Weg ;)


    VG Fabian

    Fabian - vermutlich hast im Smart-Assistant-Konfigurator deine eigene Konfiguration ohne den "add-on" haken veröffentlicht.

    Einfaches deaktivieren der Konfiguration reicht nicht aus, um den ursprünglichen Zustand wiederherzustellen.

    Öffne den Smart-Assistant-Konfigurator mit der Konfig "Staandard" und veröffentliche diese. Standard dürfte dem Auslieferungszustand von agorum entsprechend. Danach musst du das Browserfenster neu laden.

    Danach kannst du ergänzenderweise deine Assistant-Konfig (mit addon-Haken) veröffentlichen.

  • Fabian:
    Vielleicht noch etwas Hintergrundwissen: Es kann nur ein aktives "nicht Addon" geben, aber beliebig viele aktive Addons.

    Über die Selektoren in den Aktionen etc. wird gesteuert, was wann wo angezeigt wird.
    Existieren in mehreren aktiven Addons Aktionen mit dem gleichen internen Namen, gewinnt jene Aktionen, mit dem genauesten Selektor (wie bei css, mit dem Selektor der die meisten "Regeln" enthält)

  • Ich hatte die vorhergehenden Tutorials durchgearbeitet. Auch die MetaDaten sind über die metadata.yml vordefiniert und eingespielt. Dennoch bekomme ich Sie nur in die obere Tabelle eingefügt. der "Stift" der unteren Tabelle lässt (browserunabhängig) keine Aktion zu. Nur das Feld "Optional" lässt sich hier editieren.


    Ohne screenshot etwas schwer - aber ich vermute einfach mal, dass es um die untere Tabelle direkt auf der "Akte" im Smart-Assistant-Konfigurator Punkt "Anlage" geht (die Ebene mit dem Plus-Symbol davor).

    Diese Metadaten werden automatisch aus der tieferliegenden Struktur übernommen und von dort nur solche Metadaten, die keinen festen Werden haben - also eingegebene werden müssen.

    Angenommen deine Struktur hat einen Hauptordner "Akte".
    Auf diesem legst du fest, das er Metadatum "a" und Metadatum "b" hat (vorher über metadata.yml erstellen).

    Bei Metadatum a schreibst du in der Spalte "Fester Wert" ein beliebiges Wort rein, in Metadatum "b" kommt nichts rein, das ist leer.


    Dann erscheint Metadatum b auf der obersten Ebene in der unteren Tabelle und du kannst nur noch sagen, ob das optional ist oder nicht (dann ist es Pflicht)

  • Und somit ist das zweite Mysterium ebenfalls gelöst! Danke vielmals, auch für die passenden Erklärungen dazu!


    Beste Grüße aus dem Rheinland!

    Fabian

  • Fabian:

    Zitat

    Der Zugriff auf die Variable erfolgt ohne Definition in der Zeile data._capitalPath = "Ordnername";

    data._capitalPath ="Ordnername" ist eine Definition.
    Hier wird die Eigenschaft (key) _capitalPath mit dem Wert (value) "Ordnername" des Javascript-Objektes data definitiert.


    Ein JS-Objekt kann beliebig viele key-value-Paare haben.


    Schau dich gerne einfach mal in Richtung Objektorientiertes Programmierung (OOP) um, da das Grundprinzip klarer. (z.B. hier: wiki.selfhtml.org)

    Noch ein Standardbeispiel:


    let auto = 

    {

    farbe: "grün"

    tueren: 5

    };

    auto.scheibenwischer = true;


    Das Objekt "auto" hat nun die Eigenschaften "farbe", "tueren" und "scheibenwischer" mit den jeweiligen Werten "grün" (string), 5 (number) und true (boolean);


    OOP selbst geht noch viel weiter, aber die grundlegende Erkenntnis ist, dass man ein Objekt mit beliebigen Eigenschaften hat.

  • Danke für die ausführliche Erklärung.


    In Sachen OOP hangel ich mich ganz gut durch, das klappt schon ganz passabel, aber die Besonderheit von JS, dass keine Deklarationen notwendig sind, hat mir aber gefehlt - sehr praktisch! ;)


    Möglicherweise kannst Du mir noch einen Tipp in gleicher Sache geben:

    Ich versuche gerade dem fill-template ein "metadatum" mitzugeben und scheitere.


    Das Standard fill-template reicht an die untergeordneten Funktionen das metadataObject weiter. Jetzt hatte ich den naiven Gedanken dieses Objekt mit metadataObject.briefBetreff = "Betreffzeile" zu erweitern.

    Hier bekomme ich aber einen Rüffel in Form von

    Code
    TypeError: Cannot set property "briefBetreff" of undefined to "Betreffzeile"

    zurück. Wie kann ich das metadataObject denn (temporär, also ohne Änderung der eigentlichen Metadaten auf dem Objekt) erweitern oder muss ich mir das fill-template um einen Übergabeparameter erweitern?


    Vielen Dank und einen guten Start in die Woche!

  • Es handelt sich um ein aguila Widget, dem ursprünglichen fill-template nachgebaut.


    Mein Ziel ist es, dass die Metadaten vor der Übergabe an die fill Funktion erweitert werden.

    Die Metadaten sollten - so mein Verständnis - aus der targetId stammen. Das übergebene object enthält die Adressdaten.



    Hier der Code in Anlehnung an die /agorum/roi/customers/fill-template/js/aguila/test-template-details

    Ohne die Erweiterung der Metadaten werden zumindest die Adressdaten ausgefüllt...

  • Das stammt aus den properties des AguilaWidget... So zumindest meine wilde Interpretation ;)

    Das Widget wird über eine ASA Server-Aktion gestartet und funktioniert ohne Erweiterung der Metadaten auch.


  • Fabian

    wenn cih das richtig sehe ist

    metadataObject ein property (eigenschaft) des widgets

    D.h. es kann "von außen" dem widget das metadataObject gegeben bzw. verändert.
    Wenn man das script so startet, wie es in deinem Post ist, ist metadataObject undefined, weil es nirgendwo gesetzt wird.

    Rufst du das widget von woanders aus auf?


    Was genau willst du eigentlich erreichen?

    Wenn du Metadaten lesen willst, dann nutze doch einfach common/metadata.

  • volker.trotte


    Ich möchte per Rechtsklick in einem Ordner mit Metadaten ein Dokument erzeugen und die Metadaten des Ordners per fill-template dort einfügen.

    Durch den Start als Server Aktion wird das metadataObject beim Aufruf dem widget mitgegeben...


    Hier war aber auch der Fehler. Ich habe zu debugging Zwecken die IDs "fixiert" um per "Run" das Widget starten zu können. Einziger Fehler dabei: in diesem Fall werden die metadaten nicht übergeben und es ist undefined...


    Du hast mich (mal wieder) ein riesen Stück weitergebracht!

    Auch wenn es schwer ist einen Anfang zu finden: agorum core ist ein mächtiges Tool...

  • Fabian:
    Es würde ausreichen, dem Widget die ID des Ordners mitzugeben.

    Dann per common/metadata die metadata des ordners laden.

    Dieser erweitern,

    dann auf dem erzeugten dokument speichern.

    Etwa so:


    Beachte, dass wir hier
    -> explizit agorum.composite.form verwenden

    -> eine weitgehend aktuelle agorum Version nutzen (>=11.3)

    -> die IDs natürlich angepasst werden müssen

    -> Metadaten generell ein Präfix haben sollten (z.B. fabian_briefBetreff)
    -> und (eine Empfehlung meinerseits) metadaten immer klein geschrieben werden sollten (z.B. fabian_brief_betreff), da du sonst immer bei Suchen nach Metadaten mit Groß- und Kleinschreibung durcheinander kommst.

  • Hallo volker.trotte,


    noch einmal vielen Dank für deine schnelle, perfekte Unterstützung!


    Du hast natürlich recht, dass die Abfrage durch common/metadata ausreicht. Ich hatte mit, da ich mich gerade erst in die Materie einarbeite, einfach das fill-template Script kopiert, alles unbenötigte gelöscht und auf meine Bedürfnisse angepasst.

    Ich denke ich werde mit deinen Tipps das ganze "von vorne" beginnen und sauber aufsetzen.


    Dein Script ist natürlich sehr schlank. Meine Zielsetzung war es in diesem Fall tatsächlich die zusätzlichen Infos, also z.B. den Betreff in diesem Fall, nicht in den Metadaten zu speichern, sondern nur dem fill-template zu übergeben und nach dem Speichern des Dokumentes wieder zu verwerfen, da sie dann nicht mehr benötigt wird.

    Aus diesem Grund verzichte ich explizit auf metadata(mdFolder).save(objects.find(neueDatei.ID));.


    Ich bin gerade schwer begeistert, dass mein Widget funktioniert und macht, was ich mir gedacht habe... So macht das ganze viel Freude ;)


    PS: Danke auch für deine Hinweise, selbst bei solchen "Kleinigkeiten", die ich mir hier baue merke ich, wie schnell Chaos in die Variablennamen kommt...


    Beste Grüße aus dem regnerischen Rheinland

Jetzt Teil von agorum Community werden!

Noch kein Benutzerkonto? Registriere dich kostenlos und werde Teil von agorum Community!