Tabelle zeilenweise lesen und editieren ohne SE16, SM30/31

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
7 Beiträge • Seite 1 von 1
7 Beiträge Seite 1 von 1

Tabelle zeilenweise lesen und editieren ohne SE16, SM30/31

Beitrag von MindMOB (ForumUser / 8 / 0 / 0 ) » 22.10.2007 18:03
Hallo zusammen, ich habe da ein Problem und leider noch keine Idee :cry:

Die Situation ist folgende:
Es gibt einen Report A, der bestückt eine kundeneigene, externe Tabelle.
Und dann gibt es einen Report B, der liest diese Tabelle und bereitet aus deren Inhalten Daten für eine Batch-Input-Mappe auf.
Zwischen A und B sind aber noch ein paar User am Werk, die bestimmen sollen, welche Inhalte aus der externen Tabelle überhaupt verarbeitet werden.
Dabei dürfen Sie die Tabelle weder über die Standardtransaktionen SE16 bzw. SM30/31 editieren, da sie hierfür keine Berechtigung haben.

Also müßte man einen weiteren Report schreiben, der:
1. die externe Tabelle zeilenweise liest
2. der prüft, ob der ausführende User eine Zugriffsberechtigung auf die jeweiligen Daten hat
3. die Tabellenzeilen sollten dann auf dem Bildschirm ausgegeben werden (ALV oder Abap-Liste)
4. der User soll in den einzelnen Ausgabezeilen per Klick (z.B. Checkbox an/aus) bestimmen können, ob Report B diese Tabellenzeile für die BI-Mappe verwenden darf oder nicht. Entweder wird ein zusätzliches Tabellenfeld bestückt, welches später vom Report B ausgewertet wird oder es wird die gesamte Zeile aus der Tabelle gelöscht.

Habt Ihr eine Anregung, wie ich das mit dem Selektieren einzelner Tabellenzeilen (ohne SE16, SM30/31) machen könnte. Gibt es Beispiele oder gar einen Funktionsbaustein, der mir die gröbste Arbeit abnimmt?

P.S. Wir haben hier Release 4.6c


Beitrag von ewx (Top Expert / 4218 / 197 / 439 ) » 22.10.2007 19:07
Hi!
Die nicht vorhandene Berechtigung für die SM30 könnte man ja einrichten... Dazu gibt es Berechtigungsgruppen, die man für jeden Pflegeview eintragen kann. Für diesen speziellen Fall könnte man also eine spezielle BErechtigungsgruppe customizen. Die Anwender bekämen dann die Berechtigung für die SM30 und diese spez. Berecht.Gruppe.

Über Zeitpunkte kann man eine erweiterte Berechtigungsprüfung durchführen. Oder man nimmt den Zeitpunkt "Anstelle der Standardroutine zum Einlesen der Daten", liest die dort die Daten und filtert gleich die aus, für die der Benutzer keine Berechtigung hat.
Das Kennzeichen "Verarbeiten ja/nein" würde ich als extra Feld in die Pflegetabelle eintragen.

Wenn du die ganze Tabelle in einen View übernimmst, kannst du sogar noch steuern, welche Felder evtl. nur angezeigt werden dürfen und du kannst einschränken, dass z.B. keine Einträge gelöscht und/ oder keine Einträge eingefügt werden dürfen.

Frohes Schaffen!

Beitrag von Tron (Top Expert / 1167 / 22 / 263 ) » 22.10.2007 19:24
Hi,
ich denke auch, das ein (oder Mehrere) Tabellenpflegedialog(e) die flexibelste Art zum Befüllen der kundeneigene, externe Tabelle ist. Falls die Vergabe der Berechtigung Probleme bereitet, gibt es via Funktionsbaustein die Möglichkeit den Tabellenpflegedialog aufzurufen und eigene Berechtigungsprüfungen durchzuführen. z.B.:

Code: Alles auswählen.

* Aufruf der Tabellenpflege, wie (SM30)
  CALL FUNCTION 'VIEW_MAINTENANCE_CALL'
    EXPORTING
      action                       = 'U'
      view_name                    = 'YVUSERPROG'
      check_ddic_mainflag          = 'X'
    TABLES
      dba_sellist                  = lt_rangetab
      excl_cua_funct               = fu_to_excl
    EXCEPTIONS
      client_reference             = 1
      foreign_lock                 = 2
      invalid_action               = 3
      no_clientindependent_auth    = 4
      no_database_function         = 5
      no_editor_function           = 6
      no_show_auth                 = 7
      no_tvdir_entry               = 8
      no_upd_auth                  = 9
      only_show_allowed            = 10
      system_failure               = 11
      unknown_field_in_dba_sellist = 12
      view_not_found               = 13
      maintenance_prohibited       = 14
      OTHERS                       = 15.
(siehe auch SAP-Doku Tabellenpflege)
gruß Tron
<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Beitrag von MindMOB (ForumUser / 8 / 0 / 0 ) » 23.10.2007 11:58
Hi zusammen und danke erst mal für Euere Tips!

Ich habe jetzt weitere Anforderungen erhalten:
1. die ausführenden User DÜRFEN definitiv keine Berechtigung für Pflegetransaktionen bekommen (SE16, SM30/31, ...).
2. egal wie ich das Problem lösen werde, es muß sichergestellt werden, daß die Tabellenzeilen, die von der Verarbeitung ausgeschlossen werden sollen, NICHT wirklich physisch aus der Tabelle gelöscht werden. Ich muß also doch ein Checkfeld in die Tabelle integrieren, das je nach Status (Verarbeitung ja/nein) mit einem "X" upgedatet wird. Oder so ähnlich.

Euere Ideen sind schon gut, aber könnte ich die beiden auch kombinieren, damit ich die Anforderungen einhalten kann?
Also 1. den VIEW einrichten und dort nur die Pflege der Checkbox zulassen. Andere Feldinhalte dürfen nicht verändert werden.
Und 2. es dürfen keine Tabellenzeilen gelöscht werden.
Wäre es möglich den FB "VIEW_MAINTENANCE_CALL" auf den neuen VIEW anzuwenden?

Wenn das nicht klappt, muß ich mir was anderes überlegen.
Irgendwo hab ich mal einen Report gesehen, der hat eine Auswahl am Bildschirm angezeigt (Listformat) und wenn man auf eine bestimmte Zeile geklickt hat, dann wurden Werte aus dieser Zeile in Variablen übertragen. Muß mal schauen, ob ich den Report noch irgendwo finde bzw. ob ich herausbekomme, wie sowas zu lösen ist. Evtl. mit AT LINE-SELECTION und USER-COMMANDs?!


Gruß MindMOB und nochmal danke!

Beitrag von ewx (Top Expert / 4218 / 197 / 439 ) » 23.10.2007 14:27
MindMOB hat geschrieben:Euere Ideen sind schon gut, aber könnte ich die beiden auch kombinieren, damit ich die Anforderungen einhalten kann?
Das geht! Der FB macht nix anderes, als die SM30.
MindMOB hat geschrieben:Irgendwo hab ich mal einen Report gesehen, der hat eine Auswahl am Bildschirm angezeigt (Listformat) und wenn man auf eine bestimmte Zeile geklickt hat, dann wurden Werte aus dieser Zeile in Variablen übertragen. Muß mal schauen, ob ich den Report noch irgendwo finde bzw. ob ich herausbekomme, wie sowas zu lösen ist. Evtl. mit AT LINE-SELECTION und USER-COMMANDs?!
Programmieren kannst du alles!
Aber es soll ja auch möglichst kostengünstig sein. Die Sache mit der SM30 dauert eine Stunde. Wenn sich jemand noch gar nicht damit beschäftigt hat, ist er aber auch an einem Tag durch. Die SM30 gibt's schon jahrelang, das heisst, da muss man nicht lange testen.
Workshop Tabellenpflege: http://tricktresor.de/content/index.php ... =135&aID=0
Anregung für Eingabe in Listen:
http://tricktresor.de/content/index.php ... 50&aID=386
http://tricktresor.de/content/index.php?navID=50&aID=58
Gruß,

Beitrag von Tron (Top Expert / 1167 / 22 / 263 ) » 23.10.2007 22:03
HI,
Probier doch aus( mit der SE54):
1.Erzeuge einen Tabellenpflegeview zu Deiner Tabelle
2. Erzeuge VIEWVARIANTEN um genau festzulegen, welche Gruppe, welche Felder sehen und/oder ändern darf, das lässt sich über Pflegevarianten genau regeln, sogar ohne Programmierung.Es lassen sich auch Felder einblenden, die nur zur Info mitgegeben werden. Später beim Aufruf können Einschränkungen programmiert werden etc.
Sollte sich etwas am Konzept ändern, so ändert man die Viewvariante in kürzester Zeit.

gruß Tron
<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Beitrag von MindMOB (ForumUser / 8 / 0 / 0 ) » 24.10.2007 18:57
Hi, danke nochmals für Eure Tips.
Ich denke mal, daß es ab morgen nachmittag hier etwas ruhiger zugehen wird, dann werde ich mich mal intensiv mit den Pflegeviews, Viewvarianten und dem FB "VIEW_MAINTENANCE_CALL" befassen. Hatte bislang mit diesen Geschichten wenig bis überhaupt nichts zu tun und muß da erst mal einen Einstieg finden. Die Doku zur Tabellenpflege hab ich mir mal angesehen, allerdings fand die etwas zu dürftig und sie hat bei mir einige Fragen aufgeworfen. Ich hatte mal versucht mittels SE54 einen Pflegeview anzulegen, aber das hat irgendwie nicht so ganz geklappt, weil mir u.a. die Bedeutung der ganzen Parameter und dem Vorgehen innerhalb der SE54 nicht so ganz klar ist. Muß mal schauen, ob ich ausführlichere Unterlagen bekommen kann. Im Prinzip stimme ich mit Euch überein, alleine vom Kostenfaktor her ist es am besten über VIEWs / SM30 an das Problem heranzugehen.

Danke nochmals.

LG MindMOB

Seite 1 von 1

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und besseren Inhalt:

Aktuelle Forenbeiträge

Rechtsklick im ALV Tree
vor 20 Stunden von Ichse2 1 / 25

Vergleichbare Themen

Tabelle zeilenweise scrollen mit BI
von masterdog » 12.09.2007 12:35
Daten zeilenweise in interne Tabelle speichern
von SLS » 19.09.2005 10:57
Daten zeilenweise aus HTML Tabelle auslesen
von BubbleSort » 15.01.2016 08:51
Tabelle editieren
von christof » 03.05.2018 07:57
Tabelle ändern mit SE16
von dadarki » 21.05.2015 16:09