Fakturierungsplan in Kontrakten ändern

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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

Fakturierungsplan in Kontrakten ändern

Beitrag von DanielFulda (ForumUser / 12 / 1 / 4 ) »
Hallo,

ich möchte mittels Funktionbaustein innerhalb von Kontrakten die Fakturaplanart ändern.
Wichtig hierbei: Nicht die von den Positionen sondern von den Kopfdaten. (siehe Link mit Bild)
https://imgur.com/a/TyUAYxQ

Also prinzipiell: Aufruf von VA42 -> Springen -> Kopfdaten -> Fakturierungsplan ( Dann Fakturierungsplanart)
Um ganz genau zu sein geht es um das Feld FPLA-PERIO

Die Idee war:

SD_SALES_DOCUMENT_READ

SD_SALES_BILLINGPLAN_READ

BILLING_SCHEDULE_SAVE

Allerdings funktioniert dieser Weg nicht.

Auf wenn ich noch

SD_SALES_DOCUMENT_SAVE / "transaction_commit" anhänge.

Die Parameter werden alle vernünftig übergeben und eingelesen. Es kommt aber
weder zum Programmabbruch noch sonst irgendwas.

Habe mir dann ein BatchInput erstellt, die Transaktion aufgezeichnet und
aus der Aufzeichnung einen Funktionsbaustein erzeugt. Dieser funktioniert
wenn ich ihn separiert aufrufe.

1. Frage: Gibt es ein empfohlenen Weg für solch eine Änderung?
Gibt es irgendein Anhaltspunkt, warum der Weg via Funktionsbausteine nicht funktionieren könnte?

2. Frage: Wie könnte ich mein Batchinput Funktionsbaustein vernünftig innerhalb des Programms aufrufen?
Problem: ich muss nach Ausfürhung des Funktionsbaustein immer noch F8 betätigen, damit die
Transaktion auch durchgeführt wird. Dachte dies lässt sich durch den Aufruf von Transaction_commit lösen.

Rufe ich diesen innerhalb meines Programms auf passiert nichts. Kann man hier bestimmte Parameter setzen?

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


Re: Fakturierungsplan in Kontrakten ändern

Beitrag von DeathAndPain (Top Expert / 1944 / 257 / 413 ) »
Zunächst kurz zu deinem Screenshot: Bei imgur muss man ja Javascript aktivieren, um nur das Bild zu Gesicht zu bekommen! Nimm nächstes Mal lieber https://de.imgbb.com/. Da bekommste direkt einen BBCode, den Du hier pasten kannst, und dann erscheint das Bild sogar ohne Link direkt in Deinem Text.

Inhaltlich bin ich Deinem Modul zwar recht fern, aber ein eigener Batch Input ist immer eine gute Idee, wenn die Standard-SAP-Funktionsbausteine aus welchen Gründen auch immer nicht zum Ziel führen. Deine Bemerkungen dazu klingen für mich so, als ob Dir nur die Übung fehlt, wie man selber einen programmiert. Ich würde nicht direkt aus der Aufzeichnung einen Funktionsbaustein erzeugen, der dann doch wieder nicht richtig das macht, was Du haben möchtest, sondern die Aufzeichnung nur als Vorlage nehmen und den Code in Dein eigenes Programm übernehmen. Dort steht es Dir dann frei, ob Du es eigenständig in eine Form, eine Methode, einen Funktionsbaustein oder was auch immer kapseln möchtest.

Grundsätzliche Vorgehensweise:

o Transaktion SHDB: Zeichne die von Dir benötigten Schritte unter Verwendung von Beispielwerten auf. Setze dabei am besten "Verbuchungsmodus = synchron" und "Hintergrundmodus simulieren".

Sichere die Aufzeichnung und kehre in den Startbildschirm der SHDB zurück. Dort klickst Du in der Drucktastenleiste auf das Weiße-Blatt-Symbol, neben dem "Programm" steht. Setze im Kasten "Feldinhalte" den Radiobutton "Aus Aufzeichnung übernehmen". Vergib einen temporären Programmnamen und sichere das generierte Programm als "lokales Objekt" (also ohne Transportauftrag). Ich nenne es immer ZXZ, aber das kannste halten wie ein Dachdecker.

Wenn Du Dir jetzt das Programm anschaust, dann findest Du darin alles, was ein Bier braucht. Den kompletten Code für Deine Anpassung. Jetzt musst Du nur noch:

o den Code an eine geeignete Stelle Deines Programms übernehmen
o die Felder im Code, an denen Du Deine Beispielwerte wiedererkennst, durch passende Variablen Deines Programms ersetzen
o ggf. Feldbefehle löschen, die sich auf Felder beziehen, die Du in Deinem Beispieldurchlauf nicht geändert hast und bei denen Du auch nicht willst, dass der Batch Input den Default überschreibt
o den Include BDCRECX1 in Dein Programm übernehmen. Nachteil: dieser Include enthält Selektionsparameter, die Du auf Deinem Selektionsbild wahrscheinlich nicht haben willst (erst recht nicht, wenn Du gar keinen Report, sondern einen dynprogetriebenen Modulpool programmierst). Daher empfehle ich, dass Du Dir eine abgespeckte Kopie des BDCRECX1 als ZDCRECX2 anlegst. Darin brauchst Du aus BCRECX1 nur die Forms OPEN_GROUP, CLOSE_GROUP, BDC_FIELD, BDC_DYNPRO sowie am Anfang die DATA-Befehle:

Code: Alles auswählen.

DATA:   BDCDATA LIKE STANDARD TABLE OF BDCDATA WITH HEADER LINE,
        GROUP(12) TYPE C.
o den PERFORM BDC_TRANSACTION am Ende des erzeugten Programms ersetzen durch einen CALL TRANSACTION transaktionsname WITHOUT AUTHORITY-CHECK USING BDCDATA MODE 'N' UPDATE 'S' MESSAGES INTO ERRTAB. Den Zusatz MESSAGES INTO ERRTAB kannst Du weglassen, wenn Dich etwaige Fehlermeldungen nicht interessieren, ansonsten solltest Du dafür vorher per DATA-Befehl die Tabelle ERRTAB per

Code: Alles auswählen.

DATA ERRTAB TYPE STANDARD TABLE OF BDCMSGCOLL WITH HEADER LINE.
bereitstellen. Das WITHOUT AUTHORITY-CHECK kannste auch weglassen, wenn nur User Dein Programm benutzen sollen, die auch autorisiert wären, die per Batch Input gerufene Standard-Transaktion händisch auszuführen.

Ist ganz einfach, wenn man es mal gemacht hat, und extrem flexibel. Man kann im Batch Input richtig programmieren! :)

Seite 1 von 1

Vergleichbare Themen

0
Antw.
1185
Views
Kreditprüfung bei Fakturierungsplan
von alicemal » 20.11.2006 13:09 • Verfasst in Sales and Distribution
0
Antw.
1408
Views
0
Antw.
3149
Views

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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

Aktuelle Forenbeiträge

Dialog-Container mit Toolbar/Status
vor 11 Stunden von DeathAndPain gelöst 22 / 3070
Daten an Tabelle binden
vor 16 Stunden von Lukas Sanders 2 / 1006
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 577

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.

Aktuelle Forenbeiträge

Dialog-Container mit Toolbar/Status
vor 11 Stunden von DeathAndPain gelöst 22 / 3070
Daten an Tabelle binden
vor 16 Stunden von Lukas Sanders 2 / 1006
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 577

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2586
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9168