Ansicht
Dokumentation
ABENCOND_CONSTRUCTOR_INFERENCE - COND CONSTRUCTOR INFERENCE
CPI1466 during Backup General Data in Customer MasterDiese Dokumentation steht unter dem Copyright der SAP AG.
COND, SWITCH, Typinferenz für Aktualparameter
Wenn folgender Konstruktorausdruck mit dem Zeichen # als Symbol für den Operandentyp als Aktualparameter an generische typisierte Formalparameter übergeben wird, wird folgende Typinferenz für das Zeichen # durchgeführt:
COND$|SWITCH #( ... THEN ... )
mit dem Zeichen # als Symbol für den Operandentyp als Aktualparameter an generische typisierte Formalparameter übergeben wird, wird folgende Typinferenz für das Zeichen # durchgeführt:
- Wenn der Datentyp des Operanden hinter dem ersten THEN statisch erkennbar ist und zum generischen Typ des Formalparameters passt, wird dieser Datentyp verwendet.
- Wenn der Datentyp des Operanden hinter dem ersten THEN statisch erkennbar ist und nicht zum generischen Typ des Formalparameters passt oder wenn er nicht statisch erkennbar ist, wird der Typ wie folgt aus dem generischen Typ abgeleitet: Dies gilt insbesondere für die Typen c, n und x mit generischen Längen.
Hinweis
Beispiel
Der Operator COND erzeugt hier ein Ergebnis vom Typ string. Der generische Parameter p hat bei Ausführung der Methode diesen Typ, was durch den von DESCRIBE FIELD zurück gegebenen Wert "g" angezeigt wird. Der Methodenaufruf führt zu einer entsprechenden Syntaxwarnung.
CLASS demo DEFINITION.
PUBLIC SECTION.
CLASS-METHODS main IMPORTING p TYPE csequence.
ENDCLASS.
CLASS demo IMPLEMENTATION.
METHOD main.
DESCRIBE FIELD p TYPE DATA(t).
cl_demo_output=>display( |{ p } of type { t }| ).
ENDMETHOD.
ENDCLASS.
START-OF-SELECTION.
FIELD-SYMBOLS:
fs1> TYPE any,
fs2> TYPE any.
ASSIGN 'AM' TO fs1>.
ASSIGN 'PM' TO fs2>.
demo=>main( COND #( WHEN sy-timlo '120000' THEN fs1>
ELSE fs2> ) ).
Konditionaloperator, Typinferenz
CPI1466 during Backup Addresses (Business Address Services)
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 3017 Date: 20240523 Time: 171915 sap01-206 ( 46 ms )