Är Pagero Printer listad bland de installerade skrivarna?
Kan du välja Pagero Printer när du skriver ut i ERP-/ekonomisystemet?
Kan alla användare både läsa och skriva i
C:\Documents and Settings\All Users\Application Data\Pagero\USER
?
Körs Pagero PrinterListener för alla användare (kontrollera i Aktivitetshanteraren)?
Kan du hitta en PDF i
C:\Documents and Settings\Application Data\Pagero Connect\VirtualPrinter\In?
Startar Pagero Connect-applikationen automatiskt (den ska vara igång innan du utför detta test)?
För att testa installationen ska skrivaren testas. Test: Öppna ett dokument (vilket som helst). Skriv ut det genom att välja Arkiv/Skriv ut ... Välj sedan skrivardrivrutinen för Pagero Printer. Resultat: Dokumentet bör skrivas ut. Om du använder Pagero Connect för kommunikation ska programmet starta och dokumentet visas med en förloppsindikator samt en status som visar att dokumentet skickades. Om du använder Pagero Server Connect för kommunikation ska filen skickas (men ingen GUI visar status). I båda fallen ovan, för att kontrollera att dokumentet skickades till Pagero Online, logga in på
Pagero Online. Gå till Fakturahistorik/Hantera batchar med fel Filen ska visas i listan.
Test av hantering av bilagor i Server Connect
Syftet med testet är att säkerställa att dina regex (regular expression) för att koppla huvuddokumentet till dess bilagor fungerar som de ska. Först en kort anmärkning: För att applikationen ska fungera som önskat (att huvuddokumenten är kopplade till bilagor och överförs tillsammans till Pagero Online-behandlingsplattformen) måste bilagor skrivas till sin destinationsmapp först och huvuddokumentet måste placeras på sin plats sist. Det viktiga här är att identifiera hur filnamnen kan användas för att koppla samman dokumenten. Detta görs genom att låta delar av filnamnet vara identiska för filer som hör ihop, på ett sätt som eliminerar tvetydighet. Med andra ord måste den del av namnet som används för att koppla samman dokument vara unik. Se till att flaggan subDocumentAware är inställd på true (sant) under outbox-taggen i konfigurationsfilen. Definiera sedan regex (regular expression) som behövs för att identifiera dina filnamn. Placera filer som namnges enligt dina reguljära uttryck (och som speglar den filnamnskonventioner du kommer att använda i produktionen) i de mappar som används för testning av din utkorg (outbox). Skicka filerna till Pagero Online. Logga sedan in på Pagero Online-portalen för att kontrollera om dina filer överfördes korrekt.
Exempel 1: Faktura med en allmän bilaga i PDF-format.
masterDocRegexp=(.*).xml
subDocRegexp=(.*).pdf
Exempel 2: Faktura med en presentationsbilaga (fakturabild) och allmänna bilagor.
masterDocRegexp=INVOICE_(.*).xml
subDocRegexp=ATTACHMENT_(.*)[_\d]?.pdf
subDocPresentationRegexp=IMAGE_(.*).pdf
Det vanligaste felet är att användare inte har tillräckliga användarrättigheter i
Document and Settings\All Users\application Data\Pagero
. Användarna måste ha både läs- och skrivrättigheter.
PageroPrinterListener måste köras för alla användare. Detta kan enkelt verifieras genom att kontrollera Aktivitetshanteraren.
Om den utskrivna fakturan (PDF-fil) är tom, kan en möjlig orsak vara att en pcl-drivrutin används. Pagero Printer kräver postscript.
För att kontrollera om den utskrivna PDF-filen faktiskt sparades i
Documents and Settings\All Users\application Data\Pagero\User
, kontrollera loggfilen i
C:\WINDOWS\TempPageroPrintingNNNNNlog (txt)
.
Loggfilen för Pagero PrinterListener finns i
C:\Documents and Settings\USER\Local Settings\Temp
och heter PageroPrinterListener.log.
Kontrollera om PDF-filen har flyttats till katalogen för virtuell skrivare i Pagero Connect genom att kontrollera om det finns en *.pdfACK-fil i
Documents and Settings\All Users\application Data\Pagero\USER
.
Förstå det normala flödet för Pagero Printer
Kunden väljer att skriva ut en faktura, vilket resulterar i att en utskriftsruta öppnas.
Pagero Printer har valts.
Pagero Printer tar emot data som ska skrivas ut och skapar en PDF som sparas i
Documents and Settings\All Users\application Data\Pagero\USER
.
PageroPrinterListener upptäcker den nya PDF-filen (fakturorna) och flyttar den till
Documents and Settings\USER\Application Data\Pagero Connect\VirtualPrinter\In
.
PageroPrinterListener meddelar eller startar Pagero Connect och informerar om att det finns en ny PDF-fil (nya fakturor) som är klar att skickas.
Pagero Connect skickar PDF-filerna (fakturor) till Pagero Online.
Konfiguration av flera skrivare
För att kunna skriva ut e-fakturor från fler än ett juridiskt företag/enhet behöver du en skrivare per företag/enhet. För att skapa fler än en skrivare måste du köra installationen manuellt från kommandoraden och mata in de programparametrar som behövs för att skapa separata skrivare. Beroende på hur du planerar att skicka filerna till Pagero Online kan mappstrukturen se lite annorlunda ut. Läs hela detta avsnitt innan du påbörjar installationen.
Börja med att hämta installationsprogrammet för skrivaren. Pagero Printer finns tillgänglig på Pagero Online-webbplatsen. Logga in och gå till
Support -> Nedladdningar
. Klicka på skrivarsymbolen för att ladda ned installationsfilen. Följ instruktionerna på sidan för att installera skrivaren som en fristående skrivare, men observera följande extra parametrar som behövs eftersom du installerar två eller flera skrivare:
/portname (namnet som skrivaren kommer att visa, i listan över skrivare som finns i de flesta Windows-applikationer)
/printname (en mapp där skrivaren kommer att spara de PDF-filer som skapas vid utskrift)
Förutsatt att du laddade ned installationsprogrammet till din C:-disk, kommer kommandot att se ut så här:
C:\setuppageroprinter.exe /portname=port1 /printname=<companyName1_prod> /PageroVersion=<version number> /javabin=”<path to java.exe>” /LANG=EN
Den angivna parametern /printname motsvarar en katalog i filsystemet (se printTargetStandalonePrinter nedan) och måste skapas manuellt
Om du vill installera den andra (och tredje osv.) skrivaren, kör du bara kommandot igen och ger olika värden till parametrarna /portname och /printname.
C:\setuppageroprinter.exe /portname=port2 /printname= < companyName2_prod >/PageroVersion=<version number> /javabin=<path to java.exe> /LANG=EN
Gå nu till skrivarkonfigurationsfilen som finns på:
$ProgramFiles\PageroConnect\printersettings.ini
Här bestämmer du vilken huvudmapp dina skrivare ska placera PDF-filerna i.
printTargetStandalonePrinter=<main folder>
(Skapa mappen manuellt).
Lägg även till följande rad i filen printersettings.ini:
fileNameFormat=$env{REDMON_PRINTER}\\$date{yyyyMMddHHmmss}.pdf
Dessa parametrar bestämmer namnmönstret för de PDF-filer som skapas.
Din printersettings.ini bör se ut så här:
printTargetStandalonePrinter=c:\\pagero temporaryPdfAsFileOrDir=file fileNameFormat=$env{REDMON_PRINTER}\\$date{yyyyMMddHHmmss}.pdf
Följande ska skapas om skrivare med namnen companyName1_prod
och
companyName2_prod är installerade:
C:\pagero\ companyName1_prod c:\pagero\ companyName2_prod
För att testa skrivarna, öppna en textfil med t.ex. Anteckningar. Skriv ut filen med alla skrivare (en i taget) och se till att filerna skrivs ut till motsvarande mapp, så som ställts in ovan. För att filerna ska skickas till Pageros e-fakturatjänst konfigurerar du kommunikationsprogrammet så att det läser mapparna där PDF-filerna sparas.
Om du använder Pagero Server Connect för att kommunicera filerna, vänligen notera att du behöver separata skrivare för produktion och test. Testskrivaren ska heta companyName1_test och tillhörande mapp ska vara c:\pagero\companyName1_test. Den tillhörande mappen bör konfigureras för läsning av testfiler i Server Connect.
Exempel på konfiguration av Server Connect visas nedan: prodPath="C:/ Pagero/ companyName1_prod/" testPath="C:/ Pagero/ companyName1_test/" workPath="C:/ Pagero/ work/ companyName1/" subDocAware="false" masterDocRegexp="(.*)\.xml" subDocRegexp="(.*)\.pdf" subDocPresentationRegexp="(.*)\.png">
Konfigurera SAP till Pageros nätverksskrivare
För filer som måste delas (batchfiler som innehåller flera fakturor), berikas eller där du har avsnitt som måste tas bort, kan du använda modulen Filesplitter. Denna modul måste schemaläggas före ServerConnect. Det finns en fil som heter FileSplitt.bat som startar modulen. Innan du kör FileSplitt.bat måste du skapa en konfigurationsfil och redigera FileSplitt.bat. Ställ in konfigurations- och loggfil i FileSplitt.bat. Skapa din konfigurationsfil för FileSplitter. Denna kommer att berätta för Filesplitter vad den ska göra. Du kan göra en kopia av config_fs.xml och ställa in din konfiguration.
Exempel på konfigurationsfil
<fpclient>
<log mode="FILE" path="c:/ Temp/ log/ filsplitter.log">
<filename pattern="MERFL.*xml">
<defaultEncoding charset="ISO-8859-15">
<path verbose="false">
<incomming path="c:/ Temp/ incoming"/>
<outgoing path="c:/ Temp/ outgoing"/>
<temporary path="c:/ Temp/ temp"/>
<backup path="c:Temp/ backup"/>
</path>
<xmltag verbose="false">
<removeTag pattern="^S[O-P].*"/>
<splitTag pattern="Finvoice"/>
<attachmentTag pattern="InvoiceFreeText" group="(.*)" filename="${1}"/>
<savedBatchDataTag pattern="sectionInfo"
appendAfterSplit="</ section></ batch>"/>
<CSVTag header="TRUE" csvIdentifier="14" useCSVIndex="TRUE"
invoiceIdentifier="/ Finvoice/ InvoiceDetails/ AgreementIdentifier"/>
<modTag xpath="/ Finvoice/ BuyerPartyDetails/ BuyerOrganisationName"
action="BEFORE" value="A"/>
<modTag xpath="/ Finvoice/ BuyerPartyDetails/ BuyerOrganisationName"
action="AFTER" value="B"/>
<modTag xpath="/ Finvoice/ BuyerPartyDetails/ BuyerOrganisationTaxCode"
action="REPLACE" value="C"/>
<modTag xpath="/ Finvoice/ BuyerPartyDetails/ buyerExtra" action="CREATE"
value="D"/>
<modTag
xpath="/ Finvoice/ MessageTransmissionDetails/ MessageSenderDetails/ FromIntermediator"
action="BEFORE" value="1" useCSV="TRUE" useCSVIndex="TRUE"/>
<modTag
xpath="/ Finvoice/ MessageTransmissionDetails/ MessageSenderDetails/ FromIntermediator"
action="AFTER" value="InvoiceNumber" useCSV="TRUE" useCSVIndex="FALSE"/>
<modTag
xpath="/ Finvoice/ MessageTransmissionDetails/ MessageSenderDetails/ FromIntermediator[2]"
action="REPLACE" value="3" useCSV="TRUE" useCSVIndex="TRUE"/>
</xmltag>
</fpclient>
Detta exempel söker efter filer i
C:/Temp/incoming/
in som har filnamnet MERFL.*.xml, t.ex. MERFL_123.xml. När en fil hittas tar vi bort SOAP-taggen och delar upp innehållet i olika filer.
Varje ny fil har start-tagg och slut-tagg Finvoice. Filesplitter matchar fakturan med bilagan med hjälp av tagg InvoiceFreeText. Filesplitter identifierar också en CSV-fil för fakturan. Informationen i CSVTag berättar för Filesplitter hur CSV är kopplat till en faktura. Index i CSV-filen ska matcha värdet /Finvoice/InvoiceDetails/AgreementIdentifier i fakturan.
Värden i CSV används för att berika värden i fakturan. När alla filer har analyserats skapas uppdelade fakturor i
C:/Temp/outgoing
och originalfilerna flyttas till
C:/Temp/backup
.
Beskrivning av taggar och attribut i konfigurationsfilen
xmltag | verbose | FALSE för information och TRUE för utökad information. |
Log | Mode | FILE för att skriva till fil och SYSTEM för att skriva till eventloggen på Windows och syslog på en Linux-maskin. |
Log | Path | Var loggfilen kommer att sparas. Sökvägen måste finnas, men inte filen. |
filename | Pattern | Regexp, skanna fakturafiler som matchar detta mönster |
path | Vervbose | FALSE (falskt) för information och TRUE (sant) för utökad information |
incomming | Path | Var originalfakturor och bilagor som är ouppdelade/obearbetade lagras. |
defaultEncoding | charset | Giltigt teckenuppsättningsnamn. T.ex. ISO-8859-15 eller UTF-8. Detta kommer att användas som standardkodning om FileSplitter inte lyckas identifiera kodning från faktura eller batchfil. |
outgoing | Path | Var uppdelade/behandlade fakturor och bilagor ska sparas. |
backup | Path | Sökväg dit originalfiler från incomming (inkommande) flyttas. Alla bearbetade filer från incomming (inkommande) kommer att flyttas till den här sökvägen när de har bearbetats. |
removeTag | pattern | Regexp, start och slut på uttryck bör tas bort. |
splitTag | pattern | Start- och sluttagg som identifierar en faktura i batch. |
attachmentTag | pattern | För att matcha bilagans filnamn med en faktura måste du konfigurera attachmentTag med attributen pattern, group och filename. Pattern (mönster) är ett reguljärt uttryck (regex). Ange pattern på en xmltag. Då kommer vi att använda group (grupp) och filename (filnamn) för att tolka det textvärdet. |
attachmentTag | groups |
Skapa grupper med reguljära uttryck (regex). Dessa grupper kommer att användas i attributet filename (filnamn), t.ex. ([a-z0-9A-Z-]*)\
([a-z0-9A-Z-]*) skapar 2 grupper.
|
attachmentTag | filename | Här skapar vi filnamnen som du kommer att matcha med din faktura. t.ex. Test{1]_{2].pdf använder grupp 1 och grupp 2 som anges i attributet groups. |
CSVTag | header | TRUE om CSV-filen har en rubrik, annars FALSE. |
CSVTag | csvIdentifier | Index för csv-värdet (börjar med 0) eller rubriknamnet för värdet i CSV |
CSVTag | useCSVIndex | TRUE om csvIdentifier använder index, annars FALSE. |
CSVTag | csvFilenameIdentifier | TRUE om vi vill matcha värdet i fakturan med filnamnet på CSV-filen, annars FALSE. |
CSVTag | invoiceIdentifier | XPath för att identifiera värdet i XML-filen. |
CSVTag | invoiceIdentifierGroups | Skapa grupper med reguljära uttryck (regex). t.ex. [a-z0-9A-Z-]*\ ([a-z0-9A-Z-]*). Får en group i textvärde. |
CSVTag | invoiceIdentifierFilename | Parsad text som används för att hitta CSV som filnamn eller för att använda värde inuti CSV-filen, t.ex. ${1}.csv kommer att använda grupp 1 och ersätta ${1} med det värdet. |
modTag | Xpath | XPath för att hitta i XML-filen som kommer att berikas. |
modTag | Action | Kan vara ett av följande värden BEFORE - Lägg till värde framför textvärdet. AFTER - Lägg till värde efter textvärdet. REPLACE - Ersätt hela textvärdet med nytt värde. Om xpath inte finns kommer en ny tagg att skapas. CREATE - Skapa en ny xml-tagg som är den giltiga xpath med värden. |
modTag | Value | Ny text som ska användas när XML-filen berikas. Om useCSVIndex och useCSV inte används, kommer denna statiska text att användas för att ersätta värdet i XML. |
modTag | useCSVIndex | TRUE för att använda index, FALSE för att använda rubriknamn. |
modTag | useCSV | TRUE när CSV-fil används för berikning, annars FALSE. |
saveBatchDataTag | Pattern | RegExp, för att upptäcka sista noden i batchen före varje enskild faktura. |
SaveBatchDataTag | AppendAfterSplit | Nod eller noder som måste läggas till i slutet av varje uppdelad faktura. Denna sträng måste finnas i den ursprungliga batchen. Observera även att du inte kan skriva xml-taggar i konfigurationsfilen. Så i stället för att använda tecknen < eller > MÅSTE du ange < eller > så </INVOICES<>/CONTENT_FRAME></INOICE_CENTER> ska anges som </INVOICES></CONTENT_FRAME>/INVOICE_CENTER> |
Du kan berika XML med statisk text eller med värden i en CSV-fil. Om du berikar XML med statisk text behöver du bara lägga till modTags i konfigurationsfilen och ange xpath, action och value. Exempel
<modtag xpath="/ Finvoice/ BuyerPartyDetails/ ByerOrganisationName" action="BEFORE"
value="A"/>
<modTag xpath="/ Finvoice/ BuyerPartyDetails/ BuyerOrganisationName" action="AFTER"
value="B"/>
<modTag xpath="/ Finvoice/ BuyerPartyDetails/ BuyerOrganisationTaxCode" action="REPLACE"
value="C"/>
<modTag xpath="/ Finvoice/ BuyerPartyDetails/ buyerExtra" action="CREATE" value="D"/>
Här ska vi försöka hitta xpath /Finvoice/BuyerPartyDetails/BuyerOrganisationName och lägga till värdet A före och B efter det befintliga värdet. Vi försöker också hitta xpath /Finvoice/BuyerPartyDetails/BuyerOrganisationTaxCode och ersätta det befintliga värdet med C. Den sista raden kommer skapa en ny tagg om xpath är giltig och sätter värdet D.
För att berika XML med en CSV måste du lägga till CSVtag och beskriva hur CSV ska kopplas till fakturan. Du kan koppla CSV-filen med ett värde inuti CSV eller använda dess filnamn. För att använda filnamnet ska du lägga till attributet csvFilenameIdentifier och sätta det till TRUE. Nu kommer Filesplitter att försöka hitta ett värde i fakturan och matcha det med CSV-filens namn. För att matcha CSV med fakturan baserat på information inuti filerna måste du använda attributen csvIdentifier och useCSVIndex.
Med dessa två attribut kommer Filesplitter att försöka hitta ett värde i CSV-filen med angivet index eller namn och matcha det med ett fakturavärde som finns i den angivna xpath. I modTag ställer vi in useCSV till TRUE. Vi kan sedan sätta useCSVIndex till TRUE och value till ett indexnummer, eller så sätter vi useCSVIndex till FALSE och value till rubriknamnet. Filesplitter slår nu upp värdet i CSV-filen och berikar XML-filen med det hittade värdet. CSV-filen måste använda ";" för att separera värden i filen.
<CSVTag header="TRUE" csvIdentifier="14" useCSVIndex="TRUE"
invoiceIdentifier="/ Finvoice/ InvoiceDetails/ AgreementIdentifier"/>
<modTag
xpath="/ Finvoice/ MessageTransmissionDetails/ MessageSenderDetails/ FromIntermediator"
action="AFTER" value="InvoiceNumber" useCSV="TRUE" useCSVIndex="FALSE"/>
<modTag
xpath="/ Finvoice/ MessageTransmissionDetails/ MessageSenderDetails/ FromIntermediator[2]"
action="REPLACE" value="3" use CSV="TRUE" useCSVIndex="TRUE"/>
Här kopplar vi CSV-filen med hjälp av index 14 och xpath /Finvoice/InvoiceDetails/AgreementIdentifier. Om de har samma värde kopplas de ihop, och CSV kommer att användas för att berika fakturan. Första modTag kommer att lägga till värdet i CSV som har rubrik invoiceNumber, andra modTag kommer att ersätta värdet i /Finvoice/MessageTransmissionDetails/MessageSenderDetails/FromIntermediator [2] med värdet i index 3 i CSV-filen.
Här är ett exempel på hur en konfiguration av CSVTag kan se ut vid matchning med CSV-filnamn.
<CSVTag header="TRUE" csvFilenameIdentifier="TRUE"
invoiceIdentifierGroups="[a-z0-9A-Z-]*\ ([a-z0-9A-Z-]*)."
invoiceIdentifierFilename="${1}.csv"
invoiceIdentifier="/ Finvoice/ InvoiceDetails[1]/ InvoiceFreeText[1]"/
>
Först kommer invoiceIdentifier att hämta värdet mellan xml-taggarna. Sedan kommer vi att tillämpa regex [a-z0-9A-Z-]*\ ([a-z0-9A-Z-]*). på värdet och få en grupp. Därefter formaterar vi vårt värde med invoiceIdentifierFilename och använder värden inom grupper som vi har tolkat. Om värdet exempelvis är ”Test 123 ABC”, så får grupp 1 värdet 123, och slutligen tillämpar vi ${1}.csv och får 123.csv som slutligt värde.
För att köra både Filesplitter och Serverconnect används FileSplitt_AND_ServerConnect.bat för att inaktivera kommandotolken från att visas använder vi invis.vbs som tar bat-filen som argument, dvs.
Kör både Filesplitter och Serverconnect –
”C:\WINDOWS\system32\wscript.exe<install path>\invis.vbs<install path>\FileSplitt_And_ServerConnect.bat
Exempel på konfigurationsfil för TEAPPS
.
<fpclient
<log mode="FILE" path="/ tmp/ fileSplitter/ log/ startconf.log"/>
<filename pattern="teappsInvoice.*xml"/>
<defaultEncoding charset="ISO-8859-15"/>
<path verbose="false">
<incomming path="/ tmp/ fileSplitter/ incoming"/>
<outgoing path="/ tmp/ fileSplitter/ outgoing"/>
<temporary path="/ tmp/ fileSplitter/ temp"/>
<backup path="/ tmp/ fileSplitter/ backup"/>
</path>
<xmltag verbose="false">
<removeTag pattern="^S[OP].*"/>
<splitTag pattern="^INVOICE$"/>
<!--BGC-fakturor sparar batchdata när de delas upp →
<saveBatchDataTag pattern="^INVOICES$"
appendAfterSplit="<;/ INVOICES>;<;/ CONTENT_FRAME>;<;/ INVOICE_CENTER>;"/>
</xmltag>
</fpclient>
Exempel på konfigurationsfil för BGCInvoice
<fpclient>
<log mode="FILE" path="/ tmp/ fileSplitter/ log/ startconf.log"/>
<filename pattern="BGCInvoice.*xml"/>
<defaultEncoding charset="ISO-8859-15"/>
<path verbose="false">
<incomming path="/ tmp/ fileSplitter/ incoming"/>
<outgoing path="/ tmp/ fileSplitter/ outgoing"/>
<temporary path="/ tmp/ fileSplitter/ temp"/>
<backup path="/ tmp/ fileSplitter/ backup"/>
</path>
<xmltag verbose="false">
<removeTag pattern="^S[OP].*"/>
<splitTag pattern="^document$"/>
<!--BGC-fakturor sparar batchdata när de delas upp →
<saveBatchDataTag pattern="sectionInfo" appendAfterSplit="<;/ section>;<;/ batch>;"/>
</xmltag>
</fpclient>