Talend 6.0 (e comentários)

A nova versão 6.0 do Talend já está disponível há quase um mês e após ter realizado alguns testes, segue uma pequena lista das mudanças de maior destaque e algumas considerações:

  • Interface com o usuário redesenhada
  • Pesquisa de componentes baseada em descrição e não apenas no nome (ou seja, o usuário não precisa mais saber exatamente o nome do componente que procura, e sim sua característica)
  • Nova funcionalidade para monitoramento uso de memória e CPU dentro do Studio (auxilia a analisar a performance de execução)
  • Componentes para acesso e manipulação no Google Drive, dentre outros diversos componentes focados na nuvem
  • Suporte a Java 8 (Studio)
  • Suporte a driver ODBC removido. Agora a conexão com bases Access é realizada via JDBC. Conexões genéricas ou com SQL Server ainda podem ser realizadas, porém só funcionará com o Java 7

Ponto de Atenção

Devido ao bug TDI-33503 (https://jira.talendforge.org/browse/TDI-33503), não recomendo que seja feita migração em ambientes de produção sem que antes seja solicitado patch para este bug através do canal de suporte.

Conclusão

A nova versão trouxe diversas melhorias principalmente quanto à interface da ferramenta e diversidade de componentes. No que diz respeito à usabilidade, não dá pra deixar de mencionar que o que já era fantástico, ficou muito melhor. O desenvolvimento com o Talend vem se tornando cada vez mais ágil e o que ficou difícil foi para a concorrência em atingir tal estado da arte.

Todavia, assim como em toda nova versão, convém realizar extensivos testes em seu ambiente antes de implantar ou migrar para a mesma. A versão 5.6.1 continua sendo uma ótima opção, tendo em vista que a versão 6.0.1 está prevista para meados deste mês de Setembro.

Referências

Página de Download e Notas de Release
http://www.talend.com/download/talend-open-studio#t4

Notas de release e discussões no fórum oficial
https://www.talendforge.org/forum/viewtopic.php?id=44935

Anúncios

Definição de variáveis via globalMap

Nós já demonstramos como utilizar variáveis de contexto aqui, e como obter melhores resultados utilizando grupos de contexto e contextos de execução aqui. Hoje irei demonstrar o uso de variáveis globais.

Variáveis globais, no Talend, são variáveis armazenadas em um local denominado globalMap. Através do globalMap podemos definir variáveis de basicamente qualquer tipo e em qualquer momento durante a execução de um job. As variáveis globais são definidas seguindo o conceito key/value.

Mas por quê utilizar variáveis globais e não variáveis de contexto? Eis alguns motivos:

– Variáveis globais são dinâmicas, variáveis de contexto devem ser declaradas previamente.

Não é possível declarar variáveis de contexto programaticamente, em tempo de execução. Com as variáveis globais fica fácil definir variáveis em tempo de execução, dando maiores possibilidades ao desenvolvedor.

– Variáveis de contexto são acessíveis “fora” do job.

Quando você define uma variável de contexto, ela tem um comportamento de “parâmetro de execução”, ou seja, quem executa o job pode alterar o conteúdo das variáveis de contexto, podendo assim alterar o comportamento do job.

E quando não declarar/utilizar variáveis via globalMap?

– Quando você precisar de variáveis compartilhadas em todo o repositório.

– Quando o conteúdo pode ou deve ser parametrizado. Por exemplo, alterar o login de acesso a um database, especificar uma data seleção dos dados, etc.

Mão na Massa

Vamos criar um job simples que executa uma query para obter o MAX() de uma coluna e projeta o resultado. Vamos supor que você necessite do maior ID ou a data da última transação armazenada para então executar uma nova query selecionando os dados com o valor obtido anteriormente, por exemplo. Este é um cenário típico em processos de carga incremental.

etl_globalMap

1. No primeiro componente – nomeado “DW” – é executada uma query simples para obter o MAX() de uma coluna;

2. No tSegGlobalVar_1 armazenamos o valor obtido:

etl_globalMap_setGlobalVar

Simples assim, definimos uma variável denominada “MAX_ID” (Key) e atribuímos o valor retornado na query do passo anterior (Value). Observe que row1 é o nome da linha que traz o resultado da query anterior e que ID é o alias da coluna que definimos no schema do componente anterior.

3. No tJava_1 à frente imprimimos o conteúdo da nova variável criada, assim:

System.out.println( (Long) globalMap.get(“MAX_ID”) );

Destaquei em negrito o que realmente importa. Utilizamos o método get() do globalMap para retornar o conteúdo de qualquer variável, passando como argumento o nome da mesma, neste caso “MAX_ID”.

Aqui é importante um detalhe: Como você pode armazenar qualquer tipo de objeto no globalMap, o método get() não tem como “saber” o tipo do retorno da chave (Key) especificada e por isso ele retorna um Object, que é um tipo que “aceita qualquer coisa”. Você precisa especificar o que aquele método está retornando naquele momento e por isso acrescentamos um (Long) antes de mais nada, que é exatamente o mesmo tipo que definimos no schema do primeiro componente onde executamos o select.

4. Por fim selecionamos os dados na query executada no componente “ORACLE” aplicando o mesmo conceito, e então partimos para a carga dos dados. A query fica assim:

“SELECT
*
FROM TABELA_ORIGEM
WHERE ID > ” + (Long)globalMap.get(“MAX_ID”)

Apenas concatenamos a variável à query e voilà!

Um abraço!

Talend Contextualizado

Olá pessoal! Após o sucesso absoluto das Canecas Talend Brasil e depois de muito tempo sem tutoriais iremos falar sobre algo essencial dentro do Talend: variáveis de contexto e contextos de execução. Pegue sua caneca Talend Brasil, tome um café e se prepare – ou caso você ainda não tenha uma, não perca tempo e adquira já!

Variáveis de contexto são variáveis de acesso global dentro de um job, cujo conteúdo pode variar de acordo com o contexto de execução.

No Talend, os Contextos são organizados em três níveis, os quais iremos conferir hoje:

Variáveis de Contexto -> Grupos de Variáveis -> Contextos de Execução

– Variáveis de contexto representam o menor nível na definição de contextos. Podemos entendê-las como variáveis simples, mas que podem armazenar conteúdos diferentes de acordo com o Contexto de Execução.

– Grupos de Variáveis, como o próprio nome sugere, são grupos de variáveis criados para proporcionar maior organização ao projeto, agrupando variáveis correlacionadas (exemplo: variavéis que formam a conexão com um Mysql).

– Contextos de Execução são os contextos em si. Exemplos de contexto podem ser “Produção” e “Homologação“, ou “Servidor A” e “Servidor B“.

Contexto01
Além disso, você pode definir Grupos de Variáveis armazenados em repositório – desta forma você poderá reaproveitar o mesmo conjunto de variáveis em vários jobs.

Para começar, vamos criar um job e definir uma variável de contexto chamada “Servidor“, do tipo String – vá até a aba Contexts e clique no ícone com um “+”:

Contexto02
Agora iremos definir os contextos de execução do job.
Clique em Values as tree ou Values as table na aba Contexts.
Em seguida clique em Configure Contexts… (botão destacado na imagem abaixo):
Contexto03
E então iremos atribuir valores diferentes para cada contexto:
Contexto04
E como acessar as variáveis de contexto?

Simples! Todas as variáveis de contexto são acessadas da mesma forma:

context.NOME_DA_VARIÁVEL

Vamos dar um exemplo: Adicione um componente tJava ao job e acrescente o seguinte código ao mesmo:

System.out.println(context.Servidor);
Contexto05
Na sequência iremos executar o job. Na aba Run, experimente alterar os contextos a cada execução e observe o que acontece!
Contexto06

Agora você já sabe definir variáveis dentro de um job, mas e se você quiser reutilizá-las em outros jobs?

Vamos até a árvore do repositório e criaremos um Grupo de Variáveis, ou Context Group:

Contexto07
Em seguida vamos definir uma Variável de Contexto chamada arquivo:
Contexto08
E então iremos definir os Contextos:
Contexto09

Por fim, atribuímos os valores a cada contexto:

Contexto10

Dê um Finish e pronto.

Para importar o grupo de variáveis criado para dentro do job que estávamos trabalhando, vá até a aba Contexts e selecione o grupo de variáveis a importar, conforme nas imagens abaixo:

Contexto11

Contexto11

Contexto12

E como o Talend associa tudo isso?

Como você deve ter percebido, é possível criar variáveis sem grupos, grupos sem variáveis, contextos sem variáveis… Não há uma “amarração” muito forte entre os três. Essa é uma flexibilidade que pode ajudar mas também confundir.

É importante compreender como variáveis, grupos e contextos são interligados entre si e a resposta mais simples é: através dos contextos.

Você pode ter tantas variáveis e grupos de variáveis dentro de um job quanto forem necessários. Mas sejam eles importados do repositório ou locais, os nomes de seus contextos de execução deverão coincidir – só assim o Talend poderá compreender em qual contexto executar o job. Observe na imagem anterior: tanto a variável local “Servidor” quanto o grupo denominado “Contexto” possuem dois contextos de execução iguais: Default e Desenvolvimento.

Se você importar um grupo de variáveis cujos contextos de execução são “Servidor A” e “Servidor B” e outro grupo de variáveis cujos contextos de execução são “Desenvolvimento” e “Producao”, não haverá como o Talend compreender em qual contexto executar o job, pois ele terá 4 contextos de execução diferentes.

Dica de boas práticas: variáveis de contexto tem acesso global e funcionam como parâmetros dentro de um job. Seus valores podem ser alterados por quem irá executá-lo e por isso tenha cuidado. Quando for preciso declarar variáveis que influenciam no comportamento de um job e não for sua intenção expor isso, opte por utilizar o globalMap, pois variéveis declaradas lá não ficam expostas externamente à modificações. Como declarar variáveis via globalMap ficará para outro dia… 😉

Muitos usos podem ser feitos das variáveis de contexto, o limite é a criatividade e o motivador é a necessidade – como sempre. Você pode utilizá-las como variáveis de controle de fluxo – como elas tem acesso global dentro do job e seu valor pode ser alterado via parâmetro, você pode utilizá-las para modificar os passos de execução de um job.

Até a próxima!

Caneca Talend Brasil

Buscando facilitar suas integrações e garantir aquele cafezinho a cada F6, criamos a Caneca Talend Brasil!

Caneca_Talend_Brasil_Zazzle

 (clique na imagem para ir até a nossa loja)

A caneca Talend Brasil possui diversos formatos, tamanhos e cores disponíveis, que você escolhe durante a compra. Você pode comprar uma para o cafezinho e outra para tomar aquele chopp no happy hour… 🙂

A minha já está aqui:

Caneca_Talend_Brasil

Não perca tempo e peça já a sua na nossa loja da zazzle! (clique na imagem acima ou aqui)

Um abraço e boas integrações!

Retornando valores entre jobs

Neste pequeno tutorial vou demonstrar como retornar valores de jobs “filhos” utilizando o componente tRunJob sem “fluxo de dados”, ou seja, sem utilizar o schema deste componente.

A passagem de parâmetros entre jobs no Talend é feita através de variáveis de contexto. Geralmente os parâmetros do job pai são transferidos para o job filho e quando este precisa retornar algo, são dados cujos metadados são definidos no schema do componente tRunJob. Na forma como foi implementado, o Talend possibilita transferir parâmetros do job pai para o filho através de variáveis de contexto, mas não o contrário. Também não é possível transferir parâmetros entre jobs através do globalMap, pois cada job possui sua própria área de globalMap.

Porém, algumas vezes você pode desejar retornar valores de um job filho que não estão necessariamente em um fluxo de dados. Como fazer isso?

Vamos criar dois jobs de exemplo para demonstrar como retornar valores de subjobs:

Em ambos os jobs, defina uma variável de contexto com tipo Object, vamos chamá-la aqui de SUBJOB_CONTEXT.

pass_param_subjob (1)

Vamos começar pelo job filho. Adicione um componente tJava ao mesmo, e na guia Advanced adicione as seguintes linhas para importar as bibliotecas necessárias:

import java.util.Map;
import java.util.HashMap;

pass_param_subjob (2)

Ainda no componente tJava, na guia Basic, adicione as seguintes linhas:

//Imprime o parâmetro recebido do job pai
System.out.println("param=" + ((Map<String, String>)context.SUBJOB_CONTEXT).get("param"));

//Define uma nova variável, denominada "retVal" e atribui o valor "Ok" à mesma
((Map<String, String>)context.SUBJOB_CONTEXT).put("retVal", "Ok");

pass_param_subjob (3)

O job filho está concluído. Salve.

Agora no job pai, acrescente um componente tJava, importe as mesmas bibliotecas Map e HashMap, conforme no job filho e na guia Basic acrescente as seguintes linhas:

//Instancia um HashMap na variável de contexto definida
context.SUBJOB_CONTEXT = new HashMap<String, String>();

//E então atribui "valor" à uma chave denominada "param" (poderia ter qualquer nome, funciona exatamente como o globalMap)
((Map<String, String>)context.SUBJOB_CONTEXT).put("param", "valor");

pass_param_subjob (6)

Agora arraste o job filho do repositório para o job pai e no campo “Context Param” lembre-se de acrescentar à variável SUBJOB_CONTEXT e atribuir o valor context.SUBJOB_CONTEXT à mesma. Neste exemplo você pode optar também por marcar a opção “Transmit whole context”.

pass_param_subjob (8)

Agora acrescente outro tJava e na guia Basic cole a seguinte linha:

//Imprime o retorno do job filho
 System.out.println("retVal=" + ((Map<String, String>)context.SUBJOB_CONTEXT).get("retVal"));

pass_param_subjob (7)

Ligue os três componentes através da trigger OnSubJobOk.

pass_param_subjob (4)

Execute:

pass_param_subjob (5)

Agora você já viu como é possível retornar valores de jobs filhos utilizando poucas linhas de código. Embora esse seja um exemplo muito simples, é apenas uma porta para várias possibilidades.

Até a próxima!

Fonte: http://bekwam.blogspot.com.br/2011/05/passing-parameters-and-variables-to.html

Lançado o Talend Open Studio 5!

Foi lançada a mais nova versão estável da suite de ferramentas Talend. Dentre as novidades desta versão 5, estão a nova nomenclatura da suite de código aberto, facilitando a percepção do que é pertencente à comunidade de software livre e o que é pertencente à suite comercial.

– Talend Open Studio for Data Integration será agora o nome utilizado para a suite de ETL e integração de dados.
– Talend Open Studio for Data Quality será o nome do anteriormente chamado Open Profiler, a ferramenta de qualidade de dados da Talend.
– Talend Open Studio for MDM será o nome utilizado pelo anteriormente chamado MDM Community Edition, a ferramenta de Master Data Management da Talend.
– Talend Open Studio for ESB será o novo nome do Talend ESB Studio Standard Edition, a ferramenta de ESB baseada nos projetos de integração Apache Software Foundation.

Dentre as novas funcionalidades da versão 5, estão:

Data Integration

– Suporte a Big Data, ampliando o acesso a tecnologia Hadoop com novos componentes para HDFS, Hive e HBAs, para tirar proveito de tecnologias MapReduce sem a complexidade. Novos componentes HDFS de fluxo de dados de entrada e saida HDFS, Aproveitando o poder de processamento do cluster.

– Mapeamento e manuseio de conteúdo XML aprimorado, permitindo a criação de ‘data services’ complexos e transformaão de XML em estruturas relacionais.

Data Quality

– Adição de jobs de demonstração exemplificando soluções comuns para problemas envolvendo qualidade de dados através de profiling, análises, padronizações e correspondências.

– API Google de Geocodificação permitindo a validação de endereços. A API Google irá corrigir endereços e enriquecer os dados com informações de geocodificação, como latitude e longitude.

Master Data Management

– Designer de Fomulários Customizados permitindo aplicação de javascript ou CSS.

– Master Data Search, permitindo pesquisas por todo o hub MDM em menos de um segundo.

– Gerenciador de hierarquia aprimorado, permitindo gerenciamento recursivo e “arrastar e soltar” através dos nós. Através de um clique em um nó será possível visualizar uma visão composta em uma interface única.

– Importação e exportação de dados através da interface web, permitindo ao usuário importar ou exportar dados para o hub.

Enterprise Service Bus

– IDE Eclipse, agora para Web services, aplicações REST, ‘data services’ e ‘messaging routes’; Permitindo desenvolver, construir, testar e publicar web services java seguros, aplicações REST, ‘data services’ e rotas de mensagens através de um ambiente unificado e de fácil uso.

– Console de deploy, permitindo um rápido deploy de web services, data services, aplicações REST e rotas de mensagens – tudo através de um console centralizado pelo próprio navegador/browser.

Para obter o Talend em sua nova versão, vá até a página de download no site da Talend clicando aqui.

Web Service (com e sem SSL) para PostgreSQL

Objetivos

Neste artigo você aprederá a:

  1. Acessa web services com e sem certificação digital;
  2. Extrair dados de um web service e carregá-los em uma tabela no PostgreSQL.

Introdução

A utilização de web services é cada vez mais comum nos dias de hoje, pois a garantia da integração entre sistemas com plataformas totalmente distintas minimiza principalmente o grau de invasividade nos sistemas que precisam ser integrados.

Utilizaremos nesse artigo a operação ConsultaDadosFilhos do web service do Sistema de Informações Organizacionais do Governo – SIORG -.

O processo de carga desenvolvido no decorrer deste artigo será sem o uso de SSL, mas explicarei em um tópico extra como consumir um web service que necessite de certificação digital no Talend.

Conhecendo o Web Service

  • Nessa interface você pode executar testes do serviço, porém com interface gráfica.
    • Exemplo: Passar o valor 2981 no parâmetro de entrada da operação ( pCo_Orgao: 2981). Isso te retornará todos os órgãos vinculados ao Ministério do Planejamento.

Processo de Carga Parte 1 – Extração dos Dados do Web Service

Nessa seção descreverei como será o processo de carga para a extração dos dados da operação ConsultaDadosFilhos do web service do SIORG. Para isso, detalharei passo a passo a configuração de cada componente do processo.

Nota: Para criar o job, selecione com o botão direito a opção “Job Designs -> Create job” e dê um nome ao job, o chamarei de “TalendBrasil_WS_MySQL”.

tRowGenerator

  • Na paleta de componentes clique na pasta Misc, selecione e arraste para o job o componente tRowGenerator. Com este componente iremos gerar o cabeçalho de XML padrão automaticamente.

  • Clique duas vezes no componente para que o Editor do RowGenerator apareça.
  • (1*) Na janela de edição clique no botão adicionar e altere o nome da coluna para “CabecalhoXML”. O tipo dessa coluna deve permanecer sendo String.
  • (2*) Na coluna Functions altere a função para ‘ … ‘  (última opção da lista de funções)
  • (3*) No campo Number of Rows for RowGenerator coloque o valor “1”, para que o nosso cabeçalho seja gerado apenas uma vez.
  • (4*) Na parte inferior da janela clique na aba Function parameters e inclua o conteúdo abaixo na coluna Valor.
    • Valor: “<?xml version=\”1.0\” encoding=\”ISO-8859-15\”?>”

tWebServiceInput

  • Na paleta de componentes clique na pasta Internet, selecione e arraste para o job o componente tWebServiceInput, esse é o componente padrão para chamadas a Web Services.

  • Clique duas vezes no componente para configurá-lo.
  • No campo Method Name inclua o nome da operação que iremos invocar. Nesse caso, a operação chamasse “ConsultaDadosFilhos” .
  • Na última parte serão inseridos os parâmetros necessários para fazer a chamada ao serviço, essa operação tem apenas um parâmetro de entrada, então clique 1 vez no botão adicionar  e coloque o valor 2981 entre aspas “”.

  • Feito isso, vamos criar o esquema que irá armazenar os dados provenientes do Web Service. Clique na opção Edit schema e adicione 1 coluna, dê o nome de ConsultaDadosFilhos, ao finalizar aparecerá uma janela perguntando se você deseja propagar as mudanças, clique em Yes.

tUnite

  • Na paleta de componentes clique na pasta Orchestration, selecione e arraste para o job o componente tUnite, esse componente irá juntar o “Cabeçalho XML” com os dados de retorno da consulta ao web service.

  • Clique com o botão direito em cima do componente tRowGenerator e selecine a opção Row -> Main, arrastando a seta para o componenente tUnite .
  • Clique com o botão direito em cima do componente tWebServiceInput e selecine a opção Row -> Main, arrastando a seta para o componenente tUnite .

tFileOutputDelimeted

  • Na paleta de componentes clique na pasta File -> Output, selecione e arraste para o job o componente tFileOutputDelimeted, esse será nosso componente de saída temporária dos dados do web service. Esse procedimento se dá, pois precisamos mapear os “nós” do XML e através desse passo intermediário conseguimos realizar essa tarefa com maior facilidade e clareza.

  • Clique com o botão direito em cima do componente tUnite e selecine a opção Row -> Main, arrastando a seta para o componenente tFileOutputDelimited.
  • Clique duas vezes no componente para configurá-lo.
  • No campo File Name retire o conteúdo padrão e inclua o caminho onde você deseja salvar o arquivo. A extensão do arquivo tem que ser .xml
    • Exemplo: “C:/Users/yasmim/Desktop/TalendBrasil_WS_MySQL/consulta_dados_filhos.xml

A figura abaixo mostra como está o job até momento.

Feito isso vá até a aba Run(Job) ou simplesmente pressione F6 para executar o job e verifique se o arquivo .xml está sendo gerado com sucesso.

Processo de Carga Parte 2 – Carga dos Dados no PostgreSQL

Nessa seção descreverei como será o processo de carga dos dados no banco de dados PostgreSQL. Para isso, detalharei passo a passo a configuração de cada componente do processo.

tFileInputXML

  • Na paleta de componentes clique na pasta File -> Input, selecione e arraste para o job o componente tFileInputXML. Este é o componente que iremos utilizar como entrada para o arquivo XML gerado no Processo de Carga Parte 1.

  • Clique com o botão direito em cima do componente tFileOutputDelimited e selecine a opção Trigger -> OnComponenteOK, arrastando a seta para o componenente tFileInputXML.
  • Clique duas vezes no componente para configurá-lo.
  • No campo Filename/InputStream retire o conteúdo padrão e inclua o caminho onde você  salvou o arquivo .xml.
    • Exemplo: “C:/Users/yasmim/Desktop/TalendBrasil_WS_MySQL/consulta_dados_filhos.xml
  • No campo Loop XPath query retire o conteúdo padrão e inclua o valor abaixo. Nesse campo deve-se mapear qual o nó do XML que daremos o looping.
    • Exemplo: “/Filhos/DadosFilho”
  • Clique em Edit Schema para configurar os campos de saída para o banco.
  • Clique no botão adicionar e inclua 4 (quatro) colunas. Com os nomes abaixo.
    • Co_orgao
    • No_orgao
    • Sg_orgao
    • Da_lei_criacao

Nota: Todos os campos listados acima devem ficar com o tipo de dado String e com os respectivos tamanhos: 6, 56, 6 e 10.

  • Após esse passo preeencha os valores da coluna XPath query conforme apresentado abaixo.
    • “Co_orgao”
    • “No_orgao”
    • “Sg_orgao”
    • “Da_lei_criacao”

tPostgresqlOutput

  • Na paleta de componentes clique na pasta Base de Dados-> PostgreSQL , selecione e arraste para o job o componente tPostgresqlOutput. Este é o componente que iremos utilizar para fazer a carga dos dados extraídos do web service no banco de dados PostgreSQL.

  • Clique com o botão direito em cima do componente tFileInputXML e selecine a opção Row-> Main, arrastando a seta para o componenente tPostgresqlOutput.
  • Clique duas vezes no componente para configurá-lo.
  • Preencha os campos do componente conforme o detalhamento abaixo.
  1. Login: usuário do banco de dados;
  2. Password: senha do banco de dados;
  3. Server: IP do banco (se a conexão for local, pode usar localhost);
  4. Port: porta do banco de dados (já vem preenchido por padrão 5432, caso sua conexão seja em outra porta basta alterar);
  5. DataBase: nome da base de dados. Darei o nome de “Orgaos”;
  6. Schema: nome do schema do banco de dados. Esse parâmetro é opcional. Caso você não tenha criado um schema novo para a base de dados use o schema public.
  • No campo Action on table selecione a opção “Drop table if exists and create”.
  • No campo Action on data selecione a opção “Insert”.

Após esses passos vá até a aba Run(Job) ou simplesmente pressione F6 para executar o job e verique se os dados extraídos do web service foram carregados no banco de dados PostgreSQL.

Nota: Caso uma mensagem de erro apareça ao executar o job, verifique se os parâmetros de acesso ao PostgreSQL informados estão corretos e tente novamente.

Acessando Web Services com Certificação Digital

Para acessar um web service com SSL no Talend, existe um procedimento que deve ser realizado na máquina virtual java. Nessa seção descreverei tal procedimento.

Nota: Os caracteres <> devem só servem como destaque para o que deve ser alterado, ou seja, eles não fazem parte dos nomes e nem dos comando apresentados.

Criação da KeyStore

  • De posse do certificado digital do web service que deseje acessar (arquivo .cer ou .crt) salve o mesmo na máquina que irá executar o processo de carga.
    • Exemplo: c:\<nome_certificado>.cer
  • Acesse o prompt de comando do seu sistema operacional e execute o comando abaixo na pasta do java (..\jdk1.6.0_26\bin).
    • Comando 1: keytool -genkey -v -alias server -keyalg RSA -keystore <caminho do arquivo .cer> “CN=<url do site do certificado>,OU=Equipamento A1,O=ICP-Brasil,C=BR” -storepass password -keypass password
    • Comando 2: keytool -import -v -file <caminho do arquivo .cer> -keystore <caminho do arquivo .keystore> -storepass password
  • Copiar o arquivo ‘<nome_certificado>.cer’ para a pasta ..\jdk1.6.0_26\jre\lib\security
  • Acesse o prompt de comando do seu sistema operacional e execute o comando abaixo na pasta do java (..\jdk1.6.0_26\bin).
    • Comando 1: keytool -importcert -trustcacerts -alias <ALIAS> -keystore ..\jre\lib\security\cacerts -file ..\jre\lib\security\<nome_certificado>.cer
    • Comando 2: Informar a senha, por padrão é ‘changeit’
    • Você vai então receber a seguinte mensagem se tudo for bem sucedido – “Certificado foi adicionado ao keystore”.

Nota:  A pasta ‘jdk1.6.0_26’ muda de acordo com a versão do JDK que tiver instalado na máquina

Após esse procedimento, o certificado estará com o keystore importado e já poderemos ir para o Talend.

tWebServiceInput

  • Na paleta de componentes clique na pasta Internet, selecione e arraste para o job o componente tWebServiceInput, esse é o componente padrão para chamadas a Web Services.
  • Clique duas vezes no componente para configurá-lo.
  • No campo WSDL retire o conteúdo padrão e inclua o endereço do wsdl do web service que com certificado que deseje acessar.
  • No campo Method Name inclua o nome da operação que deseje  invocar.
    • Exemplo: “Operacao_com_Certificacao”
  • Selecione a opção “Trust server with SSL (Use tSetKeystore rather than this option”
  • No campo TrustStore file inclua o caminho do arquivo .keystore
    • Exemplo: “C:/certificado.keystore”
  • No campo TrustStore password inclua a senha caso possua. Caso contrário, deixe o valor default “password”
  • Na última parte insira os parâmetros necessários para fazer a chamada ao serviço.

  • Feito isso,  criae o esquema que irá armazenar os dados provenientes do Web Service. Clique na opção Edit schema e adicione 1 coluna, dê o nome da saida , ao finalizar aparecerá uma janela perguntando se você deseja propagar as mudanças, clique em Yes.

Conclusão

Bom, espero que com esse artigo você seja capaz de acessar qualquer tipo de web service com o Talend, seja com certificação digital ou não.

Um grande abraço a todos e até a próxima.