Konditionssätze mit CONDITION_RECORD_READ auslesen

Mit dem Funktionsbaustein lassen sich einzelne Konditionssätze direkt auslesen. Dabei werden die Konditionstabellen und Zugriffsreihenfolgen automatisch bestimmt.

Es müssen mindestens diese Parameter versorgt werden

Name Beschreibung
PI_KAPPL Applikation der Kondition (z.B. V)
PI_KSCHL Konditionsart
PI_I_KOMK Struktur mit Kopfdaten zur Kondition
PI_I_KOMP Struktur mit Positionsdaten zur Kondition

Die beiden Strukturen enthalten zahlreiche Felder, mit denen ein Konditionssatz bestimmt werden kann. Es müssen nur die Felder gefüllt werden, die beispielsweise auch im Selektionsbild der VK13 gefüllt werden. Die zu füllenden Felder hängen vom Kontext des Aufrufs (Konditionen eines Belegs, zu einem Material etc.) sowie der Zugriffsfelder zum Konditionssatz ab.
 
Der Parameter KOTABNT (Konditionstabelle) muss nicht gefüllt werden, da die passende Konditionstabelle vom Funktionsbaustein ermittelt wird. Die Ermittlung innerhalb des Funktionsbausteins entfällt, wenn die Konditionstabelle übergeben wird. Der Parameter erwartet nur die Nummer der Konditionstabelle. Ist die Konditionstabelle A007, wird als Parameter 007 übergeben.

Beispielaufruf

data: ls_komk type komk,
      ls_komp type komp,
      lv_kappl type kappl value 'V',
      lv_kschl type kschl value 'Z000',
      ls_vake type vake. 
      
    " Zuschlag auslesen
      
      ls_komk-vkorg = '0001'.
      ls_komk-vtweg = '01'.
      ls_komk-spart = '00'.
      ls_komk-kunnr = lv_kunnr.
      ls_komk-prsdt = sy-datum.
      
      ls_komp-bwkey = '1000'.
      
    CALL FUNCTION 'CONDITION_RECORD_READ'
      EXPORTING
*       PI_KVEWE              = 'A'
        pi_kappl              = lv_kappl
        pi_kschl              = lv_kschl
*       PI_KOTABNR            =
*       PI_BUFRD              =
        pi_i_komk             = ls_komk
        pi_i_komp             = ls_komk
*       PI_SCALE_READ         =
*       PI_KALSM              =
     IMPORTING
       PE_I_VAKE             = ls_vake
*     TABLES
*       PI_T_KSCHL            =
*       PX_T_XVAKE            =
*       PE_T_VAKE             =
*       PE_T_SCALE            =
     EXCEPTIONS
       NO_RECORD_FOUND       = 1
       OTHERS                = 2
              .
    IF sy-subrc  0.
* Implement suitable error handling here
    ENDIF. 

Besonderheiten

Wenn die Kondition als prozentualer Zu- oder Abschlag angelegt ist, dann ist die Konditionswährung '%' und der Konditionsbetrag um Faktor 10 zu groß in der Datenbank abgelegt. Ist der Konditionssatz beispielsweise ein Zuschlagssatz von 15 %, dann sind 150% in der Konditionstabelle hinterlegt (vgl. http://scn.sap.com/thread/1727480).