[ABAP] Leistungstammsatz anlegen

DATA: lv_service  TYPE bapisrv_asmd.
DATA: lv_servicex TYPE bapisrv_asmdx.
DATA: it_bapiret2 TYPE STANDARD TABLE OF bapiret2 WITH DEFAULT KEY.

lv_service-service           = '1234567890'. " Leistungsnummer
lv_service-matl_group        = '10000000'.   " Warengruppe
lv_service-base_uom          = 'ST'.         " Basismengeneinheit
lv_service-serv_cat          = 'SERV'.       " Leistungstyp
lv_service-val_class         = '1000'.       " Bewertungsklasse
lv_service-master_langu      = sy-langu.     " Sprache
lv_service-master_langu_iso  = cl_i18n_languages=>sap1_to_sap2( im_lang_sap1 = lv_service-master_langu ).

lv_servicex-service          = lv_service-service.
lv_servicex-matl_group       = abap_true.
lv_servicex-base_uom         = abap_true.
lv_servicex-serv_cat         = abap_true.
lv_servicex-val_class        = abap_true.
lv_servicex-master_langu     = abap_true.
lv_servicex-master_langu_iso = abap_true.

DATA it_shorttext TYPE STANDARD TABLE OF bapisrv_asmdt WITH DEFAULT KEY.

it_shorttext = VALUE #( ( language     = lv_service-master_langu
                          language_iso = lv_service-master_langu_iso
                          short_text   = 'Kurztext'
                          change_id    = 'I' ) ).

DATA(it_longtext) = VALUE srv_sm_text_tty( ( language     = sy-langu
                                             language_iso = cl_i18n_languages=>sap1_to_sap2( im_lang_sap1 = sy-langu )
                                             format       = '/'
                                             line         = 'Langtext'
                                             change_id    = 'I' ) ).

CALL FUNCTION 'BAPI_SERVICE_CREATE'
  EXPORTING
    im_service_data     = lv_service
    im_service_datax    = lv_servicex
    testrun             = ''
  TABLES
    return              = it_bapiret2
    service_description = it_shorttext
    service_long_texts  = it_longtext.

TRY.
    IF lines( it_bapiret2 ) > 0.
      IF it_bapiret2[ 1 ]-type CA 'EAX'.
        CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
      ELSE.
        CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
      ENDIF.
    ENDIF.
  CATCH cx_sy_itab_line_not_found.
    CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ENDTRY.

cl_demo_output=>write_data( lv_service ).
cl_demo_output=>write_data( lv_servicex ).
cl_demo_output=>write_data( it_shorttext ).
cl_demo_output=>write_data( it_longtext ).
cl_demo_output=>write_data( it_bapiret2 ).

* 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        = 'Leistungsstammsatz'
                              html_string  = lv_html
                              container    = cl_gui_container=>default_screen ).

* cl_gui_container=>default_screen erzwingen
WRITE: space.

[ABAP] Leistungstammsatz lesen

PARAMETERS: p_srv_nr TYPE asmd-asnum. "bapisrvpar-service.

START-OF-SELECTION.
  DATA: lv_service_info TYPE bapisrv.
  DATA: it_servicetextlines TYPE STANDARD TABLE OF bapisrvtxt WITH DEFAULT KEY.
  DATA: it_bapiret2 TYPE STANDARD TABLE OF bapiret2 WITH DEFAULT KEY.

  CALL FUNCTION 'BAPI_SERVICE_GET_DETAIL'
    EXPORTING
      servicenumber      = p_srv_nr
    IMPORTING
      servicegeneraldata = lv_service_info
    TABLES
      servicetextlines   = it_servicetextlines
      return             = it_bapiret2.

  cl_demo_output=>write_data( p_srv_nr ).
  cl_demo_output=>write_data( lv_service_info ).
  cl_demo_output=>write_data( it_servicetextlines ).
  cl_demo_output=>write_data( it_bapiret2 ).

* 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        = 'Leistungsstammsatz'
                                html_string  = lv_html
                                container    = cl_gui_container=>default_screen ).

* cl_gui_container=>default_screen erzwingen
  WRITE: space.

[SAP] Lieferantenkonditionen / Leistungskonditionen

Transaktionen

ML40 (Lieferantenkonditionen ändern)
ML41 (Anzeigen Lieferantenkonditionen)
ML43 (Lieferantenkonditionen ändern)

ML42 (Anlegen Leistungskonditionen)
ML45 (Anzeigen Leistungskonditionen)
ML46 (Ändern Leistungskonditionen)
ML47 (Anzeigen Leistungskonditionen)

ML50 (Anzeigen Konditionen)
ML51 (Anlegen Konditionen)
ML52 (Ändern Konditionen)

  • zunächst “Abbrechen”
  • Button “Konditionsinfo”
  • ggf. Leistungsnummer eingeben
  • Haken bei “KONP-Werte anzeigen”
  • Gültigkeitsbereich vorgeben
  • Button “Ausführen”
  • Button “Sätze im ALV anzeigen”
  • im Baum Doppelklick auf “Leistungskonditionen”
  • Doppelklick im ALV-Gitter auf eine Leistungsnummer
  • Abschnitt “Zusatzkonditionen”: Eine Zeile mit Konditionsart “PRS” selektieren
  • Button “Detail”
  • Wert oder Löschkennzeichen ändern und Button “Speichern” (blaue Diskette)

ML53 (Anlegen Konditionen)

Tabellen

A104 (Leistungskonditionen (Eigenansatz))
KONH (Konditionen (Kopf))
KONP (Konditionen (Position))

Links

[SAP] Leistungen / Leistungsstamm

Transaktionen

AC02 (Leistungsstamm)
AC03 (Leistungsstamm)
AC06 (Listanzeige Leistungsstamm)
AC08 (Leistungstamm Senden)

Tabellen

TMP_SPEC (Muster-Leistungsverzeichnis)
ESLH (Leistungspaket Kopfdaten)
ESLL (Zeilen des Leistungspakets)
ASMD (Leistungsstamm : Grunddaten)

Funktionsbausteine

BAPI_SERVICE_CREATE (Creation of a Service Master Record)
BAPI_SERVICE_CHANGE (BAPI to Change a Service Master Record)
BAPI_SERVICE_GET_DETAIL (Read Detailed Data for a Service Master Record)

Links

[SAP] Leistungserfassung / LERF

Transaktionen

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

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)

Links