Synkronisere Exact Online med Visma.net Financials

Gå til den engelske versjonen

Sammendrag

Synkroniser alle relasjoner fra en Exact Online-administrasjon med en Visma.net Financials-administrasjon med én setning (statement). Denne andre artikkelen om synkronisering med én SQL-setning (både i én og to retninger) illustrerer en praktisk synkroniseringsoppgave.

Synkronisering av Exact Online-relasjoner til Visma.net Financials-kunder

En global innovasjon for Invantive SQL muliggjør synkronisering av data med én setning (både mono- og bidireksjonalt) mellom applikasjoner. Konseptet og grammatikken ble introdusert i Synchroniseer uw gegevens met één SQL-statement over meerdere cloudplatformen heen.

Denne artikkelen gir et praktisk eksempel for å sikre at alle relasjoner fra en Exact Online-administrasjon er til stede i en Visma.net Financials-administrasjon som kunder.

Implementeringen av en monodireksjonal synkronisering fra Exact Online til Visma.net Financials krever bare én Invantive SQL-setning. Tydelige begreper og en entydig kobling mellom systemene er viktig, ikke minst fordi begrepene i den engelske versjonen av Exact Online og Visma.net Financials er forskjellige:

  • I Exact Online refererer begrepet «account» (relasjon) til en motpart i en (eventuelt fremtidig) juridisk avtale med det utførende selskapet. Det engelske begrepet «account» i Visma.net refererer derimot til en konto i hovedboken.
  • I Visma.net Financials refererer en «kunde» til en spesifikk liste over parter som opptrer som kunde i en juridisk avtale om overføring av produkter. I tillegg til «kunder» finnes det en egen liste over leverandører, mens i Exact Online administreres alle kunder, leverandører og andre motparter, som potensielle kunder, for det meste som én tabell.

Funksjonell kobling

I dette tilfellet er koblingen ganske enkel.

I Exact Online er kilden en relasjon:

I Visma.net Financials skal resultatet være:

I prinsippet ser koblingen slik ut:

  • En Exact Online-relasjon identifiseres av nøyaktig én Visma.net-leverandør via verdien i feltet «Reference» i Visma.net.
  • Relasjonsreferansen begynner med «EOL-» for å angi opprinnelsessystemet.
  • Relasjonsnavnet overføres uendret fra Exact Online.

Det er ikke nødvendig å endre tegn, siden begge systemene ser ut til å støtte et ganske bredt sett av Unicode-tegnsett. Avkorting er ikke nødvendig fordi kildesystemet Exact Online begrenser partsnavnet til 50 tegn, mens Visma.net tillater maksimalt 60 tegn.

Oppdeling av Exact Online-listen over kontoer i kunder, leverandører (eventuelt overlappende) og alle andre er utelatt. Kriteriene for en slik kobling finnes i dokumentasjonen.

Oppdatering (legg bare til «of update» i setningen) eller sletting av kunder (Visma.net støtter ikke API-basert sletting av kunder) er heller ikke inkludert i omfanget.

Implementering

Synkroniseringen kunne vært formulert som en innsetting (insert) i Visma.net Financials fra en select med en full outer join på begge systemene. Synchronize-setningen gjør det imidlertid enklere:

use 102673@eolnl,1896329@vismanet

create or replace table exactaccounts@inmemorystorage
as
select to_char(code) number
,      name
,      'EOL-' || to_char(code) accountreference
from   exactonlinerest..accounts@eolnl

synchronize exactaccounts@inmemorystorage
to          customer_getall@vismanet
with        insert
identified 
by          accountreference ignore nulls

Noen kommentarer:

  • Use-setningen velger én Exact Online-administrasjon og én Visma.net Financials-administrasjon. Flere Exact Online- eller Visma.net Financials-administrasjoner kan velges ved å legge til flere elementer, én eller flere select-spørringer eller de spesielle navnene all og default.

  • In-memory-tabellen exactaccounts er en midlertidig tabell som illustrerer koblingen fra Exact Online-begrepene til Visma.net Financials-begrepene. For eksempel behandles et relasjonsnummer i Visma.net Financials som tekst i tabellene. Denne spørringen for in-memory-tabellen ville vært riktig sted å avkorte relasjonsnavn, legge til prefikser, endre navn til store bokstaver osv.

  • Synchronize-setningen bruker insert-setningen til å laste kunder inn i Visma.net Financials. ignore nulls-klausulen er nødvendig fordi feltet «Reference» i Visma.net sannsynligvis vil ha noen null-verdier for manuelt opprettede kunder, og reference derfor ikke er en fullstendig dekkende unik nøkkel i Visma.net-kundekartoteket.

  • eolnl og vismanet er to datakontainere som er definert i en distribuert database med følgende innhold i settings.xml (disse kan selvsagt defineres enda enklere i Invantive Cloud i tillegg til on-premises):

<?xml version="1.0" encoding="utf-16"?>
<settings xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  version="5" forcedefault="false" >
  <group name="sample">
    <connection name="exact online nl + visma.net">
      <database alias="eolnl" provider="ExactOnlineAll" connectionString="api-url=https://start.exactonline.nl" />
      <database alias="vismanet" provider="VismaNet" />
    </connection>
  </group>
</settings>

Ytelse

Ytelsen til synkroniseringsprosessen avhenger av:

  • Nåværende antall kunder i Exact Online og Visma.net: synchronize-setningen må bringe de to kundelistene i samsvar med hverandre, enten fra en eksisterende replika i en SQL Server-database drevet av Invantive Data Replicator, eller ved sanntidsnedlasting av data fra de to skyplattformene. Selvfølgelig kan også andre Invantive Data Replicator-plattformer som Oracle og PostgreSQL brukes.
  • Antall kunder som skal utveksles: varigheten vil øke etter hvert som mer data må utveksles.
  • Tilstedeværelse av bulklasting-funksjoner: synchronize-setningen foretrekker bulk-innsettinger når disse er tilgjengelige på plattformer som SQL Server, men faller tilbake til innsettinger én og én når dette ikke er tilgjengelig.

Visma.net Financials har for øyeblikket ingen funksjoner for bulkinnlegging, og i denne testen var Invantive Data Replicator og de ulike cache-mekanismene deaktivert. Ved starten av testen inneholdt Visma.net Financials rundt 5000 kunder, og Exact Online flere. Det ble ikke benyttet Invantives funksjoner for parallell prosessering innenfor eller mellom administrasjoner.

Avstemmingsfasen tar omtrent 17 sekunder (pluss/minus 2 sekunder), mens lasting og validering av kunder tok omtrent 500 ms per kunde (pluss/minus 200 ms).

Innledende lasting av 1000 kunder tar dermed omtrent 10 minutter. Med 10 nye kunder per dag og daglig synkronisering ville kundekartoteket i Visma.net og Exact Online være oppdatert innen 30 sekunder.