Les points d'ancrage globaux GSU_CQXE_OpenForm et GSU_CQXE_OpenSubmitForm offrent la possibilité d'ouvrir des formulaires préremplis à partir de points d'ancrage. Après avoir ajouté les points d'ancrage globaux à votre schéma, vous pouvez y accéder pour indiquer le type d'enregistrement du formulaire et l'initialiser avec des valeurs de zone.
Cette fonctionnalité est disponible dans le client ClearQuest et ClearQuest Web. Si un utilisateur tente d'ouvrir un formulaire à partir d'un ancien client ou à partir du client ClearQuest for Windows, l'API renverra un message d'information. Pour afficher ce message pour l'utilisateur, appelez la fonction die.
Si le client prend en charge cette fonction, l'API fera une exception, et tout code après l'appel de l'API ne sera pas exécuté. Les points d'ancrage de rappel dans le script permettent d'exécuter du code supplémentaire après l'appel de l'API.
Pour plus d'informations sur l'application de packages, voir Application de packages.
Appuyez-vous sur ces exemples d'enregistrements et de scripts d'action avec les points d'ancrage globaux pour fournir des formulaires préremplis aux utilisateurs. Dans cet exemple, l'action CreateChildDefect permet d'ouvrir un formulaire de soumission qui a été prérempli à l'aide des valeurs issues du point d'ancrage Record Script. L'utilisateur peut annuler ou sauvegarder le formulaire, qui exécute le code dans les points d'ancrage RecordScriptCancel et RecordScriptSave.
sub Defect_RecordScript {
my($result);
my($param) = @_;
# record type name is Defect
$currentSession= $entity->GetSession();
$newentity = $currentSession->BuildEntity("Defect");
$headline = $entity->GetFieldValue("Headline")->GetValue();
$id = $entity->GetFieldValue("id")->GetValue();
$newentity->SetFieldValue("Headline", "Child Of [".$id."] ".$headline);
$newentity->SetFieldValue("Severity", "3-Average");
# Pour les valeurs (Liste d'options) à multilignes
$newentity->SetFieldValue("Symptoms", "Data Loss\nSlow Performance");
# For reference-list fields
$newentity->AddFieldValue("customer", "123 smith");
$newentity->AddFieldValue("customer", "Ethan Hunt");
# Pour la date fieldType
$newentity->SetFieldValue("dateTime", "2010-04-08 15:57:28");
# Pour (textArea) fieldType multiligne, les caractères spéciaux "\n" et "\t" sont pris en charge
$newentity->SetFieldValue("Description", "Description");
# Les points d'ancrage de rappel doivent être définis dans "scripts d'enregistrement" sous $recordType
$save_callback_hook_name="RecordScriptSave";
# Définir l'ordre des zones, doit inclure tous les noms de zones
$fieldOrder = ["Headline","Severity","Symptoms","customer","dateTime","Description"];
$returnValue=GSU_CQXE_OpenSubmitForm($newentity,$save_callback_hook_name, "RecordScriptCancel", $fieldOrder);
if($returnValue){
# Si le client ne prend pas en charge le point d'ancrage global, exécutez les points d'ancrage ici,
# par ex. validez et envoyez $newentity
# Win32::MsgBox ("This function is not supported by the client.");
}
return $result;
}
sub Defect_RecordScriptSave {
my($result);
my($param) = @_;
# record type name is Defect
@params = split (/\n+/, $param);
$entity->EditEntity("Modify");
$entity->AddFieldValue("children",$params[1]);
$entity->Validate();
$entity->Commit();
return $result;
}
sub Defect_RecordScriptCancel {
my($result);
my($param) = @_;
# record type name is Defect
$error_summary="CancelBackSaveHook";
$error_details="No parameters were specified.";
# $result=&DieWithCustomMessage;("ERROR",$error_summary, $error_details);
DieWithCustomMessage("INFO", $error_summary, $error_details);
return $result;
}
Function Defect_RecordScript(param)
' param As Variant
' record type name is Defect
Dim currentSession
Dim newentity
Dim this_entity
Dim fieldOrder
Dim returnValue
Dim saveHookName
Dim cancelHookName
set currentSession = GetSession
set newentity= currentSession.BuildEntity ("defect")
newentity.SetFieldValue "Headline", "Child Of parent record "
newentity.SetFieldValue "Severity", "3-Average"
' Pour les valeurs (Liste d'options) multilignes
newentity.AddFieldValue "Symptoms", "Data Loss"
newentity.AddFieldValue "Symptoms", "Slow Performance"
' For reference-list fields
newentity.AddFieldValue "customer", "Ethan Hunt"
' Pour la date fieldType
newentity.SetFieldValue "dateTime", "2010-04-08 15:57:28"
' Pour (textArea) fieldType multiligne, les caractères spéciaux vbcrlf sont pris en charge
newentity.SetFieldValue "Description", "Data Loss" & vbcrlf & "Slow Performance Unexpected Behavior" & vbcrlf & "retr"
ReDim fieldOrder(6) 'This sets up an array of seven elements with subscripts from 0 to 5
fieldOrder(0)="Headline"
fieldOrder(1)="Severity"
fieldOrder(2)="Symptoms"
fieldOrder(3)="customer"
fieldOrder(4)="dateTime"
fieldOrder(5)="Description"
saveHookName="RecordScriptSave"
cancelHookName="RecordScriptCancel"
Defect_RecordScript=GSU_CQXE_OpenSubmitForm(newentity,saveHookName,cancelHookName,fieldOrder)
If Defect_RecordScript <> "" then
' Si le client ne prend pas en charge le point d'ancrage global, exécutez les points d'ancrage ici,
' par ex. validez et envoyez $newentity
' MsgBox "This function is not supported by the client."
End If
End Function
Function Defect_RecordScriptSave(param)
' param As Variant
' record type name is Defect
REM add your hook code here
Dim error_summary
Dim error_details
error_summary="Submit record has been saved."
error_details="The submit record information is:" & param
call DieWithCustomMessage("INFO", error_summary, error_details)
End Function
Function Defect_RecordScriptCancel(param)
' param As Variant
' record type name is Defect
REM add your hook code here
Dim error_summary
Dim error_details
error_summary="CancelBackSaveHook"
error_details="No parameters were specified."
call DieWithCustomMessage("INFO",error_summary, error_details)
End Function