Datei kopieren auf Applikationsserver

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

Datei kopieren auf Applikationsserver

Beitrag von herr mb (ForumUser / 45 / 5 / 0 ) »
Hallo,
ich soll ein bestehendes Programm so ändern, dass die zu verarbeitenden Dateien nicht wie bisher am Frontend kopiert werden (Fuba WS_FILE_COPY) sondern auf dem App-server. Ich habe schon bei google gesucht und nichts gefunden. Da gibt's doch bestimmt einen FuBa oder eine Methode, die sowas kann, oder?
Beste Grüße Marcus

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


Re: Datei kopieren auf Applikationsserver

Beitrag von casman (Specialist / 420 / 1 / 63 ) »
Wüsst ich nich...

Lies doch die Datei mit OPEN DATASET x FOR INPUT und schreib sie neu mit OPEN DATASET x FOR OUTPUT. Fädich!

Re: Datei kopieren auf Applikationsserver

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
TCODE SM69: Erstellen und pflegen von 'External Commands"

Funktionsbaustein: SXPG_CALL_SYSTEM "Execute an External Command" Sieht Dokumentation zum FuBA und nutze Verwendungsnachweis.

Dokumentation: http://help.sap.com/erp2005_ehp_04/help ... ameset.htm

Re: Datei kopieren auf Applikationsserver

Beitrag von herr mb (ForumUser / 45 / 5 / 0 ) »
Vielen Dank für die Tipps. Ich werde das mal ausprobieren.
Viele Grüße
Marcus

Re: Datei kopieren auf Applikationsserver

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
Ich sehe gerade, dass meine Antwort Dir evtl. nicht weiterhilft.

Dein Eingangsposting ist doch nicht so klar, wie ich dachte.

Ich glaube, Du brauchst eher so etwas wie TCode: CG3Z.

Re: Datei kopieren auf Applikationsserver

Beitrag von casman (Specialist / 420 / 1 / 63 ) »
Hi Unit605,

so wie ich herr mb verstehe, will er einfach Dateien auf dem App-Server von einem Verzeichnis in ein anderes kopieren, oder?

Re: Datei kopieren auf Applikationsserver

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
Hi Casman,

das nahm ich zuerst auch an.

Es ist aber nicht klar, was er nun wirklich will.

Re: Datei kopieren auf Applikationsserver

Beitrag von mcdelta0six (ForumUser / 8 / 0 / 2 ) »
Also ich interpretiere es so, dass eine Alternative für den FB WS_FILE_COPY gesucht wird, die anstelle die Datei auf dem Front-End PC auf dem Server kopiert.

Dazu gibt es zwei Möglichkeiten, die bereits beschrieben wurden.

1. Open Dataset

Code: Alles auswählen.

DATA: UX_FILE LIKE AUTHB-FILENAME.
DATA: UX_FILE_NEW LIKE AUTHB-FILENAME.
DATA: T_IMEX TYPE TABLE OF BIFMIMEX WITH HEADER-LINE.

OPEN DATASET UX_FILE FOR INPUT IN TEXT MODE encoding default.
  IF SY-SUBRC NE 0.             "/ Datei konnte nicht geöffnet werden!
    MESSAGE E992(RE) WITH UX_FILE.
  ENDIF.

  DO.                                  "/ Zeilenweise Einlesen
    CLEAR  T_IMEX.
    READ DATASET UX_FILE INTO T_IMEX.
    IF SY-SUBRC NE 0.                  "/ kein Satz mehr
      EXIT.
    ENDIF.
    APPEND T_IMEX.
  ENDDO.
*
  CLOSE DATASET UX_FILE.


*----------------------------------------------------------------------*
  OPEN DATASET UX_FILE_NEW FOR OUTPUT IN TEXT MODE encoding default.
*
  IF SY-SUBRC NE 0.             "/ Datei konnte nicht geöffnet werden!
    MESSAGE E992(RE) WITH UX_FILE_NEW.
  ENDIF.
*
  LOOP AT T_IMEX FROM 1.                   "/ Zeilenweise ausgeben
     TRANSFER T_IMEX TO UX_FILE_NEW.
  ENDLOOP.
*
  CLOSE DATASET UX_FILE_NEW.

Als Kurzversion eventuell auch so

Code: Alles auswählen.

DATA: UX_FILE LIKE AUTHB-FILENAME.
DATA: UX_FILE_NEW LIKE AUTHB-FILENAME.
DATA: T_IMEX LIKE BIFMIMEX.

OPEN DATASET UX_FILE FOR INPUT IN TEXT MODE encoding default.
  OPEN DATASET UX_FILE_NEW FOR OUTPUT IN TEXT MODE encoding default.

  DO.                                  "/ Zeilenweise Einlesen
    READ DATASET UX_FILE INTO T_IMEX.
    IF SY-SUBRC NE 0.                  "/ kein Satz mehr
      EXIT.
    ENDIF.
    TRANSFER T_IMEX TO UX_FILE.
  ENDDO.

  CLOSE DATASET UX_FILE.
  CLOSE DATASET UX_FILE_NEW.

2. Mittels eines Betriebssystem Kommandos
Dazu muss zunächst in der SM69 das entsprechende Kommando gepflegt werden. Entweder wird der Copy Befehl dort direkt eingegeben, oder man erstellt sich auf dem Backend ein Script das die gewünschten Operationen ausführt und ruft dieses auf.

Der Code für den Copy Befehl wäre z.B. so.

Code: Alles auswählen.


data: g_command type sxpgcolist-name value 'Z_COPY',
g_params type sxpgcolist-parameters,
g_status type extcmdexex-status,
g_exitcode type extcmdexex-exitcode,
g_tab_prot like btcxpm occurs 0 with header line.

parameters: p_from type char100.
parameters: p_to type char100.

concatenate p_from p_to into g_params separated by space.

  call function 'SXPG_COMMAND_EXECUTE'
    exporting
      commandname                         = g_command
      additional_parameters               = g_params
*   OPERATINGSYSTEM                     = SY-OPSYS
*   TARGETSYSTEM                        = SY-HOST
*   DESTINATION                         =
*   STDOUT                              = 'X'
*   STDERR                              = 'X'
*   TERMINATIONWAIT                     = 'X'
*   TRACE                               =
*   DIALOG                              =
   importing
     status                              = g_status
     exitcode                            = g_exitcode
   tables
     exec_protocol                       = g_tab_prot
   exceptions
     no_permission                       = 1
     command_not_found                   = 2
     parameters_too_long                 = 3
     security_risk                       = 4
     wrong_check_call_interface          = 5
     program_start_error                 = 6
     program_termination_error           = 7
     x_error                             = 8
     parameter_expected                  = 9
     too_many_parameters                 = 10
     illegal_command                     = 11
     wrong_asynchronous_parameters       = 12
     cant_enq_tbtco_entry                = 13
     jobcount_generation_error           = 14
     others                              = 15
            .
  if sy-subrc <> 0.
  MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
          WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  endif.


Re: Datei kopieren auf Applikationsserver

Beitrag von herr mb (ForumUser / 45 / 5 / 0 ) »
Vielen Dank für die Hilfe!
Momentan komme ich nicht dazu an dem Programm zu arbeiten, aber der Ansatz ist ja klar.
Wundert mich nur, dass es dafür keinen FuBa gibt.
Grüße Marcus

Re: Datei kopieren auf Applikationsserver

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
Die Frage steht immer noch im Raum: Für was EXAKT brauchst Du was.

Wenn Du Dir die Antworten durchgelesen hast, wirst Du vielleicht sehen, dass immer noch Uneinigkeit darin besteht, was Du nun genau willst.

Seite 1 von 1

Vergleichbare Themen

1
Antw.
1118
Views
Datei auf dem Applikationsserver ausführen
von Vlad » 20.02.2006 11:39 • Verfasst in ABAP® Core
1
Antw.
6845
Views
csv Datei auf Applikationsserver speichern
von Buetzy » 31.08.2007 10:52 • Verfasst in ABAP® für Anfänger
6
Antw.
5876
Views
Datei auf Applikationsserver suchen
von Katinka » 08.09.2005 13:44 • Verfasst in ABAP® Core
6
Antw.
5198
Views
Datei auf Applikationsserver schreiben
von cali » 19.12.2005 10:21 • Verfasst in ABAP® Core
3
Antw.
2552
Views
PDF-Datei aus Applikationsserver mit dem Smartform drucken
von sapIK » 04.08.2006 15:14 • Verfasst in ABAP® Core

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

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.

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
vor 17 Stunden von Bright4.5 1 / 366
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2011
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8608