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:
- Für den Job wird ein neuer temporärer Ordner erstellt.
- Die Analyse und zugehörige Tabellen werden in ein neues Analytics-Projekt im temporären Ordner exportiert.
- Die AX Engine auf dem Server öffnet das Analytics-Projekt, erstellt ein neues Befehlsprotokoll und führt das Analyseskript aus.
- Dateien, Tabellen oder Protokolle, die im Analysekopf festgelegt werden, werden in einem Ergebnisordner aufbewahrt, welcher der jeweiligen Jobausführung zugeordnet ist.
- 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:
- Importiert Daten aus der DateiTarife.xlsx der Beispieldaten ACL_Rockwood mit dem Befehl IMPORT.
- Sortiert die Daten mit einem Ausdruck unter Verwendung des Befehls SORT.
- Fordert den Benutzer mit dem Befehl ACCEPT auf, die zu extrahierende Datensatzanzahl einzugeben.
- 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 OK: DELETE 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