[ABAP] Leistungsverzeichnis mit Gliederung zu einem Einkaufsbeleg lesen

PARAMETERS: p_ebeln TYPE ekpo-ebeln.

START-OF-SELECTION.

  SELECT SINGLE FROM ekpo
    FIELDS
      menge,
      meins,
      bprme,
      netpr,
      peinh,
      txz01,
      packno
    WHERE ebeln EQ @p_ebeln
      AND ebelp EQ '00001'
    INTO @DATA(lv_ekpo).

  IF sy-subrc EQ 0.
    DATA: it_gliederung TYPE STANDARD TABLE OF ml_esll WITH DEFAULT KEY.

* Holen Gliederungsdaten für Listausgabe
    CALL FUNCTION 'MS_SUBDIVISION_FOR_PRINT'
      EXPORTING
        packno           = lv_ekpo-packno
      TABLES
        gliederung       = it_gliederung
      EXCEPTIONS
        packno_not_exist = 1
        OTHERS           = 2.

    IF sy-subrc = 0.

      DATA: it_leistung TYPE STANDARD TABLE OF ml_esll WITH DEFAULT KEY.

      LOOP AT it_gliederung ASSIGNING FIELD-SYMBOL(<g>).

        DATA(pos) = ( <g>-rang * 2 ).

        IF <g>-rang = 0.
          WRITE: AT /pos '#', lv_ekpo-txz01, lv_ekpo-menge, lv_ekpo-meins, lv_ekpo-netpr.
        ELSE.
          WRITE: AT /pos '#', <g>-ktext1.
        ENDIF.

        CLEAR: it_leistung.

* Holen Leistungen für Listanzeige
        CALL FUNCTION 'MS_SERVICES_FOR_PRINT'
          EXPORTING
            packno            = <g>-sub_packno
          TABLES
            leistung          = it_leistung
          EXCEPTIONS
            no_services_found = 1
            OTHERS            = 2.

        IF sy-subrc = 0.
          LOOP AT it_leistung ASSIGNING FIELD-SYMBOL(<l>).
            WRITE: AT /10 <l>-extrow, '|', <l>-srvpos, '|', <l>-menge, <l>-meins, <l>-brtwr, <l>-waers, <l>-ktext1, '|', <l>-ebeln, <l>-ebelp.
          ENDLOOP.
        ENDIF.

        WRITE: /.

      ENDLOOP.

    ENDIF.
  ENDIF.

[ABAP] Muster-Leistungsverzeichnisse lesen

* Muster-LV-Nummer
PARAMETERS: p_spec TYPE tmp_spec-spec_no.

START-OF-SELECTION.

* Muster-Leistungsverzeichnis
  SELECT SINGLE FROM tmp_spec
    FIELDS *
    WHERE spec_no = @p_spec
    INTO @DATA(lv_spec).

  IF sy-subrc = 0.
    DATA(it_esll) = VALUE mmsrv_ml_esll( ).

* Leistungsverzeichnis lesen für Listausgabe im PM/PS
    CALL FUNCTION 'MS_FETCH_SPEC_FOR_LIST'
      EXPORTING
        spec_packno            = lv_spec-packno
      TABLES
        servicetab             = it_esll
*       LIMITTAB               =
      EXCEPTIONS
        no_specification_exist = 1
        OTHERS                 = 2.

    IF sy-subrc = 0.
* Hier Objekte für die Ausgabe hinzufügen
      cl_demo_output=>write_data( it_esll ).

* HTML-Code vom Demo-Output holen
      DATA(lv_html) = cl_demo_output=>get( ).

* Daten im Inline-Browser im SAP-Fenster anzeigen
      cl_abap_browser=>show_html( EXPORTING title       = 'Leistungsverzeichnis'
                                            html_string = lv_html
                                            container   = cl_gui_container=>default_screen ).

* cl_gui_container=>default_screen erzwingen
      WRITE: space.
    ENDIF.
  ENDIF.

[SAP] Leistungsverzeichnisse

Standard-LV

ML01 (Anlegen)
ML02 (Ändern)
ML03 (Anzeigen)
MLS6 (Listanzeige)

Muster-LV

ML10 (Anlegen)
ML11 (Ändern)

  • Leistungskonditionen

ML12 (Anzeigen)
ML15 (Listanzeige)

Tabellen

TMP_SPEC (Muster-Leistungsverzeichnis)
ESLH (Leistungspaket Kopfdaten)
ESLL (Zeilen des Leistungspakets)

Views

ML_ESLL (Leistungszeilen mit Paketkopfdaten)

Funktionsbausteine

MS_READ_SERVICES_FOR_BAPI (Leistungsverzeichnis lesen (für BAPI GetDetail))

Links

[SAP] Leistungserfassung / LERF

Transaktionen

ML81N (Leistungserfassung)
ML83 (Nachrichten ausgeben Leistungserfassung)
ML84 (Liste Leistungserfassungsblätter)

Funktionsbausteine

MS_FETCH_SPEC_FOR_LIST (Leistungsverzeichnis lesen für Listausgabe im PM/PS)
BAPI_ENTRYSHEET_GETDETAIL (Display Detailed Data on Entry Sheet)

Tabellen

TMP_SPEC (Muster-Leistungsverzeichnis)
ESSR (Leistungerfassungsblatt Kopfdaten)
ESLH (Leistungspaket Kopfdaten)
ESLL (Zeilen des Leistungspakets)
ESKN (Kontierung im Leistungspaket)
ESKL (Kontierungszuordnung zur Leistungszeile)

Views

ML_ESLL (Leistungszeilen mit Paketkopfdaten)
ESSR_REL (View für Sammelfreigabe Leistungserfassungsblatt)

CDS-Views

I_ServiceEntrySheet (Service Entry Sheet)
I_ServiceEntrySheetItem (Service Entry Sheet Item)

Links