BAPI_REQUISITION_CREATE richtig füllen

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
1 Beitrag • Seite 1 von 1
1 Beitrag Seite 1 von 1

BAPI_REQUISITION_CREATE richtig füllen

Beitrag von Norbert (ForumUser / 52 / 0 / 0 ) »
Hallo,
ich habe leider ein kleines Problem bei der Ersetzung
eines Call Transaction "Anlage einer Dienstleistungs-Banf" durch
den BAPI BAPI_REQUISITION_CREATE.

Ich möchte in der BANF das Limit auf unbegrenzt stellen. Zudem benötigt das Limit offensichtlich eine Kontierung.
Die BANF wird zwar angelegt, der Haken "unbegrenzt" im Limit jedoch nicht.
Im OSS gibt es zwar den Hinweis 420331 Muster für Dienstleistungen - aber irgendwie bekomme ich nicht den Dreh mit dem Limit.

Hier meine Füllung des BAPI´s:

Code: Alles auswählen.

  DATA:
*       Banf Positionen
        gt_req_items   TYPE TABLE OF bapiebanc,
        gs_req_items   TYPE bapiebanc,

*       Langtext zur Position
        gt_item_text   TYPE TABLE OF bapiebantx,
        gs_item_text   TYPE bapiebantx,

*       Positionskontierung
        gt_req_acc_ass TYPE TABLE OF bapiebkn,
        gs_req_acc_ass TYPE bapiebkn,

*       Limit
        gt_req_limit   TYPE TABLE OF bapiesuhc,
        gs_req_limit   TYPE bapiesuhc,

*       Leistungen
        gt_req_serv    TYPE TABLE OF bapiesllc,
        gs_req_serv    TYPE bapiesllc,

*       Kontierung der Leistung
        gt_req_serv_acc TYPE TABLE OF bapiesklc,
        gs_req_serv_acc TYPE bapiesklc,

*       Langtext Leistung
        gt_serv_text   TYPE TABLE OF bapieslltx,
        gs_serv_text   TYPE bapieslltx,

*       Rückmeldung
        gt_return      TYPE TABLE OF bapireturn,
        gs_return      TYPE bapireturn.



  CLEAR:
        gt_req_items[],
        gt_item_text[],
        gt_req_acc_ass[],
        gt_req_limit[],
        gt_req_serv[],
        gt_req_serv_acc[],
        gt_return[],
        gt_serv_text[].

* -----------------------------------------------------------------
* ### Position aufbauen siehe OSS HW 420331
* -----------------------------------------------------------------

*   Positionstyp von extern in intern schlüsseln
    CLEAR gs_t163y.
    SELECT SINGLE *
           FROM  t163y
           INTO gs_t163y
           WHERE epstp = epstp
           AND   spras = sy-langu.
    IF sy-subrc EQ 0.
      epstp = gs_t163y-pstyp.
    ENDIF.


*   Position
    gs_req_items-preq_item = '00010'.

*   Belegart Bestellanforderung
    gs_req_items-doc_type = bsart.

*   Einkäufergruppe
    gs_req_items-pur_group = gs_buchung-ekgrp.

*   Einkaufsorg
    gs_req_items-purch_org = gs_buchung-ekorg.

*   Name des Sachbearbeiters, der das Objekt hinzugefügt hat
    gs_req_items-created_by = sy-uname.

*   Anforderungsdatum
    gs_req_items-preq_date = sy-datum.

*   Kurztext
    gs_req_items-short_text = gs_buchung-ktext.

*   Werk
    gs_req_items-plant = gs_buchung-werks.

*   Warengruppe
    gs_req_items-mat_grp = gs_buchung-matkl.

*   Menge
    gs_req_items-quantity = '1'.

*   Mengeneinheit
    gs_req_items-unit = 'LE'.

*   Bestellmengeneinheit
    gs_req_items-po_unit = 'LE'.

*   Datumstyp der BANF
    gs_req_items-del_datcat = '1'.

*   Lieferdatum der BANF
    gs_req_items-deliv_date = sy-datum.

*   Datumstyp des Lieferdatums
    gs_req_items-del_datcat_ext = '1'.

*   Preis in der Bestellanforderung
    gs_req_items-c_amt_bapi = gs_buchung-preis.

*   Preiseinheit
    gs_req_items-price_unit = '1'.

*   Positionstyp im Einkaufsbeleg
    gs_req_items-item_cat =  epstp.

*   Kontierungstyp
    gs_req_items-acctasscat = knttp.

*   Wunschlieferant
    gs_req_items-des_vendor = gs_buchung-lifnr.

*   Fester Lieferant
    gs_req_items-fixed_vend = gs_buchung-lifnr.

*   Wareneingangskennzeichen
    gs_req_items-gr_ind = 'X'.

*   Wareneingang unbewertet
    gs_req_items-gr_non_val = 'X'.

*   Rechnungseingang
    gs_req_items-ir_ind  = 'X'.

**   Freigabedatum
*    gs_req_items-rel_date = sy-datum.

*   Paketnummer
    gs_req_items-pckg_no = '0000000001'.

*   BANF Preis in Bestellung übernehmen
    gs_req_items-po_price  = '2'. "space = nicht, 1 = brutto, 2 = netto

*   Währungsschlüssel
    gs_req_items-currency = 'EUR'.

*   ISO Code der Währung
    gs_req_items-currency_iso = 'EUR'.

*   Positionstyp im Einkaufsbeleg
    gs_req_items-item_cat_ext = 'D'.

*   ISO Code der Mengeneinheit in der BANF
    gs_req_items-preq_unit_iso = 'C62'.

*   Bestellmengeneinheit im ISO-Code
    gs_req_items-po_unit_iso = 'C62'.


    APPEND gs_req_items TO gt_req_items.

* -----------------------------------------------------------------
* ###Kontierung zur Position
* -----------------------------------------------------------------
*   Positionsnummer
    gs_req_acc_ass-preq_item  = '00010'.

*   Laufenden Nummer der Kontierung
    gs_req_acc_ass-serial_no = '01'.


*   Datum, an dem der Satz hinzugefügt wurde
    gs_req_acc_ass-created_on = sy-datum.

*   Name des Sachbearbeiters, der das Objekt hinzugefügt hat
    gs_req_acc_ass-created_by = sy-uname.

*   Verteilungsprozentsatz bei Mehrfachkontierung
*    gs_req_acc_ass-distr_perc = '0'.

*   Nummer des Sachkontos
    gs_req_acc_ass-g_l_acct   = gs_buchung-sakto.

*   Auftragsnummer
    gs_req_acc_ass-order_no   = gs_buchung-aufnr.

*   Auf Auftrag buchen
    gs_req_acc_ass-to_order   = 'X'.

*   Art der Änderung (U, I, E, D)
    gs_req_acc_ass-change_id  = 'I'.

*   Währung
    gs_req_acc_ass-currency = 'EUR'.

*   Mengeneinheit
    gs_req_acc_ass-preq_qty = '0'.

*   ME
    gs_req_acc_ass-preq_unit = 'LE'.

*   Kostenrechnungskreis
*    gs_req_acc_ass-co_area = gs_buchung-kokrs.



    APPEND gs_req_acc_ass TO gt_req_acc_ass.

* -----------------------------------------------------------------
* ###Limits
* -----------------------------------------------------------------
*PCKG_NO	Paketnummer
*LIMIT	Gesamtlimit
*NO_LIMIT	Kein Limit
*EXP_VALUE	Erwarteter Wert
*SSC_EXIST	Limits für Leistungsbereiche existiert
*CON_EXIST	Limit auf Kontraktpositionen existiert
*TMP_EXIST	Limit auf Leistungspakete existiert
*PRICE_CHG	Preisänderung im Erfassungsblatt
*FREE_LIMIT	Freies Limit
*NO_FRLIMIT	Kein Limit
*SERV_TYPE	Bezeichnung des Leistungsbereichs
*EDITION	Ausgabe des Leistungsbereichs
*SSC_LIMIT	Wertlimits auf Leistungsbereiche
*SSC_NOLIM	Unbegrenztes Limit auf den Standard-Leistungsbereich
*SSC_PRSCHG	Preisänderung im Erfassungsblatt
*SSC_PERC	Prozentwert für Preisermittlung
*TMP_NUMBER	Muster-LV-Nummer
*TMP_LIMIT	Limits auf das Muster-Leistungsverzeichnis
*TMP_NOLIM	Unbegrenztes Limit auf das Muster-LV
*TMP_PRSCHG	Preisänderung im Erfassungsblatt
*TMP_PERC	Prozentwert für Preisermittlung
*CONT_PERC	Prozentwert für Preisermittlung


*   Paketnummer
    gs_req_limit-pckg_no = '0000000001'.

*   Kein Limit
    gs_req_limit-no_limit = 'X'.

*   Kein freies Limit
    gs_req_limit-no_frlimit = 'X'.

**   Unbegrenztes Limit auf das Muster-LV
*    gs_req_limit-tmp_nolim = 'X'.

    APPEND gs_req_limit TO gt_req_limit.

* -----------------------------------------------------------------
* ###Leistungen
* -----------------------------------------------------------------

*   ## Vaterzeile
*   Paketnummer
    gs_req_serv-pckg_no = '0000000001'.

*   Zeilennummer
    gs_req_serv-line_no = '0000000001'.

*   Externe Zeilennummer
    gs_req_serv-ext_line = '0000000000'.

*   Untergeordnetes Paket
    gs_req_serv-subpckg_no = '0000000002'.

*   Menge
    gs_req_serv-quantity = '0'.

*   Kurztext
    gs_req_serv-short_text = gs_buchung-ktext.

*   "Vaterzeile"
    gs_req_serv-outl_ind = 'X'.

*   Von Zeile
    gs_req_serv-from_line = '1'.

    APPEND gs_req_serv TO gt_req_serv.


*   ## Echte Kontierungszeile

    CLEAR gs_req_serv.

*   Paketnummer
    gs_req_serv-pckg_no = '0000000002'.

*   Zeilennummer
    gs_req_serv-line_no = '0000000002'.

*   Externe Zeilennummer
    gs_req_serv-ext_line = '0000000010'.

*   Untergeordnetes Paket
    gs_req_serv-subpckg_no = '0000000000'.

*   Menge
    gs_req_serv-quantity = '1.000'.

*   ISO
    gs_req_serv-uom_iso = 'C62'.

*   ME
    gs_req_serv-base_uom = 'LE'.

*   Preiseinheit
    gs_req_serv-price_unit = '1'.

*   Bruttopreis
    gs_req_serv-gr_price = gs_buchung-preis.

*   Kurztext
    gs_req_serv-short_text = gs_buchung-ktext.

*   Übergeordnete Zeile
    gs_req_serv-pln_line = '0000000001'.

*   Warengruppe
    gs_req_serv-matl_group = gs_buchung-matkl.

*   Erfassung: ungeplant, Limitzeile
    gs_req_serv-limit_line = 'X'.

    APPEND gs_req_serv TO gt_req_serv.



* -----------------------------------------------------------------
* ### Kontierung der Leistungen
* -----------------------------------------------------------------

*   Paketnummer der echten LZ
    gs_req_serv_acc-pckg_no     = '0000000002'.

*   Zeilennummer
    gs_req_serv_acc-line_no     = '0000000002'.

*   Laufende Nummer Kontierungszuordnung Leistungszeile
    gs_req_serv_acc-serno_line           = '01'.

*   Prozentsatz der Kontierungswertverteilung
    gs_req_serv_acc-percentage           = '100.00'.

*   Laufende Nummer der Kontierung
    gs_req_serv_acc-serial_no            = '01'.

*   Menge mit Vorzeichen
    gs_req_serv_acc-quantity             = '1.000'.

*   Nettowert der Position
    gs_req_serv_acc-net_value            = gs_buchung-preis.

    APPEND gs_req_serv_acc TO gt_req_serv_acc.



* -----------------------------------------------------------------
    CALL FUNCTION 'BAPI_REQUISITION_CREATE'
     EXPORTING
       skip_items_with_error                = space
     IMPORTING
       number                               = gv_banfn
      TABLES
        requisition_items                    = gt_req_items
        requisition_account_assignment       = gt_req_acc_ass
*       requisition_item_text                = gt_item_text
        requisition_limits                   = gt_req_limit
*       REQUISITION_CONTRACT_LIMITS          =
        requisition_services                 = gt_req_serv
        requisition_srv_accass_values        = gt_req_serv_acc
        return                               = gt_return.
*       requisition_services_text            = gt_serv_text.
* -----------------------------------------------------------------
Vielleicht hat jemand von Euch hier schon Erfahrung sammeln können.

Danke im Vorraus.

Norbert[/code]
...........
Just do it !

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


Seite 1 von 1

Vergleichbare Themen

1
Antw.
2900
Views
Employee Create BAPI
von shilpak » 21.02.2005 14:25 • Verfasst in Development Related
3
Antw.
4552
Views
BAPI for Vendor Create
von sonair » 01.03.2005 08:48 • Verfasst in Development Related
3
Antw.
2783
Views
Struktur richtig füllen
von bohne » 04.01.2007 16:50 • Verfasst in ABAP® für Anfänger
7
Antw.
2943
Views
Infotyp 40 im HR-Umfeld mit BAPI füllen !?
von Gast » 13.01.2005 11:47 • Verfasst in ABAP® Core
1
Antw.
7512
Views
customer create
von Gast » 24.02.2005 08:28 • Verfasst in Application Related

Über diesen Beitrag

Norbert
Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Dialog-Container mit Toolbar/Status
vor einer Stunde von black_adept gelöst 21 / 2526
SAP Trial Version für SAP Fiori
vor 2 Tagen von tar 2 / 1663

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

Dialog-Container mit Toolbar/Status
vor einer Stunde von black_adept gelöst 21 / 2526
SAP Trial Version für SAP Fiori
vor 2 Tagen von tar 2 / 1663

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
vor 2 Tagen von Bright4.5 1 / 723
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2349
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8932