Wist je dat je Haskell kunt gebruiken om gegevens te benaderen die zijn opgeslagen in bedrijfssoftware zoals Microsoft Dynamics CRM, Microsoft Dynamics AX, Microsoft SharePoint, Microsoft Exchange en vele andere?
Vandaag zal ik beschrijven hoe de doelgegevensbronnen kunnen worden benaderd vanuit legacy systemen met behulp van de Connect Bridge platform. Ik zal het demonstreren met behulp van functionele taal - Haskell en ODBC-stuurprogramma met behulp van bekende SQL-syntaxis voor gegevensmanipulatie.
Het Connect Bridge platform is een krachtig integratieplatform waarmee je verbinding kunt maken met verschillende doelsystemen via ODBC, JDBC drivers en webservices. Met deze combinatie kun je verbinding maken vanuit elke omgeving, inclusief legacysystemen.
Milieu-instelling
Eerst moeten we de omgeving voorbereiden om de code uit te voeren. Dit omvat 3 basisstappen:
-
- 1. Connect Bridge installeren
-
- 2. Bereid Haskell omgeving voor
-
- 3. Configureer verbinding string
Installeren Connect Bridge
Er is een mogelijkheid om een gratis proefversie van Connect Bridge te krijgen, zodat je dit alles in jouw omgeving kunt uitproberen en dan kunt beslissen of het bij je past.
Vraag eerst de gratis proefversie aan hier. We nemen binnen 24 werkuren contact met je op, waarna je verder kunt gaan met de installatie zoals beschreven in dit korte bericht. video.
De Haskell-omgeving voorbereiden
De eenvoudigste manier om Haskell aan de praat te krijgen is door de instructies te volgen op https://www.haskell.org/get-started/
Na de installatie moet je het Haskell ODBC-stuurprogramma installeren. Voer in de commandoregel uit:
cabal update
cabal installeer HDBC-odbc
Hierna zou uw Haskell omgeving volledig voorbereid moeten zijn.
Zoek de verbindingsstring
In ons voorbeeld gebruiken we het ODBC-stuurprogramma met Connect Bridge. Je moet je verbindingsstring doelsysteem kennen dat vooraf geconfigureerd is voor jou. Open de QueryAnalyzer tool van Connect Bridge Playground, die je hebt gedownload. Selecteer een enkele verbinding in de verbindingsbrowser, klik met de rechtermuisknop en kies Verbinding bewerken. Ga naar het tabblad Geavanceerd en kopieer de verbindingsstring.
Open het CB_HaskellSample.hs bestand en plaats je eigen connection string in plaats van de voorbeeld connection string op regel 7.
Code
Om toegang te krijgen tot Connect Bridge Server moet je pakketten importeren:
importeren Database.HDBC importeren Database.HDBC.ODBC
Om een databaseverbinding met de Connect Bridge-server tot stand te brengen, kunt u de functie connectODBC gebruiken:
conn <- connectODBC 'yourConnectionString';
Om een query uit te voeren die geen resultaten oplevert, kunt u oproepen:
run conn "INSERT INTO account (naam) VALUES ("Hallo wereld van Haskell")
Om een query met resultaten uit te voeren kunt u oproepen:
quickQuery conn 'SELECT accountid, name FROM account' []
Ik heb een voorbeeldfunctie gemaakt die demonstreert hoe je gegevens kunt opvragen en resultaten kunt verwerken in Haskell:
executeQuery :: IO ( ) executeQuery = do { putStr "Voer query in: ' ; query <- getLine ; putStrLn 'Verbinding maken met Connect Bridge Server ...' ; conn <- connectODBC connectionString; putStrLn ("Query wordt uitgevoerd "" ++ query ++ '' ) ; vals <- quickQuery conn query [ ] ; putStrLn ("Aantal geretourneerde rijen " ++ show ( lengte vals ) ) ; putStrLn ( convertResultSetToString vals ) }
De code afroepen
Om het voorbeeld uit te voeren kunt u elke Haskell interpreter gebruiken, b.v. WinGHCi dat met het pakket wordt meegeleverd.
Open het bijgeleverde bestand CB_HaskellSample.hs met een reeds gewijzigde verbindings string.
Typ gewoon de naam van de functie die u wilt oproepen. U wordt gevraagd om invoerparameters in te voeren.
Voorbeeld 1:
Dit voorbeeld laat zien hoe een nieuw account aan te maken in Dynamics CRM vanuit Haskell. Roep gewoon een functie executeQuery op en geef SQL query 'INSERT INTO account (naam) VALUES ("Hallo wereld van Haskell")' als query. Dit zal onmiddellijk een nieuw accountrecord aanmaken in uw Dynamics CRM.
*Main> executeQuery
Voer query in: INSERT INTO account (naam) VALUES ('Hallo wereld van Haskell')
Verbinding maken met Connect Bridge Server ...
Uitvoeren van query 'INSERT INTO account (naam) VALUES ('Hallo wereld van Haskell')'
Aantal teruggestuurde rijen 0
Voorbeeld 2:
Dit voorbeeld toont hoe de 5 nieuwste accounts uit Dynamics CRM kunnen worden opgehaald. Roep functie executeQuery op en geef SQL query 'SELECT TOP 5 accountid, name, createdon FROM account ORDER BY createdon' door. Optioneel kunt u de functie csvExportQuery aanroepen die de resultaten in een CSV-bestand zal schrijven.
Voer query in: SELECT TOP 5 accountid, name, createdon FROM account ORDER BY createdon DESC
Verbinding maken met Connect Bridge Server ...
Uitvoeren van query 'SELECT TOP 5 accountid, name, createdon FROM account ORDER BY createdon DESC'
Aantal teruggestuurde rijen 5
account(e436e4d4-7d24-e411-a6b7-00155dc2040f),Hallo wereld van Haskell 5,2014-08-15 13:12:39
account(168f7ecb-7d24-e411-a6b7-00155dc2040f),Hallo wereld van Haskell 4,2014-08-15 13:12:29
account(158f7ecb-7d24-e411-a6b7-00155dc2040f),Hallo wereld van Haskell 3,2014-08-15 13:12:24
account(a2079fc4-7d24-e411-a6b7-00155dc2040f),Hallo wereld van Haskell 2,2014-08-15 13:12:18
account(a1079fc4-7d24-e411-a6b7-00155dc2040f),Hallo wereld van Haskell 1,2014-08-15 13:12:12
Conclusie
Ik heb laten zien hoe je met een paar regels code eenvoudig toegang kunt krijgen tot Microsoft Dynamics CRM vanuit Haskell. Dezelfde kleine moeite is om toegang te krijgen tot andere systemen, bijvoorbeeld SharePoint, Exchange, AX, Navision, en Salesforce ...
Er is een volledige lijst met connectoren op https://www.connecting-software.com/connectors/). Bovendien kun je elk van deze systemen benaderen vanuit elke taal met dezelfde kleine inspanning als beschreven in dit artikel.
Als je deze post leuk vond, ontvang dan je gratis Connect Bridge proef en begin er vandaag nog mee te spelen!
Origineel artikel & code door Tomas Olejnik, 10 dec 2015
Laatst bijgewerkt op 4 mei 2023