Anwendungsgebiet: Stringfunktionen / Prüffunktionen
Die Funktion SDF-STRUCTURE-VALUE( ) liefert den Inhalt einer SDF-Struktur teilweise oder ganz.
Format
SDF-STRUCTURE-VALUE( ) |
STRING = string_ausdruck ,OPERAND-NAME = *ROOT / string_ausdruck / arithm_ausdruck ,ATTACHED-STRUCTURE = *YES / *NO |
Ergebnistyp
STRING (<string>)
Eingabeparameter
STRING = string_ausdruck
Name des Strings, der analysiert werden soll. Er wird intern durch IS-SDF-STRUCTURE( ) geprüft. Siehe deshalb die Beschreibung dieser Funktion.
OPERAND-NAME = *ROOT / string_ausdruck / arithm_ausdruck
Name des Operanden bzw. Position, wo der Wert zu finden ist.
Es werden nur die direkt angesprochenen Operanden untersucht bzw. die Operanden der direkt angesprochenen Ebene. Andere Operanden bzw. Operanden anderer Ebenen müssen extra angesprochen werden.
ATTACHED-STRUCTURE= *YES / *NO
Gibt an, ob die betroffene Struktur angegeben werden soll oder nicht.
Ergebnis
Gewünschter Ausdruck als String
Fehlermeldungen
SDP0460 DER EINGEGEBENE STRING IST KEINE STRUKTUR SDP0461 NUMERISCHER OPERANDENWERT MUSS GR0ESSER NULL SEIN SDP0462 '(&00)' IST KEIN STRUKTURNAME SDP0463 DER ANGEGEBENE OPERAND '(&00)' IST UNBEKANNT SDP0464 OPERANDENANGABE ENTHAELT ZU VIELE MEHRDEUTIGKEITEN SDP0465 OPERAND VOM TYP BOOLEAN HIER UNZULAESSIG
Beispiel 1
/START-SDF-A //OPEN syssdf.myuser,type=user,mode=create //ADD-CMD my-cmd-1,IMPL=*PROC('myproc') //ADD-OPERAND op //ADD-VALUE *NAME //ADD-VALUE *KEYWORD(STAR=*MANDATORY),STRUCTURE=*YES,VALUE='PARAMETERS' //ADD-OPERAND op1,RESULT-OPERAND-LEVEL=2 //ADD-VALUE *NAME //ADD-OPERAND op2,RESULT-OPERAND-LEVEL=2 //ADD-VALUE *FILENAME //CLOSE-STRUCTURE //END Zunächst wird eine SDF-Syntaxdatei mit dem Namen SYSSDF.MYUSER angelegt, in der anschließend das Kommando MY-CMD-1 definiert wird. Dieses Kommando ist durch die Prozedur MYPROC implementiert (siehe SDF-A-Anweisung //ADD-CMD).
Inhalt der Prozedur MYPROC:
/SET-PROCEDURE-OPTIONS "Procedure: myproc" /BEGIN-PARAMETER-DECLARATION / DECLARE-PARAMETER op /END-PARAMETER-DECLARATION /value=SDF-STRUCTURE-VALUE(op,*ROOT,*NO) /WRITE-TEXT 'root value : &value' /value=SDF-STRUCTURE-VALUE(op,'OP1') /WRITE-TEXT 'operand op1 value : &value' /value=SDF-STRUCTURE-VALUE(op,'OP2') /WRITE-TEXT 'operand op1 value : &value' /EXIT-PROCEDURE
Um das Kommando MY-CMD-1 aufzurufen, muss die Syntaxdatei aktiviert werden:
/MODIFY-SDF-OPTIONS *ADD(ADD-NANE=syssdf.myuser)
Aufruf des Kommandos MY-CMD-1:
/MY-CMD-1 OP=*PARAMETERS(OP1=VALUE1,OP2=VALUE2)
Ausgabe
root value: *PARAMETERS operand op1 value: VALUE1 operand op2 value: VALUE2
Das Kommando MY-CMD-1 ruft die Prozedur MYPROC auf und liefert die Inhalte der angegebenen Struktur OP zurück.
Beispiel 2
/A='*PARAMETERS(OP1=val1(OP11=val11,OP12=val12),OP2=val2(val21,val22))' /B=SDF-STRUCTURE-VALUE(A,'OP1',*YES) /SHOW-VAR B B=val1(OP11=val11,OP12=val12) /C=SDF-STRUCTURE-VALUE(B,'OP11') /SHOW-VAR C C=val11 /D=SDF-STRUCTURE-VALUE(B,2) /SHOW-VAR D D=val12