SAP Jobsuche bei DV-Treff
SAP_user1
vor 10 Jahre
Hallo zusammen,

wir können von unserem Spediteur sämtliche Daten für die Erfassung/Verbuchung von Frachtrechnungen strukturiert in einer Tabelle (Excel, Text-file) erhalten.

Wir würden dies gerne nutzen und die Daten automatisiert in SAP (Version 4.7) einlesen.

Frage:

Gibt es hierzu ein/einen Standardprogramm / -report, der für deartige Zwecke verwendet werden kann. Für sonstige Hinweise oder etwaige Links zu diesem Thema wäre ich sehr dankbar.

Freundliche Grüsse

SAP_user1

Förderer

MrBojangles
vor 10 Jahre
Hallo sap_user1,

na ja, nicht so richtig. Du kannst die Daten mithilfe der Transaktion LSMW einlesen und verbuchen. Hier kannst Du eine Quellstruktur definieren (also die Eures Spediteurs), ein Mapping auf die SAP-Strukturen hinterlegen und die weitere Verarbeitung steuern. Google mal nach SAP LSMW, dann wirst Du sicher fündig.

Ansonsten müsstet Ihr ein Programm schreiben, was die Quelldaten einliest, transformiert und mithilfe der einschlägigen Übernahmemethoden (Batch-Input / BAPI) verbucht.


Weiterhin viel Freude mit SAP...

Cheers

MrB.

ScriptMan
vor 10 Jahre
Hallo SAP_user1,

vorausgesetzt, dass SAP GUI Scripting erlaubt ist und die 2 Hinweismeldungen unterdrückt werden (s. lokales Layout anpassen -> Optionen -> Scripting), könnte man die Angelegenheit wie folgt erledigen:

1. Die Aufzeichnung eines Musterskriptes für die Verbuchung im SAP anhand der Daten der 1. Zeile der mitgelieferten Excel-Mappe über den vorhandenen SAP-Scriptrecorder. Diese sollte beginnen und enden an der selben Stelle innerhalb einer Transaktion.

2. Das Erweitern des Musterskriptes wie folgt:

If Not IsObject(application) Then

Set SapGuiAuto = GetObject("SAPGUI")

Set application = SapGuiAuto.GetScriptingEngine

End If

If Not IsObject(connection) Then

Set connection = application.Children(0)

End If

If Not IsObject(session) Then

Set session = connection.Children(0)

End If

If IsObject(WScript) Then

WScript.ConnectObject session, "on"

WScript.ConnectObject application, "on"

End If

'Bis hierher wurden die ersten 14 Zeilen des Musterskriptes

'ohne Änderung übernommen.

Set xclapp = CreateObject("Excel.Application")

Set xclwbk = xclapp.Workbooks.Open("c:\tmp\myExcel.xls")

set xclsht = xclwbk.Sheets("Tabelle1")

for i = 2 to xclapp.ActiveCell.SpecialCells(11).Row

for j = 1 to xclapp.ActiveCell.SpecialCells(11).Column

if j=1 then BUKR = xclsht.Cells(i,j).Value

if j=2 then EINGANGSDATUM = xclsht.Cells(i,j).Value

if j=3 then BETRAG = xclsht.Cells(i,j).Value

. . .

next

'Hier folgt der Rest des Musterskriptes und dabei

'werden die aufgezeichneten Werte der 1. Zeile durch die

'entsprechenden Variablen ersetzt.

'z.B.

session.findById("wnd[0]/usr/. . .").text = BUKR

session.findById("wnd[0]/usr/. . .").text = EINGANGSDATUM

session.findById("wnd[0]/usr/. . .").text = BETRAG

. . .

next

msgbox "Alle " & cstr(xclapp.ActiveCell.SpecialCells(11).Row - 1) & " Excel-Zeilen wurden verarbeitet."

Set xclwbk = Nothing

Set xclsht = Nothing

xclapp.Quit

set xclapp = Nothing

3. Fertig!

Grüße,

ScriptMan

SAP_user1
vor 10 Jahre
Zitat von: MrBojangles 

Hallo sap_user1,

na ja, nicht so richtig. Du kannst die Daten mithilfe der Transaktion LSMW einlesen und verbuchen. Hier kannst Du eine Quellstruktur definieren (also die Eures Spediteurs), ein Mapping auf die SAP-Strukturen hinterlegen und die weitere Verarbeitung steuern. Google mal nach SAP LSMW, dann wirst Du sicher fündig.

Ansonsten müsstet Ihr ein Programm schreiben, was die Quelldaten einliest, transformiert und mithilfe der einschlägigen Übernahmemethoden (Batch-Input / BAPI) verbucht.

Hallo MrB.,

vielen Dank für Deine Rückmeldung.

Ich werde mir die Transaktion LSMW näher ansehen um festzustellen,

ob sich damit eine tägliche Rechnungserfassung anhand der gelieferten

Daten realisieren läßt.

Freundliche Grüße

SAP_user1

SAP_user1
vor 10 Jahre
Zitat von: ScriptMan 

Hallo SAP_user1,

vorausgesetzt, dass SAP GUI Scripting erlaubt ist und die 2 Hinweismeldungen unterdrückt werden (s. lokales Layout anpassen -> Optionen -> Scripting), könnte man die Angelegenheit wie folgt erledigen:

1. Die Aufzeichnung eines Musterskriptes für die Verbuchung im SAP anhand der Daten der 1. Zeile der mitgelieferten Excel-Mappe über den vorhandenen SAP-Scriptrecorder. Diese sollte beginnen und enden an der selben Stelle innerhalb einer Transaktion.

2. Das Erweitern des Musterskriptes wie folgt:

If Not IsObject(application) Then

Set SapGuiAuto = GetObject("SAPGUI")

Set application = SapGuiAuto.GetScriptingEngine

End If

If Not IsObject(connection) Then

Set connection = application.Children(0)

End If

If Not IsObject(session) Then

Set session = connection.Children(0)

End If

If IsObject(WScript) Then

WScript.ConnectObject session, "on"

WScript.ConnectObject application, "on"

End If

'Bis hierher wurden die ersten 14 Zeilen des Musterskriptes

'ohne Änderung übernommen.

Set xclapp = CreateObject("Excel.Application")

Set xclwbk = xclapp.Workbooks.Open("c:\tmp\myExcel.xls")

set xclsht = xclwbk.Sheets("Tabelle1")

for i = 2 to xclapp.ActiveCell.SpecialCells(11).Row

for j = 1 to xclapp.ActiveCell.SpecialCells(11).Column

if j=1 then BUKR = xclsht.Cells(i,j).Value

if j=2 then EINGANGSDATUM = xclsht.Cells(i,j).Value

if j=3 then BETRAG = xclsht.Cells(i,j).Value

. . .

next

'Hier folgt der Rest des Musterskriptes und dabei

'werden die aufgezeichneten Werte der 1. Zeile durch die

'entsprechenden Variablen ersetzt.

'z.B.

session.findById("wnd[0]/usr/. . .").text = BUKR

session.findById("wnd[0]/usr/. . .").text = EINGANGSDATUM

session.findById("wnd[0]/usr/. . .").text = BETRAG

. . .

next

msgbox "Alle " & cstr(xclapp.ActiveCell.SpecialCells(11).Row - 1) & " Excel-Zeilen wurden verarbeitet."

Set xclwbk = Nothing

Set xclsht = Nothing

xclapp.Quit

set xclapp = Nothing

3. Fertig!

Grüße,

ScriptMan

Hallo ScriptMan,

Vielen Dank für Deine Antwort und das Coding.

Ich habe mit der Aufzeichnung von Skripten bisher leider keine Erfahrung

sammeln können. Werde diesen Fall zum Anlass nehmen um mich damit näher

zu befassen.

Freundliche Grüße

SAP_user1

TyloHH
vor 10 Jahre
👍
Zitat von: ScriptMan 

Set xclapp = CreateObject("Excel.Application")

Set xclwbk = xclapp.Workbooks.Open("c:\tmp\myExcel.xls")

set xclsht = xclwbk.Sheets("Tabelle1")

Hammermegageil!!! 👍

Es läuft. TAUSEND DANK!