Overblog Alle Blogs
Folge diesem Blog Administration + Create my blog
MENU
Werbung
SAPManDoo - SAP Resource

fi

Buchen Beleg per BAPI BAPI_ACC_DOCUMENT_POST

17. Februar 2011 , Geschrieben von sapmandoo Veröffentlicht in #FI

Das nachfolgende Coding dient als Hilfestellung, wie der BAPI BAPI_ACC_DOCUMENT_POST mit Daten zu versorgen ist, damit er funzt. Hier haben sich nämlich schon etliche nicht-FI-kundige Entwickler die Ohren gebrochen...

Weiter unten sind 4 Beispielcodings zu diesem Themenkomplex aufgeführt:

  • Einfache Sachkontenbuchung ohne Steuer.
  • Debitorische Buchung mit normaler Ausgangssteuer
  • Kreditorische Buchung mit Reverse Charge-Steuer, also mit zwei Steuerzeilen (Stichwort ESE/ESA).
  • Erhaltene Anzahlung (debitorisch) mit Steuer und separater Übergabe in Beleg- und Hauswährung

UPDATE: Im  Beratungshinweis "2083799 - Sammelhinweis: Buchungen mit Rechnungswesen-BAPIs" finden sich über das unten beschriebene hinaus wertvolle Informationen und weitere Beispiele.

 

*&---------------------------------------------------------------------*
*& Report  YTEST_SIMPLE_POST
*&
*&---------------------------------------------------------------------*
*& Demoprogramm zur Erläuterung der Aufrufparameter für das BAPI
*&    BAPI_ACC_DOCUMENT_POST
*&---------------------------------------------------------------------*

REPORT  ytest_simple_post.

* Beispieldaten für Beleginhalte
DATA:   bukrs  TYPE bukrs  VALUE '1000',        "Buchungskreis
        hkonts TYPE hkont  VALUE '0000047011',  "Konto Soll
        hkonth TYPE hkont  VALUE '0000047012',  "Konto Haben
        waers  TYPE waers  VALUE 'EUR',         "Belegwährung
        wrbtr  TYPE wrbtr  VALUE 100,           "Betrag
        sgtxt  TYPE sgtxt  VALUE 'Test',        "Belegpos.text
        kostl  TYPE kostl  VALUE '0000001000',  "Kostenstelle
        zuonr  TYPE dzuonr VALUE '23456',       "Zuordnung
        xblnr  TYPE xblnr  VALUE 'REFERENZ',    "Referenznummer
        blart  type blart  value 'SA',          "Belegart
        docnum TYPE belnr_d.                    "Belegnummer

* Schnittstellendaten für Verbuchungs-BAPI
DATA:
* Returnparameter des BAPIs
  l_obj_type         TYPE bapiache09-obj_type,  "Objekttyp
* Objejktschlüssel erhält vom BAPI die Belegidentifikation:
* NNNNNNNNNNYYYYBBBB  N = Belegnummer, Y = GJahr, B = Buchungskreis
  l_obj_key          TYPE bapiache09-obj_key,   "Objektschlüssel
  l_obj_sys          TYPE bapiache09-obj_sys,   "log. System

* Belegkopf
  ls_documentheader  TYPE bapiache09,

* Sachkontenpositionen
  lit_accountgl      TYPE TABLE OF bapiacgl09,
  ls_accountgl       TYPE bapiacgl09,

* Steuerzeilen (in vorliegendem Bsp. nicht relevant)
  lit_accounttax     TYPE TABLE OF bapiactx09,
  ls_accounttax      TYPE bapiactx09,

* Betragsinformationen
  lit_currencyamount TYPE TABLE OF bapiaccr09,
  ls_currencyamount  TYPE bapiaccr09,

* Meldungen des BAPI's
  lit_return         TYPE TABLE OF bapiret2,
  ls_return          TYPE bapiret2.

DATA:
  l_itemno           TYPE posnr_acc.           "Postionsnummer (s.u.)

*-----------------------------------------------------------------------
* Initialisierung
*-----------------------------------------------------------------------
CLEAR: lit_accountgl[],
       lit_accounttax[],
       lit_currencyamount[],
       lit_return[].

*-----------------------------------------------------------------------
* Positionsnummer (fängt bei 1 an und wird pro Belegpos. um 1 inkr.)
* Hinweis: Es können auch 10er Schritte verwendet werden, wichtig ist
*          nur eins: Die Einträge der Tabellen l_accountgl und
*          l_currencyamount finden über den jeweiligen Inhalt des Felds
*          itemno_acc 'zueinander', d.h. anders ausgedrückt:
*          Für jede Belegposition muss jeweils ein Eintrag in den
*          genannten Tabellen mit identischer itemno_acc aufgenommen
*          werden.
*-----------------------------------------------------------------------
l_itemno = 1.

*-----------------------------------------------------------------------
* Belegkopf
*-----------------------------------------------------------------------
CLEAR ls_documentheader.
ls_documentheader-bus_act    = 'RFBU'.     "Vorgang (fix)
ls_documentheader-username   = sy-uname.   "Belegerfasser
ls_documentheader-comp_code  = bukrs.      "Buchungskreis
ls_documentheader-doc_date   = sy-datum.   "Belegdatum
ls_documentheader-pstng_date = sy-datum.   "Buchungsdatum
ls_documentheader-ref_doc_no = xblnr.      "Referenznummer
ls_documentheader-doc_type   = blart.      "Belegart

*-----------------------------------------------------------------------
* 1. Belegposition (Soll)
*-----------------------------------------------------------------------
CLEAR: ls_accountgl, ls_currencyamount.
ls_accountgl-itemno_acc      = l_itemno.   "Positionsidentifier
ls_accountgl-gl_account      = hkonts.     "Sachkonto (Soll)
ls_accountgl-item_text       = sgtxt.      "Belegtext
ls_accountgl-costcenter      = kostl.      "Kostenstelle
ls_accountgl-alloc_nmbr      = zuonr.      "Zuordnung

* Betragssegment zur Sachkontenposition 1 mit identischem Identifier:
ls_currencyamount-itemno_acc = ls_accountgl-itemno_acc.
ls_currencyamount-currency   = waers.
ls_currencyamount-amt_doccur = wrbtr.      "positiver Betrag = Soll

APPEND: ls_accountgl      TO lit_accountgl,
        ls_currencyamount TO lit_currencyamount.

*-----------------------------------------------------------------------
* 2. Belegposition (Haben)
*-----------------------------------------------------------------------
ADD 1 TO l_itemno.
CLEAR: ls_accountgl, ls_currencyamount.
ls_accountgl-itemno_acc      = l_itemno.
ls_accountgl-gl_account      = hkonth.
ls_accountgl-item_text       = sgtxt.
ls_accountgl-alloc_nmbr      = zuonr.

* Betragssegment zur Sachkontenposition 2 mit identischem Identifier:
ls_currencyamount-itemno_acc = ls_accountgl-itemno_acc.
ls_currencyamount-currency   = waers.
ls_currencyamount-amt_doccur = wrbtr * -1.   "Haben --> Minus

APPEND: ls_accountgl      TO lit_accountgl,
        ls_currencyamount TO lit_currencyamount.

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

*-----------------------------------------------------------------------
* BAPI Meldungen ausgeben
*-----------------------------------------------------------------------
IF NOT lit_return[] IS INITIAL.
  CALL FUNCTION 'C14ALD_BAPIRET2_SHOW'
    TABLES
      i_bapiret2_tab = lit_return.
ENDIF.

* systemseitig vergebene Belegnummer kommt zurück!
docnum = l_obj_key(10).

...und weil' so schön war, das gleiche nochmal als debitorische Buchung:

per Debitor 119,-- an Sachkonto 100,--, Steuer 19,--

*&---------------------------------------------------------------------*
*& Report  YTEST_SIMPLE_POST
*&
*&---------------------------------------------------------------------*
*& Demoprogramm zur Erläuterung der Aufrufparameter für das BAPI
*&    BAPI_ACC_DOCUMENT_POST
*&---------------------------------------------------------------------*

REPORT  ytest_simple_post.

* Beispieldaten für Beleginhalte
DATA:   bukrs  TYPE bukrs  VALUE '1002',        "Buchungskreis
        kunnr  TYPE kunnr  VALUE '0000064756',  "Debitor Soll
        hkonth TYPE hkont  VALUE '0000331000',  "Konto Haben
        waers  TYPE waers  VALUE 'EUR',         "Belegwährung
        wrbtr  TYPE wrbtr  VALUE 119,           "Betrag
        sgtxt  TYPE sgtxt  VALUE 'Test',        "Belegpos.text
        kostl  TYPE kostl  VALUE '0000102719',  "Kostenstelle
        zuonr  TYPE dzuonr VALUE '23456',       "Zuordnung
        xblnr  TYPE xblnr  VALUE 'REFERENZ',    "Referenznummer
        blart  TYPE blart  VALUE 'DR',          "Belegart
        mwskz  TYPE mwskz  VALUE 'A1',          "Steuerkennzeichen
        docnum TYPE belnr_d.                    "Belegnummer

* Schnittstellendaten für Verbuchungs-BAPI
DATA:
* Returnparameter des BAPIs
  l_obj_type         TYPE bapiache09-obj_type,  "Objekttyp
* Objektschlüssel erhält vom BAPI die Belegidentifikation:
* NNNNNNNNNNYYYYBBBB  N = Belegnummer, Y = GJahr, B = Buchungskreis
  l_obj_key          TYPE bapiache09-obj_key,   "Objektschlüssel
  l_obj_sys          TYPE bapiache09-obj_sys,   "log. System

* Belegkopf
  ls_documentheader  TYPE bapiache09,

* Sachkontenpositionen
  lit_accountgl      TYPE TABLE OF bapiacgl09,
  ls_accountgl       TYPE bapiacgl09,

* Debitorenposition
  lit_accountrec     TYPE TABLE OF bapiacar09,
  ls_accountrec      TYPE bapiacar09,

* Steuerzeilen 
  lit_accounttax     TYPE TABLE OF bapiactx09,
  ls_accounttax      TYPE bapiactx09,

* Betragsinformationen
  lit_currencyamount TYPE TABLE OF bapiaccr09,
  ls_currencyamount  TYPE bapiaccr09,

* Meldungen des BAPI's
  lit_return         TYPE TABLE OF bapiret2.

DATA:
  l_itemno           TYPE posnr_acc.           "Postionsnummer (s.u.)

* Steuerdaten
DATA:
  lit_mwdat TYPE TABLE OF rtax1u15,
  ls_mwdat  TYPE rtax1u15.

*-----------------------------------------------------------------------
* Initialisierung
*-----------------------------------------------------------------------
CLEARlit_accountgl[],
       lit_accounttax[],
       lit_accountrec[],
       lit_currencyamount[],
       lit_return[].

*-----------------------------------------------------------------------
* Steuerdaten holen
*-----------------------------------------------------------------------
CALL FUNCTION 'CALCULATE_TAX_FROM_GROSSAMOUNT'
  EXPORTING
    i_bukrs bukrs
    i_mwskz mwskz
    i_waers waers
    i_wrbtr wrbtr
  TABLES
    t_mwdat lit_mwdat
  EXCEPTIONS
    OTHERS  16.

IF sy-subrc NE 0.
*   Fehlerbehandlung
ELSE.
  READ TABLE lit_mwdat INTO ls_mwdat INDEX 1.
ENDIF.

*-----------------------------------------------------------------------
* Positionsnummer (fängt bei 1 an und wird pro Belegpos. um 1 inkr.)
* Hinweis: Es können auch 10er Schritte verwendet werden, wichtig ist
*          nur eins: Die Einträge der Tabellen l_accountgl und
*          l_currencyamount finden über den jeweiligen Inhalt des Felds
*          itemno_acc 'zueinander', d.h. anders ausgedrückt:
*          Für jede Belegposition muss jeweils ein Eintrag in den
*          genannten Tabellen mit identischer itemno_acc aufgenommen
*          werden.
*-----------------------------------------------------------------------
l_itemno 1.

*-----------------------------------------------------------------------
* Belegkopf
*-----------------------------------------------------------------------
CLEAR ls_documentheader.
ls_documentheader-bus_act    'RFBU'.     "Vorgang (fix)
ls_documentheader-username   sy-uname.   "Belegerfasser
ls_documentheader-comp_code  bukrs.      "Buchungskreis
ls_documentheader-doc_date   sy-datum.   "Belegdatum
ls_documentheader-pstng_date sy-datum.   "Buchungsdatum
ls_documentheader-ref_doc_no xblnr.      "Referenznummer
ls_documentheader-doc_type   blart.      "Belegart

*-----------------------------------------------------------------------
* 1. Belegposition (Soll - Debitor)
*-----------------------------------------------------------------------
CLEARls_accountrecls_currencyamount.
ls_accountrec-itemno_acc     l_itemno.   "Positionsidentifier
ls_accountrec-customer       kunnr.      "Debitor (Soll)
ls_accountrec-item_text      sgtxt.      "Belegtext
ls_accountrec-alloc_nmbr     zuonr.      "Zuordnung

* Betragssegment zur Sachkontenposition 1 mit identischem Identifier:
ls_currencyamount-itemno_acc ls_accountrec-itemno_acc.
ls_currencyamount-currency   waers.
ls_currencyamount-amt_doccur wrbtr.      "positiver Betrag = Soll

APPENDls_accountrec     TO lit_accountrec,
        ls_currencyamount TO lit_currencyamount.

*-----------------------------------------------------------------------
* 2. Belegposition (Haben - Sachkonto)
*-----------------------------------------------------------------------
ADD TO l_itemno.
CLEARls_accountglls_currencyamount.
ls_accountgl-itemno_acc      l_itemno.
ls_accountgl-gl_account      hkonth.
ls_accountgl-costcenter      kostl.
ls_accountgl-item_text       sgtxt.
ls_accountgl-tax_code        mwskz.
ls_accountgl-alloc_nmbr      zuonr.

* Betragssegment zur Sachkontenposition 2 mit identischem Identifier:
ls_currencyamount-itemno_acc ls_accountgl-itemno_acc.
ls_currencyamount-currency   waers.
ls_currencyamount-amt_doccur ls_mwdat-kawrt * -1.   "Nettobetrag / Haben --> Minus

APPENDls_accountgl      TO lit_accountgl,
        ls_currencyamount TO lit_currencyamount.

*-----------------------------------------------------------------------
* Steuerzeile (Haben)
*-----------------------------------------------------------------------
ADD TO l_itemno.
CLEARls_accounttaxls_currencyamount.
ls_accounttax-itemno_acc     l_itemno.
ls_accounttax-tax_code       mwskz.

ls_currencyamount-itemno_acc ls_accounttax-itemno_acc.
ls_currencyamount-currency   waers.
ls_currencyamount-amt_doccur ls_mwdat-wmwst * -1.
ls_currencyamount-amt_base   ls_mwdat-kawrt * -1.

APPENDls_accounttax     TO lit_accounttax,
        ls_currencyamount TO lit_currencyamount.

*-----------------------------------------------------------------------
* BAPI-Aufruf
*-----------------------------------------------------------------------
CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'
  EXPORTING
    documentheader    ls_documentheader
  IMPORTING
    obj_type          l_obj_type
    obj_key           l_obj_key
    obj_sys           l_obj_sys
  TABLES
    accountgl         lit_accountgl
    accountreceivable lit_accountrec
*   ACCOUNTPAYABLE    =
    accounttax        lit_accounttax
    currencyamount    lit_currencyamount
*   CRITERIA          =
*   VALUEFIELD        =
*   EXTENSION1        =
    return            lit_return
*   PAYMENTCARD       =
*   CONTRACTITEM      =
*   EXTENSION2        =
*   REALESTATE        =
*   ACCOUNTWT         =
  .
COMMIT WORK.

*-----------------------------------------------------------------------
* BAPI Meldungen ausgeben
*-----------------------------------------------------------------------
IF NOT lit_return[] IS INITIAL.
  CALL FUNCTION 'C14ALD_BAPIRET2_SHOW'
    TABLES
      i_bapiret2_tab lit_return.
ENDIF.


* systemseitig vergebene Belegnummer kommt zurück!
docnum l_obj_key(10).

*&---------------------------------------------------------------------*
*& Report ZTESTBAPI
*&---------------------------------------------------------------------*
*&  kreditorische Buchung mit E1 (Reverse Charge, ESA/ESE)
*&---------------------------------------------------------------------*
REPORT ztestbapi.

* Beispieldaten für Beleginhalte
DATA: bukrs  TYPE bukrs  VALUE '9000',        "Buchungskreis
      lifnr  TYPE lifnr  VALUE '0000000117',  "Kreditor Haben
      hkonts TYPE hkont  VALUE '0000688000',  "Konto soll
      waers  TYPE waers  VALUE 'EUR',         "Belegwährung
      wrbtr  TYPE wrbtr  VALUE 100,           "Betrag
      sgtxt  TYPE sgtxt  VALUE 'Test',        "Belegpos.text
      kostl  TYPE kostl  VALUE '9000000000',  "Kostenstelle
      zuonr  TYPE dzuonr VALUE '23456',       "Zuordnung
      xblnr  TYPE xblnr  VALUE '4711-001',    "Referenznummer
      blart  TYPE blart  VALUE 'KR',          "Belegart
      mwskz  TYPE mwskz  VALUE 'E1',          "Steuerkennzeichen
      docnum TYPE belnr_d.                    "Belegnummer

* Schnittstellendaten für Verbuchungs-BAPI
DATA:
* Returnparameter des BAPIs
  l_obj_type         TYPE bapiache09-obj_type,  "Objekttyp
* Objektschlüssel erhält vom BAPI die Belegidentifikation:
* NNNNNNNNNNYYYYBBBB  N = Belegnummer, Y = GJahr, B = Buchungskreis
  l_obj_key          TYPE bapiache09-obj_key,   "Objektschlüssel
  l_obj_sys          TYPE bapiache09-obj_sys,   "log. System

* Belegkopf
  ls_documentheader  TYPE bapiache09,

* Sachkontenpositionen
  lit_accountgl      TYPE TABLE OF bapiacgl09,
  ls_accountgl       TYPE bapiacgl09,

* Kreditorenposition
  lit_accountpay     TYPE TABLE OF bapiacap09,
  ls_accountpay      TYPE bapiacap09,

* Steuerzeilen
  lit_accounttax     TYPE TABLE OF bapiactx09,
  ls_accounttax      TYPE bapiactx09,

* Betragsinformationen
  lit_currencyamount TYPE TABLE OF bapiaccr09,
  ls_currencyamount  TYPE bapiaccr09,

* Meldungen des BAPI's
  lit_return         TYPE TABLE OF bapiret2.

DATA:
  l_itemno           TYPE posnr_acc.           "Postionsnummer (s.u.)

* Steuerdaten
DATA:
  lit_mwdat TYPE TABLE OF rtax1u15,
  ls_mwdat  TYPE rtax1u15.

*-----------------------------------------------------------------------
* Initialisierung
*-----------------------------------------------------------------------
CLEAR: lit_accountgl[],
       lit_accounttax[],
       lit_accountpay[],
       lit_currencyamount[],
       lit_return[].

*-----------------------------------------------------------------------
* Steuerdaten holen
*-----------------------------------------------------------------------
CALL FUNCTION 'CALCULATE_TAX_FROM_GROSSAMOUNT'
  EXPORTING
    i_bukrs = bukrs
    i_mwskz = mwskz
    i_waers = waers
    i_wrbtr = wrbtr
  TABLES
    t_mwdat = lit_mwdat
  EXCEPTIONS
    OTHERS  = 16.

IF sy-subrc NE 0.
*   Fehlerbehandlung
ELSE.
  break srohde.
ENDIF.

*-----------------------------------------------------------------------
* Positionsnummer (fängt bei 1 an und wird pro Belegpos. um 1 inkr.)
* Hinweis: Es können auch 10er Schritte verwendet werden, wichtig ist
*          nur eins: Die Einträge der Tabellen l_accountgl und
*          l_currencyamount finden über den jeweiligen Inhalt des Felds
*          itemno_acc 'zueinander', d.h. anders ausgedrückt:
*          Für jede Belegposition muss jeweils ein Eintrag in den
*          genannten Tabellen mit identischer itemno_acc aufgenommen
*          werden.
*-----------------------------------------------------------------------
l_itemno = 1.

*-----------------------------------------------------------------------
* Belegkopf
*-----------------------------------------------------------------------
CLEAR ls_documentheader.
ls_documentheader-bus_act    = 'RFBU'.     "Vorgang (fix)
ls_documentheader-username   = sy-uname.   "Belegerfasser
ls_documentheader-comp_code  = bukrs.      "Buchungskreis
ls_documentheader-doc_date   = sy-datum.   "Belegdatum
ls_documentheader-pstng_date = sy-datum.   "Buchungsdatum
ls_documentheader-ref_doc_no = xblnr.      "Referenznummer
ls_documentheader-doc_type   = blart.      "Belegart

*-----------------------------------------------------------------------
* 1. Belegposition (Haben - Kreditor)
*-----------------------------------------------------------------------
CLEAR: ls_accountpay, ls_currencyamount.
ls_accountpay-itemno_acc     = l_itemno.   "Positionsidentifier
ls_accountpay-vendor_no      = lifnr.      "Kreditor
ls_accountpay-item_text      = sgtxt.      "Belegtext
ls_accountpay-alloc_nmbr     = zuonr.      "Zuordnung

* Betragssegment zur Sachkontenposition 1 mit identischem Identifier:
ls_currencyamount-itemno_acc = ls_accountpay-itemno_acc.
ls_currencyamount-currency   = waers.
ls_currencyamount-amt_doccur = wrbtr * -1. "negativer Betrag = Haben

APPEND: ls_accountpay     TO lit_accountpay,
        ls_currencyamount TO lit_currencyamount.

*-----------------------------------------------------------------------
* 2. Belegposition (Soll - Sachkonto)
*-----------------------------------------------------------------------
ADD 1 TO l_itemno.
CLEAR: ls_accountgl, ls_currencyamount.
ls_accountgl-itemno_acc      = l_itemno.
ls_accountgl-gl_account      = hkonts.
ls_accountgl-costcenter      = kostl.
ls_accountgl-item_text       = sgtxt.
ls_accountgl-tax_code        = mwskz.
ls_accountgl-alloc_nmbr      = zuonr.

* Betragssegment zur Sachkontenposition 2 mit identischem Identifier:
ls_currencyamount-itemno_acc = ls_accountgl-itemno_acc.
ls_currencyamount-currency   = waers.
ls_currencyamount-amt_doccur = wrbtr.   "Soll

APPEND: ls_accountgl      TO lit_accountgl,
        ls_currencyamount TO lit_currencyamount.

*-----------------------------------------------------------------------
* Steuerzeile 1 (HABEN) - ESA
*-----------------------------------------------------------------------
ADD 1 TO l_itemno.
CLEAR: ls_accounttax, ls_currencyamount.
ls_accounttax-itemno_acc     = l_itemno.
ls_accounttax-tax_code       = mwskz.
read table lit_mwdat index 1 into ls_mwdat.
ls_accounttax-acct_key       = ls_mwdat-ktosl.

ls_currencyamount-itemno_acc = ls_accounttax-itemno_acc.
ls_currencyamount-currency   = waers.
ls_currencyamount-amt_doccur = ls_mwdat-wmwst.
ls_currencyamount-amt_base   = ls_mwdat-kawrt * -1.  "Steuerbasis VZ drehen

APPEND: ls_accounttax     TO lit_accounttax,
        ls_currencyamount TO lit_currencyamount.

*-----------------------------------------------------------------------
* Steuerzeile 2 (Haben) - ESE
*-----------------------------------------------------------------------
ADD 1 TO l_itemno.
CLEAR: ls_accounttax, ls_currencyamount.
ls_accounttax-itemno_acc     = l_itemno.
ls_accounttax-tax_code       = mwskz.
read table lit_mwdat index 2 into ls_mwdat.
ls_accounttax-acct_key       = ls_mwdat-ktosl.

ls_currencyamount-itemno_acc = ls_accounttax-itemno_acc.
ls_currencyamount-currency   = waers.
ls_currencyamount-amt_doccur = ls_mwdat-wmwst.
ls_currencyamount-amt_base   = ls_mwdat-kawrt * -1.

APPEND: ls_accounttax     TO lit_accounttax,
        ls_currencyamount TO lit_currencyamount.

*-----------------------------------------------------------------------
* BAPI-Aufruf
*-----------------------------------------------------------------------
CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'
  EXPORTING
    documentheader = ls_documentheader
  IMPORTING
    obj_type       = l_obj_type
    obj_key        = l_obj_key
    obj_sys        = l_obj_sys
  TABLES
    accountgl      = lit_accountgl
    accountpayable = lit_accountpay
    accounttax     = lit_accounttax
    currencyamount = lit_currencyamount
*   CRITERIA       =
*   VALUEFIELD     =
*   EXTENSION1     =
    return         = lit_return
*   PAYMENTCARD    =
*   CONTRACTITEM   =
*   EXTENSION2     =
*   REALESTATE     =
*   ACCOUNTWT      =
  .
COMMIT WORK.

*-----------------------------------------------------------------------
* BAPI Meldungen ausgeben
*-----------------------------------------------------------------------
IF NOT lit_return[] IS INITIAL.
  CALL FUNCTION 'C14ALD_BAPIRET2_SHOW'
    TABLES
      i_bapiret2_tab = lit_return.
ENDIF.

* systemseitig vergebene Belegnummer kommt zurück!
docnum = l_obj_key(10).

Mein Kollege Markus hatte mal einen Fall im Rahmen einer Migration, dass erhaltene (debitorische) Anzahlungen (Sonderhauptbuch "A") inkl. Steuerzeile übernommen werden sollten. Zudem wurden hier beispielhaft Beträge sowohl in Transaktions- als auch Hauswährung übergeben. Folgender Beleg wird exemplarisch mit dem weiter unten aufgeführten Coding Snippet gebucht:

Beispielbeleg

Beispielbeleg

 
 Hier das entsprechende Coding-Snippet:
 

*&---------------------------------------------------------------------*
*& Report YTEST_MALA
*&---------------------------------------------------------------------*
*& erhaltene Anzahlungen (SHB-Kz.) und Betragsübergabe in Haus- und Belegwährung
*&---------------------------------------------------------------------*
REPORT ytest_mala.

* Beispieldaten für Beleginhalte
DATA: bukrs   TYPE bukrs  VALUE '0010',        "Buchungskreis
      kunnr   TYPE kunnr  VALUE '0102000392',  "Debitor Soll
      hkonth  TYPE hkont  VALUE '9920020000',  "Konto Haben
      waers   TYPE waers  VALUE 'EUR',         "Belegwährung
      wrbtr   TYPE wrbtr  VALUE 238,           "Betrag brutto
      sgtxt   TYPE sgtxt  VALUE 'Test',        "Belegpos.text
*     kostl   TYPE kostl  VALUE '0000102719',  "Kostenstelle
      zuonr   TYPE dzuonr VALUE '23456',       "Zuordnung
      xblnr   TYPE xblnr  VALUE 'REFERENZ',    "Referenznummer
      blart   TYPE blart  VALUE 'T0',          "Belegart
      curtp00 TYPE curtp  VALUE '00',          "Währungstyp 00
      curtp10 TYPE curtp  VALUE '10',          "Währungstyp 10
      mwskz   TYPE mwskz  VALUE 'A1',          "Steuerkennzeichen
      docnum  TYPE belnr_d.                    "Belegnummer
 
 
 
* Schnittstellendaten für Verbuchungs-BAPI
DATA:
* Returnparameter des BAPIs
  l_obj_type         TYPE bapiache09-obj_type,  "Objekttyp
* Objektschlüssel erhält vom BAPI die Belegidentifikation:
* NNNNNNNNNNYYYYBBBB  N = Belegnummer, Y = GJahr, B = Buchungskreis
  l_obj_key          TYPE bapiache09-obj_key,   "Objektschlüssel
  l_obj_sys          TYPE bapiache09-obj_sys,   "log. System
 
 
* Belegkopf
  ls_documentheader  TYPE bapiache09,
 
 
* Debitorenposition
  lit_accountrec     TYPE TABLE OF bapiacar09,
  ls_accountrec      TYPE bapiacar09,
 
 
* Steuerzeilen
  lit_accounttax     TYPE TABLE OF bapiactx09,
  ls_accounttax      TYPE bapiactx09,
 
 
* Betragsinformationen
  lit_currencyamount TYPE TABLE OF bapiaccr09,
  ls_currencyamount  TYPE bapiaccr09,
 
 
* Meldungen des BAPI's
  lit_return         TYPE TABLE OF bapiret2,
  lit_return_all     TYPE TABLE OF bapiret2.
 
 
DATA:
  l_itemno           TYPE posnr_acc.           "Postionsnummer (s.u.)
 
 
* Steuerdaten
DATA:
  lit_mwdat TYPE TABLE OF rtax1u15,
  ls_mwdat  TYPE rtax1u15.
 
 
*-----------------------------------------------------------------------
* Initialisierung
*-----------------------------------------------------------------------
CLEAR: lit_accountgl[],
       lit_accounttax[],
       lit_accountrec[],
       lit_currencyamount[],
       lit_return[].
 
 
*-----------------------------------------------------------------------
* Steuerdaten holen
*-----------------------------------------------------------------------
 
 
DATA(lv_kalk) = wrbtr. "* -1.
CALL FUNCTION 'CALCULATE_TAX_FROM_GROSSAMOUNT'
  EXPORTING
    i_bukrs = bukrs
    i_mwskz = mwskz
    i_waers = waers
    i_wrbtr = lv_kalk
  TABLES
    t_mwdat = lit_mwdat
  EXCEPTIONS
    OTHERS  = 16.
 
 
IF sy-subrc NE 0.
*   Fehlerbehandlung
ELSE.
  READ TABLE lit_mwdat INTO ls_mwdat INDEX 1.
ENDIF.
 
 
 
 
*-----------------------------------------------------------------------
* Positionsnummer (fängt bei 1 an und wird pro Belegpos. um 1 inkr.)
* Hinweis: Es können auch 10er Schritte verwendet werden, wichtig ist
*          nur eins: Die Einträge der Tabellen l_accountgl und
*          l_currencyamount finden über den jeweiligen Inhalt des Felds
*          itemno_acc 'zueinander', d.h. anders ausgedrückt:
*          Für jede Belegposition muss jeweils ein Eintrag in den
*          genannten Tabellen mit identischer itemno_acc aufgenommen
*          werden.
*-----------------------------------------------------------------------
l_itemno = 1.
 
 
*-----------------------------------------------------------------------
* Belegkopf   IDOC E1BPACHE09
*-----------------------------------------------------------------------
CLEAR ls_documentheader.
ls_documentheader-bus_act    = 'RFBU'.     "Vorgang (fix)
ls_documentheader-username   = sy-uname.   "Belegerfasser
ls_documentheader-comp_code  = bukrs.      "Buchungskreis
ls_documentheader-doc_date   = sy-datum.   "Belegdatum
ls_documentheader-pstng_date = sy-datum.   "Buchungsdatum
ls_documentheader-ref_doc_no = sy-datum && `/` && sy-uzeit.      "Referenznummer
ls_documentheader-doc_type   = blart.      "Belegart
 
 
*-----------------------------------------------------------------------
* 1. Belegposition (Haben - Debitor)   IDOC E1BPACAR09
*-----------------------------------------------------------------------
CLEAR: ls_accountrec, ls_currencyamount.
ls_accountrec-itemno_acc     = l_itemno.   "Positionsidentifier
ls_accountrec-customer       = kunnr.      "Debitor (Soll)
ls_accountrec-tax_code       = mwskz.
ls_accountrec-sp_gl_ind      = 'A'.        " Sonderhauptbuchkennzeichen (Debitor)
ls_accountrec-item_text      = sgtxt.      "Belegtext
ls_accountrec-alloc_nmbr     = zuonr.      "Zuordnung
 
 
* Betragssegment zur Sachkontenposition 1 mit identischem Identifier:
ls_currencyamount-itemno_acc = ls_accountrec-itemno_acc.
ls_currencyamount-curr_type  = curtp00.
ls_currencyamount-currency   = waers.
ls_currencyamount-amt_doccur = wrbtr * -1.          "Soll = positiv, Haben = negativ
ls_currencyamount-amt_base   = wrbtr * -1.          "Soll = positiv, Haben = negativ
ls_currencyamount-tax_amt    = ls_mwdat-wmwst * -1. "Steuerbetrag muss mitgegeben werden(!!!)
 
 
APPEND: ls_accountrec     TO lit_accountrec,
        ls_currencyamount TO lit_currencyamount.
 
 
* Hier wird beim Währungstyp 10 (Hauswährung) die gleiche Währung und der gleiche Betrag 
* wie beim Typ 00 (Belegwährung) übergeben. Natürlich können hier auch unterschiedliche
* Währungen und Beträge verwendet werden.
ls_currencyamount-curr_type  = curtp10.
APPEND ls_currencyamount TO lit_currencyamount.
 
 
*-----------------------------------------------------------------------
* 2. Belegposition (Soll - Sachkonto)   E1BPACGL09
*-----------------------------------------------------------------------
ADD 1 TO l_itemno.
CLEAR: ls_accountgl, ls_currencyamount.
ls_accountgl-itemno_acc      = l_itemno.
ls_accountgl-gl_account      = hkonth.
*ls_accountgl-costcenter      = kostl.
ls_accountgl-item_text       = sgtxt.
*ls_accountgl-tax_code        = mwskz.
ls_accountgl-alloc_nmbr      = zuonr.
 
 
* Betragssegment zur Sachkontenposition 2 mit identischem Identifier:
ls_currencyamount-itemno_acc = ls_accountgl-itemno_acc.
ls_currencyamount-curr_type  = curtp00.
ls_currencyamount-currency   = waers.
ls_currencyamount-amt_doccur = wrbtr.         "Soll = positiv, Haben = negativ
ls_currencyamount-amt_base   = wrbtr.         "Soll = positiv, Haben = negativ
 
 
APPEND: ls_accountgl      TO lit_accountgl,
        ls_currencyamount TO lit_currencyamount.
 
 
ls_currencyamount-curr_type  = curtp10.
APPEND ls_currencyamount TO lit_currencyamount.
 
 
 
 
*-----------------------------------------------------------------------
* 2. Belegposition (Haben - Sachkonto Steuer mit MVA) - Nicht Steuer, sondern GL
* IDOC E1BPACGL09
*-----------------------------------------------------------------------
ADD 1 TO l_itemno.
CLEAR: ls_accountgl, ls_currencyamount.
ls_accountgl-itemno_acc      = l_itemno.
ls_accountgl-gl_account      = '3300000000'.
ls_accountgl-item_text       = sgtxt.
ls_accountgl-acct_key        = 'MVA'.
ls_accountgl-tax_code        = mwskz.
ls_accountgl-alloc_nmbr      = zuonr.
 
 
* Betragssegment zur Sachkontenposition 2 mit identischem Identifier:
ls_currencyamount-itemno_acc = ls_accountgl-itemno_acc.
ls_currencyamount-curr_type  = curtp00.
ls_currencyamount-currency   = waers.
ls_currencyamount-amt_doccur = ls_mwdat-wmwst.         "Soll = positiv, Haben = negativ
ls_currencyamount-amt_base   = ls_mwdat-wmwst.         "Soll = positiv, Haben = negativ
 
 
APPEND: ls_accountgl      TO lit_accountgl,
        ls_currencyamount TO lit_currencyamount.
 
 
ls_currencyamount-curr_type  = curtp10.
APPEND ls_currencyamount TO lit_currencyamount.
 
 
*-----------------------------------------------------------------------
* Steuerzeile (Haben)   IDOC E1BPACTX09
*-----------------------------------------------------------------------
ADD 1 TO l_itemno.
CLEAR: ls_accounttax, ls_currencyamount.
ls_accounttax-itemno_acc     = l_itemno.
ls_accounttax-gl_account     = '2021100000'.
ls_accounttax-tax_code       = mwskz.
ls_accounttax-tax_rate       = ls_mwdat-msatz.
ls_accounttax-cond_key       = ls_mwdat-kschl.
 
 
ls_currencyamount-itemno_acc = ls_accounttax-itemno_acc.
ls_currencyamount-curr_type  = curtp00.
ls_currencyamount-currency   = waers.
ls_currencyamount-amt_doccur = ls_mwdat-wmwst * -1.
ls_currencyamount-amt_base   = ls_mwdat-kawrt * -1.
 
 
APPEND: ls_accounttax     TO lit_accounttax,
        ls_currencyamount TO lit_currencyamount.
 
 
ls_currencyamount-curr_type  = curtp10.
APPEND ls_currencyamount TO lit_currencyamount.
 
 
 
 
*
BREAK dl-laeller.
 
 
*-----------------------------------------------------------------------
* BAPI-Aufruf
*-----------------------------------------------------------------------
CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'
  EXPORTING
    documentheader    = ls_documentheader
  IMPORTING
    obj_type          = l_obj_type
    obj_key           = l_obj_key
    obj_sys           = l_obj_sys
  TABLES
    accountgl         = lit_accountgl
    accountreceivable = lit_accountrec
*   ACCOUNTPAYABLE    =
    accounttax        = lit_accounttax
    currencyamount    = lit_currencyamount
*   CRITERIA          =
*   VALUEFIELD        =
*   EXTENSION1        =
    return            = lit_return
*   PAYMENTCARD       =
*   CONTRACTITEM      =
*   EXTENSION2        =
*   REALESTATE        =
*   ACCOUNTWT         =
  .
COMMIT WORK.
 
 
 
 
*-----------------------------------------------------------------------
* BAPI Meldungen ausgeben
*-----------------------------------------------------------------------
IF NOT lit_return[] IS INITIAL.
  CALL FUNCTION 'C14ALD_BAPIRET2_SHOW'
    TABLES
      i_bapiret2_tab = lit_return.
ENDIF.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Weiterlesen
Werbung

Sachkontenverzeichnis im ALV mit mehrspachigen Texten

17. Februar 2011 , Geschrieben von sapmandoo Veröffentlicht in #SAP Reports, #FI

Der nachfolgende Report erstellt ein Sachkontenverzeichnis im ALV-Grid, wobei ggf. auch Texte in verschiedenen Spachen nebeneinander ausgegeben werden können. Dies erleichtert z.B. das Übersetzen bzw. die Kontrolle der verschiedenen Texte in internationalen SAP-Installationen/Projekten. Zudem ist die ALV-Liste doppelklick-sensitiv, d.h. es kann vor hier direkt in die Sachkontenpflege zentral (FS00) angesprungen werden.

 

Quelltext:

 

 

**********************************************************************
** REPORT  Z_GL_LIST
*--------------------------------------------------------------------*
** AUTHOR:             
** LAST UPDATE:        
** DEVELOPMENT REQUEST:   
**
**********************************************************************
** CONTENT DESCRIPTION
*--------------------------------------------------------------------*
*  List of accounts with texts in different languages
*                   :
*
**********************************************************************
** CHANGE HISTORY
*--------------------------------------------------------------------*
* DATE     | USER        | DESCRIPTION
* -------------------------------------------------------------------*
* <DATE>   | <USERNAME>  | <short description of change>
* <DATE>   | <USERNAME>  | <short description of change>
*    :     |     :       |                 :
*
**********************************************************************

REPORT  z_gl_list.

**********************************************************************
** DECLARATIONS
**********************************************************************

* TYPE DECLARATIONS
*--------------------------------------------------------------------*
TYPES: BEGIN OF gt_acclist,
         ktopl TYPE ska1-ktopl,
         saknr TYPE ska1-saknr,
         bilkt TYPE ska1-bilkt,
         bukrs TYPE skb1-bukrs,
         altkt TYPE skb1-altkt,
         txt20_e TYPE skat-txt20,
         txt50_e TYPE skat-txt50,
         txt20_d TYPE skat-txt20,
         txt50_d TYPE skat-txt50,
         txt20_f TYPE skat-txt20,
         txt50_f TYPE skat-txt50,

 * add textfields for addt'l languages here...
         ktoks TYPE ska1-ktoks,
         xbilk TYPE ska1-xbilk,
         mwskz TYPE skb1-mwskz,
         mitkz TYPE skb1-mitkz,
         xopvw TYPE skb1-xopvw,
         xmwno TYPE skb1-xmwno,
         fstag TYPE skb1-fstag,

*             add addt'l fields here...
       END OF gt_acclist.

* CONSTANTS
*--------------------------------------------------------------------*

* INTERNAL TABLES
*--------------------------------------------------------------------*
DATA: git_acclist TYPE TABLE OF gt_acclist.

* STRUCTURES
*--------------------------------------------------------------------*
DATA: gs_ska1 TYPE ska1,
      gs_skb1 TYPE skb1,
      gs_skat TYPE skat.
DATA: gs_acclist TYPE gt_acclist.

* VARIABLES
*--------------------------------------------------------------------*
TYPE-POOLS: slis.
DATA:   g_repid   LIKE   sy-repid.
DATA:    git_fieldcat   TYPE   slis_t_fieldcat_alv,
  wa_feldkatalog     TYPE   LINE OF slis_t_fieldcat_alv,
  gs_layout    TYPE   slis_layout_alv,
  wa_aktuelle_zeile  LIKE LINE OF git_acclist
  .


* SELECTION CRITERIA (PARAMETERS AND SELECT-OPTIONS)
*--------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK b01 WITH FRAME TITLE text-b01.
SELECT-OPTIONS: so_ktopl FOR gs_ska1-ktopl OBLIGATORY MEMORY ID kpl,
                so_saknr FOR gs_ska1-saknr,
                so_bukrs FOR gs_skb1-bukrs MEMORY ID buk.
SELECTION-SCREEN END OF BLOCK b01.


**********************************************************************
** EVENTS
**********************************************************************

* START-OF-SELECTION
*--------------------------------------------------------------------*
START-OF-SELECTION.

  SET PARAMETER ID 'BUK' FIELD so_bukrs-low.
  SET PARAMETER ID 'KPL' FIELD so_ktopl-low.

  PERFORM read_glmaster_records.

  IF git_acclist[] IS INITIAL.
*   No list generated
    CALL FUNCTION 'POPUP_NO_LIST'.
  ELSE.
*   ALV-Ouput
    PERFORM display_alv.
  ENDIF.

**********************************************************************
** FORMS
**********************************************************************

*&---------------------------------------------------------------------*
*&      Form  READ_GLMASTER_RECORDS
*&---------------------------------------------------------------------*
*       Selection of GL master records and filling of internal table
*----------------------------------------------------------------------*
FORM read_glmaster_records .

  DATA: ls_skat TYPE skat.

  SELECT * FROM ska1 INTO CORRESPONDING FIELDS OF gs_acclist
         WHERE ktopl IN so_ktopl
           AND saknr IN so_saknr.
    SELECT * FROM skb1 INTO CORRESPONDING FIELDS OF gs_acclist
         WHERE saknr = gs_acclist-saknr
           AND bukrs IN so_bukrs.
      SELECT SINGLE * FROM skat INTO ls_skat
             WHERE ktopl = gs_acclist-ktopl
               AND saknr = gs_acclist-saknr
               AND spras = 'EN'.
      IF sy-subrc = 0.
        gs_acclist-txt20_e = ls_skat-txt20.
        gs_acclist-txt50_e = ls_skat-txt50.
      ELSE.
        gs_acclist-txt20_e = gs_acclist-txt50_e = 'No English text'.
      ENDIF.
      SELECT SINGLE * FROM skat INTO ls_skat
             WHERE ktopl = gs_acclist-ktopl
               AND saknr = gs_acclist-saknr
               AND spras = 'DE'.
      IF sy-subrc = 0.
        gs_acclist-txt20_d = ls_skat-txt20.
        gs_acclist-txt50_d = ls_skat-txt50.
      ELSE.
        gs_acclist-txt20_d = gs_acclist-txt50_d = 'K. deutscher Text'.
      ENDIF.
      SELECT SINGLE * FROM skat INTO ls_skat
             WHERE ktopl = gs_acclist-ktopl
               AND saknr = gs_acclist-saknr
               AND spras = 'FR'.
      IF sy-subrc = 0.
        gs_acclist-txt20_f = ls_skat-txt20.
        gs_acclist-txt50_f = ls_skat-txt50.
      ELSE.
        gs_acclist-txt20_f = gs_acclist-txt50_f = 'No french text'.
      ENDIF.

 *   Repeat for addt'l languages...
      APPEND gs_acclist TO git_acclist.
    ENDSELECT.
  ENDSELECT.

ENDFORM.                    " READ_GLMASTER_RECORDS

*&---------------------------------------------------------------------*
*&      Form  DISPLAY_ALV
*&---------------------------------------------------------------------*
*       Give internal table as ALV
*----------------------------------------------------------------------*
FORM display_alv .

* Feldkatalog fuellen.
  PERFORM feldkatalog_fuellen.
* Layout bestimmen.
  PERFORM layout_allg_build USING gs_layout.

  g_repid = sy-repid.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_callback_program      = g_repid
      i_callback_user_command = 'HANDLE_DOUBLE_CLICK'
*     i_grid_title            = sy-title
      i_save                  = 'U'
      it_fieldcat             = git_fieldcat
      is_layout               = gs_layout
    TABLES
      t_outtab                = git_acclist.
  IF sy-subrc <> 0.
    MESSAGE e600(fr) WITH 'Error in ALV generation'.
  ENDIF.


ENDFORM.                    " DISPLAY_ALV

*---------------------------------------------------------------------
* Unterprogramm fuer Reaktion auf Doppelklick
*---------------------------------------------------------------------
FORM handle_double_click USING i_ucomm
    i_selfield TYPE slis_selfield.

  CASE i_ucomm.
    WHEN '&IC1'. "bei Doppelklick
      READ TABLE git_acclist INTO wa_aktuelle_zeile
        INDEX i_selfield-tabindex.
      PERFORM maintain_glaccount USING wa_aktuelle_zeile-bukrs
                                       wa_aktuelle_zeile-saknr.
  ENDCASE.
ENDFORM.  "REAKTION_AUF_DOPPELKLICK

*---------------------------------------------------------------------
* Unterprogramm fuer Layoutangaben
*---------------------------------------------------------------------
FORM layout_allg_build USING ls_layout TYPE slis_layout_alv.
  ls_layout-zebra  = 'X'.
  ls_layout-colwidth_optimize = 'X'.
ENDFORM.  "layout_allg_build.


*---------------------------------------------------------------------
*  Unterprogramm fuer das Fuellen des Feldkatalogs
*---------------------------------------------------------------------
FORM feldkatalog_fuellen.

  DATA: ls_dfies TYPE dfies.

  CLEAR git_fieldcat.

  DEFINE add_field_2_cat.
    clear wa_feldkatalog.
    wa_feldkatalog-fieldname  = &1.
    wa_feldkatalog-ref_fieldname  = &3.
    wa_feldkatalog-ref_tabname  = &2.
    append wa_feldkatalog to git_fieldcat.
  END-OF-DEFINITION.

  add_field_2_cat:
    'KTOPL' 'SKA1' 'KTOPL',
    'SAKNR' 'SKA1' 'SAKNR',
    'BILKT' 'SKA1' 'BILKT',
    'BUKRS' 'SKB1' 'BUKRS',
    'ALTKT' 'SKB1' 'ALTKT',
    'TXT20_E' 'SKAT' 'TXT20',
    'TXT50_E' 'SKAT' 'TXT50',
    'TXT20_D' 'SKAT' 'TXT20',
    'TXT50_D' 'SKAT' 'TXT50',
    'TXT20_F' 'SKAT' 'TXT20',
    'TXT50_F' 'SKAT' 'TXT50',

 *     add your addt'l text fields here
    'KTOKS' 'SKA1' 'KTOKS',
    'XBILK' 'SKA1' 'XBILK',
    'MWSKZ' 'SKB1' 'MWSKZ',
    'MITKZ' 'SKB1' 'MITKZ',
    'XOPVW' 'SKB1' 'XOPVW',
    'XMWNO' 'SKB1' 'XMWNO',
    'FSTAG' 'SKB1' 'FSTAG'.

* add your addt'l field here...

ENDFORM.  "feldkatalog_fuellen.

*&---------------------------------------------------------------------*
*&      Form  MAINTAIN_GLACCOUNT
*&---------------------------------------------------------------------*
*       Maintain GL Acct (CALL TRANSACTION)
*----------------------------------------------------------------------*
*      -->P_BUKRS  Company Code
*      -->P_SAKNR  G/L AccountNo
*----------------------------------------------------------------------*
FORM maintain_glaccount  USING    p_bukrs TYPE bukrs
                                  p_saknr TYPE saknr.

* NOTE: doesn't work when tree-display is activated

  SET PARAMETER ID 'BUK' FIELD p_bukrs.
  SET PARAMETER ID 'SAK' FIELD p_saknr.
  CALL TRANSACTION 'FS00' AND SKIP FIRST SCREEN.

ENDFORM.                    " MAINTAIN_GLACCOUNT

Weiterlesen

Bilanz- und GuV-Struktur von einem System ins andere kopieren (ohne KTW)

17. Februar 2011 , Geschrieben von sapmandoo Veröffentlicht in #FI

Bilanz- und GuV-Struktur von einem System ins andere kopieren (ohne KTW)

 

Quellsystem:

Transaktion FSO2 aufrufen. Die jeweilige Bilanzstruktur auswählen. Dann im Kommandofeld (oben links) folgende Zeichen (011Z) eingeben und mit ENTER bestätigen. Dann wird Dir die Bilanzstruktur als Coding angezeigt. Dann kannst Du über Hilfsmittel à Download das Coding in eine Textdatei sichern.

 

 image002.png

 

 

Zielsystem:

Mit Transaktion OB58 die Bezeichnung der Bilanzstruktur anlegen (Neue Einträge). Dann mit Transaktion FSO2 und 011Z im Kommandofeld die Textdatei per Upload importieren. Dann sollte die Bilanzstruktur vorhanden sein.

 

image004.png

Weiterlesen
<< < 1 2 3 4