Kort stappenplan Cloudswitch (API)

Graag leggen wij je in een kort stappenplan uit hoe je als developer snel kunt starten met de iMUIS Online Cloudswitch (API).
Klik hier voor de link voor alle bewerkingen en downloads.
Klik hier voor voorbeelden met SoapUI.

STAP 1 DEVELOPMENT (TEST)CODES
Voor het maken van een koppeling zijn de volgende twee codes noodzakelijk:
a.  Partnerkey: Een sleutel welke door KING Software wordt uitgegeven. De unieke partnerkey identificeert de software developer.  Voor het ontwikkelen en testen van een koppeling is een speciale partnerkey: abcdefghijklmnopqrstuvwxyz beschikbaar.

Is je app (koppeling) klaar voor gebruik? Vraag dan via onze website een unieke partnerkey via aan. Na controle en goedkeuring van KING Software ontvang je van ons een eigen unieke partnerkey.

b. Omgevingscode: een unieke sleutel die in combinatie met de partnerkey de toegang tot de administratie regelt. Deze code wordt door de eigenaar/beheerder van de administratie aangemaakt via een speciaal programma vanuit iMUIS Online. Een stappenplan voor je klant word toegezonden bij het aanvragen van een partnerkey. Tijdens de ontwikkeling en het testen van de koppeling is een speciale omgevingscode: 00000 beschikbaar.

Houd bij het ontwikkelen dus rekening met het feit dat er per gekoppelde administratie een andere omgevingscode moet kunnen worden gekoppeld. En dat er in de live situatie een andere partnerkey dan abcdefghijklmnopqrstuvwxyz zal worden gebruikt.

In de testfase kun je gebruik maken van administratie 2000. Deze administratie is open en toegankelijk voor alle developers. Gebruik daarom in het kader van de Wet AVG nooit persoonlijke data!

STAP 2 LOGIN
Inloggen in de administratie is uiteraard de eerste stap. Tenslotte moet er een verbinding worden gemaakt met de administratie van de klant (iMUIS Online gebruiker). Voor het inloggen is zowel de Partnerkey als de Omgevingscode nodig.

STAP 3 INSTELLINGEN PER ADMINISTRATIE OPHALEN
Om te starten met het maken van een koppeling is het van belang om de basisinstellingen op te kunnen vragen. Hiervoor kan gebruik worden gemaakt van de functie GetAdmInfo. Via deze functie worden onder meer de numerieke grenzen van de grootboekrekeningen, debiteuren en crediteuren opgehaald. Maar ook basisgegevens waaronder: de naam van de administratie, adresgegevens, IBAN-nummer van de gevoerde administratie.

Tip: Nummers van grootboekrekeningen, debiteuren en crediteuren mogen elkaar nooit overlappen. Deze vallen in een bepaalde range.

STAP 4 STAMGEGEVENS (TABELLEN) OPHALEN
Het ophalen van de stamgegevens loopt via de functie GetStamtabelRecords. Via deze functie worden gegevens  uit de verschillende tabellen opgehaald.

Voorbeeld BTW gegevens ophalen: 
Hieronder een voorbeeld van het ophalen van de BTW codes, in dit geval de BTWcodes die net geblokkeerd zijn en horen bij de formuliergroep 1A (BTW-Hoog afdragen)

Dim foutmelding As String = ""
Dim ds_records As New DataSet
Dim ds_selectie As New DataSet
Dim dt_selectie As DataTable = ds_selectie.Tables.Add

dt_selectie.Columns.Add("TABLE", GetType(System.String)).DefaultValue = "BTW"
dt_selectie.Columns.Add("SELECTFIELDS", GetType(System.String)).DefaultValue = "NR" + TAB + "OMSCHR" + TAB + "BTWBER" + TAB + "FORMGRP" + TAB + "PERC"
dt_selectie.Columns.Add("WHEREFIELDS", GetType(System.String)).DefaultValue = "BLOK" + TAB + "BLOKDEB" + TAB + "FORMGRP"
dt_selectie.Columns.Add("WHEREOPERATORS", GetType(System.String)).DefaultValue = "=" + TAB + "=" + TAB + "="
dt_selectie.Columns.Add("WHEREVALUES", GetType(System.String)).DefaultValue = "N" + TAB + "N" + TAB + "1A"
dt_selectie.Columns.Add("ORDERBY", GetType(System.String)).DefaultValue = "NR"
dt_selectie.Columns.Add("MAXRESULT", GetType(System.Int32)).DefaultValue = 0
dt_selectie.Columns.Add("PAGESIZE", GetType(System.Int32)).DefaultValue = 0
dt_selectie.Columns.Add("SELECTPAGE", GetType(System.Int32)).DefaultValue = PageTeller

Dim dr_selectie = dt_selectie.NewRow : dt_selectie.Rows.Add(dr_selectie)

If Not ws1.GetStamtabelRecords(txtPartnerKey.Text, txtOmgevingsCode.Text, txtSessionId.Text, ds_selectie, ds_records, foutmelding) Then
	MsgBox("GetStamtabelRecords (" + CStr(PageTeller) + ") mislukt: " + foutmelding)
Else
	Dim melding As String = "Aantal records op pagina " + CStr(PageTeller) + ": " + ds_records.Tables("DATA").Rows.Count.ToString + ". "
	melding += "Totaal aantal records: " + ds_records.Tables("METADATA").Rows(0)("RECORDCOUNT").ToString + ", "
	melding += "aantal pages: " + ds_records.Tables("METADATA").Rows(0)("TOTALPAGES").ToString + ". "
End If

Dit geeft als resultaat:

<NewDataSet>
  <METADATA>
    <RECORDCOUNT>2</RECORDCOUNT>
    <TOTALPAGES>0</TOTALPAGES>
  </METADATA>
  <DATA>
    <NR>2</NR>
    <OMSCHR>Af te dragen BTW Hoog (code inclusief)</OMSCHR>
    <BTWBER>I</BTWBER>
    <FORMGRP>1A</FORMGRP>
    <PERC>21</PERC>
  </DATA>
  <DATA>
    <NR>12</NR>
    <OMSCHR>Af te dragen BTW Hoog (code exclusief)</OMSCHR>
    <BTWBER>E</BTWBER>
    <FORMGRP>1A</FORMGRP>
    <PERC>21</PERC>
  </DATA>
</NewDataSet>

STAP 5 EEN RECORD TOEVOEGEN AAN EEN STAMTABEL
Voordat er een nieuwe record in de administratie wordt aangemaakt dient er vooraf gecontroleerd te worden of deze reeds aanwezig is. Record controleren zijn mogelijk via de functie GetStamtabelRecords. Het aanmaken van een nieuw record is mogelijk via de functie CreateStamRecord.

Voorbeeld debiteur aanmaken.

Dim foutmelding As String = ""
Dim ds_records As New DataSet

Dim ds_mutatie As New DataSet
Dim dt_selection As DataTable = ds_mutatie.Tables.Add : dt_selection.TableName = "METADATA"
dt_selection.Columns.Add("TABLE", GetType(System.String)).DefaultValue = "DEB"
Dim dr_selection = dt_selection.NewRow : dt_selection.Rows.Add(dr_selection)

Dim dt_data As DataTable = ds_mutatie.Tables.Add : dt_data.TableName = "DATA"
' dt_data.Columns.Add("NR", GetType(System.String)).DefaultValue = "10223" 'Nummer vullen we niet in, dit laten we over aan iMUIS.
dt_data.Columns.Add("ZKSL", GetType(System.String)).DefaultValue = "KING Software B.V."
dt_data.Columns.Add("NAAM", GetType(System.String)).DefaultValue = "D.E. Cloudswitch"
dt_data.Columns.Add("STRAAT", GetType(System.String)).DefaultValue = "De Trompet"
dt_data.Columns.Add("HNR", GetType(System.String)).DefaultValue = "2880"
dt_data.Columns.Add("HNRTV", GetType(System.String)).DefaultValue = ""
dt_data.Columns.Add("POSTCD", GetType(System.String)).DefaultValue = "1967 DD"
dt_data.Columns.Add("PLAATS", GetType(System.String)).DefaultValue = "HEEMSKERK"
dt_data.Columns.Add("BNKIBAN", GetType(System.String)).DefaultValue = "NL47ABNA0117301523"
dt_data.Columns.Add("LAND", GetType(System.String)).DefaultValue = "NL"
dt_data.Columns.Add("EMAIL", GetType(System.String)).DefaultValue = "ditiseentest@muis.nl"
dt_data.Columns.Add("BTWPL", GetType(System.String)).DefaultValue = "B" ' BTW plichtig.

Dim dr_data = dt_data.NewRow : dt_data.Rows.Add(dr_data)
If Not ws1.CreateStamTabelRecord(txtPartnerKey.Text, txtOmgevingsCode.Text, txtSessionId.Text, ds_mutatie, txtNrNieuw.Text, foutmelding) Then
   MsgBox("Aanmaken mislukt: " + foutmelding)
Else
   MsgBox("Aangemaakt, record: " + txtNrNieuw.Text)
   txtDebNr.Text = txtNrNieuw.Text
End If

Dit geeft als resultaat het nieuwe debiteurnummer in ’txtNrNieuw.Text’ terug. (In mijn geval 10076)

STAP 6 EEN RECORD AANPASSEN IN DE STAMTABEL
Als het record reeds bestaat maar niet over dit record is voorzien van onjuiste informatie dan kan deze via de functie UpdateStamRecord worden aangepast. Het aanpassen van de Primarykey is uiteraard niet toegestaan.

Voorbeeld aanpassen debiteur
In het onderstaande voorbeeld passen wij bij de debiteur de naam2 aan van “D.E. Cloudswitch” naar M.Y.N. Debiteur”.

Dim foutmelding As String = ""
Dim ds_records As New DataSet
Dim ds_mutatie As New DataSet
Dim dt_mutation As DataTable = ds_mutatie.Tables.Add : dt_mutation.TableName = "SELECTION"
Dim dt_data As DataTable = ds_mutatie.Tables.Add : dt_data.TableName = "DATA"

dt_mutation.Columns.Add("TABLE", GetType(System.String)).DefaultValue = "DEB"
dt_mutation.Columns.Add("WHEREFIELDS", GetType(System.String)).DefaultValue = "NR"
dt_mutation.Columns.Add("WHEREOPERATORS", GetType(System.String)).DefaultValue = "="
dt_mutation.Columns.Add("WHEREVALUES", GetType(System.String)).DefaultValue = "10076"
Dim dr_selection = dt_mutation.NewRow : dt_mutation.Rows.Add(dr_selection)

dt_data.Columns.Add("NAAM", GetType(System.String)).DefaultValue = "M.Y.N. Debiteur"
 Dim dr_data = dt_data.NewRow : dt_data.Rows.Add(dr_data)

If Not ws1.UpdateStamtabelRecord(txtPartnerKey.Text, txtOmgevingsCode.Text, txtSessionId.Text, ds_mutatie, foutmelding) Then
   MsgBox("Record aanpassen mislukt: " + foutmelding)
Else
   MsgBox("Record correct aangepast.")
End If

STAP 7 EEN JOURNAALPOST (BOEKING) TOEVOEGEN (MEEST GEBRUIKT)
Bij het realiseren van een koppeling is het aanmaken van (een) journaalpost(en) (boekingen) is de functie CreateJournaalpost beschikbaar.

Gerelateerde Artikelen