aktuelle.kurse/m122/LB2-projekt/M122_LB2_Aufgabenstellung-AblaufProzess-Dok-Bewertung.md
Harald G. Mueller 7aab575cf7 ux kriterien
2022-02-12 02:03:47 +01:00

23 KiB
Raw Blame History

INHALTSVERZEICHNIS

1. Generelles

2. Partner

3. Auftrag

4. Artefakte

5. Bewertung

6. Anhang

Generelles

Was ist e-Bill

E-Bill ist ein System, was von SIX Payment AG und PostFinance AG gemeinsam betrieben wird. Alle wichtigen Banken (über 80 Banken, Stand 2015) und alle Postkonti (rote Einzahlungsscheine) sind hier angeschlossen. Genauere Informationen bei https://ebill.ch oder auch
https://www.postfinance.ch/de/privat/produkte/digital-banking/ebill.html

Aus Sicht des Verbrauchers (Endkunde/Käufer/Zahler/Payer) treffen die e-Rechnungen genau im Zahlungs-Bereich des e-Banking-Systems ein. Eintreffende e-Rechnungen werden von e-Banking-System dem Verbraucher angezeigt. Mit einem Klick zu der Übersicht der e-Rechnungen und einem zweiten Klick für die Zahlungs-Terminbestätigung wird die Rechnung zur Zahlung freigegeben. Dem Verbraucher werden alle Zahlungs- und Empfängeridentifizierende Informationen, die beim Abschreiben des Einzahlungsscheins abverlangt werden würden, abgenommen.

Partner

Übersicht

Ein Bild, das Outdoorobjekt enthält. Automatisch generierte
Beschreibung

Die Pfeile blauen zeigen die Dokumenten-Fluss-Richtung der Rechnung, die grünen Pfeile die Quittungen und die gestrichelten grünen Pfeile zeigen den (Be-)Zahlungsfluss.

Auftrag

Ausgangslage

Sie sind Informatiker bei einem Detaillisten in der Schweiz, der sowohl Präsenzgeschäft/-läden mit Kassen wie auch einen Onlinehandel betreibt. Als Neuerung will Ihr Arbeit-/Auftraggeber für die Endkunden (Verbraucher/Consumer) die Rechnungsstellung und Bezahlung über e-Bill anbieten. Die Endkunden können Ihre Waren gleich mitnehmen und bekommen im Nachhinein eine Rechnung und in ihrem E-Banking-System eine Zahlungsaufforderung, um per Mausklick die Zahlung auszulösen.

Ihre Aufgabe

Sie bekommen auf dem System des Rechnungsstellers in einem eigenen Format direkt von den Kassensystemen Rechnungsdateien mit allen Informationen, die es für die Rechnungsstellung über e-Bill braucht. Sie holen diese per FTP ab und erstellen daraus

  1. eine Rechnung im Klartext (Zur Vereinfachung nur als Text-Format, produktiv wäre das ein PDF)

  2. eine Rechnung im XML-Format für das SIX-PaymentServices-Format (Schweizer Marktleader)

Diese beiden Dateien geben Sie per FTP in das «Zahlungssystem» ab. Dann erfolgt, für Sie im Hintergrund die Weiterleitung ins Bankensystem. Ob das geklappt hat, wissen Sie in dem das Zahlungssystem eine Quittungsdatei produziert und Ihnen zur Verfügung stellt.

Ihrem Kunden (dem Rechnungssteller) stellen Sie diese Quittungsdatei sowohl per E-Mail wie auch im Rechnungsstellungs-System in einem Archiv zur Verfügung damit er überprüfen kann, ob die Rechnung verschickt wurde.

https://haraldmueller.ch/schoolerinvoices/out (Passwort auf html-Seite: tbz)
https://haraldmueller.ch/schoolerinvoices/in

Ein Bild, das Outdoorobjekt enthält. Automatisch generierte
Beschreibung

https://coinditorei.com/zahlungssystem (Passwort: tbz)
https://coinditorei.com/zahlungssystem/in
https://coinditorei.com/zahlungssystem/out

Arbeitsschritte

  1. Automatisches (regelmässiges) Abholen der Rechnungsaufträge des Kunden/Rechnungssteller (Abholserver) inkl. dem Löschen der Datei auf dem Abholserver per FTP (Kundensystem**/out/**[KlasseUndIhrNachname])
    FTP-Server: ftp.haraldmueller.ch
    Benutzer: schoolerinvoices
    Passwort: Berufsschule8005!

  2. Verarbeitung der Rechnungsaufträge zu einer korrekten und druckbaren Papierrechnung (…invoice.txt) und einer maschinell verarbeitbaren XML-Rechnung (…invoice.xml)

  3. Abgabe der Rechnung als TXT und XML auf dem Abgabeserver (Zahlungssystem**/in/**[KlasseUndIhrNachname]) per FTP
    FTP-Server: ftp.coinitorei.com
    Benutzer: zahlungssystem
    Passwort: Berufsschule8005!

  4. Abholen der Quittung beim Abgabeserver (Zahlungssystem**/out/**[KlasseUndIhrNachname]) per FTP

  5. Erstellung der Bestätigungsmeldungen (Quittung und geschickte Rechnung) per Mail und als Archiv-Datei (ZIP) auf dem Kundenserver (Kundensystem**/in/**[KlasseUndIhrNachname]).

Alle Arbeitsschritte laufen über ein Skript, das über eine Zeitsteuerung (crontab im Linux / Aufgabenplaner im Windows).

Machen Sie für die Schritte 1.) 2.) 3.) ein Skript und ein zweites Skript für die Schritte 4.) und 5.).

Artefakte

Artefakt der Anlieferung

Zur Anlieferung sind primär Text-Dateien vorgesehen, die ein Inhalt im csv-Format ({semi}colon separated values ;) haben. Es wird pro Rechnung eine Datei angeliefert.

Sie können einen Dateinamen mit dem Namen rechnung[RGNummer].data erwarten. (Konkret rechnung21003.data).

Artefakte der Abgabe

An den Zahlungs-Provider des Schweizer Zahlungsverkehrs (PostFinance / SIX Payment Services) muss pro Rechnung eine menschenleserliche TXT und eine schnittstellenkonforme XML-Datei abgegeben werden.

Die Dateien müssen einen bestimmten Namen haben.

  • [Kundennummer]_[Rechnungsnummer]_invoice.xml (Konkret K821_21003_invoice.xml)

  • [Kundennummer]_[Rechnungsnummer]_invoice.txt (Konkret K821_21003_invoice.txt)

Testfiles können Sie finden unter: https://coinditorei.com/zahlungssystem/testfiles

Kontrollen

Bauen Sie Kontrollen ein, um festzustellen, ob «die» Rechnung richtig verarbeitet wurde, bzw. ob und wann und wie ein allfälliger Abbruch stattgefunden hat. Am einfachsten sind Log-Files.

Konfiguration

Gut ist, wenn das System von aussen konfiguriert / eingestellt werden kann (separates Config-File).

Bewertung

Funktionalität

Die Bewertung geschieht über einen Live-Test mit von der Lehrperson erstellten Test-Dateien. Es gibt eine normale richtiges Testdatei und eine Testdatei, die unmöglich zu verarbeiten ist. Dabei wird geschaut, ob das System korrekt läuft. Die korrekt Testdatei soll richtig verarbeitet werden. Die inkorrekte Testdatei darf nicht verarbeitet werden. Dies müssen Sie nachvollziehen können.

Dokumentation

Kurze textliche Dokumentation, eine Skizze über Ihr Skript-System und den Ablauf als UML-Ablaufdiagramm / Funktionendiagramm.

Benotung

Note 4:
Viele Teile der Vorgabe wurden erreicht, aber es fehlt noch etwas damit alles automatisch funktioniert.

Note 5:
Das System funktioniert aus Sicht des Kunden, wenn alles richtig definiert war (keine Fehler in der Rechnungsdatei oder wenn die Quittung nicht vom Zahlungssystem bereitgestellt wurde).

Note 6:
Komplette Verarbeitung der Vorgaben inklusive Log-Dateien zur Rekonstruktion des Ablaufes.
Alle Abläufe sind automatisiert und können per Konfigurationsdatei beeinflusst werden (FTP-Server Einstellungen).
Es sind diverse Sicherheitsmechanismen eingebaut (Fehlermeldungen mit aussagekräftigem und nützlichem Inhalt).

Anhang

Inhalt und Beschreibung eines Rechnungsauftrags (Input)

Dateiname rechnung21003.data
Inhalt Rechnung_21003;Auftrag_A003;Zürich;21.07.2021;10:22:54;ZahlungszielInTagen_30 Herkunft;41010000001234567;K821;Adam Adler;Bahnhofstrasse 1;8000 Zuerich;CHE-111.222.333 MWST;harald.mueller@tbz.ch Endkunde;41301000000012497;Autoleasing AG;Gewerbestrasse 100;5000 Aarau RechnPos;1;Einrichten E-Mailclients;5;25.00;125.00;MWST_0.00% RechnPos;2;Konfig & Schulung Scanningcnter;1;1000.00;1000.00;MWST_0.00%

Zeile 1: (Rechnungs-Grundinformationen)

Rechnung_21003;Auftrag_A003;Zürich;21.03.2021;10:22:54;ZahlungszielInTagen_30

- Zeilenkennung ("Rechnung" inkl. Rechnungsnummer);
- Auftragsnummer ("Auftrag" inkl. Nummer);
- Absendeort (Erzeugung);
- Rechnungsdatum(Erzeugung);
- Rechnungszeit(Erzeugung);
- Zahlungsziel (hier 30 Tage) -> also ist zu berechnen 21.3.2021 plus 30 Tage = 20.4.2021

Zeile 2: (Herkunft/Absender der Rechnung)

Herkunft;41010000001234567;K821;Adam;Adam Adler;Bahnhofstrasse 1;8000 Zuerich;CHE-111.222.333 MWST;harald.mueller@tbz.ch

- Zeilenkennung ("Herkunft" =Absender, =Rechnungssteller, =Geldempfänger)

- Party-ID Rechnungssteller (=Kundennummer beim Zahlungssystem)

- Kundennummer beim Rechnungssteller (Herkunft)

- Name (Herkunft)

- Adresse (Herkunft)

- Postleitzahl und Ort (Herkunft)

- Firmen-/Unternehmens-ID inkl. Mehrwertsteuerkennung (Herkunft)

- Email-Adresse (Herkunft)

Zeile 3: (Endkunde/Adressat der Rechnung)

Endkunde;41301000000012497;Autoleasing AG;Gewerbestrasse 100;5000 Aarau

- Zeilenkennung ("Endkunde" =Empfänger der Rechnung, =Bezahler =hat Produkte bezogen)

- Kunden-ID beim Zahlungssystem-Provider

- Name (Empfänger)

- Adresse (Empfänger)

- Postleitzahl und Ort (Empfänger)

Zeile 4 und weitere Zeilen (Rechnungspositionen, mehrere: 1 bis n):

RechnPos;2;Konfig & Schulung Scanningcnter;1;1200.00;1200.00;MWST_0.00%

- Zeilenkennung ("RechnPos" =Eine Rechnungsposition)

- Rechnungspositionsnummer

- Rechnungspositionsbezeichnung

- Menge/Anzahl in der Einheit (Stück, Std, Liter, Meter, m2, usw.)

- Preis pro Einheit

- Menge mal Preis pro Einheit (fertig gerechnet)

- Mehrwertsteuer-Satz (zur Vereinfachung nur 0-%-tige Mehrwertsteuer)

Inhalt einer Rechnung (TXT-Output)

Dateiname K821_21003_invoice.txt
Inhalt Adam Adler Bahnhofstrasse 1 8000 Zuerich CHE-111.222.333 MWST Uster, den 21.07.2021 Autoleasing AG Gewerbestrasse 100 5000 Aarau Kundennummer: K821 Auftragsnummer: A003 Rechnung Nr 21003 ----------------------- 1 Einrichten E-Mailclients 5 25.00 CHF 125.00 0.00% 2 Konfig & Schulung Scanningcenter 1 1200.00 CHF 1200.00 0.00% ----------- Total CHF 1325.00 MWST CHF 0.00 Zahlungsziel ohne Abzug 30 Tage (20.08.2021) Einzahlungsschein 1325 . 00 1325 . 00 Autoleasing AG Gewerbestrasse 100 0 00000 00000 00000 5000 Aarau Autoleasing AG Gewerbestrasse 100 5000 Aarau

(leere Linien und leere Zeichen sind wichtig und dienen der Positionierung)

Inhalt einer Rechnung (XML-Output)

Dateiname K821_21003_invoice.xml
Inhalt <XML-FSCM-INVOICE-2003A> <INTERCHANGE> <IC-SENDER> <Pid>41010000001234567</Pid> </IC-SENDER> <IC-RECEIVER> <Pid>41301000000012497</Pid> </IC-RECEIVER> <IR-Ref /> </INTERCHANGE> <INVOICE> <HEADER> <FUNCTION-FLAGS> <Confirmation-Flag /> <Canellation-Flag /> </FUNCTION-FLAGS> <MESSAGE-REFERENCE> <REFERENCE-DATE> <Reference-No>202107164522001</Reference-No> <Date>20210731</Date> </REFERENCE-DATE> </MESSAGE-REFERENCE> <PRINT-DATE> <Date>20210731</Date> </PRINT-DATE> <REFERENCE> <INVOICE-REFERENCE> <REFERENCE-DATE> <Reference-No>21003</Reference-No> <Date>20210731</Date> </REFERENCE-DATE> </INVOICE-REFERENCE> <ORDER> <REFERENCE-DATE> <Reference-No>A003</Reference-No> <Date>20210731</Date> </REFERENCE-DATE> </ORDER> <REMINDER Which="MAH"> <REFERENCE-DATE> <Reference-No></Reference-No> <Date></Date> </REFERENCE-DATE> </REMINDER> <OTHER-REFERENCE Type="ADE"> <REFERENCE-DATE> <Reference-No>202107164522001</Reference-No> <Date>20210731</Date> </REFERENCE-DATE> </OTHER-REFERENCE> </REFERENCE> <BILLER> <Tax-No>CHE-111.222.333 MWST</Tax-No> <Doc-Reference Type="ESR-ALT "></Doc-Reference> <PARTY-ID> <Pid>41010000001234567</Pid> </PARTY-ID> <NAME-ADDRESS Format="COM"> <NAME> <Line-35>Adam Adler</Line-35> <Line-35>Bahnhofstrasse 1</Line-35> <Line-35>8000 Zürich</Line-35> <Line-35></Line-35> <Line-35></Line-35> </NAME> <STREET> <Line-35></Line-35> <Line-35></Line-35> <Line-35></Line-35> </STREET> <City></City> <State></State> <Zip></Zip> <Country></Country> </NAME-ADDRESS> <BANK-INFO> <Acct-No></Acct-No> <Acct-Name></Acct-Name> <BankId Type="BCNr-nat" Country="CH">001996</BankId> </BANK-INFO> </BILLER> <PAYER> <PARTY-ID> <Pid>41301000000012497</Pid> </PARTY-ID> <NAME-ADDRESS Format="COM"> <NAME> <Line-35>Autoleasing AG</Line-35> <Line-35>Gewerbestrasse 100</Line-35> <Line-35>5000 Aarau</Line-35> <Line-35></Line-35> <Line-35></Line-35> </NAME> <STREET> <Line-35></Line-35> <Line-35></Line-35> <Line-35></Line-35> </STREET> <City></City> <State></State> <Zip></Zip> <Country></Country> </NAME-ADDRESS> </PAYER> </HEADER> <LINE-ITEM /> <SUMMARY> <INVOICE-AMOUNT> <Amount>0000135000</Amount> </INVOICE-AMOUNT> <VAT-AMOUNT> <Amount></Amount> </VAT-AMOUNT> <DEPOSIT-AMOUNT> <Amount></Amount> <REFERENCE-DATE> <Reference-No></Reference-No> <Date></Date> </REFERENCE-DATE> </DEPOSIT-AMOUNT> <EXTENDED-AMOUNT Type="79"> <Amount></Amount> </EXTENDED-AMOUNT> <TAX> <TAX-BASIS> <Amount></Amount> </TAX-BASIS> <Rate Categorie="S">0</Rate> <Amount></Amount> </TAX> <PAYMENT-TERMS> <BASIC Payment-Type="ESR" Terms-Type="1"> <TERMS> <Payment-Period Type="M" On-Or-After="1" Reference-Day="31">30</Payment-Period> <Date>20210830</Date> </TERMS> </BASIC> <DISCOUNT Terms-Type="22"> <Discount-Percentage>0.0</Discount-Percentage> <TERMS> <Payment-Period Type="M" On-Or-After="1" Reference-Day="31"></Payment-Period> <Date></Date> </TERMS> <Back-Pack-Container Encode="Base64"> </Back-Pack-Container> </DISCOUNT> </PAYMENT-TERMS> </SUMMARY> </INVOICE> </XML-FSCM-INVOICE-2003A>

Inhalt & Form der Mail

  • Anstelle von Vorname Nachname machen Sie natürlich Ihr richtiger Name rein!

  • [Kundennummer]_[Rechnungsnummer].zip (Konkret K821_21003.zip > gleich wie invoice.txt)