Mina produkter

Logga in för att följa kategorier och för att få genvägar i denna meny
avbryt
Visar resultat för 
Visa  endast  | Sök istället efter 
Menade du: 

Fd medlem
Inte tillämpbar

"Best practice" ang Visma API (AdkOpen) i Webbmiljö - Visma Integration

Hejsan

Vi håller just nu utveckla ett WebApi som kommer kommunicera med Visma-Api:et. Detta WebAPI kommer fungera som mellanlager till vårt webbaserade kundhanteringssystem (CRM).

Det kommer finnas tillfällen då ett flertal anrop måste ske till Visma och min fråga berör dessa tillfällen.

Vad anser ni är bäst från er sida:
Att öppna och stänga anslutningen till Vismadatabasen för varje webbförfrågan?
Eller
Att låta klienten (vårt CRM) öppna anslutningen genom ett anrop, sedan göra vad ska i flera anrop för att sedan stänga anslutningen i ett sista anrop?

Mvh

3 SVAR 3
Fd medlem
Inte tillämpbar

Hej!

Det beror lite på vad ett anrop innebär. Spontant känns det som det sistnämnda vore bästa sättet att göra det på.
Det är onödigt att göra en Close om man ändå tänker lägga in/läsa ytterligare data från Visma Administration. Så har du en batch med operationer som ska utföras, gör dessa, och stäng företaget när det är klart.
Fd medlem
Inte tillämpbar

Hej Dennis,

Nu har frågan ett par månader på nacken men jag passa på att fråga ändå. 

Alternativ 1 är dåligt av flera olika skäl, bl.a. att du inte vill skapa belastning på ert ekonomisystem via en webbapplikation (en överbelastningsattack mot er sajt hade kunnat slå ut ekonomisystemet/fylla det med skräpdata). Eftersom Administration använder en flatfilsdatabas så är postlåsning också ett stort problem - Codebase-drivrutinen som används kan inte göra postlåsning / rad utan låser hela .DBF-filen när uppdateringar/nyskapande görs.

Som Johan skriver så är alternativ 2 bättre, men beroende på hur tung belastning det handlar om så hade det förmodligen varit bättre att chacha Visma-databasen i en SQL-databas (t.ex mySQL eller SQL Express) och göra alla läs-operationer mot den istället. Att batcha alla operationer inom ramarna för en anslutning är också att föredra. 

Företaget jag representerar har byggt ett eget .Net API ovanpå Vismas API och då kan du göra t.ex. följande:

using (  new SpcsConnection()){
  var customer = new Customer(){ Name = theNewName };
  customer.Save();  
  var invoice = new Invoice() { CustomerNumber = customer.Number };  
  invoice.Rows.Add(new Invoice.Row() {ArticleNumber = "100", Quantity1 = 1, Quantity2 = 1 });
  invoice.Save();
}

Ovanstående hade, inom samma öppning mot visma-databasen, lagt upp en ny kund, använt det av Visma tilldelade kundnumret och skapat en faktura på den kunden samt lagt till en fakturarad mot artikel "100" med beställt- och levererat antal satt till "1". 
Fd medlem
Inte tillämpbar

Hejan Benny!

Du får gärna höra av dig till mig och berätta lite mer om ert API. Finns på carl(punkt)palsson(snabela)pumplagret(punkt)se