Guten morgen itss
Tauchen Ghostscript und ImageMagick in der Systemsteuerung unter Programme auf?
Ist .Net2.0 installiert?
Haben Sie ggf. schon mal eine akuellere agorum Version probiert?
Guten morgen itss
Tauchen Ghostscript und ImageMagick in der Systemsteuerung unter Programme auf?
Ist .Net2.0 installiert?
Haben Sie ggf. schon mal eine akuellere agorum Version probiert?
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:
/* global sc */
let objects = require('common/objects');
let metadata = require('common/metadata');
let aguila = require('common/aguila');
let neueDatei = objects.find(12345);
// create widget
let form= aguila.create({
width: 500,
height: 300,
type: 'agorum.composite.form.basic',
properties: ['folderId'],
items: [
{
type: 'agorum.composite.form.number',
label: 'briefBetreff',
name: 'Betreff',
},
]
});
form.on('action',action=>{
switch (action.name)
{
case 'save':
if(form.valid){
let mdFolder = metadata.load('~',objects.find(form.folderId));
mdFolder.briefBetreff= form.get('briefBetreff.value');
metadata(mdFolder).save(objects.find(neueDatei.ID));
break;
}
else{
throw 'Die Eingabemaske ist nicht gültig: '+ JSON.stringify(form.dump().invalidElements);
}
}
});
Alles anzeigen
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.
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.
Hallo Fabian,
wo kommt das metadataObject her? Es scheint hier gar nicht zu existieren - daher auch undefined;
Wo ist z.b. let metadataObject = {}?
Kannst du den gesamten Quellcode posten?
poste doch mal deinen Quellcode, ggf. auch Screenshots vom System, wo der Quellcode zu sehen ist, damit wir den Kontext sehen können, in dem es ausgeführt wird.
Gerne auch mal die Ausgabe von
throw JSON.stringify(metadataObject);
bzw. throw typeof metadataObject;
ZitatDer 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.
Fabian: Freut mich, dass nun soweit alle Unklarheiten beseitigt sind
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)
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)
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.
Klar, mache ich, danke.
Weil es zum Glück ein Testsystem ist, habe ich erst einmal die Runde hier gedreht. Aber der Kunde ist schon neugierig.
Mich würde interessieren, welches Ergebnis es hier gibt
Die 11.4 ist seit Montag veröffentlicht. Da ist auch die 2FA mit drin.
Eine Notiz gehört i.d.R. immer zu einem Dokument. Eine Nutzung ohne Dokument ist imho nicht vorgesehen/gewünscht.
Man könnte sich jedoch einfach ein "dummy"-Dokument machen und dort Notizen anhängen (z.B. per allgemeiner Rechtsklick-Aktion).
Alternativ: Ich habe schön des Öfteren den Ordner "/agorum/roi/files" genutzt, da er fast ständig in der UI verfügbar ist.
Es ist auch - mit entsprechenden Kenntnissen - möglich sich eine Art von "Notizbrett" zu erstellen. Dafür wäre ein aguila-widget eine gute Grundlage.
Ich tippe darauf, dass der seit neuestem verwendete "Monaco"-Editor bei seinen Syntaxvorschlägen für das "Object" (nicht mit common/objects verwechseln) die momentan gültige ES6-Syntax zur Grundlage nimmt.
Da "Object" generischer Teil von Javascript und nicht agorum spezifisch ist und der Monaco Editor für gewöhnlich für die Entwicklung moderner Webanwendung in aktuellen Browsern und mit einer aktuellen JS-Version entwickelt wird, unterscheiden sich in diesem Fall tatsächlich Editor (Monaco) und Interpreter (RhinoJS) voneinander.
dmsrostra
Ich tippe darauf, dass Object.setPrototypeOf erst mit ES6 eingeführt wurde.
Das (ES6 Implementationen) wird von der von agorum verwendeten RhinoJS Implementation nicht unterstützt.
Hallo dmsrostra,
Die Contenttasks sind dafür nicht der richtige Ort.
Am besten du verwendest einen Cronjob bzw. worker (wenn du dich damit gut auskennst). In Verbindung mit der Bibliothek common/pdf kannst du pdf metadaten auslesen und damit machen was du möchtest.
twytec
Wir benutzen für spezifische Dinge immer eine Custom API - diese kann in der Regel auch recht schnell integriert werden.
Das ist aus unserer Sicht häufig einfacher, da wir hier mehr Kontrolle darüber haben, was passiert.
zum Debuggen empfehlen wir tools wie z.B. Talend API Tester o.ä.
Zieht der (neue) agorum core client sich nicht normalerweise die IP vom ersten Netzlaufwerk?
Sprich wenn das agorum eine neue IP hat, muss eigentlich das Netzlaufwerk umgestellt werden und der client nimmt dann die IP-Adresse des Netzlaufwerks.
Siehe auch die Doku:
"Verbinden Sie zuerst das agorum core dms drive (smb), da der agorum core client nachträglich verbundene Laufwerke nicht erkennt. Sind bereits mehrere Netzlaufwerke verbunden, wählt der agorum core client die Zugangsdaten des Laufwerks mit dem niedrigsten Laufwerks-Buchstaben (etwa E vor Z)."
Ja, mich würde das auch interessieren