Ich habe ein Problem mit dem Abspielen selbst erstellter BI-Mappen. (Code-Ausschnitt siehe unten)
Die Mappen laufen fehlerfrei durch, wenn ich sie in der SM35
- "Sichtbar abspiele" oder
- mit "Nur Fehler anzeigen" abspiele
Auch im Protokoll ist jede einzelne Transaktion fehlerfrei.
- wenn ich die Mappe aber im "
Hintergrund" abspiele, so wird die Mappe fehlerhaft abgeschlossen.
Selbst jede einzelne Transaktion wird als fehlerhaft protokolliert.
Obwohl bei "Hintergrund" fehlerhaft angegeben wurde, sind nach all meinen Tests die Verarbeitung, die die Mappe durchführen soll erfolgreich durchgeführt worden. Warum dann diese Fehlermeldung es ist doch alles OK.
Das Grundgerüst des BI-Erstellungs-Programmes habe ich über den BI-Recorder der SM35 erstellt.
Was macht mein Prohramm ?
Das Programm läuft im SAP mit dem Modul IS/U für Versorgungsindustrie.
Das Programm soll ausgesuchte Ableseaufträge stornieren.
Es ist sichergestellt dass zu jeder zu verarbeitenden Anlage genau 1 Ableseergebnis existiert (also optimale Bedingungen).
Mit der Transaktion EL37 sollen die Ablesungen storniert werden.
Man füllt 4 Eingabewerte.
im Folgedynpro wählt man "alles markieren"
im selben dynpro wählt man dann "Stornieren"
im Folgedynpro wählt man Zurück (F3)
und gelangt dann wieder zum Anfangsbild zurück.
Diese Reihenfolge wurde mit dem Batch-Input-Recorder aufgenommen und ein Programm daraus generiert.
Danach den eigenen Ansprüchen angepasst, bis auf die Mappen-Logik.
Hier der entscheidende Programmteil:
Loop at i_tab
if z_pos_in_mappe = 0.
* neue Mappe
perform open_group.
endif.
perform bdc_dynpro using 'RELEABL6' '1000'.
perform bdc_field using 'BDC_CURSOR' 'RESULT'.
perform bdc_field using 'BDC_OKCODE'
'=ONLI'.
perform bdc_field using 'ANLAGE' i_tab-anlage. " '1930000029'.
perform bdc_field using 'ADATSOLL-LOW' h_BI_Datum_txt.
perform bdc_field using 'ABLESGR' i_tab-ablesgr. " '09'.
perform bdc_field using 'RESULT' ''.
perform bdc_dynpro using 'RELEABL8' '0100'.
perform bdc_field using 'BDC_OKCODE' '=MARK'.
perform bdc_dynpro using 'RELEABL8' '0100'.
perform bdc_field using 'BDC_OKCODE' '=CANC'.
perform bdc_dynpro using 'SAPLSBAL_DISPLAY' '0100'.
perform bdc_field using 'BDC_OKCODE' '=&F03'.
perform bdc_dynpro using 'RELEABL6' '1000'.
perform bdc_field using 'BDC_OKCODE'
'/EE'.
perform bdc_field using 'BDC_CURSOR' 'ABLEINH-LOW'.
perform bdc_transaction using 'EL37'.
Perform Schreibe_Liste.
add 1 to z_pos_in_mappe.
h_letzte_anlage = i_tab-anlage.
if z_pos_in_mappe >= p_bi_anz.
z_pos_in_mappe = 0.
perform close_group.
endif.
add 1 to z_bi.
endloop.
Ich habe auch schon versucht durch deaktivieren einzelner Zeilen das Problem zu beheben. - Misserfolg.
Auch habe ich schon im Debugger versucht nach stellen zu suchen wo "=ONLI" oder "/EE" verarbeitet wird, leider auch ohne erfolg, auch dann wenn ich sy-batch = "X" gesetzt habe.
Woran kann es nun liegen dass im Online-Lauf alles fehlerfrei läuft
und in der Hintergrundverarbeitung Fehlerhaft (aber dennoch im System danach das richtige ergebnis steht)
Vielleicht muss ich anstatt
"=ONLI" einen anderen Variabeleninhalt schreiben, aber ich weiss nicht welchen. "=BTCH" habe ich bereits versucht.
Über Google war nichts hilfreiches zu finnden, da es auch keine passenden Suchbegriffe bei menem Problem gibt
Über eine Antwort würde ich mich sehr freuen.
gre