BAPI_GOODSMVT_CREATE: Innenauftrag


Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV

Moderatoren: Jan, Steff

BAPI_GOODSMVT_CREATE: Innenauftrag

Beitragvon Trulchen » 10.01.2017, 12:41

Hallo,

ich möchte mit dem BAPI eine Buchung der MIGO mit "Sonstiger Wareneingang" bzw. Bewegungart 261
durchführen.

Allerdings funktioniert das Buchen auf einen Innenauftrag nicht.
Muss ich den BAPI noch irgendwie anders befüllen?

Code: Alles auswählen
PARAMETERS: pa_mats TYPE VBELN_VL OBLIGATORY,
            pa_matnr TYPE matnr OBLIGATORY,
            pa_lifmg TYPE LIFMG OBLIGATORY,
            pa_meins TYPE meins OBLIGATORY,
            pa_charg TYPE CHARG_D OBLIGATORY,
            pa_werk TYPE WERKS_D OBLIGATORY DEFAULT '3000',
            pa_lgort TYPE LGORT_D OBLIGATORY DEFAULT '315',
            pa_aufnr type AUFNR default '000000200140'.

"Kundennummer auf "Read Only"

AT SELECTION-SCREEN output.
  loop at SCREEN.
    if screen-name = 'PA_AUFNR'.
      clear screen-input.
      MODIFY SCREEN.
    endif.
        if screen-name = 'PA_LGORT'.
      clear screen-input.
      MODIFY SCREEN.
    endif.
  endloop.

START-OF-SELECTION.

* Kopfstruktur für BAPI füllen
  ls_header-pstng_date    = sy-DATUM.   "Buchungsdatum
  ls_header-doc_date      = sy-datum.   "Belegdatum
  ls_header-ref_doc_no    = pa_mats. "Vorgangsnummer
  write pa_mats to lv_kopftext no-ZERO.
  CONDENSE lv_kopftext.
  CONCATENATE 'Muster:' lv_kopftext INTO ls_header-header_txt SEPARATED BY space.
  ls_code-gm_code = '05'. " Buchungscode: Sonstiger Wareneingang


  Data: lt_lieferung TYPE TABLE OF LIPS,
        ls_lieferung TYPE LIPS.

  "Zu buchende Positionen ermitteln
    ls_item-material   = pa_matnr. "Materialnummer
    ls_item-MVT_IND    = 'F'. "Warenbewegung zum Auftrag.
    ls_item-plant      = pa_werk. "Werk
    ls_item-stge_loc   = pa_lgort. "Lagerort
    ls_item-batch      = pa_charg .  "Charge
    ls_item-prod_date  = sy-datum.
    ls_item-move_type  = '261'. "Bewegungsart
    ls_item-entry_qnt  = pa_lifmg.  "Erfassungsmenge
    ls_item-entry_uom  = pa_meins.  "Erfassungsmengeneinheit
    ls_item-ORDERID     = pa_aufnr.
    APPEND ls_item to lt_items.



  CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
    EXPORTING
      goodsmvt_header             = ls_header
      goodsmvt_code               = ls_code
      testrun                     = ''
*    IMPORTING
*     GOODSMVT_HEADRET             = sl_headret
*     materialdocument            = lv_mblnr
*  matdocumentyear             = ev_mjahr
    TABLES
      goodsmvt_item               = lt_items
*     GOODSMVT_SERIALNUMBER       =
      return                      = lt_return .
*    EXCEPTIONS
*      error_message                    = 99.


  LOOP AT lt_return INTO ls_return WHERE type = 'E' OR type = 'A'.
    CONCATENATE 'Fehler:' ls_return-MESSAGE  into lv_message SEPARATED BY space.
    WRITE: lv_message.
    ev_rc_code = '4'.
  ENDLOOP.

  IF  ev_rc_code <> 4. "Kein Fehler aufgetreten?
    "Erfolgreich
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
      EXPORTING
        wait          = 'X'
      IMPORTING
        return        = ls_return
      EXCEPTIONS
        error_message = 99.

    IF ls_return IS NOT INITIAL .
      Write: ls_return-id, ls_return-message_v1 , ls_return-message_v2 , ls_return-message_v3 , ls_return-message_v4.
      ev_rc_code = 4.
    ENDIF.

   IF  ev_rc_code <> 4.
     lv_message =  'Materialbeleg wurde gebucht'.
     WRITE: lv_message.
   ENDIF.
  Endif.


Fehlermeldung: "Auftrag 200140 ist nicht vorhanden oder für Warenbewegung nicht zugelassen"
Trulchen
Specialist
 
Beiträge: 234
Registriert: 03.09.2012, 14:45
Dank erhalten: 0 mal
Ich bin: Student/in

Sponsor

Alte ABAP-Entwicklerweisheit: Weißt du weder aus noch ein, baust du einen BADI ein

Re: BAPI_GOODSMVT_CREATE: Innenauftrag

Beitragvon Haubi » 11.01.2017, 11:48

Hmm, hast Du den Auftrag mal geprüft? Die Meldungen des BAPIs sind erfahrungsgemäß ganz gut.

Ansonsten fällt mir auf, dass der Code 05 für Wareneingang steht, Du aber mit 261 eine Entnahme buchst. Ich mache das an einer Stelle mit Entnahmen zum Fertigungsauftrag, da verwende ich den Code 03...

Grüße,
Haubi
Das ABAP Kochbuch ab sofort bei Amazon...

I'd rather write code that writes code than write code...
.. ..|. |.|| ||| ..| |.|. .| |. .|. . .| |.. | .... .. ... |.|| ||| ..| |.. ||| |. | |. . . |.. ||. .|.. .| ... ... . ...
Haubi
Expert
 
Beiträge: 566
Registriert: 13.12.2002, 09:52
Wohnort: Braunschweig
Dank erhalten: 16 mal
Ich bin: Entwickler/in


Zurück zu ABAP® Core

  Aktuelle Beiträge   
Dynpro: Dropdown werte übergabe von Screen 1 auf Screen 2
vor 2 Stunden von erzoo24 0 Antw.
Überschrift der Mehrfachselektion ändern?
Gestern von Nordlicht 2 Antw.
Script in Favoriten
vor 4 Tagen von bs112 0 Antw.
Daten aus SAP in Excel einfügen
vor 4 Tagen von bs112 0 Antw.
Scripted calculation view
vor 4 Tagen von SAP_ENTWICKLER 0 Antw.

  Ähnliche Beiträge beta
User Exit Nummernvergabe CO Innenauftrag
31.07.2007, 15:43 von sjung3 0 Antw.

 

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder

Feedback ...?

Was können wir verbessern? Hinterlasse deine Kontaktdaten, wenn du eine direkte Antwort möchtest.

... Absenden!