lunedì 25 settembre 2017

Top 100 Oracle Blog

Salve a tutti oggi mi hanno comunicato che come blog siamo al 69° posto sui primi 100 blogs che parlano della tecnologia Oracle.
Se mi date una mano con le visualizzazioni forse riusciamo ad arrivare tra i primi 60 se poi volete risposte su qualche prodotto Oracle in particolare fatemi sapere.





Ciao

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.




    venerdì 15 settembre 2017

    OEMM - Oracle Enterprise Metadata Managment 12c

    Oggi vediamo un prodotto Oracle poco usato ma molto interessante OEMM - Oracle Enterprise Metadata Managment, l'installazione è molto semplice quindi la saltiamo, basti sapere che come molti prodotti oracle è database centrico e quindi necessita di un repository su DB.  Io ho installato la versione per Linux che effettua lo start di TomCat e quindi rende accessibile il prodotto da interfaccia browser sulla porta 11580 con le credenziali di ADMINISTRATOR, lascio a voi scoprire la password...
    Quindi per poter accedere al prodotto occorre effettuare lo start di TomCat lanciando da Linux la shell RestartServerApplication.sh posta nella Home del prodotto, vi consiglio di crearne un'altra per effettuare lo stop di TomCat.


    Per accedere alla home andate sul browser sul link http://fmw12c.localdomain:11580/MM/Explorer mettendo logicamente il vostro dominio.




    A questo punto inseriamo user e pwd ed entriamo:



    Andate in Administrator e scegliete "Metadata Manager" a questo punto siete dentro.



    Per importare i metadati di un qualsiasi prodotto occorre creare un modello, in questo caso occorre andare su "Repository" e scegliere new, 5poi a cercare il corretto repository a cui collegarsi, in questo esempio avendo solo ODI come prodotto con repository mi sono collegato a questo.


    Dovete scegliere "Model" e poi scegliere il corretto repository a cui collegarsi:



    Come si vede abbiamo la possibiltà di collegarci a molti prodotti che hanno un proprio repository ed effettuarne un reverse engine.
    La lista completa la trovate sulla Oracle Enterprise Metadata Management 12c Certification Matrix

    A questo punto possiamo nel mio caso avendo solo ODI scegliere di collegarmi ad ODI ed effettuare il reverse di un progetto. Quindi creo un model TEST  e  configuro "Import Setup" per la connessione al database che contiene il Master/Work Repositry di ODI nel mio caso versione 12.2.2.1.6.


    Attenti a seguire quanto indicato nell'help sulla destra, che cambia da prodotto a prodotto.
    Una volta effettuato l'import a meno di eventuale errori che dovrete risolvere avrete quanto segue:


    Le info presenti nel Master/ Work di ODI che avete deciso di importare.
    A questo punto se per esempio selezionate l'interfaccia, nel mio caso, avrete le informazioni di come è stata costruita e di cosa contiene.




    Se vado sul repository ODI vediamo che il mapping è stato riportato correttamente in OEMM.


    Effettuando anche il Data Flow Overview potrete vedere anche in modalità grafica il mapping.



    Una volta importato il tutto è possibile effettuare analisi di data lineage, impact ecc.




    Su youtube  trovate un'interessante video che vi fa vedere passo passo come utilizzare il prodotto.

    Buon Lavoro... 






    lunedì 29 maggio 2017

    ODI 11g-12c - Groovy Export/Import Scenarios

    Per poter effettuare un export /import di scenari tramite scripts Groovy occorre individuare le corrette classi API SDK da utilizzare.
    • Se si vuole effettuare un export/import smartie, che permette di exportare/importare gli oggetti indicati più tutto ciò che è collegato a questi compresa la topologia senza però poter effettuare alcun controllo su ciò che viene importato si possono utilizzare:
      • oracle.odi.impexp.smartie.ISmartExportService;
      • oracle.odi.impexp.smartie.ISmartExportable;
      • oracle.odi.impexp.smartie.impl.SmartExportServiceImpl;
    •  Se si vuole invece effettuare l'export/import dei singoli oggetti del repository occorre utilizzare le seguenti classi:
      • oracle.odi.impexp.EncodingOptions;
      • oracle.odi.impexp.OdiImportException;
      • oracle.odi.impexp.support.ExportServiceImpl;
      • oracle.odi.impexp.support.ImportServiceImpl;
    Tenete presente che entrambe le tipologie di classi al termine generano un xml contenente le informazioni necessarie per effettuare l'import.
    Occorre tener presente anche la gestione di file di output ed input all'interno del progetto di exp/imp.

    Non vi do altre informazioni relativamente a come implementare il codice in quanto abbastanza banale e semplice, occorre solo fare attenzione che nel caso di import dei singoli oggetti di ODI  occorre seguire la corretta propedeuticità fra i differenti oggetti. Ad esempio se faccio l'export di una intefaccia in fase di import deve esistere il progetto, modello ecc a cui quella interfaccia fa riferimento.
    Altro suggerimento l'export degli oggetti fatelo non per nome ma per ID-Internal o per GUID.


    venerdì 28 aprile 2017

    RDBMS ORACLE - Coverting String Column to row

    Può capitare di avere in una colonna di una tabella dei valori stringa che occorre verticalizzare, ma il problema è che occorre effettuare la verticalizzazione senza utilizzare pl-sql ma solo una query sql.
    Allora uno pensa utilizzaziamo le funzioni di UNPIVOT o PIVOT e no quelle funzionano per inserire i dati in una colonna e nel nostro caso non vanno bene.
    Supponiamo di avere in un campo di una tabella i seguenti valori:

    TEMPLATE             
    -----------------------
    A.A.A_B.D.D           
    A.HH_B.GGG_C.L.L_D.KK.J
    S.S_S.D.D             

    Quello che dobbiamo avere in output è che in corrispondenza degli "_"  verticalizziamo il risultato. Quindi il risultato finale deve essere:

    TEMPLATE             
    -----------------------
    A.A.A
    B.D.D           
    A.HH

    B.GGG
    C.L.L
    D.KK.J
    S.S

    S.D.D             

    Il problema in questo caso è che dobbiamo fare un ciclo in sql per poter splittare il risultato presente nella colonna.
    Come facciamo?
    Di seguito una semplice query che ci permette di ottenere il risultato voluto.

    WITH
       TEST AS (SELECT TEMPLATE ,regexp_count(TEMPLATE, '_') REG_C FROM
                     (SELECT 'A.A.A_B.D.D' TEMPLATE FROM DUAL UNION ALL
                     SELECT 'A.HH_B.GGG_C.L.L_D.KK.J' TEMPLATE FROM DUAL UNION ALL
                     SELECT 'S.S_S.D.D' TEMPLATE FROM DUAL)),
        MX AS (SELECT MAX(REGEXP_COUNT(TEMPLATE, '_'))+1 CC FROM TEST)
    SELECT  STRING_VERTICALE,TEMPLATE_ORIGINALE,REG_C,RN
     FROM
    (
    SELECT  CASE WHEN REG_C>0 THEN
              SUBSTR(regexp_substr(TTEST.TEMPLATE, '[^_]+', 1, MXX.RN), 0, LENGTH(regexp_substr(TTEST.TEMPLATE, '[^_]+', 1, MXX.RN)))
              ELSE TTEST.TEMPLATE  END STRING_VERTICALE,
              TTEST.TEMPLATE TEMPLATE_ORIGINALE,TTEST.REG_C,MXX.RN
    FROM
    (SELECT TEMPLATE, REG_C FROM TEST) TTEST  ,
    (SELECT ROWNUM RN FROM CAT WHERE ROWNUM <=(SELECT CC FROM MX))  MXX
      )
    WHERE STRING_VERTICALE IS NOT NULL;


    Il risultato ottenuto è il seguente:





    venerdì 21 aprile 2017

    OBIEE 12c - Installation Guide on IaaS and repository into DBCS

    Oggi vediamo, in maniera superficiale, l’installazione e la configurazione dei moduli applicativi Oracle BI 12.2.1.2.0 ed in particolare i seguenti moduli:

    • ·         Weblogic Console 
    • ·         Enterprise Manager Console 
    • -         Oracle Business Intelligence 
    • ·         Oracle Business Publisher 
    • ·         Oracle Visual Analyzer

    Occorre come prima cosa scaricarsi il sw dal sito oracle:
    ·         Download del seguente software dal sito Oracle:

    a.     fmw_12.2.1.2.0_bi_linux64_Disk1_1of2.zip
    b.     fmw_12.2.1.2.0_bi_linux64_Disk1_2of2.zip
    c.     fmw_12.2.1.2.0_infrastructure_Disk1_1of1.zip
    d.     jdk-8u121-linux-x64.tar.gz

    A seguito del download occorre effettuare I seguenti macro passi:


    1.     Installazione JDK 
    2.     Installazione Infratruttura BI
    3.     Installazione software BI
    4.     Creazione Repository mediante utility RCU
    5.     Configurazione del dominio BI
    6.     Check Start Processi
    7.     Troubleshooting

    1.    Installazione JDK – Sviluppo / Produzione

    [oracle@localhost01 ODI]$ cp -p jdk-8u121-linux-x64.tar.gz ../../product/java/
    [oracle@localhost01 ODI]$ cd /u01/product/java
    [oracle@localhost01 java]$ ll
    total 178952
    -rw-r--r-- 1 oracle oinstall 183246769 Apr  6 04:14 jdk-8u121-linux-x64.tar.gz
    [oracle@localhost01 java]$ gunzip jdk-8u121-linux-x64.tar.gz
    [oracle@localhost01 java]$ ll
    total 363080
    -rw-r--r-- 1 oracle oinstall 371793920 Apr  6 04:14 jdk-8u121-linux-x64.tar
    [oracle@localhost01 java]$ tar -xvf jdk-8u121-linux-x64.tar
    jdk1.8.0_121/
    jdk1.8.0_121/THIRDPARTYLICENSEREADME-JAVAFX.txt
    jdk1.8.0_121/THIRDPARTYLICENSEREADME.txt
    jdk1.8.0_121/lib/
     
    [oracle@localhost01 java]$ ll jdk1.8.0_121/
    total 25924
    drwxr-xr-x 2 oracle oinstall     4096 Dec 12 19:47 bin
    -r--r--r-- 1 oracle oinstall     3244 Dec 12 19:46 COPYRIGHT
    drwxr-xr-x 4 oracle oinstall     4096 Dec 12 19:46 db
    drwxr-xr-x 3 oracle oinstall     4096 Dec 12 19:46 include
    -rwxr-xr-x 1 oracle oinstall  5094116 Dec 12 15:10 javafx-src.zip
    drwxr-xr-x 5 oracle oinstall     4096 Dec 12 19:46 jre
    drwxr-xr-x 5 oracle oinstall     4096 Dec 12 19:47 lib
    -r--r--r-- 1 oracle oinstall       40 Dec 12 19:46 LICENSE
    drwxr-xr-x 4 oracle oinstall     4096 Dec 12 19:46 man
    -r--r--r-- 1 oracle oinstall      159 Dec 12 19:46 README.html
    -rw-r--r-- 1 oracle oinstall      526 Dec 12 19:46 release
    -rw-r--r-- 1 oracle oinstall 21116095 Dec 12 19:46 src.zip
    -rwxr-xr-x 1 oracle oinstall   110114 Dec 12 15:10 THIRDPARTYLICENSEREADME-JAVAFX.txt
    -r--r--r-- 1 oracle oinstall   177094 Dec 12 19:46 THIRDPARTYLICENSEREADME.txt

    2.    Installazione Infrastruttura BI

    Effettuare l’unzip del software ed eseguirlo, si aprire una GUI che occorrerà seguire fino alla fine.

    unzip -q fmw_12.2.1.0.0_infrastructure_Disk1_1of1.zip

    java -jar fmw_12.2.1.2.0_infrastructure.jar

    3.    Installazione software BI:

    Effettuare l’unzip del software ed eseguirlo, si aprire una GUI che occorrerà seguire fino alla fine.

    unzip -q fmw_12.2.1.0.0_bi_linux64_Disk1_1of2.zip

    unzip -q fmw_12.2.1.0.0_bi_linux64_Disk1_2of2.zip

    ./bi_platform-12.2.1.0.0_linux64.bin

    4.    Creazione Repository mediante utility RCU

    Posizionarsi nella directory

    cd  <fmw_home>/oracle_common/bin
     ./rcu 
    Anche qui una volta startata la GUI eseguire i passi richiesti fino alla fine. Ad un certo punto viene richiesto un prefisso da assegnare agli schema che deve creare sul database, di solito si utilizza DEV per sviluppo, UAT per test e PRD per produzione ma nulla vieta di inserirne uno qualsiasi. La cosa importante è non superare i 30 caratteri nel nome dei vari schema. Verrà richiesta una utenza sysdba poiché verranno creati circa 9 schema con relativi tablespaces di temp e dati.
    Al termine verificando i log avremo:




    5.    Configurazione del dominio BI

    Posizionarsi sulla directory del software BI installato nei passi precedenti ed eseguire lo script

    cd <bi_software>/bi/bin
    ./config.sh

    Anche in questo caso si aprirà una gui da seguire ed in cui inserire le informazioni relativo al nome del dominio e della directory in cui installarlo. Le credenziali di accesso a weblogic ed i riferimenti degli schema creati al passo precedente.
    Al termine dell’installazione vi apparira la configurazione indicata sotto se non ci sono problemi.
    Purtroppo in alcuni casi, come in questo tipo di installazione, alcuni processi non effettueranno lo startup e quindi anche se l’installazione del dominio è avvenuta correttamente. Per sapere come andare a finire l’installazione vedere lo step Troubleshooting.
    Dando per scontato che tutto sia andato bene avremo la seguente configurazione:
    •   CONFIGURAZIONE
    Configure
        Configuration
            Components
                BIEE
                    OBIPS (Port 9507)
                    Cluster controller (Main port 9508, monitor 9509)
                    Java host (Port 9510)
                    Scheduler (Main port 9511, monitor 9512, script 9513)
                BIP
            Domain
                BI Domain Name: bi
                Domains Directory: <FMW_HOME>/user_projects/domains
                Admin server (HTTP port 9500, HTTPS 9501, internal 9504)
                Managed server (HTTP port 9502, HTTPS 9503, internal 9505)
            Database
                Existing schemas
                    Database type: ORACLE
                    Connect string: <DB CONNECTION STRING>
                    Existing RCU prefix: DEV
            Port Management
                Port range
                    Port range start: 9500
                    Port range end: 9999
            Application
                SampleAppLite
                Service Instance Key: ssi
                Service Instance Limit: 1
        Entry points
            WebLogic Console
                http://<hostname>:9500/console
            Fusion Middleware Control
                http:// <hostname>:9500/em
            BI Publisher
                http:// <hostname>:9502/xmlpserver
            BI Analytics
                http:// <hostname>:9502/analytics
            Visual Analyzer
                http:// <hostname>:9502/va


    6.    Check Start Processi

    Per poter procedere allo start dei servizi basta spostarsi nella directory del dominio  
    domains/bi/bitools/bin
    Qui saranno presenti gli script di start, stop e status che permettono di effettuare lo start di tutte le componeti.

    [oracle@localhostdev01 bin]$ ./start.sh
    Starting domain; Using domainHome: /u01/product/fmw122120/BI/BI12/user_projects/domains/bi [...]

    Initializing WebLogic Scripting Tool (WLST) ...

    Welcome to WebLogic Server Administration Scripting Shell

    Type help() for help on available commands

    [...]

    NodeManager already running
    Reading domain...
    /Servers/AdminServer/ListenPort=9500
    Accessing admin server using URL t3://localhostdev01:9500

    AdminServer already running

    Starting all servers ...
    Server bi_server1 not started as already in state (RUNNING)
    Server obiccs1 not started as already in state (RUNNING)
    Starting obis1 (Original State:SHUTDOWN) ...
    Started obis1

    Starting obips1 (Original State:SHUTDOWN) ...
    Started obips1

    Server obijh1 not started as already in state (RUNNING)
    Starting obisch1 (Original State:SHUTDOWN) ...
    Started obisch1


    Finished starting servers

    Status of Domain: /u01/product/fmw122120/BI/BI12/user_projects/domains/bi
    NodeManager (localhostdev01:9506): RUNNING

    Name            Type            Machine                   Status
    ----            ----            -------                   ------
    AdminServer     Server          localhostdev01           RUNNING
    bi_server1      Server          localhostdev01           RUNNING
    obips1          OBIPS           localhostdev01           RUNNING
    obijh1          OBIJH           localhostdev01           RUNNING
    obiccs1         OBICCS          localhostdev01           RUNNING
    obisch1         OBISCH          localhostdev01           RUNNING
    obis1           OBIS            localhostdev01           RUNNING


    7.    Troubleshooting

    A questo punto se ricadiamo nel caso che vi avevo indicato sopra occorrerà mettere mano ad alcuni files di configurazione.
    Però mi spiace non vi dirò quali siano in quanto a questo punto… io che ci sto a fare?

    Buon lavoro e Buon divertimento.