Einfache Frage: RFBIBL00 vs. CT vs. ???

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
29 Beiträge • Vorherige Seite 2 von 2 (current)
29 Beiträge Vorherige Seite 2 von 2 (current)

Beitrag von ralf.wenzel (Top Expert / 3927 / 200 / 280 ) »
TWP hat geschrieben:kanst kniggen, kanste vergessen. An dieser Stelle schönen Gruß von TUETE.
Soll das heißen, das BAPI liefert die Belegnummern nicht zurück? Das kann ich mir beim besten Willen nicht vorstellen, dass es besser sein soll, einen nicht freigegebenen FB zulasten eines BAPI zu verwenden.

Hm, vielleicht noch ne andere Meinung?


LG

Ralf *will das Programm nicht NOCHMAL umbauen
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

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


Beitrag von TWP (Specialist / 445 / 0 / 1 ) »
Noch einmal. Ich habe mich ledigklich auf das PostingInterface bezogen. Ob der FB nun freigegeben ist oder nicht, lasse ich mal offen. Dieser fb kommt z.B. im elektronsichen Kontoauszug zum Einsatz.

Soll aber nicht heissen, das der BAPi die Belegnummer nicht zurückgibt. Ich würde mal auf die Message in BAPRIRET2 tippen. Wenn der Beleg ohne Fehler gebucht wurde, sollte hier die Beglenummer enthalten sein.

Zu prüfen wäre auch, ob es nicht ein anderes (allgemeineres) BAPI für FI gibt da man hier ja auf bestimmte Bewegungen eingegrenzt wird.

Thomas

Beitrag von ralf.wenzel (Top Expert / 3927 / 200 / 280 ) »
TWP hat geschrieben:Noch einmal. Ich habe mich ledigklich auf das PostingInterface bezogen. Ob der FB nun freigegeben ist oder nicht, lasse ich mal offen. Dieser fb kommt z.B. im elektronsichen Kontoauszug zum Einsatz.
Achsooooooooooo.
TWP hat geschrieben:Soll aber nicht heissen, das der BAPi die Belegnummer nicht zurückgibt. Ich würde mal auf die Message in BAPRIRET2 tippen. Wenn der Beleg ohne Fehler gebucht wurde, sollte hier die Beglenummer enthalten sein.
Das dachte ich auch, da steht aber die Vorgängerbelegnummer drin, die ich dem FB selbst übergebe.
TWP hat geschrieben:Zu prüfen wäre auch, ob es nicht ein anderes (allgemeineres) BAPI für FI gibt da man hier ja auf bestimmte Bewegungen eingegrenzt wird.
Die Buchung klappt ja wunderbar. Was nicht klappt ist die Rückgabe der Belegnummer. Und die ist wichtig, wichtig, wichtig.


Ralf *dankbar für jeden konstruktiven Tipp
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Beitrag von Flo (Specialist / 161 / 0 / 0 ) »
Hallo,

also ich nutze den BAPI zum Buchen von Rechnungen und lasse mir die Belegnummer vom BAPI zurückgeben. Dazu bitte Hinweis 561175 lesen da steht in etwa: OBJ_KEY, OBJ_TYPE, OBJ_SYS leerlassen dann macht BAPI Belegnummerermittlung selbst und im Importing Parameter OBJ_KEY steht die FI Belegnummer.

Gruß,
Flo

Beitrag von ralf.wenzel (Top Expert / 3927 / 200 / 280 ) »
Wenn ich das mache, werden mir fehlende Mussfelder angemeckert - und zwar genau die.

Aber ich probier nochmal rum, danke


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Beitrag von ralf.wenzel (Top Expert / 3927 / 200 / 280 ) »
Also, wenn ich die beiden Felder leer lasse, kommen folgende Fehlermeldungen in der Returntabelle an:

"Im Parameter DOCUMENTHEADER wurde das Mußfeld OBJ_TYPE nicht übergeben"
"Im Parameter DOCUMENTHEADER wurde das Mußfeld OBJ_KEY nicht übergeben"

und der Beleg wird NICHT gebucht.

Ich werde daraus nicht schlau, kann mir da jemand nen Tipp geben?

Danke


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Beitrag von TWP (Specialist / 445 / 0 / 1 ) »
Guten Morgen,

ich habe die Felder im Header auch nicht angegeben und es Läuft.

2 Ansätze

Wenn Importing Parameter auf sind, diese eventuell schliessen?
Wurde die Richtige Aktivitäte im Header eingestellt (BUS_ACT)?

Sonst Vorschlag wie immer wenn es nicht weiter geht: Etwas Programmcode hat noch nie geschadet!!!

Anmerkung an dieser Stelle zu diesem BAPI:
Es erfolgt keine Steuerverprobung wie z.B. in der FB01. Die Schlüssel und Werte werden einfach übernommen.

MfG

Thomas

Beitrag von ralf.wenzel (Top Expert / 3927 / 200 / 280 ) »
TWP hat geschrieben:ich habe die Felder im Header auch nicht angegeben und es Läuft.
Ich vermute, dass irgendwo im Customizing die Felder als Mussfelder angegeben sind -- aber wo?

Alternative: Durch irgendeinen Feldinhalt erwartet das BAPI diese Felder zusätzlich -- aber durch welchen?


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Beitrag von TWP (Specialist / 445 / 0 / 1 ) »
Neben deinem Bild steht SAP-Beratung...

Um dein Problem genauer zu analysiern, solltest du etwas genauer werden, was deine Daten betrifft (Coding-Auszug).

Alternativ gilt: Lesen bildet. (OSS / Hilfe / Hilfe zum FB ...)

Bei mir hat's geholfen - siehe Steuerprüfung im BAPI. Aber es kann schon sein das deien Probleme mit dem BU_ACT im Header zusammenhängen.

Thomas

Beitrag von ralf.wenzel (Top Expert / 3927 / 200 / 280 ) »
TWP hat geschrieben:Um dein Problem genauer zu analysiern, solltest du etwas genauer werden, was deine Daten betrifft (Coding-Auszug).
Ich hab mal die Feldzuweisung und den Aufruf des BAPI unten reinzitiert -- sieht nicht schön aus, ist aber auch vom Endzustand des Coding entfernt. Erstmal gehts mir darum, eine Buchung korrekt ins System zu kriegen.
TWP hat geschrieben:Alternativ gilt: Lesen bildet. (OSS / Hilfe / Hilfe zum FB ...)
Meinst du da hätte ich nicht nachgesehen ehe ich hier frage?

Hier also mal ne Feldzuweisung - angereichert mit Hinweisen dazu. Die Tabelle "gt_alvtab" ist die eigentliche Datenquelle. Von da aus fülle ich die Tabellen für das BAPI. Wie gesagt: Nicht schön derzeit, aber wie gesagt: Ehe ich es schön mache, will ich erstmal ne Buchung reinkriegen.

Code: Alles auswählen.


** Belegkopf

      gs_dochead-obj_type = 'ZVBRK'.  "angeblich ein Mussfeld
      gs_dochead-obj_key = gs_alvtab-vbeln. "angeblich ein Mussfeld (gefüllt mit Nummer der SD-Faktura als Vorgängerbeleg)

      gs_dochead-bus_act = 'RFBU'.
      gs_dochead-username = sy-uname.
      SELECT SINGLE bukrs INTO gs_dochead-comp_code
      FROM vbrk
      WHERE vbeln = gs_alvtab-vbeln.
      SELECT SINGLE *
       FROM z99f_provi_buch
       INTO gs_provi_buch
       WHERE bukrs EQ gs_dochead-comp_code
        AND  parvw EQ 'DI'
        AND  vtweg EQ gs_alvtab-vtweg.
      gs_dochead-doc_date = gs_alvtab-fkdat.
      gs_dochead-pstng_date = sy-datum.
      gs_dochead-doc_type = 'YV'.
      gs_dochead-ref_doc_no = gs_alvtab-vbeln.
      CALL FUNCTION 'OWN_LOGICAL_SYSTEM_GET'
        IMPORTING
          own_logical_system = gs_dochead-obj_sys.
      APPEND gs_dochead TO gt_dochead.

** Personenkontenzeile
      gs_accpay-itemno_acc = '1'.
      SELECT SINGLE lifnr INTO gs_accpay-vendor_no
      FROM vbpa
      WHERE vbeln = gs_alvtab-vbeln
       AND  parvw = 'DI'.
      gs_accgl-gl_account  = gs_provi_buch-saknr.
      gs_accpay-pmnt_block = 'X'.
      SELECT SINGLE extwg FROM mara
      INTO gs_accpay-alloc_nmbr
      WHERE matnr = gs_alvtab-matnr.
      gs_accgl-item_text = gs_alvtab-kunag.
      gs_accgl-tax_code = gs_provi_buch-mwskz.
      APPEND gs_accpay TO gt_accpay.

** Betragszeilen
      gs_camount-itemno_acc = '1'.
      gs_camount-currency_iso = gs_alvtab-waerk.
      gs_camount-amt_doccur = gs_alvtab-prwge.
      APPEND gs_camount TO gt_camount.
      gs_camount-itemno_acc = '2'.
      gs_camount-amt_doccur = gs_camount-amt_doccur * ( -1 ).
      APPEND gs_camount TO gt_camount.

** Sachkontenzeile

* Erstaunt war ich hier, dass ich keinen Buchungsschlüssel übergeben kann ;)
      gs_accgl-itemno_acc = '2'.
      gs_accgl-gl_account = gs_provi_buch-saknr.
      gs_accgl-item_text = gs_alvtab-kunag.
      SELECT SINGLE lifnr INTO gs_accgl-vendor_no
      FROM vbpa
      WHERE vbeln = gs_alvtab-vbeln
       AND  posnr = gs_alvtab-posnr
       AND  parvw = 'DI'.
      SELECT SINGLE extwg FROM mara
      INTO gs_accgl-alloc_nmbr
      WHERE matnr = gs_alvtab-matnr.
      SELECT SINGLE PRCTR INTO gs_accgl-profit_ctr
      FROM marc
      WHERE matnr = gs_alvtab-matnr
       AND  werks = gs_alvtab-werks.
      gs_accgl-tax_code = gs_provi_buch-mwskz.
      gs_accgl-material = gs_alvtab-matnr.
      gs_accgl-plant    = gs_alvtab-werks.
      APPEND gs_accgl TO gt_accgl.

      CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'
        EXPORTING
          documentheader = gs_dochead
        IMPORTING
          obj_key        = gs_dochead-obj_key
        TABLES
          accountgl      = gt_accgl
          accountpayable = gt_accpay
          currencyamount = gt_camount
          return         = gt_bapi_ret.

      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
        EXPORTING
          wait = 'X'.

* Belegnummer entgegennehmen <- HIER steht wieder die SD-Faktura drin
*       ich will hier aber die Nummer des gebuchten FI-Beleges sehen
      gr_belnr_l-sign   = 'I'.
      gr_belnr_l-option = 'EQ'.
      gr_belnr_l-low    = gs_dochead-obj_key.
      APPEND gr_belnr_l TO gr_belnr.

Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Beitrag von TWP (Specialist / 445 / 0 / 1 ) »
Hallo Ralf,

ich würde folgende Zeilen mal Kommentieren:

-> im Belegkopf

* gs_dochead-obj_type = 'ZVBRK'. "angeblich ein Mussfeld
* gs_dochead-obj_key = gs_alvtab-vbeln.

* CALL FUNCTION 'OWN_LOGICAL_SYSTEM_GET'
* IMPORTING
* own_logical_system = gs_dochead-obj_sys.


-> Im Aufruf des BAPI's

* IMPORTING
* obj_key = gs_dochead-obj_key


Deine Belegnummer solltest du auf folgenden Wege finden (so geht es bei mir)

field-symbols: <r> type bapiret2.
:
:
loop at gt_bapi_ret assigning <r>.

if <r>-number = 605.
write: <r>-message_v2+10(4), <r>-message_v2(10),
<r>-message_v2+14(4).
else.
write: / <r>-id, <r>-number, <r>-message(120).
write: / <r>-message_v1.
write: / <r>-message_v2.
write: / <r>-message_v3.
write: / <r>-message_v4.
write: / <r>-parameter, '|', <r>-row, '|', <r>-field.
uline.
endif.
endloop.

Entweder du erhälst hier jetzt die Belegnummer oder alle aufgetretenen Fehler.

Noch eine Anmerkung an dieser Stelle. Wenn du das Steuerkennzeichen versorgst, dann solltest du auch die Tabelle ACCOUNTTAX mit übergeben.

Wenn dies nicht zum Erfolg führt ggf. mal die FI - Belegart austauschen.

Viel Erfolg

Thomas

Intressant fand ich das auch, das ohne Buchungsschlüssel gebucht wird. Aber diese werden durch die Vorzeichen ja gefunden.

Beitrag von ralf.wenzel (Top Expert / 3927 / 200 / 280 ) »
TWP hat geschrieben:* gs_dochead-obj_type = 'ZVBRK'. "angeblich ein Mussfeld
* gs_dochead-obj_key = gs_alvtab-vbeln.

* CALL FUNCTION 'OWN_LOGICAL_SYSTEM_GET'
* IMPORTING
* own_logical_system = gs_dochead-obj_sys.


-> Im Aufruf des BAPI's

* IMPORTING
* obj_key = gs_dochead-obj_key
Bucht nicht. Fehlermeldung in Returntab:

Fehler im Beleg: BKPFF $ DECCLNT930
RW-Schnittstelle: Inkonsistente RW-Belegpositionsdaten zur Fortschreibung

Warum soll ich mir die Belegnummer aus der Returntab fummeln, wenn es dazu ein Feld gibt, in der dieselbe Belegnummer steht wie in der Returntab selbst? (In beiden Fällen allerdings leider die Fakturanummer, wenn ich das Kopf-Feld fülle).

Ich krieg echt die Krise - geb ne ne Belegnummer vor (und die Doku sagt explizit, es sei das Feld für die Vorgängerbelegnummer), kriege icih die des gebuchten Beleges nicht raus - lass ich die Felder leer damit der Verbucher sie füllt, wird nicht gebucht.


Ralf

EDIT: Ich versuche die ganze Zeit, im Debugger festzustellen, woran es hakt, aber ich komm da nicht weiter.
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Beitrag von TWP (Specialist / 445 / 0 / 1 ) »
Letzteres wollte ich dir auch vorschlagen, aber da war mein System verschunden.

Kopiere dir doch den ganzen kram mal in ein eigenes Testprogramm und versorge die Felder mit Festen Werten. Dann kommst du schneller voran.
Wenn die Fehlermeldung verschwindet und der Beleg gebucht wird, dann steht in BAPIRET2 auch die Belegnummer drin.

Das in deiner Fehlermelduing sollte ein Feld oder eine Struktur darstellen, aber dmit konnt ich auch nichts anfangen. Hast du eventuell CO-PA aktiv oder andere Dinge wo hier separate strukturen existieren?

Sind die Steuertabellen versorgt. Das Feld CURRENCY sollte eventuell den selben Inhalt wir CURRENCY-ISO haben.

Wenn dein Code in einer Schleife läuft: Sind alle Tabellen und Strukturen immer initial?

Thomas

Beitrag von ralf.wenzel (Top Expert / 3927 / 200 / 280 ) »
TWP hat geschrieben:Wenn die Fehlermeldung verschwindet und der Beleg gebucht wird, dann steht in BAPIRET2 auch die Belegnummer drin.
Nein, da steht drin "Beleg xxx gebucht" mit der Nummer der SD-Faktura. Die Meldung ist in sich also falsch.

Aber eben nur wenn ich das Belegnummernfeld fülle -- wenn es nicht fülle, wird das leere Mussfeld bemeckert.


Ralf *weiß nicht weiter
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Vergleichbare Themen

2
Antw.
9205
Views
Währungstyp 30 Konzernwährung - einfache Frage
von Blueshape » 11.04.2007 16:33 • Verfasst in Financials
5
Antw.
2829
Views
Problem mit RFBIBL00
von dudeson » 28.02.2008 07:31 • Verfasst in ABAP® für Anfänger
1
Antw.
1893
Views
Langtext in RFBIBL00 verarbeiten
von hai_friedrich » 04.09.2008 10:27 • Verfasst in ABAP® für Anfänger
2
Antw.
1645
Views
Fremdwährungsbelege über RFBIBL00
von Gast » 07.02.2005 12:02 • Verfasst in Financials
1
Antw.
238
Views
Ablageort-Testdaten für RFBIBL00
von HH_ABAP » 16.08.2023 17:52 • Verfasst in ABAP® für Anfänger

Aktuelle Forenbeiträge

Trennen Strasse und Hausnummer
vor 8 Stunden von msfox 18 / 10955
Dialog-Container mit Toolbar/Status
vor 11 Stunden von black_adept gelöst 27 / 4066
IT0024 Qualifikationen CP-ID
vor 13 Stunden von ArjenR 1 / 96

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

Trennen Strasse und Hausnummer
vor 8 Stunden von msfox 18 / 10955
Dialog-Container mit Toolbar/Status
vor 11 Stunden von black_adept gelöst 27 / 4066
IT0024 Qualifikationen CP-ID
vor 13 Stunden von ArjenR 1 / 96

Unbeantwortete Forenbeiträge

IT0024 Qualifikationen CP-ID
vor 13 Stunden von ArjenR 1 / 96
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 3027
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9620