Konfigurasjon av utvidelsen
Når du konfigurerer Rossum-utvidelsen, finnes det noen alternativer du kan justere for å tilpasse fakturaprosessen slik at den passer bedre til din organisasjon. Disse konfigurasjonsalternativene angis i utvidelsesinnstillingene via Rossum-brukergrensesnittet.
Disse skal skrives i JSON-format.
De fleste parametrene her er valgfrie, med unntak av statementDocumentType og erpVersion. Hvis ingen andre parametere er angitt, vil vi bruke standardinnstillingene våre.
Parameterdefinisjoner og bruk
Systemoppsett
clientId
string
{ "clientId": "ABC" }
Hvis angitt, vil ALLE ERP-forespørsler være begrenset til denne klient-ID-en.
Hvis ikke angitt, vil vi forsøke å lese dette per dokument fra dataene i Rossum-brukergrensesnittet. Hvis det ikke er angitt, vil det bli gjort et forsøk på å bestemme klient-ID-en fra de tilgjengelige PO-detaljene.
De fleste påfølgende oppslag vil mislykkes hvis vi ikke kan bestemme en klient-ID, og vi anbefaler derfor å spesifisere dette i konfigurasjonen der det er mulig, da det har stor betydning for systemets pålitelighet.
erpVersion
'erpx' | 'erp7' | 'erpcr'
{ "erpVersion": "erp7" }
ERP-versjonen. Dette er viktig for at vi skal vite hvilke endepunkter vi skal bruke for å hente data fra og sende data til.
- ERPx Unit4s ERPx-system
- ERPCR Unit4s ERP CR-system, du bruker sannsynligvis dette systemet hvis du bruker Unit4 Cloud.
- ERP7 Dette er mest sannsynlig versjonen du bruker hvis serverne dine ikke er hostet av Unit4.
locale
'en' | 'no' | 'sv' | 'es' | 'fr' | 'cy'
{ "locale": "en" }
Bare disse eksakte strengene godtas som gyldige språkinnstillinger. Hvis ikke angitt, bruker vi en
Noen meldinger blir kanskje ikke oversatt, da vi må dekode og validere hendelsen før vi kan bruke språkinnstillingen. Så hvis vi mislykkes før det, vil feilmeldingene være på engelsk.
erpHeaders
Record<string, string="">
{
"erpHeaders": {
"X-ACME-RequestOrigin": "ERP Apps OCR",
"X-ACME-UUID": "0c12f153-36f7-4b76-962c-e97c82a491e8"
}
}
Hvis dette er angitt, vil vi videresende disse overskriftene til ERP-systemet.
Dette kan for eksempel være nyttig hvis du har et selvhostet ERP-system som du ønsker å kontrollere tilgangen til.
Du kan bruke dette til å angi en forhåndsdefinert overskrift som kan brukes på en lastbalanser eller omvendt proxy for å kontrollere tilgangen til ERP-systemet.
Hvis det sendes en forespørsel til ERP-systemet uten denne overskriften, kan den avvises av lastbalanseren eller omvendt proxy uten å nå selve serveren.
Du kan også ønske å bruke dette til analyse- eller loggingsformål.
attachMessagesDocument
none | warning | all
{ "attachMessagesDocument": "all" }
Hvilke meldinger som skal legges ved transaksjonen i ERP som et sekundært dokument. (Dette vil bli lagt ved som zzzz_messages....) Dette er kopier av meldingene vi sender til Rossum-brukergrensesnittet, slik at ERP-brukere har langvarig tilgang til de samme meldingene.
nonevil aldri legge ved meldinger.warningvil legge ved meldinger på advarselsnivå eller høyere.allvil legge ved alle meldinger, inkludert info
Hvis ikke angitt, er standardinnstillingen all.
statementDocumentType
{ "statementDocumentType": "STATREP" }
Dokumenttypen som rapporten skal skrives tilbake til. Må være en gyldig dokumenttype knyttet til leverandøren.
statementReportFormat
**pdf | spreadsheet | both **
{ "statementReportFormat": "pdf" }
Formatet rapporten skal skrives tilbake i. Hvis ikke angitt, vil systemet sette dette til pdf.
ERP-tilkoblingskonfigurasjon
Merk at disse tilkoblingsinnstillingene nå kan angis i utvidelseshemmeligheter (der de tidligere var) ELLER her i innstillinger (for bedre oversikt).
Hvis noen av disse verdiene er angitt begge steder, vil den her i innstillingene ha forrang.
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 og unit4SoapUrl er påkrevd for ERP7 / ERPCR-systemer.
erpxHost er påkrevd på et ERPx-system
erpIdsHost er påkrevd på alle systemer som bruker IDS for autentisering.
Dokumentbehandling
elevateWarnings
string[]
{ "elevateWarnings": ["ACL_003","SU_007"] }
En matrise med koder som vanligvis genererer advarsler, men som organisasjonen ønsker å oppgradere til feil.
Hvis du legger til elementer her, vil skjemafeltet override_warnings gi en feilmelding hvis det finnes advarsler som står på listen over oppgraderte advarsler. For mer informasjon, se dokumentasjonen om advarsler
Se listen over advarsler som kan oppgraderes
Sammenligningskonfigurasjon
Sammenligningskonfigurasjonen er reglene som linjene fra uttalelsen kan sammenlignes med leverandørtransaksjonene etter
Reglene defineres som matchCodes, og matchCodes defineres deretter i en matchSequence
Dette lar deg opprette en hierarki av samsvaringsalternativer fra mest kontrollert til minst kontrollert for å prøve å oppnå et samsvar.
Samsvarssekvenser kan også brukes på en spesifikk APAR-ID i tilfeller der en bestemt leverandør/kunde trenger en spesifikk samsvaringslogikk
Det finnes et par innstillinger på systemnivå som kan være nyttige for å redusere mengden data systemet må hente:
maxHistoricalDays
number
{ "maxHistoricalDays": 180 }
Hvor mange dager skal hentes fra historiske fakturaer i matchedSupplierInvoices (status C) basert på invoiceDate fra API-et. Merk at registeredItems (A-status) og unmatchedSupplierInvoices (B-status) fakturaer alltid hentes.
Hvis denne verdien ikke er angitt, vil standardverdien være 180.
ignoreTransactionTypes
string[]
{ "ignoreTransactionTypes": ["MM","SM"] }
Disse transaksjonstypene vil bli ekskludert fra API-forespørselen. Dette bør fylles ut med alle transaksjonstyper du ikke ønsker å matche mot kontoutskriftslinjene.
validSupplierStatus
string[]
{ "validSupplierStatus": ["N","P","C","T"] }
Hvis denne innstillingen ikke er angitt i konfigurasjonen, vil vårt standardfilter status = N bli brukt
Noen kunder har bedt om at ikke-aktive leverandører skal matches i OCR, men at det skal oppstå en feilmelding hvis dette er tilfelle. De ønsker for eksempel å vite at leverandøren eksisterer og var det beste treffet, men at den er stengt.
For å unngå å endre vår opprinnelige funksjonalitet, lar denne nye statusen deg angi gyldig status for leverandører som vil bli brukt når leverandører hentes fra ERP-API-et.
Du kan motta feilmelding SU_017 hvis leverandøren ikke har status N eller P, og advarsel SU_018 hvis leverandøren har status P. SU_018 kan også oppgraderes til en feil.
matchCodes
{ "matchCodeId" : "CODE1",
"description" : "Valgfri beskrivelse",
"amountTolerance" : 1,
"invNo" : "withinAny",
"transDate" : "either",
"toleranceDays" : 7,
"historicDays" : 180,
"cleanText" : "SIN-|INV|INV #|A/R Invoices -|SI[rx]^00"}
Dette er reglene som linjene fra kontoutskriften kan matches mot leverandørtransaksjonene etter
De består av følgende egenskaper
matchCodeId
string
{ "matchCodeId" : "CODE1"}
En unik kode for samsvaret. Denne MÅ være unik i konfigurasjonen din, og systemet vil gi en QSET_006-feil hvis den ikke er det.
description
string | null
{ "description" : "Valgfri beskrivelse"}
Fri tekstbeskrivelse for å dokumentere hva koden er ment for.
amountTolerance
number
{ "amountTolerance" : 0.01}
Den absolutte tillatte forskjellen mellom kontoutskriftsbeløpet og transaksjonsbeløpet. Dette vil bli sjekket mot transaksjonens valutabeløp.
Hvis ikke angitt, vil standardverdien være 0,01
invNo
off | withinAny | exactAny | withinInvoiceNumber | exactInvoiceNumber
{ "invNo" : "off"}
Brukes til å kontrollere hvordan kontoutskriftsfakturareferanser samsvarer med transaksjonsfakturareferanser. Mulige alternativer er:
- off: Ignorer: bruk kun dato og beløp
- withinAny: ERP-fakturanummer (ekst. fakturaref.) må være INNENFOR et hvilket som helst felt (Int / Trans-nummer, beskrivelse, referanse)
- exactAny: Sammenlign ERP-fakturanummer (ekst. fakturareferanse) med et hvilket som helst kontoutskriftsfelt (Int/Trans-nummer, beskrivelse, referanse)
- withinInvoiceNumber: Kontoutskriftsfaktura-/transaksjonsnummer må være INNENFOR ERP-fakturanummeret (ekst. fakturareferanse)
- exactInvoiceNumber: Kontoutskriftsfaktura-/transaksjonsnummer må samsvare med ERP-fakturanummeret (ekst. fakturareferanse)
Hvis ikke angitt, vil standardverdien være off
transDate
either | voucherDate | transDate
{ "transDate" : "either"}
Brukes til å definere hvilket ERP-felt kontoutskriftens transaksjonsdato skal samsvare med.
Mulige alternativer er:
- either: Prøv begge datoene
- voucherDate: Bruk bilagets dato
- transDate: Bruk transaksjonsdatoen
Hvis ikke angitt, vil standardverdien være either
toleranceDays
tall
{ "toleranceDays" : 7}
Knyttet til transaksjonsdatoen, definerer hvor mange dagers forskjell det kan være mellom kontoutskriftsdatoen fra feltet og datofeltet/-feltene definert av innstillingen for transaksjonsdato ovenfor.
Hvis ikke angitt, vil standardverdien være 0
historicDays
tall
{ "historicDays" : 180}
Antall dager som matchedSupplierInvoices (transaksjoner med status C) skal lastes inn for. Merk at hvis dette feltet er satt til 0, vil kønivåverdien maxhistoricaldays brukes. Enhver annen verdi vil overstyre systeminnstillingsverdien.
cleanText
string | null
{ "cleanText" : "SIN-|INV|INV #|A/R Invoices -|SI|[rx]^00"}
Dette fungerer i kombinasjon med Innstillingen for fakturanummer ovenfor.
Disse kan brukes til å fjerne bestemt tekst fra kontoutskriftsfeltene (fakturanummer, referanse, beskrivelse) for å forbedre samsvaret med transaksjonene.
For eksempel kan en leverandør legge til spesifikk tekst til et fakturanummer på kontoutskriften, men ikke på den opprinnelige fakturaen. Dette bør være en liste med verdier atskilt med vertikalstrek, og du kan også bruke regulære uttrykk i dette feltet, som bør innledes med [rx] slik at vi vet at det er et regulært uttrykk.
Vær oppmerksom på at regulære uttrykk blir «forhåndsrenset» av sikkerhetshensyn. Hvis du oppdager et bestemt mønster som ikke fungerer, ber vi deg gi oss beskjed via de vanlige supportkanalene.
Regulære uttrykk kan heller ikke inneholde vertikalt strek-symbolet |, da dette brukes som skilletegn i listen. Hvis du trenger å bruke dette, ber vi deg gi oss beskjed via de vanlige supportkanalene.
I det gitte eksemplet, hvis fakturanummeret på kontoutskriften hadde et av følgende formater:
- SIN-1234599A
- INV1234599A
- 1234599AINV
- INV #1234599A
- A/R-fakturaer -1234599A
- SI1234599A
- 001234599A
Det vil bli matchet mot ERP-transaksjonen med (fakturanummer, referanse, beskrivelse) satt til 1234599A
matchSequences
Disse brukes til å gruppere matchkoder og fortelle systemet i hvilken rekkefølge de skal kjøres.
Dette lar deg opprette en hierarki av matchingsalternativer fra mest kontrollert til minst kontrollert for å prøve å få en match.
{ "matchSequenceId" : "RUN1",
"description" : "Valgfri beskrivelse",
"supplierId" : null,
"matchingConfiguration": [
{
"matchOrder": 1,
"matchCodeId": "CODE1"
},
{
"matchOrder": 2,
"matchCodeId": "CODE2"
}
]
}
matchSequenceId
string
{ "matchSequenceId" : "RUN1"}
En unik kode for sekvensen. Denne MÅ være unik i konfigurasjonen din, og systemet vil gi en QSET_007-feil hvis den ikke er det.
beskrivelse
string | null
{ "beskrivelse" : "Valgfri beskrivelse"}
Fri tekstbeskrivelse for å dokumentere hva koden er ment for.
supplierId
string
{ "supplierId" : "12399"}
Hvis dette er inkludert, vil denne matchsekvensen kun kjøres når uttalelsen samsvarer med den angitte leverandør-ID-en.
Hvis dette ikke er inkludert, vil matchsekvensen kjøres mot alle leverandører.
matchingConfiguration
{ "matchingConfiguration": [
{
"matchOrder": 1,
"matchCodeId": "CODE1"
},
{
"matchOrder": 2,
"matchCodeId": "CODE2"
}
]
}
Er en matrise av objekter hvor hvert objekt inneholder:
matchOrder
tall
{ "matchOrder" : "12399"}
Rekkefølgen som den inkluderte samsvarskoden skal kjøres i sekvensen.
matchCodeId
streng
{ "matchCodeId" : "12399"}
En gyldig matchkode-ID som skal brukes. Systemet vil gi en QSET_010-feil hvis den inkluderte matchkoden ikke er definert i innstillingen for matchkoder.
Caching
cacheTime
tall
{ "cacheTime": 3600 }
Hvis ingen verdi er angitt, vil standardverdien på 3600 sekunder (en time) brukes.
Hvor lenge (i sekunder) data (for eksempel leverandører, innkjøpsordrer, regnskapsinformasjon) fra Unit4 skal lagres i cachen. Jo lenger tid dette er, desto færre API-forespørsler må sendes, og desto raskere vil tjenesten kjøre. Ulempen med en lengre cache-tid er at det vil ta lengre tid før dataene «dukker opp» i OCR-systemet.
cacheSuffix
streng
{ "cacheSuffix": "custom-suffix" }
En tilfeldig streng som kan legges til slutten av cache-nøklene i systemet. Hvis ingen verdi angis, brukes default.
Du kan definere en verdi her for å tvinge en cache-oppdatering i systemet tidligere enn din cacheTime. Hver gang denne verdien endres, vil gamle cache-verdier ikke lenger brukes, og dataene hentes på nytt. Det bør ikke være nødvendig å gjøre dette regelmessig, da dette kan tyde på at cacheTime er for lang.
testExtensionSettings
Se dokumentasjonen for testutvidelsen
Eksempel på konfigurasjon
Siden JSON-syntaksen og typedefinisjonene som er brukt ovenfor kanskje ikke er kjent for alle, følger her et eksempel på en konfigurasjon.
Dette MÅ redigeres / reduseres til kun de nøklene og alternativene du trenger.
{
"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"
}