Skip to Content
0

Wie erstellt man eine Rechnung zu einem Terminauftrag über einen BAPI?

Nov 09, 2016 at 12:51 PM

73

avatar image

Hi!

Terminauftrag + Lieferung (inkl. Kommissionierauftrag und gebuchtem Warenausgang) liegen vor (s. Bild). Nun möchte ich dazu eine Rechnung erzeugen über einen BAPI - aber ich weiß nicht über welchen.

In der SAPGUI würde ich den Terminauftag (TA) selektieren und auf "Beleg anzeigen" klicken, dann aus dem Menü "Verkaufsbeleg" --> "Fakturieren" auswählen, darauf hin würde ich im Dialog der Transaktion VF01 landen und dort auf "Sichern" (Diskette) klicken. Als Ergebnis würde ich unten in der Statusleiste die Meldung "Beleg xxx gesichert" sehen. Damit wäre die Rechnung zum TA erzeugt. Wenn ich mir den Belegfluß zum TA über VA03 nochmal ansehe, sieht er wie folgt aus:

Um dasselbe über einen BAPI zu erreichen werde ich es gleich mit

 BAPI_BILLINGDOC_CREATEFROMDATA

versuchen. Falls ich damit aber völlig auf dem Holzweg sein sollte hoffe ich, dass mich jemand auf den richtigen Pfad bringen kann ;-)

Nice wäre es, wenn man den BAPI mit genauso wenig Eingaben wie oben beschrieben in der SAPGUI füttern müsste - also nur mit dem SALESDOCUMENT (TerminauftragsNr.).

Cheers

Tset

P.S.

Ich nutze Python + PyRFC für den Remote Aufruf von BAPIs.

belegfluss-01.png (25.5 kB)
belegfluss-02.png (30.0 kB)
10 |10000 characters needed characters left characters exceeded

Wenn ich dem BAPI nur DOC_NUMBER in BILLING_DATA_IN übergebe, erhalten ich

'RETURNLOG_OUT': [{'ID': 'VF', 'LOG_MSG_NO': '000000', 'LOG_NO': '', 'MESSAGE': 'Es konnte keine Fakturaart ermittelt werden', 'MESSAGE_V1': '', 'MESSAGE_V2': '', 'MESSAGE_V3': '', 'MESSAGE_V4': '', 'NUMBER': '067', 'TYPE': 'E'}]

Was muss ich noch mitgeben? DOC_TYPE?

0
* Please Login or Register to Answer, Follow or Comment.

1 Answer

Best Answer
Tset Noitamotua Nov 09, 2016 at 01:54 PM
0

Hier die Antwort auf meine eigene Frage:

Nimm BAPI

BAPI_BILLINGDOC_CREATEMULTIPLE

statt "BAPI_BILLINGDOC_CREATEFROMDATA"

Tabelle BILLINGDATAIN (ACHTUNG: nicht BILLING_DATA_IN!) mit

REF_DOCH=TerminauftragsNr. (SALESDOCUMENT)
REF_DOC_CA=C

übergeben.

FERTIG! :)))))

Im Erfolgsfall bekommt man als Belohnung ein

'SUCCESS': [{'BILL_DOC': 'xxxxxxxx'}, .... ]
Show 1 Share
10 |10000 characters needed characters left characters exceeded

Mit "BAPI_BILLINGDOC_CREATEFROMDATA" gehts auch (dann aber mit BILLING_DATA_IN als Tabellennamen). Aber dieser BAPI ist obsolet (veraltet) und sollte wohl nicht mehr verwendet werden.

0