Datenstruktur basierte Dokumentation

Hallo Zusammen,


mir fällt immer wieder auf, dass ich Schwierigkeiten habe Informationen über die Template Funktionen zu sammeln.

Zum Beispiel, wusste ich nicht wie ich auf den Header eines Spreadsheet Objects zugreifen konnten. Um das herauszufinden, muss ich dann aus verschiedenen Quellen (Synesty Wiki, Template Doc, Forumbeiträge, Cookbooks) versuchen diese Informationen heraus zu suchen.


Dabei wäre es doch sehr schön, wenn ich für jedes Object eine Auflistung an Funktionen/Methoden und Attribute hätte:

Spreadsheetmapper

- GetFirstRow()

- GetRows()

- rows

Row

- GetCols()

Col

- Cols()

- title

KeyValue

- Get()


Somit würde es sicherlich viel leichter fallen eure Datenstruktur zu navigieren.


Viele Grüße

Stefan

Hallo Stefan,

das ist eine sehr gute und valide Anforderung. Wir nehmen das mit in die Planung auf.

An welcher Stelle hättest du zuerst / intuitiv danach gesucht? bzw. wo fändest du es am besten aufgehoben? (gern per Link oder Screenshot).


Wir überlegen parallel mal, wo wir denken, dass es hinpasst.

Hallo Synesty,


in der Regel würde ich das Analog zu der Auflistung der Template-Funktionen sehen (also in der Transformy). Gerne dort dann als separater Tab. Eine Integration direkt in die Flows wäre auch eine Möglichkeit, aber sicherlich zu aufwendig.

An sich ist mir das relativ egal, wo dann letzten Endes diese Doku zu finden ist, solange diese intuitiv erreichbar ist.

Es ist eventuell auch Sinnvoll die Generierung dieser Doku in irgendeiner Form zu automatisieren. Wenn ich Freemarker korrekt verstanden habe, bietet sich das hier an, weil das Datenmodell ja sowieso an Freemarker "exposed" wird. Heißt also hier gäbe es noch nicht mal einen erhöhten Aufwand das Ding groß zu pflegen.

Wie bereits gesagt, ist das natürlich in dieser Hinsicht komplett euch überlassen und an dieser Stelle nur ein Vorschlag.


Viele Grüße

Stefan

Ein Kollege hat das jetzt auf dem Tisch. Wir melden uns dann in den nächsten Tagen nochmal bei dir, sobald es einen ersten Stand gibt. Freuen uns dann über Feedback.

Hallo Stefan,


wir haben mal eine Dokuseite angelegt. Aktuell haben wir diese manuell erstellt und werden diese auch pflegen. Für die Zukunft ist es auch geplant eine automatisch generierte Doku bereitzustellen.

https://docs.synesty.com/display/SSUD/Spreadsheet+Freemarker-Funktionen


Du kannst es dir mal anschauen. Vielleicht fällt dir noch was ein, was man verbessern bzw. ändern könnte.


Viele Grüße,

Lukas

Hallo Lukas,


erstmal vielen Dank, dass ihr euch das Mühe gemacht habt, diese Auflistung bereit zu stellen.

Fürs erste solle das so auch reichen.

Ich bin mir jetzt aber schon ziemlich, dass diese Tabelle nicht alle offenen "Spreadsheet-Funktionen" bereitstellt, das meiste aber abdeckt (siehe "row.variants()","row.master()", "row.children", etc.). Ich nehme an, sobald ihr hier die Automatisierung einführt, dass sich das von alleine löst.


Viele Grüße

Stefan

Hi Stefan,

danke für den Hinweis, ja diese Ergänzen wir noch.


Kurz zum Hintergrund:
Wir wollen erstmal eine händische Liste erstellen und damit einen Stand erreichen, den alle für gut befinden.
Die Automatisierung ist nicht so einfach, denn auch da müssen wir erstmal etwas Code bauen, der entscheidet welche Funktionen dort sichtbar sein sollen. Dazu kommt, dass wir noch nicht so genau wissen, wie wir dafür die Beispiele hinterlegen. Kurzum: an der automatischen Generierung hängt noch ein größerer Rattenschwanz dran und wir denken ehrlicherweise, dass sich das noch einige Monate ziehen wird, bis dafür mal Zeit ist. Die manuelle Liste ist dann auch schonmal eine gute Spezifikation dessen, was irgendwann mal automatisiert werden könnte.

Also wenn du weitere Hinweise und Wünsche hast, dann immer her damit. Wir können diese Seite im Wiki sehr schnell nach pflegen.

Hallo,


keine Sorge, das war mir bewusst, dass so eine Automatisierung sicherlich recht Aufwändig ist.

Fürs erste finde ich die Liste so schon sehr Gut.

Wenn ich etwas finde, was hinzugefügt werden könnte, melde ich mich nochmal :)


Viele Grüße

Stefan

Super danke. Deine genannten Punkte (row.variants()","row.master()", "row.children" etc.) wurden gerade hinzugefügt.

Hallo Zusammen,


mir ist noch ein Fall eingefallen:

Ich weiß, diese Informationen gibt es bereits im entsprechenden Wiki Eintrag, aber wäre es möglich noch die KeyValue Funktionen mit in die Tabelle aufzunehmen?

Besonders seit dem ihr das vorgeschlagene Script für den KeyValue geändert habt, ist es zu einer Wuselei geworden, den KeyValue relativ intuitiv zu benutzen (es ist eher wahrscheinlich, dass man den KeyValue wie eine Hashmap verwendet, statt da drüber zu iterieren).


Viele Grüße

Stefan


Hallo Stefan,

ja das ergänzen wir noch.

Du kannst auch gern einen Vorschlag für das Beispielskript machen. Welches "vorgeschlagene Script" meinst du denn, wodurch jetzt eine Wuselei entstanden ist? Das würden wir natürlich gern verbessern.

Ja der KeyValue ist quasi eine HashMap. Da man im Studio aber bisher nur mit Spreadsheets zu tun hat, haben wir den Output des KeyValue Spreadsheets quasi zu einem "Spreadsheet mit Hashmap-Funktion gemacht".

Hallo,


ja bei dem KeyValue bekomme ich für den Script-Vorschlag im Spreadsheet Mapper


image

Folgendes Script raus:

<#list meta.map@KeyValueSpreadsheet_3.getRows() as row> 
  row ${row.rowNumber!} : key: ${row.get("key")!}: 
  row ${row.rowNumber!} : value: ${row.get("value")!}: 
</#list>

Eigentlich will man aber den KeyValue hauptsächlich so wie folgt benutzen:

${meta.map@KeyValueSpreadsheet_3.get(spaltenName)}

Ich vermute mal, besonders für jemanden, der noch nie KeyValue Spreadsheets verwendet hat, ist es schwer ersichtlich, dass man per "get" direkt auf den Value anhand eines Keys zugreifen kann.


Viele Grüße

Stefan