martedì 31 ottobre 2017

Distribuzione di frequenza

Quando si contano degli eventi avvenuti ad esempio per ogni cliente, è spesso importante poter calcolare la distribuzione della frequenza degli eventi, in forma aggregata.
Ad esempio: i nostri clienti hanno la facoltà di collegarsi alla nostra rete WiFi con il loro smartphone, vogliamo capire quanti sono i clienti che si collegano tanto, poco e pochissimo e magari capire quale può essere la distribuzione.

Se contiamo gli eventi di collegamento alla rete WiFi per cliente, possiamo avere un elenco di clienti, e per ognuno il numero di connessioni alla rete WiFi.
Ordinando il numero di collegamenti in modalità Z-A vedremo quali sono i clienti che si collegano più spesso, ma l'elenco sarà infinito, perchè ci saranno clienti che si collegano n volte, poi n-1, poi n-2.

Grazie ad una semplice formula possiamo raggruppare velocemente i clienti, ovvero possiamo creare una dimensione di analisi che aggreghi i clienti che fanno parte di una certa fascia, cioè hanno un range di numero di collegamenti comune, e quindi contare quanti clienti appartengono ad una certa fascia di numero di collegamenti.

Nell'ipotesi quindi di avere dall'universo una query che ci fornisce Codice cliente e Numero di connessioni WiFi (magari in un determinato periodo), possiamo creare la dimensione di analisi "Range", ecco la formula:

"Range"
=Se([WiFi Access - Nr of Connection] In ([Customer number])>20;">20";
Se(([WiFi Access - Nr of Connection] In ([Customer number])<=20 E [WiFi Access - Nr of Connection] In ([Customer number])>10);"10-20";
Se(([WiFi Access - Nr of Connection] In ([Customer number])<=10 E [WiFi Access - Nr of Connection] In ([Customer number])>5);"5-10";
[WiFi Access - Nr of Connection] In ([Customer number])
)
)
)

La formula aggrega il numero di collegamenti per singoli cliente e tramite un IF verifica in quale fascia ricade, quindi espone un'etichetta di testo.

Sarà quindi possibile passare dalla tabella di dettaglio riportata sulla sinistra, nell'immagine sotto, alla tabella aggregata di destra e magari fare un grafico se necessario.


Se la metrica che conta i collegamenti (ovvero gli eventi che vogliamo contare) non fosse disponibile nell'universo, ma sono comunque disponibili le informazioni di base, ovvero il Codice del cliente e il Codice dell'evento di collegamento (o il codice dell'evento che vogliamo contare), si può fare una query per estrarrei i due codici e quindi contare gli eventi per ogni cliente, tramite la seguente formula.


"Nr Connessioni"
=Conteggio([Codice collegamento]) In ([Customer number])

Creando una tabella che espone il Codice cliente e il nuovo oggetto che abbiamo appena creato, cioè il Numero di Connesisoni, otterremo per ogni cliente il numero di Connessioni.

Questa formula ci consentirà di avere la stessa tabella riportata nell'immagine in alto a sinistra; non sarà comunque possibile usare la formula dedicata al "Range" riportata sopra, perchè non avendo un conteggio nativo dall'universo, ma avendo fatto il conteggio degli eventi di collegamento dal Report, la formula dedicata al "Range" tenderà ad aggregare i dati, perchè il Conteggio all'interno dell'oggetto "Nr Connessioni" è una funzione di aggregazione.
Sarà possibile ovviare a questo problema pubblicando la tabella come servizio web (bottone destro del mouse sul bordo della tabella). A questo punto, creando un nuovo report, che usa come fonte il servizio web appena creato, sarà possibile ottenere un fornitore dati che ha in ingresso il conteggio già pronto, degli eventi di collegamento per cliente, quindi si potrà creare in questo nuovo report la dimensione "Range" descritta sopra.

lunedì 30 ottobre 2017

Personalizzare l'aspetto del BI Launch Pad

A volte è necessario personalizzare l'aspetto del "BI Launch Pad" (il portale di accesso via web a Business Objects); nella versione XI 3.x la modifica del logo era un'attività semplice e veloce (e questa magari poteva bastare) che si poteva fare dal CMC, tramite le proprietà dell'applicazione "Infoview".

Dalla versione BI 4.x l'attività di personalizzazione del sito è diventata un pò più complessa e richiede degli skill particolari, perchè si basa su file .css, ma a quanto pare sarà mantenuta in questa modalità nelle future versioni.

A tal proposito segnalo questo utilissimo tutorial.