venerdì 22 settembre 2017

OBIEE 12C : Configure Write-Back in BI 12c

Oggi vediamo come abiltare il Write-Back sulla OBIEE 12c, questa opzione permette di inserire dati su una tabella da web. Si utilizza spesso per inserire dei commenti e permettere a più utenti di effettuare una pseudo chat.
Vediamo di seguito i differenti passaggi, tenendo presente la documentazione a questo link [Configuring for Write Back in Analyses and Dashboards]


La configurazione si compone dei seguenti passi:
  1. Creazione tabella in database
  2. Configurazione OBIEE Server
  3. Configurazione RPD
  4. Configurazione/Creazione Report analisi
  • Creazione Tabella
 Come primo step creiamo su un database una tabella su cui effettuiamo update ed insertdi eventuali  commenti e creiamo anche una sequence che sarà utilizzata per inserire i dati nella chiave della tabella.

CREATE SEQUENCE SEQ_ID INCREMENT BY 1 START WITH 1 MAXVALUE 9999999999999999999999999999999999999999999999 MINVALUE 1 NOCACHE ORDER;

create table  lot_comment
(
iD              NUMBER ,
CREATED_DATE     DATE         ,
UPDATE_DATE     DATE         ,
DASHBOARD_PAGE     VARCHAR2(100),
USER_ID         VARCHAR2(50) ,
USER_NAME         VARCHAR2(100),
FEEDBACK         VARCHAR2(600),
COMMENT_KEY1     VARCHAR2(100),
COMMENT_KEY2     VARCHAR2(100),
COMMENT_KEY3     VARCHAR2(100),
COMMENT_KEY4     VARCHAR2(100),
COMMENT_KEY5     VARCHAR2(100)
);


  •  Configurazione OBIEE Server

Secondo step è la configurazione del server OBIEE e nello specifico occorre fare quanto segue. Verifichiamo il nome del dominio e dove si trova:


[oracle@fmw12c fmw]$ more domain-registry.xml
<?xml version="1.0" encoding="UTF-8"?>
<domain-registry xmlns="http://xmlns.oracle.com/weblogic/domain-registry">
  <domain location="/product/odi/SW122126/obiee122120/bi"/>
</domain-registry>


A questo punto dobbiamo inserire la seguente riga:

<LightWriteback>true</LightWriteback>

nel file instanceconfig.xml, ricordiamoci sempre di fare un backup prima.

[oracle@fmw12c fmw]$ cd /product/odi/SW122126/obiee122120/bi/config/fmwconfig/biconfig/OBIPS
[oracle@fmw12c OBIPS]$ ll
total 88
-rw-r-----. 1 oracle oracle   310 Apr 20 17:21 catalogmanager.logging.properties
-rw-r-----. 1 oracle oracle  5271 Apr 20 17:12 credentialstore.xml
-rw-r-----. 1 oracle oracle  4876 Apr 20 17:12 instanceconfig.xml
-rw-r-----. 1 oracle oracle  7412 Apr 20 17:12 marketingwebexpressions.xml
-rw-r-----. 1 oracle oracle 43659 Apr 20 17:12 toc-template.rtf
-rw-r-----. 1 oracle oracle  9570 Apr 20 17:12 upgradelogtransform.xsl
-rw-r-----. 1 oracle oracle  1489 Apr 20 17:12 userpref_currencies.xml

[oracle@fmw12c OBIPS]$ vi instanceconfig.xml
[oracle@fmw12c OBIPS]$  diff instanceconfig.xml instanceconfig.xml_20170920
5,6d4
<         <DSN>AnalyticsWeb </DSN>
<         <LightWriteback>true</LightWriteback>
7a6
>         <DSN>AnalyticsWeb</DSN>
102,104d100
<         <!-- inserimento x writeback -->
<         <!--LightWriteBack>true</LightWriteBack -->
<         <!-- inserimento x writeback -->
[oracle@fmw12c OBIPS]$ 



Ulteriore step è la creazione di un file in fomato xml che contenga le info di insert/update della tabella che verrà utilizzata dal Write Back.

    <?xml version="1.0" encoding="utf-8" ?>
    <WebMessageTables xmlns:sawm="com.siebel.analytics.web/message/v1">
    <WebMessageTable lang="en-us" system="WriteBack" table="Messages">
       <WebMessage name="TestWriteback">
          <XML>
    <writeBack connectionPool="LOTOMATIC">
    <insert> </insert>
    <update> UPDATE LOT_COMMENT SET FEEDBACK='@2',COMMENT_KEY1='@3' WHERE ID=@1 </update>
    </writeBack>
         </XML>
       </WebMessage>
    </WebMessageTable>

    </WebMessageTables>


    Questo file si deve chiamare "custommessage.xml"  e deve essere posto secondo la documentazione nella directory SDD/components/OBIPS/customMessages dove SDD sta per Singleton Data Directory, nel mio caso

     /product/odi/SW122126/obiee122120/bi/bidata/components/OBIPS/customMessages

     peccato che non funziona ed occorre inserirlo in un'altra directory che se non esiste va creata e dipende dal linguaggio utilizzato sulla OBIEE:

    /product/odi/SW122126/obiee122120/bi/bidata/service_instances/ssi/metadata/content/msgdb/l_en/customMessages/


    • Configurazioni RPD

    Una volta configurato il server passiamo alle modifiche all'rpd.
    Come step iniziale occorre effettuare il check sul database come indicato in figura:



    Poi si effettua l'import della tabella fisica sul repository dececcando la cache:



    Una volta importata la tabella procediamo nel dare i permessi necessari agli utenti per scrivere sul db.
    Ci posizioniamo su "Manage"-"Identity" e settiamo l'esecuzione ad "Allow" sul database, come in figura:


    A questo punto importiamo la tabella sul presentetion:


    E modifichiamo le proprietà delle colonne su cui dobbiamo poter scrivere andando ad abilitare il check "Writeable" su tutti i layer, come in figura.


    A questo punto per ogni colonna soggetta a Write back dare i permessi di modifica ai differenti ruoli o utenti:


    • Configurazione/Creazione Report analisi
    Terminati i passi precedenti salvare e passare alla parte web per la creazione del report e  per la  modifica dei permessi del Write back sull'Administration:


    A questo punto la configurazione è terminata e non resta che creare il report settando i check sulle colonne nei "Criteria" e la tabella su "Results".







    Inseriamo il report nel dashbord e facciamo la prova se tutto funziona.
    Sul database abbiamo la seguente situazione:


    Sul Dashboard appare quanto presente sul DB.


    A questo punto cliccando su Update appaiono i tre tasti inferiori ed è possibile effettuare la modifica del dato:



    Una volta modificato il dato cliccando su Apply e Done la modifica viene eseguita.





    Quanto modificato facendo Apply si applica sul DB.



    Questo è tutto... alcune cose sono state omesse per lasciare a voi il piacere di smanettare e smadonnare se qualche spazio o carattere sporco che finisce nei file xml.

    Alla prossima.




    Nessun commento:

    Posta un commento