Verzeichnis lesen, Dateien löschen im Pfad

In diesem Report werden Methoden der Klasse CL_GUI_FRONTEND_SERVICES eingesetzt.

  1. 1.Verzeichnis lesen
  2. 2.Unterverzeichnisse lesen
  3. 3.Dateien der Unterverzeichnisse löschen
  4. 4.Verzeichnisse löschen

Verzeichnisse lassen sich nicht löschen, wenn sie nicht leer sind. Dazu müssen wir also zuerst einmal alle Dateien in den Unterverzeichnissen löschen um dann anschließend auch das jeweilige Verzeichnis löschen zu können.

Weiterlesen

Set per Funktionsbaustein auslesen

Ein Beispiel, wie ein Set (hier ein Basic-Set), dass mit der Transaktion GS01 angelegt wurde, per FuB ausliest. Die Set-ID wird zunächst über den Setnamen ermittelt, bevor dieser ausgelesen werden kann

*————————————————————————

* Periodenfremde Buchung bei Leistungsdatum im Vorjahr oder früher
* Erstelldatum:  18.12.2013
* Autor       :  
*
*————————————————————————
DATA:   LV_FBUDA TYPE VBRP-FBUDA,
        LV_DATVR TYPE I,
        LV_DATSY TYPE I,
        LV_REL   TYPE C,
        LV_NEW_SETID TYPE SETHIER-SETID,
        LT_SET_VALUES LIKE TABLE OF RGSB4 WITH HEADER LINE
        .

Weiterlesen

OAWD – Archive Link, Dateinamen protokollieren

Archive-Link, Ablage protokollieren

Intension

Für die Ablage von Rechnungsdokumenten in das elektr. Archiv, über die Transaktion OAWD, soll die Protokollierung erweitert werden. Während der Ablage geht die Verknüpfung zum Ursprungsbeleg (Datei) verloren. Um nachzuvollziehen, ob die Dateien auch tatsächlich eingelesen wurden, soll der Dateiname in Verbindung zur docID des Archivs protokolliert werden.  Der Dateiname enthält von Anfang an den gelesenen eindeutigen Barcode der Rechnung. So wird sichergestellt, dass jederzeit eine Kontrolle über abgelegte Dateien stattfinden kann.

Weiterlesen

SBWP – Worklist eines anderen Benutzers anzeigen

F.: Gibt es eine Möglichkeit, die Worklist eines bestimmten Benutzers einzusehen?

A.: Es scheint kein Administrationswerkzeug zu existieren, mit dem die Worklist eines bestimmten Benutzers einzusehen wäre. Hier wird gezeigt, wie ein SAP-Funktionsbaustein dazu eingesetzt werden kann. Der hier gezeigte Report ist aufgrund einer Dringlichkeit sehr schnell (quick and dirty) entstanden und soll zur Erweiterung anregen. Sehr empfehlenswert ist auch diese Seite: http://www.alv-grid-display.de/alv_grid_de.html . Dort kann ruck-zuck eine ALV-Anzeige realisiert werden.

Weiterlesen

Dynpro-Felder vorbelegen wenn’s eigentlich nicht geht

Die Kollegen aus der Instandhaltung möchten unbedingt einige Dynprofelder der Wartungsplanerstellung mit Werten vorbelegt haben. Es ist aber nicht immer möglich diesem Wunsch zu entsprechen, da viele Felder keine Dynpro-ID besitzen und deshalb nicht über Benutzerparameter zu belegen sind. Auch im Einführungsleitfaden findet sich zu diesem Thema keine Abhilfe, so bediene ich mich hier einer vorgeschalteten Transaktion. Dort wird zunächst eine Batch-Input-Mappe erzeugt und mit Werten gefüllt. Diese wird dann an die SAP-Standardtransaktion übergeben und die entsprechenden Dynpro-Felder sind mit Werten gefüllt, Ohlala!

Weiterlesen

Dokumentation für kundeneigene Entwicklung anlegen

Implementierung einer kundeneigenen Dokumentation in die GHT/Anforderungsmaske

Häufig möchte man seinen kundeneigenen Entwicklungen auch eine Dokumentation hinzufügen, die über den Menüpunkt ->Hilfe Zur Anwendung

——- vielen Dank an Sven für diesen Tipp ——–

Mit der Transaktion SE61 können Dokumente zur Anwendung angelegt werden.

image009

image010

Nachdem das Dokument aktiviert und somit in einen Transportauftrag aufgenommen wurde, steht es in der Hilfe zur Verfügung.

image011

 

 

 

 

 

 

Drucken aus Dynpro, Aufruf des Formulares

Zu diesem Dokument gehören auch:

Eingabe-Dynpro für Tabelleneinträge

Fortsetzung Eingabe-Dynpro mit Sperrverwaltung

Dynprofelder als Druck ausgeben

 

Nun soll das im Artikel “Dynprofelder als Druck ausgeben” beschriebene Formular aufgerufen werden.

Als erstes sollten wir den Druckbutton in der Symbolleiste aktivieren und mit einem Funktionscode belegen. Hier werden wir einfach (im GUI-Status D902 unseres Beispiels) den Code “PRINT” eintragen. Dies bewirkt bereits die Aktivierung in der Symbolleiste.

image

Im PAI-Module “USER_COMMAND_0902” wird dieser Code ausgewertet und in ein Unterprogramm verzweigt.

 

image

Das Formular aus Smartforms wird aufgerufen wie ein Funktionsbaustein. Der Name des Formulares ist bekannt aber wie kommt man an die Bezeichnung des Funktionsbausteins? Dazu gibt es einen weiteren Funktionsbaustein, dieser bekommt als Einagbeparameter den Formularnamen mitgegeben und man erhält dafür den Namen des Funktionsbausteins des Formulars.

FORM P_PRINT .  * Aufruf des Formulars * holen des Namen des generierten FB zum Formular und lesen der Parameterdefinitionen
  CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
    EXPORTING       FORMNAME           = 'ZINVEST_EINZ' *     VARIANT            = ' ' *     DIRECT_CALL        = ' '     IMPORTING       FM_NAME            = FM_NAME     EXCEPTIONS       NO_FORM            = 1       NO_FUNCTION_MODULE = 2       OTHERS             = 3.   IF SY-SUBRC  0.     MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO             WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.   ENDIF.
Hier folgt nun der eigentliche Aufruf des Formulars
  CALL FUNCTION FM_NAME     EXPORTING *   ARCHIVE_INDEX              = *   ARCHIVE_INDEX_TAB          = *   ARCHIVE_PARAMETERS         = *   CONTROL_PARAMETERS         = *   MAIL_APPL_OBJ              = *   MAIL_RECIPIENT             = *   MAIL_SENDER                = *   OUTPUT_OPTIONS             = *   USER_SETTINGS              = 'X'       INVEST_PLAN                = ZMM_INVEST_PLAN       KSTXT                      = KSTXT       HERST                      = HERST       EKTXT                      = EKTXT * IMPORTING *   DOCUMENT_OUTPUT_INFO       = *   JOB_OUTPUT_INFO            = *   JOB_OUTPUT_OPTIONS         = * EXCEPTIONS *   FORMATTING_ERROR           = 1 *   INTERNAL_ERROR             = 2 *   SEND_ERROR                 = 3 *   USER_CANCELED              = 4 *   OTHERS                     = 5             .   IF SY-SUBRC  0. * Implement suitable error handling here   ENDIF.  ENDFORM.                    " P_PRINT

So, das war’s auch schon mit dem Aufruf.

Dynprofelder als Druck ausgeben

Zu diesem Dokument gehören auch:

Eingabe-Dynpro für Tabelleneinträge

Fortsetzung Eingabe-Dynpro mit Sperrverwaltung

Drucken aus Dynpro, Aufruf des Formulares

Ich habe ein Formular erstellt, das über den Druckbutton in der Symbolleiste die Inhalte des Dynpros ausgeben soll.

Um das Formular anzulegen, verwenden wir die TA SMARTFORMS und geben eine Formularbezeichnung vor.

clip_image002

Dieses Formular wird im aufrufenden Programm als Funktionsbaustein aufgerufen. Deswegen müssen wir zunächst einmal die Import-Parameter definieren. Hier übernehmen wir die kompletten Inhalte der auf dem Dynpro ausgegeben Daten. Da wäre zum einen die Tabelle ZMM_INVEST_PLAN und weitere einzelne Felder die ja erst zur Laufzeit des Dynpro erzeugt werden.

clip_image004

Wenn man nun die Feldliste einschaltet (Hilfsmittel – Feldliste ein/aus) dann sieht das so aus.

clip_image006

Als nächstes werden wir im Formular ein Textfeld anlegen.

clip_image008

In dieses Textfeld werden nun frei eingebbare Texte und Variablen eingefügt. Die Variablen können von der Feldliste in das Textfeld gezogen werden.

clip_image010

In diesem Fall habe ich Textfeld für die Kopfdaten und ein weiters Textfeld für die Details angelegt.

clip_image012

In der globalen Definition sind noch ein paar Variablen definiert weil die aus dem Programm übergebenen Werte hier zu einer verwirrenden Darstellung führen. Da werden z.B. Menge und Währung unformatiert dargestellt. Diese Felder sind ja als P7 definiert, wir wollen aber eine Zeichenartige Ausgabe erreichen.

clip_image014

Diese Variablen werden nun mit den Werten gefüllt, die im Formular sichtbar sein sollen. Dazu schalten wir auf das Tab „Initialisierung“ um.

clip_image016

Das sorgt nun dafür, dass die Menge und die Währungen in ein CHAR-Feld übertragen und formatiert werden.

Das war’s schon, noch sichern und aktivieren, dann geht’s zum Aufruf in den Report.

Fortsetzung Eingabe-Dynpro mit Sperrverwaltung

Zu diesem Dokument gehören auch:

Eingabe-Dynpro für Tabelleneinträge

Dynprofelder als Druck ausgeben

Drucken aus Dynpro, Aufruf des Formulares

Hier folgt nun die Erweiterung des Eingabedynpros mit einer Sperrverwaltung.

Im vorherigen Artikel hatte ich bereits erwähnt, dass bei Erstellung des Tabellenpflegedynpros durch den Tabellenpflege-Generator ein Manko besteht. Befindet sich ein User im Eingabe-/Änderungsmodus, dann wird die ganze Tabelle für Änderungen gesperrt. Das braucht und soll aber so nicht sein. Wir wollen nun eine Sperrverwaltung einbauen, die nur den jeweiligen Datensatz sperrt, der gerade im Änderungs-Zugriff steht.

Weiterlesen