De installatie van ADCS (Automated Data Capture System) voor Microsoft Dynamics NAV (Navision) 5.0 en hoger is redelijk simpel. Wel zijn er een paar dingetjes waar rekening mee moet worden gehouden.

Als eerste moet de NAS (Navision Application Server) geinstalleerd worden. Als er nog geen NAS is geinstalleerd kun je dit doen door de setup te gebruiken, anders moet je dat handmatig doen. Ik ga er vanuit dat je weet hoe dat werkt (nassql.exe startupparameter=ADCS ADCSID=11322, nettype=default, server=<naam of IPadres van server>, company=<duh>, database=<nogmaal duh>, appservername=<naam van de service>). Als startupparameter gebruik je ADCS ADCSID=11322. Als de NAS geinstalleerd is, moet de aanmelding van de NAS worden aangepast, zodat er gebruik wordt gemaakt van een Windows aanmelding. De gebruiker kan gewoon een Domain User zijn, maar - en dit is belangrijk - moet wel lokaal administratieve rechten hebben op de server. Vergeet deze gebruiker ook niet aan te maken in de Navision database, en deze superrechten te geven.

Dan moet de VT100 Terminalserver worden geinstalleerd. Dit is een kwestie van de setup starten, paar keer op volgende klikken, en het is klaar.

Start de NAS en de VT100 software (in die volgorde), start een DOSprompt, en start telnet, door telnet 127.0.0.1 6666 in te tikken. Als het goed gaat, krijg je een melding dat er een miniform moet worden ingesteld als startform, of je krijgt netjes het startformulier.. Waarschijnlijk gaat het niet goed, en krijg je de melding "NAS error: Value cannot be null"

Meld je dan op de server aan met het account waarmee de NAS wordt opgestart, en start Navision. Maak gebruik van de Windows aanmelding, en je zou nu toegang moeten hebben tot de database. Ga naar Administration->Warehouse->Setup ADCS->ADCS encryption, en klik "create keys". Er wordt nu een sleutelpaar aangemaakt. Start de NAS en de VT100 software opnieuw, en probeer het telnet commando opnieuw. Nu zou je wel het goede scherm moeten zien.

Als de connectie niet wordt geaccepteerd, kan dat een paar oorzaken hebben. de VT100 software luistert alleen naar het IPadres wat wordt opgegeven bij de installatie. Standaard staat dit op 127.0.0.1, en kun je alleen met dit IPadres, of met Localhost de server bereiken. Het commando telnet %computername% 6666 werkt niet, net als een telnet naar het "echte" IPadres. Om dat op te lossen moet je even de registry induiken, en naar de key HKEY_LOCAL_MACHINE\SOFTWARE\Navision\ADCS\VT100Plugin\Symbol1 gaan. Daarin vind je de Plugin ServerIP, en dit staat op 127.0.0.1. Verander dit naar het correcte IPadres, en je kunt de server nu ook vanuit andere plaatsen bereiken. Localhost en 127.0.0.1 werken dan echter niet meer.

In deze key zie je trouwens ook nog wat extra instellingen: Screen lines geeft aan hoeveel regels er getoond kunnen worden, screen width geeft de breedte van het scherm aan. TCP poort het poortnummer (en dat kun je gewoon veranderen). de Plugin TCP port waarde wordt niet meer gebruikt. Als je een van deze waardes aanpast, is het verstandig zowel de NAS als de VT100 software opnieuw te starten.

Een andere dwarsligger waardoor de connectie niet werkt kan je virusscanner zijn - zeker diegenen waar ook een soort desktop firewall in zit, zoals McAfee Enterprise. Deze blokkeren het IRC verkeer, en laat dat nou net gebruik maken van poort 6666. Oplossing: poort aanpassen of de virusscanner aanpassen, zodat deze poort wel wordt doorgelaten.

Windows X64 en andere talen dan engels

Als de connectie na aanpassing van de firewall en/of virusscanners nog niet werkt, wordt het eens tijd om in de applicationlog te duiken. Op 64bits machines kan het namelijk gebeuren dat je een aantal foutmeldingen krijgt:

==================================

Internal Error in Navision VT100Plugin
Object : RegistryReader
Error No : 7B
Description : Wrong Values set: Object reference not set to an instance of an object.
Internal Error in Navision VT100Plugin
-----------------------------------
Object : Registry_GetNasPipes
Error No : 5B
Description : Object reference not set to an instance of an object.
Internal Error in Navision VT100Plugin
-----------------------------------
Object : mdlInitialize
Error No : 7B
Description : Error occured in Plugin Main
Object reference not set to an instance of an object.
==================================

Deze foutmeldingen ontstaan omdat tijdens de installatie de gegevens netjes in de registry worden weggeschreven waar ze horen: In de  HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Navision key. In de programmatuur is het blijkbaar zo geschreven dat er geen rekening wordt gehouden met 64bits platformen, en wordt er gelezen (en geschreven) naar de HKEY_LOCAL_MACHINE\SOFTWARE\Navision key. Dat werkt dus niet, want die bestaat niet. De oplossing is gelukkig simpel: kopieer de hele Navision key naar HKEY_LOCAL_MACHINE\SOFTWARE, en dit probleem is dan ook weer opgelost.

Deze oplossing werkt overigens ook als je de volgende melding krijgt:
===================================
the call to member ReceiveSymetricKey failed. mscorlib returned the following message:
Error occurred while decoding OAEP padding.
===================================
Dan bestaat de goede key wel, maar staan er foute gegevens in, bijvoorbeeld omdat de keylengte is aangepast

Een andere melding die er op lijkt:
=================================
The call to member ReceiveSymetricKey failed. SaferStream returned the following message:
SaferStream: SaferStream: Could not unprotect the data.
=================================

Dan is de key wel op de goede plek gevonden, maar is het de verkeerde. Ik kwam dit tegen omdat ik het sleutelpaar had aangemaakt onder de verkeerde gebruiker (dus niet de gebruiker waarmee de NAS wordt gestart)

 

 

 

Draai je dan een niet-engelse server, dan gaat er ook een en ander mis: Je krijgt dan de volgende foutmeldingen:

There was a problem replying to internal key <key>. A reply could not be received for terminal <key>. Terminal will be resetted. Thread <key>.

en

Something went wrong when trying to reply to internal key <key>. Object reference not set to an instance of an object.

Om dit op te lossen moet je de multilanguage captions van de tabellen 7700 t/m 7703 verwijderen, zodat alleen de captions van ENU er nog staan. Daarna zou ook dit moeten werken. Dit moet ook met de captions van de options gebeuren. Je kunt ze uiteraard ook volledig verwijderen...

Als de installatie dan gelukt is, en alles lijkt goed te lopen, dan kun je bij het werken met ADCS ook nog eens tegen een foutmelding aanlopen. Foutmeldingen met "Root Element is missing", "Invalid characters" en nog een paar dingetjes, zoals verbindingen die vast lijken te lopen. Je denkt eerst dat je iets verkeerd geprogrammeerd hebt, maar uiteindelijk blijkt het gewoon te komen door een nogal buggy stukje software: De VT100 server is niet altijd even stabiel. Dat was met 5.0 al zo, maar in NAV 2009 lijkt het niet verbetert te zijn. Om een nieuwe versie van de VT100 server te krijgen, moet je een hotfix aanvragen via https://mbs2.microsoft.com/Knowledgebase/kbdisplay.aspx?wtntzsmnwukntmmyvlxuzlwukkqpovrvlmxumvrusppqwyol (aanmelden op Partnersource). 't Gaat om Knowledgebase article KB949699. Als je de ADCS soiftware deinstalleert, en deze hotfix installeert, zorgt het ervoor dat je problemen voorbij zijn - in ieder geval op het technische vlak.

Installatie van meerdere VT100's en Nassen

Het is ook mogelijk om meerdere VT100 servers en NASServers te gebruiken. Er is echter een beperking: Per server kan maar één VT100 service worden gemaakt. Op zich gaat de installatie hetzelfde als op de eerste server, met een verschil: Het poortnummer (standaard 11322) moet anders zijn. Dat houdt dus ook in dat de aanroep via de NAS ook aangepast moet worden. Het ADCSID is immers de gebruikte poort. Nog een belangrijk puntje is dat je op elke server de encryptionkeys moet aanmaken. Deze worden per server opgeslagen, niet per NAS en niet per database.

Het is ook mogelijk om per VT100 server meerdere NASservers te gebruiken. Hiervoor verwijs ik graag naar

http://blogs.msdn.com/b/microsoft_dynamics_nav_sustained_engineering/archive/2008/07/31/how-to-deploy-multiple-nas-es-in-adcs.aspx

Dit kost uiteraard wel meerdere NASserver licenties.