Pagero Server Connect – Testa installationen av Pagero Printer

Checklista
  • Ä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)?
Testa skrivaren
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
Felsökning
  • 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
  1. Kunden väljer att skriva ut en faktura, vilket resulterar i att en utskriftsruta öppnas.
  2. Pagero Printer har valts.
  3. 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
    .
  4. PageroPrinterListener upptäcker den nya PDF-filen (fakturorna) och flyttar den till
    Documents and Settings\USER\Application Data\Pagero Connect\VirtualPrinter\In
    .
  5. PageroPrinterListener meddelar eller startar Pagero Connect och informerar om att det finns en ny PDF-fil (nya fakturor) som är klar att skickas.
  6. Pagero Connect skickar PDF-filerna (fakturor) till Pagero Online.
Avancerade funktioner
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
note
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.
note
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
Filesplitter
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="&lt;/ section&gt;&lt;/ batch&gt;"/> <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.
TAGG
ATTRIBUT
VÄRDE
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.
temporary
Path
Arbetsmapp.
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 &lt; eller &gt; så </INVOICES<>/CONTENT_FRAME></INOICE_CENTER> ska anges som &lt;/INVOICES&gt;&lt;/CONTENT_FRAME&gt;/INVOICE_CENTER&gt;
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="&lt;/ INVOICES&gt;&lt;/ CONTENT_FRAME&gt;&lt;/ INVOICE_CENTER&gt;"/> </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="&lt;/ section&gt;&lt;/ batch&gt;"/> </xmltag> </fpclient>