Dient zur automatischen Ausführung eines Mahnlaufs.
Es kann zu fest bestimmten Tagen (am 10./20./30. oder jeden Montag, ...) ein Mahnlauf gestartet werden. Die Mahnungen werden in einem vordefinierten Ordner abgelegt oder auf Wunsch auch an die vorgesehene EMail-Adresse gesendet.
Es wird das Zusatzmodul "Offene Posten Verwaltung" benötigt!
Anforderungen
-
LC.WpfInterfaces ab Version 1.2020.0528.0
-
TaskCenter ab Version 4.70.0.0
-
Zusatzmodul "Offene Posten Verwaltung" - wird über TaskCenter-Lizenzschlüssel bereitgestellt
Schnellstart
-
LC.WpfInterfaces installieren (wenn nicht vorhanden) bzw. aktualisieren
-
Eigenes Layout für die Druckvorlage DunningTextSheet1.rpx erstellen (zB. XDunningTextSheet1.rpx) und im company\Reports-Ordner bereitstellen
-
Einmalig eine Mahnung manuell, mit die gewünschten Druckeinstellungen, drucken, damit diese für den Benutzer in der User-Ini gespeichert werden
-
Prüfen Sie, ob Sie bereits Mahntexte festgelegt haben - ohne Mahntexte kann die Mahnstufe nicht berechnet werden
-
XML-Konfigurationsdatei erstellen bzw. Vorlage kopieren und anpassen
-
Batch-Datei erstellen, die diese XML-Konfigurationsdatei als Parameter ausführt
-
Windows-Aufgabenplanung einrichten (zB. alle 7 Tage - oder 1x im Monat - je nach Bedarf)
Konfigurationsdatei
Aufbau
<?xml version="1.0" encoding="utf-8"?>
<DunningRun>
<DB>POLLEX</DB>
<USER>SYSADM</USER>
<PASSWORD>SYSADM</PASSWORD>
<LogLevel>Full</LogLevel>
<DunningLetterPrintLayout>X</DunningLetterPrintLayout>
<TargetPdfFolder>c:\POLLEX\Mahnungen</TargetPdfFolder>
<TargetPdfFilenamePattern>MAHNUNG_{CustomerNumber}.pdf</TargetPdfFilenamePattern>
<SendDunningMail>True</SendDunningMail>
<MailSuccessPdfFolder>c:\POLLEX\Mahnungen\Sent</MailSuccessPdfFolder>
<MailFailedPdfFolder>c:\POLLEX\Mahnungen\Failed</MailFailedPdfFolder>
<DunningMailBody>@GetTextModule("MAHN_MAILBODY")</DunningMailBody>
<DunningMailSubject>Mahnung vom {Today}</DunningMailSubject>
<CustomerNumberFrom></CustomerNumberFrom>
<CustomerNumberTo></CustomerNumberTo>
<AccountNumberFrom></AccountNumberFrom>
<AccountNumberTo></AccountNumberTo>
<OrgUnits></OrgUnits>
<TotalAmountGrossIncFrom></TotalAmountGrossIncFrom>
<TotalAmountGrossIncTo></TotalAmountGrossIncTo>
<IsTransferredToAccount></IsTransferredToAccount>
<IsInvoiceFinished></IsInvoiceFinished>
<SqlWhere></SqlWhere>
<Test>False</Test>
<SmtpServer>mail.mustermann.com</SmtpServer>
<SmtpUser>Benutzername</SmtpUser>
<SmtpPassword>Passwort</SmtpPassword>
<SmtpPortNumber></SmtpPortNumber>
<SmtpUseSSL>True</SmtpUseSSL>
<SenderEMail>dunning@mustermann.com</SenderEMail>
<BccEMail></BccEMail>
<ProtocolEMail>max@mustermann.com</ProtocolEMail>
<MailLevel>All</MailLevel>
<MailSubject></MailSubject>
<MailBody></MailBody>
<IsBodyHtml></IsBodyHtml>
</DunningRun>
Feldbeschreibung
|
Feld |
Mögliche Werte |
Beschreibung |
|
DB |
|
Datenbankname für die Verbindung zur Datenbank |
|
USER |
|
Benutzername für die Verbindung zur Datenbank |
|
PASSWORD |
|
Passwort für die Verbindung zur Datenbank |
|
LogLevel |
Full, Detail, Info, Warning, Error |
Detailgrad für die Protokollierung in der Log-Datei |
|
|
|
|
|
DunningLe tterPrintLa yout |
|
Layout-Buchstabe für das Drucklayout (DunningTextSheet1.rpx) Wichtig!! Es muss immer ein eigenes Drucklayout angegeben und im company\Reports-Ordner bereitgestellt werden!! Die Druckeinstellungen werden über die USER-INI eingelesen. Das heißt, es muss einmalig eine Mahnung manuell gedruckt werden, mit den gewünschten Einstellungen für den DB-Benutzer, welcher dann für den Mahnlauf angemeldet wird. |
|
TargetPdfF older |
|
Ziel-Ordner, in dem die erstellten PDFs abgelegt werden |
|
TargetPdfF ilenamePat tern |
|
Vorlage, wie der Pdf-Dateiname auszusehen hat. Es können diverse Platzhalter sowie StringFunctions verwendet werden - Details siehe hier. |
|
SendDunni ngMail |
True, False |
True = Zusätzlich zur Erstellung der PDFs wird eine EMail an den Fibu-EMail-Kontakt des Kunden bzw. an die eInvoice-Adresse geschickt False (Standard) = Es werden keine EMails gesendet |
|
MailSucces sPdfFolder |
|
Pfad, wo die generierten PDF-Dateien verschoben werden, wenn die Mail erfolgreich versendet wurde |
|
MailFailed PdfFolder |
|
Pfad, wo die generierten PDF-Dateien verschoben werden, wenn die Mail nicht versendet werden konnte |
|
DunningM ailBody |
Mahnung vom {Today} |
Text, der im EMail-Body an den Kunden gesendet wird. Es können diverse Platzhalter sowie StringFunctions verwendet werden - Details siehe hier. |
|
DunningM ailSubject |
@GetTextModule ("MAHN_MAILB ODY") |
Betreff für die Kunden-EMail. Es können diverse Platzhalter sowie StringFunctions verwendet werden - Details siehe hier. |
|
|
|
|
|
CustomerN umberFrom |
Zahl (Kundennummer) |
VON-Kundennummer - wenn angegeben, werden nur Rechnungen dieser Kundennummer selektiert |
|
CustomerN umberTo |
Zahl (Kundennummer) |
BIS-Kundennummer - wenn eine VON- sowie eine BIS-Kundennummer angegeben wurde, werden nur Rechnungen mit Kundennummern in diesem Bereich selektiert |
|
AccountNu mberFrom |
Zahl (Kundennummer) |
VON-FIBU-Nummer - wenn angegeben, werden nur Rechnungen dieser FIBU-Nummer selektiert |
|
AccountNu mberTo |
Zahl (Kundennummer) |
BIS-Kundennummer - wenn eine VON- sowie eine BIS-Kundennummer angegeben wurde, werden nur Rechnungen mit Kundennummern in diesem Bereich selektiert |
|
OrgUnits |
10 10;20;30 |
Liste mit Nummern der organisatorischen Einheiten - wenn angegeben, werden nur Rechnungen dieser OEs selektiert |
|
TotalAmou ntGrossInc From |
Zahl (Gesamt- Brutto-VK-Inkl) |
VON-Betrag - wenn angegeben, werden nur Rechnungen mit dem Betrag größer/gleich selektiert |
|
TotalAmou ntGrossInc To |
Zahl (Gesamt- Brutto-VK-Inkl) |
BIS-Betrag - wenn angegeben, werden nur Rechnungen mit dem Betrag kleiner/gleich selektiert |
|
InvoiceDat eFrom |
|
|
|
InvoiceDat eTo |
|
|
|
PaymentD ateFrom |
|
|
|
PaymentD ateTo |
|
|
|
DueDateFr om |
|
|
|
DueDateTo |
|
|
|
IsTransferr edToAccou nt |
True, False |
True = Es werden nur Rechnungen selektiert, die bereits in die FIBU übergeleitet sind False = Es werden nur Rechnungen selektiert, die noch nicht in die FIBU übergeleitet sind leer = keine Einschränkung |
|
IsInvoiceFi nished |
True, False |
True = Es werden nur Rechnungen selektiert, die bereits erledigt sind False = Es werden nur Rechnungen selektiert, die noch nicht erledigt sind leer = keine Einschränkung |
|
SqlWhere |
r. vertreternummer =15 |
zusätzliche SQL-Einschränkung für die Abfrage der Rechnungen, welche gemahnt werden. Folgende Alias'se können verwendet werden: r. = RECHNUNGEN k. = KUNDEN z. = ZBEDINGUNGEN |
|
Test |
True, False |
True = Es werden nur die potentiellen Rechnungen selektiert und ausgegeben - es werden keine Mahnungen erstellt oder gesendet (für Test-Zwecke) False (Standard) = Mahnungen werden regulär erstellt und auf Wunsch per Mail versendet |
|
|
|
|
|
ProtocolE Mail |
EMail-Adresse für Protokoll - mehrere Adressen können semikolon-getrennt angegeben werden |
|
|
BccEMail |
Unsichtbare Ziel-EMail-Adresse(n) - Wenn angegeben, werden alle Mails, die an Kunden gesendet werden, auch an diese Mail-Adresse(n) zusätzlich gesendet. |
|
|
SenderEM ail |
EMail-Adresse die als Absender angezeigt wird |
|
|
SmtpServer |
SMTP-Server für EMail-Versand |
|
|
SmtpUser |
mustermann\adm in |
SMTP-Benutzername für EMail-Versand |
|
SmtpPass word |
admmus |
SMTP-Passwort für EMail-Versand |
|
SmtpUseS SL |
True, False |
SSL für SMTP-Email-Versand verwenden |
|
SmtpPortN umber |
|
Port-Nummer für Mail-Versand (Standard=25) |
|
MailLevel |
All, ErrorsOnly, NoMail |
Beinhaltet das Level, welche Mails versendet werden sollen. |
|
MailSubject |
|
EMail-Betreff. Wenn angegeben, wird dieser Betreff angezeigt. |
|
MailBody |
|
EMail-Body. Wenn angegeben, wird dieser Body angezeigt. |
|
IsBodyHtml |
True, False |
Gibt an, ob der Body ein HTML-Body ist, oder ein normaler Text. Wenn nicht angegeben, wird standardmäßig HTML gesendet. |
TargetPdfFilenamePattern
Platzhalter
|
Platzhalter |
Beschreibung |
|
{CustomerNumber} |
Wird durch die Kundennummer ersetzt |
|
{Today} |
Wird durch das aktuelle Datum ersetzt ( Format dd.MM.yyyy ) |
|
{Today:FORMAT} |
Wird durch das aktuelle Datum im angegebenen Format ersetzt. Bsp: {Today:yyyyMMdd} |
StringFunctions
Zusätzlich zu den Standard-StringFunctions sind folgende Funktionen möglich:
|
StringFunction |
Beschreibung |
|
GetProcessingItem() |
Liefert das DTO für die aktuell verarbeitete Mahnung. Ein ProcessingItem enthält folgende Felder: CustomerNumber (long?) SearchKey (string) Invoices (Liste mit Invoice-Elementen) FileContent (Dateiinhalt der Pdf-Datei) IsPdfCreated (bool - Kennzeichen ob die Pdf-Datei erfolgreich im Dateisystem abgelegt wurde) IsMailSent (bool - Kennzeichen ob eine Mail versendet wurde) MailAddress (string - Ziel-EMail-Adresse) ErrorMessage ( Element mit ev. Fehlermeldung ) |
|
GetCustomerNumber() |
Liefert die Kundennummer für die aktuell verarbeitete Mahnung |
|
GetCustomerSearchKey () |
Liefert die Kunden-Suchbezeichnung für die aktuell verarbeitete Mahnung |
|
GetInvoiceNumbers() |
Liefert eine Liste mit den Rechnungsnummern für die aktuell verarbeitete Mahnung |
|
GetInvoice() |
Liefert ein Invoice-Element der aktuell verarbeiteten Rechnung bzw. das erste Invoice-Element für den aktuellen Kunden |
|
GetInvoiceNumber() |
Liefert die Rechnungsnummer der aktuell verarbeiteten Rechnung bzw. die erste Rechnungsnummer für den aktuellen Kunden |
|
GetInvoiceInx() |
Liefert den Datensatz-Index der aktuell verarbeiteten Rechnung bzw. den ersten Rechnungs-Index für den aktuellen Kunden |
Kriterien für Abfrage
-
Es darf keine Barverkaufsrechnung sein (TYP < 100)
-
Die Rechnung darf nicht bezahlt sein (BEZAHLT=0)
-
Zusätzliche Einschränkungen über die Konfigurationsdatei
Automatisierte Aufgaben
Speziell für den Mahnlauf gibt es folgende automatisierten Aufgaben, auf die reagiert werden können:
|
Trigger |
Beschreibung |
|
Invoice. DunningRunDunningBlock |
Wird ausgelöst, wenn ein Mahnlauf durchgeführt wird, die Rechnung nicht bezahlt ist und mit einer Mahnsperre gekennzeichnet ist |
|
Invoice.DunningRun |
Wird ausgelöst, wenn ein automatischer Mahnlauf durchgeführt wird und die Rechnung per Mail versendet wurde |
Beispiel: Es soll an die Buchhaltung eine EMail gesendet werden, wenn eine Rechnung nicht gemahnt wird, weil eine Mahnsperre vorliegt
Invoice.DunningRunDunningBlock.xml
<?xml version="1.0" standalone="yes"?>
<NewDataSet>
<AutomatedTasks>
<EREIGNIS>Invoice.DunningRunDunningBlock</EREIGNIS>
<AKTION>Mail.Send</AKTION>
<BEDINGUNG>where 1=1</BEDINGUNG>
<AKTION_WERTE><XML>
<MAIL Id="14039">
<FROM>"noreply@mustermann.com"</FROM>
<TO>"maria@mustermann.com"</TO>
<SUBJECT>"Mahnsperre Rechnung "+@GetSourceValue("RENUMMER")</SUBJECT>
<BODY>"bitte prüfen"</BODY>
</MAIL>
</XML></AKTION_WERTE>
<POS>1</POS>
<AKTIV>1</AKTIV>
</AutomatedTasks>
</NewDataSet>
Automatischer Start
Im Unterordner \Interfaces\POLLEX-LC\DunningRun\Templates werden Beispieldaten für die automatische Ausführung der Schnittstelle mit ausgeliefert. Wollen Sie diese Dateien verwenden, kopieren Sie diese bitte in einen eigenen Script-Ordner oder in den Ordner der LC.WpfInterfaces. exe. Die mitgelieferten Templates werden beim Update überschrieben.
Beispiel
XML-Konfigurationsdatei
DunningRun.xml
<?xml version="1.0" encoding="utf-8"?>
<DunningRun>
<DB>LC</DB>
<USER>SYSADM</USER>
<PASSWORD>SYSADM</PASSWORD>
<LogLevel>Full</LogLevel>
<DunningLetterPrintLayout>X</DunningLetterPrintLayout>
<TargetPdfFolder>c:\POLLEX\Mahnungen</TargetPdfFolder>
<TargetPdfFilenamePattern>MAHNUNG_{CustomerNumber}.pdf</TargetPdfFilenamePattern>
<SendDunningMail>True</SendDunningMail>
<MailSuccessPdfFolder>c:\POLLEX\Mahnungen\Sent</MailSuccessPdfFolder>
<MailFailedPdfFolder>c:\POLLEX\Mahnungen\Failed</MailFailedPdfFolder>
<DunningMailBody>@GetTextModule("MAHN_MAILBODY")</DunningMailBody>
<DunningMailSubject>Mahnung vom {Today}</DunningMailSubject>
<OrgUnits>10</OrgUnits>
<SmtpServer>mail.mustermann.com</SmtpServer>
<SmtpUser>max</SmtpUser>
<SmtpPassword>nnamretsum</SmtpPassword>
<SmtpPortNumber></SmtpPortNumber>
<SmtpUseSSL>True</SmtpUseSSL>
<SenderEMail>noreply@mustermann.com</SenderEMail>
<BccEMail>buchhaltung@mustermann.com</BccEMail>
<ProtocolEMail>admin@mustermann.com</ProtocolEMail>
<MailLevel>All</MailLevel>
</DunningRun>
Batch-Datei
LC.WpfInterfaces.exe /C=DunningRun.xml
Commandline-Aufruf für Test
LC.WpfInterfaces.exe /C=DunningRun.xml /Test
Commandline-Aufruf andere Datenbank
LC.WpfInterfaces.exe /C=DunningRun.xml /DB=DEMO /USER=DEMO /PASSWORD=TEST