Steuerbetrag manuell mitgeben, BAP_ACC_DOCUMENT_POST

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
3 Beiträge • Seite 1 von 1
3 Beiträge Seite 1 von 1

Steuerbetrag manuell mitgeben, BAP_ACC_DOCUMENT_POST

Beitrag von ERP200644 (ForumUser / 3 / 0 / 0 ) »
Hallo zusammen,

ich möchte mit dem BAP_ACC_DOCUMENT_POST die Steuer manuell buchen, d.h., kein Steuer rechnen. Ich gebe dazu den Bruttobetrag in der Kreditorenzeile an, den Nettobetrag in der Sachkontenzeile. Dazu erzeuge ich zwei Steuerzeilen, einmal für den Kreditor, wo ich dann auch den Steuerbetrag angebe und eine für die Sachkontenzeile. Leider funktioniert das nicht. Kann mir da jemand helfen? Vieleicht fülle ich auch nur die falschen Felder, nur eine vernünftige Doku habe ich nirgends gefunden.

Danke im voraus....

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


Beitrag von MrBojangles (Specialist / 367 / 3 / 30 ) »
Hallo ERP200644,

der FBau BAPI_ACC_DOCUMENT_POST unterstützt nebenbei bemerkt kein 'Steuer rechnen', also um die 'manuelle' Mitgabe der Steuerzeile kommst Du sowieso nicht rum.
Du darfst nicht zwei Steuerzeilen mitgegeben, sondern nur eine und zwar bei der Sachkontenzeile.
Aufrufbeispiel (hier sinds allerdings 2 Sachkontenzeilen):

Code: Alles auswählen.

FUNCTION z_fi_test.
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*"  IMPORTING
*"     VALUE(BUKRS) TYPE  BUKRS
*"     VALUE(GUTNR) TYPE  DZUONR OPTIONAL
*"     VALUE(FILIALE) TYPE  WERKS_D OPTIONAL
*"     VALUE(KOSTL) TYPE  KOSTL OPTIONAL
*"     VALUE(PERSNR) TYPE  PERNR_D OPTIONAL
*"     VALUE(HKONTS) TYPE  HKONT
*"     VALUE(HKONTH) TYPE  HKONT
*"     VALUE(WRBTR) TYPE  WRBTR
*"     VALUE(WAERS) TYPE  WAERS
*"     VALUE(SGTXT) TYPE  SGTXT OPTIONAL
*"  EXPORTING
*"     VALUE(DOCNUM) TYPE  BELNR_D
*"  TABLES
*"      RETURN STRUCTURE  BAPIRET2 OPTIONAL
*"  EXCEPTIONS
*"      TAX_ERROR
*"      ERRORS_OCCURED
*"----------------------------------------------------------------------

* Schnittstellendaten für Verbuchungs-BAPI
  DATA:
    l_documentheader TYPE bapiache09,
    l_obj_type       TYPE bapiache09-obj_type,
    l_obj_key        TYPE bapiache09-obj_key,
    l_obj_sys        TYPE bapiache09-obj_sys,
    l_accountgl      TYPE TABLE OF bapiacgl09 WITH HEADER LINE,
    l_accounttax     TYPE TABLE OF bapiactx09 WITH HEADER LINE,
    l_currencyamount TYPE TABLE OF bapiaccr09 WITH HEADER LINE,
    l_return         TYPE TABLE OF bapiret2.

  DATA:
    l_t001           TYPE t001,
    l_itemno         TYPE posnr_acc,
    l_xkostl,
    lt_mwdat TYPE TABLE OF rtax1u15 WITH HEADER LINE.

  CONSTANTS:
    lc_doctype       TYPE blart VALUE 'SA',    "<<<< ggf. anpassen
    lc_taxcode       TYPE mwskz VALUE 'VA'.    "<<<< ggf. anpassen

*-----------------------------------------------------------------------
* Initialisierung
*-----------------------------------------------------------------------
  REFRESH: l_accountgl,
           l_accounttax,
           l_currencyamount,
           l_return.

  l_itemno = 1.

* Steuerinformationen versorgen
  CALL FUNCTION 'CALCULATE_TAX_FROM_GROSSAMOUNT'
    EXPORTING
      i_bukrs = bukrs
      i_mwskz = lc_taxcode
      i_waers = waers
      i_wrbtr = wrbtr
    TABLES
      t_mwdat = lt_mwdat
    EXCEPTIONS
      OTHERS  = 16.

  IF sy-subrc NE 0.
    RAISE tax_error.
  ELSE.
    READ TABLE lt_mwdat INDEX 1.
  ENDIF.


*-----------------------------------------------------------------------
* Belegkopf
*-----------------------------------------------------------------------
  CLEAR l_documentheader.
  l_documentheader-bus_act    = 'RFBU'.
  l_documentheader-username   = sy-uname.
  l_documentheader-comp_code  = bukrs.
  l_documentheader-doc_date   = sy-datum.
  l_documentheader-pstng_date = sy-datum.
  l_documentheader-ref_doc_no = 'RFC'.
  l_documentheader-doc_type   = lc_doctype.

*-----------------------------------------------------------------------
* 1. Belegposition (Soll)
*-----------------------------------------------------------------------
  CLEAR: l_accountgl, l_currencyamount.
  l_accountgl-itemno_acc      = l_itemno.
  l_accountgl-gl_account      = hkonts.
  l_accountgl-item_text       = sgtxt.
  l_accountgl-tax_code        = lc_taxcode.
  perform check_kostl_needed using bukrs
                                   hkonts
                             changing l_xkostl.
  if l_xkostl = 'X'.
    l_accountgl-costcenter      = kostl.
  endif.
  l_accountgl-alloc_nmbr      = gutnr.
  l_currencyamount-itemno_acc = l_accountgl-itemno_acc.
  l_currencyamount-currency   = waers.
  l_currencyamount-amt_doccur = lt_mwdat-kawrt.     "NETTO-BETRAG !!!
  APPEND: l_accountgl, l_currencyamount.

*-----------------------------------------------------------------------
* 2. Belegposition (Haben)
*-----------------------------------------------------------------------
  ADD 1 TO l_itemno.
  CLEAR: l_accountgl, l_currencyamount.
  l_accountgl-itemno_acc      = l_itemno.
  l_accountgl-gl_account      = hkonth.
  l_accountgl-item_text       = sgtxt.
  perform check_kostl_needed using bukrs
                                   hkonth
                             changing l_xkostl.
  if l_xkostl = 'X'.
    l_accountgl-costcenter      = kostl.
  endif.
  l_accountgl-alloc_nmbr      = gutnr.
  l_currencyamount-itemno_acc = l_accountgl-itemno_acc.
  l_currencyamount-currency   = waers.
  l_currencyamount-amt_doccur = wrbtr * -1.
  APPEND: l_accountgl, l_currencyamount.

*-----------------------------------------------------------------------
* Steuerzeile
*-----------------------------------------------------------------------
  ADD 1 TO l_itemno.
  CLEAR: l_accounttax, l_currencyamount.
  l_accounttax-itemno_acc     = l_itemno.
  l_accounttax-tax_code       = lc_taxcode.
  l_accounttax-tax_rate       = lt_mwdat-msatz.
  l_currencyamount-itemno_acc = l_accounttax-itemno_acc.
  l_currencyamount-currency   = waers.
  l_currencyamount-amt_doccur = lt_mwdat-wmwst.
  l_currencyamount-amt_base   = wrbtr.
  APPEND: l_accounttax, l_currencyamount.


*-----------------------------------------------------------------------
* BAPI-Aufruf
*-----------------------------------------------------------------------
  CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'
    EXPORTING
      documentheader          = l_documentheader
    IMPORTING
      obj_type                = l_obj_type
      obj_key                 = l_obj_key
      obj_sys                 = l_obj_sys
    TABLES
      accountgl               = l_accountgl
*   ACCOUNTRECEIVABLE       =
*   ACCOUNTPAYABLE          =
      accounttax              = l_accounttax
      currencyamount          = l_currencyamount
*   CRITERIA                =
*   VALUEFIELD              =
*   EXTENSION1              =
      return                  = return
*   PAYMENTCARD             =
*   CONTRACTITEM            =
*   EXTENSION2              =
*   REALESTATE              =
*   ACCOUNTWT               =
            .
  COMMIT WORK.

* Abort oder Error-Meldung zurückgekommen?
  LOOP AT return WHERE type = 'E'
                    OR type = 'A'.
    RAISE errors_occured.
  ENDLOOP.

  docnum = l_obj_key(10).

ENDFUNCTION.
Weiterhin viel Freude mit SAP...
Cheers
MrB.

Info

Beitrag von ERP200644 (ForumUser / 3 / 0 / 0 ) »
Hallo MrBojangles,

danke für die Info. Ich habe die Zeile mit dem Steuerkonto weggelassen. Man sollte natürlich auch einen Minusbetrag angeben, dann klappt das auch alles. Danke für die schnelle Hilfe.

Jetzt habe ich nur noch ein Problem. Ich möchte nicht, dass die Kreditorenzeile sich autom. das Steuerkennzeichen für 19% zieht, sonder ich möchte ** angeben, falls ich mal einen Mischsteuersatz habe. Die Buchung enthält aggregierte Beträge von Rechnungen und Abschlägen, welche unter Umständen (die Rechnungen) verschiedene Steuersätze haben könnten, falls mal wieder eine Steuererhöhung ansteht und nicht abgegrenzt wird. Dies lässt der BAPI aber nicht zu. Gibt es da eine Möglichkeit?

Danke im voraus

Seite 1 von 1

Vergleichbare Themen

21
Antw.
14459
Views
HTTPS POST mit Dateien anhängen
von Adrian » 28.06.2013 12:03 • Verfasst in ABAP® für Anfänger
2
Antw.
4251
Views
HTTP-Post von Dateien in ABAP
von Abrissbirne » 17.09.2012 01:44 • Verfasst in ABAP® Core
0
Antw.
1181
Views
0
Antw.
3150
Views
WebDynpro Post-Exit geht nicht
von kaim77 » 29.06.2020 21:19 • Verfasst in Web-Dynpro, BSP + BHTML

Über diesen Beitrag


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

Aktuelle Forenbeiträge

User Exit EXIT_RQCPRM10_001
vor einer Stunde von Manfred K. 1 / 27
Trennen Strasse und Hausnummer
vor 2 Stunden von payten 13 / 10308
Dialog-Container mit Toolbar/Status
vor 17 Stunden von DeathAndPain gelöst 22 / 3238
Daten an Tabelle binden
vor 21 Stunden von Lukas Sanders 2 / 1096

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

User Exit EXIT_RQCPRM10_001
vor einer Stunde von Manfred K. 1 / 27
Trennen Strasse und Hausnummer
vor 2 Stunden von payten 13 / 10308
Dialog-Container mit Toolbar/Status
vor 17 Stunden von DeathAndPain gelöst 22 / 3238
Daten an Tabelle binden
vor 21 Stunden von Lukas Sanders 2 / 1096

Unbeantwortete Forenbeiträge

User Exit EXIT_RQCPRM10_001
vor einer Stunde von Manfred K. 1 / 27
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2657
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9245