Una delle più comuni chiamate API viene effettuata verso l'oggetto FieldInfo. Ad esempio, l'oggetto FieldInfo dispone del metodo GetValue che consente di acquisire il valore di un campo in un record.
La seguente routine secondaria dell'applicazione esterna stampa le informazioni memorizzate in un oggetto FieldInfo. Il codice richiama una routine esterna StdOut, non riportata in questo esempio, che stampa i relativi argomenti in una casella di messaggio.
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);