Abfrage Messages nach call transaction

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).

Abfrage Messages nach call transaction

Postby Ramon2764 » Fri Oct 28, 2011 10:49 am

Mal etwas scheinbar Banales:

Ich rufe aus einem Dialog ( Zeilenselektion auf ALV-Grid ) die Transaktion VA02 per

set parameter id: 'AUN' field wa_postab-vbeln,
'VPO' field wa_postab-posnr.
call transaction 'VA02' and skip first screen.

auf, also ohne using ( wobei ein "messages into messtab" nicht möglich ist ).

Ich hatte aber die Hoffnung, daß nach Rücksprung aus der Transaktion die Parameter der Nachricht aus der VA02 in den Systemfeldern sy-msgid, sy-msgno, ... seien. Sind sie aber nicht. Diese stehen unmittelbar nach der call transaction-Anweisung auf initial. Trotzdem wird die Nachricht dann auf dem Grid-Bildschirmd des rufenden Programms angezeigt.
Konkret: Ich möchte nach dem Rücksprung aus der VA02 im Programm abfragen können, ob der User in der VA02 tatsächlich eine Änderung gemacht hat oder nicht. Geht das ohne den Zusatz ... using bdc_tab?

Vielen Dank im Voraus,
Ramon2764
..
..
 
Posts: 28
Joined: Mon Aug 31, 2009 4:56 pm

Re: Abfrage Messages nach call transaction

Postby Jonny2227 » Mon Oct 31, 2011 8:58 am

Sali,

ich denke du wirst schauen müssen - welchen Applikation Log die VA02 schreibt und diesen dann auslesen müssen (mit den BAL_... Bausteinen) - da stehen dann eigentlich alle Meldungen drin, die während der Be / Verarbeitung aufgelaufen sind .

Gruss Jens
Jonny2227
....
....
 
Posts: 605
Joined: Wed Mar 01, 2006 3:16 pm

Re: Abfrage Messages nach call transaction

Postby ewx » Mon Oct 31, 2011 9:58 am

Wundert mich, dass es mit den Message-Variablen nicht funktioniert... Vielleicht funkt da ein Userexit von euch dazwischen?
Soweit ich weiß, wird kein Application-Log in der VA02 geschrieben.
Probier mal
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. data lv_vbeln type vbeln.
  2. IMPORT  da_vbeln_save TO lv_vbeln FROM MEMORY ID '2032_dialog'.
  3. IF sy-subrc = 0 AND lv_vbeln = lv_actual_vbeln.
  4. ** order changed
  5.  
GeSHi ©

Früher funktionierte das mal zuverlässig mit dem Parameter SD_SAVE_IN_PROCESS
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. import da_vbeln from memory id 'SD_SAVE_IN_PROCESS'.
  2.  
GeSHi ©

Das klappt aber leider nicht mehr obwohl das entsprechende Coding noch in BELEG_SICHERN vorhanden ist.
ewx
.....
.....
 
Posts: 2840
Joined: Mon Aug 04, 2003 9:02 pm

Re: Abfrage Messages nach call transaction

Postby Jonny2227 » Mon Oct 31, 2011 10:44 am

Sali,

ich könnnte mir schon vorstellen das ein Applikation Log geschrieben wird, denn im Programm SAPMV45A sind ja unter Makros dazu 2 Makros vorhanden und ich denke mal das erste - Message_collect (Aufruf des FUBA SD_MESSAGE_COLLECT ) wird sicherlich benutzt im Umfeld der VA02 Nachrichten zu schreiben - oder ?`

Gruss Jens
Jonny2227
....
....
 
Posts: 605
Joined: Wed Mar 01, 2006 3:16 pm

Re: Abfrage Messages nach call transaction

Postby ewx » Mon Oct 31, 2011 10:53 am

Ich habe mal einen Haltepunkt bei FB BAL_LOG_MSG_ADD gesetzt; Kein Aufruf...
ewx
.....
.....
 
Posts: 2840
Joined: Mon Aug 04, 2003 9:02 pm

Re: Abfrage Messages nach call transaction

Postby Ramon2764 » Mon Oct 31, 2011 4:17 pm

Vielen Dank für Eure Mühen,

ich behelfe mir erstmal einfach dadurch, daß ich nach Rücksprung aus der VA02 einfach einen Single-SELECT auf die Datenbank mache, und die neuen Werte der Felder ermittle, die mich interessieren: in meinem Fall VBAP-KWMENG und VBAP-KBMENG, und diese dann mit den "alten", vor dem Absprung eingelesenen Werten vergleiche. Das funktioniert in jedem Falle.

Dessen unbenommen, interessant wäre natürlich trotzdem, wie man an die ja schließlich vorhandene VA02-Abschlußnachricht kommt.

Gruß,
Ramon2764
..
..
 
Posts: 28
Joined: Mon Aug 31, 2009 4:56 pm

Re: Abfrage Messages nach call transaction

Postby ewx » Mon Oct 31, 2011 4:37 pm

Das würd' ich lassen... Denn je nach Systemlast hast du Glück und der Verbucher ist fertig bevor du deinen Select machst oder du hast Pech und der Verbucher verbucht noch und du liest die alten Daten. Du kannst das nur machen, wenn du vor dem CALL TRANSACTION einen SET UPDATE TASK LOCAL absetzt!
ewx
.....
.....
 
Posts: 2840
Joined: Mon Aug 04, 2003 9:02 pm

Re: Abfrage Messages nach call transaction

Postby Fiona462 » Mon Oct 31, 2011 9:29 pm

Zufaellig gefunden, daher weiss nicht, ob der Exit passt:

EXIT_SAPLVEDB_003SD EDI Auftragänderung: Zusätzliche Aktionen nach call transaction VA02
Fiona462
...
...
 
Posts: 149
Joined: Tue Dec 07, 2010 11:28 pm

Re: Abfrage Messages nach call transaction

Postby Ramon2764 » Wed Nov 02, 2011 3:57 pm

... bei Beenden der Transaktion VA02 durch den "Sichern"-Button wird eine der Meldungen

V1 041 Es erfolgte keine Datenänderung oder
V1 311 & & wurde gesichert ( wobei die Platzhalter für Auftragsart und Belegnummer stehen )

ausgelöst. Beide werden in der Routine BELEG_SICHERN des Hauptprogramms SAPMV45A mit der Anweisung MESSAGE als Meldung vom Typ S gesetzt, also Ausgabe auf dem nachfolgenden Screen, was in der Tat ja auch geschieht. Mit der MESSAGE-Anweisung werden die Systemvariablen der Nachricht auch gesetzt, sie gehen allerdings im weitern Verlauf der Transktion bis zum Rücksprung ins rufende Programm wieder verloren.
Die Gretchen-Frage wäre also: Kann man eine als Typ-"S" abgesetzte Message im rufenden Programm nochmal hinterfragen bzw. ermitteln?
Das Anwendungslog scheint mir dabei eher keine Rolle zu spielen, denn hier werden ja Nachrichten verwaltet, die auch bewußt in dieses Log geschrieben werden, mit den dazu vorhandenen Funktionsbausteinen.

Der Einwand, daß ein Abfragen der Datenbank auf Änderungen nach dem Rücksprung problematisch ist wegen eines "hinterherhinkenden" Verbuchers, ist natürlich berechtigt, aber diese Unschärfe habe ich erstmal bewußt in Kauf genommen. In der Praxis ist der Verbucher auch immer durch, denn nach Auslösen der Funktion "Sichern" in der VA02 dauert es eine ganze Weile, bis der Rücksprung erfolgt. Was den Schluß zulässt, daß dann auch der Verbucher durch ist ( aber natürlich nicht beweist ).

Zu: import da_vbeln from memory id 'SD_SAVE_IN_PROCESS':
In der Routine BELEG_INITIALISIEREN wird diese Memory initialisiert. Und dies geschieht "Nach Sichern", so jedenfalls die Beschreibung im Header der Form-Routine.

So long,
Ramon2764
..
..
 
Posts: 28
Joined: Mon Aug 31, 2009 4:56 pm

Re: Abfrage Messages nach call transaction

Postby Ilja583 » Wed Nov 02, 2011 4:29 pm

Hallo locuolan,

in deinem OP schreibst du, dass "Messages into ..." nicht möglich ist. Warum eigentlich nicht?
Ilja583
.....
.....
 
Posts: 1372
Joined: Wed Jan 08, 2003 3:00 pm

Next

Return to ABAP Objects®

Who is online

Users browsing this forum: No registered users and 10 guests