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: 
Magnus31
NY MEDLEM

Ange enhet - Integration

(uppdaterad av Tinna Gunnarsson MODERATOR ‎2020-03-30 16:33 )

Jag försöker skapa en order rad där jag inte anger visma's artikel nummer för artikel utan anger endast en benämning, pris och enhet. Det går bra förutom att jag inte får enhet att fungera. Jag anger en enhet som inte finns inlagd sedan tidigare i Visma så här..




info = row.Unit;
_error =
Api.AdkSetStr(pRow, Api.ADK_OOI_ROW_UNIT, ref info);

Men så fort jag anger det så kommer inte ordern in alls i Visma, jag får heller inget fel.. .





Kan man inte ange enhet som inte finns inlagd sedan tidigare? Borde man i så fall inte få ett felmeddelande? Och hur lägger jag till en enhet om den inte finns?

12 SVAR 12
Roald Osbakk
ANSTÄLLD

Re: Ange enhet - Integration

Testat återskapa enligt beskrivningen ovan och får fel på det ställe jag förväntar mig (dvs i AdkAdd) och den felkod jag förväntar mig (ADKE_ARTICLE_INVALID_UNITCODE).

I AdkSetStr kan du få fel av typen företaget är inte öppnat, du har inte initierat pdata-strukturen, fält-id är ogiltigt, fältet är inte ett strängfält, fältet finns inte i aktuell variant av programmet eller är inte tillgängligt pga av företagsinställningar och slutligen slutligen att strängen inte är nullterminerad.
Magnus31
NY MEDLEM

Re: Ange enhet - Integration

Jag använder inte AdkAdd utan endast AdkSetStr, ska AdkAdd användas före eller efter AdkSetStr när man sätter enhet, Vore bra om du visade hur man gör också... tack på förhand
Roald Osbakk
ANSTÄLLD

Re: Ange enhet - Integration

Kort beskrivet ska man göra följande steg för att lägga till en post i databasen:
AdkCreateData - skapar minnesutrymme för önskade ändringar
Ett antal AdkSetXXX - Sätter de värden du vill ha på posten i datastrukturen (man jobbar fortfarande i minnet).
AdkAdd - Lägger till posten i databasen
AdkDeleteStruct - lämnar tillbaks minnet

Detta finns beskrivet i detalj i vår Referensmanual. Som ytterligare hjälp har vi i vårt utvecklarpaket exempelprojet skrivna i C++ resp C#. Där kan du titta på kod som tex skapar kunder och fakturor.

Har du inte tillgång till dessa eller behöver en uppdaterad version, kan du maila vår tekniksupport så får du den senaste version av utvecklarpaketet.
Magnus31
NY MEDLEM

Re: Ange enhet - Integration

            pData = Api.AdkCreateData(Api.ADK_DB_ORDER_HEAD);
            var iData = Api.AdkCreateData(Api.ADK_OOI_ROW_UNIT);
            var newUnit = "förp";
            _error = Api.AdkSetStr(iData, Api.ADK_OOI_ROW_UNIT, ref newUnit);

Men får får detta fel vid Api.AdkSetStr "Angivet fält-ID existerar inte för vald tabell."


Roald Osbakk
ANSTÄLLD

Re: Ange enhet - Integration

Jag rekommenderar fortfarande att du läser referensmanualen eller tittar i exempelprojekten. På båda ställen har du kodexempel som tydligt beskriver hur du skapar en faktura. Det enda du behöver göra är att byta ut ADK_DB_INVOICE_HEAD mot ADK_DB_ORDER_HEAD i dessa exempel, så har du kod som skapar en order istället.

I koden ovan försöker du skapa orderader med fel funktion samt att du använder en definition för ett fält istf en databas.
Magnus31
NY MEDLEM

Re: Ange enhet - Integration

Jag kan redan skapa en order, det jag försöker göra är att skapa en enhet som inte finns och då får jag felet jag nämner. 

Re: Ange enhet - Integration

Då får du följa de stegen min kollega beskrev ovan med tabellen för enhetskoder (ADK_DB_CODE_OF_UNIT) och använda de fältdefinitioner som tillhör tabellen enheteskod (ADK_CODE_OF_UNIT_xxx).

För ökad förståelse hur du ska göra behöver du titta i vårt material som följer med utvecklarpaketet.
Magnus31
NY MEDLEM

Re: Ange enhet - Integration

Ok, fast när jag använder det på följande sätt...

            var iData = Api.AdkCreateData(Api.ADK_DB_CODE_OF_UNIT);
            var newUnit = "förp";
            _error = Api.AdkSetStr(iData, Api.ADK_DB_CODE_OF_UNIT, ref newUnit);

Så får jag fortfarande samma fel. Jag hittar heller inga exempel på hur man sätter in en ny enhet i varken dokumentationen eller i era kod exempel. Vi hade tjänat mycket tid på om ni kunde ge ett fungerande kod exempel istället.
Johan Lundkvist
FD ANSTÄLLD

Re: Ange enhet - Integration

Det kan nog stämma att vi inte har exempel på hur en ny enhet skapas. Det finns däremot exempel på hur du skapar en artikel eller en kund. Bägge följer samma grundläggande princip, som att skapa enheter. Du kan läsa mer hur du gör detta på sida 60 och framåt i referensmanualen.