Kategorien
Jedox

Jedox – Daten per Integrator Job und Worksheet kopieren

Nutzen

Sie möchten Ihren Nutzern eine einfache Möglichkeit zur Verfügung stellen, damit diese via Comboboxen und Button die Werte aus einer Sicht (bei Version) in eine andere Sicht (Version) kopieren können.

Bsp. Saisonalität

Die Saisonalität wird in einem Hilfswürfel gespeichert:

<<saison_koart>>

Enthalten sind die folgenden Dimensionen:

  • Jahr
  • Monat
  • Version
  • Saison_Typ (linear, effektiv oder prozentual)
  • _measure_saison

Anforderung

Worksheet zur Steuerung der aktuellen Daten, inkl. 4 Comboboxen mit Inhalt:

  • Jahr (Quelle/Ziel)
  • Version (Quelle/Ziel)

und ein Button, der die Werte überträgt.

Verteilungsmanager

Dann benötigen wir einen Cube-Extract für die aktuellen Werte und ein Cube-Slice zum Nullsetzen der Zielwerte bevor wir die Kopie einspielen.

Variablen im Integrator ETL

  • ficube_JAHR
  • ficube_VERSION
  • cubecopy_tJahr
  • cubecopy_tVersion

Nullsetzen der Zielversion

Kopieren der Werte

Wichtig ist die Übergabe der Variablen beim Cube-Extract:

Im Transformationsschritt werden dann die Zielkoordinaten mittels konstante und Variable übergeben (Achtung, im Screenshot fehlt die Kostenart):

Wichtig: alle Dimensionen des Würfels zzgl. des Wertes müssen beim Cube-Load vorhanden sein!

Die beiden ETL-Strecken werden dann in einem Job zusammen gefasst.

Die Benutzeroberfläche

Button und Makro

Im Sheet sind die folgenden Variablen definiert:

  • JAHR
  • JAHR_TARGET
  • VERSION
  • VERSION_TARGET
require library('integrator');

/**
 * @author Philipp Frenzel <philipp@frenzel.net>
 * @version 1.0.0
 * Kopieren der Werte für den Wüfel saison_koart
 * von einer in die nächste Version
 */
function _cp_saison_koart ()
{
  	//1. Auslesen des Connection Strings (Named Bereich im Worksheet)
	$connection = activeworkbook()->names->item('_rngConnection')->value;
    
  	//2. Einlesen der Variablen aus der Oberfläche
    $jahrSource = retrieve_variable('JAHR');
    $versionSource = retrieve_variable('VERSION');
    $versionTarget = retrieve_variable('VERSION_TARGET');
 
	//3. Befüllen der Variablen, die an den Integrator-Job übergeben werden
    $variables = [
		['name'=>'ficube_Jahr' ,'value'=>$jahrSource],
  		['name'=>'ficube_Version' ,'value'=>$versionSource],
 		['name'=>'cubecopy_tVersion','value'=>$versionTarget]
	];
  
  	//4. Aufruf des Jobs, inkl. Übergabe der Parameter (id ist der Prozess)
    $id = integrator_start_job('ITECBase','_cp_saison_koart',$variables,TRUE);
    return __recalc();
}

ACHTUNG: Beim kopieren der Werte kann es sein, dass 1 nicht gleich 1 bleibt. In meinem Dokument musste ich die boolean Bedingungen umschreiben, dass sie auf “>0” prüfen. Dadurch klappt es dann!

Philipp

Schreibe einen Kommentar