ARCHIVFILE_CLIENT_TO_SERVER in der Prozesskette

Getting started ... Alles für einen gelungenen Start.
5 Beiträge • Seite 1 von 1
5 Beiträge Seite 1 von 1

ARCHIVFILE_CLIENT_TO_SERVER in der Prozesskette

Beitrag von kola (ForumUser / 20 / 5 / 0 ) »
Hallo,

wir haben folgende Anforderung:
Es soll in einer Prozesskette im BW einen Schritt geben, in dem eine Datei von einem Laufwerk in die AL11 hochgeladen wird, um diese in den weiteren Schritten der Prozesskette zu verarbeiten.

Die Idee dazu war ein Programm, welches in die Prozesskette eingeplant wird. Das Einplanen hat geklappt, aber genau der Schritt läuft jedes Mal auf einen Fehler, sodass wir die Prozesskette an der Stelle immer manuell betätigen müssen.

Die Recherche zu dem Programm ZFILETOAL11 hat ergeben, dass der Baustein ARCHIVFILE_CLIENT_TO_SERVER der richtige sein soll. Das haben wir ausprobiert und festgestellt, dass unser Pfad leider zu lang ist (70 Zeichen erlaubt der Baustein). Somit haben wir den Baustein durchleuchtet und die SCMS-Funktionen rauskopiert.

data: lv_path type c length 150, lv_target type c length 150.

lv_path = '\\laufwerk.de\ganz\langer\Pfadname\mit\Datei.csv'.
lv_target = '/usr/sap/trans/DieDatei.csv'.

data: l_data type standard table of tbl1024,
l_size type i.

call function 'SCMS_UPLOAD'
exporting
filename = lv_path
binary = 'X'
frontend = 'X'
importing
filesize = l_size
tables
data = l_data
exceptions
error = 1
others = 2.

if sy-subrc = 0.
call function 'SCMS_DOWNLOAD'
exporting
filename = lv_target
filesize = l_size
binary = 'X'
frontend = ' '
tables
data = l_data
exceptions
error = 1
others = 2.

if sy-subrc <> 0.
message 'Es gibt ein Problem beim DOWNLOAD' type 'E'.
else.
message 'Alles hat geklappt.' type 'I'.
endif.
else.
message 'Es gibt ein Problem beim UPLOAD' type 'E'.
endif.

endif.

Wenn ich das Programm nun in der SE38 (oder auch in der TA) aufrufe, lädt es die Datei wie gewünscht in die AL11 hoch. Auch Mitarbeiter, die nicht auf den lv_path auf dem Laufwerk berechtigt sind, können durch das Programm die Datei in die AL11 laden. Auch, wenn wir den Baustein ARCHIVFILE_CLIENT_TO_SERVER in der SE37 testen, wird eine Datei von einem kürzeren Pfad hochladen.

Jedoch bricht das Programm in der Prozesskette und als Job immer ab. Der Debugger sagt "Fehler beim Transfer" im SCMS-UPLOAD. Laut weiterer Recherche wird ein Baustein benötigt, der im Background laufen kann. Jegliche Suchergebnisse zum Background führen aber wieder zu dem Baustein ARCHIVFILE_CLIENT_TO_SERVER. Bei SAP direkt ist der Baustein nicht freigegeben, da kommen wir nicht weiter.

Hat jemand hier vielleicht eine Alternative zu dem Baustein oder generell eine funktionierende Lösung zu dem Problem?

Vielen Dank vorab.

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: ARCHIVFILE_CLIENT_TO_SERVER in der Prozesskette

Beitrag von a-dead-trousers (Top Expert / 4382 / 222 / 1176 ) »
Auf welchem Betriebssystem laufen eure Applikationsserver?
Unter Windows könntet ihr euch mit einem Netzwerkshare behelfen.
Unter Unix/Linux könnt ihr mit SAMBA/CIFS ein Netzwerkshare simulieren.
Was generell immer geht ist FTP oder HTTP.

Die Netzwerkshares können vom Appl.Server via OPEN DATASET direkt gelesen werden. Für FTP braucht es FTP_SERVER_TO_R3 und für HTTP braucht es HTTP_GET_FILE.

Wenn ihr dann auch noch mit ARCHIVOBJECT_CREATE_TABLE anstatt ARCHIVFILE_CLIENT_TO_SERVER arbeitet, ist die Länge des Pfades auch kein Problem mehr.

PS.: Bitte die Code-Tags für Quellcode verwenden. Danke.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: ARCHIVFILE_CLIENT_TO_SERVER in der Prozesskette

Beitrag von kola (ForumUser / 20 / 5 / 0 ) »
Danke für deine Antwort.
Wir haben Windows Applikationsserver.
SAPFTP und SAPFTPA wurden mit dem Report RSFTP005 eingerichtet.
Soweit ich informiert bin, können wir SAP keinen direkten Zugriff auf das Laufwerk geben. Wir werden deine gelisteten Bausteine ausprobieren.

Re: ARCHIVFILE_CLIENT_TO_SERVER in der Prozesskette

Beitrag von a-dead-trousers (Top Expert / 4382 / 222 / 1176 ) »
Vom Server (in Hintergrundausführung) aus funktioniert nur SAPFTPA.

Zugriff auf Laufwerke ist nicht unbedingt notwendig. Soweit ich weiß kann der SAP Windows-Kernel auch mit der "\\server\freigabe"-Syntax umgehen. Natürlich nur sofern der Windows-Benutzer unter dem das SAP-System läuft auch berechtigt ist auf die Netzwerkfreigabe zuzugreifen.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: ARCHIVFILE_CLIENT_TO_SERVER in der Prozesskette

Beitrag von jocoder (Specialist / 342 / 3 / 102 ) »
Der Baustein SCMS_UPLOAD mit dem Parameter frontend = 'X' funktioniert nur im Frontend. Wenn der Parameter frontend auf abap_false gesetzt wird und ihr sicherstellt, dass der Windows-Benutzer SAPService<SID> Zugriff auf die Datei hat, sollte es funktionieren. <SID> ist die 3-stellige System-Id.

Seite 1 von 1

Vergleichbare Themen

0
Antw.
4373
Views
JCo Client und Server
von cab » 11.03.2009 01:42 • Verfasst in Java & SAP®
2
Antw.
6762
Views
SAP Client-Server Anwendung schreiben
von Hunter » 15.02.2007 11:50 • Verfasst in Exchange Infrastructure
3
Antw.
1874
Views
Datum + Uhrzeit zu Datei auf Client oder Server ermitteln
von ralf.wenzel » 12.11.2013 12:32 • Verfasst in ABAP® Core
0
Antw.
1507
Views
Protokolleinträge zur Prozesskette
von brinam » 06.10.2006 14:11 • Verfasst in Sonstige Module
0
Antw.
895
Views
status einer prozesskette
von dennsen » 26.06.2007 14:59 • Verfasst in ABAP® Core

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.