Nel datawarehouse è possibile aggiungere nelle dimensioni di un
qualsiasi scenario un campo aggiuntivo direttamete dal programma gestione scenari, se non si ha necessità di
decodifica o di zoom/filtro. Per poter aggiungere un nuovo campo in uno
scenario questo deve appartenere ad una delle tabelle già previste nelle
join principali del datawarehouse del medesimo scenario (per esempio
ANAGRA e ARTICO per lo scenario del ciclo attivo/passivo).
Procediamo ora con un esempio, in modo da spiegare i passi fondamentali
per aggiungere un campo di tipo dimensione (gruppo 1, 2, 3 e 4 che sono
rispettivamente periodo, clienti/fornitori, prodotto e documento), e a
fine del paragrafo tratteremo l'inserimento di un campo di tipo dato
(gruppo 5). Immaginiamo di avere la statistica che presenta il consegnato
per mese per cliente di un'azienda di cosmetici, e di avere la necessita
modificare la statistica in modo che presenti il consegnato per mese in
base al Sesso indicato in anagrafica, per sapere l'andamento della vendita
dei prodotti cosmetici durante l'anno.
Innanzitutto posizioniamoci sul tab Dati pivot della statistica che
abbiamo già.
A questo punto dal menù Opzioni selezioniamo la voce Visualizza
SQL.
SELECT Sum(dwarehe.dw_colli) As Colli_cons, Sum(dwarehe.dw_quant)
As Quantita_cons, Sum(dwarehe.dw_colliordi) As Colli_ordinati,
Sum(dwarehe.dw_quantordi) As Quantita_ordinata, Sum(dwarehe.dw_collifatt)
As Colli_fatt, Sum(dwarehe.dw_quantfatt) As Quantita_fatt,
Sum(dwarehe.dw_valore) As Valore_cons, Sum(dwarehe.dw_valoreval) As
Valore_valuta, Sum(dwarehe.dw_valprelist) As Valore_pre_list,
Sum(dwarehe.dw_valordi) As
Valore_ordinato, .... Sum(dwarehe.dw_acaquantordi) As
Quantita_ordinata_aca, Sum(dwarehe.dw_acavalore) As Valore_cons_aca,
Sum(dwarehe.dw_acavalprelist) As Valore_pre_list_aca,
Sum(dwarehe.dw_acavalordi) As Valore_ordinato_aca,
Sum(dwarehe.dw_acavalordiprelist) As Valore_ord_pre_list_aca,
dwarehe.dw_mese as Mese , CASE WHEN anagra.an_descr1 IS NULL THEN '***'
ELSE anagra.an_descr1 + ' - ' + LTRIM(RTRIM(STR(dwarehe.dw_conto))) END AS
Cliente_forn FROM ((dwarehe INNER JOIN artico
ON dwarehe.dw_codart = artico.ar_codart AND dwarehe.codditt =
artico.codditt) INNER JOIN anagra ON dwarehe.dw_conto =
anagra.an_conto AND dwarehe.codditt = anagra.codditt) LEFT JOIN
artroot ON artico.codditt = artroot.codditt AND
artico.ar_codroot = artroot.arr_codroot WHERE dw_scenario = 1 AND dw_tipo
= 'VEN' AND dwarehe.codditt = 'PROVA' AND (anagra.an_codmast = 401 ) GROUP
BY dwarehe.dw_mese, dwarehe.dw_conto, anagra.an_descr1 ORDER BY
dwarehe.dw_mese , anagra.an_descr1
In questo caso notiamo che la tabella dell'archivio deposito DWAREHE è
in join con le tabelle:
Poiché il campo Sesso che dobbiamo aggiungere come dimensione
cliente/fornitore si trova in ANAGRA, possiamo personalizzare il
datawarehouse in modo da ottenere la statistica voluta direttamente dal
programma di gestione scenari, inserendo tutti
i campi necessari a visualizzare la nuova dimensione:
- Progr. campo è la chiave della tabella, deve essere univoco e
per questioni di compatibilità con gli aggiornamenti deve essere
superiore a 20000, decidiamo di attribuirgli il numero 20001;
- Descr. campo rappresenta la descrizione mostrata nelle
dimensioni del datawarehouse, perciò gli attribuiamo il valore
Sesso;
- Scenario dipende dallo scenario in analisi ed è proposto dal
programma;
- Gruppo dobbiamo impostare il valore della nostra dimensione,
poiché il campo da aggiungere Sesso appartiene all'anagrafica,
attribuiamo il valore 1 (1=cliente/fornitore, 2=prodotto 3= periodo
4=documento);
- Flag combo lo impostiamo a No, ovvero il campo non ha
decodifica;
- Cod. tabella rappresenta il nome del campo sul nostro
database composto da nome_tabella.nome_campo, nel nostro caso sarà
anagra.an_sesso;
- Des. tabella rappresenta il nome della decodifica del campo
sul nostro database composto da nome_tabella.nome_campo, in questo caso
non impostiamo nulla;
- Alias è obbligatorio ed indica l'alias da utilizzare nella
query, poiché questo deve essere univoco all'interno della query per
mantenere compatibilità con gli aggiornamenti distribuiti, è consigliato
utilizzare come parte finale dell'alias il codice tb_coddimd, in questo
caso assegnamo il valore Sesso20001;
- Tipo campo indica il tipo del nostro campo, possiamo reperire
il valore visualizzando la struttura della tabella, in questo caso per
ANAGRA il tipo del campo an_sesso è il testo, attribuiamo quindi il
valore Stringa;
Terminato l'inserimento della nuova dimensione dovremmo aver aggiunto
il record indicato.
Ora nella statistica precedente andiamo ad aggiungere la nuova
dimensione creata.
Andando sul dati pivot abbiamo ottenuto la statistica che ci siamo
preposti ovvero il consegnato per mese in base al sesso.
Con l'opzione di registro BSDWQVDA\OPZIONI\GestJoinMov
attivata è possibile aggiungere, nello scenario del ciclo attivo/passivo,
tra l'elenco delle dimensioni anche quelle presenti in MOVMAG e/o MOVORD,
non presenti nell'archivio deposito. Con questa opzione il programma mette
in collegamento nella query con l'archivio deposito anche la riga
corrispondente di MOVORD o di MOVMAG, rendendo così disponibili anche i
campi che non sono ereditati durante la fase di estrazione.
Inserimento di un campo di tipo dato (gruppo
5)
Per inserire un campo di tipo dato basta procedere come nel caso
precedente, ma occorre sapere che il campo verrà totalizzato, ovvero nella
stringa query sql verrà racchiuso dalla clausola sum(), qundi deve
essere di tipo 'Numero' o 'Numero 3' quando viene definito nella gestione
scenari.
Fanno eccezione a questa regola i campi aggiunti che iniziano con le
clausole count(, min(, max( e sum(. In questo modo sarà possibile inserire
campi aggiuntivi del tipo (esempio sullo scenario delle righe CRM):
Che porterà ad esempio ad avere analisi del tipo:
|