June 2019

Novo mercado estratégico: chegámos à Suécia!

A Xpand IT é uma empresa portuguesa, com capital português, e a dimensão nacional que já atingiu é, de facto, extraordinária. Terminou o ano de 2018 com um crescimento de 45% e uma faturação a rondar os 15 milhões de euros, o que levou à distinção alcançada no ano de 2019 no Ranking do Financial Times (FT1000: Europe’s Fastest Growing Companies). A Xpand IT foi uma das três tecnológicas portuguesas a estar presente neste importante Ranking.

No entanto, na Xpand IT queremos crescer sempre mais. Queremos partilhar o nosso expertise pelos quatro cantos do mundo e levar um pouco da nossa cultura a todos os nossos clientes. E a verdade é que a participação internacional da Xpand IT tem também crescido substancialmente, tendo fechado o ano anterior com um total de 46,5% das suas receitas provenientes de clientes internacionais.

Este crescimento tem sido sustentado por dois fortes eixos de atuação: a exploração de mercados estratégicos, como por exemplo, Alemanha e Reino Unido (onde já temos uma subsidiária e escritório) mas também pela forte alavancagem a nível de produto que se tem registado. O Xray e o Xporter, ambos bastante associados ao ecossistema Atlassian, são utilizados por mais de 5000 clientes, em mais de 90 países! Para este ano estão previstos lançamentos de novos produtos, em áreas como Inteligência Artificial (Digital Xperience) ou Business Intelligence.

Este ano, a estratégia de internacionalização da Xpand IT passa por apostar em novos mercados estratégicos na Europa: os países nórdicos. A Suécia será o primeiro país a estar sob foco, mas o objetivo é alargar as iniciativas aos restantes: Noruega, Dinamarca e Finlândia.

Esta aposta prende-se com o facto de já existirem diversas iniciativas comerciais neste mercado, e pelo incentivo de alguns dos nossos parceiros, como a Microsoft, Hitachi Vantara ou Cloudera, que já se encontram bem estabelecidos em países como a Suécia. Para além disso, o facto de as barreiras culturais e diferença horária não serem significativas, faz com que esta seja uma das nossas apostas para o ano de 2019.

Para Paulo Lopes, CEO & Senior Partner da Xpand IT: “Temos um enorme orgulho no crescimento que a empresa tem alcançado nos últimos anos e a nossa expectativa é que este sucesso se continue a verificar. O processo de internacionalização da Xpand IT já conta com alguns anos, sendo estamos a entrar numa 2ª fase, onde iremos apostar mais fortemente novos mercados onde sabemos que a nossa expertise tecnológica, aliada a uma equipa e cultura únicas, podem realmente fazer a diferença. Acreditamos que a Suécia é a aposta certa para a entrada no mercado dos países nórdicos. Em breve iremos dar mais novidades sobre esta aposta!…”

Ana LamelasNovo mercado estratégico: chegámos à Suécia!
read more

A new strategic market: we’ve arrived in Sweden!

Xpand IT is a Portuguese company supported by Portuguese investment, and it is extraordinary how quickly we have expanded within Portugal. At the end of 2018, the company realised a growth of 45% and a revenue of around 15 million euros, which led Xpand IT to be distinguished in the Financial Times’ Ranking of 2019 (FT1000: Europe’s Fastest Growing Companies). Xpand IT was one of just three Portuguese technology companies to be featured in this ranking.

However, Xpand IT always seeks to grow further. We want to share our expertise with all four corners of the world and deliver a little bit of our culture to all our customers. It is true that Xpand IT’s international involvement has been increasing substantially, with 46.5% of our revenue coming from international customers at the end of last year.

This growth has been supported by two main focal points: exploring strategic markets such as Germany and the United Kingdom (where we now have a branch and an office), and strong leverage of the product we register. Xray and Xporter, both associated with Atlassian ecosystems, are used by more than 5 thousand customers in more than 90 countries! And new products are expected this year, in both artificial intelligence (Digital Xperience) and business intelligence.

This year, Xpand IT’s internationalisation strategy is to invest in new strategic markets in Europe: namely the Nordic countries. Sweden will be the first country focused on, but the goal is to expand our initiatives to the rest of them: Norway, Denmark and Finland.

There are already various commercial initiatives in this market, and we can count on support from partners such as Microsoft, Hitachi Vantara and Cloudera, all already well-established in countries like Sweden. Moreover, cultural barriers and different time zones do not represent a significant impact, which make this strategy an attractive investment prospect for 2019.

In the words of Paulo Lopes, CEO & Senior Partner at Xpand IT: “We are extremely proud of the growth the company has experienced in recent years and expect this success to keep on going. Xpand IT has been undergoing its internationalisation process for a few years now. However, we are presently entering a 2nd phase, where we will actively invest in new markets where we know that our technological expertise paired with a unique team and unique culture can definitely make a difference. We believe that Sweden makes the right starting point for investment in the Nordic market. Soon we will be able to give you even more good news about this project!…”

Ana LamelasA new strategic market: we’ve arrived in Sweden!
read more

Zwoox – Simplifica a ingestão de dados

O Zwoox é uma ferramenta de ingestão de dados, desenvolvida pela Xpand IT, e que facilita a importação e estruturação de dados para um cluster Hadoop.

Esta é uma ferramenta altamente escalável dado que se encontra totalmente integrada no Cloudera Enterprise Data Hub e tira total proveito de várias tecnologias Hadoop, como Spark, Hbase e Kafka. Com o Zwoox a necessidade de codificar data pipelines “à mão” é eliminada, qualquer que seja a fonte de dados.

Uma das maiores vantagens do Zwoox é o facto de acelerar a ingestão de dados, oferecendo inúmeras opções no que à importação de dados diz respeito permitindo inclusive replicar RDBMS DML em near real-time para estruturas de dados Hadoop.

Apesar de existirem várias ferramentas que permitem a importação de dados para clusters Hadoop, só com o Zwoox é possível efetuar esta importação de forma acessível, eficiente e altamente escalável, persistindo os dados em HDFS (com tabelas Hive) ou Kudu.

Algumas das possibilidades que o Zwoox oferece:

  • Automação de particionamento em HDFS;
  • Tradução de data types;
  • Carregamento total ou por deltas;
  • Tabelas de audit (com full history) sem impactos na performance;
  • Derivação de novas colunas de funções pré-definidas ou código “pluggable”;
  • Integração operacional com o Cloudera Manager.

Esta ferramenta encontra-se disponível no Cloudera Solutions Center e estará brevemente no site da Xpand IT. Por enquanto, pode também consultar o documento informativo sobre o produto.

Se precisa de saber mais sobre o Zwoox ou sobre ingestão de dados, contacte-nos.

Ana LamelasZwoox – Simplifica a ingestão de dados
read more

Zwoox – Simplify your Data Ingestion

Zwoox is a data ingestion tool, developed by Xpand IT, that facilitates data imports and structuring into a Hadoop cluster.

This tool is highly scalable, thanks to its complete integration with Cloudera Enterprise Data Hub, and takes full advantage of several different Hadoop technologies, such as Spark, Hbase and Kafka. Zwoox eliminates the need to encode data pipelines ‘by hand’, regardless of the data source.

One of Zwoox’s biggest advantages is its capability to accelerate data ingestions, offering numerous options for data import and allowing real-time RDBMS DML replications for Hadoop data structures.

Despite the number of different tools that allow data import for Hadoop clusters, only Zwoox is capable of executing the import in an accessible, efficient and highly scalable manner, maintaining data in HDFS (with Hive tables) or Kudu.

Some of the possibilities offered by Zwoox:

  • Automation and partitioning in HDFS;
  • Translation of data types;
  • Full or delta upload;
  • Audit charts (with full history) without impacting on performance;
  • Derivation of new columns with pre-defined functions or “pluggable” code;
  • Operational integration with Cloudera Manager.

This tool is available on Cloudera Solutions Center and will be available soon on Xpand IT’s website. Meanwhile, you can access our informative document. If you’d like to learn more about Zwoox or data ingestion, please contact us.

Ana LamelasZwoox – Simplify your Data Ingestion
read more

Tecnologia biométrica de reconhecimento

Hoje, mais do que nunca, é fundamental que os utilizadores se sintam seguros ao utilizar um serviço, uma aplicação móvel ou a efetuar a inscrição num website. A prioridade para estes utilizadores é saber que os seus dados estarão, de facto, protegidos. Desta forma, a tecnologia biométrica de reconhecimento desempenha um papel fundamental, já que é uma das formas mais seguras e eficazes de autenticar o acesso dos utilizadores aos seus dispositivos móveis, às suas contas pessoais de e-mail ou mesmo às suas contas bancárias online.

A biometria tem-se tornado, então, uma das formas mais rápidas, seguras e eficazes de oferecer proteção aos indivíduos, não só por ser um dos requisitos de autenticação de cada pessoa enquanto cidadão de um país – ou não fosse a impressão digital um dos dados recolhidos e armazenados para efeitos de documentação legal – como por ser a maneira mais casual (e fiável) de proteger os nossos telemóveis. As vantagens de utilização de tecnologia biométrica de reconhecimento são, então, a eficácia, a precisão, a conveniência e a escalabilidade.

Nas TI, a biometria encontra-se maioritariamente ligada à verificação da identidade de alguém, através das suas características físicas ou comportamentais – impressão digital, reconhecimento facial, reconhecimento de voz ou mesmo a identificação da retina/ íris. Refere-se, então, a tecnologias que medem e analisam as características do corpo humano como forma de permitir ou negar acessos.

Mas como funciona esta identificação no backend? É utilizado um software que identifica pontos específicos dos dados apresentados, que são como pontos de partida. Estes pontos de partida são processados e transportados até uma base de dados que, por sua vez, utiliza um algoritmo que converte as informações num valor numérico. É este valor que irá ser comparado com a entrada biométrica registada do utilizador que o scanner detetou, e a sua autenticação é aprovada ou negada, consoante exista correspondência ou não.

O processo de identificação pode ser efetuado de duas formas: comparação de um-valor-para- muitos ou de um-valor-para-um. O processo de identificação de um-valor-para-muitos acontece quando uma amostra de um utilizador é submetida num sistema e comparada com amostras de outros indivíduos; já o processo de autenticação de um-valor-para-um funciona com apenas um utilizador, comparando os dados fornecidos com os dados anteriormente submetidos – como acontece  nos nossos dispositivos móveis.

Existem inúmeros tipos de leitura biométrica, sendo que estes são os mais comuns:

  1. Impressão digital (uma das tecnologias biométricas de identificação mais utilizadas e mais económicas, já que apresenta um grau de precisão bastante considerável. Na verificação de uma impressão são analisados vários pontos do dedo, como terminações e arcos únicos). Exemplos: aplicações Médis, MBWay ou Revolut;
  2. Reconhecimento facial (através de uma imagem facial do utilizador, constituída por vários pontos de identificação da face, é possível definir distâncias entre olhos e nariz, por exemplo, a estrutura óssea e os contornos de cada componente do rosto. Esta forma de leitura pode apresentar falhas consoante o utilizador tenha óculos de sol ou barba). Exemplo: Face ID da Apple;
  3. Reconhecimento de voz (a identificação é feita através de uma análise aos padrões de voz de cada indivíduo, juntando uma combinação entre fatores físicos e comportamentais. No entanto, não é das formas de reconhecimento mais fiáveis). Exemplos: Siri, da Apple, ou Alexa, da Amazon;
  4. Identificação pela íris/ pela retina (menos utilizada, a identificação pela íris/ retina acontece com o armazenamento dos contornos e padrões geométricos existentes – no caso da íris – e com a identificação de um indivíduo através de vasos sanguíneos no fundo dos olhos – no caso da retina. A garantia de fiabilidade é muito elevada, mas o custo é muito alto, o que faz com que não seja utilizada de forma massiva). Leia este artigo sobre identificação de identidade no setor da banca;
  5. Estilo de escrita (biometria comportamental baseada no tipo de escrita) (por fim, outra forma de autenticar um utilizador, é através da sua escrita – por exemplo, uma assinatura – já que a pressão no papel, a velocidade de escrita ou os movimentos exercidos no ar são muito difíceis de imitar. Esta é uma forma de autenticação mais antiga, utilizada fundamentalmente pela banca). Veja o artigo sobre a Read API, Microsoft Azure.
Ana LamelasTecnologia biométrica de reconhecimento
read more

Biometric technology for recognition

Nowadays it is more essential than ever to ensure that users feel safe when using a service, a mobile app and when registering on a website. The user’s priority is to know that their data is properly protected. And consequently biometric technology for recognition plays an increasingly crucial role as one of the safest and most efficient ways to authenticate user access to mobile devices, personal email accounts and even online bank accounts.

Biometrics has become one of the fastest, safest and most efficient ways to provide protection to individuals, not only because it is a requirement of authentication for each person as a citizen of a country – considering that fingerprints are some of the data collected and stored for legal purposes and documents – but also because it is the most casual (and reliable) way to protect our cellphones. The advantages of using biometric technology for recognition are efficiency, precision, convenience and scalability.

In IT, biometrics is primarily found connected to identity verification by using a person’s physical or behavioral features – fingerprints, facial recognition, voice recognition and even retina/iris recognition. We are referring to technologies that measure and analyze features of the human body as a way to allow or deny access.

But how does this identification work in the backend? Software that recognises specific points of presented data as starting points. These starting points are then processed and transported to a database which, in turn, uses an algorithm that converts information into a numeric value. It is this value that is compared to a user’s registered biometric entry, the scanner detected and the user’s authentication approved or denied, depending on whether there is a match or not.

The process of recognition can be carried out in two ways: comparing one value to others or comparing one value to another. The process of recognition of one value to others happens when the sample of a user is submitted to a system and compared to samples of other individuals; while the process of authentication of one value to another works with only one user, comparing the provided data to previously submitted data – as with our mobile devices.

There are countless biometric readings, these being some of the most common:

  1. Fingerprinting (one of the most used, economical biometric technologies for recognition, since it has a significant degree of accuracy. In this type of verification, various points of a finger are analysed, such as endings and unique arches). Examples: apps from Médis, MBWay or Revolut;
  2. Facial recognition using a facial image of the user, composed of various identification points on the face, with the ability to define the distance between the eyes and the nose, for example, and the bone structure and lines of each feature of the face. This reading has some percentage of failure, depending on whether the user has a beard or sunglasses. Examples: Apple’s Face ID;
  3. Voice recognition (recognition is carried out from an analysis of the vocal patterns of an individual, adding a combination of physical and behavioral factors). However, it is not of the most reliable method of recognition). Examples: Siri, from Apple, or Alexa, from Amazon;
  4. Retina/iris recognition (being the least used, retina/iris recognition works by storing lines and geometric patterns – in the case of the iris – and with the blood vessels in the eyes – in the case of the retina. Reliability is very high, but so are the costs, which makes this method of recognition less often used). Read this article on identity recognition in the banking industry;
  5. Writing style (behavioural biometrics based on writing style) (lastly, a way to authenticate a user through their writing – for example, a signature – since the pressure on the paper, the speed of the writing and the movements in the air are very difficult to copy. This is one of the oldest authentication tools, used mainly in the banking industry). Read the article on Read API, Microsoft Azure.
Ana LamelasBiometric technology for recognition
read more

Novo ciclo: a primeira edição do evento DnA 2019

O mês de maio ficou marcado na Xpand IT como o início de um novo ciclo: a primeira edição do evento DnA (Data ‘n’ Analytics 2019). Sob o mote “Building a Smarter Future”, esta nova abordagem quis mostrar como as diferentes áreas tecnológicas e de expertise, como Big Data, Data Science, Digital Xperience ou Business Intelligence, conseguem trabalhar de forma integrada, gerando efetivas mais-valias para as empresas.

A keynote da manhã focou-se, essencialmente, em transmitir uma visão coesa entre as diferentes áreas, demonstrando aos mais de 200 participantes que vivemos num mundo em que tudo à nossa volta gera dados e que essa é, de facto, uma oportunidade de ouro para conhecer melhor os seus clientes, propondo-lhes soluções mais adequadas para os desafios que enfrentam.

No entanto, essa oportunidade só existe se a soubermos criar, se soubermos potenciá-la, e Sérgio Viana, Digital Xperience Lead, mostrou à plateia de que forma o nosso expertise tem ajudado dezenas de empresas a cultivar essas mesmas oportunidades, apostando em construir uma cultura digital. Mas os dados gerados, se não foram extraídos e analisados de forma adequada, não passam disso mesmo: dados. Apenas com análises aprofundadas, com o software correto, e de acordo com as necessidades de cada decisor de negócio, é possível extrair todas as informações necessárias para que as decisões possam ser cada vez melhores e mais sustentadas. Todo este processo foi assegurado por Ricardo Pires, Business Intelligence Lead, que demonstrou como efetuá-lo de forma simples, mas eficaz. Por último, mas não menos importante, para que as análises possam ser efetuadas no momento certo, e a sustentar todos os processos de dados, são necessárias estruturas de Big Data que assegurem o volume desses dados, uma velocidade adequada (near real-time) e a escalabilidade conforme a necessidade de cada empresa – este foi o contributo de Nuno Barreto, Big Data Lead, que referiu ainda a nova geração de soluções de Big e Fast Data.

Da parte da tarde, as apresentações tornaram-se mais técnicas e com um cariz mais prático, sendo asseguradas por convidados tais como: Christian Violi e Filippo Lambiente, da Cloudera; Alexandre Baptista, da Microsoft; Daniel Olaso, da Hitachi Vantara; Rute Ferreira, da Tableau; Pedro Adão, da EDP Comercial; João Mira, do Santander e, ainda, por dois Xpanders, Boris Tchikoulaev e Luís Vicente. Numa sala à parte, decorreu, ainda, um workshop sobre como criar uma plataforma de dados.

No final das apresentações – e porque o dia a isso convidava – a Xpand IT ofereceu aos participantes um momento de networking final, no qual incluiu um beer-call. No próximo ano a Xpand IT promete trazer o DnA novamente, sempre focado em encontrar soluções para os desafios que as empresas modernas enfrentam, e sempre com os olhos postos no futuro. Mas o nosso futuro começa agora.

Aqui ficam algumas fotografias do grande evento do ano sobre Big Data & Analytics:

  • DNA
Rúben VanravanNovo ciclo: a primeira edição do evento DnA 2019
read more

Open Day da Xpand IT 2019: três razões para te inscreveres em 2020

No dia 6 de junho abrimos as portas dos nossos escritórios em Lisboa para receber 12 estudantes finalistas de engenharia informática que aceitaram o desafio de conhecer a nossa cultura e metodologias de trabalho durante a 4ª edição do Open Day da Xpand IT 2019.

Um dia de networking, desafios tech e partilha de know-how entre os Xpanders e os jovens talentos que provaram ter uma paixão enorme pela tecnologia. A próxima edição é em 2020 e contamos-te agora a journey dos participantes que estiveram connosco.

Open Day da Xpand IT 2019
Open Day da Xpand IT 2019
Open Day da Xpand IT 2019

Estas são as três razões que destacamos para te inscreveres em 2020:

  • Vais poder ter contacto hands-on com tecnologias inovadoras e disruptivas que utilizamos com o mentoring dos nossos experts. Durante o Open Day da Xpand IT 2019, os estudantes partilharam boas práticas, good tips e know-how relevante para o dia-a-dia de um projeto tecnológico.
  • Vais ser desafiado para Tech challenges, simulando casos reais. Os alunos finalistas tiveram um primeiro contacto com a tecnologia Salesforce e resolveram business cases com Tableau, uma ferramenta de business intelligence.
  • Os participantes viveram a experiência de serem Xpanders por um dia, desfrutando de momentos de trabalho mas também de descontração.
Open Day da Xpand IT 2019
Open Day da Xpand IT 2019
Open Day da Xpand IT 2019

Tech Challenge Salesforce: como trabalhar e desenvolver?

O desafio foi dividido em duas partes:

  • Na primeira parte, os estudantes foram introduzidos à ferramenta de CRM.
  • Na segunda parte, aplicaram um caso prático, aprendendo a manipular o modelo de dados e a criar automações para simular no Salesforce uma plataforma de vendas. Desta forma, puderam ter uma visão 360º sobre o perfil dos clientes (informações, produtos, transações).

Conclusões

A maioria experimentou pela primeira vez esta ferramenta de CRM, tendo, assim, tido a oportunidade de conhecer melhor os desafios ligados ao desenvolvimento nesta área.

Tech Challenge Tableau: como resolver business cases?

O desafio foi dividido em duas partes:

  • Inicialmente foi feita uma apresentação da ferramenta de Business Intelligence – Tableau bem como do universo de dados a utilizar no desafio. Os estudantes tiveram oportunidade de ver as potencialidades da ferramenta e de algumas das funcionalidades mais relevantes.
  • Seguidamente foi apresentado o desafio com um conjunto de questões de negócio da empresa fictícia que teriam de ser respondidas criando visualizações de Tableau. No final foi pedia a criação de um dashboard com as especificações descritas.

Conclusões

Com este desafio os estudantes puderam experimentar uma ferramenta de Business Intelligence e responder a um conjunto de questões semelhantes às que existem num projeto real.

O Talento compensa

Os jovens provaram o seu talento com muita energia, dedicação e empenho, tendo sido atribuído aos cinco vencedores dos dois desafios um prémio especial: uma Alexa. Acreditamos que a excelência deve ser sempre reconhecida.

Open Day da Xpand IT 2019

Ser Xpander por um dia

Para além do know-how técnico que puderam aprofundar, os participantes viveram a nossa cultura:

Partilhámos momentos descontraídos, games, um almoço (pizza time!) mas o fundamental foi o networking com as equipas e com os diferentes roles que enfrentaram, em que foi possível partilhar novas ideias. Esta é a abordagem de proximidade que nos caracteriza na nossa forma de estar no dia-a-dia.

Open Day da Xpand IT 2019

Expertise goes both ways

Queremos estar ao lado das melhores expectativas, metodologias e dos desafios tecnológicos de futuro. Por isso, experiências como o Open Day da Xpand IT 2019 são uma oportunidade incrível para estarmos em contacto com diferentes realidades universitárias e backgrounds, ouvindo e integrando novos insights.

Não percas as próximas edições. A paixão pela tecnologia é aquilo que nos une!


O que dizem os estudantes?

Sara GodinhoOpen Day da Xpand IT 2019: três razões para te inscreveres em 2020
read more

Utilizar o Salesforce com Pentaho Data Integration

Pentaho Data Integration é a ferramenta mais indicada para mover dados entre diferentes sistemas, e não significa que seja necessariamente um processo de business intelligence. Pode ser utilizada como uma ferramenta ágil para integração ponto-a-ponto entre sistemas. O Pentaho Data Integration possui o seu próprio input step Salesforce, o que faz desta ferramenta uma opção fantástica em processos de integração.

O que é o Salesforce?

O Salesforce é uma solução em cloud para gestão de relacionamento com o cliente (CRM). Sendo uma Plataforma como Serviço (PaaS – Application as a Service) multi-tenant de última geração, a sua infraestrutura única permite-lhe focar todos os seus esforços nas áreas mais essenciais: criar micro-serviços com potencial de alavancagem em aplicações inovadoras e acelerar verdadeiramente o processo de desenvolvimento CRM.

O Salesforce é a plataforma ideal para lhe providenciar uma visão de 360º do seu cliente e das suas interações com a sua marca, independentemente de acontecerem via campanhas por e-mail, call centers, redes sociais ou uma simples chamada telefónica. A automação de marketing, por exemplo, é apenas uma das inúmeras vantagens que o Salesforce lhe oferece numa plataforma polivalente.

Como estabelecemos ligação entre o Pentaho Data Integration e Salesforce?

Para garantir o acesso, necessitamos de todos os detalhes de conexão do Salesforce: nome de utilizador, palavra-passe e o URL do serviço web SOAP. É imperativo que o PDI seja compatível com a versão da API SOAP que utiliza. Por exemplo:

  Versão do PDI   Versão da API SOAP
  2.0   1.0
  3.8   20.0
  4.2   21.0
  6.0   24.0
  7.0   37.0
  8.2   40.0

 

De qualquer forma, mesmo que o Salesforce nos providencie uma nova versão da API, ainda é possível utilizar a API anterior na perfeição. No entanto, tenha cuidado, porque caso tenha criado novos módulos na plataforma, a nova API não incluirá esses elementos personalizados e, consequentemente, terá que utilizar a linguagem Salesforce Object Query Language (SOQL) para obter os dados. Não se preocupe, pois explicaremos tudo na próxima secção.

Especificações SOQL

A sintaxe SOQL é bastante similar à sintaxe SQL, com algumas diferenças:

  1. O SOQL não reconhece quaisquer carateres especiais (tais como * ou ; ) e, portanto, é necessário utilizar todos os campos obtidos a partir do Salesforce, e não é possível adicionar o ; no EOF.
  2. Não é possível utilizar comentários em queries; o SOQL não os reconhece.
  3. Para criar joins necessitamos de saber algumas regras:
    • Em módulos nativos para os quais necessitamos de associações (relação direta), é necessário adicionar um ‘s’ ao nome final. Por exemplo:

Get all Orders with and without has Products (OrderItem Module)

    • Em módulos de personalização para os quais necessitamos de obter dados de outro módulo (relação direta) necessitamos de adicionar ‘__r’ ao nome final. Por exemplo:

Filter  OrderItems by Product_Skins__c field inside Product 2 Module

Como extraímos dados do Salesforce com o Pentaho Data Integration?

Podemos utilizar o input step Salesforce integrado no PDI para obter dados do Salesforce via SOQL; note que o limite máximo de carateres na criação de um query é de 20,000.

  • Parâmetros de conexão especificados:
    • Salesforce web service URL:

<url of Salesforce Platform>/services/Soap/u/<number of API Soap updated>

  • Nome de Utilizador: Nome de Utilizador de Acesso à Plataforma (ex.: myname@pentaho.com)
  • Palavra-passe:Palavra-passe + Token (a empresa providencia o token para adicionarmos à palavra-passe em Kettle.Properties) ex.: PASSWORDTOKEN
  • Definições especificadas:
    • Especificar o query: Sem ativo (como é possível verificar na imagem abaixo) necessitamos apenas de selecionar o módulo (a tabela que contem os registos aos quais pretendemos aceder).

Para o próximo separador (Content / Conteúdo) existem as seguintes opções:

  • Caso seja pretendido obter todos os registos do Salesforce (por outras palavras, obter registos “delete” e “insert” – “eliminados” e “inseridos”) é necessário assinalar a opção “Query All Records” e selecionar dos parâmetros abaixo uma das seguintes opções:
    • All (obter registos “new” (novos) e registos “delete” (eliminados)), Update (obter apenas “inserts” (inseridos) e registos “update” (atualizados));
    • Caso desmarque a opção “Query All Records” nos parâmetros, obteremos apenas registos “insert”/”update” – “inseridos”/”eliminados”;
    • Delete (obtemos apenas registos “delete” – “eliminados”).

De que forma o Pentaho Data Integration reconhece registos “novos” / “atualizados” ou “eliminados”?

O Salesforce possui campos nativos bastante úteis para controlar o processo. No entanto, não é possível observar esses campos no layout ou no esquema de construção em SF. Apenas os dados associados se encontram visíveis com estes campos específicos ao utilizar o SOQL ou PDI para aceder aos mesmos.

  • CreatedById e CreateDate são campos que exibem o utilizador, assim como a hora em que os registos foram criados.
  • LastModifiedDate e LastModifiedID mostra a hora e o utilizador que modificou o registo. Podemos utilizar estes campos para obter dados atualizados em SF.
  • Id (Salesforce Id), presente no URL como uma string de 18 carateres, (Java config.) exibe o registo.
    Por exemplo:
  • Temos um campo adicional, IsDeleted, com o tipo de dados = Boolean que informa se o registo foi removido (IsDelete = true) ou não (IsDelete = false).

No campo “Additional” / “Adicional”, temos três opções adicionais:

  • Time out é útil em sistemas assíncronos, uma vez que possibilita a configuração do intervalo “timeout” em milissegundos antes da expiração do step;
  • Use Compression é útil para obter mais performance do processo. Quando selecionada, esta opção fará com que o sistema redirecione todas as chamadas para a API e as envie em formato .qzip;
  • Limit serve para configurar o número máximo de registos a recolher do query.

No último separador é possível visualizar todos os campos do query no interior do primeiro separador. Sem o SOQL, obtemos todos os campos dos módulos. Com SOQL, obtemos todos os campos pertencentes à função SELECT.

Necessitamos de mais cuidado com a opção “Get Field Button”, uma vez que o Type (Tipo), Format (Formato) e Size (Tamanho) não podem ser corrigidos. Nestes casos, é necessário recorrer a alterações manuais.
Para obter mais detalhes:

O base64 exibe imagens ou PDFs presentes em SF.

Caso seja necessário enviar imagens (.jpeg) ou PDF (.pdf) diretamente para SF, carregamos este tipo de campos via JAVA, convertendo ficheiros binários para o base64.

Por exemplo, para enviar um ficheiro PDF para SF:

Como carregar dados para Salesforce via Pentaho Data Integration?

Envie dados para o Salesforce através de outras bases de dados ou a partir do Salesforce.

A opção de conexão é igual à descrita previamente no input Salesforce.
Nas opções das Definições (Settings), temos os seguintes parâmetros:

  • Rollback all Changes on error – caso nos deparemos com algum erro, nada será integrado em SF;
  • Batch Size – é possível trazer um número estático de registos e integrá-los simultaneamente (no mesmo batch) em SF;
  • Em Output Fields Label é necessário adicionar o nome do campo do qual pretendemos obter o Salesforce ID para cada registo integrado.

No parâmetro Fields Option, necessitamos de colocar o mapeamento dos campos.

  • Para Module Field, necessitamos de colocar o campo API Name em SF para obter novos dados;
  • Em Steam Field, é necessário colocar o nome do campo que será integrado no respetivo campo em SF;
  • Use External id = N para todos os campos atualizados no respetivo Módulo;
  • Use External id = Y para todos os registos que necessitamos atualizar, mas que não se encontram presentes noutro módulo.

Eliminar registos no Salesforce

Eliminamos registos do Salesforce com o step Delete Salesforce. É necessário especificar o campo chave do Table Input que faz a referência para a chave em Salesforce (Salesforce ID).

Atualizar registos Salesforce

Caso pretendamos apenas atualizar registos em SF, é necessário utilizar o Salesforce Update Step.
Incluído na seccção Fields (Key included) Option, necessitamos de adicionar a chave aos registos para o módulo específico.

Upsert de dados no Salesforce

Se desejarmos inserir e atualizar (“insert” e “update”) no mesmo Batch em SF, necessitamos de utilizar a funcionalidade Salesforce Upsert.
O parâmetro Upsert Comparison Field ajuda a comparar os dados em SF.

Fátima MirandaUtilizar o Salesforce com Pentaho Data Integration
read more

Using Salesforce with Pentaho Data Integration

Pentaho Data Integration is the tool of the trade to move data between systems, and it doesn’t have to be just a business intelligence process. We can actually use it as an agile tool for point-to-point integration between systems. PDI has its own Salesforce input step which makes it a good candidate for integration.

What is Salesforce?

Salesforce is a cloud solution for customer relationship management (CRM). As a next generation multi-tenant Platform as a Service (PaaS), its unique infrastructure enables you to focus your efforts where they are most essential: creating microservices that can be leveraged in innovative applications and really speeding up the CRM development process.

Salesforce is the right platform to give you a complete 360º vision of your customer and his interactions with your brand, whether this happens via your email campaigns, call centres, social networks, or a simple phone call. Marketing automation is, for example, just one of the many great things Salesforce brings to you in an all-in-one platform.

How do we use PDI to connect to Salesforce?

For this access we need all our Salesforce connection details: the username, password and the SOAP web service URL. PDI has to be compatible with the SOAP API version that you use. For example:

  PDI version   SOAP API version number
  2.0   1.0
  3.8   20.0
  4.2   21.0
  6.0   24.0
  7.0   37.0
  8.2   40.0

 

Nevertheless, even if Salesforce gives us a new version of the API we can still use the old API perfectly well. Just be careful, because if you’ve created new modules inside the platform, the new API won’t have these customisations, and so you’ll need to use the Salesforce Object Query Language (SOQL) to get the data. But don’t worry, we’ll explain it all in the next section.

How do we use PDI to connect to Salesforce?

The SOQL syntax is quite similar to SQL syntax, but with a few differences:

  1. The SOQL does not recognise any special characters (such as * or ; ) and so we have to use all the fields that we will get from Salesforce, and we cannot add the ; at EOF.
  2. We cannot use comments in a query; SOQL does not recognise this either.
  3. To create joins we need to know a few things:
    • For the native modules that we need linkage to (direct relationship), we need to add in final name a ‘s’. For example:

Get all Orders with and without has Products (OrderItem Module)

  • For the customisation modules that we need to get data from another module (direct relationship) we need add to final name the  ‘__r’ . For example:
    Filter  OrderItems by Product_Skins__c field inside Product 2 Module 

How do we extract data from Salesforce with PDI?

We can use the Salesforce input step inside PDI to get data from Salesforce using SOQL; just be aware you can only use up to 20,000 characters to create the query.

  • Connection parameters specified:
    • Salesforce web service URL:

<url of Salesforce Platform>/services/Soap/u/<number of API Soap updated>

  • Username: Username Access to the Platform  (i.e. myname@pentaho.com)
  • Password:Password + Token (the company provides the token for us add to the password in Kettle.Properties) i.e: PASSWORDTOKEN

Settings parameters specified:

    • Specify query: Without active (like we can see in the image below) we only need to choose the module (the table containing records that we need to access).

For the next tab (Content) we have the following parameters options:

  • If we want to get all records from Salesforce (I mean, if we want to get delete records and insert records) you need place a tick in Query All Records, and choose from the parameters below one of the following options:
    • All (get new/update records and delete records), Update (get only inserts and update records) ;
    • If you untick the tick from Query All Records parameters, we only get insert/update registers;
    • Delete (we get only delete records).

How does PDI know if records are new/updates or deletes?

The Salesforce has native fields very useful for controlling the process. However we cannot see these fields in layout or on builder schema in SF. We only can see the data associated with these specific fields if we’re using the SOQL or PDI to access these fields.

  • CreatedById and CreateDate are fields that shows the user and data time when records were created.
  • The LastModifiedDate and LastModifiedID shows the data time and the user who modified the record. We can use these fields to get data updated in SF.
  • Id (Salesforce Id) present in URL as a string of 18 characters (Java config.) displays the register.
    For example:
  • We have more one native field IsDeleted with data type = Boolean that shows if the record was removed (IsDelete = true) or not (IsDelete = false).

In Additional field option we have three options:

  • Time out is useful in asynchrony systems because we can configure the timeout interval in milliseconds before the step times out;
  • Use Compression is useful to get more performance from the process. Because when you tick it, the system will direct all calls to the API and send all in .qzip field;
  • Limit is for configuring the maximum number of records to retrieve from the query.

Inside the last tab, we can see all fields from the query inside the first tab. Without SOQL we get all the module fields. With SOQL we get all the fields inside on SELECT function.

And for these cases, we need to do the manually changes.
For more details:

The base64 displays images or PDFs present in SF.

If we need send images (.jpeg) or pdf (.pdf) directly to SF we load these type of fields  using JAVA to convert binary files to the base64.

For example, to send a PDF file to SF:

How to load data to Salesforce with PDI?

Send data to Salesforce from other databases or from Salesforce.

The connection option is equal as described in Salesforce Input.
In Settings Options we have new parameters:

  • Rollback all Changes on error – if we got any error nothing will integrate into SF;
  • Batch Size – we can bring a static number of the records and integrate them simultaneously (the same batch) to SF;
  • In Output Fields Label we need to add the field name that we want to get the Salesforce ID for each record integrated.

In the Fields Option, we need to put field mapping.

  • For Module Field, we need to put the API Name field in SF to get the new data;
  • In the Steam Field, we need to put the name of the field that will be integrated into the respective field in SF;
  • Use External id = N to all field updated inside the respective Module;
  • Use External id = Y to all records that we need updating but are not present in the current module, but present in another module.

Delete records inside Salesforce

We delete records from Salesforce with Delete Salesforce step. We need to specify the key field from Table Input that does the reference to the key in Salesforce (Saleforce Id).

Update Salesforce records

If we only want to update records in SF we need to use the Salesforce Update Step.
Inside Fields (Key included) Option we need to add the key to records for the specific module.

Upsert data to Salesforce

If we want to insert and update in the same Batch to SF, we need to use Salesforce Upsert.
The parameter Upsert Comparison Field helps match the data in SF.

Fátima MirandaUsing Salesforce with Pentaho Data Integration
read more