最も一般的な API 呼び出しの 1 つは、FieldInfo オブジェクトに対する呼び出しです。例えば、FieldInfo オブジェクトには、レコード内のフィールドの値を取得できる GetValue メソッドがあります。
次の外部アプリケーション サブルーチンは、FieldInfo オブジェクトに格納されている情報を印刷します。コードで、ここに示されていない外部ルーチン (StdOut) を呼び出します。このルーチンで引数がメッセージ ボックスに出力されます。
Sub DumpFieldInfo(info) ' The parameter is a FieldInfo object. Dim temp ' a Long Dim status ' a String Dim validity ' a String Dim valuechange ' a String Dim validchange ' a String Dim value ' a String temp = info.GetValueStatus() If temp = AD_VALUE_NOT_AVAILABLE Then status = "VALUE_NOT_AVAILABLE" ElseIf temp = AD_HAS_VALUE Then status = "HAS_VALUE value ='" & info.GetValue() & "'" ElseIf temp = AD_HAS_NO_VALUE Then status = "NO_VALUE" Else status = "<invalid value status: " & temp & ">" End If temp = info.GetValidationStatus() If temp = AD_KNOWN_INVALID Then validity = "INVALID" ElseIf temp = AD_KNOWN_VALID Then validity = "VALID" ElseIf temp = AD_NEEDS_VALIDATION Then validity = "NEEDS_VALIDATION" Else validity = "<invalid validation status: " & temp & ">" End If valuechange = "" If info.ValueChangedThisSetValue() Then valuechange = valuechange & " setval=Y" Else valuechange = valuechange & " setval=N" End If If info.ValueChangedThisGroup() Then valuechange = valuechange & " group=Y" Else valuechange = valuechange & " group=N" End If If info.ValueChangedThisAction() Then valuechange = valuechange & " action=Y" Else valuechange = valuechange & " action=N" End If validchange = "" If info.ValidityChangedThisSetValue() Then validchange = validchange & " setval=Y" Else validchange = validchange & " setval=N" End If If info.ValidityChangedThisGroup() Then validchange = validchange & " group=Y" Else validchange = validchange & " group=N" End If If info.ValidityChangedThisAction() Then validchange = validchange & " action=Y" Else validchange = validchange & " action=N" End If StdOut "FieldInfo for field " & info.GetName() StdOut " field's value = " & value StdOut " value status = " & status StdOut " value change =" & valuechange StdOut " validity = " & validity StdOut " validity change =" & validchange StdOut " error = '" & info.GetMessageText() & "'" End Sub REM Start of Global Script StdOut sub StdOut(Msg) msgbox Msg end sub REM End of Global Script StdOut
use CQPerlExt; $CQsession = CQSession::Build(); $CQsession->UserLogon("admin", "", "perl", ""); $record = $CQsession->GetEntity("Defect", "perl00000001"); $fieldInfo = $record->GetFieldValue("id"); $temp = $fieldInfo->GetValueStatus(); if ($temp == $CQPerlExt::CQ_VALUE_NOT_AVAILABLE) { $status = "VALUE_NOT_AVAILABLE"; } elsif ($temp == $CQPerlExt::CQ_HAS_VALUE) { $status = "HAS_VALUE"; $value = "'" & fieldinfo.GetValue() & "'"; } elsif ($temp == $CQPerlExt::CQ_HAS_NO_VALUE) { $status = "NO_VALUE"; } else { $status = "<invalid value status: " & temp & ">"; } $temp = $fieldInfo->GetValidationStatus(); if ($temp == $CQPerlExt::CQ_KNOWN_INVALID) { $validity = "INVALID"; } elsif ($temp == $CQPerlExt::CQ_KNOWN_VALID) { $validity = "VALID"; } elsif ($temp == $CQPerlExt::CQ_NEEDS_VALIDATION) { $validity = "NEEDS_VALIDATION"; } else { $validity = "<invalid validation status: " & temp & ">"; } $valuechange = ""; if ($fieldInfo->ValueChangedThisSetValue()) { $valuechange = $valuechange & " setval=Y"; } else { $valuechange = $valuechange & " setval=N"; } if ($fieldInfo->ValueChangedThisGroup()) { $valuechange = $valuechange & " group=Y"; } else { $valuechange = $valuechange & " group=N"; } if ($fieldInfo->ValueChangedThisAction()) { $valuechange = $valuechange & " action=Y"; } else { $valuechange = $valuechange & " action=N"; } $validchange = ""; if ($fieldInfo->ValidityChangedThisSetValue()) { $validchange = $validchange & " setval=Y"; } else { $validchange = $validchange & " setval=N"; } if ($fieldInfo->ValidityChangedThisGroup()) { $validchange = $validchange & " group=Y"; } else { $validchange = $validchange & " group=N"; } if ($fieldInfo->ValidityChangedThisAction()) { $validchange = $validchange & " action=Y"; } else { $validchange = $validchange & " action=N"; } print "FieldInfo for field = ", $fieldInfo->GetName(), "¥n"; print "Field's value = ", $value, "¥n"; print "Value status = ", $status, "¥n"; print "Value change = ", $valuechange, "¥n"; print "Validity = ", $validity, "¥n"; print "Validity change = ", $validchange, "¥n"; print "Error = '", $fieldInfo->GetMessageText(), "'"; CQSession::Unbuild($CQsession);