Benutzerdefinierte Cloud-Loader erstellen
Um einen benutzerdefinierten Cloud-Loader zu erstellen, sind fundierte Kenntnisse und Erfahrung in der JavaScript-Programmierung erforderlich. Sie sollten nicht mit der Erstellung eines benutzerdefinierten Cloud-Loaders beginnen, wenn kein erfahrener JavaScript-Programmierer beteiligt ist. Ihnen muss außerdem die Berechtigung "Integrationsentwickler" unter "Verwaltung > Berechtigungssätze" zugewiesen werden, bevor Sie versuchen, einen benutzerdefinierten Cloud-Loader zu erstellen.
Mit benutzerdefinierten Cloud-Loadern können Sie exportieren
Adaptive Planning
-Plandaten direkt in Cloud-Systemen von Drittanbietern.Video ansehen:
3m 16sGrundlegende Schritte
- Geben Sie Datenquelleneinstellungen ein.
- Parameter definieren
- Schreiben Sie JavaScript mit den CCDS-APIs in ai-Namespace.
- Definieren Sie Geschäftsregeln.
- Führen Sie den Loader aus oder planen Sie dessen Ausführung.
Voraussetzungen
Voraussetzungen
- Vergewissern Sie sich, dass Sie über die Berechtigung "Integrationsentwickler" verfügen.
- Verifizieren Sie dasAdaptive Planning-Plandaten, die Sie exportieren möchten, sind bereits in einer Staging-Tabelle vorhanden.
- Erstellen Sie OAuth-Zugangsdaten für Ihr externes System oder verwenden Sie Zugangsdaten, die Sie explizit in Ihr JavaScript aufnehmen können.
- Sie sollten wissen, welche Parameter Sie an Ihr externes System weitergeben müssen und welche Standardwerte das externe System erwartet.
- Sie sollten das Verfahren kennen, wie Sie in den Endpunkt des externen Systems schreiben können.
Navigation
Wechseln Sie im Navigationsmenü zu . Datenquelleneinstellungen eingeben
In den Datenquelleneinstellungen können Sie die gewünschte Quelltabelle in den Staging-Daten Ihrer Instanz auswählen sowie festlegen, welche Zugangsdaten verwendet werden sollen und wie detailliert die Protokolldetails während einer Loader-Ausführung sein sollen.
Neuen benutzerdefinierten Cloud-Loader erstellen
- Öffnen Sie den Datendesigner überIntegration > Integrationsdesign.
- Wählen Sie im Ordner "Loaders" in der KomponentenbibliothekNeuen Loader erstellen.
- Wählen SieBenutzerdefinierter Cloud-Loaderals Loader-Art und geben Sie einen Namen ein.Wenn "Benutzerdefinierter Cloud-Loader" nicht als Option angezeigt wird, ist die Option für diese Instanz nicht aktiviert oder Sie verfügen nicht über die für den Zugriff erforderliche Berechtigung "Integrationsentwickler".
- Wählen SieErstellen.
Quelltabelle, Zugangsdaten und Protokollebene auswählen
- Geben Sie die Informationen zum benutzerdefinierten Cloud-Loader ein.
- Quelltabelle:Wählen Sie eine Staging-Tabelle aus, die Folgendes enthältAdaptive PlanningPlanning-Daten, die Sie exportieren möchten.
- Erfordert Zugangsdaten:Wählen Sie diese Option aus, wenn das externe System OAuth erfordert und ein Benutzer mit der Berechtigung "Integrationsoperator" die entsprechenden OAuth-Zugangsdaten auswählen muss.
- Zugangsdaten:Wählen Sie bereits vorhandene OAuth-Zugangsdaten aus.
- Protokollebene:Wählen Sie, wie viele Details während der Ausführung des Loaders protokolliert werden sollen:
- Fehler:Protokolliert nur Fehler.
- Info:Protokolliert alle Basisinformationen, z. B. wann die Datenquelle aktualisiert wurde.
- Ausführlich:Stellt sehr detaillierte Informationen zu allen Phasen und Aktionen bereit. Wird hauptsächlich für Fehlerbehebung oder Auditing verwendet, da dadurch möglicherweise mehr Protokollinformationen geliefert werden, als für die normale Verwendung praktikabel ist
- Klicken Sie im Menü "Aktionen" aufSpeichern.
Parameter definieren
Legen Sie fest, welche Parameter Ihr JavaScript zum Exportieren benötigt
Adaptive Planning
-Daten in Ihr externes System. Parameter können Verbindungs-URLs, Benutzernamen, Kennwörter und Dimensionen aus enthalten Adaptive Planning
und andere Informationen. Mit parametrisierten Einstellungen können Sie deren Werte zur Laufzeit ändern. Statische Einstellungen bleiben bei allen Loader-Ausführungen erhalten.- Wählen SieDesigner-Einstellungen.
- Ziehen Sie parametrisierte oder statische Einstellungselemente aus dem BereichEinstellungen KomponenteinDesigner-Einstellungen.
- Hier eingegebene Parametrisierte Einstellungswerte werden zu Loader-Standardvorgaben, wenn Sie zur Laufzeit des Loaders keine anderen Werte angeben.
- Statische Einstellungen, die Sie hier eingeben, werden bei jeder Ausführung des Loaders verwendet und erfordern keine Eingabe zur Laufzeit.
- Boolesch: Ein Wert, der als 1 oder 0 dargestellt wird.
- Dimension: Eine Dimension aus der Dimensionsverwaltung inAdaptive Planning.
- Ganzzahl: Eine nicht negative ganze Zahl.
- Kennwort: Ein Kennwort. Dieser Wert kann nach dem Speichern nicht mehr angezeigt werden.
- Periodenbereich: Ein Zeitperiodenbereich inAdaptive Planning.
- Text: Ein alphanumerischer Wert.
- Doppelklicken Sie auf ein Parameterelement, um einen Namen einzugeben und seinen Wert zu ändern.
- Ziehen Sie so viele Elemente hierher, wie Sie in Ihrem JavaScript referenzieren möchten.
- Speichern Sie den Loader.
- Verwenden Sie den Namen eines Parameters zur Referenzierung in Ihrem JavaScript.
JavaScript schreiben
- Wählen SieSkript.
- Wählen Sie die vorhandene Vorlage aus und ändern Sie sie oder wählen SieNeues Skript, um eine eigene Vorlage zu erstellen.
- Schreiben Sie das JavaScript, das vom Loader mithilfe der CCDS-APIs in ausgeführt werden soll ai-Namespace.
- Vergewissern Sie sich, dass das Skript Folgendes enthält:
- testConnection-Funktion, um eine https-Anforderung zur Übermittlung an Ihr externes System zu erstellen
- exportData-Funktion, aus der Daten exportiert werden sollenAdaptive Planning. Siehe Funktion zum Exportieren von Daten (nur benutzerdefinierter Cloud-Loader) im Thema "Funktionen von Adaptive Planning".
- Referenzieren Sie alle Parameter, die Sie in den Designer-Einstellungen erstellt haben, anhand ihres Namens.
- Speichern Sie das Skript.
Sie können ein Skript im Editor mit der Tastenkombination
STRG+Umschalt+B
formatieren und optisch ansprechender gestalten. Suchen und ersetzen Sie Ausführungen mit Strg+H
.Sie können die Wartung vereinfachen, indem Sie ein langes Skript in mehrere Dateien aufteilen.
Beispiel: Sie könnten alle Ihre Daten einschließen
testConnection
Logik in einem aufgerufenen Skript testconnectionscript
. Ein zweites Skript namens exportdatascript
, könnte alle enthalten exportData
Logik. Wenn dieselbe Funktion in mehreren Skripten deklariert ist, wird die Funktion aus dem zuletzt hinzugefügten Skript verwendet.
OAuth in benutzerdefinierten Cloud-Loader-Skripten verwenden
Wenn Sie Erfordert Zugangsdaten für einen benutzerdefinierten Cloud-Loader auswählen, muss Ihr Skript enthalten
ai.https.authorizedRequest.
Anweisungen zum Erstellen von OAuth-Zugangsdaten finden Sie unter Mit OAuth authentifizieren .
Wenn Sie einen benutzerdefinierten Cloud-Loader ausführen, der Zugangsdaten referenziert, sollten Sie Folgendes tun:
- Wählen SieAutorisierung anfordern, bevor Sie den Loader ausführen.
- Geben Sie alle zusätzlichen Autorisierungsdetails an, z. B. den Bereich, die für den externen Systemendpunkt benötigt werden.
- Wählen SieVerbindung testen, um zu prüfen, ob die OAuth-Zugangsdaten erfolgreich an den Endpunkt übergeben wurden.
- Notieren Sie sich das Autorisierungsdatum und die Benutzer-ID unter "Autorisierungsstatus". Das Ablaufdatum der Autorisierung variiert je nach externem System. Wählen Sie "Autorisierung zurücksetzen" im Bereich "Aktionen", um bei Bedarf eine erneute Autorisierung durchzuführen.
Geschäftsregeln definieren
Mit Geschäftsregeln können Sie SQL-Ausdrücke erstellen, die die Staging-Daten beschränken, die in das externe System exportiert werden. Es werden nur Datensätze geladen, die Ihren Filterkriterien entsprechen.
Das Register "Geschäftsregeln" enthält einen Textbereich für die Eingabe von SQL.
- Wählen Sie das RegisterGeschäftsregeln.
- Wählen SieBearbeiten.
- Geben Sie einen SQL-Ausdruck ein. Sie können auf ein Element in "Verfügbare Spalten" klicken, um diese Spalte in den SQL-Ausdruck zu übernehmen, anstatt sie einzugeben.
- Wählen SieAnwenden, um Ihre Syntax zu prüfen. Bei Fehlern wird der Rahmen um den Ausdruck rot angezeigt. Bewegen Sie den Cursor über den Ausdruck, um Informationen zu Syntaxfehlern anzuzeigen.
- Korrigieren Sie alle Fehler in Ihrer Syntax und wählen SieAnwenden. Nur Staging-Zeilen, die mit dem SQL-Ausdruck übereinstimmen, werden geladen.
Benutzerdefinierten Cloud-Loader in eine Integrationsaufgabe einschließen
Benutzerdefinierte Cloud-Loader müssen als Integrationsaufgaben ausgeführt werden. Aufgaben können einen oder mehrere Loader enthalten. Eine Aufgabe kann auch andere Integrationsaufgaben und Loader enthalten. Siehe: Integrationsaufgaben erstellen.
Best Practice: Führen Sie für jeden Loader eine separate Integrationsaufgabe durch.
Wenn eine Aufgabe mehrere Loader enthält, werden bei der Ausführung der Aufgabe Parameter aus jedem Loader angezeigt. Wenn in den Loadern innerhalb einer Aufgabe ein allgemeiner/gemeinsamer Parameter verwendet wird, fordert die Aufgabe nur einmal zur Eingabe des Parameters auf. Sie können wählen, dass Parameter-Wertelisten überschrieben werden.
Für geplante Ausführungen der Aufgabe werden die Standardwerte der Parameter verwendet, die beim Erstellen der Loader gespeichert wurden.
CCL-Beispielskript
Verwenden Sie das folgende Beispiel, um eine Verbindung zu Ihrer AWS S3-Instanz zum Exportieren und Anzeigen Ihrer Tabellendaten herzustellen. Sie benötigen Bucket-Namen, Schlüssel, Zugriffsschlüssel, geheimen Schlüssel und Regionswerte. Weitere Informationen und Beispielcodes finden Sie unter ai.awss3.
- Richten Sie eine Tabellendatenquelle ein.
- Erstellen Sie im BereichLoadereinen neuen benutzerdefinierten Cloud-Loader.
- Navigieren Sie zum RegisterDatenquelleneinstellungenund wählen Sie Ihre Tabellendatenquelle im FeldQuelltabelleaus.
- Kopieren Sie das folgende Beispielskript auf dem RegisterSkripte.// Manually invoke this method via 'Test connection' function testConnection(context) { return true; } // Manually invoke this method via 'Run manually' function exportData(context) { //"xxx" is the name of your Amazon S3 bucket. var bucketName = 'xxx'; //Name of the sample CSV file to which data from your spreadsheet data source is exported var key = 'exampleTest.csv'; //"xxxx" is the access key for your AWS S3 bucket. var awsAccessKey = 'xxxx'; //"xxxx" is the secret key of your AWS S3 bucket. var awsSecretKey = 'xxxx'; var region = 'us-west-1'; // Step 1: Get the data var reader = context.createTableReader(); // Step 2: Process and export the data var result = "Column,Heading,Names\n"; var row = null; while ((row = reader.readRow()) !== null) { // remove meta columns we don't need row.length = row.length - 2; result += row.join() + '\n'; } ai.awss3.putFile(bucketName, key, result, region, awsAccessKey, awsSecretKey); }
- Klicken Sie im BereichAktionenaufSpeichern.
- Um das Skript auszuführen, wählen SieManuell ausführenim BereichAktionen.