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

Ange enhet - Integration

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
Fd medlem
Inte tillämpbar

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.
Fd medlem
Inte tillämpbar

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
Fd medlem
Inte tillämpbar

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.
Fd medlem
Inte tillämpbar

            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."


Fd medlem
Inte tillämpbar

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.
Fd medlem
Inte tillämpbar

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. 
Fd medlem
Inte tillämpbar

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.
Fd medlem
Inte tillämpbar

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.
Fd medlem
Inte tillämpbar

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.
Fd medlem
Inte tillämpbar

Om jag läser i manualen på sida 61 så är det ju exakt likadant beskrivet som jag gör, dvs ...

1. Först defineras datastrukturen med "var iData = Api.AdkCreateData(Api.ADK_DB_CODE_OF_UNIT);"

2.  Sedan anger jag vilket namn min nya enhet ska ha " var newUnit = "förp";"

3. Sedan skickar jag in datastrukturen så här "_error = Api.AdkSetStr(iData, Api.ADK_DB_CODE_OF_UNIT, ref newUnit);
"

Men det är som jag beskrivit ovan i punkt 3 som jag får felet "Angivet fält-ID existerar inte för vald tabell."

Ni får gärna säga vad jag gör för fel, vad jag kan se om man jämför med er manual är det på samma sätt jag gör, som ni beskriver man ska göra.

Fd medlem
Inte tillämpbar

Du försöker arbeta mot hela datastrukturen enhet. 
API:t kan inte förstå vad det är för värde du försöker sätta åt dig. Du måste definiera vilket fält du vill sätta värdet i. 

Du arbetar mot ADK_DB_CODE_OF_UNIT - vilket är hela strukturen. 

Fältet du ska sätta heter: ADK_CODE_OF_UNIT_CODE

Jämfört med manualens exempel kring artiklar:

Struktur: ADK_DB_ARTICLE

Fält för artikelnummer: ADK_ARTICLE_NUMBER


Fd medlem
Inte tillämpbar

Tack Johan för din hjälp nu fungerar det.