Una de las llamada de API más comunes es al objeto FieldInfo. Por ejemplo, el objeto FieldInfo tiene el método GetValue que le permite obtener el valor de un campo de un registro.
La subrutina de aplicación externa siguiente imprime la información almacenada en un objeto FieldInfo. El código invoca una rutina externa que no se muestra aquí: StdOut, que imprime los argumentos en un recuadro de mensaje.
Sub DumpFieldInfo(info) ' The parameter is a FieldInfo object. Dim temp ' Long Dim status ' String Dim validity ' String Dim valuechange ' String Dim validchange ' String Dim value ' 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);