Aan de slag

Omdat niet alle ontwikkelaars iMUIS kennen hieronder een kort stappenplan hoe te beginnen en waar e.e.a.  terug te vinden.

Voor het maken van een koppeling zijn twee codes noodzakelijk n.l.

1. Partnerkey: Een unieke sleutel voor iedere ontwikkelaar. Deze sleutel wordt door MUIS Software uitgegeven en identificeert de ontwikkelaar.  Uw eigen partnerkey krijgt kunt u aanvragen via de website. Voor het ontwikkelen van de software is een speciale partnerkey: abcdefghijklmnopqrstuvwxyz beschikbaar.

2. 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 uw client wordt u toegezonden bij het aanvragen van uw partnerkey. Voor het ontwikkelen van de software 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.

Hoe te beginnen:
1. Login
Inloggen in de administratie is uiteraard de eerste stap. Tenslotte moet er een verbining worden gemaakt met de administratie van de client.
Voor het inloggen heeft u de Partnerkey en de Omgevingscode nodig. Zie ook de pagina: Login.

2. Haal administratie afhankelijke instellingen op.
Als u wilt weten welke grenzen er zijn voor debiteur/crediteuren/grootboekrekeningen omdat u een nieuwe debiteur/crediteur wilt aanmaken dan kunt u hiervoor gebruikmaken van een speciale functie GetAdmInfo, via deze functie is het mogelijk om de basisgegevens zoals: Administratie NAW gegevens, maar ook de grenzen van rekeningen op te vragen.

Bijvoorbeeld is het bij het aanmaken van debiteuren/crediteuren van belang te weten in welke range de debiteuren/crediteuren vallen. In iMUIS / iMUIS Online mogen Grootboekrekeningen, debiteuren en crediteuren elkaar nl niet overlappen.
Zie de pagina: GetAdmInfo

3. Haal gegevens op uit de stamtabellen.
Het ophalen van de gegevens loopt via de functie GetStamtabelRecords. Via deze functie kunt gegevens ophalen uit de verschillende tabellen van iMUIS / iMUIS Online. In dit voorbeeld halen we de BTW gegevens op.
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>

4. Voeg een record toe aan de stamtabel.
Voordat u een record gaat aanmaken in de administratie is het uiteraard logisch dat we eerst controleren of dit record aanwezig is. Dit kan via de functie zoals beschreven bij GetStamtabelRecords. (Zie hierboven voor een voorbeeld) Als bljkt dat het record nog niet bestaat kunt u dit aanmaken via de functie CreateStamRecord. In dit voorbeeld maken we een debiteur aan.

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 = "MUIS 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)

5. Pas een record aan in de stamtabel.
Als het record al bestaat, maar niet de juiste informatie bevat dan kan dit via de functie UpdateStamRecord worden aangepast. Aanpassen van de Primarykey is uiteraard niet toegestaan.
In onderstaande passen we 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

CreateJournaalpost.

Een van de meest voorkomende acties via de Cloudswitch is het aanmaken van een of meerdere journaalposten. Hiervoor is dan ook een speciale functie beschikbaar:

Hieronder dan ook een voorbeeld van een eenvoudige journaalpost en een zgn uitgeplitste journaalpost. Beide zijn van een debiteur-factuur opboeking. De eenvoudige is icm één Btw-soort en één omzetrekening. De tweede is icm meerdere Btw-soorten en meerdere omzetrekeningen.
Dit staat uitgebreid beschreven bij de pagina CreateJournaalPost.