Gå til hovedinnhold

Konfigurasjon av utvidelse

Når du konfigurerer Rossum-utvidelsen, er det noen alternativer du kan justere for å tilpasse fakturaflyten slik at den passer bedre til din organisasjon. Disse konfigurasjonsalternativene angis i utvidelsesinnstillingene via Rossum-brukergrensesnittet.

Disse skal skrives i JSON-format.

info

De fleste parametrene her er valgfrie, med unntak av invoiceDocumentTypes og erpVersion. Hvis andre parametere ikke er spesifisert, bruker vi standardinnstillingene.

Det eneste andre unntaket er ei02Variant, som er påkrevd hvis du bruker ERP7 / ERPCR-versjonen av koblingen.

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 avdekkede PO-detaljene.

De fleste påfølgende oppslag vil mislykkes hvis vi ikke kan fastslå en klient-ID, og vi anbefaler derfor å spesifisere dette i konfigurasjonen når det er mulig, da det har stor betydning for systemets pålitelighet.

legalEntityIndex

nummer

{"legalEntityIndex": 7 }

Bør settes til dimensjonsnummeret for den juridiske enheten for klienten.

Hvis dette er angitt, vil systemet prøve å identifisere juridiske enhetskoder og bruke disse på regnskapsinformasjon for fakturaer som ikke er innkjøpsordrer.

erpVersion

'erpx' | 'erp7' | 'erpcr'

{ "erpVersion": "erp7" }

ERP-versjonen 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 den versjonen du bruker hvis serverne dine ikke er hostet av Unit4.

transactionType

string

{ "transactionType": "T1" }

Dette er ERP-transaksjonstypekoden som vi vil sende til ERP-systemet ditt når vi sender fakturaen, enten direkte i JSON for ERPx eller som parameter for innkommende fakturatransaksjonstype på EI02 for ERP7 / CR

ei02Variant

number

{ "ei02Variant": 0 }

Dette er nødvendig for milepæl syv. Dette er EI02-rapportvarianten som vil kjøres når fakturaen blir lagt inn.

invoiceDocumentTypes:

string[]

{ "invoiceDocumentTypes": ["IINV", "XYZ"] }

Dette er listen over dokumenttyper som vi aksepterer som fakturaer. Hvis det bare er én type, vil vi håndheve den, hvis ikke vil vi bruke den første som standard, men tillate brukeren å endre den i brukergrensesnittet.

For helautomatiserte prosesser betyr dette at docType ALLTID vil være den første i listen. Hvis du trenger manuell kontroll, må du sørge for at automatisk behandling er deaktivert.

locale

'en' | 'no' | 'sv' | 'es' | 'fr' | 'cy'

{ "locale": "en" }

Bare disse eksakte strengene vil bli akseptert som gyldige språk. Hvis ikke angitt, vil vi bruke en.

Noen meldinger kan ikke oversettes, da vi må dekode og validere hendelsen før vi kan bruke språket. Så hvis vi mislykkes før det, vil feilmeldinger 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 være nyttig hvis du for eksempel 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å bruke dette til analyse- eller loggføringsformål.

attachMessagesDocument

none | warning | all

{ "attachMessagesDocument": "all" }

Hvilke meldinger 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 UI, slik at ERP-brukere har langvarig tilgang til de samme meldingene.

  • none vil aldri legge ved meldinger.
  • warning vil legge ved meldinger på advarselsnivå eller høyere.
  • all vil legge ved alle meldinger, inkludert informasjon.

Hvis ikke angitt, er standardinnstillingen all.

ERP-tilkoblingskonfigurasjon

warning

Merk at disse tilkoblingsinnstillingene nå kan angis i utvidelseshemmeligheter (der de tidligere var) ELLER her i innstillingene (for bedre synlighet).

Hvis noen av disse verdiene er angitt begge steder, vil den som er angitt 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

manualTaxCodeIds

string[]

{ "manualTaxCodeIds": ["0", "1", "11"] }

Hvis angitt, vil vi begrense skattekodene for ikke-PO-linjer (AP / ekstra PO-linjer / ikke-PO-fakturalinjer) til kun de som er oppført her.

Fakturalinjer som samsvarer med en innkjøpsordrelinje, vil fortsatt bruke skattekodene fra innkjøpsordren som angitt.

allowedTaxRates

number[]

{ "allowedTaxRates": [0.2, 0.05] }

Hvis angitt, vil vi begrense skattesatsene til kun de som er oppført her. Hvis vi avrunder nær en av disse, vil vi "snappe" til den. Hvis vi avrunder til en sats som ikke er på denne listen, vil vi ignorere den og anta at det er en OCR- eller fakturafeil.

allowAnyTaxCoding

boolean

{ "allowAnyTaxCoding": false }

Hvis denne innstillingen er satt til «true», vil systemet alltid tillate at enhver skattekode (som samsvarer med fakturavalutaen) og ethvert skattesystem velges manuelt i kontokodingen, uavhengig av skattesatser, kontoregler, om dokumentet er en innkjøpsfaktura eller innstillingene i «manualTaxCodeIds».

Merk at valg av en skattekode som ikke samsvarer med skatteprosenten på fakturalinjen, vil generere en ACL_004-advarsel eller -feil, fordi det å la dette gå til ERP sannsynligvis vil føre til at importtjenesten rapporterer dokumentet som ubalansert. Denne innstillingen er imidlertid spesifikt etterspurt av kunder for å gi dem muligheten til å registrere skattekoden før import, og oppdatere innkjøpsordren med denne skattekoden (ved hjelp av verktøy i Unit4)

Hvis denne innstillingen ikke er angitt, eller er satt til false, vil de tilgjengelige skattekodene være begrenset av manualTaxCodeIds samt skattesatsen og valutaen på fakturaen.

noPurchaseOrder

{ base: 'allow' | 'reject'; perSupplier: 'allow' | 'reject' | null; }

{
"noPurchaseOrder": {
"base": "allow",
"perSupplier": "supppoctrl/no_po_no_pay_fx"
}
}

Dette brukes til å avgjøre om vi kan utstede fakturaer uten innkjøpsordre. Hvis base er 'reject', vil vi avvise alle fakturaer uten innkjøpsordre. Hvis base er 'allow' , vil vi tillate fakturaer uten innkjøpsordre.

Hvis perSupplier er spesifisert, vil vi se etter et customField (flexifield) på leverandøren, og hvis vi finner det, vil vi behandle verdien som basisverdien for den leverandøren. Denne verdien bør være enten allow eller reject (eller ikke til stede), så flexifield bør konfigureres med disse alternativene. Et eksempel på en verdi for feltet perSupplier kan være noe som supppoctrl/no_po_no_pay_fx. Hvis det ikke blir funnet, vil vi bruke basisverdien.

singleLineMatch

'force' | 'auto'

{ "singleLineMatch": "force" }

Hvis denne innstillingen ikke er angitt i konfigurasjonen, vil auto bli brukt

Dette brukes til å tvinge gjennom samsvar mellom innkjøpsordrer med én linje på kønivå. Hvis innstillingen er satt til «force», vil systemet for ordrer der det bare er én linje i ordren (uansett status) automatisk samsvare ALLE fakturalinjer med den ene ordrelinjen.

Hvis innstillingen er «auto», vil linjen bare bli matchet hvis den automatiske standardmatcheprosessen finner en linje å matche mot basert på de tilgjengelige dataene.

validPOStatus

string[]

{ "validPOStatus": ["O","F"] }

Hvis denne innstillingen ikke er angitt i konfigurasjonen, vil vårt standardfilter status NOT IN (N, P, T) bli brukt

Dette brukes til å angi status for innkjøpsordren header som anses som gyldig for samsvar. Hvis dette er angitt og en innkjøpsordre returneres, men ikke har en av de identifiserte statusene, vil den ikke brukes til samsvar og vil ikke sendes til ERP med fakturadataene. Brukeren vil få en advarsel-melding hvis en innkjøpsordre ble funnet av OCR, men ikke samsvarte.

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

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 få feilmeldingen SU_017 hvis leverandøren ikke har status N eller P, og advarselen SU_018 hvis leverandøren har status P. SU_018 kan også oppgraderes til en feil.

apDefaultDims

{ dim1?: string|number, dim3?: string|number, dim3?: string|number, dim4?: string|number, dim5?: string|number, dim6?: string|number, dim7?: string|number }

{
"apDefaultDims": {
"dim1": 3000,
"dim2": "ABC",
"dim4": "Custom value"
}
}

Vi bruker disse standardinnstillingene for å muliggjøre automatisk innsending.

På AP-linjen henter vi kontoen fra leverandørgruppen og fyller deretter ut alle gyldige dimensjoner med dimensjonene herfra.

Hvis disse ikke er oppgitt, må de fylles ut manuelt i brukergrensesnittet.

glDefaultDims

{ account?: string, dim1?: string|number, dim3?: string|number, dim3?: string|number, dim4?: string|number, dim5?: string|number, dim6?: string|number, dim7?: string|number }

{
"glDefaultDims": {
"dim1": 3001,
"dim2": "ABC",
"dim6": "Custom value",
"account": "3000"
}
}

For fakturaer uten innkjøpsordre vil vi bruke disse standardverdiene for å muliggjøre automatisk innsending.

Hvis disse ikke er oppgitt, må de fylles ut manuelt i brukergrensesnittet.

defaultQuantity

tall

{ "defaultQuantity": 1 }

Hvis vi ikke kan lese mengden for en linje, vil vi falle tilbake på denne verdien.

defaultSupplierId

streng

{ "defaultSupplierId": "1000" }

Hvis vi ikke kan finne en leverandør, vil vi falle tilbake til denne verdien.

Før vi bruker dette, vil vi sjekke innkjøpsordren for en leverandør, og deretter søke i feltene for organisasjonsnummer, momsnummer og bankopplysninger for en leverandør. Hvis vi finner en match på noen av disse, vil vi bruke den. Hvis ikke, vil vi bruke denne verdien når den er angitt.

defaultAccountable

string

{ "defaultAccountable": "101" }

Vi prøver å matche den aktive Rossum-brukeren med en ERP-bruker. Hvis det lykkes, vil vi angi den ERP-brukeren som ansvarlig person for denne fakturaen.

Hvis vi ikke lykkes med å matche brukeren, vil vi falle tilbake til denne verdien når den er angitt.

Denne verdien vil til slutt vises i ext_ref-feltet på fakturatransaksjonen.

ignoreTax

boolean

{ "ignoreTax": false }

Dette medfører ingen store endringer i brukergrensesnittet, men når fakturaen sendes til ERP, vil vi bare sende bruttoverdier og sette all skatt til null.

Dette er en sjelden brukt innstilling for spesielle typer organisasjoner som aldri håndterer merverdiavgift eller andre skattesatser og bare administrerer bruttoverdier internt. Vi opprettholder skatten i brukergrensesnittet selv når den er satt for å sikre at fakturalinjene stemmer overens med overskriften, men vi sender ikke skatten til ERP.

taxCodeAttrId

string

{ "taxCodeAttrId": "A1" }

Dette brukes til å slå opp attributtrelasjoner og i verdimatriser, hvis du har en konfigurasjon der skattekoden er koblet til regnskapsdimensjoner.

Hvis ikke oppgitt, vil vi bruke verdien av A1, så vi anbefaler på det sterkeste å overstyre dette hvis du bruker en annen attributt-ID for skattekoder.

taxSystemAttrId

string

{ "taxSystemAttrId": "GK" }

Når vi ber om skattesystemkonfigurasjon fra ERP7/ERPCr, vil vi bruke denne attributt-ID-en som en identifikator. Hvis ikke oppgitt, vil standardverdien som brukes være GK, så vi anbefaler på det sterkeste å overstyre dette hvis du bruker en annen attributt-ID for skattesystemer.

Dette brukes også til å slå opp attributtrelasjoner og i verdimatriser.

ignoreZeroRows

boolean

{ "ignoreZeroRows": true }

Hvis true, vil en null-rad vise en informasjonsmelding, men deretter bli filtrert ut før den sendes til ERP.

Hvis false, vil en null-rad vise en feilmelding og blokkere innsendingen til den er manuelt korrigert i brukergrensesnittet.

ignoreDueDate

boolean

{ "ignoreDueDate": true }

Ignorer forfallsdatoen på fakturaen og la Unit4 beregne den ved hjelp av standardoppsettet.

exportDateAsInvoiceDate

boolean

{ "exportDateAsInvoiceDate": true }

Dette vil overskrive fakturadatoen på alle fakturaer med dagens dato ved eksport til ERP. Hvis dette ikke er angitt, vil systemet bruke standardinnstillingen, som henter datoen fra feltene for skattepunkt eller utstedelsesdato.

arrivalDateOutput

rossumArrived | export

{ "arrivalDateOutput": "rossumArrived" }

Hvis dette er angitt, vil XML-taggen ArrivalDate (ERP7/CR) / feltet registeredDate (ERPx) settes til enten:

  • rossumArrived: datoen for ankomst (arrived_at) som er angitt i dokumentet i Rossum.

  • export: eksportdatoen i ERP7/CR, eller registeredDate vil settes til eksportdatoen for ERPx-systemer.

Hvis dette ikke er angitt, vil disse eksportfeltene ikke bli inkludert.

firstLineAsDescription

boolean

{ "firstLineAsDescription": true }

Hvis satt til true, vil beskrivelsen på den første fakturalinjen brukes som den generelle fakturabeskrivelsen (dette er beskrivelsen på AP-linjen). Hvis ikke til stede eller false, vil en tidsstempel legges inn som beskrivelse.

payRecipientCheck

boolean

{ "payRecipientCheck": true }

Hvis dette er satt til true, vil systemet merke en INFO-melding mot den samsvarende leverandøren, hvis en betalingsmottaker (faktorselskap) er identifisert som angitt i leverandørregisteret. Dette vil bli oppgradert til en WARNING-melding hvis betalingsmottakeren ikke har status N.

payRecipientBankCheck

boolean

{ "payRecipientBankCheck": true }

Hvis dette er satt til true, vil systemet matche bankopplysningene OG valutaen fra fakturaen med de fra betalingsmottakeren (i stedet for de i leverandørens hovedfil).

elevateWarnings

string[]

{ "elevateWarnings": ["ACL_003", "SU_007"] }

En rekke koder som vanligvis genererer advarsler, men som organisasjonen ønsker å oppgradere til feil.

Hvis du legger til oppføringer her, vil feltet override_warnings vise en feilmelding dersom det finnes advarsler i listen over oppgraderte advarsler. For mer informasjon, se dokumentasjonen om advarsler

Se listen over advarsler som kan oppgraderes.

compressGL

boolean

{ "compressGL": true }

Hvis ingen verdi angis, settes denne til «false».

KUN ERPx Hvis satt til true, setter dette flagget på API-endepunktet. Unit4 beskriver dette som: hvis satt til true, aggregeres GL- og skatteradene i henhold til GL-analysen. Beskrivelsen som er angitt for GL-raden, overføres ikke til hovedboken. (Oppførselen kan replikeres i ERP7 med komprimeringsparameteren på EI02).

Caching

cacheTime

number

{ "cacheTime": 3600 }

Hvis ingen verdi er angitt, vil standardverdien på 3600 sekunder (én time) brukes.

Tiden (i sekunder) som data (for eksempel leverandører, innkjøpsordrer, regnskapsinformasjon) fra Unit4 vil bli lagret i hurtigbufferen. Jo lenger tid dette er, desto færre API-forespørsler må gjøres, og desto raskere vil tjenesten kjøre. Ulempen med en lengre cache-tid er at det vil ta lengre tid før dataene "vises" i OCR-systemet.

cacheSuffix

streng

{ "cacheSuffix": true }

En tilfeldig streng som kan brukes på 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 cacheTime. Hver gang denne verdien endres, vil gamle cache-verdier ikke lenger brukes, og dataene vil 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.

Eksempel på konfigurasjon

Siden JSON-syntaks og typedefinisjonene som brukes ovenfor kanskje ikke er kjent for alle, følger her et eksempel på konfigurasjon.

warning

Dette MÅ redigeres/reduseres til bare de nøklene og alternativene du trenger.

{
"clientId": "ABC",
"legalEntityIndex": 7,
"erpVersion": "erp7",
"erpConnectionSettings" :{
"unit4ApiUrl": "https://example.unit4cloud.com",
"unit4SoapUrl": "https://example.unit4cloud.com" ,
"erpxHost": "https://example.unit4cloud.com",
"erpIdsHost": "https://example.unit4cloud.com"
},
"transactionType": "T1",
"ei02Variant": 0,
"invoiceDocumentTypes": ["IINV", "XYZ"],
"manualTaxCodeIds": ["0", "1", "11"],
"allowedTaxRates": [0.2, 0.05],
"allowAnyTaxCoding": false,
"noPurchaseOrder": {
"base": "allow",
"perSupplier": "xocrconfig/nopurchaseorder"
},
"validPOStatus":["O"],
"apDefaultDims": {
"dim1": 3000,
"dim2": "ABC",
"dim4": "Custom value"
},
"glDefaultDims": {
"dim1": 3001,
"dim2": "ABC",
"dim6": "Custom value",
"account": "3000"
},
"defaultQuantity": 1,
"defaultSupplierId": "1000",
"defaultAccountable": "101",
"payRecipientCheck" : true,
"payRecipientBankCheck" : true,
"ignoreTax": false,
"ignoreZeroRows": true,
"ignoreDueDate": true,
"exportDateAsInvoiceDate": true,
"arrivalDateOutput": "rossumArrived",
"firstLineAsDescription": true,
"cacheTime": 3600,
"cacheSuffix": "",
"elevateWarnings": ["ACL_003","SU_007"],
"compressGL": false,
"locale": "en",
"erpHeaders": {
"X-ACME-RequestOrigin": "ERP Apps OCR",
"X-ACME-UUID": "0c12f153-36f7-4b76-962c-e97c82a491e8"
}
}