Skripts für Analytics Exchange schreiben

Analytics-Skripts können nicht nur in Analytics ausgeführt werden. Wenn Sie ein Skript in Analyseskripts umwandeln und in eine Analyse-App packen, können Sie es auch in Analytics Exchange planen oder ausführen.

Was benötigen Sie?

Um diese Kurzanleitung abzuschließen, benötigen Sie das Folgende:

  • eine Installation von AX Client mit einer funktionierenden Verbindung mit einer AX-Server-Instanz
  • eine Installation von Analytics derselben Edition (Unicode oder Nicht-Unicode) wie Ihre Analytics-Exchange-Installation
  • Zugang zu den Beispieldaten, die zum Lieferumfang von Analytics gehören

    Hinweis

    Standardmäßig werden die Beispieldaten in Ihrem lokalen Dateisystem unter dem Pfad C:\Benutzer\Benutzername\Dokumente\ACL Data\Beispieldatendateieninstalliert.

Skripts auf AX Server ausführen

Analytics Exchange verwendet die AX Engine, um Skripts auszuführen, die als Analysen auf AX Server identifiziert werden. Sobald ein Skript in eine Analyse konvertiert ist und auf den Server importiert wurde, ist jede Ausführung eines Analyseskripts ein einzelner Job mit eigener Ergebnismenge.

Bei der Ausführung einer Analyse in AX Server werden folgende Schritte durchgeführt:

  1. Für den Job wird ein neuer temporärer Ordner erstellt.
  2. Die Analyse und zugehörige Tabellen werden in ein neues Analytics-Projekt im temporären Ordner exportiert.
  3. Die AX Engine auf dem Server öffnet das Analytics-Projekt, erstellt ein neues Befehlsprotokoll und führt das Analyseskript aus.
  4. Dateien, Tabellen oder Protokolle, die im Analysekopf festgelegt werden, werden in einem Ergebnisordner aufbewahrt, welcher der jeweiligen Jobausführung zugeordnet ist.
  5. Die temporären Ordner und Dateien werden vom Server gelöscht.

Hinweis

Weil die AX Engine Analyseskripts in einem temporären Ordner ausführt, sollten Sie relative Pfade verwenden, um Ordner und Dateien auf dem Server zu referenzieren:

  • Skript in AnalyticsC:\ACL Data\MeinProjekt\Ausgabe\Ergebnisse
  • Skript in Analytics ExchangeAusgabe\Ergebnisse

Ein Skript in eine Analyse konvertieren

Sie konvertieren Analytics-Skripts in Analysen, indem Sie einen Analysekopf hinzufügen und Funktionen von Analytics entfernen, die auf AX Server nicht unterstützt werden.

Das folgende Analytics-Skript wird in Analytics ausgeführt und erledigt Folgendes:

  1. Importiert Daten aus der DateiTarife.xlsx der Beispieldaten ACL_Rockwood mit dem Befehl IMPORT.
  2. Sortiert die Daten mit einem Ausdruck unter Verwendung des Befehls SORT.
  3. Fordert den Benutzer mit dem Befehl ACCEPT auf, die zu extrahierende Datensatzanzahl einzugeben.
  4. Extrahiert die durch den Benutzer angegebene Datensatzanzahl aus der sortierten Tabelle mit dem Befehl EXTRACT.
SET SAFETY OFF

COMMENT EXCEL-Daten in Projekt importieren
IMPORT EXCEL TO Tarife "C:\Benutzer\Benutzername\Dokumente\ACL_Arbeit\Tarife.fil" FROM "C:\Benutzer\Benutzername\Dokumente\ACL Data\Beispiel-Datendateien\ACL_Rockwood\Tarife.xlsx" TABLE "Tarife$" KEEPTITLE FIELD "DEPARTMENT" C WID 19 AS "" FIELD "POSITION" C WID 25 AS "" FIELD "MIN_HOURLY" N WID 6 DEC 2 AS "" FIELD "MAX_HOURLY" N WID 6 DEC 2 AS ""

COMMENT Importierte Tabelle öffnen und nach Unterschied zwischen maximalem und minimalem Stundensatz sortieren
OPEN Tarife
SORT ON (MAX_HOURLY - MIN_HOURLY)  D  TO "Tarife_sortiert" OPEN

COMMENT Benutzer fragen, wie viele Datensätze aus sortierter Tabelle extrahiert werden sollen
ACCEPT "Anzahl zu extrahierender Datensätze: " TO v_Top

COMMENT N größte Datensätze auf Basis der Differenz extrahieren
EXTRACT FIELDS DEPARTMENT MAX_HOURLY MIN_HOURLY POSITION (MAX_HOURLY - MIN_HOURLY) AS "SALARY_D" IF RECNO() <= %v_Top% TO "Top_Differenz" OPEN

SET SAFETY ON

Den Analysekopf hinzufügen

Beginnen Sie, das Skript in eine Analyse zu konvertieren, indem Sie oben in der Datei einen Analysekopf hinzufügen.

Ein Analysekopf besteht aus einer Reihe von Deklarationen, die sich am Anfang eines Skripts in einem Kommentarblock befinden. Nachdem Sie ein Skript in einem Analytics-Projekt erstellt und getestet haben, fügen Sie einen Analysekopf ein, um es in ein Analyseskript zu konvertieren, das in Analytics Exchange ausgeführt werden kann.

Analyseköpfe müssen mit dem ANALYTIC-Tag beginnen, welches das Skript als Analyse kennzeichnet:

COMMENT
//ANALYTIC GrößterLohnunterschied
Importiert eine EXCEL-Datei und extrahiert die größten N Datensätze auf Basis des Lohnunterschieds
END

Weitere Informationen über Analysetags finden Sie unter Analyseköpfe und -tags.

IMPORT-Befehl ändern

Weil die AX Engine Analyseskripts in einem temporären Ordner ausführt, sollten Sie die absoluten Pfade des Befehls IMPORT auf relative Pfade abändern, damit AX Engine die Dateien auf dem Server finden kann:

COMMENT EXCEL-Daten in Projekt importieren
IMPORT EXCEL TO Tarife "Tarife.fil" FROM "Tarife.xlsx" TABLE "Tarife$" KEEPTITLE FIELD "DEPARTMENT" C WID 19 AS "" FIELD "POSITION" C WID 25 AS "" FIELD "MIN_HOURLY" N WID 6 DEC 2 AS "" FIELD "MAX_HOURLY" N WID 6 DEC 2 AS ""

Sie müssen auch den FILE-Tag dem Analysekopf hinzufügen, um die Eingabedatei Tarife.xlsx festzulegen:

COMMENT
//ANALYTIC GrößterLohnunterschied
Importiert eine EXCEL-Datei und extrahiert die größten N Datensätze auf Basis des Lohnunterschieds
//FILE Tarife.xlsx
END

Die AX Engine sucht Eingabedateien im Unterordner Verbundene Dateien auf AX Server, wenn die Analyse ausgeführt wird. Weitere Informationen finden Sie unter FILE.

Benutzereingriffe entfernen

Weil das Analyseskript auf dem Server ohne Benutzereingriff ausgeführt wird, müssen Sie alle Befehle entfernen, die während der Ausführung zu Benutzereingaben auffordern. Überprüfen Sie übliche Analytics-Skript-Szenarien, bevor Sie das Skript in AX Server importieren:

  • interaktive Befehle Um Benutzereingaben entgegenzunehmen, die normalerweise in einem Dialogfeld eingegeben werden, ersetzen Sie die folgenden Befehle durch Eingabeparameter: PAUSE, ACCEPT, DIALOG, PASSWORD
  • Dateien überschreiben Um Dateien ohne eine Bestätigung zu überschreiben, fügen Sie zu Beginn des Skripts SET SAFETY OFF hinzu. Diese Einstellung können Sie dann am Ende des Skripts durch SET SAFETY ON wieder zurücksetzen.
  • Bestätigungsdialoge Um Bestätigungsdialoge nach den Befehlen DELETE oder RENAME zu vermeiden, verwenden Sie den Parameter OKDELETE Tabelle.fmt OK

In diesem Fall müssen Sie den Befehl ACCEPT entfernen und ihn mit einem Parameter ersetzen, der bei der Planung oder Ausführung der Analyse in AX Client festgelegt wird:

COMMENT Importierte Tabelle öffnen und nach Unterschied zwischen maximalem und minimalem Stundensatz sortieren
OPEN Tarife
SORT ON (MAX_HOURLY - MIN_HOURLY)  D  TO "Tarife_sortiert" OPEN

COMMENT N größte Datensätze auf Basis der Differenz extrahieren
EXTRACT FIELDS DEPARTMENT MAX_HOURLY MIN_HOURLY POSITION (MAX_HOURLY - MIN_HOURLY) AS "SALARY_D" IF RECNO() <= %v_Top% TO "Top_Differenz" OPEN

Sie müssen den Parameter dem Analysekopf mit dem PARAM-Tag hinzufügen, sodass Sie den Wert für v_Top von AX Client festlegen können:

COMMENT
//ANALYTIC GrößterLohnunterschied
Importiert eine EXCEL-Datei und extrahiert die größten N Datensätze auf Basis des Lohnunterschieds
//FILE Tarife.xlsx
//PARAM v_Top N v_Top
Anzahl zu extrahierender Datensätze
END

Wenn Sie versuchen, die Analyse in AX Client auszuführen oder zu planen, werden Sie zur Eingabe eines numerischen Wertes aufgefordert, den AX Engine dann stets verwendet, sobald innerhalb der Analyse %v_Top%auftaucht. Weitere Informationen finden Sie unter PARAM.

Analyseergebnisse speichern

Ebenso wie Sie Analysetags zur Definition von Analyseeingaben verwenden, nutzen Sie Deklarationen in Analysetags zur Definition von Ausgabetabellen und Dateien, die im Unterordner Ergebnisse auf AX Server gespeichert werden. Nur Elemente, die im Analysekopf den Tag RESULT enthalten, werden aufbewahrt. Andere Tabellen, Dateien oder Protokolle werden nach dem Abschluss des Analysejobs gelöscht:

COMMENT
//ANALYTIC GrößterLohnunterschied
Importiert eine EXCEL-Datei und extrahiert die größten N Datensätze auf Basis des Lohnunterschieds
//FILE Tarife.xlsx
//RESULT LOG
//RESULT TABLE Top_Differenz
//PARAM v_Top N v_Top
Anzahl zu extrahierender Datensätze
END

Das Protokoll und die Tabelle Top_Differenz werden nun als Ergebnisse gespeichert und sind in AX Webclient nach jeder Ausführung der Analyse auf AX Server verfügbar. Weitere Informationen finden Sie unter RESULT.

Die vollständige Analyse

Sie können nun die vollständige Analyse zusammen mit der verbundenen MS-Excel-Datei in einen Ordner auf AX Server importieren. Wenn die Analyse ausgeführt wird, geben Sie die Anzahl zu extrahierender Datensätze an. Eine Tabelle und eine Protokolldatei werden dann als Ergebnisse aufbewahrt und sind in AX Webclient verfügbar:

COMMENT
//ANALYTIC GrößterLohnunterschied
Importiert eine EXCEL-Datei und extrahiert die größten N Datensätze auf Basis des Lohnunterschieds
//FILE Tarife.xlsx
//RESULT LOG
//RESULT TABLE Top_Differenz
//PARAM v_Top N v_Top
Anzahl zu extrahierender Datensätze
END

SET SAFETY OFF

COMMENT EXCEL-Daten in Projekt importieren
IMPORT EXCEL TO Tarife "Tarife.fil" FROM "Tarife.xlsx" TABLE "Tarife$" KEEPTITLE FIELD "DEPARTMENT" C WID 19 AS "" FIELD "POSITION" C WID 25 AS "" FIELD "MIN_HOURLY" N WID 6 DEC 2 AS "" FIELD "MAX_HOURLY" N WID 6 DEC 2 AS ""

COMMENT Importierte Tabelle öffnen und nach Unterschied zwischen maximalem und minimalem Stundensatz sortieren
OPEN Tarife
SORT ON (MAX_HOURLY - MIN_HOURLY)  D  TO "Tarife_sortiert" OPEN

COMMENT N größte Datensätze auf Basis der Differenz extrahieren
EXTRACT FIELDS DEPARTMENT MAX_HOURLY MIN_HOURLY POSITION (MAX_HOURLY - MIN_HOURLY) AS "SALARY_D" IF RECNO() <= %v_Top% TO "Top_Differenz" OPEN

SET SAFETY ON
Hilfe für Analytics-Exchange-Client 14.1