Como ter acesso às últimas tecnologias da Haskell

Como aceder a dados de software empresarial a partir de Haskell

Ana NetoTechnical Leave a Comment

Sabia que pode utilizar Haskell para aceder a dados armazenados em software empresarial como Microsoft Dynamics CRM, Microsoft Dynamics AX, Microsoft SharePoint, Microsoft Exchange e muitos outros?

Hoje, vou descrever como as fontes de dados de destino podem ser acedidas a partir de sistemas antigos utilizando o Plataforma Connect Bridge. Vou demonstrá-lo utilizando uma linguagem funcional - Haskell e um controlador ODBC que utiliza a sintaxe SQL bem conhecida para a manipulação de dados.

A plataforma Connect Bridge é uma poderosa plataforma de integração que permite a conexão com diferentes sistemas de destino usando ODBC, drivers JDBC e serviços da Web. Esta combinação permite-lhe ligar-se a partir de qualquer ambiente, incluindo sistemas antigos.

Configuração do ambiente

Primeiro, precisamos de preparar o ambiente para executar o código. Isto inclui 3 passos básicos:

    • 1. Instalar o Connect Bridge
    • 2. Preparar o ambiente Haskell
    • 3. Configurar a cadeia de ligação

Instalar Connect Bridge

Existe a possibilidade de obter uma avaliação gratuita do Connect Bridge para que possa experimentar tudo isto no seu ambiente e depois decidir se lhe convém.

Deve começar por solicitar a avaliação gratuita aqui. Entraremos em contacto consigo no prazo de 24 horas úteis e, em seguida, poderá proceder à instalação conforme descrito nesta breve descrição vídeo.

Preparar o ambiente Haskell

A forma mais simples de pôr Haskell a funcionar é seguir as instruções em https://www.haskell.org/get-started/

Após a instalação, é necessário instalar o controlador Haskell ODBC. Na linha de comando, execute:

atualização da cabala
cabal instalar HDBC-odbc

Depois disto o seu ambiente Haskell deve estar totalmente preparado.

Encontrar a cadeia de ligação

Na nossa amostra, utilizaremos o controlador ODBC com Connect Bridge. Terá de conhecer o sistema de destino da cadeia de ligação que foi pré-configurado para si. Abra a ferramenta QueryAnalyzer do Connect Bridge Playground, que descarregou. Seleccione uma única ligação no Navegador de ligações, clique com o botão direito do rato e escolha Editar ligação. Vá para o separador Avançadas e copie a cadeia de ligação.

Abra o ficheiro CB_HaskellSample.hs fornecido e coloque a sua cadeia de ligação em vez da cadeia de ligação de amostra na linha 7.

Código

Para acessar o Servidor Connect Bridge usando você precisa importar pacotes:

base de dados de importação.HDBC
base de dados de importação.HDBC.ODBC

Para estabelecer conexão de banco de dados com o servidor Connect Bridge você pode usar a função connectODBC:

conn <- connectODBC 'yourConnectionString';

Para executar uma consulta que não produz resultados, você pode chamar:
 

execute conn 'INSERIR INTO conta (nome) VALORES ('Hello world from Haskell')'.

Para executar a consulta com o conjunto de resultados, você pode chamar:
 

quickQuery conn 'SELECT accounttid, name FROM account' []

Eu criei uma função de amostra que demonstra como consultar dados e processar resultados em Haskell:

executeQuery :: IO ( )
executeQuery = fazer
{
    putStr 'Entrar consulta: ' ;
    consulta <- getLine ;
    putStrLn 'Ligar ao Servidor Connect Bridge ...' ;
    conn <- connectODBC connectionString;
    putStrLn ('Executar consulta '' ++ consulta ++ ''' ) ;
    vals <- quickQuery consulta de conn [ ] ;
    putStrLn ( 'Contagem de linhas retornadas ' ++ mostrar ( vals de comprimento ) ) ;
    putStrLn ( converterResultSetToString vals )
}

Chamando o Código

Para executar a amostra você pode usar qualquer interpretador Haskell, por exemplo, WinGHCi que vem com o pacote.

Abra o arquivo fornecido CB_HaskellSample.hs com uma sequência de ligação já modificada.

Basta digitar o nome da função que você deseja chamar. Ser-lhe-á pedido que introduza os parâmetros de entrada.

Exemplo 1:

Este exemplo mostra como criar uma nova conta em Dynamics CRM de Haskell. Basta chamar uma função executarQuery e passar SQL query 'INSERIR INTO conta (nome) VALORES ("Hello world from Haskell")" como consulta. Isto irá criar imediatamente um novo registo de conta no seu CRM Dinâmico.

*Principal>ExecutarQuery

Introduzir consulta: INSERIR INTO conta (nome) VALORES ("Hello world from Haskell")

Ligação ao Servidor Connect Bridge ...

Executar a consulta 'INSERIR INTO conta (nome) VALORES ('Hello world from Haskell')'.

Número de linhas devolvidas 0

Exemplo 2:

Este exemplo mostra como recuperar 5 novos relatos da Dynamics CRM. Função de chamada executarQuery e passar SQL query 'SELECT TOP 5 accounttid, name, createdon FROM account ORDER BY createdon'. Opcionalmente pode chamar a função csvExportQuery que irá escrever os resultados em ficheiro CSV.

Digite a consulta: SELECT TOP 5 conta, nome, criado a partir de conta ORDEM POR DESC criado no DESC
Ligação ao Servidor Connect Bridge ...
Execução da consulta 'SELECT TOP 5 accounttid, name, createdon FROM account ORDER BY createon DESC'.
Fila devolvida contagem 5
account(e436e4d4-7d24-e411-a6b7-00155dc2040f),Olá mundo de Haskell 5,2014-08-15 13:12:39
account(168f7ecb-7d24-e411-a6b7-00155dc2040f),Hello world from Haskell 4,2014-08-15 13:12:29
account(158f7ecb-7d24-e411-a6b7-00155dc2040f),Hello world from Haskell 3,2014-08-15 13:12:24
account(a2079fc4-7d24-e411-a6b7-00155dc2040f),Hello world from Haskell 2,2014-08-15 13:12:18
account(a1079fc4-7d24-e411-a6b7-00155dc2040f),Hello world from Haskell 1,2014-08-15 13:12:12

Conclusão

Demonstrei como se pode aceder facilmente ao Microsoft Dynamics CRM a partir de Haskell com algumas linhas de código. O mesmo pequeno esforço serve para aceder a outros sistemas, por exemplo, SharePoint, Exchange, AX, Navision, e Salesforce ...

Existe uma lista completa de conectores em https://www.connecting-software.com/connectors/). Além disso, pode aceder a qualquer um destes sistemas a partir de qualquer língua com o mesmo pequeno esforço que foi descrito neste artigo.

Se gostou do post, obtenha o seu teste grátis Connect Bridge e comece a brincar com ele hoje mesmo!

Artigo original e código por Tomas Olejnik, 10 de dezembro de 2015

Última atualização em 4 de maio de 2023

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

For security, use of Google's reCAPTCHA service is required which is subject to the Google Privacy Policy and Terms of Use.