Mehrere Sätze pro Buchung/Beleg verarbeiten- TA KB21N

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

Mehrere Sätze pro Buchung/Beleg verarbeiten- TA KB21N

Beitrag von Stegemann90 (ForumUser / 31 / 3 / 0 ) »
Hallo zusammen!

Ich weiß nicht, ob das Thema hier genau richtig ist, aber ich versuche mal meine Glück...

Ich habe folgendes Problem: Über die Transaktion KB21N sollen Daten zur Leistungsverrechnung automatisch über ein Programm eingespielt werden und daraufhin per Batch-Input gebucht werden.
Das Programm habe ich bisher schon erfolgreich erstellt und kann dieses damit auch umsetzen, jedoch wird bisher pro Satz eine Buchung durchgeführt. Der Quellcode ist wie folgt:

REPORT Z_KB21N_TEST.
************************Declarations***********************
include bdcrecx1.
DATA: BEGIN OF BDC_DATA OCCURS 0.
INCLUDE STRUCTURE BDCDATA.
DATA: END OF BDC_DATA.
DATA: BEGIN OF ITAB OCCURS 0,
KRKRS LIKE SVALD-VALUE(02),
WRBTR10(10),
WRBTR11(10),
BLTXT LIKE COHEADER-BLTXT,
WRBTR1(8),
WRBTR2(6),
WRBTR3(8),
WRBTR4(6),
WRBTR5(10),
WRBTR6(4),
WRBTR7(3),
WRBTR8(6),
WRBTR9(20),
END OF ITAB.
***************Initializations***************************
start-of-selection.
CLEAR BDC_DATA.
REFRESH BDC_DATA.
***************Upload************************************
PERFORM DATEN_LADEN USING
'Dateipfad'.
***Call Transaction / Batch-Input im Fehlerfall *********
perform open_group. "open batch input file
LOOP AT ITAB.
perform bdc_dynpro using 'SAPLSPO4' '0300'.
*perform bdc_field using 'BDC_CURSOR'
* 'SVALD-VALUE(01)'.
perform bdc_field using 'BDC_OKCODE'
'=FURT'.
perform bdc_field using 'SVALD-VALUE(01)'
ITAB-KRKRS.
perform bdc_dynpro using 'SAPLK23F1' '1200'.
perform bdc_field using 'RK23F-STATUS'
'L'.
perform bdc_field using 'COHEADER-SEND_REC_REL'
'10SAP'.
perform bdc_field using 'COHEADER-BLDAT'
ITAB-WRBTR10.
perform bdc_field using 'COHEADER-BUDAT'
ITAB-WRBTR11.
perform bdc_field using 'COHEADER-BLTXT'
ITAB-BLTXT.
*perform bdc_field using 'BDC_CURSOR'
* 'EL0(01)'.
perform bdc_field using 'EL2(01)'
ITAB-WRBTR1.
perform bdc_field using 'EL3(01)'
ITAB-WRBTR2.
perform bdc_field using 'EL4(01)'
ITAB-WRBTR3.
perform bdc_field using 'EL6(01)'
ITAB-WRBTR4.
perform bdc_field using 'EL8(01)'
ITAB-WRBTR5.
perform bdc_field using 'ELE(01)'
ITAB-WRBTR7.
perform bdc_field using 'ELF(01)'
ITAB-WRBTR8.
perform bdc_field using 'EL0(01)'
ITAB-WRBTR9.
perform bdc_field using 'ELR1(01)'
ITAB-WRBTR6.
perform bdc_dynpro using 'SAPLK23F1' '1200'.
perform bdc_field using 'BDC_OKCODE'
'=POST'.
*perform bdc_field using 'BDC_CURSOR'
* 'EL2(01)'.
perform bdc_transaction using 'KB21N'.
ENDLOOP.
perform close_group.
******************************FORMS*******************************
FORM DATEN_LADEN USING DATEI.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = DATEI
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
TABLES
DATA_TAB = ITAB
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHOITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
OTHERS = 17.
ENDFORM.

Ich habe bereits erkannt, dass er bei dem Befehl
perform bdc_field using 'EL2(01)'
ITAB-WRBTR1.
in die erste Zeile (01) der Spalte EL2 springt, die Daten dann einfügt und über den Befehl POST bucht. Nun soll das Programm aber jeweils 11 Sätze pro Buchung einfügen und dann einen neuen Beleg für die nächsten 11 Sätze aus ITAB verwenden usw...

Ich hoffe, ich habe das verständlich beschreiben und ihr könnt mir helfen...

Vielen Dank!

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


Re: Mehrere Sätze pro Buchung/Beleg verarbeiten- TA KB21N

Beitrag von Thomas R. (Expert / 754 / 73 / 34 ) »
Hallo,
Du hast doch den Knackpunkt schon gefunden.
Abhängig von Deinen Daten füllst Du auch die Zeilen 2(-11)
perform bdc_field using 'EL2(02)'
D.h. alle zeilenabhängigen Einträge werden vor dem Post erzeugt.

MfG
Thomas R.

Re: Mehrere Sätze pro Buchung/Beleg verarbeiten- TA KB21N

Beitrag von Stegemann90 (ForumUser / 31 / 3 / 0 ) »
Vielen Dank erstmal für die Antwort!

Das habe ich bereits versucht...Also alle relevanten Zeilen aus dem Programm, wo die Felder mit Daten gefüllt werden (siehe Code unten), kopiert und durch die Zeilennummer ersetzt....
Aber er nimmt ja innerhalb des Loops immer die selbe Zeile bzw die Werte der einen Zeile aus der ITAB und fügt mir so elfmal den selbsen Satz ein, bucht dann und macht das dann somit elfmal für alle Zeilen aus der ITAB.

(...)
perform bdc_field using 'EL2(01)'
ITAB-WRBTR1.
perform bdc_field using 'EL3(01)'
ITAB-WRBTR2.
perform bdc_field using 'EL4(01)'
ITAB-WRBTR3.
perform bdc_field using 'EL6(01)'
ITAB-WRBTR4.
perform bdc_field using 'EL8(01)'
ITAB-WRBTR5.
perform bdc_field using 'ELE(01)'
ITAB-WRBTR7.
perform bdc_field using 'ELF(01)'
ITAB-WRBTR8.
perform bdc_field using 'EL0(01)'
ITAB-WRBTR9.
perform bdc_field using 'ELR1(01)'
ITAB-WRBTR6.
perform bdc_field using 'EL2(02)'
ITAB-WRBTR1.
perform bdc_field using 'EL3(02)'
ITAB-WRBTR2.
perform bdc_field using 'EL4(02)'
ITAB-WRBTR3.
perform bdc_field using 'EL6(02)'
ITAB-WRBTR4.
perform bdc_field using 'EL8(02)'
ITAB-WRBTR5.
perform bdc_field using 'ELE(02)'
ITAB-WRBTR7.
perform bdc_field using 'ELF(02)'
ITAB-WRBTR8.
perform bdc_field using 'EL0(02)'
ITAB-WRBTR9.
perform bdc_field using 'ELR1(02)'
ITAB-WRBTR6.
usw....

Wie kann ich den anordnen, dass er in Zeile (02) dann auch den nächsten Wert aus der ITAB nimmt...?

Re: Mehrere Sätze pro Buchung/Beleg verarbeiten- TA KB21N

Beitrag von wreichelt (Top Expert / 1031 / 29 / 188 ) »
Hallo,

manche der neuen SAP-Transaktionen geht nicht mit BTCI, wir haben die alte KB21 dafür verwendet und dort
hat auch alles funktioniert.

Gruß
Wolfgang

Re: Mehrere Sätze pro Buchung/Beleg verarbeiten- TA KB21N

Beitrag von Stegemann90 (ForumUser / 31 / 3 / 0 ) »
Aber wenn ich pro Satz eine Buchung erzeuge (wie ganz oben im Programmcode eingestellt), erstellt SAP ja eine korrekte Batch-Input Mappe, die ich auch abspielen kann und es dann auch korrekt gebucht wird. Also denke ich schon, das BTCI für die TA funktioniert...

Meine Frage zielt ja nur noch daruf ab, ob ich in der Transaktion mehrere Sätze pro Beleg erfassen kann per Programm (sodass ich z.B. bei 550 Buchungssätzen bei 11 Sätzen pro Buchung nur 55 Belege benötige statt 550 Belegen bei einem Satz pro Buchung)...

Re: Mehrere Sätze pro Buchung/Beleg verarbeiten- TA KB21N

Beitrag von Thomas R. (Expert / 754 / 73 / 34 ) »
Hallo,
Du hast die eigentliche Aufgabe erkannt,
Du musst zuerst 11er Päckchen machen, die Du dann abarbeiten kannst.
Dies ist mit einem internen Zähler einfach zu erreichen. Achtung, nach dem letzten DS muss i.A. nochmals ein Post durchführen.

Grober Pseudocode:
loop itab.
at first.
open group.
zähler = 0.
endat.
zähler = zähler + 1.
if zähler = 1.
header daten
endif.
Positionsdaten auf Zählerzeile einfügen
if zähler = 11.
Transaktion abschließen
zähler = 0.
endif.
at last.
if zähler <> 0.
Transaktion abschließen.
endif.
close group.
endat
endloop.

Du könntest aber auch statt über BTCI auf den BAPI
BAPI_ACC_ACTIVITY_ALLOC_POST
gehen.

MfG
Thomas R.

Re: Mehrere Sätze pro Buchung/Beleg verarbeiten- TA KB21N

Beitrag von Stegemann90 (ForumUser / 31 / 3 / 0 ) »
Hallo,

habe es jetzt mal versucht einzubauen:
REPORT Z_KB21N_TEST.
************************Declarations***********************
include bdcrecx1.
DATA: BEGIN OF BDC_DATA OCCURS 0.
INCLUDE STRUCTURE BDCDATA.
DATA: END OF BDC_DATA.
DATA zaehler type i.
DATA: BEGIN OF ITAB OCCURS 0,
KRKRS LIKE SVALD-VALUE(02),
WRBTR10(10),
WRBTR11(10),
BLTXT LIKE COHEADER-BLTXT,
WRBTR1(8),
WRBTR2(6),
WRBTR3(8),
WRBTR4(6),
WRBTR5(10),
WRBTR6(4),
WRBTR7(3),
WRBTR8(6),
WRBTR9(20),
END OF ITAB.
***************Initializations***************************
start-of-selection.
CLEAR BDC_DATA.
REFRESH BDC_DATA.
***************Upload************************************
PERFORM DATEN_LADEN USING
'Dateipfad'.
***Call Transaction / Batch-Input im Fehlerfall *********
perform open_group. "open batch input file

LOOP AT ITAB.
AT FIRST.
zaehler = 0.
ENDAT.
zaehler = zaehler + 1.
IF zaehler = 1.
perform bdc_dynpro using 'SAPLSPO4' '0300'.
perform bdc_field using 'BDC_OKCODE'
'=FURT'.
perform bdc_field using 'SVALD-VALUE(01)'
ITAB-KRKRS.
perform bdc_dynpro using 'SAPLK23F1' '1200'.
perform bdc_field using 'RK23F-STATUS'
'L'.
perform bdc_field using 'COHEADER-SEND_REC_REL'
'10SAP'.
perform bdc_field using 'COHEADER-BLDAT'
ITAB-WRBTR10.
perform bdc_field using 'COHEADER-BUDAT'
ITAB-WRBTR11.
perform bdc_field using 'COHEADER-BLTXT'
ITAB-BLTXT.
ENDIF.
perform bdc_field using 'EL2(zaehler)'
ITAB-WRBTR1.
perform bdc_field using 'EL3(zaehler)'
ITAB-WRBTR2.
perform bdc_field using 'EL4(zaehler)'
ITAB-WRBTR3.
perform bdc_field using 'EL6(zaehler)'
ITAB-WRBTR4.
perform bdc_field using 'EL8(zaehler)'
ITAB-WRBTR5.
perform bdc_field using 'ELE(zaehler)'
ITAB-WRBTR7.
perform bdc_field using 'ELF(zaehler)'
ITAB-WRBTR8.
perform bdc_field using 'EL0(zaehler)'
ITAB-WRBTR9.
perform bdc_field using 'ELR1(zaehler)'
ITAB-WRBTR6.
IF zaehler = 11.
perform bdc_dynpro using 'SAPLK23F1' '1200'.
perform bdc_field using 'BDC_OKCODE'
'=POST'.
perform bdc_transaction using 'KB21N'.
zaehler = 0.
ENDIF.
AT last.
IF zaehler <> 0.
perform bdc_dynpro using 'SAPLK23F1' '1200'.
perform bdc_field using 'BDC_OKCODE'
'=POST'.
perform bdc_transaction using 'KB21N'.
ENDIF.
ENDAT.
ENDLOOP.
perform bdc_dynpro using 'SAPLK23F1' '1200'.
perform bdc_field using 'BDC_OKCODE'
'=POST'.
perform bdc_transaction using 'KB21N'.
perform close_group.
******************************FORMS*******************************
FORM DATEN_LADEN USING DATEI.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = DATEI
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
TABLES
DATA_TAB = ITAB
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHOITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
OTHERS = 17.
ENDFORM.

Allerdings zeigt er, wenn ich daraufhin die generierte Batch Input Mappe abspielen will, folgende Fehlermeldung an:
Feld ELR1. ist in Dynpro SAPLK23F1 1200 nicht vorhanden
Meldungsnr. 00349

Er scheint nicht die Nummer durch die Variable zaehler zu erhalten... Kannn mir da nochmal jemand helfen...

Alternativ: Wie funktioniert das mit BAPI? Da kenne ich mich ehrlich gesagt überhaupt noch nicht aus...

Vielen, vielen Dank!

Re: Mehrere Sätze pro Buchung/Beleg verarbeiten- TA KB21N

Beitrag von Thomas R. (Expert / 754 / 73 / 34 ) »
Hallo,
schau Dir doch mal den Eintrag genau an:
In Deinem Ursprungspost steht:
perform bdc_field using 'ELR1(01)'
Die Fehlermeldung sagt:
Feld ELR1. ist in Dynpro SAPLK23F1 1200 nicht vorhanden

Du must Dir den Feldnamen inkl. 2-stelligem Zähler zusammenbauen bevor Du ihn an den Perform gibst.

MfG
Thomas R.

Re: Mehrere Sätze pro Buchung/Beleg verarbeiten- TA KB21N

Beitrag von Stegemann90 (ForumUser / 31 / 3 / 0 ) »
Ja, und genau daran scheitere ich noch... Habs auch schon selber probiert mit "0 + zaehler" etc...
Wäre wirklich auper, wenn mir dabei noch jemand helfen kann...

Falls nicht, war das auf jeden Fall schon mal eine super Hilfe hier bisher! Danke!

Re: Mehrere Sätze pro Buchung/Beleg verarbeiten- TA KB21N

Beitrag von Thomas R. (Expert / 754 / 73 / 34 ) »
Hallo,
Einfachster Fall:
Definiere den Zähler als NUMC2.

Und dann:
concatenate 'EL3(' Zähler ')' into lv_temp.
perform bdc_field using lv_temp.

MfG
Thomas R.

Re: Mehrere Sätze pro Buchung/Beleg verarbeiten- TA KB21N

Beitrag von erp-bt (Specialist / 163 / 4 / 21 ) »
Hallo,

in SAP-Hinweis 314528 steht eigentlich alles drin. Nimm die schon oben erwähnten Bapis oder nutze Transaktion BATCHMAN.

Viele Grüße,
...entwickelnder Berater...beratender Entwickler

Re: Mehrere Sätze pro Buchung/Beleg verarbeiten- TA KB21N

Beitrag von Stegemann90 (ForumUser / 31 / 3 / 0 ) »
Hallo! Vielen Dank für die Infos...

Ich habe mich jetzt mal bzgl. des BaPis schlauer gemacht, verstehe die Funktionsweise allerdings noch nicht genau...

Wie muss ich die Importdaten aufbereiten (Dateityp, Sapltenbelegung, Field-Mapping) und wie bekomme ich die Daten dann in das System?

Und wie kann ich den Bapi dann ausführen?

Wie man merkt, bin ich bei dem Thema blutiger Anfänger ;)

Re: Mehrere Sätze pro Buchung/Beleg verarbeiten- TA KB21N

Beitrag von MrBojangles (Specialist / 367 / 3 / 30 ) »
Hier mal ein Beispiel-Aufruf des genannten BAPIs:

Code: Alles auswählen.

*&---------------------------------------------------------------------*
*& Report  ZTEST_KB21N_BAPI
*&
*&---------------------------------------------------------------------*
*& Demo-Programm BAPI-Aufruf BAPI_ACC_ACTIVITY_ALLOC_POST
*&                           Leistungsverrechnung (KB21N)
*&---------------------------------------------------------------------*

REPORT ztest_kb21n_bapi.

DATA: ls_doc_header TYPE bapidochdrp.
DATA: lt_doc_items  TYPE TABLE OF bapiaaitm,
      ls_doc_item   TYPE bapiaaitm,
      lt_return     TYPE TABLE OF bapiret2.
DATA: ls_docno      TYPE bapidochdrp-doc_no.

* Belegkopf
ls_doc_header-co_area     = '1000'.         "Kostenrechnungskreis
ls_doc_header-docdate     = sy-datum.       "Belegdatum
ls_doc_header-postgdate   = sy-datum.       "Buchungsdatum
ls_doc_header-doc_hdr_tx  = 'Demo'.         "Belegkopftext
ls_doc_header-username    = sy-uname.       "User-Name

* Positionen aufbauen
* Pos. 1
ls_doc_item-send_cctr     = '0000002047'.   "Sender-Kostenstelle
ls_doc_item-acttype       = '8'.            "Leistungsart
ls_doc_item-actvty_qty    = 3.              "Menge
ls_doc_item-rec_cctr      = '0000002013'.   "Empfänger-KST
APPEND ls_doc_item TO lt_doc_items.

* Pos. 2
ls_doc_item-send_cctr     = '0000002047'.
ls_doc_item-acttype       = '8'.
ls_doc_item-actvty_qty    = 10.
ls_doc_item-rec_cctr      = '0000002004'.
APPEND ls_doc_item TO lt_doc_items.

* BAPI rufen
CALL FUNCTION 'BAPI_ACC_ACTIVITY_ALLOC_POST'
  EXPORTING
    doc_header      = ls_doc_header
*   IGNORE_WARNINGS = ' '
  IMPORTING
    doc_no          = ls_docno
  TABLES
    doc_items       = lt_doc_items
    return          = lt_return
*   CRITERIA        =
*   CUSTOMER_FIELDS =
  .

* COMMIT nicht vergessen!
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.

* Meldungen ausgeben
IF lt_return[] IS NOT INITIAL.
  CALL FUNCTION 'C14ALD_BAPIRET2_SHOW'
    TABLES
      i_bapiret2_tab = lt_return.
ENDIF.
Du müsstest den Abschnitt "Positonen aufbauen" durch den LOOP über Deine int. Tabelle ersetzen.
Weiterhin viel Freude mit SAP...
Cheers
MrB.

Re: Mehrere Sätze pro Buchung/Beleg verarbeiten- TA KB21N

Beitrag von Stegemann90 (ForumUser / 31 / 3 / 0 ) »
Super! Vielen, vielen Dank (allen) für die Antwort!

Werde es heute dann mal auf's Neue probieren...

Re: Mehrere Sätze pro Buchung/Beleg verarbeiten- TA KB21N

Beitrag von Stegemann90 (ForumUser / 31 / 3 / 0 ) »
Hallo, ich habe den Code jetzt folgendermaßen abgewandelt, um den Loop einzubauen...

Code: Alles auswählen.

*&---------------------------------------------------------------------*
*& Report  Z_KB21N_BAPI
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  Z_KB21N_BAPI.

DATA: ls_doc_header TYPE bapidochdrp.
DATA: lt_doc_items  TYPE TABLE OF bapiaaitm.
DATA: ls_doc_item   TYPE bapiaaitm.
DATA: lt_return     TYPE TABLE OF bapiret2.
DATA: ls_docno      TYPE bapidochdrp-doc_no.
DATA: BEGIN OF ITAB OCCURS 0,
  KRKRS LIKE SVALD-VALUE(02),
  WRBTR10(10),
  WRBTR11(10),
  BLTXT LIKE COHEADER-BLTXT,
  WRBTR1(8),
  WRBTR2(6),
  WRBTR3(8),
  WRBTR4(6),
  WRBTR5(10),
  WRBTR6(4),
  WRBTR7(3),
  WRBTR8(6),
  WRBTR9(20),
END OF ITAB.

***************Upload************************************
  PERFORM DATEN_LADEN USING
        'C:\Datenmigration\uploadkb21n.txt'.



* Belegkopf
ls_doc_header-co_area     = '50'.         "Kostenrechnungskreis
ls_doc_header-docdate     = '20140731'.           "Belegdatum
ls_doc_header-postgdate   = '20140731'.       "Buchungsdatum
ls_doc_header-doc_hdr_tx  = ITAB-BLTXT.         "Belegkopftext
ls_doc_header-username    = sy-uname.       "User-Name

LOOP AT ITAB.
* Positionen aufbauen
* Pos. 1
ls_doc_item-send_cctr     = ITAB-WRBTR1.   "Sender-Kostenstelle
ls_doc_item-acttype       = ITAB-WRBTR2.            "Leistungsart
ls_doc_item-actvty_qty    = ITAB-WRBTR6.              "Menge
ls_doc_item-rec_cctr      = ITAB-WRBTR3.   "Empfänger-KST
ls_doc_item-rec_order     = ITAB-WRBTR4.   "Empfänger-Auftrag
ls_doc_item-rec_wbs_el    = ITAB-WRBTR5.   "Empfänger-KST
ls_doc_item-activityun    = 'H'         .   "Leistungseinheit
ls_doc_item-person_no      = ITAB-WRBTR8.   "Personal-Nummer
ls_doc_item-seg_text      = ITAB-WRBTR9.   "Segmenttext

APPEND ls_doc_item TO lt_doc_items.
ENDLOOP.


* BAPI rufen
CALL FUNCTION 'BAPI_ACC_ACTIVITY_ALLOC_POST'
  EXPORTING
    doc_header      = ls_doc_header
*   IGNORE_WARNINGS = ' '
  IMPORTING
    doc_no          = ls_docno
  TABLES
    doc_items       = lt_doc_items
    return          = lt_return
*   CRITERIA        =
*   CUSTOMER_FIELDS =
  .

* COMMIT nicht vergessen!
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.

* Meldungen ausgeben
IF lt_return IS NOT INITIAL.
  CALL FUNCTION 'C14ALD_BAPIRET2_SHOW'
    TABLES
      i_bapiret2_tab = lt_return.
ENDIF.
******************************FORMS*******************************
FORM DATEN_LADEN USING DATEI.
  CALL FUNCTION 'GUI_UPLOAD'
  EXPORTING
    FILENAME = DATEI
    FILETYPE = 'ASC'
    HAS_FIELD_SEPARATOR = 'X'
  TABLES
    DATA_TAB = ITAB
  EXCEPTIONS
    FILE_OPEN_ERROR = 1
    FILE_READ_ERROR = 2
    NO_BATCH = 3
    GUI_REFUSE_FILETRANSFER = 4
    INVALID_TYPE = 5
    NO_AUTHOITY = 6
    UNKNOWN_ERROR = 7
    BAD_DATA_FORMAT = 8
    HEADER_NOT_ALLOWED = 9
    SEPARATOR_NOT_ALLOWED = 10
    HEADER_TOO_LONG = 11
    UNKNOWN_DP_ERROR = 12
    ACCESS_DENIED = 13
    DP_OUT_OF_MEMORY = 14
    DISK_FULL = 15
    DP_TIMEOUT = 16
    OTHERS = 17.
ENDFORM.
Beim Auführen des Programms scheint auch alles gut zu klappen, bis die sendende Kostenstelle eingegeben wird. Dort gibt er dann die fehlermeldung aus, "Kostenstelle .... am Buchungsdatum nicht vorhanden". Diese ist aber definitv vorhanden, da ich diese bei einer manuellen Eingabe auch kontieren kann... Komme also wieder einmal nicht weiter... Weiß jemand, woran das liegen könnte? (Anzahl Zeichen und Format werden richtig übertragen)

Vergleichbare Themen

2
Antw.
5156
Views
BAPI FI für allg. Beleg / 2 Sachkonten + MWST Buchung
von Mike10081973 » 30.11.2004 16:09 • Verfasst in ABAP® Core
0
Antw.
1310
Views
USER-Exit in KB21N
von 1?Jobber » 02.06.2008 12:05 • Verfasst in ABAP® Core
3
Antw.
3597
Views
Batch Input oder BAPI für TA KB21N
von ismailer » 15.07.2005 12:04 • Verfasst in ABAP® Core
2
Antw.
4651
Views
Anzahl Sätze in DB-Tabelle
von MarkusW » 22.11.2007 08:40 • Verfasst in ABAP® für Anfänger
2
Antw.
1492
Views
FB 'K_RATIO_PLAN_INTERFACE_PERIOD' entsperrt Sätze nicht
von Kerstin » 11.12.2015 10:07 • Verfasst in ABAP® Core

Aktuelle Forenbeiträge

Zwischensumme Adobe Forms
vor 2 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Zwischensumme Adobe Forms
vor 2 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 2 Tagen von Lucyalison 1 / 64
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 107
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 140