Batch Input mehrmals ausführen

Getting started ... Alles für einen gelungenen Start.
25 Beiträge • Seite 1 von 2 (current) Nächste
25 Beiträge Seite 1 von 2 (current) Nächste

Batch Input mehrmals ausführen

Beitrag von errorist (ForumUser / 43 / 0 / 1 ) »
Ich habe ein problem mit einer Batch Input Übung, die ich machen soll.
Ich soll alle Daten eines Angebots kopieren und diese als Vorlage für ein neues Angebot nehmen.
Alle Daten habe ich zusammen und bis auf die Konditionen, wird alles richtig angezeigt (über die Langtexte mache ich mir später Gedanken).
Mein Problem ist jedoch nur, dass ich im Table Control Spalten fülle und mit Doppelklick auf die Position (der von mir nicht ausprogrammiert ist, da ich die Standardtransaktin VA21 benutze) in die Positionsdaten verzweigen soll. DOrt sollen die Konditionen gefüllt sein.
Das klappt aber bei einem Angebot mit mehreren Positionen nur für eine Position, d.h.
Ich habe 3 Positionen. AUf eine Klicke ich drauf und verzweige in die Konditionen. Dort stehen dann alle Konditionen (leider nur der letze Datensatz in meiner Tabelle). Gehe ich dann mit dem grünen Peil zurück und verweige in eine andere Position, habe ich keine Daten mehr in diesem Dynpro.
Wie kann ich es erreichen, dass immer die Daten zu der ausgewählten Position geschrieben werden.
SO wie es aussieht, durchläuft das Programm den BDC Input für das Verzweiungsdynpro nur einmal. DAs auch nur mit den Daten der letzten Position.

Danke sehr!

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


Beitrag von TWP (Specialist / 445 / 0 / 1 ) »
die entsprechenden dynpros sollten dann auch für jede position gefüllt werden und nicht nur für die erste.
spielt man eine mappe sichtbar ab und springt dann hin und her mit den offenen funktionstasten kann das den ablauf der dynprofolgen beeinflussen und ggf auch zu fehlverarebitungen führen.
wenn deine mappe erstellt wurde, kannst du über die analysefunktion dir die daten (die du mit deinem progamm erzeugt hast) ansehen. alternativ die mappe abspielen und das ergebnis in der va22/23 betrachten.

thomas

Beitrag von errorist (ForumUser / 43 / 0 / 1 ) »
Danke für deine Antwort.

Ich habe meinen Ausbilder erwischt und er gab mir den Tipp, mir mal die Funktionstaste "Positionieren" anzugucken.
Habe es mir angesehen und mir Gedanken gemacht. Ich kann ja da die Position, die ich haben will auswählen, die dann den Index 1 bekommt. Der OK Code lautet hier POPO habe ich herausgefudnen. Das in einem LOOP verarbeiten. Muss dann nur irgendwie die Postionsnummer immer da reinschreiben.

So zumindest habe ich es mir gedacht. Inwieweit das richtig und realisierbar is, weiss ich nicht.

Beitrag von TWP (Specialist / 445 / 0 / 1 ) »
irgendwie habe ich wahrscheinlich was falsch verstanden. du willst die va21 per bi-mappe befüllen oder?

kleiner tipp, zeichne die transaktion mit der sm35 auf und dort siehst du als ergebnis wie so eine bi-mappe aussieht. auf dieser basis kannst du dann deine mappe erzeugen.

thomas

Beitrag von errorist (ForumUser / 43 / 0 / 1 ) »
Genau. Über die VA21 ein neues Angebot anlegen, auf Basis einer Kopiervorlage

Das habe ich schon gemacht. Auf dieser Basis habe ich dann meine Transaktion geschrieben.
Leider sieht man in der Mappe aber nicht, was genauch gemacht wird, wenn ich mir die Konditionen von 2 unterschiedlichen Konditionen anzeigen lassen will. Ich kann immer nur für eine Kondiion (die ich als erstes anklicke), die Konditionen schreiben.

Beitrag von TWP (Specialist / 445 / 0 / 1 ) »
Wieso willst du dir die Konditionen in einer BI-Mappe anzeigen lassen?
Du willst doch eigentlich einen neuen Auftrag anlegen.

Folgende vogehensweise würde Sinn machen:

1) SM35 Transaktion VA21 mit 2 Positionen auszeichnen
2) Programm schreiben und die einzelenen Dynpros so befüllen, wie du sie in der Aufzeichnung siehst

3) nach dem Programmlauf in der SM35 die Mappe analysieren und die Feldlsiten vergleichen bzw. mal drüber schauen

4) wenn alle IO ist, die Mappe einspielen
5) wenn keine Fehler da sind, das Ergebnis in der VA23 bewundern

Thomas

Beitrag von errorist (ForumUser / 43 / 0 / 1 ) »
Frag mich bitte nicht, warum ich das machen soll.
Der Grund, den man mir gesagt hat, warum ich das machen soll, is der Belegfluss. SAP Standard bietet ja die Möglichkeit, es schon zu machen und die Kopierfunktionen sind im Customizing einstellbar, so dass auch der Belegfluss nicht mitkopiert wird. Auf meine Frage, warum wir das nicht mit Boardmitteln lösen, habe ich keine Antwort bekommen. Die Konditionen sollen mitkopiert werden, weil es bei unseren Kunden oft vorkommt, dass sie ein Standardangebot bekommen, mit den gleichen Konditionen. Nur die Positionen variieren. Also sollen die Konditionen mitkopiert werden.
Die Userin, die das haben will, ist wohl was schreibfaul .:)

So sieht meine Mappe aus

Code: Alles auswählen.

SAPMV45A	5003	X		
	0000		BDC_OKCODE	/00
	0000		BDC_SUBSCR	SAPMV45A                                4013SUBSCREEN_HEADER
	0000		BDC_SUBSCR	SAPLV69A                                6201SUBSCREEN_BODY
	0000		BDC_CURSOR	KOMV-KBETR(06)
	0000		KOMV-KSCHL(06)	zprg
	0000		KOMV-KBETR(06)	              99
SAPMV45A	5003	X		
	0000		BDC_OKCODE	/EBACK
	0000		BDC_SUBSCR	SAPMV45A                                4013SUBSCREEN_HEADER
	0000		BDC_SUBSCR	SAPLV69A                                6201SUBSCREEN_BODY
	0000		BDC_CURSOR	KOMV-KSCHL(07)
SAPMV45A	4001	X		
	0000		BDC_OKCODE	=ITEM
	0000		BDC_SUBSCR	SAPMV45A                                4021SUBSCREEN_HEADER
	0000		VBKD-BSTKD	tghj
	0000		VBKD-BSTDK	25.06.2008
	0000		BDC_SUBSCR	SAPMV45A                                4701PART-SUB
	0000		KUAGV-KUNNR	165
	0000		KUWEV-KUNNR	165
	0000		BDC_SUBSCR	SAPMV45A                                4411SUBSCREEN_BODY
	0000		VBAK-ANGDT	25.06.2008
	0000		VBAK-BNDDT	30.06.2008
	0000		RV45A-KPRGBZ	T
	0000		RV45A-KETDAT	25.06.2008
	0000		BDC_SUBSCR	SAPMV45A                                4912SUBSCREEN_TC
	0000		BDC_CURSOR	RV45A-MABNR(02)
	0000		BDC_SUBSCR	SAPMV45A                                4050SUBSCREEN_BUTTONS
SAPMV45A	5003	X		
	0000		BDC_OKCODE	/00
	0000		BDC_SUBSCR	SAPMV45A                                4013SUBSCREEN_HEADER
	0000		BDC_SUBSCR	SAPLV69A                                6201SUBSCREEN_BODY
	0000		BDC_CURSOR	KOMV-KBETR(06)
	0000		KOMV-KSCHL(06)	zprg
	0000		KOMV-KBETR(06)	             500
SAPMV45A	5003	X		
	0000		BDC_OKCODE	/EBACK
	0000		BDC_SUBSCR	SAPMV45A                                4013SUBSCREEN_HEADER
	0000		BDC_SUBSCR	SAPLV69A                                6201SUBSCREEN_BODY
	0000		BDC_CURSOR	KOMV-KSCHL(07)
In der VA23 sieht dann alles wunderbar aus.

So rufe ich das in meinem Programm auf

Code: Alles auswählen.

  LOOP AT it_konv INTO wa_konv.
* Ruft das Dynpro 5003 auf und schreibt die Konditionen
* Konditionswert und zugehöriger Nettowert werden in Zeile 14 des Tabel
* Controls geschrieben, da die dort eingefügte Zeile automatisch vom
* System in die erste Zeile gesetzt wird.
    PERFORM bdc_dynpro USING 'SAPMV45A' '5003'.
    PERFORM bdc_field USING 'KOMV-KSCHL(14)' " Konditionsart
                            wa_konv-kschl.
* Schreibt den Konditionsbetrag für die Position
    WRITE wa_konv-kbetr TO l_nettobetrag.
    PERFORM bdc_field USING 'KOMV-KBETR(14)' " Nettowert
                            l_nettobetrag.
    PERFORM bdc_field USING 'BDC_OKCODE'
                              '/00'.
  ENDLOOP.
Mir wird aber nur eine Kondition angeziegt und nur eine abgespeichert.
Was mache ich falsch?

Beitrag von ewx (Top Expert / 4784 / 294 / 628 ) »
sollst du nun Batchinput üben oder sollst du euer Problem lösen?
Bei zweiterem würde ich vorschlagen, dass du eine BAPI-Übung daraus machst und das Angebot mit BAPI_QUOTATION_CREATEFROMDATA2 anlegst...

Beitrag von errorist (ForumUser / 43 / 0 / 1 ) »
Man hat mir gesagt, ich soll das Problem lösen und brauche dafür Batch input.
Von einem BAPI war nie die Rede. Aber ich werde es mir mal angucken.

Beitrag von errorist (ForumUser / 43 / 0 / 1 ) »
Ich habe mir jetzt über die Se37 das BAPI mal angeguckt und mir die Doku dazu durchgelesen.
Mit BAPIS bin ich nochn ie wirklich in Berührung gekommen, hbae nur etwas dazu gehört.
Daher erschliess sich mir im Moment noch nicht, wie ich das verwende etc.

BAPI

Beitrag von ewx (Top Expert / 4784 / 294 / 628 ) »
Der BAPI ist ein Funktionsbaustein, den du vorab mit den benötigten Werten fütterst. Du musst dich - im Gegensatz zum BI - nicht darum kümmern, wie und wohin die Werte kommen. Das macht dann der BAPI.
Ich weiss nicht, wie es für die Angebote ist, aber für die Kundenaufträge gibt es auch einen BAPI_GETDETAIL, der die Werte aus einem Kundenauftrag liest. Die können dann an den BAPI_CREATE weitergegeben werden.

Ich würde mich auf jeden Fall mit dem BAPI mal auseinandersetzen. Gerade bei komplexen Transaktionen kann dir immer mal wieder eine abweichende Bildsteuerung oder ein Popup den mühsam programmierten BI zerschiessen.

Beitrag von errorist (ForumUser / 43 / 0 / 1 ) »
Finde bei uns im System auch keine Verwendungsnachweis etc, an dem ich mir das aml anguckenkönnte. Leider sind alle Entwickler im Moment ausser Haus, so dass ich keinen Fragen kann.
Werde mich aber da durch beissen. Wäre ja gelacht.
Meine Aufgabe liegt seit 2 Jahren rum, da kommt es jetzt auf ein paar Tage mehr oder weniger nicht an.

Auf jeden Fall vielen Dank für deine guten Antworten und deine Mühe!

Beitrag von ewx (Top Expert / 4784 / 294 / 628 ) »
errorist hat geschrieben:Finde bei uns im System auch keine Verwendungsnachweis etc, an dem ich mir das aml anguckenkönnte. Leider sind alle Entwickler im Moment ausser Haus, so dass ich keinen Fragen kann.
Werde mich aber da durch beissen. Wäre ja gelacht.
So ist's richtig!! :D Das ist doch mal ne ordentliche Einstellung. Nach den ersten zwei Sätzen hatte ich schon mit "naja. Denn mach ich mal den BI weiter, der ist ja eh schon fast fertig..." gerechnet... :lol:
errorist hat geschrieben:Meine Aufgabe liegt seit 2 Jahren rum, da kommt es jetzt auf ein paar Tage mehr oder weniger nicht an.

Auf jeden Fall vielen Dank für deine guten Antworten und deine Mühe!
Gern geschehen!
Mach doch mal einen Verwendungsnachweis über BAPI_SALESORDER_CREATEFROMDAT2. Das ist im Grunde das gleiche in grün. Nur das hier eben ein Kundenauftrag angelegt wird. Für ein erstes Erfolgserlebnis brauchst du eigentlich nur eine Auftragsart, Vertriebsbereich und Kundenummer...

Beitrag von errorist (ForumUser / 43 / 0 / 1 ) »
Irgenwie muss ich es ja lernen und will mir nicht alles von jedem vorkauen lassen. War in meinem alten Job auch nicht anders.

Habe ich gemacht, aber er meckert immer rum, wenn ich was bei Verkaufsbelegart eingebe. Dakommt immer die Meldung "Verkaufsbelegart ist nicht vorgesehen. ID V1.

Beitrag von ewx (Top Expert / 4784 / 294 / 628 ) »
such dir einen vorhandenen Auftrag aus der VBAK raus. Vertriebsbelegtyp muss "C" sein. Denn kannst du den in der VA03 anschauen und mit VA01 erneut anlegen. Wenn's klappt, nimmst du die Daten für den BAPI.

Vergleichbare Themen

7
Antw.
7613
Views
HR: Batch-Input Mappe erstellen, Maßnahme ausführen
von sgevolker » 15.05.2006 18:19 • Verfasst in ABAP® Core
5
Antw.
2102
Views
Batch Datei ausführen im Backend
von Adrian » 28.10.2013 16:24 • Verfasst in ABAP® für Anfänger
6
Antw.
5551
Views
Ausführen einer batch-Datei auf einem NON-SAP System
von mettes » 21.01.2013 22:46 • Verfasst in Basis
6
Antw.
21233
Views
Batch Input
von Mamba » 30.05.2005 09:40 • Verfasst in ABAP® für Anfänger
1
Antw.
474
Views
Batch-Input
von dkast » 15.12.2020 14:43 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

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.