Sätta villkor på "selectsatser" - Integration

  • 0
  • 4
  • Fråga
  • Uppdaterades för 6 år sedan
  • Besvarad
  • (Redigerad)
Hej,
Jag önskar funktionalitet för att kunna sätta villkor när man hämtar data via API:t.
Jag skulle ex. vilja kunna hämta alla uppdaterade kunder efter ett specifikt datum.
Idag måste man hämta alla kunder och sedan stega igenom samtliga för att kontrollera timestampfältet och detta är inte optimalt om man har många kunder i sitt Visma Administration.

Ett annat scenario kan vara att man ex. vill hämta en kund med en specifik e-postadress.
Foto på MattiasSwh

MattiasSwh

  • 100 poäng 100 badge 2x thumb

Publicerades för 7 år sedan

  • 0
  • 4
Foto på Joakim Karlsson

Joakim Karlsson, Fd Produktspecialist Visma Lön

  • 35,320 poäng 20k badge 2x thumb
Hej!
Jag förstår din tanke här och tar den vidare till vår utvecklingsavdelning.
Tack för att du framförde den till oss och även gav exempel, det är uppskattat!
Foto på SEAPelle

SEAPelle

  • 124 poäng 100 badge 2x thumb
Ja, det borde vara en sjlvklarhet för nattliga batchkörningar till andra integrationer att snabbt kunna få fram senast uppdaterad information.

Dock borde det idag gå att loopa igenom alla kunder/artiklar/fakturor och jämföra timestamp och är det över ett visst datum skapa en koppling
Foto på Mark

Mark

  • 162 poäng 100 badge 2x thumb
Går det inte att göra en API kommando där man kan använda SQL? t.ex.

int pDataPrice2 = Api.AdkCreateData(Api.ADK_DB_PRICE);

error = Api.AdkExexcute("Select ADK_PRICE_QUANTITY, ADK_PRICE_PRICE from " + pDataPrice2 + " where ADK_PRICE_ARTICLE_NUMBER='A12345' and ADK_PRICE_BASE=0 and ADK_PRICE_PRICE_LIST='00' ORBER BY ADK_PRICE_ARTICLE_NUMBER");

While (error.lrc != Api.ADKE_EOF)
{
//Kod
AdkNext(pDataPrice2);
}

SQL används av oss alla. Den är lättanvänt, men mycket flexible och kraftig!
Foto på Mark

Mark

  • 162 poäng 100 badge 2x thumb
Skulle vara jättebra om det också gick att köra "update" och "insert into"!
Kanske borde vara "AdkExecute" istället för "AdkExexcute", ursäkta jag slog fel..
Foto på Helene Struthers

Helene Struthers, Product Manager

  • 47,020 poäng 20k badge 2x thumb
Hej,

Jag ber att få återkomma med hur vi resonerar kring detta när vi har vår systemarkitekt på plats efter semestern. Nu när vi ser att det finns ett intresse kring detta bör vi reda ut vilka förutsättningar vi har för en sådan funktion.

Tack för er input!
Foto på Mark

Mark

  • 162 poäng 100 badge 2x thumb
Tack för svaret Helene
Foto på Roald Osbakk

Roald Osbakk, Systemarkitekt

  • 480 poäng 250 badge 2x thumb
Först vill jag klargöra hur vårt Api funkar. Vi har inga recordsets eller liknande i minnet alls. Det enda vi har är en post. När man söker och stegar framåt eller bakåt läses aktuell post in i minnet, och man kommer åt dess data via våra funktioner.

Vilka poster man kommer åt och i vilken ordning styrs genom sorteringsordningar. En sorteringsordning är alltså både en ordning och ett filter. Detta motsvarar ett index i FoxPro-databasen.

Om vi tar artikeldatabasen som exempel så finns sorteringsordningen eArticleNr som ger tillgång till alla artiklar i databasen i artikelnr-ordning. Det finns också eArticleWebshop, och den ger tillgång till alla artiklar markerade som webshopsartiklar, sorterade efter artikelnr.

Vill man leta efter en kund med ändringar efter ett specifikt datum - så går det lösa smidigare än beskrivet ovan. Däremot tex epostadress - så får man loopa igenom alla tills man hittar rätt - eftersom vi inte har index för det fältet.

Avsnittet "Arbeta med tidstämplar" i vår referensmanual visar hur man söker efter poster ändrade from en viss tidpunkt.
- Leta reda på vilket fält som är tidstämpeln med AdkGetTimestampField
- Omvandla din datumtid-sträng till en long med AdkDateTimeToLong
- Sätt tidstämpeln i med AdkSetDate
- Kör AdkFind och Loopa med AdkNext
För detaljerna läs mer i manualen på sid 88 i senaste upplagan (daterad 2013-02-22).

Slutligen - jag håller definitivt med att vårt Api har en tröskel man måste komma över, samt att det är vissa funktioner som man saknar jämfört med tex SQL.
Jag tror att vi med en rimlig insats kan komma med förbättringar kring hur man söker, men jag är tveksam till att vi abstraherar vårt Api till någon SQL-liknande syntax så länge vi har nuvarande databaslösning.