Instellingen voor koppeling naar Twinfield

Willen een koppeling maken naar een Twinfield account. Wij starten altijd met een juiste .xml file in de map %userprofile%\invantive. Deze xml files zien er voor de verschillende platforms (Loket/Exact Online) elke keer anders uit.

Hoe dienen we deze te formuleren voor Twinfield? Is hiervoor een voorbeeld en/of documentatie beschikbaar?

Zijn er daarnaast specifieke restricties waaraan het Twinfield account dient te voldoen waarmee we connectie willen maken?

Als ik een werkende xml file heb zal ik deze ook hier (geanonimiseerd) delen zodat anderen deze kunnen raadplegen.

Settings.xml via Invantive Cloud

Een handige trucje om makkelijk een settings*.xml te krijgen voor Twinfield is om op Invantive Cloud onder het consultancy-abonnement een database toe te voegen met daarin de Twinfield data container. De schermen gidsen je dan door het proces heen en je kunt controleren dat het werkt via de geintegreerde SQL editor.

Stappen (zie ook Register your first Database on Invantive Cloud):

Je hebt nu een werkende Twinfield database. De instellingen die hier bij horen kun je downloaden vanuit het Databasescherm hiervan:

  • Ga naar Databases.
  • Selecteer de database.
  • Kies de “Download settings.xml” button:
    image

Het bestand bevat alle instellingen met uitzondering van vertrouwelijke gegevens zoals client ID, gebruikersnaam/wachtwoord en bijvoorbeeld refresh token:

<?xml version="1.0" encoding="utf-16"?>
<!--

Settings.xml databases configuration file for use with Invantive products.

Generated by: Invantive Cloud.
Database:  - User xxx: Database xxx
Created: 01-12-2020 10:07:33 (UTC)

-->
<settings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  VersionUpdateDate="2020-12-01T10:07:33.2343287Z"
  version="5">
  <group
    id="7c68ce40-e1cb-4dcd-897f-56e89bf19aab"
    sortingOrder="99999"
    createdBy="xxx"
    createdOn="xxx"
    creationDate="2020-12-01T10:07:33.1541989Z">
    <connection
      name="User xxx"
      manual="true"
      createdBy="Invantive Cloud"
      createdOn="download"
      creationDate="2020-12-01T10:07:33.1541989Z"
      authentication="Default"
      sortingOrder="1"
      shortDescription="Database xxx"
      description="Database xxx"
      id="0f7b2ff1-fc2d-4c9b-aab5-676b31f163b5">
      <database
        order="10"
        createdBy="Invantive Cloud"
        createdOn="download"
        creationDate="2020-12-01T10:07:33.1541989Z"
        comment="Twinfield"
        alias="tfd"
        provider="Twinfield"
        connectionString="environment=OMGEVINGSNAAM"
        AllowConnectionPooling="false" />
    </connection>
  </group>
</settings>

Uit Discovery

Standaard wordt voor een groot aantal platformen bij het gebruik van de on-premise producten een instellingenbestand gemaakt. Die heet tegenwoordig settings-discovery-VERSIE.xml (bijvoorbeeld settings-discovery-20.0.xml en is te vinden in %USERPROFILE%\invantive.

Voor Twinfield zie je bijvoorbeeld een <connection> tag voor de database met als definitie:

    <connection
      name="Twinfield"
      createdBy="ws212\gle3"
      createdOn="WS212"
      creationDate="2020-11-18T15:45:47.0701767Z"
      IconResourceName16="twinfield_16.png"
      authentication="Default"
      sortingOrder="3200"
      description="Twinfield is an online accounting package used in the Netherlands and Belgium. Accounting professionals form a large part of the Twinfield user community."
      id="1deac4f2-1c91-5c0a-ba9d-50ed452f2d4f">
      <database
        order="10"
        createdBy="ws212\gle3"
        createdOn="WS212"
        creationDate="2020-11-18T15:45:47.0671761Z"
        provider="Twinfield"
        userLogonCodeMode="Auto"
        passwordMode="Auto"
        AllowConnectionPooling="false" />
    </connection>

De connectorattributen zijn niet zichtbaar; die worden bij het aanmelden toegevoegd. Om een complete reeks van waardes te krijgen kies je bijvoorbeeld in het Invantive Query Tool voor de Twinfield database en meld je je aan door (in dit geval) de gebruikersnaam, wachtwoord en omgevingscode in te vullen.

Na het aanmelden kun je de namen van de connectorattributen voor gebruik in de connectionString opvragen met bijvoorbeeld de volgende query:

select provider_data_container_alias
,      code
,      value
,      description 
from   SYSTEMDATACONTAINERATTRIBUTES@DataDictionary
where  origin != 'InitialValue'
and    allow_set_from_connection_string = true
and    ( coalesce(value, '#') != coalesce(default_value, '#') or value = '***' )
order
by     provider_data_container_alias
,      code

Bij een database met in dit geval Oracle, ActiveCampaign, Exact Online, PostgreSQL en SQL Server datacontainers geeft dit als resultaat:

De gebruikersnamen en wachtwoorden zul je ook hier apart moeten toevoegen aan elke datacontainer waar nodig via bijvoorbeeld:

        userLogonCodeMode="Hidden"
        passwordMode="Hidden"
        defaultUserLogonCode="john.doe@acme.com"
        defaultPassword="secret"

Handmatig

Je kunt het settings.xml bestand ook opbouwen met de hand. De XSD met uitleg staat in de documentatie beschreven. Dit is iets voor de echte Hornbachbezoekers.