Single Select-Transaktion VA03 im SAP-Frontend aufzeichnen
Anforderungen
Bei Einfachselektion einer Prozessinstanz der Prozesstypgruppe Auftragsabwicklung
in PPM soll die Transaktion VA03 (Auftrag anzeigen) in dem SAP-System mit der ID sapppm aufgerufen werden können.
Der Transaktion soll das PPM-Prozessattribut AT_SALES_ORDER_NUMBER (Auftragsnummer der gewählten Prozessinstanz) übergeben werden.
Im Folgenden ist schrittweise beschrieben, wie Sie mittels SAP-Transaktionsrekorder die Transaktion VA03 (Auftrag anzeigen) unter Berücksichtigung der gegebenen Anforderungen aufzeichnen.
Starten Sie im SAP-Frontend den Transaktionsrekorder (Transaktion SHDB). Sie erhalten folgende Ansicht:
Legen Sie eine neue Aufzeichnung an und geben Sie im Feld Aufzeichnung einen beliebigen Namen ein, unter dem Sie die Aufzeichnung speichern möchten. Im Feld Transaktionscode geben Sie den Namen der aufzuzeichnenden Transaktion an:
Starten Sie nun die Aufzeichnung und machen Sie in der folgenden Maske die erforderlichen Angaben, das heißt, in den Feldern, die mit PPM-Prozessattributen gefüllt werden sollen, geben Sie entsprechende Werte ein und füllen auch die Felder aus, die beim Aufruf der Transaktion mit festen Werten belegt werden sollen. Im vorliegenden Beispiel gibt es keine Werte, die vorbelegt werden sollen, sondern nur die Auftragsnummer, die von der PPM-Prozessinstanz übernommen werden soll. Geben Sie dazu im Feld Auftrag eine in Ihrem System vorhandene Auftragsnummer ein:
Bestätigen Sie Ihre Eingaben mit der Taste F5 und lassen Sie sich die Daten des Auftrags 7499 anzeigen:
Verlassen Sie nun die Transaktion mittels der Schaltfläche Zurück (F3). Sie sind jetzt wieder im Transaktionsrekorder und sehen Ihre Angaben im ABAP-Batch-Input-Format:
Die erste Zeile des Batch-Input-Skripts entspricht dem Transaktionsaufruf. Die beiden letzten Zeilen stellen die Auftragsanzeige und das Betätigen der Schaltfläche Zurück dar. Diese Zeilen sind in der anschließenden Erstellung der XML-Transaktionskonfiguration zu ignorieren.
Die Angaben aller anderen Zeilen übertragen Sie gemäß folgender Matrix in das XML-Format der batchinputline-Elemente.
Spaltenname im |
XML-Attribut |
---|---|
Programm |
program |
Dynpro |
dynpro |
Startkennzeichen |
dynprobegin |
Feldname |
fieldname |
Feldwert |
fieldvalue |
Felder ohne Wert brauchen Sie nicht anzugeben, da dies dem Vorgabewert von fieldvalue entspricht. Das XML-Format des Beispiels sieht wie folgt aus:
...
<batchinputline program="SAPMV45A" dynpro="0102"
dynprobegin="X"/>
<batchinputline fieldname="BDC_CURSOR"
fieldvalue="VBAK-VBELN"/>
<batchinputline fieldname="BDC_OKCODE"
fieldvalue="=UER1"/>
<batchinputline fieldname="VBAK-VBELN"
fieldvalue="7499"/>
...
Damit nicht stets der Auftrag 7499 angezeigt wird, ganz gleich von welcher Prozessinstanz innerhalb der Prozesstypgruppe Auftragsabwicklung Sie die Transaktion VA03 aufrufen, ersetzen Sie im letzten Element batchinputline die statische Wertangabe für das Feld mit der Auftragsnummer (hier: VBAK-VBELN) durch das entsprechende PPM-Prozessattribut, das in Ihrer Prozessinstanz die Auftragsnummer enthält, z. B. AT_SALES_ORDER_NUMBER.
Zusammen mit (beispielhaften) Verbindungsdaten sieht die Transaktionskonfiguration nun wie folgt aus (ABAP-Batch-Input-Daten in Fettschrift):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE r3transactionconf SYSTEM
"mysaptransaction.dtd">
<r3transactionconf>
<submenu>
<description language="de"
name="SAP-Transaktionen"/>
<description language="en"
name="SAP Transactions"/>
</submenu>
<logoutMenuEntry>
<description language="de"
name="SAP-Verbindung ändern"/>
<description language="en"
name="Change SAP connection"/>
</logoutMenuEntry>
<r3system systemid="sapppm" client="800">
<description language="de"
name="SAP-System 'sapppm' "/>
<description language="en"
name="SAP System 'sapppm' "/>
<locales>
<defaultlocale value="de"/>
<locale value="en"/>
</locales>
<applicationserver appserver="sapppm"
systemnumber="00"/>
</r3system>
<transaction systemid="sapppm"
transactioncode="VA03" transactionid="VA03"
proctypegroup="Auftragsabwicklung">
<description language="de"
name="Auftrag anzeigen (VA03)"/>
<description language="en"
name="Display sales order (VA03)"/>
<batchinputline program="SAPMV45A"
dynpro="0102" dynprobegin="X"/>
<batchinputline fieldname="BDC_CURSOR"
fieldvalue="VBAK-VBELN"/>
<batchinputline fieldname="BDC_OKCODE"
fieldvalue="=UER1"/>
<batchinputline fieldname="VBAK-VBELN"
attributname="AT_SALES_ORDER_NUMBER"/>
</transaction>
</r3transactionconf>
Anzeige in PPM
Das Kontextmenü zum Transaktionsaufruf auf einer gewählten Prozessinstanz des Prozesstyps Auftragsabwicklung\sonstige Aufträge sieht gemäß obiger Konfiguration folgendermaßen aus:
Der anschließend erscheinende SAP-Anmeldedialog sieht gemäß Konfiguration folgendermaßen aus:
Nach erfolgreicher Authentifizierung des Benutzers im SAP-System wird die Transaktion VA03 im SAP-Frontend aufgerufen und es werden die Daten zur Auftragsnummer der gewählten Prozessinstanz (hier: 5000053) angezeigt:
Multi Select-Transaktion ME5F aufzeichnen
Anforderungen
Wenn mehrere Prozessinstanzen der Prozesstypgruppe Bestellanforderungen in der Prozessinstanztabelle selektiert sind, soll die Transaktion ME5F (Freigabeerinnerung: Bestellanforderungen) in dem SAP-System mit der ID sapppm aufgerufen werden können. Bei jedem Aufruf der Transaktion ME5F sollen als Freigabecode KY und als Freigabegruppe 01 verwendet werden.
Der Transaktion sollen die Werte des PPM-Prozessattributs AT_BANF_NUMBER (Bestellanforderungsnummer) der gewählten Prozessinstanzen übergeben werden.
Im Folgenden ist schrittweise beschrieben, wie Sie mittels SAP-Transaktionsrekorder die Transaktion ME5F (Freigabeerinnerung BANF) unter Berücksichtigung der gegebenen Anforderungen aufzeichnen.
Starten Sie im SAP-Frontend den Transaktionsrekorder (Transaktion SHDB). Sie erhalten folgende Ansicht:
Legen Sie eine neue Aufzeichnung an und geben Sie im Feld Aufzeichnung einen beliebigen Namen ein, unter dem Sie die Aufzeichnung speichern möchten. Im Feld Transaktionscode geben Sie den Namen der aufzuzeichnenden Transaktion an:
Starten Sie nun die Aufzeichnung und machen Sie in der folgenden Maske die erforderlichen Angaben. Als Bestellanforderungsnummern geben Sie die Nummern 1001–1010 als Einzelwerte an. Navigieren Sie im Dialog mit der Bild nach unten-Taste, um nicht funktionierenden OK-Code im ABAP-Batch-Skript mittels vertikaler Bildlaufleiste zu vermeiden.
Geben Sie im Feld Freigabecode den Wert KY und im Feld Freigabegruppe den Wert 01 ein. Übernehmen Sie Ihre Eingaben mit der Taste F8. Ihre Transaktion sieht nun folgendermaßen aus:
Führen Sie nun durch erneutes Betätigen der Taste F8 die Transaktion mit den angegebenen Werten aus und lassen Sie sich die entsprechenden Bestellanforderungen im ABAP-Batch-Skript-Format anzeigen:
Anstatt die Werte direkt aus dem SAP-Frontend zu übernehmen, können Sie das Skript auch mittels Umsch+F8 als DAT-Datei exportieren und sich den Inhalt mit eingeblendeten Zeilennummern im Editor anzeigen lassen:
Die erste Zeile des Batch-Input-Skripts entspricht dem Transaktionsaufruf. Ignorieren Sie diese Zeile zusammen mit den Zeilen 41-48, da es sich um Eingabewiederholungen aus den Zeilen 5-11 bzw. wie in Zeile 46 um einen automatischen Übertrag der unteren Grenze aus dem Mehrfachselektionsdialog handelt. Auch die Zeilen mit den Feldnamen BDC_SUBSCR (bspw. Zeile 14) sind in der anschließenden Erstellung der XML-Transaktionskonfiguration zu ignorieren.
Die Angaben aller anderen Zeilen übertragen Sie gemäß folgender Matrix in das XML-Format der batchinputline-Elemente.
Spaltenname im |
DAT-Datei |
XML-Attribut |
Programm |
2, 12, 25, 38 |
program |
Dynpro |
2, 12, 25, 38 |
dynpro |
Startkennzeichen |
2, 12, 25, 38 |
dynprobegin |
Feldname |
z. B. 3-11 (1. Maske) |
fieldname |
Feldwert |
z. B. 3-11 (1. Maske) |
fieldvalue |
Felder ohne Wert brauchen Sie nicht anzugeben, da dies dem Vorgabewert entspricht.
...
<!-- 1. Bildschirmseite -->
<batchinputline program="RM06BF00" dynpro="1000"
dynprobegin="X"/>
<batchinputline fieldname="BDC_CURSOR"
fieldvalue="S_FRGGR-LOW"/>
<batchinputline fieldname="BDC_OKCODE"
fieldvalue="=%005"/>
<batchinputline fieldname="P_FRGAB" fieldvalue="KY" />
<batchinputline fieldname="S_FRGGR-LOW" fieldvalue="01" />
<batchinputline fieldname="P_FRGVO" fieldvalue="X" />
<batchinputline fieldname="P_SELGS" fieldvalue="X" />
<batchinputline fieldname="P_SELPO" fieldvalue="X" />
<batchinputline fieldname="P_LSTUB" fieldvalue="A" />
<batchinputline fieldname="P_SRTKZ" fieldvalue="1" />
<!-- 2. Bildschirmseite -->
<batchinputline program="SAPLALDB" dynpro="3000"
dynprobegin="X"/>
<batchinputline fieldname="BDC_OKCODE" fieldvalue="=P+" />
<batchinputline fieldname="BDC_CURSOR"
fieldvalue="RSCSEL-SLOW_I(08)"/>
<batchinputline fieldname="RSCSEL-SLOW_I(01)"
fieldvalue="1001"/>
<batchinputline fieldname="RSCSEL-SLOW_I(02)"
fieldvalue="1002"/>
<batchinputline fieldname="RSCSEL-SLOW_I(03)"
fieldvalue="1003"/>
<batchinputline fieldname="RSCSEL-SLOW_I(04)"
fieldvalue="1004"/>
<batchinputline fieldname="RSCSEL-SLOW_I(05)"
fieldvalue="1005"/>
<batchinputline fieldname="RSCSEL-SLOW_I(06)"
fieldvalue="1006"/>
<batchinputline fieldname="RSCSEL-SLOW_I(07)"
fieldvalue="1007"/>
<batchinputline fieldname="RSCSEL-SLOW_I(08)"
fieldvalue="1008"/>
<batchinputline fieldname="RSCSEL-SLOW_I(09)"
fieldvalue="__________"/>
<!-- 3. Bildschirmseite -->
<batchinputline program="SAPLALDB" dynpro="3000"
dynprobegin="X"/>
<batchinputline fieldname="BDC_OKCODE"
fieldvalue="=ACPT"/>
<batchinputline fieldname="BDC_CURSOR"
fieldvalue="RSCSEL-SLOW_I(03)"/>
<batchinputline fieldname="RSCSEL-SLOW_I(01)"
fieldvalue="1008"/>
<batchinputline fieldname="RSCSEL-SLOW_I(02)"
fieldvalue="1009"/>
<batchinputline fieldname="RSCSEL-SLOW_I(03)"
fieldvalue="1010"/>
<batchinputline fieldname="RSCSEL-SLOW_I(04)"
fieldvalue=""/>
<batchinputline fieldname="RSCSEL-SLOW_I(05)"
fieldvalue=""/>
<batchinputline fieldname="RSCSEL-SLOW_I(06)"
fieldvalue=""/>
<batchinputline fieldname="RSCSEL-SLOW_I(07)"
fieldvalue=""/>
<batchinputline fieldname="RSCSEL-SLOW_I(08)"
fieldvalue=""/>
<batchinputline fieldname="RSCSEL-SLOW_I(09)"
fieldvalue=""/>
<!-- 4. Bildschirmseite -->
<batchinputline program="RM06BF00" dynpro="1000"
dynprobegin="X"/>
<batchinputline fieldname="BDC_OKCODE"
fieldvalue="=ONLI"/>
...
Diese Transaktionskonfiguration würde zwar zusammen mit den Verbindungsdaten aus dem vorhergehenden Beispiel funktionieren, hätte aber zur Folge, dass, ganz gleich welche Prozessinstanzen in der Prozesstypgruppe Bestellanforderungen gewählt sind, stets eine Transaktion zu einer Bestellanforderung mit der Nummer 1001–1010 angezeigt würde.
Um zu jeder gewählten Prozessinstanz die tatsächlich gehörende Bestellanforderung anzeigen zu lassen, ersetzen Sie in der bisher erstellten Konfiguration die beiden Bildschirmseiten der Mehrfachselektion (alle XML-Elemente batchinputline der 2. und 3. Bildschirmseite) durch jeweils ein einziges XML-Element batchinputlist. Hierzu sind folgende Angaben notwendig:
XML-Attribut |
Wert (Beschreibung) |
program |
SAPLALDB (Name des Programmes) |
dynpro |
3000 (Dynpro-Name) |
okcodefieldname |
BDC_OKCODE (Name des Dynpro-Felds, das den OK-Code enthält) |
okcodepagedown |
=P+ (Wert des OK-Codes, um eine Seite nach unten zu blättern) |
okcodeaccept |
=ACPT (Wert des OK-Codes, um die Eingabe in der Mehrfachselektion zu akzeptieren) |
fieldname |
RSCSEL-SLOW_I (Name des Feldes, dem die Werte des PPM-Attributs zugewiesen werden sollen. Das Feld ist ohne die Zeilenindizierung [(01), (02) usw.] anzugeben) |
attributname |
AT_BANF_NUMBER (Interner Bezeichner des PPM-Prozessattributs, dessen Werte der aufgerufenen Transaktion übergeben werden) |
linesperpage |
9 (Anzahl der Eingabezeilen auf jeder Bildschirmseite der Mehrfachselektion) |
Das batchinputlist-Element sieht auf Basis dieser Angaben wie folgt aus:
<batchinputlist program="SAPLALDB" dynpro="3000"
okcodefieldname="BDC_OKCODE" okcodepagedown="=P+"
okcodeaccept="=ACPT" fieldname="RSCSEL-SLOW_I"
attributname="AT_BANF_NUMBER" linesperpage="9" />
Zusammen mit den Verbindungsdaten aus dem Single Select-Beispiel sieht die Transaktionskonfiguration nun wie folgt aus:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE r3transactionconf SYSTEM
"mysaptransaction.dtd">
<r3transactionconf>
<submenu>
<description language="de"
name="SAP-Transaktionen"/>
<description language="en"
name="SAP Transactions"/>
</submenu>
<logoutMenuEntry>
<description language="de"
name="SAP-Verbindung ändern"/>
<description language="en"
name="Change SAP connection"/>
</logoutMenuEntry>
<r3system systemid="sapppm" client="800">
<description language="de"
name="SAP-System 'sapppm' "/>
<description language="en"
name="SAP System 'sapppm' "/>
<locales>
<defaultlocale value="de"/>
<locale value="en"/>
</locales>
<applicationserver appserver="sapppm"
systemnumber="00"/>
</r3system>
<transaction
systemid="sapppm" transactioncode="ME5F"
transactionid="ME5F">
<description language="de"
name="Freigabeerinnerung BANF (ME5F)"/>
<description language="en"
name="Release (approval) reminder:
Purchase Requisitions (ME5F)"/>
<!-- 1. Bildschirmseite -->
<batchinputline program="RM06BF00" dynpro="1000"
dynprobegin="X"/>
<batchinputline fieldname="BDC_CURSOR"
fieldvalue="S_FRGGR-LOW"/>
<batchinputline fieldname="BDC_OKCODE"
fieldvalue="=%005"/>
<batchinputline fieldname="P_FRGAB" fieldvalue="KY" />
<batchinputline fieldname="S_FRGGR-LOW"
fieldvalue="01"/>
<batchinputline fieldname="P_FRGVO" fieldvalue="X" />
<batchinputline fieldname="P_SELGS" fieldvalue="X" />
<batchinputline fieldname="P_SELPO" fieldvalue="X" />
<batchinputline fieldname="P_LSTUB" fieldvalue="A" />
<batchinputline fieldname="P_SRTKZ" fieldvalue="1" />
<!-- Bildschirmseiten der Mehrfachselektion -->
<batchinputlist program="SAPLALDB" dynpro="3000"
okcodefieldname="BDC_OKCODE" okcodepagedown="=P+"
okcodeaccept="=ACPT" fieldname="RSCSEL-SLOW_I"
attributname="AT_BANF_NUMBER" linesperpage="9" />
<!-- 1. Bildschirmseite -->
<batchinputline program="RM06BF00" dynpro="1000"
dynprobegin="X"/>
<batchinputline fieldname="BDC_OKCODE"
fieldvalue="=ONLI"/>
</transaction>
</r3transactionconf>