giovedì 22 dicembre 2016

JAVA - Portable Java 8 JDK on Windows

Spesso se si è in ambienti protetti, e quando dico protetti significa che non puoi installare nulla sulla macchina che ti hanno messo a disposizione, se devi installare una JDK per far funzionare SQLDeveloper possono sorgere dei problemi.
Per questo oggi vediamo come installare una JDK 8 su Windows partendo dal file di installazione exe.

Ecco di seguito i vari passi:

  1. Download  Java 8 SDK for Windows from Oracle.  Io ho fatto il download di jdk-8u111-windows-x64.exe.
  2. Aprire il .exe con un tool che effettui gli unzip, esempio 7-Zip o altri 
  3. Navigare sotto la directory .rsrc fino a 
      1. ..\Downloads\jdk-8u111-windows-x64.exe\.rsrc\1033\JAVA_CAB10\111\ 
  4. Qui si trova un denominato tools.zip.
  5. Aprirlo e scompattarlo in una directory     ..\Java\jdk1.8.0_111\ estraendone il contenuto
  6. A questo punto una volta estratti tutti i record, poizionarsi nella home della directoy java ed eseguire da una finestra dos il seguente comando:
    • for /R %f in (.\*.pack) do @"%cd%\bin\unpack200" -r -v -l "" "%f" "%~pf%~nf.jar"
  7. Se tutto termina correttamente effettuare per sicurezza un reboot della macchina Windows ed aprire poi SQLDeveloper fornendo il path della directory java.
  8. Fare una prova effettuando un javac -version


 A questo punto avete installato una JDK 8 Portable e funzionante.

lunedì 5 dicembre 2016

ODI 11g-12c - Groovy Come creare un utente ODI ed assegnazione profili

Di seguito due script per la creazione di un utente ODI con relativa assegnazione di profili. Di seguito due versioni una per ODI 11g e una per ODI 12c, la seconda utilizza delle funzioni che possono essere richiamata all'interno di un main.
  • ODI 11g
// Transaction operators:
import oracle.odi.core.persistence.transaction.support.DefaultTransactionDefinition;
import oracle.odi.core.persistence.transaction.ITransactionDefinition;
import oracle.odi.core.persistence.transaction.ITransactionManager;
import oracle.odi.core.persistence.transaction.ITransactionStatus;
// Secutity class:
import oracle.odi.domain.security.finder.IOdiUserFinder
import oracle.odi.domain.security.OdiUserCreationServiceImpl
import oracle.odi.domain.security.OdiUser
import oracle.odi.domain.security.OdiProfile;
import oracle.odi.domain.security.finder.IOdiProfileFinder
// Variabili
def txnDef = new DefaultTransactionDefinition()
def tm = odiInstance.getTransactionManager()
def txnStatus = tm.getTransaction(txnDef)
String  username="PIPPO";
String  pwd="PIPPO1";
String  supervisor="false";
        expirationDate=null;

try {
         odiUser = ((IOdiUserFinder) odiInstance.getTransactionalEntityManager().getFinder(OdiUser.class)).findByName(username);
     
           println("  User              :-->"+odiUser.getName());
           println("  User Note         :-->"+odiUser.getNotes());
           println("  Pwd Date Expire   :-->"+odiUser.getPasswordExpiracyDate());
           println("  Expiracy Date     :-->"+odiUser.getAccountExpiracyDate());
          
           Collection odiUserPro =(odiUser.getOdiProfileList())
            for (Object kk : odiUserPro) {
              OdiProfile odiPro =(OdiProfile)kk ;
              println("  Profile           :-->"+odiPro.getOdiProfileList().getProfileName());
              println("  Profile           :-->"+odiPro.getOdiProfileList().getInternalId());
            }
           
}catch(NullPointerException e_101){

        // obtaining the generic profiles
        genericprofile_connect = odiInstance.getTransactionalEntityManager().getFinder(OdiProfile.class).findByName("CONNECT") ;
        genericprofile_designer = odiInstance.getTransactionalEntityManager().getFinder(OdiProfile.class).findByName("DESIGNER") ;
        genericprofile_topology_admin = odiInstance.getTransactionalEntityManager().getFinder(OdiProfile.class).findByName("TOPOLOGY ADMIN") ;    

        // creating user
    OdiUserCreationServiceImpl service = new OdiUserCreationServiceImpl(odiInstance)
    OdiUser newUser = service.createOdiUser(username, pwd.toCharArray(), supervisor.toBoolean(), expirationDate );

        // adding profiles to the user
        newUser.addOdiProfile(genericprofile_connect);
        newUser.addOdiProfile(genericprofile_designer);
        newUser.addOdiProfile(genericprofile_topology_admin);

        NewodiUser = ((IOdiUserFinder) odiInstance.getTransactionalEntityManager().getFinder(OdiUser.class)).findByName(username);
           println("  User              :-->"+NewodiUser.getName());
           println("  User Note         :-->"+NewodiUser.getNotes());
           println("  Pwd Date Expire   :-->"+NewodiUser.getPasswordExpiracyDate());
           println("  Expiracy Date     :-->"+NewodiUser.getAccountExpiracyDate());
          
 }

tm.commit(txnStatus) 



  • ODI 12c
import oracle.odi.domain.project.finder.IOdiProjectFinder
import oracle.odi.domain.model.finder.IOdiDataStoreFinder
import oracle.odi.domain.project.finder.IOdiFolderFinder
import oracle.odi.domain.project.finder.IOdiKMFinder
import oracle.odi.domain.mapping.finder.IMappingFinder
import oracle.odi.domain.adapter.project.IKnowledgeModule.ProcessingType
import oracle.odi.domain.model.OdiDataStore
import oracle.odi.core.persistence.transaction.support.DefaultTransactionDefinition
import oracle.odi.domain.security.finder.IOdiUserFinder
import oracle.odi.domain.security.OdiUserCreationServiceImpl
import oracle.odi.domain.security.OdiUser
import oracle.odi.core.OdiInstance
import oracle.odi.domain.security.OdiProfile;


// creating  user (Pippo)

def new_user(user, pwd, supervisor ) {
     expirationDate = null

    txnDef    = new DefaultTransactionDefinition()
    tm        = odiInstance.getTransactionManager()
    tme       = odiInstance.getTransactionalEntityManager()
    txnStatus = tm.getTransaction(txnDef)

    // checking if whether user exists
    userf = (IOdiUserFinder) tme.getFinder(OdiUser.class)

    // creating user
    OdiUserCreationServiceImpl service = new OdiUserCreationServiceImpl(odiInstance)
    OdiUser newUser = service.createOdiUser(user, pwd.toCharArray(), supervisor.toBoolean(), expirationDate );
   
    tm.commit(txnStatus)
    return newUser
}

def adding_profiles(username) {

    txnDef    = new DefaultTransactionDefinition()
    tm        = odiInstance.getTransactionManager()
    tme       = odiInstance.getTransactionalEntityManager()
    txnStatus = tm.getTransaction(txnDef)
        
        // finding the user
        user = odiInstance.getTransactionalEntityManager().getFinder(OdiUser.class).findByName(username) ;
        // obtaining the generic profiles
        genericprofile_connect = odiInstance.getTransactionalEntityManager().getFinder(OdiProfile.class).findByName("CONNECT") ;
        genericprofile_designer = odiInstance.getTransactionalEntityManager().getFinder(OdiProfile.class).findByName("DESIGNER") ;
        genericprofile_topology_admin = odiInstance.getTransactionalEntityManager().getFinder(OdiProfile.class).findByName("TOPOLOGY ADMIN") ;
        // adding profiles to the user
        user.addOdiProfile(genericprofile_connect);
        user.addOdiProfile(genericprofile_designer);
        user.addOdiProfile(genericprofile_topology_admin);
    tm.commit(txnStatus)
    return user;
}

//  add odi user "Pippo " and grant profiles like CONNECT, DESIGNER, TOPOLOGY ADMIN
FirstUser1 = new_user("Pippo", "1234abcd5678","false")
FirstUser1Profiles = adding_profiles("Pippo")


Provate e fatemi sapere