Konfiguration av tillägg
När du konfigurerar ditt Rossum-tillägg finns det några alternativ som 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 invoiceDocumentTypes och erpVersion. Om inga andra parametrar anges använder vi våra standardvärden.
Det enda andra undantaget är ei02Variant, som krävs OM du använder ERP7-/ERPCR-versionen av kopplingen.
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 detta inte anges kommer vi att försöka läsa detta per dokument från data i Rossums användargränssnitt. Om det inte anges kommer vi att försöka fastställa klient-ID från de synliga PO-uppgifterna.
De flesta efterföljande sökningar kommer att misslyckas om vi inte kan fastställa ett klient-ID, så vi rekommenderar att du anger detta i konfigurationen när det är möjligt, eftersom det har stor betydelse för systemets tillförlitlighet.
legalEntityIndex
number
{"legalEntityIndex": 7 }
Bör ställas in på numret för den juridiska enhetens dimension för klienten.
Om detta är inställt kommer systemet att försöka identifiera juridiska enhetskoder och tillämpa dessa på redovisningsinformation för fakturor som inte är inköpsorder.
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.
transactionType
string
{ "transactionType": "T1" }
Detta är ERP-transaktionstypkoden som vi skickar till ditt ERP-system när vi skickar fakturan, antingen direkt i JSON för ERPx eller som parameter för inkommande fakturatransaktionstyp på EI02 för ERP7 / CR
ei02Variant
number
{ "ei02Variant": 0 }
Detta är nödvändigt för milstolpe sju. Det är EI02-rapportvarianten som kommer att köras när fakturan bokförs.
invoiceDocumentTypes:
string[]
{ "invoiceDocumentTypes": ["IINV", "XYZ"] }
Detta är listan över dokumenttyper som vi accepterar som fakturor. Om det bara finns en typ kommer vi att tillämpa den, om inte kommer vi att använda den första som standard men låta användaren ändra den i användargränssnittet.
För helt automatiserade processer innebär detta att docType ALLTID kommer att vara den första i listan. Om du behöver manuell kontroll måste du se till att automatisk bearbetning är inaktiverad.
locale
'en' | 'no' | 'sv' | 'es' | 'fr' | 'cy'
{ "locale": "en" }
Endast dessa exakta strängar accepteras som giltiga locales. 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 locale. Om vi misslyckas med detta kommer felmeddelanden att visas 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 om du till exempel har ett självhostat ERP-system som du vill kontrollera åtkomsten till.
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 lastbalanseringen eller omvänd proxy utan att nå servern själv.
Du kan också använda detta för analys- eller loggningsändamål.
attachMessagesDocument
none | warning | all
{ "attachMessagesDocument": "all" }
Vilka meddelanden 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 information
Om inget anges är standardinställningen all.
ERP-anslutningskonfiguration
Observera att dessa anslutningsinställningar nu kan anges i tilläggshemligheter (där de tidigare fanns) ELLER här i inställningarna (för bättre synlighet).
Om något av dessa värden är inställt på båda platserna, har det som finns här i inställningarna 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
manualTaxCodeIds
string[]
{ "manualTaxCodeIds": ["0", "1", "11"] }
Om detta anges kommer vi att begränsa skattekoder för rader som inte är inköpsorder (AP / extra inköpsorderrader / fakturarader som inte är inköpsorder) till endast de som anges här.
Fakturalinjer som matchar en inköpsorderrad kommer fortfarande att använda skattekoderna från inköpsordern enligt specifikationen.
allowedTaxRates
number[]
{ "allowedTaxRates": [0.2, 0.05] }
Om detta anges kommer vi att begränsa skattesatserna till endast de som anges här. Om vi avrundar nära en av dessa kommer vi att "snappa" till den. Om vi avrundar till en skattesats som inte finns i denna lista kommer vi att ignorera den och anta att det är ett OCR- eller fakturafel.
noPurchaseOrder
{ base: 'allow' | 'reject'; perSupplier: 'allow' | 'reject' | null; }
{
"noPurchaseOrder": {
"base": "allow",
"perSupplier": "supppoctrl/no_po_no_pay_fx"
}
}
Detta används för att avgöra om vi kan utfärda fakturor utan inköpsorder. Om bas är 'reject' kommer vi att avvisa alla fakturor utan inköpsorder. Om base är 'allow' kommer vi att tillåta fakturor utan inköpsorder.
Om perSupplier är angivet kommer vi att söka efter ett customField (flexifield) hos leverantören och om
vi hittar det kommer vi att behandla värdet som basvärdet för den leverantören.
Detta värde ska vara antingen allow eller reject (eller inte finnas), så flexifield ska konfigureras med dessa alternativ
Ett exempel på ett värde för fältet perSupplier skulle kunna vara något i stil med supppoctrl/no_po_no_pay_fx.
Om det inte hittas använder vi basvärdet.
validPOStatus
string[]
{ "validPOStatus": ["O","F"] }
Om denna inställning inte är angiven i konfigurationen kommer vårt standardfilter status NOT IN (N, P, T) att tillämpas
Detta används för att ställa in status för rubriken på inköpsordern som anses giltig för matchning.
Om detta är inställt och en inköpsorder returneras men inte har någon av de identifierade statusarna, kommer den inte att användas för matchning och kommer inte att skickas till ERP med fakturauppgifterna.
Användaren kommer att få ett varningsmeddelande om en inköpsorder hittades av OCR, men inte matchades.
validSupplierStatus
string[]
{ "validSupplierStatus": ["N","P","C","T"] }
Om denna inställning inte anges i konfigurationen tillämpas vårt standardfilter status = N
Vissa kunder har begärt att icke-aktiva leverantörer ska matchas i OCR, men att ett felmeddelande ska visas 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å felmeddelandet 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.
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": "Anpassat värde"
}
}
Vi använder dessa standardvärden för att möjliggöra automatisk inlämning.
På AP-raden hämtar vi kontot från leverantörsgruppen och fyller sedan i alla giltiga dimensioner med dimensionerna härifrån.
Om dessa inte anges måste de fyllas i manuellt i användargränssnittet.
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": "Anpassat värde",
"account": "3000"
}
}
För fakturor utan inköpsorder använder vi dessa standardvärden för att möjliggöra automatisk inlämning.
Om dessa inte anges måste de fyllas i manuellt i användargränssnittet.
defaultQuantity
number
{ "defaultQuantity": 1 }
Om vi inte kan läsa av en kvantitet för en radpost faller vi tillbaka på detta värde.
defaultSupplierId
string
{ "defaultSupplierId": "1000" }
Om vi inte kan fastställa en leverantör faller vi tillbaka på detta värde.
Innan vi använder detta kontrollerar vi inköpsordern för en leverantör och söker sedan i fälten för företagsnummer, momsregistreringsnummer och bankuppgifter efter en leverantör. Om vi kan matcha någon av dessa gör vi det. Om inte använder vi detta värde när det är inställt.
defaultAccountable
string
{ "defaultAccountable": "101" }
Vi försöker matcha den aktiva Rossum-användaren med en ERP-användare. Om det lyckas kommer vi att ställa in den ERP-användaren som ansvarig person för denna faktura.
Om vi inte lyckas matcha användaren kommer vi att använda detta värde när det är inställt.
Detta värde kommer så småningom att visas i fältet ext_ref på fakturatransaktionen
ignoreTax
boolean
{ "ignoreTax": false }
Detta innebär inga större förändringar i användargränssnittet, men när fakturan skickas till ERP kommer vi endast att skicka bruttobelopp och ställa in all skatt till noll.
Detta är en sällan använd inställning för speciella typer av organisationer som aldrig hanterar moms eller andra skattesatser och endast hanterar bruttobelopp internt. Vi behåller skatten i användargränssnittet även när den är inställd för att säkerställa att fakturans rader balanserar med rubriken, men vi skickar inte skatten till ERP.
ignoreZeroRows
boolean
{ "ignoreZeroRows": true }
Om true ska en nollrad visa ett informationsmeddelande, men sedan filtreras bort innan den skickas till ERP.
Om false ska en nollrad visa ett felmeddelande och blockera inlämningen tills den manuellt korrigeras i användargränssnittet.
ignoreDueDate
boolean
{ "ignoreDueDate": true }
Ignorera förfallodatumet på fakturan och låt Unit4 beräkna det med hjälp av standardinställningen.
firstLineAsDescription
boolean
{ "firstLineAsDescription": true }
Om inställt på true kommer den första fakturaradens beskrivning att användas som den övergripande fakturabeskrivningen (detta är beskrivningen på AP-raden). Om inte närvarande eller falskt kommer en tidsstämpel att anges som beskrivning.
payRecipientCheck
boolean
{ "payRecipientCheck": true }
Om detta är inställt på true kommer systemet att markera ett INFO-meddelande mot den matchade leverantören, om en betalningsmottagare (fakturaföretag) identifieras som inställd i leverantörsregistret. Detta uppgraderas till ett VARNING-meddelande om betalningsmottagaren inte har status N.
payRecipientBankCheck
boolean
{ "payRecipientBankCheck": true }
Om detta är inställt på true kommer systemet att matcha bankuppgifterna OCH valutan från fakturan med dem från betalningsmottagaren (istället för dem i leverantörsstamfilen).
Caching
cacheTime
number
{ "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, redovisningsinformation) 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 cachetid är att det tar längre tid för data att "dyka upp" i OCR-systemet.
cacheSuffix
sträng
{ "cacheSuffix": true }
En slumpmässig sträng som kan läggas till i slutet av cachenycklarna i systemet. Om inget värde anges används default.
Du kan definiera 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.
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 elementer her, vil feltet override_warnings gi en feilmelding hvis det finnes advarsler i listen over oppgraderte feil. For mer informasjon, se dokumentasjonen om advarsler
Se listen over advarsler som kan oppgraderes
Exempel på konfiguration
Eftersom JSON-syntax och typdefinitionerna som används ovan kanske inte är bekanta för alla, följer här ett exempel på konfiguration.
Detta MÅSTE redigeras/reduceras till endast de nycklar och alternativ som du behöver.
{
"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],
"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,
"firstLineAsDescription": true,
"cacheTime": 3600,
"cacheSuffix": "",
"elevateWarnings": ["ACL_003","SU_007"],
"locale": "en",
"erpHeaders": {
"X-ACME-RequestOrigin": "ERP Apps OCR",
"X-ACME-UUID": "0c12f153-36f7-4b76-962c-e97c82a491e8"
}
}