Code: Alles auswählen.
TYPES: belnr_d(16) TYPE c,
fwste_d(8) TYPE p DECIMALS 2.
TYPES: BEGIN sum_per_document,
belnr TYPE belnr_d,
fwste TYPE fwste_d,
END OF sum_per_document.
DATA: subtotals_per_document TYPE HASHED TABLE OF sum_per_document
WITH UNIQUE KEY belnr.
LOOP AT zbatchbuch REFERENCE INTO DATA(item_line).
COLLECT CORRESPONDING sum_per_document( item_line->* ) INTO subtotals_per_document.
ENDLOOP.
LOOP AT zbatchbuch ASSIGNING FIELD-SYMBOL(<item_line>)
WHERE fstag = 'ERTA'.
<item_line>-ustsu = subtotals_per_document[ belnr = <item_line>-belnr ]-fwste.
ENDLOOP.
Code: Alles auswählen.
TYPES: belnr_d(16) TYPE c,
fwste_d(8) TYPE p DECIMALS 2.
TYPES: BEGIN _sum_per_document,
belnr TYPE belnr_d,
fwste TYPE fwste_d,
END OF _sum_per_document.
DATA: subtotals_per_document TYPE HASHED TABLE OF _sum_per_document
WITH UNIQUE KEY belnr,
sum_per_document TYPE _sum_per_document.
FIELD-SYMBOLS: <item_line> LIKE LINE OF zbatchbuch.
LOOP AT zbatchbuch ASSIGNING <item_line>.
MOVE-CORRESPONDING <item_line> TO sum_per_document.
COLLECT sum_per_document INTO subtotals_per_document.
ENDLOOP.
LOOP AT zbatchbuch ASSIGNING <item_line>
WHERE fstag = 'ERTA'.
READ TABLE subtotals_per_document INTO sum_per_document
WITH TABLE KEY belnr = <item_line>-belnr.
ASSERT sy-subrc = 0.
<item_line>-ustsu = sum_per_document-fwste.
ENDLOOP.
Code: Alles auswählen.
*REPORT ZFIDEBBUCHOPNEXUSBI
* Datendeklarationen
TYPES: BEGIN OF BATCH_TYPE,
BELNR(16) TYPE C, "Belegnummer Altsystem
BLART LIKE BKPF-BLART,"Belegart
BW TYPE I, "Verarbeitungs - Switsch
EW TYPE I, "Verarbeitungs - Switsch
NR TYPE I, "Zähler
BSCHL LIKE BSEG-BSCHL, "Buchungsschlüssel
HKONT LIKE BSEG-HKONT, "Kontonummer (Sach/Deb.)
END OF BATCH_TYPE.
*
DATA: WORK_BATCH TYPE BATCH_TYPE.
*
TABLES: BKPF, "Belegkopf für Buchhaltung
SKB1, "Sachkontenstamm
BSEG, "Belegsegment Buchhaltung
BSET,
RF05A.
TYPES: BEGIN OF Z_ZOPBUCH,
BLDAT(10) TYPE C, "Belegdatum im Beleg
BLART LIKE BKPF-BLART, "Belegart
BUKRS LIKE BKPF-BUKRS, "Buchungskreis
BUDAT(10) TYPE C, "Buchungsdatum im Beleg
MONAT LIKE BKPF-MONAT, "Geschäftsmonat
WAERS LIKE BKPF-WAERS, "Währungsschlüssel
BELNR(16) TYPE C, "Belegnummer / Rechnungsnummer
XBLNR LIKE BKPF-XBLNR, "Referenz-Belegnummer
BKTXT LIKE BKPF-BKTXT, "Belegkopftext
SHKZG LIKE BSEG-SHKZG, "Soll-/Haben-Kennzeichen
BSCHL LIKE BSEG-BSCHL, "Buchungsschlüssel
KOART(1) TYPE C, "Kontoart
HKONT LIKE BSEG-HKONT, "Kontonummer (Sach/Deb.)
WRBTR(13) TYPE C, "Betrag in Belegwährung
ZTERM LIKE BSEG-ZTERM, "Zahlungsbedingungsschlüssel
ZFBDT(10) TYPE C, "Basisdatum - Fälligkeitsberechnung
GSBER LIKE BSEG-GSBER, "Geschäftsbereich
KOSTL LIKE BSEG-KOSTL, "Kostenstelle
SGTXT LIKE BSEG-SGTXT, "Positionstext
FSTAG LIKE SKB1-FSTAG, "Feldstatusgruppe
MABER LIKE BSEG-MABER, "Mahnbereich
ZUONR(18) TYPE C, "Fallnummer aus NEXUS
XREF1(12) TYPE C, "Aufnahmedatum aus Nexus
XREF2(12) TYPE C, "Entlassdatum aus Nexus
MWSKZ(2) TYPE C, "Umsatzsteuerkennzeichen
FWSTE(13) TYPE C, "Umsatzsteuerbetrag
MENGE(2) TYPE C, "Menge
MEINS(3) TYPE C, "Mengeneinheit
USTSU(13) TYPE C, "UST Summe
END OF Z_ZOPBUCH.
TYPES: belnr_d(16) TYPE C,
fwste_d(8) TYPE p DECIMALS 2.
TYPES: BEGIN OF _sum_per_document,
belnr TYPE belnr_d,
fwste TYPE fwste_d,
END OF _sum_per_document.
DATA: subtotals_per_document TYPE HASHED TABLE OF _sum_per_document
WITH UNIQUE KEY belnr,
sum_per_document TYPE _sum_per_document.
FIELD-SYMBOLS: <item_line> TYPE Z_ZOPBUCH.
*
DATA:
BEGIN OF ZBATCHBUCH OCCURS 0,
BLDAT(10) TYPE C, "Belegdatum im Beleg
BLART LIKE BKPF-BLART, "Belegart
BUKRS LIKE BKPF-BUKRS, "Buchungskreis
BUDAT(10) TYPE C, "Buchungsdatum im Beleg
MONAT LIKE BKPF-MONAT, "Geschäftsmonat
WAERS LIKE BKPF-WAERS, "Währungsschlüssel
BELNR(16) TYPE C, "Belegnummer / Rechnungsnummer
XBLNR LIKE BKPF-XBLNR, "Referenz-Belegnummer
BKTXT LIKE BKPF-BKTXT, "Belegkopftext
SHKZG LIKE BSEG-SHKZG, "Soll-/Haben-Kennzeichen
BSCHL LIKE BSEG-BSCHL, "Buchungsschlüssel
KOART(1) TYPE C, "Kontoart
HKONT LIKE BSEG-HKONT, "Kontonummer (Sach/Deb.)
WRBTR(13) TYPE C, "Betrag in Belegwährung
ZTERM LIKE BSEG-ZTERM, "Zahlungsbedingungsschlüssel
ZFBDT(10) TYPE C, "Basisdatum - Fälligkeitsberechnung
GSBER LIKE BSEG-GSBER, "Geschäftsbereich
KOSTL LIKE BSEG-KOSTL, "Kostenstelle
SGTXT LIKE BSEG-SGTXT, "Positionstext
FSTAG LIKE SKB1-FSTAG, "Feldstatusgruppe
MABER LIKE BSEG-MABER, "Mahnbereich
ZUONR(18) TYPE C, "Fallnummer aus NEXUS
XREF1(12) TYPE C, "Aufnahmedatum aus Nexus
XREF2(12) TYPE C, "Entlassdatum aus Nexus
MWSKZ(2) TYPE C, "Umsatzsteuerkennzeichen
FWSTE(13) TYPE C, "Umsatzsteuerbetrag
MENGE(2) TYPE C, "Menge
MEINS(3) TYPE C, "Mengeneinheit
USTSU(13) TYPE C, "UST Summe pro BELEG
END OF ZBATCHBUCH.
*Neu Tabelele für nur OP Buchungen
DATA:
BEGIN OF ZOPBUCH OCCURS 0,
BLDAT(10) TYPE C, "Belegdatum im Beleg
BLART LIKE BKPF-BLART, "Belegart
BUKRS LIKE BKPF-BUKRS, "Buchungskreis
BUDAT(10) TYPE C, "Buchungsdatum im Beleg
MONAT LIKE BKPF-MONAT, "Geschäftsmonat
WAERS LIKE BKPF-WAERS, "Währungsschlüssel
BELNR(16) TYPE C, "Belegnummer / Rechnungsnummer
XBLNR LIKE BKPF-XBLNR, "Referenz-Belegnummer
BKTXT LIKE BKPF-BKTXT, "Belegkopftext
SHKZG LIKE BSEG-SHKZG, "Soll-/Haben-Kennzeichen
BSCHL LIKE BSEG-BSCHL, "Buchungsschlüssel
KOART(1) TYPE C, "Kontoart
HKONT LIKE BSEG-HKONT, "Kontonummer (Sach/Deb.)
WRBTR(13) TYPE C, "Betrag in Belegwährung
ZTERM LIKE BSEG-ZTERM, "Zahlungsbedingungsschlüssel
ZFBDT(10) TYPE C, "Basisdatum - Fälligkeitsberechnung
GSBER LIKE BSEG-GSBER, "Geschäftsbereich
KOSTL LIKE BSEG-KOSTL, "Kostenstelle
SGTXT LIKE BSEG-SGTXT, "Positionstext
FSTAG LIKE SKB1-FSTAG, "Feldstatusgruppe
MABER LIKE BSEG-MABER, "Mahnbereich
ZUONR(18) TYPE C, "Fallnummer aus NEXUS
XREF1(12) TYPE C, "Aufnahmedatum aus Nexus
XREF2(12) TYPE C, "Entlassdatum aus Nexus
MWSKZ(2) TYPE C, "Umsatzsteuerkennzeichen
FWSTE(13) TYPE C, "Umsatzsteuerbetrag
MENGE(2) TYPE C, "MENGE
MEINS(3) TYPE C, "Mengeneinheit
USTSU(13) TYPE C, "UST Summe pro BELEG
END OF ZOPBUCH.
* Interne Tabelle - aufbereiten Dynpro - Daten
DATA:
BEGIN OF ZBATCHBUCHS OCCURS 0,
BLDAT(10) TYPE C, "Belegdatum im Beleg
BLART LIKE BKPF-BLART, "Belegart
BUKRS LIKE BKPF-BUKRS, "Buchungskreis
BUDAT(10) TYPE C, "Buchungsdatum im Beleg
MONAT LIKE BKPF-MONAT, "Geschäftsmonat
WAERS LIKE BKPF-WAERS, "Währungsschlüssel
BELNR(16) TYPE C, "Belegnummer / Rechnungsnummer
XBLNR LIKE BKPF-XBLNR, "Referenz-Belegnummer
BKTXT LIKE BKPF-BKTXT, "Belegkopftext
SHKZG LIKE BSEG-SHKZG, "Soll-/Haben-Kennzeichen
BSCHL LIKE BSEG-BSCHL, "Buchungsschlüssel
KOART(1) TYPE C, "Kontoart
HKONT LIKE BSEG-HKONT, "Kontonummer (Sach/Deb.)
WRBTR(13) TYPE C, "Betrag in Belegwährung
ZTERM LIKE BSEG-ZTERM, "Zahlungsbedingungsschlüssel
ZFBDT(10) TYPE C, "Basisdatum - Fälligkeitsberechnung
GSBER LIKE BSEG-GSBER, "Geschäftsbereich
KOSTL LIKE BSEG-KOSTL, "Kostenstelle
SGTXT LIKE BSEG-SGTXT, "Positionstext
FSTAG LIKE SKB1-FSTAG, "Feldstatusgruppe
FBSCHL LIKE BSEG-BSCHL, "Folge - Buchungsschlüssel
FHKONT LIKE BSEG-HKONT, "Folge - Kontonummer (Sach/Deb.)
INDEX TYPE I, "Reihenfolge der Buchungessätze
MABER LIKE BSEG-MABER, "Mahnbereich
ZUONR(18) TYPE C, "Fallnummer aus NEXUS
XREF1(12) TYPE C, "Aufnahmedatum aus Nexus
XREF2(12) TYPE C, "Entlassdatum aus Nexus
MWSKZ(2) TYPE C, "Umsatzsteuerkennzeichen
FWSTE(13) TYPE C, "Umsatzsteuerbetrag
MENGE(2) TYPE C, "MENGE
MEINS(3) TYPE C, "Mengeneinheit
USTSU(13) TYPE C, "UST Summe pro BELEG
END OF ZBATCHBUCHS.
*
include bdcrecxx.
*
start-of-selection.
REFRESH ZBATCHBUCH.
REFRESH ZOPBUCH.
CLEAR ZBATCHBUCH.
CLEAR ZOPBUCH.
FREE ZBATCHBUCH.
FREE ZOPBUCH.
*
*IMPORT ZBATCHBUCH FROM MEMORY ID 'CPIC_DEBX'.
IMPORT ZOPBUCH FROM MEMORY ID 'CPIC_OPNX'.
CLEAR WORK_BATCH-BELNR.
CLEAR WORK_BATCH-BSCHL.
CLEAR WORK_BATCH-HKONT.
CLEAR WORK_BATCH-NR.
CLEAR WORK_BATCH-BW.
CLEAR WORK_BATCH-EW.
REFRESH ZBATCHBUCHS.
CLEAR ZBATCHBUCHS.
FREE ZBATCHBUCHS.
LOOP AT zopbuch ASSIGNING <item_line>.
MOVE-CORRESPONDING <item_line> TO sum_per_document.
COLLECT sum_per_document INTO subtotals_per_document.
ENDLOOP.
LOOP AT zopbuch ASSIGNING <item_line>
WHERE fstag = 'ERTA'.
READ TABLE subtotals_per_document INTO sum_per_document
WITH TABLE KEY belnr = <item_line>-belnr.
ASSERT sy-subrc = 0.
<item_line>-ustsu = sum_per_document-fwste.
ENDLOOP.
*Änderung Abt 18.06.2013 Trennunng OP/Storno
*Schreiben der übernommen ZOPBUCH in die ZBATCHBUCH
*zur internen weiterverarbeitung
PERFORM ZBATCHBUCH_UEB.
*
SORT ZBATCHBUCH BY BELNR ASCENDING BSCHL DESCENDING.
LOOP AT ZBATCHBUCH.
IF WORK_BATCH-BELNR NE ZBATCHBUCH-BELNR AND
WORK_BATCH-EW = 0.
MOVE 1 TO WORK_BATCH-EW.
WORK_BATCH-BELNR = ZBATCHBUCH-BELNR.
PERFORM SCHREIBEN_ZBATCHBUCHS.
WORK_BATCH-BSCHL = ZBATCHBUCH-BSCHL.
WORK_BATCH-HKONT = ZBATCHBUCH-HKONT.
ELSE.
IF WORK_BATCH-BELNR NE ZBATCHBUCH-BELNR AND
WORK_BATCH-EW = 1.
WORK_BATCH-BELNR = ZBATCHBUCH-BELNR.
CLEAR WORK_BATCH-BSCHL.
CLEAR WORK_BATCH-HKONT.
CLEAR WORK_BATCH-NR.
PERFORM SCHREIBEN_ZBATCHBUCHS.
WORK_BATCH-BSCHL = ZBATCHBUCH-BSCHL.
WORK_BATCH-HKONT = ZBATCHBUCH-HKONT.
ELSE.
PERFORM SCHREIBEN_ZBATCHBUCHS.
WORK_BATCH-BSCHL = ZBATCHBUCH-BSCHL.
WORK_BATCH-HKONT = ZBATCHBUCH-HKONT.
ENDIF.
ENDIF.
ENDLOOP.
* Interne Tabelle ZBATCHBUCHS umsortieren nach BELNR und BSCHL
SORT ZBATCHBUCHS BY BELNR ASCENDING INDEX DESCENDING.
***********
* Test Test
* EXPORT ZBATCHBUCHS TO MEMORY ID 'CPIC_DEBS'.
* Ende Test Test
***********
* Mappe öffnen
perform open_group.
* Satzweise Verarbeitung
MOVE SPACE TO WORK_BATCH-BELNR.
LOOP AT ZBATCHBUCHS.
IF WORK_BATCH-BELNR NE ZBATCHBUCHS-BELNR AND
WORK_BATCH-BW = 0.
MOVE 1 TO WORK_BATCH-BW.
WORK_BATCH-BELNR = ZBATCHBUCHS-BELNR.
PERFORM FB01_DEBI_KOPF.
IF ZBATCHBUCHS-KOART = 'D'.
PERFORM FB01_DEBI.
ELSE.
PERFORM FB01_SACH.
ENDIF.
ELSE.
IF WORK_BATCH-BELNR NE ZBATCHBUCHS-BELNR AND
WORK_BATCH-BW = 1.
WORK_BATCH-BELNR = ZBATCHBUCHS-BELNR.
PERFORM FB01_BUCHEN.
PERFORM FB01_DEBI_KOPF.
IF ZBATCHBUCHS-KOART = 'D'.
PERFORM FB01_DEBI.
ELSE.
PERFORM FB01_SACH.
ENDIF.
ELSE.
IF ZBATCHBUCHS-KOART = 'D'.
PERFORM FB01_DEBI.
ELSE.
PERFORM FB01_SACH.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
PERFORM FB01_BUCHEN.
* Mappe schließen
perform close_group.
* Ende Hauptrutine
*&---------------------------------------------------------------------*
*& Form FB01_DEBI_KOPF
*&---------------------------------------------------------------------*
* Aufbereitung der S/H - Buchung (Debitor) im Batch-Input / FB01
* Debitoren - Kopfdaten
*----------------------------------------------------------------------*
FORM FB01_DEBI_KOPF.
* Dynpro 0100
perform bdc_dynpro using 'SAPMF05A' '0100'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'BDC_CURSOR'
'RF05A-NEWKO'.
perform bdc_field using 'BKPF-BLDAT'
ZBATCHBUCHS-BLDAT.
perform bdc_field using 'BKPF-BLART'
ZBATCHBUCHS-BLART.
perform bdc_field using 'BKPF-BUKRS'
ZBATCHBUCHS-BUKRS.
perform bdc_field using 'BKPF-BUDAT'
ZBATCHBUCHS-BUDAT.
perform bdc_field using 'BKPF-WAERS'
ZBATCHBUCHS-WAERS.
perform bdc_field using 'BKPF-XBLNR'
ZBATCHBUCHS-XBLNR.
perform bdc_field using 'BKPF-BKTXT'
ZBATCHBUCHS-BKTXT.
perform bdc_field using 'FS006-DOCID'
'*'.
* S/H Buchung (Debitor)
perform bdc_field using 'RF05A-NEWBS'
ZBATCHBUCHS-BSCHL.
perform bdc_field using 'RF05A-NEWKO'
ZBATCHBUCHS-HKONT.
ENDFORM. " FB01_DEBI_KOPF
*
*&---------------------------------------------------------------------*
*& Form FB01_DEBI
*&---------------------------------------------------------------------*
* Aufbereitung der S/H - Buchung (Debitor) im Batch-Input / FB01
* Neue Position
*----------------------------------------------------------------------*
FORM FB01_DEBI.
* Dynpo 0301
perform bdc_dynpro using 'SAPMF05A' '0301'.
perform bdc_field using 'BSEG-WRBTR'
ZBATCHBUCHS-WRBTR.
perform bdc_field using 'BSEG-ZTERM'
ZBATCHBUCHS-ZTERM.
perform bdc_field using 'BSEG-ZFBDT'
ZBATCHBUCHS-ZFBDT.
perform bdc_field using 'BSEG-ZUONR'
ZBATCHBUCHS-ZUONR.
perform bdc_field using 'BSEG-MABER'
ZBATCHBUCHS-MABER.
perform bdc_field using 'BSEG-SGTXT'
ZBATCHBUCHS-SGTXT.
perform bdc_field using 'BDC_CURSOR'
'RF05A-NEWKO'.
perform bdc_field using 'BDC_OKCODE'
'/07'.
IF ZBATCHBUCHS-XREF1 <> ' '.
perform bdc_dynpro using 'SAPMF05A' '0331'.
perform bdc_field using 'BSEG-XREF1'
ZBATCHBUCHS-XREF1.
perform bdc_field using 'BSEG-XREF2'
ZBATCHBUCHS-XREF2.
ENDIF.
perform bdc_field using 'RF05A-NEWBS'
ZBATCHBUCHS-FBSCHL.
perform bdc_field using 'RF05A-NEWKO'
ZBATCHBUCHS-FHKONT.
ENDFORM. " FB01_DEBI
*&---------------------------------------------------------------------*
*& Form FB01_SACH
*&---------------------------------------------------------------------*
* Aufbereitung der H/S-Buchung (Sachkonto) im Batch-Input / FB01
* Neue Position
*----------------------------------------------------------------------*
FORM FB01_SACH.
* Dynpro 0300
* Änderung wegen Umsatzsteuerbuchung extra Aufbereitung:
IF ZBATCHBUCHS-MWSKZ = '75' OR ZBATCHBUCHS-MWSKZ = '48'.
perform bdc_dynpro using 'SAPMF05A' '0300'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'BDC_CURSOR'
'RF05A-NEWKO'.
perform bdc_field using 'BSEG-WRBTR'
ZBATCHBUCHS-WRBTR.
IF ZBATCHBUCHS-BUKRS = '0005'.
IF ZBATCHBUCHS-HKONT NE '0000369105' AND
ZBATCHBUCHS-HKONT NE '0000369005'.
perform bdc_field using 'BSEG-MENGE'
ZBATCHBUCHS-MENGE.
perform bdc_field using 'BSEG-MEINS'
ZBATCHBUCHS-MEINS.
ELSE.
ENDIF.
ENDIF.
perform bdc_field using 'BSEG-MWSKZ'
ZBATCHBUCHS-MWSKZ.
perform bdc_field using 'BSEG-SGTXT'
* '+'.
ZBATCHBUCHS-SGTXT.
perform bdc_field using 'RF05A-NEWBS'
ZBATCHBUCHS-FBSCHL.
perform bdc_field using 'RF05A-NEWKO'
ZBATCHBUCHS-FHKONT.
perform bdc_field using 'BDC_OKCODE'
'/07'.
* Dynpro 0002 - SAPLKACB (Subscr)
perform bdc_dynpro using 'SAPLKACB' '0002'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'COBL-KOSTL'
ZBATCHBUCHS-KOSTL.
perform bdc_dynpro using 'SAPMF05A' '0330'.
perform bdc_field using 'BDC_OKCODE'
'/11'.
perform bdc_field using 'BDC_OKCODE'
'/3'.
ELSE.
perform bdc_dynpro using 'SAPMF05A' '0300'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'BDC_CURSOR'
'RF05A-NEWKO'.
perform bdc_field using 'BSEG-WRBTR'
ZBATCHBUCHS-WRBTR.
IF ZBATCHBUCHS-BUKRS = '0005'.
IF ZBATCHBUCHS-HKONT NE '0000369105' AND
ZBATCHBUCHS-HKONT NE '0000369005'.
perform bdc_field using 'BSEG-MENGE'
ZBATCHBUCHS-MENGE.
perform bdc_field using 'BSEG-MEINS'
ZBATCHBUCHS-MEINS.
ELSE.
ENDIF.
ENDIF.
perform bdc_field using 'BSEG-SGTXT'
* '+'.
ZBATCHBUCHS-SGTXT.
perform bdc_field using 'RF05A-NEWBS'
ZBATCHBUCHS-FBSCHL.
perform bdc_field using 'RF05A-NEWKO'
ZBATCHBUCHS-FHKONT.
perform bdc_field using 'BDC_OKCODE'
'/3'.
perform bdc_field using 'BDC_SUBSCR'
'SAPLKACB'
& ' 0001BLOCK'.
* Dynpro 0002 - SAPLKACB (Subscr)
perform bdc_dynpro using 'SAPLKACB' '0002'.
perform bdc_field using 'BDC_OKCODE'
'=ENTE'.
IF ZBATCHBUCHS-FSTAG = 'ERTA' OR
* Änderung am 27.08.2007
ZBATCHBUCHS-FSTAG = 'ERKA'.
* Ende Änderung am 27.08.2007
perform bdc_field using 'BDC_CURSOR'
'COBL-KOSTL'.
perform bdc_field using 'COBL-GSBER'
ZBATCHBUCHS-GSBER.
perform bdc_field using 'COBL-KOSTL'
ZBATCHBUCHS-KOSTL.
perform bdc_field using 'BDC_SUBSCR'
'SAPLKACB'
& ' 0003BLOCK1'.
ELSE.
ENDIF.
ENDIF.
ENDFORM. " FB01_SACH
*&---------------------------------------------------------------------*
*& Form FB01_BUCHEN
*&---------------------------------------------------------------------*
* Buchen im Batch-Input / FB01
*----------------------------------------------------------------------*
FORM FB01_BUCHEN.
* Automaitsche Stuerbuchung bei Kennzeichen 75/48
PERFORM bdc_dynpro USING 'SAPMF05A' '0700'.
PERFORM bdc_field USING 'BDC_OKCODE'
'STIB'.
PERFORM bdc_dynpro USING 'SAPLTAX1' '0300'.
PERFORM bdc_field USING 'BSET-FWSTE(1)'
ZOPBUCH-USTSU.
* PERFORM bdc_field USING 'BDC_OKCODE'
* 'CALC'.
PERFORM bdc_dynpro USING 'SAPLTAX1' '0300'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/3'.
* PERFORM bdc_dynpro USING 'SAPLSPO1' '0100'.
* PERFORM bdc_field USING 'BDC_OKCODE'
* 'YES'.
PERFORM bdc_dynpro USING 'SAPMF05A' '0700'.
PERFORM bdc_field USING 'BDC_OKCODE'
'BU'.
* Dynpro 0300
perform bdc_dynpro using 'SAPMF05A' '0300'.
perform bdc_field using 'BDC_OKCODE'
'=BU'.
perform bdc_field using 'BDC_SUBSCR'
'SAPLKACB'
& ' 0001BLOCK'.
perform bdc_field using 'BDC_CURSOR'
'DKACB-FMORE'.
perform bdc_field using 'DKACB-FMORE'
' '.
perform bdc_transaction using 'FB01'.
REFRESH BDCDATA.
CLEAR BDCDATA.
ENDFORM. " FB01_BUCHEN
*&---------------------------------------------------------------------*
*& Form SCHREIBEN_ZBATCHBUCHS
*&---------------------------------------------------------------------*
* ZBATCHBUCHS aufbereiten (Daten für Dynprofelder)
*----------------------------------------------------------------------*
FORM ZBATCHBUCH_UEB.
LOOP AT ZOPBUCH.
IF ZOPBUCH-BLART NE '00'.
ZBATCHBUCH-BLDAT = ZOPBUCH-BLDAT.
ZBATCHBUCH-BLART = ZOPBUCH-BLART.
ZBATCHBUCH-BUKRS = ZOPBUCH-BUKRS.
ZBATCHBUCH-BUDAT = ZOPBUCH-BUDAT.
ZBATCHBUCH-MONAT = ZOPBUCH-MONAT.
ZBATCHBUCH-WAERS = ZOPBUCH-WAERS.
ZBATCHBUCH-BELNR = ZOPBUCH-BELNR.
ZBATCHBUCH-XBLNR = ZOPBUCH-XBLNR.
ZBATCHBUCH-BKTXT = ZOPBUCH-BKTXT.
ZBATCHBUCH-SHKZG = ZOPBUCH-SHKZG.
ZBATCHBUCH-BSCHL = ZOPBUCH-BSCHL.
ZBATCHBUCH-KOART = ZOPBUCH-KOART.
ZBATCHBUCH-HKONT = ZOPBUCH-HKONT.
ZBATCHBUCH-WRBTR = ZOPBUCH-WRBTR.
MOVE ',' TO ZBATCHBUCH-WRBTR+9(1).
ZBATCHBUCH-ZTERM = ZOPBUCH-ZTERM.
ZBATCHBUCH-ZFBDT = ZOPBUCH-ZFBDT.
ZBATCHBUCH-GSBER = ZOPBUCH-GSBER.
ZBATCHBUCH-KOSTL = ZOPBUCH-KOSTL.
ZBATCHBUCH-SGTXT = ZOPBUCH-SGTXT.
ZBATCHBUCH-FSTAG = ZOPBUCH-FSTAG.
ZBATCHBUCH-MABER = ZOPBUCH-MABER.
ZBATCHBUCH-ZUONR = ZOPBUCH-ZUONR.
ZBATCHBUCH-XREF1 = ZOPBUCH-XREF1.
ZBATCHBUCH-XREF2 = ZOPBUCH-XREF2.
ZBATCHBUCH-MWSKZ = ZOPBUCH-MWSKZ.
ZBATCHBUCH-FWSTE = ZOPBUCH-FWSTE.
ZBATCHBUCH-MENGE = ZOPBUCH-MENGE.
ZBATCHBUCH-MEINS = ZOPBUCH-MEINS.
ZOPBUCH-USTSU = ZOPBUCH-USTSU.
MOVE ',' TO ZOPBUCH-USTSU+9(1).
APPEND ZBATCHBUCH.
ENDIF.
ENDLOOP.
ENDFORM. " UEBERGANG_ZBATCHBUCHS.
*Änderung wegen Umsatzsteuerbuchungen wenn 75 dann Felder füllen.
FORM SCHREIBEN_ZBATCHBUCHS.
ADD 1 TO WORK_BATCH-NR.
ZBATCHBUCHS-BLDAT = ZBATCHBUCH-BLDAT.
ZBATCHBUCHS-BLART = ZBATCHBUCH-BLART.
ZBATCHBUCHS-BUKRS = ZBATCHBUCH-BUKRS.
ZBATCHBUCHS-BUDAT = ZBATCHBUCH-BUDAT.
ZBATCHBUCHS-MONAT = ZBATCHBUCH-MONAT.
ZBATCHBUCHS-WAERS = ZBATCHBUCH-WAERS.
ZBATCHBUCHS-BELNR = ZBATCHBUCH-BELNR.
ZBATCHBUCHS-XBLNR = ZBATCHBUCH-XBLNR.
ZBATCHBUCHS-BKTXT = ZBATCHBUCH-BKTXT.
ZBATCHBUCHS-SHKZG = ZBATCHBUCH-SHKZG.
ZBATCHBUCHS-BSCHL = ZBATCHBUCH-BSCHL.
ZBATCHBUCHS-KOART = ZBATCHBUCH-KOART.
ZBATCHBUCHS-HKONT = ZBATCHBUCH-HKONT.
ZBATCHBUCHS-WRBTR = ZBATCHBUCH-WRBTR.
ZBATCHBUCHS-ZTERM = ZBATCHBUCH-ZTERM.
ZBATCHBUCHS-ZFBDT = ZBATCHBUCH-ZFBDT.
ZBATCHBUCHS-GSBER = ZBATCHBUCH-GSBER.
ZBATCHBUCHS-KOSTL = ZBATCHBUCH-KOSTL.
ZBATCHBUCHS-SGTXT = ZBATCHBUCH-SGTXT.
ZBATCHBUCHS-FBSCHL = WORK_BATCH-BSCHL.
ZBATCHBUCHS-FHKONT = WORK_BATCH-HKONT.
ZBATCHBUCHS-FSTAG = ZBATCHBUCH-FSTAG.
ZBATCHBUCHS-INDEX = WORK_BATCH-NR.
ZBATCHBUCHS-MABER = ZBATCHBUCH-MABER.
ZBATCHBUCHS-ZUONR = ZBATCHBUCH-ZUONR.
IF ZBATCHBUCH-MWSKZ = '75' OR ZBATCHBUCH-MWSKZ = '48'.
ZBATCHBUCHS-MWSKZ = ZBATCHBUCH-MWSKZ.
ZBATCHBUCHS-FWSTE = ZBATCHBUCH-FWSTE.
MOVE ',' TO ZBATCHBUCHS-FWSTE+9(1).
ELSE.
ZBATCHBUCHS-MWSKZ = SPACE.
ZBATCHBUCHS-FWSTE = SPACE.
ENDIF.
ZBATCHBUCHS-XREF1 = ZBATCHBUCH-XREF1.
ZBATCHBUCHS-XREF2 = ZBATCHBUCH-XREF2.
ZBATCHBUCHS-MENGE = ZBATCHBUCH-MENGE.
ZBATCHBUCHS-MEINS = ZBATCHBUCH-MEINS.
ZBATCHBUCHS-USTSU = ZBATCHBUCH-USTSU.
MOVE ',' TO ZOPBUCH-USTSU+9(1).
APPEND ZBATCHBUCHS.
ENDFORM. " SCHREIBEN_ZBATCHBUCHS
Folgende Benutzer bedankten sich beim Autor DeathAndPain für den Beitrag:
Juri