Das QPPD Framework stellt Methoden zur Verfügung, um die TOE - Plausibilisierung und Suchhilfen (F) auch aus externen Anwendungen zu nutzen.

Im QPPD Framework werden die zugehörigen Klassen, Programme und Funktionen mit dem Ident TOE (Technisches Objekt zum Element) beschrieben.

Die Methoden sind über die Klasse /SCT/QP_CL_TOE mit dem Interface /SCT/QP_IF_TOE aufrufbar.

Der Report /sct/qp_demo_toe_external_call zeigt die Verwendung der Methoden.

Exporting Parameter IS_TOE

über den Parameter werden alle Informationen der nachfolgend beschriebenen Methoden mitgegeben. es werden nur die folgenden Felder benötigt.

  • ELEMENT, Name des im Customizing hinterlegten Elements

  • OBJEKTTYP, Name der verwendeten Registerkarte. Je verwendeter Registerkarte können alternative Definionen zum Kontext oder Plausibiliserung hinterlegt werden. Wird der Objektyp nicht gesetzt wird die erste Verwendung des Element auf Registerkarten ermittelt und verwendet.

  • ELEMENTGRUPPE, Name der Elementgruppe zur verwendeten Objekttyp. Wird die Elementgruppe nicht gesetzt wird die erste Verwendung ermittelt.

  • VALUE, der zu überprüfende Wert.

  • VALIDATE, Datum zur Ermittlung der Element Werte im Gültigkeitszeitraum 

get_instance

Erzeugt eine singleton Instance. 

TRY.
mo_toe = /sct/qp_cl_toe=>get_instance( ).
CATCH /sct/qp_cx_error.
ENDTRY.

add_context

Falls bei der Plausibilisierung Kontext Elemente verwendet werden, müssen diese vorher gesetzt werden. Der Kontext ist gültig für alle folgenden Methodenaufrufe.  

DATA(lt_context) = VALUE /sct/qp_t_qvc_val_data( ( element = p_celem1 value = p_cval1 )
( element = p_celem2 value = p_cval2 )
( element = p_celem3 value = p_cval3 ) ).
mo_toe->add_context( lt_context ).

get_context

Ermittelt die im Customizing hinterlegten Kontext Elemente.

DATA(rt_element) = mo_toe->get_context_elements( is_toe = VALUE #( element = p_elem ) ).

free_context

Ändern sich der Kontext kann der aktuelle Kontext zurückgesetzt werden.

mo_toe->free_context( ).

check_value

prüft die Gültigkeit eines Element Werte in Abhängigkeit von Kontext, Gültigkeitszeitraum und Status.

Der Parameter: RV_VALID gibt die Gültigkeit wieder. Die gültigen Werte können über die Konstanten Klasse /SCT/QP_CL_CONST=>TOE-VALID abgefragt werden.

  • 0 OK:                               - Wert ist gültig  

  • 2 warning:                       - Warnung

  • 4 out_of_validity_period: - ausserhalb des Gültigkeitszeitraums

  • 6 failed:                           - ungültig

  • 7 index_not_found:         - nicht im Index gefunden

Der Parameter ES_MESSAGE gibt eine differenzierte Fehlerbeschreibung aus.    

DATA ls_message TYPE /sct/qp_s_message.
DATA(rv_valid) = mo_toe->check_value( EXPORTING is_toe = VALUE #( element = p_elem value = p_value valid_date = sy-datum )
IMPORTING es_message = ls_message ).
case rv_valid:
when /sct/qp_cl_const=>toe-valid-ok.
when /sct/qp_cl_const=>toe-valid-warning.
when /sct/qp_cl_const=>toe-valid-out_of_validity_period.
when /sct/qp_cl_const=>toe-valid-failed.
when /sct/qp_cl_const=>toe-valid-index_not_found.
endcase.
 
ls_message-message = /sct/qp_cl_tools=>get_instance( )->get_msg_from_msgv( iv_id = ls_message-msgid
iv_number = ls_message-msgno
iv_msgv1 = ls_message-msgv1
iv_msgv2 = ls_message-msgv2
iv_msgv3 = ls_message-msgv3
iv_msgv4 = ls_message-msgv4 ).

get_value_list

Ermittelt alle gültigen Werte mit Berücksichtigung von Kontext und Gültigkeitszeitraum. zu den gültigen Werten werden die mehrspracheigen Texte ausgegeben.

Parameter:

IV_TOEC_ACTIVE gibt an, ob Gültigkeit der Werte anhand des Kontextes berücksichtigt werden sollen

IS_SELOPT zusätzlich Selektionsbedingungen zu den Felder des Elementwertes

mo_toe->get_value_list( EXPORTING is_toe = VALUE #( element = p_elem valid_date = sy-datum )
iv_toec_active = abap_true
is_selopt = VALUE #( value = VALUE #( ( option = 'CP' sign = 'I' low = '*' ) )
maxamount = 50 )
IMPORTING et_value = DATA(lt_data) ).

get_value_text

Ermittlung die mehrsprachigen Texte zum Element Wert.

Parameter:

ES_VALT Texte in der angegebenen Sprache

ET_VALT alle mehrsprachigen Texte 

mo_toe->get_value_text( EXPORTING is_toe = VALUE #( element = p_elem value = p_value )
"iv_spras = SY-LANGU
IMPORTING es_valt = DATA(ls_valt) "text in IV_SPRAS
et_valt = DATA(lt_valt) ).
 
out->write( |DEFAULT LANGUAGE TEXT: { ls_valt-scrtext_l } | ).
LOOP AT lt_valt REFERENCE INTO DATA(lr_valt).
out->write( |LANGUAGE: { lr_valt->spras } TEXT: { lr_valt->scrtext_l } | ).
ENDLOOP.

f4_call

Aufruf der Suchhilfe zum Element.

Parameter:

RT_RESULT  Tabelle der selektierten Werte

DATA(lt_result) = mo_toe->f4_call( is_toe = VALUE #( element = p_elem value = p_value ) iv_disponly = abap_false
CHECK lt_result IS NOT INITIAL.
p_value = lv_result[ 1 ]-value.

Try Catch Block

Fehler werden über Exceptions ausgegeben. Zum Abfangen der Fehlernachrichten wird ein Try Catch Block verwendet.

TRY.
mo->toe->*
CATCH /sct/qp_cx_error INTO DATA(lo_err).
out->write( |---------- EXCEPTION: ' { lo_err->get_longtext( ) }| ).
ENDTRY.