Exempel1 Enklast möjliga import av kund Vi börjar med att skapa en kund utan någon som helst koppling till något register. Mest för saken skull lägger vi till en adress med kundnr, gatunamn, postnr och stad. Vi sätter option= autocreate för vi vill inte göra något annat än att skapa denna kund. Vi lägger även till en key= ABC123 som är vår unika identifierare för kunden i denna XML fil. Värdet kan i teorin vara precis vad som helst, men det är lämpligt att hålla sig till omkring 10-16 tecken, vilket vi skall se senare. Detta sätt fungerar att använda sig av om man alltid vet vilket kundnummer kunden skall ha i Visma, och om man aldrig tänker sig att importera en kund vid mer än ett tillfälle. XML fil: <atkunder key="abc123" option="autocreate"> <CUSTOMER_NUMBER>ABC123</CUSTOMER_NUMBER> <CUSTOMER_NAME>Kalle Svensson</CUSTOMER_NAME> Resultat i Visma:
Exempel 2 Kund som följer Visma Administrations nummerserie Om man inte känner till vilket kundnummer kunden skall få i Visma Administration kan det vara lämpligt att använda sig av nummerserien istället. Exemplet nedan kommer skapa en kund med nästa lediga kundnummer i Visma. Exemplet ovan kommer bara att lyckas importeras vid ett tillfälle, medan exemplet nedan kommer kunna köras igenom obegränsat antal gånger. <atkunder key="abc123" option="autocreate"> <! - CUSTOMER_NUMBER BORTAGET --> <CUSTOMER_NAME>Kalle Svensson</CUSTOMER_NAME> Resultat:
Exempel 3 Import av nu kund, eller uppdatering av existerande kund. Ett vanligare fenomen är att man inte vet om kunden finns i Visma sedan tidigare och därför inte alltid vill skapa nya kunder, bara då den inte finns, annars skall kunden uppdateras med adressinformation. Därför byter vi ut autocreate till edit, vilket talar om för XML-ImExport att vi skall lägga till eller ändra kunden. Vi lade tidigare till en key= ABC123 som beskrevs som en unik identifierare för denna kund i filen. Denna identifierare fungerar även till att söka upp motsvarande dokument, kund eller artikel i Visma Administration. Vi skall använda det här i dess mest naiva fall där vi vet vilket kundnummer vi vill ha. Därför är här key= ABC123 lika med Visma kundnr. Vi behöver göra utöver det är att gå in i: Arkiv -> Inställningar -> Import -> Kunder -> Leta kund genom -> SPCS Register. Välj askundnr. Detta innebär at vi använder oss av Visma Integrations sökordning för kundnummer. Mer om detta i nästa exempel. <atkunder key="abc123" option="edit"> <CUSTOMER_NUMBER>ABC123</CUSTOMER_NUMBER> <CUSTOMER_NAME>Kalle Svensson</CUSTOMER_NAME> Nu kan vi importera om denna fil obegränsat antal gånger och då uppdatera Visma kund ABC123 med nya adresser osv.
Exempel 4 Import utan kundnummer. Som ni säkert förstod ovan är det möjligt att importera filer där vi inte anger key= <kundnr> utan en annan näst intill godtycklig identifierare för kunden. Vi kan t.ex. använda oss av de övriga Integrationsindexen, t.ex. askortnamn för att leta upp vilken kund vi har. Vi har även möjlighet att använda oss av ODBC frågor på tabellen och söka efter ett godtyckligt värde, t.ex. Organisationsnummer, eller Anmärkning2. Nedan följer ett exempel på hur man kan sätta upp en import av kund via organisationsnummer. Vad som är viktigt att tänka på när man använder ett annat fält än kundnummer som identifierare är att det är lämpligt att spara undan nyckelfältet någonstans på det objekt man importerar, i detta fall kunden och mer specifikt kund/organisationsnummer. Detta för att man skall kunna hitta kunden via samma nyckel nästa gång man importerar en fil. <atkunder key="555555-5555" option="edit"> <CUSTOMER_NAME>Kalle Svensson</CUSTOMER_NAME> <CUSTOMER_ORGANISATION_NUMBER>555555-5555</CUSTOMER_ORGANISATION_NUMBER>
Exempel 5 Import - blandade fält. Varje importobjekt (kund, artikel, order, etc.) behöver inte se ut på samma sätt. Det är fullt möjligt, t.o.m. rekommenderat att bara uppdatera de fält ni tänker er att uppdatera. Två anledningar Filerna blir mindre. Mindre som kan bli fel vid importen. XMLImExport behandlar <xmltag/> som String( ) och inte Null. Exemplet nedan visar på hur importen kan se olika ut för två kunder. Vi uppdaterar adressen på ABC123 och för DFG321 skapar/ uppdaterar vi kundens namn och kortnamn. <atkunder key="abc123" option="edit"> <CUSTOMER_NUMBER>ABC123</CUSTOMER_NUMBER> <CUSTOMER_NAME>Kalle Svensson</CUSTOMER_NAME> <atkunder key="dfg321" option="edit"> <CUSTOMER_NUMBER>DFG321</CUSTOMER_NUMBER> <CUSTOMER_NAME>Klas Klasson</CUSTOMER_NAME> <CUSTOMER_SHORT_NAME>Claes</CUSTOMER_SHORT_NAME>
Exempel 6 Import av en artikel. Import av artiklar fungerar i princip likadan som för kunder. Skillnaden är naturligtvis att vi byter nod i trädet som vi använder oss av, <articles/> istället för customers. Nedan kommer importera en artikel i Visma med artikelnummer 711. Vill vi ändra sökbegrepp till något annat görs det i: Arkiv -> Inställningar -> Import -> Artiklar -> Leta artikel genom -> SPCS Register. Vi kan använda Visma Administrations register, eller ODBC. <customers/> <articles> <atartiklar key="711" option="edit"> <ARTICLE_NUMBER>711</ARTICLE_NUMBER> <ARTICLE_NAME>Sjuettett</ARTICLE_NAME> <ARTICLE_NAME_X>Annan benämning</article_name_x> </atartiklar> </articles>
Exempel 7 Import av order Så här kan en enkel order se ut. Ett par saker som är intressanta: Vi sätter customerkey till samma värde som en av kundernas key. På så vis kan vi koppla ihop ordern med kunden. Denna koppling måste finnas för att filen skall godkännas. Order innehåller både atorder och rows. Notera i exemplet hur det är positionerade. Vi skapar en artikelrad genom att sätta <OOI_ROW_ARTICLE_NUMBER/>. Denna kan teoretiskt vara tom, men det är bra att särskilja på artikelrader och textrader. Textrader ger er möjlighet att skriva 60 tecken istället för 30 som är den maximala längden på en artikelbenämning. Textrad skapas genom att sätta <OOI_ROW_TYPE_OF_ROW>T</OOI_ROW_TYPE_OF_ROW>. Den kan vara 60 tecken lång men kan inte innehålla kvantiteter eller styckpriser. Därför måste vi sätta radtotalen istället. Vi sätter även QUANTITY 1 och 2 i detta exempel. Levererat (1) / Beställt antal (2), eftersom vi har satt styckpris. Vi vill använda kundens priser som redan är angivna i Visma behöver vi inte ange detta fält alls. <atkunder key="abc123" option="edit"> <CUSTOMER_NUMBER>ABC123</CUSTOMER_NUMBER> <CUSTOMER_NAME>Kalle Svensson</CUSTOMER_NAME> <articles/> <orders> <order> <atorder customerkey="abc123" option="edit"> <OOI_HEAD_CUSTOMER_ORDER_NUMBER>123</OOI_HEAD_CUSTOMER_ORDER_NUMBER> <OOI_HEAD_CARGO_AMOUNT>98</OOI_HEAD_CARGO_AMOUNT> </atorder> <rows> <row> <OOI_ROW_ARTICLE_NUMBER>100</OOI_ROW_ARTICLE_NUMBER> <OOI_ROW_QUANTITY1>5</OOI_ROW_QUANTITY1> <OOI_ROW_QUANTITY2>5</OOI_ROW_QUANTITY2> <OOI_ROW_PRICE_EACH_CURRENT_CURRENCY>199</OOI_ROW_PRICE_EACH_CURRENT_CU RRENCY> <row> <OOI_ROW_TEXT>Textrad a 99kr</OOI_ROW_TEXT> <OOI_ROW_TYPE_OF_ROW>T</OOI_ROW_TYPE_OF_ROW> <OOI_ROW_AMOUNT_CURRENT_CURRENCY>99</OOI_ROW_AMOUNT_CURRENT_CURRENCY> </rows> </order> </orders>
Exempel 8 Import av order igen. Samma exempel som ovan igen, fast här illustrera vi ordningen mellan kundens information och information på order. Vi sätter <OOI_HEAD_DOCUMENT_DATE1/> - Orderdatum Vi sätter <OOI_HEAD_DOCUMENT_DATE2/> - Leveransdatum Vi sätter <OOI_HEAD_CUSTOMER_NAME/> till något annat än vad som står i <CUSTOMER_NAME/> och detta leder till att vi får en kund med namnet Kalle Svensson och en order med namnet Lisa. Kan vara bra om man vill byta ut data på orderhuvudet till något annat än vad som står på kunden. På samma tema som ovan byter sätter vi värdet på <OOI_ROW_TEXT/> - vilket innebär att vi skriver över artikelns benämning. <atkunder key="abc123" option="edit"> <CUSTOMER_NUMBER>ABC123</CUSTOMER_NUMBER> <CUSTOMER_NAME>Kalle Svensson</CUSTOMER_NAME> <articles/> <orders> <order> <atorder customerkey="abc123" option="edit"> <OOI_HEAD_CUSTOMER_NAME>Lisa</OOI_HEAD_CUSTOMER_NAME> <OOI_HEAD_CUSTOMER_ORDER_NUMBER>123</OOI_HEAD_CUSTOMER_ORDER_NUMBER> <OOI_HEAD_CARGO_AMOUNT>98</OOI_HEAD_CARGO_AMOUNT> <OOI_HEAD_DOCUMENT_DATE1>2005-05-05</OOI_HEAD_DOCUMENT_DATE1> <OOI_HEAD_DOCUMENT_DATE2>2005-06-04</OOI_HEAD_DOCUMENT_DATE2> </atorder> <rows> <row> <OOI_ROW_ARTICLE_NUMBER>100</OOI_ROW_ARTICLE_NUMBER> <OOI_ROW_TEXT>Ersätter artikel 100s benämning</ooi_row_text> <OOI_ROW_QUANTITY1>5</OOI_ROW_QUANTITY1> <OOI_ROW_QUANTITY2>5</OOI_ROW_QUANTITY2> <OOI_ROW_PRICE_EACH_CURRENT_CURRENCY>199</OOI_ROW_PRICE_EACH_CURRENT_CU RRENCY> <row> <OOI_ROW_TEXT>Textrad a 99kr</OOI_ROW_TEXT> <OOI_ROW_TYPE_OF_ROW>T</OOI_ROW_TYPE_OF_ROW> <OOI_ROW_AMOUNT_CURRENT_CURRENCY>99</OOI_ROW_AMOUNT_CURRENT_CURRENCY> </rows> </order> </orders>
Exempel 9 Import av ny kund och artikel i order. Ifall situationen är sådan att varken kund eller artikel garanterat finns i systemet. Nedan finner vi en order som har en inlänkad kund customerkey= ABC123 precis som tidigare. Vi har även en artikelrad som är kopplad till artkey= 712. Denna artikel läggs till eller uppdateras och läggs sedan på order. <atkunder key="abc123" option="edit"> <CUSTOMER_NUMBER>ABC123</CUSTOMER_NUMBER> <CUSTOMER_NAME>Lisa</CUSTOMER_NAME> <articles> <atartiklar key="712" option="edit"> <ARTICLE_NUMBER>712</ARTICLE_NUMBER> <ARTICLE_NAME>Sjuetttvå</ARTICLE_NAME> </atartiklar> </articles> <orders> <order> <atorder customerkey="abc123" option="edit"> <OOI_HEAD_CUSTOMER_ORDER_NUMBER>123</OOI_HEAD_CUSTOMER_ORDER_NUMBER> </atorder> <rows> <row artkey="712"> <OOI_ROW_QUANTITY1>5</OOI_ROW_QUANTITY1> <OOI_ROW_QUANTITY2>5</OOI_ROW_QUANTITY2> <OOI_ROW_PRICE_EACH_CURRENT_CURRENCY>199</OOI_ROW_PRICE_EACH_CURRENT_CU RRENCY> </rows> </order> </orders>
Exempel 10 Import av faktura Samma exempel som i exempel 8 fast en faktura istället. Vi använder invoices/invoice/atfakturor istället <atkunder key="abc123" option="edit"> <CUSTOMER_NUMBER>ABC123</CUSTOMER_NUMBER> <CUSTOMER_NAME>Lisa</CUSTOMER_NAME> <articles/> <invoices> <invoice> <atfakturor customerkey="abc123" option="edit"> <OOI_HEAD_CUSTOMER_ORDER_NUMBER>123</OOI_HEAD_CUSTOMER_ORDER_NUMBER> <OOI_HEAD_CARGO_AMOUNT>98</OOI_HEAD_CARGO_AMOUNT> <OOI_HEAD_DOCUMENT_DATE1>2005-05-05</OOI_HEAD_DOCUMENT_DATE1> <OOI_HEAD_DOCUMENT_DATE2>2005-06-04</OOI_HEAD_DOCUMENT_DATE2> </atfakturor> <rows> <row> <OOI_ROW_ARTICLE_NUMBER>100</OOI_ROW_ARTICLE_NUMBER> <OOI_ROW_TEXT>Ersätter artikel 100s benämning</ooi_row_text> <OOI_ROW_QUANTITY1>5</OOI_ROW_QUANTITY1> <OOI_ROW_QUANTITY2>5</OOI_ROW_QUANTITY2> <OOI_ROW_PRICE_EACH_CURRENT_CURRENCY>199</OOI_ROW_PRICE_EACH_CURRENT_CU RRENCY> <row> <OOI_ROW_TEXT>Textrad a 99kr</OOI_ROW_TEXT> <OOI_ROW_TYPE_OF_ROW>T</OOI_ROW_TYPE_OF_ROW> <OOI_ROW_AMOUNT_CURRENT_CURRENCY>99</OOI_ROW_AMOUNT_CURRENT_CURRENCY> </rows> </invoice> </invoices>
Exempel 11 Import av kreditfaktura Samma exempel som fakturan i exempel 9 fast vi har nu ändrat den till en kreditfaktura. Det blir en kredit faktura om <OOI_HEAD_TYPE_OF_INVOICE>K</OOI_HEAD_TYPE_OF_INVOICE>. Vill vi ha med fältet även på debet fakturor används F. <atkunder key="abc123" option="edit"> <CUSTOMER_NUMBER>ABC123</CUSTOMER_NUMBER> <CUSTOMER_NAME>Lisa</CUSTOMER_NAME> <articles/> <invoices> <invoice> <atfakturor customerkey="abc123" option="edit"> <OOI_HEAD_CUSTOMER_ORDER_NUMBER>123</OOI_HEAD_CUSTOMER_ORDER_NUMBER> <OOI_HEAD_TYPE_OF_INVOICE>K</OOI_HEAD_TYPE_OF_INVOICE> <OOI_HEAD_CARGO_AMOUNT>98</OOI_HEAD_CARGO_AMOUNT> <OOI_HEAD_DOCUMENT_DATE1>2005-05-05</OOI_HEAD_DOCUMENT_DATE1> <OOI_HEAD_DOCUMENT_DATE2>2005-06-04</OOI_HEAD_DOCUMENT_DATE2> </atfakturor> <rows> <row> <OOI_ROW_ARTICLE_NUMBER>100</OOI_ROW_ARTICLE_NUMBER> <OOI_ROW_TEXT>Ersätter artikel 100s benämning</ooi_row_text> <OOI_ROW_QUANTITY1>5</OOI_ROW_QUANTITY1> <OOI_ROW_QUANTITY2>5</OOI_ROW_QUANTITY2> <OOI_ROW_PRICE_EACH_CURRENT_CURRENCY>199</OOI_ROW_PRICE_EACH_CURRENT_CU RRENCY> <row> <OOI_ROW_TEXT>Textrad a 99kr</OOI_ROW_TEXT> <OOI_ROW_TYPE_OF_ROW>T</OOI_ROW_TYPE_OF_ROW> <OOI_ROW_AMOUNT_CURRENT_CURRENCY>99</OOI_ROW_AMOUNT_CURRENT_CURRENCY> </rows> </invoice> </invoices>