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

Få tag i skapad kunds kundnummer - Visma integration (C#)

Sitter med Visma integration och en Windows-applikation (skriven i .NET C#) för att skapa upp ordrar/fakturor från en extern webbtjänst/e-handel. Om en kund i den externa webbtjänsten saknar externt kundnummer (vilket är det kundnummer som används i Visma) så skapas en ny kund upp via Visma integration. Efter att denna kund är uppskapad så skulle jag vilja (på ett enkelt och säkert sätt) få tag i den uppskapade kundens kundnummer för att uppdatera kundens uppgifter i den externa webbtjänsten.

Dvs. i kod (C#) hur får jag enklast tag på uppskapat kundnummer efter att ha kört följande (eller bör det lösas på något annat sätt):

pData = Api.AdkCreateData(Api.ADK_DB_CUSTOMER);
string info = invoice.CustomerName;

Api.ADKERROR error = Api.AdkSetStr(pData, Api.ADK_CUSTOMER_NAME, ref info);

// Sätter mer kunddata

error = Api.AdkAdd(pData);

Obs att jag inte kan använda samma kundnummer i webbtjänsten som i Visma därav vill jag använda Visma nummerserie för nya kunder och sätta detta värde som externt kundnummer i vår webbtjänst.

Mvh/
Christian (genom Henrik)

5 SVAR 5
Fd medlem
Inte tillämpbar

Hej!
Så länge datastrukturen du har skapat via AdkCreateData() för kunden är kvar kan du hämta ut värdet genom en AdkGetDouble(). Alltså, direkt efter AdkAdd(), använd AdkGetDouble() för att hämta värdet på ADK_CUSTOMER_NUMBER.

Du kan även hämta ut nästa kundnummer i fältet ADK_PRM2_NEXT_CUSTOMER_NO. Om du valt att programmet skapar kundnummer efter en nummerserie är det senaste kundnumret detta värdet -1.

Hoppas det hjälper dig!
Fd medlem
Inte tillämpbar

Hej!

Och tack för snabbt svar! Det funkade fint, dock fick jag använda AdkGetStr() istället för AdkGetDouble() då kundnumret tydligen är en sträng, dvs. följande kod löste problemet:

var customerNo = new String(' ', 16);
var error = Api.AdkGetStr(pData, Api.ADK_CUSTOMER_NUMBER, ref customerNo, 16);

Tack för hjälpen!
Fd medlem
Inte tillämpbar

Skönt att höra att det löste sig och tack för återkopplingen!
Fd medlem
Inte tillämpbar

Hej Henrik, 

Jag ser att du redan fått svar på frågan men jag tänkte bara flika in ett alternativ här. Vismas API är ibland lite besvärligt att arbeta med, speciellt för oss .Net-utvecklare som är vana vid moderna ORM-lager. 

Företaget jag representerar har gjort ett eget API ovanpå Vismas API som möjliggör följande typ av kod

public string CreateCustomer(string name){  var customer = new Customer() { Name = name };
  customer.Save();
  return customer.Number;
}

När .Save() har anropats för en ny kundpost så finns alltså det tilldelade kundnumret i propertyn "Number". Klart enklare än Vismas API. 
Fd medlem
Inte tillämpbar

Så mycket bättre 🙂