generieren Steuerzeilen

SAP R/3 Finanzwesen: Hauptbuchhaltung; Kreditorenbuchhaltung; Debitorenbuchhaltung; Bankbuchhaltung; Anlagenbuchhaltung; ...
2 Beiträge • Seite 1 von 1
2 Beiträge Seite 1 von 1

generieren Steuerzeilen

Beitrag von centauro_ernst (ForumUser / 6 / 0 / 0 ) »
Hallo,

ich suche eine einfache möglichkeit um steuerzeilen zu generieren.
das problem:
ich will mit der FUNCTION 'AC_DOCUMENT_GENERATE' einen fi-beleg erzeugen. die intern aufgebauten zeilen in der tabelle BSEG besitzen ein MWSKZ.
nun suche ich einen fuba oder methode, der ich die aufgebauten zeilen übergebe und dann werden dazu die steuerzeilen generiert.
der aufbau über FUNCTION 'CALCULATE_TAX_DOCUMENT', funktioniert, jedoch gibt es dann keine sinnvolle ergänzung dazu, damit die steuerzeilen in die interne BSEG-tebelle übernommen werden.

mfg
ernst metzker

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


Re: generieren Steuerzeilen

Beitrag von MrBojangles (Specialist / 367 / 3 / 30 ) »
Hallo centauro_ernst,
wenn's nicht unbedingt der AC_DOCUMENT_... sein muss, habe ich eine Variante mit dem BAPI BAPI_ACC_DOCUMENT_POST:

Code: Alles auswählen.

*&---------------------------------------------------------------------*
*& Report  ZTEST_SR
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

report  ztest_sr.

  data: bukrs type bukrs value '1000',
        hkonts type hkont value '0000415000',
        hkonth type hkont value '0000100000',
        waers type waers value 'EUR',
        wrbtr type wrbtr value 100,
        sgtxt type sgtxt value 'Test',
        kostl type kostl value '0000001000',
        gutnr type dzuonr value '23456',
        docnum type belnr_d.

* 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   with header line.

  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 'XX'.   "<<<< 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.
    message e600(fr) with 'OHH Scheisse...'.
  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 + lt_mwdat-wmwst.
  l_currencyamount-amt_base   = lt_mwdat-kawrt.


  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   = lt_mwdat-kawrt.
  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                  = l_return
*   PAYMENTCARD             =
*   CONTRACTITEM            =
*   EXTENSION2              =
*   REALESTATE              =
*   ACCOUNTWT               =
            .
  commit work.

* Fehlerhandling...

  docnum = l_obj_key(10).

*
*&---------------------------------------------------------------------*
*&      Form  check_kostl_needed
*&---------------------------------------------------------------------*
*       Prüft, ob das Sachkonto eine Kostenart ist und ob darum
*       ggf. eine Kostenstelle mitkontiert werden muss
*----------------------------------------------------------------------*
*      -->P_BUKRS     Buchungskreis
*      -->P_hkont     Sachkonto
*      <--P_XKOSTL    SPACE = keine Kostenstelle, X = Kostenst. nötig
*----------------------------------------------------------------------*
form check_kostl_needed  using    p_bukrs type bukrs
                                  p_hkont type hkont
                         changing p_xkostl.

  data: l_kokrs type kokrs,
        l_hkont type hkont,
        l_numko(10) type n.

  if p_hkont co '0123456789 '.
    l_hkont = l_numko = p_hkont.
  else.
    l_hkont = p_hkont.
  endif.

  call function 'KOKRS_GET_FROM_BUKRS'
    exporting
      i_bukrs = p_bukrs
    importing
      e_kokrs = l_kokrs.

  call function 'RK_KSTAR_READ'
    exporting
      datum           = sy-datum
      kokrs           = l_kokrs
      kstar           = l_hkont
    exceptions
      kstar_not_found = 1
      others          = 2.

  if sy-subrc = 0.
    p_xkostl = 'X'.
  else.
    p_xkostl = space.
  endif.

endform.                    " check_kostl_needed
Weiterhin viel Freude mit SAP...
Cheers
MrB.

Seite 1 von 1

Vergleichbare Themen

1
Antw.
2021
Views
Einführung Geschäftsbereichsbilanz => Steuerzeilen
von Matthias_L. » 30.03.2009 11:36 • Verfasst in Financials
1
Antw.
2005
Views
Include generieren
von Spreeatom » 20.08.2007 16:09 • Verfasst in ABAP® für Anfänger
5
Antw.
2141
Views
Generieren von Testdaten
von Hutch3 » 01.08.2010 17:28 • Verfasst in ABAP® für Anfänger
20
Antw.
12628
Views
ALV Feldkatalog automatisch generieren
von Pinguincommander » 04.12.2012 14:48 • Verfasst in ABAP® Core
0
Antw.
1034
Views
Documentenverwaltung URL generieren (Bapi?!)
von roithi » 16.06.2008 10:56 • Verfasst in ABAP® Core

Über diesen Beitrag


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

Aktuelle Forenbeiträge

Zeilenumbrüche ersetzen
vor 22 Minuten von ralf.wenzel 3 / 15
Dialog-Container mit Toolbar/Status
vor 19 Stunden von tar gelöst 19 / 2084
SAP Trial Version für SAP Fiori
Gestern von tar 2 / 1444

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

Zeilenumbrüche ersetzen
vor 22 Minuten von ralf.wenzel 3 / 15
Dialog-Container mit Toolbar/Status
vor 19 Stunden von tar gelöst 19 / 2084
SAP Trial Version für SAP Fiori
Gestern von tar 2 / 1444

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
Gestern von Bright4.5 1 / 505
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2143
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8738