Jump to content

Automatische Datenablage via Powershell


Sebastian

Recommended Posts

Hallo,

für alle, die regelmäßig ihre Datensätze oder Berichte in ein lokales Verzeichnis oder ein Netzlaufwerk laden möchten, habe ich gestern ein PowerShell-Script hochgeladen. Das Script findet ihr hier.

Einrichtung

Am Beginn des Scripts (Ab Zeile 45) gibt es ein Array, in dem man Konfigurationen für einzelne smaps hinterlegen kann. Zu jeder smap kann konfiguriert werden, in welcher Form die Daten abgelegt werden sollen. Möglich sind aktuell JSON (Die Text-Inhalte des Datensatzes), Assets (u.A. die Bilder) und PDF für die Berichte.
Zu jeder der Varianten kann man noch den Ablagepfad und ggf. weitere Optionen konfigurieren. Dabei kann auch auf Eigenschaften das Datensatzes zugegriffen werden. Der jeweils exportierte Datensatz ist unter der Variablen $R verfügbar. Für die Id des Datensatzes kann man daher $R.id verwenden und für den Inhalt vom Baustein "Text" wär es $R.data.text. Der Pfad kann auch ein UNC-Pfad sein.

[pscustomobject]@{
        smapId = "00000000-dead-beef-0000-000000000123";

        exportJSON = $true;
        exportJSONPath = "$PSScriptRoot\export";
        exportJSONName = 'JSON_$($R.id).json'
        
        exportPDF = $true;
        exportPDFPath = '$PSScriptRoot\export\';
        exportPDFNameUsePlattform = $true;
        exportPDFName = '';
        
        exportAssets = $true;
        exportAssetsPath = '$PSScriptRoot\$($R.id)';

        deleteAfterExport = $false;
        
        token = "BeispielToken";
        debug = $false;
    }

Pro Block gibt es dann noch die Parameter "token" und "debug". Token ist dabei das API-Token aus dem Creatorenaccount in dem die smap liegt und mit debug kann gesteuert werden, ob zu Testzwecken alle Datensätze exportiert werden sollen oder die Datensätze beim Abrufen als exportiert markiert werden, um bei jedem Abruf immer nur die neue Datensätze abzurufen. Wenn das Script mit "debug = $false;" einen Fehler wirft, ist bei euch wahrscheinlich das dazu notwendige Feature nicht freigeschalten. Geht dann dazu bitte auf euren persönlichen Ansprechpartner zu und lasst das Feature aktivieren.

Nutzung

Das fertig eingerichtete Script kann man dann entweder bei Bedarf manuell starten oder regelmäßig ausführen lassen. Letzteres geht z.B. mit der Windows Aufgabenplanung. Dort einfach einen neuen Task anlegen, der z.B. zweimal am Tag das Script via Powershell startet und so die Daten exportiert.

  • Like 2
  • Thanks 8
Link to comment
Share on other sites

Hallo zusammen, 

das ist genau das was ich benötige 🙂 Zunächst vielen Dank für dieses geniale Script und den Hinweis das dieses existiert. 😄

Ich habe das Script angepasst und es funktioniert soweit, allerdings nur, wenn ich die "debug" aktiviere.

Dadurch werden aber alle PDFs kopiert, obwohl diese bereits kopiert wurden.

Ich habe mir das Script genauer angeschaut und festgestellt, dass hierfür die Funktion "MarkAsExported" verantwortlich ist.

Da ich den Fehler in der Powershell nicht nachvollziehen konnte, habe ich den String aus Zeile 257 des Scripts im Browser geöffnet (hier habe ich ElementConfig.smapID und ElementConfig.token manuell angepasst), um zu schauen was dort passiert. 

Daraufhin erscheint folgende Fehlermeldung: "Es wurde die Funktion MarkAsExported verwendet, die mit dem Vertragstyp nicht gestattet ist"

(Details siehe Foto im Anhang)

 

@Sebastian Woran könnte dies liegen? 

 

Vielen Dank und liebe Grüße

Stefan Lewandowski

2023_11_10_13_11_00_platform.smapone.com_backend_intern_Smaps_3407f1ed_32d9_4ccf_a891_fee0b90045b2_D.png

  • Like 1
Link to comment
Share on other sites

Am 3.11.2023 um 11:43 schrieb Sebastian:

Wenn das Script mit "debug = $false;" einen Fehler wirft, ist bei euch wahrscheinlich das dazu notwendige Feature nicht freigeschalten. Geht dann dazu bitte auf euren persönlichen Ansprechpartner zu und lasst das Feature aktivieren.

😉 Geh bitte auf @Britta Köhler zu und lass dir das Feature freischalten.

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...