quarta-feira, 14 de dezembro de 2011

SQLDeveloper no Linux (Ubuntu 11.10)

Ao instalar o SQLDeveloper no linux, me deparei com a seguinte mensagem ao tentar executar o mesmo:

Type the full pathname of a J2SE installation (or Ctrl-C to quit), the path will be stored in ~/.sqldeveloper/jdk

Para resolver esse problema basta adicionar a seguinte linha no arquivo sqldeveloper.conf:

SetJavaHome /usr/lib/jvm/java-6-openjdk/

 O caminho pode variar dependendo do java que tiver instalado.





terça-feira, 29 de novembro de 2011

JDeveloper - Configurando um servidor SOA para deploy


Vá até a guia Application Server, clique com o botão direto e acesse New Application Server:



Na janela seguinte selecione a opção Standalone Server para mapear um servidor instalado em qualquer máquina da rede. Se deseja usar o servidor que vem integrado com o JDeveloper utilize a segunda opção:



Informe um nome para a conexão com o servidor. Esse nome será exibido na lista de opções de deploy das aplicações:



Informe o usuário e senha apra acesso ao SOA:



Informe os dados do servidor (host, porta e domínio da instalação). Caso não saiba o nome do domínio, não se preocupe, deixe o padrão e no momento que for testar a conexão será exibido o nome correto. Volte e informe o nome correto:



Teste a conexão. Caso o nome do domínio esteja incorreto será exibido uma mensagem com o nome correto dele:



Finish:



Para fazer o deploy no servidor configurado basta clicar com o direito sobre o projeto -> Deploy:



Selecione a opção Deploy to Application Server:



Essa tela muda em algumas versões do Jdev, basicamente nela se altera a versão que deseja gerar e fazer o deploy do projeto:



Selecione o servidor configurado anteriormente:



Selecione a instância SOA que deseja fazer o deploy bem como a partição na mesma:



Confira as informações e Finish:


sexta-feira, 25 de novembro de 2011

JDeveloper - Criando uma conexão com o banco Sybase

Na guia Database Connections, clique com o botão direito e selecione a opção New Connection:




Selecione a opção Generic JDBC:




Clique no botão Browse:




Será necessário criar uma entrada para a biblioteca de conexão com o Sybase. Clique no botão New:




Clique em Add Entry:




Selecione a biblioteca que será utilizada para conexão com o Sybase. No nosso caso iremos usar a jconn3.jar:




Clique em Ok:



Altere o campo Driver Class para com.sybase.jdbc3.jdbc.SybDriver:



Informe os parâmetros da conexão e faça um teste. Importante informar a URL de conexão de acordo com a biblioteca que foi usada. No nosso exemplo ficaria como a tela abaixo:



Pronto!

quarta-feira, 31 de agosto de 2011

ODI - Integrando um campo CLOB (Oracle) para um campo TEXT (Sybase)

Em integrações onde a origem é uma campo CLOB (Oracle) e o destino é um campo TEXT (Sybase) é comum a ocorrência do erro abaixo:

java.lang.NumberFormatException: For input string: "4294967295"


Para resolver esse problema, basta utilizar a package DBM_LOB do Oracle mapeando o cmapo na interface da seguinte forma:

sys.dbms_lob.substr(CAMPO, sys.dbms_lob.getlength(CAMPO) , 1)

sexta-feira, 27 de maio de 2011

E se os motoristas fossem contratados como profissionais de TI?

Vaga: Motorista
Requerimentos Necessários: Experiência em direção veículos normais e de carga pesada, ônibus e caminhões, micro-ônibus, trens, metrô, escavadeiras, tanks de pequeno e grande porte atualmente utilizados pela OTAN.
Experiência em rally e direção defensiva são obrigatórias!
Experiência em Formula-1 é diferencial.
Conhecimento e experiência em reparos de pistões e motores rotor e Wankel, transmissões manual e automática, sistema de ignição, computadores de bordo, ABS, ABD, GPS e sistema de áudio conhecidos mundialmente – obrigatório!
Experiência com pintura e funilaria são diferenciais.
Os interessados devem ter certificados pela BMW, GM e Bosch, mas os certificados devem ter no máximo 2 anos.
Remuneração: $15-$30/hora, depende do resultado da entrevista.
Formação Obrigatória: Bacharelado em Engenharia.

terça-feira, 1 de março de 2011

ODI - Criando uma Interface Amarela

Interfaces amarelas são interfaces no ODI que o destino não esta nos modelos de dados mapeados na guia Modelos. São interfaces onde o destino são criados no desenvolvimento, adicionando colunas manualmente.

Este tipo de interface serve para casos onde os dados da integração devem ser trabalhados antes de inseridos no destino.

Abaixo seguem os passos para criar uma interface amarela:
O processo de criação é igual a uma interface normal. Em interfaces insira uma nova interface:




Após defina o noma da interface e (isso é fundamental), como não existe um destino mapeado é preciso definir qual a área de testes a ser utilizada. Marque a opção indicada e selecione o esquema lógico. A tabela destino da interface será criada nesse esquema.




Insira as tabelas origens da interface, faça os devidos joins.




Agora vamos ao destino. Selecione o destino, defina o nome ada tabela que será criada e marque o esquema que deseja que a tabela seja criada:




Adicione as colunas que desejar. Para isto basta clicar com o direito no destino e ir em Adicionar uma Coluna:




Após defina o nome da coluna e o tipo de dados que ela vai receber:




Adicione todas as colunas que necessitar e faça os devidos mapeamentos:




Na guia Fluxo, não esqueça de marcar a opção para criar a tabela destino da interface:




Pronto, basta salvar que você terá na sua lista de interfaces uma interface amarela (literalmente):




Para usar a tabela criada pela interface criada, basta arrastar a interface amarela direto para a origem de outra interface:

terça-feira, 22 de fevereiro de 2011

ODI - Gerando senha criptografada

Ao configurar os agentes do ODI, no arquivo odiparams.sh (ou .bat) as senhas do usuário do banco e do ODI ficam criptografadas. Para gerarmos uma senha com a criptografia usada no ODI, basta executarmos o seguinte comando:

Windows
agent.bat encode minhaSenha

Linux
agent.sh encode minhaSenha

Esse comando irá resultar na senha (minhaSenha) criptografada.

Hora do café...

ODI - Chamando um Webservice de um procedure ODI

É possível invocar webservices do ODI, isso não é nenhuma novidade. Mas como fazer através de uma procedure ODI. Abaixo segue o caminho das pedras:

Crie uma procedure ODI:



Adicione um passo novo e nele selecione a tecnologia SunopsisAPI:



A comando utilizado para chamda do webservice consiste em:

URL = Endereço do WS (end-point)
PORT_TYPE = Tipo fornecido pelo webservice o qual define quais mensagens um serviço pode processar por operações
TIMEOUT = Tempo de resposta a chamada
OPERATION = Operação do webservice que deseja invocar
após esse último parâmetro basta colocar o XML com as variáveis utilizadas pela operação selecionada.

Existe mais variáveis na chamada do webservice usando OdiInvokeWebService. A listagem dessas variáveis e seus respectivos detalhes podem ser encontrada na documentação que vem junto com o ODI.

ODI - Listar Interfaces com Tabelas de Origem e Destino

Uma coisa que a algum tempo foi solicitado a minha pessoa foi a listagem de todas as interfaces e as respectivas tabelas de origem e destino de cada uma. Primeira coisa que ouvi: "Vais ter que abrir interface por interface.".
Graças ao SQL não foi preciso. Com o select abaixo é possível conseguir essa listagem em segundos:

select distinct f.pack_name as INTEGRACAO, a.POP_NAME as NOME_INTERFACE, D.TABLE_NAME as TABELA_ORIGEM, C.RES_NAME as TABELA_DESTINO
from SNP_POP a, SNP_POP_CLAUSE B, SNP_TABLE c, SNP_SOURCE_TAB d, SNP_STEP e, SNP_PACKAGE f
where a.I_POP = B.I_POP
and a.I_TABLE = C.I_TABLE
and a.I_POP = D.I_POP
and a.I_POP = E.I_POP
and E.I_PACKAGE = F.I_PACKAGE
order by 1, 2

Lembrando que esse SQL deve ser rodado no repositório de trabalho do ODI.