Variabili di sostituzione di runtime in Script di calcolo eseguite in Essbase
Le variabili di sostituzione runtime (RTSV) consentono di fare riferimento in modo dinamico ai nomi dei membri negli script di calcolo di Essbase invece di codificarli. In uno script di calcolo è possibile includere una variabile di sostituzione runtime ovunque siano consentite variabili di sostituzione.
In uno script di calcolo, una e commerciale (&) deve precedere il nome della variabile di sostituzione runtime.
Ogni variabile di sostituzione runtime utilizzata in uno script di calcolo deve essere dichiarata nel comando di calcolo SET RUNTIMESUBVARS, con un nome e un valore predefinito.
Nota
Se un valore predefinito non è incluso nella dichiarazione della variabile di sostituzione runtime in SET RUNTIMESUBVARS, si verifica un errore quando lo script di calcolo viene convalidato. Oracle consiglia di fornire un valore predefinito per evitare l'errore di convalida e, durante l'esecuzione dello script di calcolo, fornire il valore previsto. Tuttavia, se non si specifica un valore predefinito, è comunque possibile fornire un valore in runtime utilizzando l'istruzione MaxL calcolo di esecuzione con la grammatica con le barre runtime.
Una descrizione del tipo di dati e del limite di input dei dati della variabile di sostituzione runtime è una stringa nella tag <RTSV_HINT>rtsv_description</RTSV_HINT>. Questa tag è facoltativa quando lo script di calcolo con variabili di sostituzione runtime viene eseguito in Essbase; vedere Suggerimenti per le variabili di sostituzione runtime negli script di calcolo eseguiti in Essbase. La tag <RTSV_HINT>, con metadati aggiuntivi, è necessaria quando lo script di calcolo con variabili di sostituzione runtime viene eseguito in Smart View. Fare riferimento alla sezione Variabili di sostituzione di runtime in Script di calcolo eseguite in Smart View.
In questo esempio di SET RUNTIMESUBVARS vengono dichiarate tre variabili di sostituzione runtime: myMarket, salesNum e pointD. I valori predefiniti vengono specificati per ogni variabile di sostituzione runtime (ad esempio, il valore di myMarket è "New York"). Questo esempio si applica a uno script di calcolo eseguito in Essbase:
SET RUNTIMESUBVARS
{
myMarket = "New York";
salesNum = 10;
pointD = "Actual"->"Final";
};In fase di esecuzione, i valori predefiniti specificati nel comando SET RUNTIMESUBVARS possono essere sovrascritti utilizzando uno dei seguenti metodi:
-
Istruzione execute Calculation MaxL con la grammatica with runtimesubvars, in cui le variabili di sostituzione runtime vengono specificate come una stringa di coppie chiave/valore.
Utilizzando l'esempio SET RUNTIMESUBVARS riportato sopra, in fase di esecuzione è possibile sovrascrivere il valore predefinito di salesNum di 10 con 500 utilizzando la seguente istruzione MaxL:
execute calculation appname.dbname.calcScriptName with runtimesubvars 'salesNum=500';L'utilizzo di questa istruzione MaxL consente inoltre di fornire valori per le variabili di sostituzione runtime che non hanno un valore predefinito nella dichiarazione SET RUNTIMESUBVARS.
-
Chiamata API in cui le variabili di sostituzione runtime vengono specificate come stringa di coppie chiave/valore: IEssCube.calcFileWithRunTimeSubVars (API Java) o EssCalcWithRuntimeSubVars (API C)
-
Chiamata API in cui le variabili di sostituzione runtime possono essere specificate in un file di testo sul computer client o come stringa di coppie chiave/valore: IEssCube.calcFileWithRunTimeSubVarFile (API Java) o EssCalcFileWithRuntimeSubVars (API C)
Quando si specificano variabili di sostituzione runtime come una stringa di coppie chiave/valore, la stringa deve essere racchiusa tra virgolette singole e le coppie chiave/valore devono essere separate da un punto e virgola, incluso un punto e virgola dopo l'ultima variabile di sostituzione runtime nella stringa e prima della virgoletta singola terminale. In questo esempio di stringa di variabile di sostituzione runtime, vengono specificati il nome e il valore di quattro variabili di sostituzione runtime (ad esempio, il valore della variabile di sostituzione runtime denominata "a" è 100):
'a=100;b=@CHILDREN("100");c="Actual"->"Final";d="New York";'Quando si specificano variabili di sostituzione runtime in un file di testo, creare il file di testo con un'estensione .rsv nel computer client. Essbase non supporta i file delle variabili di sostituzione runtime presenti nel computer Essbase Server. Ogni riga del file specifica una variabile di sostituzione runtime come coppia chiave/valore e deve terminare con un punto e virgola. In questo esempio di file .rsv vengono specificati il nome e il valore di quattro variabili di sostituzione runtime:
a=100;
b=200;
c=@CHILDREN("100");
d=@TODATE("DD/MM/YY","10/11/12");Quando viene eseguito un calcolo, i valori delle variabili di sostituzione runtime vengono determinati nell'ordine seguente:
-
Valori specificati tramite l'istruzione MaxL del calcolo di esecuzione con la grammatica con runtimesubvars o le API (IEssCube.calcFileWithRunTimeSubVars o IEssCube.calcFileWithRunTimeSubVarFile Java API; EssCalcWithRuntimeSubVars o EssCalcFileWithRuntimeSubVars C API).
-
Valori predefiniti specificati nel comando di calcolo SET RUNTIMESUBVARS.
Tenere presenti le linee guida riportate di seguito quando si utilizzano le variabili di sostituzione runtime.
-
Se si dichiara una variabile di sostituzione del runtime in SET RUNTIMESUBVARS ma non si utilizza la variabile di sostituzione del runtime nello script di calcolo, Essbase ignora la dichiarazione della variabile di sostituzione del runtime non utilizzata (non viene generata alcuna avvertenza o eccezione).
-
Le variabili di sostituzione runtime hanno una precedenza maggiore rispetto alle variabili di sostituzione. Pertanto, se una variabile di sostituzione e una variabile di sostituzione runtime hanno lo stesso nome (ad esempio, myProduct), il valore della variabile di sostituzione runtime sovrascrive il valore della variabile di sostituzione.
-
Se più variabili di sostituzione runtime hanno lo stesso nome ma hanno valori diversi, viene utilizzato solo il valore della prima istanza della variabile di sostituzione runtime; tutti gli altri valori successivi vengono ignorati.
Le regole per l'impostazione dei nomi e dei valori per le variabili di sostituzione runtime sono le stesse delle variabili di sostituzione. Vedere Valori e nomi delle variabili di sostituzione consentiti.
Suggerimenti per le variabili di sostituzione in runtime durante l'esecuzione degli script del calcolo in Essbase
Quando si progettano script di calcolo Essbase che utilizzano variabili di sostituzione runtime, è possibile utilizzare RTSV_HINT per contenere testo per richiedere agli utenti di immettere valori in runtime.
Le informazioni riportate in questo argomento si applicano all'esecuzione di uno script di calcolo con variabili di sostituzione runtime nei job o nell'API di Essbase, anziché in Smart View.
Nel comando di calcolo SET RUNTIMESUBVARS, la dichiarazione della variabile di sostituzione runtime può includere il tag <RTSV_HINT>rtsv_description</RTSV_HINT>, in cui rtsv_description è una stringa che descrive il tipo di dati e il limite di input dei dati (ad esempio, un numero intero non maggiore di 100) per la variabile di sostituzione runtime. La stringa rtsv_description non viene utilizzata nel calcolo, ma può essere utile come prompt utente.
Le chiamate API possono recuperare tutte le informazioni (nome, valore predefinito e descrizione) specificate nella dichiarazione della variabile di sostituzione runtime in SET RUNTIMESUBVARS. Ad esempio, è possibile restituire queste informazioni utilizzando l'endpoint REST API Recupera RTSV script Essbase, i metodi API Java IEssIterator.getCalcFileRunTimeSubVars o IEssIterator.getCalcRunTimeSubVars o l'API C EssGetRuntimeSubVars. La stringa rtsv_description può quindi essere utilizzata per richiedere a un utente di immettere un valore in runtime o per convalidare i dati di input prima di passare il valore allo script di calcolo.
In questo esempio di SET RUNTIMESUBVARS, ogni dichiarazione specifica il nome, il valore predefinito e la descrizione della variabile di sostituzione runtime:
SET RUNTIMESUBVARS
{
myMarket = "New York" <RTSV_HINT>myMarket: Input the value as a member name, such as "New York"</RTSV_HINT>;
salesNum = 10 <RTSV_HINT>salesNum: Input the value as an integer, such as 100</RTSV_HINT>;
pointD = "Actual"->"Final" <RTSV_HINT>pointD: Input the value as a member combination, such as "Actual"->"Final"</RTSVVAR_HINT>;
};Variabili di sostituzione runtime di log
Per registrare le variabili di sostituzione runtime utilizzate in uno script di calcolo, impostare l'impostazione di configurazione ENABLERTSVLOGGING su TRUE. Il log può essere implementato a livello di server Essbase, applicazione o database.
Le voci di log delle variabili di sostituzione runtime vengono scritte nel file di log dell'applicazione. Essbase scrive una voce nel log dell'applicazione per ogni stringa di coppie chiave/valore (o una lista di coppie chiave/valore specificata in un file .rsv quando si utilizza l'API Java IEssCube.calcFileWithRunTimeSubVarFile o l'API C EssCalcFileWithRuntimeSubVars).
Nell'esempio seguente, due variabili di sostituzione runtime (Entità e Valuta) e i relativi valori vengono registrati in una voce:
Executing calc script 'calcprofit.csc' with runtime substitution variables {Entity = "MyCompany"; Currency = "USD";}Vedere anche: