BATCH INPUT MAPPE Thema ist als GELÖST markiert

Getting started ... Alles für einen gelungenen Start.
18 Beiträge • Seite 1 von 2 (current) Nächste
18 Beiträge Seite 1 von 2 (current) Nächste

BATCH INPUT MAPPE

Beitrag von Juri (ForumUser / 10 / 3 / 0 ) »
habe ein Problem mit der Summierung von Feldern bzw. ich kapiere nicht wie ich eine Summe bilde .

Es konkret um Steuerbeträge die Summiert werden sollen.

ZBATCHBUCH[]


in dem Beispiel gehören die Zeilen 1-2 zusammen
und die Zeilen 3-5

der Wert im FELD FWSTE soll summiert ins FELD USTSU geschrieben werden
ich verstehe aber nicht wie

vorab schon mal vielen Dank für eure Hilfe

Grüße Juri
Tabellenausschnitt.JPG


Re: BATCH INPUT MAPPE

Beitrag von jocoder (Specialist / 257 / 3 / 74 ) »
Dies lässt sich mit einer Hilfstabelle bewerkstelligen. Die zusammengehörigen Zeilen haben alle wie es aussieht dieselbe Belegnummer (BELNR).

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.
Der Typ FWSTE_D muss dabei numerisch gewählt werden. Für die Typen BELNR_D und FWSTE_D kann wenn vorhanden ein passender Dictionary-Typ gewählt werden.

Re: BATCH INPUT MAPPE

Beitrag von Juri (ForumUser / 10 / 3 / 0 ) »
vielen Dank für die ausführliche Antwort ich probiere das gleich mal aus

viele Grüße Juri

Re: BATCH INPUT MAPPE

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

leider haben wir kein BASIS 7.40 demnach die alte Syntax :(
kann mir hier jemand bezüglich der Umstellung auf die alte Syntax helfen
dass wäre echt großartig

bin hier ein absoluter Anfänger

VG

Juri

Re: BATCH INPUT MAPPE

Beitrag von jocoder (Specialist / 257 / 3 / 74 ) »
Dann hier eine Version mit Syntax anno 700 oder soll es noch älter sein :):

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.

Folgende Benutzer bedankten sich beim Autor jocoder für den Beitrag:
Juri


Re: BATCH INPUT MAPPE

Beitrag von Juri (ForumUser / 10 / 3 / 0 ) »
Fehler.JPG
OH man ich bin echt ein HORST :
ich bekomme folgende Meldung das liegt vermutlich das die ZBATCHBUCH eine Struktur ist und keine Tabelle :(

kriegs nicht hin kannst du mir hier nochmals helfen das wäre prima
und danke nochmals fürs ANNO 1703 SYNTAX coden

VG

Juri

Re: BATCH INPUT MAPPE

Beitrag von jocoder (Specialist / 257 / 3 / 74 ) »
Dazu ist etwas mehr Kontext notwendig. Am besten das Programm hier mal ganz posten.

Re: BATCH INPUT MAPPE

Beitrag von Juri (ForumUser / 10 / 3 / 0 ) »
Hi jocoder,

vielen Dank ich habe es mit deinem Code jetzt hinbekommen die Daten stehen da wo sie sollen.
Tabelle_Summiert.JPG

jetzt habe ich noch ein Problem mit der Verarbeitung des Feldes
wie mache ich korrekte Zuordnung mit dem bdc_field
also der korrekte Betrag zum Beleg?
Hier wird nur der letzte Wert übernommen und alle Buchungen haben den selben MwSt. Betrag von 6,79 :(
Dynpro.JPG
über eine Hilfestellung wäre ich dir sehr dankbar

VG

Juri

Re: BATCH INPUT MAPPE

Beitrag von DeathAndPain (Top Expert / 1538 / 178 / 340 ) »
Also erst Dein letzter Screenshot stellt überhaupt etwas dar, was ich mit programmiertem Batch Input in Verbindung bringe. Aber das von jocoder angesprochene Problem bleibt: Du bietest nur kleine Fragmente, so dass der Kontext fehlt und man Dir daher nicht wirklich helfen kann.

In Deinem Screenshot zeigst Du die Stelle, an der Dein Feldwert in die Batchmappe eingefügt wird. Die Frage ist jetzt, wo er herkommt. Und die wird voraussichtlich nicht zu beantworten sein, solange Du nicht bereit bist, mal Dein ganzes Programm, eingefasst in code-Tags, zum Besten zu geben.

Re: BATCH INPUT MAPPE

Beitrag von Juri (ForumUser / 10 / 3 / 0 ) »
Klar bin ich bereit das zu posten ich will ja schließlich Hilfe von euch
war mir nicht klar hätte das Programm gleich posten sollen

also das ist das Übernahme Programm der BATCH INPUT Mappe

das Programm wird dann in der SM 35 gestartet

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

Re: BATCH INPUT MAPPE

Beitrag von DeathAndPain (Top Expert / 1538 / 178 / 340 ) »
Danke. Nun bin ich leider kein FI-Experte und stecke nicht so in den FI-Transaktionen drin, aber an der von Dir genannten Problemstelle fällt mir das

PERFORM bdc_field USING 'BSET-FWSTE(1)' ZOPBUCH-USTSU.

auf. Das sieht mir so aus, als ob Du da ein Table Control füllst und dabei in Deinem Code hart die erste Zeile vorgegeben ist. Ist das möglicherweise Dein Problem? Dann müsstest Du in Deinem Code ermitteln, in welche jeweilige Zeile der Wert gehen soll und die Eins dynamisch durch diesen Wert ersetzen lassen.

Re: BATCH INPUT MAPPE

Beitrag von Juri (ForumUser / 10 / 3 / 0 ) »
danke fürs drüber schauen
also die (1) steht drin sonst werden hier gar keine Werte übergebe
wie mache ich das mit der dynamischen Zuordnung hast du mir einen Vorschlag

sorry fürs nerven

Re: BATCH INPUT MAPPE

Beitrag von DeathAndPain (Top Expert / 1538 / 178 / 340 ) »
Na ja, Du programmierst ja im Prinzip eine Fernsteuerung für die Transaktion. Da musst Du halt aufgrund Deiner Kenntnis der Transaktion vorher genau wissen, welche Felder auf welchen Bildschirmen kommen und was wo einzugeben ist. Dein Code deutet ja auch darauf hin, dass Du Dir hierzu Gedanken gemacht hast und weißt, was Du tust.

Wie gesagt, die (1) deutet darauf hin, dass hier Werte in ein Table Control eingegeben werden sollen. Die Zahl repräsentiert hierbei die Zeilennummer. Du musst Dir halt anschauen, was Du tun würdest, wenn Du das Table Control händisch im Vordergrund (aber sicherheitshalber mit simuliertem Hintergrundmodus für den Fall, das die Transaktion sich dann anders verhält) füllen würdest. Wie gesagt, ich bin leider kein FI-ler und kenne die Transaktion daher nicht, aber was ich mir zum Beispiel vorstellen könnte, ist, dass die übrigen Zeilen des Table Control ausgegraut sind und Du erst auf eine Drucktaste "Neue Zeile" klicken musst, um sie eingabebereit zu machen. Das bekommst Du in Deinem Batch Input dann und nur dann nachgestellt, wenn es für diesen Klick auf "Neue Zeile" eine Taste oder Tastenkombination gibt, die Du als OK-Code senden kannst. Manche Bildschirmbilder enthalten auch Elemente, die nicht per Tastatur aktiviert werden können. Solche Transaktionen sind nicht batch-input-fähig.

Aber das ist, wie gesagt, nur eine Spekulation, da ich mit Deiner Transaktion keine Erfahrung habe.

Folgende Benutzer bedankten sich beim Autor DeathAndPain für den Beitrag:
Juri


Re: BATCH INPUT MAPPE

Beitrag von Juri (ForumUser / 10 / 3 / 0 ) »
Ok ich danke dir im Prinzip ist das ganze ja so einfach "im Prinzip" wenn es die Rundungsdifferenzen nicht geben würde :(
bei den übernommenen Daten wird nicht kaufmännisch gerundet und deswegen kommt es hier zu Problemen

PERFORM bdc_field USING 'BDC_OKCODE'
'CALC'.

jetzt weiß ich auch warum die Leute wie verrückt FI´Ler suchen *weils keiner machen will *grins*

werde mich mal versuchen ich halte euch auf dem laufenden wen es interessiert

Re: BATCH INPUT MAPPE

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

also ich habe da jetzt soweit hinbekommen mit euren Tipps
jetzt habe ich noch ein Problem:

beim Abspielen der Mappe kommt folgende Meldung
ich möchte jetzt das Feld Dynpro Ansprechen grüner Haken das Enter müsste das doch sein.

PERFORM bdc_dynpro USING 'SAPLTAX1' '0300'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTE'.

hab schon alles ausprobiert --> wenn ich Enter auf der Tastatur drücke wird alles korrekt verbucht.
Dynpro.JPG


Über diesen Beitrag



ABAP & SAP eBook Flatrate von Espresso Tutorials Sponsorlink
Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Vergleichbare Themen

Batch Input Mappe
von RantanplanFX » 13.02.2014 13:00
Batch Input Mappe Problem
von Nox » 10.03.2021 11:42
Probleme mit Batch Input Mappe
von quinn_dexter » 04.05.2006 16:14
Batch Input Mappe mit Report erzeugen
von Alexity » 09.08.2019 11:39
kann Batch Input Mappe nicht löschen
von LittleT » 04.10.2007 07:14