Mina produkter

Logga in för att följa kategorier och för att få genvägar i denna meny
Visma Administration, Fakturering & Förening
avbryt
Visar resultat för 
Sök istället efter 
Menade du: 
Highlighted
NY MEDLEM

AdkNet4Wrapper koppling till 2017.1 Administration

(uppdaterad av Tinna Gunnarsson MODERATOR ‎2020-03-12 12:35 )

Har haft en fungerande integrationslösning med tidigare versioner av Admin 2000, men efter uppdatering till 2017.1 så slutade det att fungera.

 
 

Får följande felmeddelande:

 
Unable to load DLL 'adk.dll': The specified module could not be found.
 

Jag har flyttat adk.dll och AdkNet4Wrapper till min BIN mapp som jag alltid har gjort vid versionsuppdateringar.

 
 

Det är en egenbygd webbintegration byggd i C# asp.net

17 SVAR 17
Highlighted
NY MEDLEM

Re: AdkNet4Wrapper koppling till 2017.1 Administration

Hej Henrik, 

Att kopiera adk.dll och AdkNet4Wrapper.dll till din egen bin-mapp är fel sätt att använda Vismas API och riskerar att leda till att adk.dll inte kan hitta alla sina beroenden när den laddas. 

I tidigare versioner av Visma Administration har detta inte varit något problem. Iom version 2017.1 så har adk.dll nu ytterligare beroenden vilket nu skapar problemet du stött på. 

Korrekt sätt att använda adk.dll är att låta den laddas från den platsen som Vismas installationsprogram placerar den i, d.v.s. Gemensamma Filer-mappen. Det finns två olika sätt att upp nå det.

Alternativ 1: Lägg in sökvägen till Gemensamma Filer-mappen i PATH-miljövariabeln i Windows. 

Alternativ 2: Innan du i din kod gör första anropet till en metod i adk.dll så anropar du Directory.SetCurrentDirectory med sökvägen till Gemensamma Filer-mappen. Genom att göra det så instruerar du .Net att söka i den katalogen efter dll-filer och den kommer då att hitta adk.dll när du gör ditt anrop. 

Mer information om Directory.SetCurrentDirectory hittar du på https://msdn.microsoft.com/en-us/library/system.io.directory.setcurrentdirectory(v=vs.110).aspx

Mvh,
Benny Olsson
Infostep AB
Highlighted
NY MEDLEM

Re: AdkNet4Wrapper koppling till 2017.1 Administration

Hej och tack för svar.

Enda stället som jag hittar adk.dll är i C:\Program Files (x86)\SPCS\SPCS Administration

Det är ju dock ingen mapp som är utdelad.

Visma är installerad på en server och min webbapp på en annan. 
Är det på webbservern som jag ska skapa en path sökväg till adk.dll som ligger på den andra servern?
Highlighted
NY MEDLEM

Re: AdkNet4Wrapper koppling till 2017.1 Administration

Hej,

När du anropar AdkOpen så skickar du in två sökvägar, dels till Gemensamma Filer och dels till det som tidigare var företags databasmapp. 

Om Adk.dll saknas i Gemensamma Filer-mappen så finns det en stor risk att din installation av Visma Administration är felaktig och bör då göras om. 

Sökvägen till platsen där Adk.dll finns ska läggas i Path-miljövariabeln på den server/dator där din integrationsapplikation körs. Om adk.dll finns i en utdelad mapp så är det den kompletta UNC-sökvägen som ska läggas in som miljövariabel.
Highlighted
NY MEDLEM

Re: AdkNet4Wrapper koppling till 2017.1 Administration

Stort tack Benny...

Jag hade inte adk.dll i min mapp "gemensamma filer"
Provade att reparera installationen men fick aldrig dit den ändå.
Avinstallerade 2017.1 och installerade 2017 och då hamnade adk.dll i "gemensamma filer"

Kör nu med Version 2017 igen, och har lagt till sökvägen i PATH-miljövariabeln.
Nu kan jag köra min applikation utan att placera adk.dll i min Bin mapp, vilket jag inte tidigare har kunna göra.

Nu borde jag ju kunna installera 2017.1 igen och få det att fungera, men jag avvaktar nog lite innan det släpps en ny version
Highlighted
NY MEDLEM

Re: AdkNet4Wrapper koppling till 2017.1 Administration

Fick du det att fungera?
NY MEDLEM

Re: AdkNet4Wrapper koppling till 2017.1 Administration

Hej!

Jag har inte testat 2017.1 efter att jag modifierat i PATH-inställningarna.


Avvaktar en uppdatering till innan jag installerar.

Jag har dock löst mitt grundproblem med 

Unable to load DLL 'adk.dll': The specified module could not be found.
Highlighted
NY MEDLEM

Re: AdkNet4Wrapper koppling till 2017.1 Administration

Läs dokumentationen!
Korrekt sätt är att läsa ut sökvägen till dll:erna är via registret. Nycklar finns i dokumentationen och det är dessa man ska följa.
Från v2017.1 så ligger adk.dll i programmappen och inte i gemensamma filer. Det är inte ett problem om man följer riktlinjerna för hur apiet ska användas.
Använder man apiet från annan maskin som inte ska köra programmet annars så gör man en integrationsinstallation på den maskinen. Då har man rätt filer installerade och registernycklar att läsa ut.

Registerinformation
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\SpcsAdm.exe innehåller sökvägen till programfilen för Visma Administration.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\SpcsFor.exe innehåller sökvägen till programfilen för Visma Förening.
De nycklar som kan vara av intresse för Visma Integration är:
• AdkDll – innehåller sökvägen till katalogen där adk.dll ligger
• CommonFiles – innehåller sökvägen till mappen Gemensamma filer
• AdmIni – innehåller sökvägen till katalogen som innehåller spcsadm.ini respektive spcsfor.ini
Nycklarna heter på ett 64-bitars windows HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\App Paths\SpcsAdm.Exe resp HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\App Paths\SpcsFor.Exe.
Highlighted
NY MEDLEM

Re: AdkNet4Wrapper koppling till 2017.1 Administration

Har nu vågat att testa att uppdatera till senast versionen av visma 2017.12

dock får jag inte ordning på min integration ändå.

Öppnar min koppling på nedanstående vis

error = AdkNet4Wrapper.Api.AdkOpen2(ref sys, ref ftg, ref name, ref pwd);
    if (error.lRc != AdkNet4Wrapper.Api.ADKE_OK)
    {
        String errortext = new String(' ', 200);
        int errtype = (int)AdkNet4Wrapper.Api.ADK_ERROR_TEXT_TYPE.elRc;
        AdkNet4Wrapper.Api.AdkGetErrorText(ref error, errtype,
        ref errortext, 200);
    
        //alert(errortext);
        <script type="text/javascript">
            alert("@errortext");
        </script>
    }

Här får jag felkoden "Felaktig sökordning" Vad kan detta bero på.
Highlighted
NY MEDLEM

Re: AdkNet4Wrapper koppling till 2017.1 Administration

Jag har inte fått det till att fungera än.
Just problemet med adk.dll har jag löst.
Det smidigaste är helt enkelt att installera integrationsklienten på webservern så ordnar den med alla registernycklar och PATH inställningar.

Mitt problem nu är att när jag försöker öppna databasen så får jag "Felaktig sökordning" 

Hur går det för dig?