Hallo Catfish,
in welchem Format sollen denn die Daten aus dem Kassensystem kommen? - Bei Dateien würde ich das mit der LSMW und RFBIBL00 machen; PI halte ich für unangemessen, da die Tagesumsätze immer erst am Abend feststehen und dafür braucht man keine Online-Schnittstelle. Außerdem hat man mit PI einen Haufen administrativen Aufwand. Man könnte für Dateien auch die Idoc-Schnittstelle bemühen (mit Datei-Port).
Die Strukturen kann man zwar aus SAP herunterladen und damit dem Kassenhersteller die Erstellung entsprechender Dateien oder Nachrichten (für den Idoc-Fall) aufdrücken, aber die Eingangsverarbeitung muß man dann schon selber auf die Beine stellen. - Vorbelegungen (BUKRS usw.) und Umschlüsselungen mitgeben.
Anmerkung zu der Datei-Variante: Man kann das Ganze natürlich auch für eine größere Transparenz mit mehreren Verzeichnissen (Input, Save und Error) und Z-Ladetabellen innerhalb SAP aufbauen. --> Das Input-Verzeichnis wird per Job gescannt und die gefundenen Dateien werden auf Herz und Nieren geprüft und die guten Sätze werden in eine Z-Tabelle gestellt; Fehlersätze werden in das Error-Verzeichnis gestellt (mit entsprechendem Dateinamen) und die anderen in das Save-Verzeichnis (auch mit einem passenden Dateinamen). Anschließend wird im zweiten Job-Step über die Z-Tabelle gegangen und die Sätze werden per Direct-Input oder per Call Transaction (Fehlersätze können in eine Mappe gestellt werden) verarbeitet (Statuskennzeichen, BELNR, BUKRS und GJAHR eintragen).
Bei der Variante mit den Verzeichnissen kann man die Fehlersätze zurück an den Absender zur Korrektur geben (das hat einen hohen pädagogischen Wert ) und später dann mit einer neuen Datei verarbeiten. Bei Idocs hat man meist den Ärger der Nachbearbeitung am Hut. Mit Direct-Input geht es flott und man bekommt auch sofort die Belegnummer zurück (wichtig für die Protokollierung), aber man kann, falls die Eingangsprüfungen zu schwach waren, auch nicht mehr direkt eingreifen. Bei Batch-Input bzw. Call Transaction mit Erstellung von Fehlermappen hat man die Möglichkeit, den Fachbereich die Fehler abarbeiten zu lassen.
Bei grausamer Datenqualität würde ich die Verzeichnis-Variante wählen und dann einen Batch Input aufbauen, aber das muß man immer vom Einzelfall abhängig machen..
Hier ein Mini-Beispiel für das Aufbauen einer eigenen Direct-Input-Verarbeitung. Zuvor muß man natürlich die Tabellen mit den Belegdaten aufbauen und noch ein wenig drumherum stricken.
* Belege buchen
clear: a_gjahr, a_bukrs, a_belnr, a_lotkz.
CALL FUNCTION 'FI_PSO_DOC_DIRECT_INPUT'
EXPORTING
I_NODATA = '/'
I_DEL_NODATA = 'X'
I_INTLOT = 'X'
I_LOTKZ_ALLOC = 'X'
I_NO_FIELD_STATUS = 'X'
i_no_check = 'X'
IMPORTING
E_BUKRS = a_bukrs
E_GJAHR = a_gjahr
E_BELNR = a_belnr
E_LOTKZ = a_lotkz
TABLES
T_BBKPF = i_bbkpf
T_BBSEG = i_bbseg
T_BBTAX = i_bbtax
EXCEPTIONS
error_message = 01.
if sy-subrc eq 0.
COMMIT WORK and wait.
CALL FUNCTION 'DEQUEUE_ALL'.
else.
*-----save system fields
l_msgid = sy-msgid.
l_msgno = sy-msgno.
l_msgv1 = sy-msgv1.
l_msgv2 = sy-msgv2.
l_msgv3 = sy-msgv3.
l_msgv4 = sy-msgv4.
perform fehlersatz_buchung.
ROLLBACK WORK.
endif.
Das müßte für den Anfang reichen. - Viel Spaß
Gruß
Peter