Ich habe einen BatchInput erstellt, welcher in meinem Loop der itab gefüllt wird. Anschliessend wird eine Mappe erstellt.
Das funktioniert bis dahin wunderbar.
Spiele ich nun die Mappe ab wird nur ein Record verbucht (die itab hat aber 1000 Einträge, welche alle effektiv dem BatchInput übergeben wurde).
Dabei habe ich eine Fehlermeldung erhalten, welche besagt, dass ein Feld auf Dynpro YX nicht gefüllt/berücksichtigt wird.
Wenn ich nur den Feldnamen habe, wie kann ich dan herausfinden welches Feld auf dem Dynpro gemeint ist? Gibts da irgendwelche Unterstüzungen?
Faszination ist die Mischung aus Bewunderung und Unvorstellbarkeit eines Ereignisses
Hallo Tschess,
nimm Dir doch mal die Daten des Satzes, bei welchem die Meldung kommt und spiel die Geschichte mal im Dialog durch. Wahrscheinlich wird durch irgeneine Eingabe in ein Feld ein Folgedynpro aufgeblendet, an das Du bei der Erstellung des ABAP's nicht gedach hast, oder welches beim Recording nicht angesprochen wurde
Blöde frage - Wie kann ich das im Dialog abspielen? Oder meinst du die Mappe im Vordergrund abspielen lassen? Bin nicht wirklich aus der SAP Welt und kenne mich nur dürftig mit den Hilfsmitteln aus.
Faszination ist die Mischung aus Bewunderung und Unvorstellbarkeit eines Ereignisses
Hallo Tschess,
genau. Spiele die Mappe sichtbar ab und nicht nur Fehler anzeigen. Du hast ja während des BI beim Abspielen die Möglichkeit, wie auch im Dialog Daten zu ändern. Allerdings änderst Du dann auch die Dynpro-Folge. Ich nehme an, Du bewegst Dich noch im Testsystem
Noch eins, falls Du es nicht bereits schon gemacht hast (Fremder in der SAP-Welt). Klick die MAppe an und geh mal auf Analyse. Dort siehst Du, welche Daten beim Abspielen zum Fehler geführt haben. Dann kannst Du auch in einem normalen Dialog das Ganze mal durchspielen.
Oft liefert auch das Protokoll zum Abspielen tolle Fehlerhinweise
Ja im Test und Q System, da im Testsystem zu wenig Daten vorhanden sind.
Ich habe die Mappe nun im Vordergrund abspielen lassen. Dabei erhalte ich die selbe Fehlermeldung: "Batchinput-Daten für Dynpro SAPDF05X 3100 sind nicht vorhanden."
Ich weiss nun nicht welches das Feld SAPDF05X ist
Habe mit dem FastInput nochmals die Transaktion aufgenommen
die einzige Zuweisung für dieses Feld ist
BDC_SUBSCR = SAPDF05X
Diese Anweisung hab ich in meinem Batch Input.
Aber hab gerade gelesen, dass BDC_SUBSCR die Fehlermeldung ist.
Kann es auch an der Transaktion liegen, dass diese nicht BatchInput fähig ist?
Faszination ist die Mischung aus Bewunderung und Unvorstellbarkeit eines Ereignisses
das Abspielen der Mappe im Dialog führt Dich natürlich zum Dynpro / Feld.
Es geht aber auch ohne Abspielen.
In der SM35 die Mappe markieren und Button ?Analyse? (oder Doppelklick).
Doppelklick auf die fehlerhafte Transaktion (oder Reiter ?Dynpros? auswählen) , Button ?Feldliste?. Jetzt siehst Du alle Felder, die Du per Programm in die Mappe geschrieben hast. Wenn Dir der Feldname nichts sagt, dann wirst Du ihn über Dein Programm identifizieren können.
Übrigens in der Übersicht der SM35 gibt es im rechten Teil die Spalten ?Summe Transaktionen?, ?Fehlerhafte Transaktionen? und ?Verarbeitete Transaktionen?. Dort siehst Du sofort, wie viele Transaktionen durch Dein Programm in die Mappe geschrieben wurden.
Tschess hat geschrieben:Kann es auch an der Transaktion liegen, dass diese nicht BatchInput fähig ist?
Wenn es so eine "Happy-Enjoy"-Transaktion mit splitscreen ist, dann ist das gut möglich.
Wenn du die Transaktion mit dem Recorder (SHDB) aufzeichnest und dann auch abspielen kannst, sollte es aber funktionieren.
Das komische ist, wenn ich die Mappe im Vordergrund abspiele, erscheint die Fehlermeldung und es geht nicht weiter.
Spiele ich die Mappe im Hintergrund ab, hat die Mappe den Status erfolgreich abgespielt. Gehe ich dann auf die Analyse, sehe ich, dass von 12 Dynpros nur eins abgespielt wurde.
Aber ich werde nun das mit der Feldliste unter die Lupe nehmen, dann komme ich vielleicht weiter.
Habe gerade noch einen Tip erhalten, dass bei dieser Transaktion die Customizin g Einstellungen des Users auswirkungen auf den korrekten Ablauf haben können. Werde auch dies genauer anschauen.
Danke erstmals für Eure Hilfe
Gruss Tschess
Faszination ist die Mischung aus Bewunderung und Unvorstellbarkeit eines Ereignisses
Mit dem FastInput konnte ich die Transaktion aufzeichnen und das abspielen "funktioniert" für einen Record.. nicht aber für den ganzen Inhalt der Itab/BatchInput.
Der kapiert einfach nicht, dass er nach der ersten Buchung wider von Vorne beginnen muss.
Faszination ist die Mischung aus Bewunderung und Unvorstellbarkeit eines Ereignisses
Wie kannst Du die Anzahl verarbeiteter Dynpros sehen? Es gibt nur verarbeitete Transaktionen.
Prüfe auch nochmal, ob Du in Deinem Programm bei den options die Bildschirmgröße mitgibst bzw. diese beim Abspielen anders gewählt hast. Dadurch könnte es zwischen Dialog und Hintergrund zu unterschiedlichen Ergebnissen kommen.
Vielleicht interpretiere ich das auch falsch, aber ich sehe, dass eine Transaktion abgepsielt wurde. Ich habe in dieser Mappe 8 Dynpros. Ich weiss dass in einer Transaktion vier Dynpros abgespielt werden. Somit siehts für mich aus, dass der zweite Record nicht abgespielt wurde.
Habe mich mal durch die Analyse geschaut, aber irgendwie werde ich daraus auch nicht schlauer in der Analyse sehe ich ebenfalls nur diese Fehlermeldung.
Faszination ist die Mischung aus Bewunderung und Unvorstellbarkeit eines Ereignisses
schick doch mal Hardcopies von der Analyse und das Coding, vielleicht kann man da mehr erkennen.
Sorry, das mit der Bildschirmgröße war nicht relevant, ich dachte, Du machst Call Transaction + Batch Input, aber Du hast ja nur von Batch Input geschrieben.
Enjoy-Transaktionen sind im wesentlichen Einbildtransaktionen, wo der Bildschirm in mehrere subscreens unterteilt ist. Man kann dann in einem Bild (ggf. über mehrere Reiter) alle Kopf- und Positionsdaten erfassen (z.B. FB50, MIGO, CJ20N). Bei "älteren" Transaktionen ist es eher üblich, dass es ein Einstiegsdynpro für die Kopfdaten gibt, dann ein Dynpro für Positionsdaten und möglicherweise weiteres Dynpros für Detaildaten o.ä.