Dynpro / Button Transporteintrag schreiben

Getting started ... Alles für einen gelungenen Start.
16 Beiträge • Seite 1 von 2 (current) Nächste
16 Beiträge Seite 1 von 2 (current) Nächste

Dynpro / Button Transporteintrag schreiben

Beitrag von Trulchen (Specialist / 241 / 4 / 1 ) »
Hallo,

und zwar hab ich ein Dynpro gebaut ähnlich wie die SM30 nur in übersichtlich und mit noch weiteren Funktionen.
Unter anderem eben auch die Funktion ändern oder neu Hinzufügen.

Gibt es eine möglichkeit / Coding das wenn das Event "SAVE" ausgelöst wird nicht nur die Datenbank aktuallisiert wird sondern auch automatisch das Fenster zwecks Transporteintrag schreiben kommt
und idealerweise auch dann das automatische Schreiben auf den Transporteintrag ?

Ich hab versucht das Coding der SM30 durchzudebuggen, werde daraus aber nicht schlau.

Wäre klasse wenn jemand eine Idee hätte :)

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


Re: Dynpro / Button Transporteintrag schreiben

Beitrag von a-dead-trousers (Top Expert / 4281 / 214 / 1140 ) »
Eine kleine Auswahl der Bausteine die ich dafür nutze:
Funktionsbaustein TRINT_ORDER_CHOICE zum Auswählen eines Transportauftrags.
Funktionsbaustein TR_INSERT_REQUEST_WITH_TASKS zum Anlegen eines Transportauftrags OHNE Dialog.
Funktionsbaustein TR_OBJECT_CHECK zum Prüfen von Objekten BEVOR man diese zu einem Transportauftrag hinzufügt.
Funktionsbaustein TR_APPEND_TO_COMM_OBJS_KEYS zum Hinzufügen von Einträgen in einen Transportauftrag.

lg ADT.
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: Dynpro / Button Transporteintrag schreiben

Beitrag von Trulchen (Specialist / 241 / 4 / 1 ) »
Ich bin irgendwie zu blöd :(

Hab es damit versucht:

Code: Alles auswählen.

 ****
****  DATA: it_e071     TYPE tr_objects,
****        it_e071k    TYPE tr_keys,
****        wa_e071     TYPE e071,
****        wa_e071k    TYPE e071k,
****        lv_request_type TYPE C.
****
*****wa_e071-trkorr    = p_req.
****  wa_e071-pgmid     = 'R3TR'.
****  wa_e071-object    = 'TABU'.
****  wa_e071-obj_name  = 'ZSWM_FORM_TEXTE'.
****  wa_e071-objfunc     = 'W'.
****
****  wa_e071k-pgmid = 'R3TR'.
****  wa_e071k-object = 'TABU'.
****  wa_e071k-objname = 'ZSWM_FORM_TEXTE'.
****  wa_e071k-as4pos = sy-tabix.
****  wa_e071k-mastertype = wa_e071-object.
****  wa_e071k-mastername = wa_e071-obj_name.
****  wa_e071-objfunc     = 'K'.
****  wa_e071k-tabkey = g_formtext.
****
****  APPEND wa_e071  TO it_e071.
****  append wa_e071k to it_e071k.
****
****  Break moser.
****  CALL FUNCTION 'TR_REQUEST_CHOICE'
****    EXPORTING
*****iv_suppress_dialog   = 'X'
****      iv_request_types     = 'W'
***** iv_request           = 'Tabelleneinträge ZSWM_FORM_TEXTE'
****      it_e071              = it_e071
****      it_e071k             = it_e071k
****      iv_lock_objects      = 'X'
****      iv_with_error_log    = 'X'
****      iv_no_owner_check    = 'X'
*****    IV_TITLE             =
****      IV_START_COLUMN =  3
****      IV_START_ROW         = 7
****    EXCEPTIONS
****      INVALID_REQUEST      = 1
****      INVALID_REQUEST_TYPE = 2
****      USER_NOT_OWNER       = 3
****      NO_OBJECTS_APPENDED  = 4
****      ENQUEUE_ERROR        = 5
****      CANCELLED_BY_USER    = 0
****      RECURSIVE_CALL       = 7
****      OTHERS               = 8.
****  break moser.
****  if sy-subrc = 0.
****    CALL FUNCTION 'POPUP_TO_DISPLAY_TEXT'
****      EXPORTING
****        textline1 = 'Eintrag auf Transporteintrag geschrieben'.
****  ENDIF.
Bekomme aber Sy-subrc 4 :(

Die anderen bausteine von euch habe ich auch schon getestet

Re: Dynpro / Button Transporteintrag schreiben

Beitrag von a-dead-trousers (Top Expert / 4281 / 214 / 1140 ) »
Wild Guess:
Versuch mal die AS4POS "hart" zu setzen.
z.B. sowohl bei E071 als auch bei E071K auf 1.

Alternativ würde ich mal den Requesttype 'K' anstatt 'W' ausprobieren.
Möglich, dass irgendeine Einstellung der Tabelle 'ZSWM_FORM_TEXTE' den 'W' verhindert.
'K' geht eigentlich immer.

lg ADT

EDIT: Bei IV_SUPPRESS_DIALOG = 'X' musst du, glaub ich, den zu verwendenden Transportauftrag in IV_REQUEST angeben. Das erkenne ich jetzt an deinem (auskommentierten) Code leider nicht eindeutig.
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: Dynpro / Button Transporteintrag schreiben

Beitrag von Trulchen (Specialist / 241 / 4 / 1 ) »
Ich brauch doch aber einen Custumizing Auftrag wenn ich Tabelleneinträge transportiere

Hiern noch mal das Coding unauskommentiert. Hab so viel ausprobiert schon.
AS4POS Hat auch nichts gebracht.

Code: Alles auswählen.

  DATA: it_e071     TYPE tr_objects,
        it_e071k    TYPE tr_keys,
        wa_e071     TYPE e071,
        wa_e071k    TYPE e071k,
        lv_request_type TYPE C.

*wa_e071-trkorr    = p_req.
  wa_e071-pgmid     = 'R3TR'.
  wa_e071-object    = 'TABU'.
  wa_e071-obj_name  = 'ZSWM_FORM_TEXTE'.
  wa_e071-AS4POS = '1'.
  wa_e071-objfunc     = 'W'.

  wa_e071k-pgmid = 'R3TR'.
  wa_e071k-object = 'TABU'.
  wa_e071k-objname = 'ZSWM_FORM_TEXTE'.
  wa_e071k-as4pos = sy-tabix.
  wa_e071k-mastertype = wa_e071-object.
  wa_e071k-mastername = wa_e071-obj_name.
  wa_e071k-objfunc     = 'K'.
   wa_e071k-AS4POS = '1'.
  wa_e071k-tabkey = g_formtext.

  APPEND wa_e071  TO it_e071.
  append wa_e071k to it_e071k.

  Break moser.
 CALL FUNCTION 'TR_REQUEST_CHOICE'
    EXPORTING
*iv_suppress_dialog   = 'X'
      iv_request_types     = 'K'
* iv_request           = 'Tabelleneinträge ZSWM_FORM_TEXTE'
      it_e071              = it_e071
      it_e071k             = it_e071k
      iv_lock_objects      = 'X'
      iv_with_error_log    = 'X'
      iv_no_owner_check    = 'X'
*    IV_TITLE             =
      IV_START_COLUMN =  3
      IV_START_ROW         = 7
    EXCEPTIONS
      INVALID_REQUEST      = 1
      INVALID_REQUEST_TYPE = 2
      USER_NOT_OWNER       = 3
      NO_OBJECTS_APPENDED  = 4
      ENQUEUE_ERROR        = 5
      CANCELLED_BY_USER    = 0
      RECURSIVE_CALL       = 7
      OTHERS               = 8.
  break moser.
  if sy-subrc = 0.
    CALL FUNCTION 'POPUP_TO_DISPLAY_TEXT'
      EXPORTING
        textline1 = 'Eintrag auf Transporteintrag geschrieben'.
  ENDIF.

Re: Dynpro / Button Transporteintrag schreiben

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
Ich vermute, dass der Fehler in diesem FuBa: "TRINT_APPEND_TO_COMM_ARRAYS" auftritt.

Dieser FuBa gibt aber nur einen Error Code SY-SUBRC = 1, fuer 8 moegliche Fehler im FuBa, zurueck,

Dieser eine Fehlercode zaehlt fuer folgende moegliche Erros im FuBa selber:

*" EXCEPTIONS
*" KEY_CHECK_KEYSYNTAX_ERROR
*" OB_CHECK_OBJ_ERROR
*" TR_LOCKMOD_FAILED
*" TR_LOCK_ENQUEUE_FAILED
*" TR_WRONG_ORDER_TYPE
*" TR_ORDER_UPDATE_ERROR
*" FILE_ACCESS_ERROR
*" OB_NO_SYSTEMNAME

Also einfach mal einen Breakpoint auf die erste Codezeile in diesem Fuba setzen und durchdebuggen.

Dann sollte man schon sehr viel naeher, an den eigentlichen Fehler kommen.

Re: Dynpro / Button Transporteintrag schreiben

Beitrag von Trulchen (Specialist / 241 / 4 / 1 ) »
Hab mal in die Tiefen debuggt, er scheint ein problem zu haben mit dem Key.... aber was genau kann ich nicht rausfinden :x :down:

Re: Dynpro / Button Transporteintrag schreiben

Beitrag von a-dead-trousers (Top Expert / 4281 / 214 / 1140 ) »
Zeig mal wie deine Tabelle (zumindest die Schlüsselfelder) und der Key, den du in den Transport schreiben möchtest, aufgebaut sind.

lg ADT
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: Dynpro / Button Transporteintrag schreiben

Beitrag von Trulchen (Specialist / 241 / 4 / 1 ) »
Hab dir die Screenshots angehängt...

Re: Dynpro / Button Transporteintrag schreiben

Beitrag von a-dead-trousers (Top Expert / 4281 / 214 / 1140 ) »
Nächster Versuch:
Laut Domäne OBJFUNC ist der Wert 'W' für die E071 nicht erlaubt. Korrekt wäre 'K' für 'Schlüsseleinträge'
Die E071K braucht das wie es ausschaut nicht (Domäne UPDID --> "Keine Verwendung")
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: Dynpro / Button Transporteintrag schreiben

Beitrag von Trulchen (Specialist / 241 / 4 / 1 ) »
Es kracht ja immer beim Prüfen vom Code
Dazu habe ich jetzt diesen Thread gefunden.

https://scn.sap.com/thread/421955

Wenn ich das richitg verstehe können Transporteinträge nur CHAR und NUMC werte. Und aufgrund Sy-mandt kracht es dann..... Weil das ein CLNT Feld ist.
Es geht nur wenn man ALLE Tabelleneinträge auf den Transportauftrag schreibt - was in meinem Fall nicht weiter schlimm ist. Und wa_e071k-tabkey muss mit einem "Stern" --> "*' versehen werden.

sy-subrc ist dann auch = 0 und ein Transporteintrag wird geschrieben.

Code: Alles auswählen.

*wa_e071-trkorr    = p_req.
  wa_e071-pgmid     = 'R3TR'.
  wa_e071-object    = 'TABU'.
  wa_e071-obj_name  = 'ZSWM_FORM_TEXTE'.
  wa_e071-AS4POS = '1'.
  wa_e071-objfunc     = 'K'.

  wa_e071k-pgmid = 'R3TR'.
  wa_e071k-object = 'TABU'.
  wa_e071k-objname = 'ZSWM_FORM_TEXTE'.
  wa_e071k-as4pos = sy-tabix.
  wa_e071k-mastertype = wa_e071-object.
  wa_e071k-mastername = wa_e071-obj_name.
  wa_e071k-AS4POS = '1'.
[b]  wa_e071k-tabkey = '*'.[/b]
Allerdings noch nicht richtig auf die Aufgabe..... (siehe Bild)

Re: Dynpro / Button Transporteintrag schreiben

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
Ich stelle mir schon die ganze Zeit die Frage, warum macht man so etwas?

Gerade bei Systemtransportauftraege?

Wenn da mal quersteckt, gibt es nur Aerger. Ich wuerde dort immer versuchen, den Standard zu nutzen.

In so einem Fall wuerde ich sogar einen Batch Input bevorzugen.

Re: Dynpro / Button Transporteintrag schreiben

Beitrag von ST22 (Specialist / 274 / 40 / 40 ) »
Hallo,
ich würde folgendes probieren:

- Tabelle kopieren (als Customizingtabelle)
- Pflegview generieren
- Breakpoint setzen (im Fuba für den Transportanschluss)
- Einträge pflegen
- Sichern
... und dann gucken, wie der Baustein gefüllt ist.

Das Ganze dann im eigenen Programm nachbilden.

Schöne Grüße
Frank

Re: Dynpro / Button Transporteintrag schreiben

Beitrag von ST22 (Specialist / 274 / 40 / 40 ) »
"Trulchen"...Wenn ich das richitg verstehe können Transporteinträge nur CHAR und NUMC werte. Und aufgrund Sy-mandt kracht es dann..... Weil das ein CLNT Feld ist.
Dann würde es ständig rappeln, das ist kein Problem, da der Mandant ja in den meisten Tabellen enthalten ist.
Grüße
Frank

Vergleichbare Themen

6
Antw.
3622
Views
Von Dictionary in Dynpro schreiben
von KleinerEisbaer » 18.09.2007 14:42 • Verfasst in ABAP® für Anfänger
0
Antw.
1567
Views
In Dynpro-Feld schreiben
von KleinerEisbaer » 14.09.2007 22:12 • Verfasst in ABAP® für Anfänger
5
Antw.
3238
Views
Dynpro verlassen, PF-Status setzen und Liste schreiben
von Gino » 19.01.2005 17:00 • Verfasst in ABAP® für Anfänger
1
Antw.
1091
Views
Web - Dynpro Button
von Rabea1103 » 08.02.2021 09:02 • Verfasst in Web-Dynpro, BSP + BHTML
3
Antw.
1603
Views
Button auf Dynpro auskraulen?
von Zubasa » 19.05.2011 17:30 • Verfasst in ABAP® für Anfänger

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

Zwischensumme Adobe Forms
vor 4 Wochen von Lucyalison 1 / 134
Group Items auf einer Filterbar
vor 5 Wochen von Bright4.5 1 / 168