Konfiguration av tillägget
När du konfigurerar ditt Rossum-tillägg finns det några alternativ du kan justera för att anpassa fakturaflödet så att det passar din organisation bättre. Dessa konfigurationsalternativ ställs in i tilläggets inställningar via ditt Rossum-gränssnitt.
Dessa ska skrivas i JSON-format.
De flesta parametrarna här är valfria, med undantag för statementDocumentType och erpVersion. Om inga andra parametrar anges använder vi våra standardvärden.
Parameterdefinitioner och användning
Systeminställningar
clientId
string
{ "clientId": "ABC" }
Om detta anges kommer ALLA ERP-frågor att begränsas till detta klient-ID.
Om det inte anges kommer vi att försöka läsa detta per dokument från data i Rossum-gränssnittet. Om det inte anges kommer vi att försöka fastställa klient-ID:t utifrån de tillgängliga inköpsorderuppgifterna.
De flesta efterföljande sökningar kommer att misslyckas om vi inte kan fastställa ett klient-ID och därför rekommenderar vi att detta anges i konfigurationen när det är möjligt eftersom det har stor betydelse för systemets tillförlitlighet.
erpVersion
'erpx' | 'erp7' | 'erpcr'
{ "erpVersion": "erp7" }
ERP-versionen. Detta är viktigt så att vi vet vilka slutpunkter vi ska använda för att hämta data från och skicka data till.
- ERPx Unit4:s ERPx-system
- ERPCR Unit4:s ERP CR-system, du använder troligen detta system om du använder Unit4 Cloud.
- ERP7 Detta är troligen den version du använder om dina servrar inte hostas av Unit4.
locale
'en' | 'no' | 'sv' | 'es' | 'fr' | 'cy'
{ "locale": "en" }
Endast exakt dessa strängar accepteras som giltiga språkinställningar. Om inget anges använder vi en
Vissa meddelanden kanske inte översätts, eftersom vi måste avkoda och validera händelsen innan vi kan använda språkinställningen. Om vi misslyckas innan dess kommer felmeddelanden att vara på engelska.
erpHeaders
Record<string, string="">
{
"erpHeaders": {
"X-ACME-RequestOrigin": "ERP Apps OCR",
"X-ACME-UUID": "0c12f153-36f7-4b76-962c-e97c82a491e8"
}
}
Om detta är inställt vidarebefordrar vi dessa rubriker till ERP-systemet.
Detta kan vara användbart, till exempel om du har ett egenhostat ERP-system till vilket du vill kontrollera åtkomsten.
Du kan använda detta för att ställa in en fördefinierad rubrik som kan användas på en lastbalanserare eller omvänd proxy för att kontrollera åtkomsten till ERP-systemet.
Om en begäran görs till ERP-systemet utan denna rubrik kan den avvisas av lastbalanseraren eller omvänd proxy utan att nå själva servern.
Du kanske också vill använda detta för analys- eller loggningsändamål.
attachMessagesDocument
none | warning | all
{ "attachMessagesDocument": "all" }
Vilka meddelanden som ska bifogas transaktionen i ERP som ett sekundärt dokument. (Detta bifogas som zzzz_messages....) Dessa är kopior av de meddelanden vi skickar till Rossum UI, så att ERP-användare har långsiktig åtkomst till samma meddelanden.
nonebifogar aldrig meddelanden.warningbifogar meddelanden på varningsnivå eller högre.allbifogar alla meddelanden inklusive info
Om inget anges är standardinställningen all.
statementDocumentType
{ "statementDocumentType": "STATREP" }
Den dokumenttyp som rapporten ska skrivas tillbaka till. Måste vara en giltig dokumenttyp kopplad till leverantören.
statementReportFormat
**pdf | spreadsheet | both **
{ "statementReportFormat": "pdf" }
Det format som rapporten ska skrivas tillbaka i. Om inget anges kommer systemet att ställa in detta till pdf.
Konfiguration av ERP-anslutning
Observera att dessa anslutningsinställningar nu kan ställas in i tilläggshemligheter (där de tidigare fanns) ELLER här i inställningarna (för bättre översikt).
Om något av dessa värden är inställt på båda ställena kommer det som anges här i inställningarna att ha företräde.
erpConnectionSettings
{ unit4ApiUrl?: string, unit4SoapUrl?: string, erpxHost?: string, erpIdsHost?: string
{
"erpConnectionSettings" :{
"unit4ApiUrl": "https://example.unit4cloud.com",
"unit4SoapUrl": "https://example.unit4cloud.com",
"erpxHost": "https://example.unit4cloud.com",
"erpIdsHost": "https://example.unit4cloud.com"
}
}
unit4ApiUrl och unit4SoapUrl krävs för ERP7-/ERPCR-system.
erpxHost krävs på ett ERPx-system
erpIdsHost krävs på alla system som använder IDS för autentisering.
Dokumenthantering
elevateWarnings
string[]
{ "elevateWarnings": ["ACL_003","SU_007"] }
En array med koder som vanligtvis genererar varningar, men som organisationen vill uppgradera till fel.
Om du lägger till poster här kommer schemafältet override_warnings att ge ett fel om det finns varningsmeddelanden som finns med i listan över uppgraderade varningar. För mer information, se dokumentationen om varningar
Se listan över varningar som kan uppgraderas
Matchningskonfiguration
Matchningskonfigurationen är de regler enligt vilka raderna från redovisningen kan matchas mot leverantörstransaktionerna
Reglerna definieras som matchCodes och matchCodes definieras sedan i en matchSequence
Detta gör att du kan skapa en hierarki av matchningsalternativ från mest kontrollerade till minst kontrollerade för att försöka få en matchning.
Matchsekvenser kan också tillämpas på ett specifikt apar-id i fall en viss leverantör/kund behöver någon specifik matchningslogik
Det finns ett par inställningar på systemnivå som kan vara användbara för att minska mängden data som systemet måste hämta:
maxHistoricalDays
number
{ "maxHistoricalDays": 180 }
Hur många dagar som ska hämtas från historiska fakturor matchedSupplierInvoices (status C) baserat på invoiceDate från API:et. Observera att fakturor av typen registeredItems (status A) och unmatchedSupplierInvoices (status B) alltid hämtas.
Om detta värde inte anges blir standardvärdet 180.
ignoreTransactionTypes
string[]
{ "ignoreTransactionTypes": ["MM","SM"] }
Dessa transaktionstyper kommer att uteslutas från API-förfrågan. Här ska du ange alla transaktionstyper som du inte vill matcha mot kontoutdragsraderna.
validSupplierStatus
string[]
{ "validSupplierStatus": ["N","P","C","T"] }
Om denna inställning inte anges i konfigurationen kommer vårt standardfilter status = N att tillämpas
Vissa kunder har begärt att icke-aktiva leverantörer ska matchas i OCR, men att ett fel ska genereras om så är fallet. De vill till exempel veta att leverantören finns och var den bästa matchningen, men att den är stängd.
För att undvika att ändra vårt ursprungliga beteende låter denna nya status dig ställa in en giltig status för leverantörer som kommer att användas när leverantörer hämtas från ERP-API:et.
Du kan få felet SU_017 om leverantören inte har status N eller P och varningen SU_018 om leverantören har status P. SU_018 kan också uppgraderas till ett fel.
matchCodes
{ "matchCodeId" : "CODE1",
"description" : "Valfri beskrivning",
"amountTolerance" : 1,
"invNo" : "withinAny",
"transDate" : "either",
"toleranceDays" : 7,
"historicDays" : 180,
"cleanText" : "SIN-|INV|INV #|A/R Invoices -|SI[rx]^00"}
Dessa är reglerna enligt vilka raderna från kontoutdraget kan matchas mot leverantörstransaktionerna
De består av följande egenskaper
matchCodeId
string
{ "matchCodeId" : "CODE1"}
En unik kod för matchningen. Denna MÅSTE vara unik i din konfiguration, och systemet kommer att generera ett QSET_006-fel om så inte är fallet.
description
string | null
{ "description" : "Valfri beskrivning"}
Fri textbeskrivning som hjälper till att dokumentera vad koden är till för.
amountTolerance
number
{ "amountTolerance" : 0.01}
Den absoluta tillåtna skillnaden mellan kontoutdragets belopp och transaktionsbeloppet. Detta kontrolleras mot transaktionens valutabelopp.
Om detta inte anges blir standardvärdet 0,01.
invNo
off | withinAny | exactAny | withinInvoiceNumber | exactInvoiceNumber
{ "invNo" : "off"}
Används för att styra hur referenser till fakturor i kontoutdraget matchas mot referenser till fakturor i transaktioner. Möjliga alternativ är:
- off: Ignorera: använd endast datum och belopp
- withinAny: ERP-fakturanummer (ext inv ref) måste finnas INOM något fält (Int / Trans-nummer, beskrivning, referens)
- exactAny: Matcha ERP-fakturanummer (ext inv ref) mot något kontoutdragsfält (Int / Trans-nummer, beskrivning, referens)
- withinInvoiceNumber: Kontoutdrags-/transaktionsnummer måste finnas INOM ERP-fakturanummer (ext inv ref)
- exactInvoiceNumber: Kontoutdragsfaktura-/transaktionsnummer måste matcha ERP-fakturanummer (ext inv ref)
Om detta inte anges blir standardvärdet off
transDate
either | voucherDate | transDate
{ "transDate" : "either"}
Används för att definiera vilket ERP-fält som kontoutdragets transaktionsdatum ska matchas mot.
Möjliga alternativ är:
- either: Prova något av datumen
- voucherDate: Använd verifikatdatum
- transDate: Använd transaktionsdatum
Om detta inte anges blir standardvärdet either
toleranceDays
number
{ "toleranceDays" : 7}
Kopplat till transaktionsdatumet, definierar hur många dagars skillnad det får vara mellan kontoutdragsdatumet från fältet och det eller de datumfält som definieras av inställningen Transaktionsdatum ovan.
Om detta inte anges blir standardvärdet 0
historicDays
number
{ "historicDays" : 180}
Antalet dagar för vilka matchedSupplierInvoices (transaktioner med status C) ska laddas. Observera att om detta fält är inställt på 0 kommer kövärdet maxhistoricaldays att användas. Alla andra värden åsidosätter systemets inställningsvärde.
cleanText
sträng | null
{ "cleanText" : "SIN-|INV|INV #|A/R Invoices -|SI|[rx]^00"}
Detta fungerar i kombination med inställningen Inv No ovan.
Dessa kan användas för att rensa bort specifik text från kontoutdragsfält (fakturanummer, referens, beskrivning) för att förbättra matchningen mot transaktioner.
Till exempel kan en leverantör lägga till specifik text till ett fakturanummer på kontoutdraget men inte på den ursprungliga fakturan. Detta bör vara en lista med värden separerade med vertikalstreck och du kan även använda reguljära uttryck i detta fält, vilka bör föregås av [rx] så att vi vet att det är ett reguljärt uttryck.
Observera att reguljära uttryck ”förbehandlas” av säkerhetsskäl. Om du upptäcker ett visst mönster som inte fungerar ber vi dig att meddela oss via de vanliga supportkanalerna.
Reguljära uttryck får inte heller innehålla vertikalt streck (|), eftersom detta är avgränsningstecknet för listan. Om du behöver använda detta ber vi dig att meddela oss via de vanliga supportkanalerna.
I det givna exemplet, om vårt kontoutdragsfakturanummer hade något av följande format:
- SIN-1234599A
- INV1234599A
- 1234599AINV
- INV #1234599A
- A/R-fakturor -1234599A
- SI1234599A
- 001234599A
skulle det matchas mot ERP-transaktionen med (fakturanummer, referens, beskrivning) inställt på 1234599A
matchSequences
Dessa används för att gruppera matchningskoder och ange för systemet i vilken ordning de ska köras.
Detta gör det möjligt att skapa en hierarki av matchningsalternativ från mest kontrollerade till minst kontrollerade för att försöka få en matchning.
{ "matchSequenceId" : "RUN1",
"description" : "Valfri beskrivning",
"supplierId" : null,
"matchingConfiguration": [
{
"matchOrder": 1,
"matchCodeId": "CODE1"
},
{
"matchOrder": 2,
"matchCodeId": "CODE2"
}
]
}
matchSequenceId
string
{ "matchSequenceId" : "RUN1"}
En unik kod för sekvensen. Denna MÅSTE vara unik i din konfiguration, annars kommer systemet att generera ett QSET_007-fel.
beskrivning
string | null
{ "description" : "Valfri beskrivning"}
Fri textbeskrivning som hjälper till att dokumentera vad koden är till för.
supplierId
string
{ "supplierId" : "12399"}
Om detta anges kommer matchningssekvensen endast att köras när uttalandet matchar det angivna leverantörs-id:t.
Om detta inte anges kommer matchningssekvensen att köras mot alla leverantörer.
matchingConfiguration
{ "matchingConfiguration": [
{
"matchOrder": 1,
"matchCodeId": "CODE1"
},
{
"matchOrder": 2,
"matchCodeId": "CODE2"
}
]
}
Är en array av objekt där varje objekt innehåller:
matchOrder
number
{ "matchOrder" : "12399"}
Den ordning i vilken den inkluderade matchningskoden ska köras i sekvensen.
matchCodeId
string
{ "matchCodeId" : "12399"}
Ett giltigt matchkod-id som ska användas. Systemet kommer att generera ett QSET_010-fel om den inkluderade matchkoden inte har definierats i inställningarna för matchkoder.
Cachelagring
cacheTime
tal
{ "cacheTime": 3600 }
Om inget värde anges kommer standardvärdet 3600 sekunder (en timme) att tillämpas.
Den tid (i sekunder) som data (såsom leverantörer, inköpsorder, bokföringsinformation) från Unit4 kommer att lagras i cachen. Ju längre tid detta är, desto färre API-förfrågningar behöver göras och desto snabbare kommer tjänsten att köras. Nackdelen med en längre cachtid är att det tar längre tid för data att "dyka upp" i OCR-systemet.
cacheSuffix
sträng
{ "cacheSuffix": "custom-suffix" }
En slumpmässig sträng som kan läggas till i slutet av cache-nycklarna i systemet. Om inget värde anges används default.
Du kanske vill ange ett värde här för att tvinga fram en cacheuppdatering i systemet tidigare än din cacheTime. Varje gång detta värde ändras kommer gamla cachade värden inte längre att användas och data hämtas på nytt. Det bör inte vara nödvändigt att göra detta regelbundet, eftersom det kan tyda på att din cacheTime är för lång.
testExtensionSettings
Se dokumentationen för testtillägget
Exempel på konfiguration
Eftersom JSON-syntaxen och typdefinitionerna som används ovan kanske inte är bekanta för alla, följer här ett exempel på en konfiguration.
Detta MÅSTE redigeras / reduceras till endast de nycklar och alternativ som du behöver.
{
"clientId": "ABC",
"erpVersion": "erp7",
"locale": "en",
"attachMessagesDocument": "all",
"erpConnectionSettings" :{
"unit4ApiUrl": "https://example.unit4cloud.com",
"unit4SoapUrl": "https://example.unit4cloud.com",
"erpxHost": "https://example.unit4cloud.com",
"erpIdsHost": "https://example.unit4cloud.com"
},
"statementDocumentType": "STATREP",
"statementReportFormat": "pdf",
"elevateWarnings": ["SM_004"],
"maxHistoricalDays": 180,
"ignoreTransactionTypes": ["MM","SM"],
"validSupplierStatus": ["N","P","C","T"],
"matchCodes" : [
{ "matchCodeId" : "CODE1",
"description" : "Optional Description",
"amountTolerance" : 1,
"invNo" : "off",
"transDate" : "either",
"toleranceDays" : 7,
"historicDays" : 180,
"cleanText" : "SIN-|INV|INV #|A/R Invoices -|SI[rx]^00"
}
],
"matchSequences" : [{ "matchSequenceId" : "RUN1",
"description" : "Optional Description",
"supplierId" : null,
"matchingConfiguration": [
{
"matchOrder": 1,
"matchCodeId": "CODE1"
}
]
}
],
"cacheTime": 3600,
"cacheSuffix": "custom-suffix"
}