Hallo,
was das Einlesen einer Excel-Datei im Batch angeht, kannst du hier mal schauen:
http://www.apentia-forum.de/viewtopic.p ... 40&p=76916
Falls du es erstmal online probieren willst, dann nimm FILE_READ_AND_CONVERT_SAP_DATA.
Z.b.
Code: Alles auswählen.
CALL FUNCTION 'FILE_READ_AND_CONVERT_SAP_DATA'
EXPORTING
I_FILENAME = DATEI
I_SERVERTYP = 'OLE2'
I_FILEFORMAT = 'XLS'
* I_FIELD_SEPERATOR =
I_LINE_HEADER = 'X'
* IMPORTING
* E_BIN_FILELENGTH =
TABLES
I_TAB_RECEIVER = ITAB
EXCEPTIONS
FILE_NOT_FOUND = 1
CLOSE_FAILED = 2
AUTHORIZATION_FAILED = 3
OPEN_FAILED = 4
CONVERSION_FAILED = 5
OTHERS = 6
Naja, und wenn du erstmal ne interne Tabelle von den Excel-Inhalten hast, kann du damit ja beliebig weiter programmieren. Funktionsbausteine habe ich dafür kaum genutzt. Der einzige (neben ALV etc.) der mir jetzt einfällt ist HOLIDAY_CHECK_AND_GET_INFO um zu prüfen, ob der Tag ein Feiertag war.
Als erstes habe ich mir aus der internen Tabelle der Urlaubsliste eine interne Tabelle mit den Abwesenheitsarten erstellt, also z.B. PersNr, Datum, Abwesenheitsart (U = 0100 etc.).
Im zweiten Schritt prüft der Report dann, ob diese Abwesenheiten mit genau diesen Daten in Tabelle PA2001 existieren. Wenn ja, setzt er den Status "bereits vorhanden", wenn nicht setzt er den Status "neu" und wenn eine andere Abwesenheit drin ist den Status "Änderung" - bzw. wenn eine Krankheit vorliegt auf "Fehler".
Alles bereits vorhandene ist egal, kann also aus der internen Tabelle gelöscht werden - und mit dem Rest kann man dann gut weiterarbeiten. Zum Teil wird daraus dann der Batch-Input für Infotyp 2001 und abschließend prüft er auch nochmal ob alles erfolgreich gebucht werden konnte.
Der Meister erhält danach bis zu zwei Emails... eine mit den Bestätigungen für die Mitarbeiter das der Urlaub genehmigt und gebucht wurde (war so gewünscht) und falls vorhanden eine zweite Liste mit Abwesenheitstagen die nicht verbucht werden konnten.
Anbei noch ein paar Screenshots.
Gruß
Michael
P.S. Muss vielleicht noch dazu sagen, dass ich früher HR Sachbearbeiter war und sich meine Programmierkenntnisse auf 5 Tage ABAP Grundlagen Schulung beschränken - der Rest ist Learning-by-doing , aber dafür klappt es denke ich schon ganz gut.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.