Batch Input Mappe "speichern"

Getting started ... Alles für einen gelungenen Start.
11 Beiträge • Seite 1 von 1
11 Beiträge Seite 1 von 1

Batch Input Mappe "speichern"

Beitrag von pinguinmann (ForumUser / 5 / 2 / 0 ) »
Hallo zusammen,

ich habe folgendes Problem:
Ich habe mit dem BI-Recorder eine Batch Input Sequenz aufgenommen, diese angepasst und daraus einen Funktionsbaustein erstellen lassen. Dieser funktioniert soweit auch ganz gut.

Wird nun jedoch ein ungültiger Parameter an den FB übertragen, dann wirft dieser einen Fehler sy-subrc=1001. Ich weiß, dass und wie ich mir die Fehlermeldung auslesen kann. Jedoch möchte ich auch, dass die im FB generierte BI-Mappe bei einem Fehler so "abgespeichert" wird, dass ich diese in der SM35 angezeigt bekomme und dort nochmal abspielen kann.

Wie kann ich dieses abspeichern realisieren?


Anbei noch der Code des FB:

Code: Alles auswählen.

FUNCTION Y_S_HER_ZSB6_BI.
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*"  IMPORTING
*"     VALUE(CTU) LIKE  APQI-PUTACTIVE DEFAULT 'X'
*"     VALUE(MODE) LIKE  APQI-PUTACTIVE DEFAULT 'N'
*"     VALUE(UPDATE) LIKE  APQI-PUTACTIVE DEFAULT 'L'
*"     VALUE(GROUP) LIKE  APQI-GROUPID OPTIONAL
*"     VALUE(USER) LIKE  APQI-USERID OPTIONAL
*"     VALUE(KEEP) LIKE  APQI-QERASE OPTIONAL
*"     VALUE(HOLDDATE) LIKE  APQI-STARTDATE OPTIONAL
*"     VALUE(NODATA) LIKE  APQI-PUTACTIVE DEFAULT '/'
*"     VALUE(BELEGEINH) TYPE  STRING
*"     VALUE(DRUCKDAT) TYPE  STRING
*"  EXPORTING
*"     VALUE(SUBRC) LIKE  SYST-SUBRC
*"  TABLES
*"      MESSTAB STRUCTURE  BDCMSGCOLL OPTIONAL
*"----------------------------------------------------------------------

subrc = 0.

perform bdc_nodata      using NODATA.

perform open_group      using GROUP USER KEEP HOLDDATE CTU.

perform bdc_dynpro      using 'SAPMZBUB1' '0100'.
perform bdc_field       using 'BDC_OKCODE'
                              '=ENTER'.
perform bdc_field       using 'SCR_UR_BELEINH'
                              BELEGEINH.
perform bdc_dynpro      using 'SAPMZBUB1' '0100'.
perform bdc_field       using 'BDC_OKCODE'
                              '/ESAVE'.
perform bdc_field       using 'ZBUCHPLAN-DRUCKREIFDAT'
                              DRUCKDAT.
perform bdc_transaction tables messtab
using                         'ZSB6'
                              CTU
                              MODE
                              UPDATE.
if sy-subrc <> 0.
  subrc = sy-subrc.
  exit.
endif.

perform close_group using     CTU.





ENDFUNCTION.
INCLUDE BDCRECXY .

edit:// Selbst wenn ich KEEP='X' beim Aufruf setze, wird keine BI-Mappe in der SM35 sichtbar.

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


Re: Batch Input Mappe "speichern"

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
Welche Art von Batch-Input Mappe erwartest Du denn, wenn der Aufruf schon falsch ist?

Ich nehmen an, dass der FuBa gar nicht processiert wird und daher kann auch keine Mappe erstellt werden.

Fehlerhafte Mappen enthalten fehlerhafte Eintraege in den jeweiligen Dialogscreens.
Es geht hier aber um die Uebergabeparameter an den FuBa.

Du musst halt sicherstellen, dass alle Uebergabewerte fuer den Fuba korrekt sind, bevor Du den FuBa aufrufst.

Re: Batch Input Mappe "speichern"

Beitrag von pinguinmann (ForumUser / 5 / 2 / 0 ) »
Ok, dann habe ich mich vielleicht unklar ausgedrückt. Der Übergabeparameter wird vom FuBa angenommen. Nehmen wir als konkretes Beispiel mal den Parameter druckdat. Gibt dort jemand "31.06.2013" an, dann ist das Formal richtig. Es ist ein string. Der FuBa läuft. Jedoch gibt es im Juni nur 30 Tage und in der Transaktion wird das beim Speichern bemängelt. Die Batchinputmappe wirft einen Fehler. Jetzt kann ich jedoch nur die Fehlermeldung aus der messtab ( BDCMSGCOLL ) auslesen.

Ich hätte aber gerne, dass die Mappe auch als fehlerhafte Mappe in der SM35 sichtbar ist.

Re: Batch Input Mappe "speichern"

Beitrag von Ratazong (Specialist / 144 / 1 / 14 ) »
Vielleicht hilft der Baustein BDC_OBJECT_CREATE weiter.

MfG

Rata
Normale Menschen wundern sich, warum in der Welt so viel schief läuft.
Programmierer wundern sich, warum alles so gut funktioniert.

Re: Batch Input Mappe "speichern"

Beitrag von black_adept (Top Expert / 4159 / 136 / 960 ) »
Wenn ich "MESSTAB" lese gehe ich davon aus, dass es sich um eine Onlineverbuchung handelt. Somit existiert keine Mappe die du speichern könntest oder mit "KEEP" halten könntest ( wobei m.E. fehlerhafte Mappen sowieso immer gehalten werden ).
Was du machen könntest wäre den FuBa im Fehlerfall ein 2. Mal aufzurufen und die Parameter so zu setzen, dass eine Mappe erstellt wird statt Onlineverbuchung.

Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
pinguinmann

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Batch Input Mappe "speichern"

Beitrag von pinguinmann (ForumUser / 5 / 2 / 0 ) »
Wenn "Onlineverbuchung" heißt, dass ich die direkt ausführe, ohne Session, dann mach ich das so.
Ich würde gerne den Ansatz über den FuBa BDC_OBJECT_CREATE gehen, der hier auch genannt wurde. Dazu müsste ich jedoch an die Tabelle/BI-Mappe kommen, die ich erstelle. Diese steht in BDCDATA welche wiederum in dem DATA:-Block des includes definiert ist.
Jedoch kann ich aus meinem Funktionsbaustein aus nicht auf die BDCDATA zugreifen. Das ist ja alles durch Funktionen wie bdc_field, bdc_dynpro, etc. gekapselt.

tritt nun aber ein Fehler auf und ich bekomme sy-subrc=1001, dann möchte ich in dem Zuge den BDC_OBJECT_CREATE aufrufen. Also brauch ich an der Stelle irgendwie Zugriff auf die Daten aus BDCDATA (aus dem include). Wie komme ich da am besten dran?

Re: Batch Input Mappe "speichern"

Beitrag von black_adept (Top Expert / 4159 / 136 / 960 ) »
Schön dass du zumindest den 1. Teil meines vorherigen Postings gelesen hast. Aber lies dir doch bitte den gesamten Post durch dann hast du deine Lösung.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Batch Input Mappe "speichern"

Beitrag von pinguinmann (ForumUser / 5 / 2 / 0 ) »
Hallo Stefan,

entgegen deiner Einschätzung habe ich deinen ganzen Post gelesen. Jedoch hat sich mir der zweite Teil nicht ganz erschlossen. Bezogen auf diesen Artikel http://help.sap.com/saphelp_40b/helpdat ... ontent.htm gehe ich davon aus, dass ich beim zweiten Aufruf des FuBa dann statt CALL TRANSACTION die in dem Artikel als "Standmethode" bezeichnete Variante verwenden soll. Doch wie genau sieht denn jetzt diese Standardmethode aus.

Entschuldige die vielen Fragen, aber was ABAP angeht bin ich noch blutiger Anfänger.

Re: Batch Input Mappe "speichern"

Beitrag von JHM (Top Expert / 1225 / 2 / 204 ) »
pinguinmann hat geschrieben:Doch wie genau sieht denn jetzt diese Standardmethode aus.
1. Aufruf mit CTU = space => direkts Ausführen mittels CALL TRANSACTION
2. Aufruf mit CTU = X, wenn erster Aufruf mittels Fehler beendet => erzeugen BI-Mappe (weitere Parameter für die Mappenerstellung wie GROUP; USER; KEEP, HOLDDATE mit übergeben)
Gruß Hendrik

Re: Batch Input Mappe "speichern"

Beitrag von black_adept (Top Expert / 4159 / 136 / 960 ) »
JHM hat geschrieben:1. Aufruf mit CTU = space => direkts Ausführen mittels CALL TRANSACTION
2. Aufruf mit CTU = X, wenn erster Aufruf mittels Fehler beendet => erzeugen BI-Mappe (weitere Parameter für die Mappenerstellung wie GROUP; USER; KEEP, HOLDDATE mit übergeben)
Genau umgekehrt: X (Default) = CT, space = BI

Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
pinguinmann

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Batch Input Mappe "speichern"

Beitrag von pinguinmann (ForumUser / 5 / 2 / 0 ) »
Hat ein bisschen gedauert, aber ich habe das jetzt hinbekommen. Über das CTU-Flag und das erneute Aufrufen des FuBa, so wie black_adept es gesagt hat. Besten Dank für die Unterstützung und eure Geduld.

Seite 1 von 1

Vergleichbare Themen

17
Antw.
5343
Views
BATCH INPUT MAPPE
von Juri » 22.04.2021 16:32 • Verfasst in ABAP® für Anfänger
4
Antw.
5015
Views
Batch Input Mappe
von RantanplanFX » 13.02.2014 13:00 • Verfasst in ABAP® für Anfänger
4
Antw.
2936
Views
Batch Input Mappe Problem
von Nox » 10.03.2021 11:42 • Verfasst in ABAP® für Anfänger
1
Antw.
3195
Views
Batch Input Mappe mit Report erzeugen
von Alexity » 09.08.2019 11:39 • Verfasst in ABAP® für Anfänger
4
Antw.
5652
Views
kann Batch Input Mappe nicht löschen
von LittleT » 04.10.2007 07:14 • Verfasst in Basis

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.