Pour télécharger l'exemple complet de code, consultez notre site Partage de code. Le PDF utilisé dans cette rubrique se trouve ici.
Lorsque vous créez un formulaire, vous pouvez exiger que l'utilisateur remplisse certains champs obligatoires. Vous pouvez également vouloir vous assurer que des entrées valides sont saisies par votre utilisateur. En validant les données du formulaire pendant que l'utilisateur le remplit, ce dernier peut savoir immédiatement s'il a fait une erreur ou s'il a laissé un champ obligatoire vide. Cela vous évite d'avoir à traiter des entrées de formulaire incorrectes ou vides. Avec OneSpan Sign, vous pouvez y parvenir en créant des validateurs de champ. Un validateur de champ vous permet d'exiger et de restreindre la plage des valeurs acceptables pour un champ non délimité.
Lorsque vous créez un validateur de champ, vous devez d'abord sélectionner le type de données souhaité pour le champ (par exemple, numérique, alphabétique). Vous pouvez ensuite ajouter d'autres paramètres (comme la longueur maximale).
Un champ ne peut avoir qu'un seul validateur.
L'exemple de code ci-dessous vous montre comment ajouter une validation de champ à un champ lié à une signature.
Si vous avez besoin d'une comparaison avec la procédure de création d'objets de base, ou si c'est la première fois que vous créez une transaction, consultez la rubrique Création et envoi d'une transaction.
.withSignature(SignatureBuilder.captureFor("[email protected]") .withName("client_signature") .withId(new SignatureId("client")) .withPositionExtracted() .withField(FieldBuilder.signatureDate() .withId(new FieldId("signature_date")) .withName("client_date") .withPositionExtracted()) .withField(FieldBuilder.textField() .withId(new FieldId("client_first")) .withName("first_name") .withPositionExtracted() .withValidation(FieldValidatorBuilder.alphabetic().required().withErrorMessage("Please enter a valid first name."))) .withField(FieldBuilder.textField() .withId(new FieldId("client_last")) .withName("last_name") .withPositionExtracted() .withValidation(FieldValidatorBuilder.alphabetic().required().withErrorMessage("Please enter a valid last name."))) .withField(FieldBuilder.textField() .withId(new FieldId("client_address")) .withName("address") .withPositionExtracted() .withValidation(FieldValidatorBuilder.basic().required().withErrorMessage("Please enter a valid address."))) .withField(FieldBuilder.textField() .withId(new FieldId("client_city")) .withName("city") .withPositionExtracted() .withValidation(FieldValidatorBuilder.alphabetic().required().withErrorMessage("Please enter a valid city."))) .withField(FieldBuilder.textField() .withId(new FieldId("client_state")) .withName("state") .withPositionExtracted() .withValidation(FieldValidatorBuilder.alphabetic().required().maxLength(2).minLength(2).withErrorMessage("Please enter a valid state."))) .withField(FieldBuilder.textField() .withId(new FieldId("client_zip")) .withName("zip") .withPositionExtracted() .withValidation(FieldValidatorBuilder.numeric().required().maxLength(5).minLength(5).withErrorMessage("Please enter a valid zip."))) .withField(FieldBuilder.textField() .withId(new FieldId("client_country")) .withName("country") .withPositionExtracted() .withValidation(FieldValidatorBuilder.alphabetic().required().withErrorMessage("Please enter a valid country."))) .withField(FieldBuilder.textField() .withId(new FieldId("client_phone")) .withName("phone_number") .withPositionExtracted() .withValidation(FieldValidatorBuilder.regex("^[2-9]\\d{2}-\\d{3}-\\d{4}$").required().withErrorMessage("Please enter a valid phone number (XXX-XXX-XXXX)"))) .withField(FieldBuilder.textField() .withId(new FieldId("client_email")) .withName("email") .withPositionExtracted() .withValidation(FieldValidatorBuilder.email().required().withErrorMessage("Please enter a valid email."))) .withField(FieldBuilder.textField() .withId(new FieldId("client_company")) .withName("company") .withPositionExtracted() .withValidation(FieldValidatorBuilder.alphabetic().required().withErrorMessage("Please enter a valid company."))) .withField(FieldBuilder.textField() .withId(new FieldId("client_policy")) .withName("policy_number") .withPositionExtracted() .withValidation(FieldValidatorBuilder.numeric().required().withErrorMessage("Please enter a valid policy number.")))
Dans cet exemple, les champs du formulaire sont extraits du PDF. Pour extraire chaque champ de formulaire de votre PDF, vous devrez transmettre le nom exact du champ de formulaire de votre PDF à la méthode withName() et utiliser la méthode withPositionExtracted() pour vous assurer que la position et la taille exactes sont conservées dans OneSpan Sign.
L'extraction des positions ne peut être effectuée que lors du téléversement de votre document et uniquement par le biais des API/SDK.
Pour créer un validateur de champ, vous devez transmettre un type de validateur de champ au FieldValidatorBuilder. Vous pouvez soit utiliser les validateurs prédéfinis fournis avec les API/SDK, soit créer votre propre validateur personnalisé en utilisant des expressions régulières.
La méthode required() rend un champ obligatoire et la méthode withErrorMessage() personnalise le message d'erreur qui s'affichera si l'utilisateur saisit des données de format non valide ou si le champ obligatoire est laissé vide. Vous pouvez également limiter la longueur d'une entrée à l'aide des méthodes maxLength() et minLength() .
Résultats
Une fois la transaction envoyée, tous les champs obligatoires sont marqués pour que le signataire puisse les renseigner. Le signataire ne peut pas continuer, tant que ces champs ne sont pas renseignés.
Pour télécharger l'exemple complet de code, consultez notre site Partage de code. Le PDF utilisé dans cette rubrique se trouve ici.
Lorsque vous créez un formulaire, vous pouvez exiger que l'utilisateur remplisse certains champs obligatoires. Vous pouvez également vouloir vous assurer que des entrées valides sont saisies par votre utilisateur. En validant les données du formulaire pendant que l'utilisateur le remplit, ce dernier peut savoir immédiatement s'il a fait une erreur ou s'il a laissé un champ obligatoire vide. Cela vous évite d'avoir à traiter des entrées de formulaire incorrectes ou vides. Avec OneSpan Sign, vous pouvez y parvenir en créant des validateurs de champ. Un validateur de champ vous permet d'exiger et de restreindre la plage des valeurs acceptables pour un champ non délimité.
Lorsque vous créez un validateur de champ, vous devez d'abord sélectionner le type de données souhaité pour le champ (par exemple, numérique, alphabétique). Vous pouvez ensuite ajouter d'autres paramètres (comme la longueur maximale).
Un champ ne peut avoir qu'un seul validateur.
Le code
L'exemple de code ci-dessous vous montre comment ajouter une validation de champ à un champ lié à une signature.
Si vous avez besoin d'une comparaison avec la procédure de création d'objets de base, ou si c'est la première fois que vous créez une transaction, consultez la rubrique Création et envoi d'une transaction.
.WithSignature(SignatureBuilder.CaptureFor("[email protected]") .WithName("client_signature") .WithPositionExtracted() .WithField(FieldBuilder.SignatureDate() .WithName("client_date") .WithPositionExtracted()) .WithField(FieldBuilder.TextField() .WithName("first_name") .WithPositionExtracted() .WithValidation(FieldValidatorBuilder.Alphabetic().Required().WithErrorMessage("Please enter a valid first name."))) .WithField(FieldBuilder.TextField() .WithName("last_name") .WithPositionExtracted() .WithValidation(FieldValidatorBuilder.Alphabetic().Required().WithErrorMessage("Please enter a valid last name."))) .WithField(FieldBuilder.TextField() .WithName("address") .WithPositionExtracted() .WithValidation(FieldValidatorBuilder.Basic().Required().WithErrorMessage("Please enter a valid address."))) .WithField(FieldBuilder.TextField() .WithName("city") .WithPositionExtracted() .WithValidation(FieldValidatorBuilder.Alphabetic().Required().WithErrorMessage("Please enter a valid city."))) .WithField(FieldBuilder.TextField() .WithName("state") .WithPositionExtracted() .WithValidation(FieldValidatorBuilder.Alphabetic().Required().MaxLength(2).MinLength(2).WithErrorMessage("Please enter a valid state."))) .WithField(FieldBuilder.TextField() .WithName("zip") .WithPositionExtracted() .WithValidation(FieldValidatorBuilder.Numeric().Required().MaxLength(5).MinLength(5).WithErrorMessage("Please enter a valid zip."))) .WithField(FieldBuilder.TextField() .WithName("country") .WithPositionExtracted() .WithValidation(FieldValidatorBuilder.Alphabetic().Required().WithErrorMessage("Please enter a valid country."))) .WithField(FieldBuilder.TextField() .WithName("phone_number") .WithPositionExtracted() .WithValidation(FieldValidatorBuilder.Regex("^[2-9]\\d{2}-\\d{3}-\\d{4}$").Required().WithErrorMessage("Please enter a valid phone number (XXX-XXX-XXXX)"))) .WithField(FieldBuilder.TextField() .WithName("email") .WithPositionExtracted() .WithValidation(FieldValidatorBuilder.Email().Required().WithErrorMessage("Please enter a valid email."))) .WithField(FieldBuilder.TextField() .WithName("company") .WithPositionExtracted() .WithValidation(FieldValidatorBuilder.Alphabetic().Required().WithErrorMessage("Please enter a valid company."))) .WithField(FieldBuilder.TextField() .WithName("policy_number") .WithPositionExtracted() .WithValidation(FieldValidatorBuilder.Numeric().Required().WithErrorMessage("Please enter a valid policy number."))))
Dans cet exemple, les champs du formulaire sont extraits du PDF. Pour extraire chaque champ de formulaire de votre PDF, vous devrez transmettre le nom exact du champ de formulaire de votre PDF à la méthode withName() et utiliser la méthode withPositionExtracted() pour vous assurer que la position et la taille exactes sont conservées dans OneSpan Sign.
L'extraction des positions ne peut être effectuée que lors du téléversement de votre document et uniquement par le biais des API/SDK.
Pour créer un validateur de champ, vous devez transmettre un type de validateur de champ au FieldValidatorBuilder. Vous pouvez soit utiliser les validateurs prédéfinis fournis avec les API/SDK, soit créer votre propre validateur personnalisé en utilisant des expressions régulières.
La méthode required() rend un champ obligatoire et la méthode withErrorMessage() personnalise le message d'erreur qui s'affichera si l'utilisateur saisit des données de format non valide ou si le champ obligatoire est laissé vide. Vous pouvez également limiter la longueur d'une entrée à l'aide des méthodes maxLength() et minLength() .
Résultats
Une fois la transaction envoyée, tous les champs obligatoires sont marqués pour que le signataire puisse les renseigner. Le signataire ne peut pas continuer, tant que ces champs ne sont pas renseignés.
Pour télécharger l'exemple complet de code, consultez notre site Partage de code. Le PDF utilisé dans cette rubrique se trouve ici.
Lorsque vous créez un formulaire, vous pouvez exiger que l'utilisateur remplisse certains champs obligatoires. Vous pouvez également vouloir vous assurer que des entrées valides sont saisies par votre utilisateur. En validant les données du formulaire pendant que l'utilisateur le remplit, ce dernier peut savoir immédiatement s'il a fait une erreur ou s'il a laissé un champ obligatoire vide. Cela vous évite d'avoir à traiter des entrées de formulaire incorrectes ou vides. Avec OneSpan Sign, vous pouvez y parvenir en créant des validateurs de champ. Un validateur de champ vous permet d'exiger et de restreindre la plage des valeurs acceptables pour un champ non délimité.
Lorsque vous créez un validateur de champ, vous devez d'abord sélectionner le type de données souhaité pour le champ (par exemple, numérique, alphabétique). Vous pouvez ensuite ajouter d'autres paramètres (comme la longueur maximale).
Un champ ne peut avoir qu'un seul validateur.
L'exemple de code ci-dessous vous montre comment ajouter une validation de champ à un champ lié à une signature.
Si vous avez besoin d'une comparaison avec la procédure de création d'objets de base, ou si c'est la première fois que vous créez une transaction, consultez la rubrique Création et envoi d'une transaction.
Requête HTTP
POST /api/packages
En-têtes HTTP
Accept: application/json Content-Type: multipart/form-data Authorization: Basic api_key
Données utiles de la demande
------WebKitFormBoundary1bNO60n7FqP5WO4t Content-Disposition: form-data; name="file"; filename="testDocumentExtraction.pdf" Content-Type: application/pdf %PDF-1.5 %µµµµ 1 0 obj <>>> endobj.... ------WebKitFormBoundary1bNO60n7FqP5WO4t Content-Disposition: form-data; name="payload" { "autocomplete": true, "documents": [ { "approvals": [ { "role": "manager", "fields": [ { "subtype": "LABEL", "binding": "{approval.signed}", "extract": true, "type": "INPUT", "name": "manager_date" }, { "subtype": "CAPTURE", "extract": true, "type": "SIGNATURE", "name": "manager_signature" } ], "name": "" }, { "role": "client", "fields": [ { "subtype": "LABEL", "binding": "{approval.signed}", "extract": true, "type": "INPUT", "name": "client_date" }, { "validation": { "required": true, "errorMessage": "Please enter a valid first name.", "pattern": "^[\\sa-zA-Z]+$" }, "subtype": "TEXTFIELD", "extract": true, "type": "INPUT", "name": "first_name" }, { "validation": { "required": true, "errorMessage": "Please enter a valid last name.", "pattern": "^[\\sa-zA-Z]+$" }, "subtype": "TEXTFIELD", "extract": true, "type": "INPUT", "name": "last_name" }, { "validation": { "required": true, "errorMessage": "Please enter a valid address.", "pattern": "" }, "subtype": "TEXTFIELD", "extract": true, "type": "INPUT", "name": "address" }, { "validation": { "required": true, "errorMessage": "Please enter a valid city.", "pattern": "^[\\sa-zA-Z]+$" }, "subtype": "TEXTFIELD", "extract": true, "type": "INPUT", "name": "city" }, { "validation": { "maxLength": 2, "required": true, "minLength": 2, "errorMessage": "Please enter a valid state.", "pattern": "^[\\sa-zA-Z]+$" }, "subtype": "TEXTFIELD", "extract": true, "type": "INPUT", "name": "state" }, { "validation": { "maxLength": 5, "required": true, "minLength": 5, "errorMessage": "Please enter a valid zip.", "pattern": "^[-+]?[0-9]*\\.?[0-9]*$" }, "subtype": "TEXTFIELD", "extract": true, "type": "INPUT", "name": "zip" }, { "validation": { "required": true, "errorMessage": "Please enter a valid country.", "pattern": "^[\\sa-zA-Z]+$" }, "subtype": "TEXTFIELD", "extract": true, "type": "INPUT", "name": "country" }, { "validation": { "required": true, "errorMessage": "Please enter a valid phone number (XXX-XXX-XXXX)", "pattern": "^[2-9]\\d{2}-\\d{3}-\\d{4}$" }, "subtype": "TEXTFIELD", "extract": true, "type": "INPUT", "name": "phone_number" }, { "validation": { "required": true, "errorMessage": "Please enter a valid email.", "pattern": "^([a-z0-9_\\.-]+)@([\\da-z\\.-]+)\\.([a-z\\.]{2,6})$" }, "subtype": "TEXTFIELD", "extract": true, "type": "INPUT", "name": "email" }, { "validation": { "required": true, "errorMessage": "Please enter a valid company.", "pattern": "^[\\sa-zA-Z]+$" }, "subtype": "TEXTFIELD", "extract": true, "type": "INPUT", "name": "company" }, { "validation": { "required": true, "errorMessage": "Please enter a valid policy number.", "pattern": "^[-+]?[0-9]*\\.?[0-9]*$" }, "subtype": "TEXTFIELD", "extract": true, "type": "INPUT", "name": "policy_number" }, { "subtype": "CAPTURE", "extract": true, "type": "SIGNATURE", "name": "client_signature" } ], "name": "" } ], "extract": true, "name": "Contract" } ], "status": "SENT", "type": "PACKAGE", "roles": [ { "id": "client", "type": "SIGNER", "signers": [ { "lastName": "Smith", "email": "[email protected]", "firstName": "John", "id": "client" } ], "name": "client" }, { "id": "manager", "type": "SENDER", "signers": [ { "lastName": "Haidary", "email": "[email protected] ", "firstName": "Haris", "id": "manager" } ], "name": "manager" } ], "name": "Sample Contract" } ------WebKitFormBoundary1bNO60n7FqP5WO4t--
Pour une description complète de chaque champ, voir le tableau des données utiles de la demande ci-dessous.
Pour télécharger l'exemple complet de code, consultez notre site Partage de code. Le PDF utilisé dans cette rubrique se trouve ici.
Lorsque vous créez un formulaire, vous pouvez exiger que l'utilisateur remplisse certains champs obligatoires. Vous pouvez également vouloir vous assurer que des entrées valides sont saisies par votre utilisateur. En validant les données du formulaire pendant que l'utilisateur le remplit, ce dernier peut savoir immédiatement s'il a fait une erreur ou s'il a laissé un champ obligatoire vide. Cela vous évite d'avoir à traiter des entrées de formulaire incorrectes ou vides. Avec OneSpan Sign, vous pouvez y parvenir en créant des validateurs de champ. Un validateur de champ vous permet d'exiger et de restreindre la plage des valeurs acceptables pour un champ non délimité.
Lorsque vous créez un validateur de champ, vous devez d'abord sélectionner le type de données souhaité pour le champ (par exemple, numérique, alphabétique). Vous pouvez ensuite ajouter d'autres paramètres (comme la longueur maximale).
Un champ ne peut avoir qu'un seul validateur.
L'exemple de code ci-dessous vous montre comment ajouter une validation de champ à un champ lié à une signature.
Si vous avez besoin d'une comparaison avec la procédure de création d'objets de base, ou si c'est la première fois que vous créez une transaction, consultez la rubrique Création et envoi d'une transaction.
//Approval for client ESignLiveAPIObjects.Approval approvalForClient = new ESignLiveAPIObjects.Approval(); approvalForClient.role = roleId2; approvalForClient.id = 'approvalForClient'; //signature field for client ESignLiveAPIObjects.Field fieldClient1 = new ESignLiveAPIObjects.Field(); fieldClient1.extract = true; fieldClient1.name = 'client_signature'; //match pdf field property name fieldClient1.type = 'SIGNATURE'; fieldClient1.subtype = 'CAPTURE'; //date field for client ESignLiveAPIObjects.Field fieldClient2 = new ESignLiveAPIObjects.Field(); fieldClient2.extract = true; fieldClient2.name = 'client_date'; //match pdf field property name fieldClient2.type = 'INPUT'; fieldClient2.subtype = 'LABEL'; fieldClient2.binding = '{approval.signed}'; //text field: first_name ESignLiveAPIObjects.Field fieldClient3 = new ESignLiveAPIObjects.Field(); fieldClient3.extract = true; fieldClient3.name = 'first_name'; //match pdf field property name fieldClient3.type = 'INPUT'; fieldClient3.subtype = 'TEXTFIELD'; //set validator ESignLiveAPIObjects.FieldValidation FieldValidation_first_name = new ESignLiveAPIObjects.FieldValidation(); FieldValidation_first_name.required = true; FieldValidation_first_name.errorMessage = 'Please enter a valid first name.'; FieldValidation_first_name.pattern = '^[\\sa-zA-Z]+$'; fieldClient3.validation = FieldValidation_first_name; //text field: last_name ESignLiveAPIObjects.Field fieldClient4 = new ESignLiveAPIObjects.Field(); fieldClient4.extract = true; fieldClient4.name = 'last_name'; //match pdf field property name fieldClient4.type = 'INPUT'; fieldClient4.subtype = 'TEXTFIELD'; //set validator ESignLiveAPIObjects.FieldValidation FieldValidation_last_name = new ESignLiveAPIObjects.FieldValidation(); FieldValidation_last_name.required = true; FieldValidation_last_name.errorMessage = 'Please enter a valid last name.'; FieldValidation_last_name.pattern = '^[\\sa-zA-Z]+$'; fieldClient4.validation = FieldValidation_last_name; //text field: address ESignLiveAPIObjects.Field fieldClient5 = new ESignLiveAPIObjects.Field(); fieldClient5.extract = true; fieldClient5.name = 'address'; //match pdf field property name fieldClient5.type = 'INPUT'; fieldClient5.subtype = 'TEXTFIELD'; //set validator ESignLiveAPIObjects.FieldValidation FieldValidation_address = new ESignLiveAPIObjects.FieldValidation(); FieldValidation_address.required = true; FieldValidation_address.errorMessage = 'Please enter a valid address.'; FieldValidation_address.pattern = ''; fieldClient5.validation = FieldValidation_address; //text field: city ESignLiveAPIObjects.Field fieldClient6 = new ESignLiveAPIObjects.Field(); fieldClient6.extract = true; fieldClient6.name = 'city'; //match pdf field property name fieldClient6.type = 'INPUT'; fieldClient6.subtype = 'TEXTFIELD'; //set validator ESignLiveAPIObjects.FieldValidation FieldValidation_city = new ESignLiveAPIObjects.FieldValidation(); FieldValidation_city.required = true; FieldValidation_city.errorMessage = 'Please enter a valid city.'; FieldValidation_city.pattern = '^[\\sa-zA-Z]+$'; fieldClient6.validation = FieldValidation_city; //text field: state ESignLiveAPIObjects.Field fieldClient7 = new ESignLiveAPIObjects.Field(); fieldClient7.extract = true; fieldClient7.name = 'state'; //match pdf field property name fieldClient7.type = 'INPUT'; fieldClient7.subtype = 'TEXTFIELD'; //set validator ESignLiveAPIObjects.FieldValidation FieldValidation_state = new ESignLiveAPIObjects.FieldValidation(); FieldValidation_state.required = true; FieldValidation_state.errorMessage = 'Please enter a valid state.'; FieldValidation_state.pattern = '^[\\sa-zA-Z]+$'; FieldValidation_state.maxLength = 2; FieldValidation_state.minLength = 2; fieldClient7.validation = FieldValidation_state; //text field: zip ESignLiveAPIObjects.Field fieldClient8 = new ESignLiveAPIObjects.Field(); fieldClient8.extract = true; fieldClient8.name = 'zip'; //match pdf field property name fieldClient8.type = 'INPUT'; fieldClient8.subtype = 'TEXTFIELD'; //set validator ESignLiveAPIObjects.FieldValidation FieldValidation_zip = new ESignLiveAPIObjects.FieldValidation(); FieldValidation_zip.required = true; FieldValidation_zip.errorMessage = 'Please enter a valid zip.'; FieldValidation_zip.pattern = '^[-+]?[0-9]*\\.?[0-9]*$'; FieldValidation_zip.maxLength = 5; FieldValidation_zip.minLength = 5; fieldClient8.validation = FieldValidation_zip; //text field: phone_number ESignLiveAPIObjects.Field fieldClient9 = new ESignLiveAPIObjects.Field(); fieldClient9.extract = true; fieldClient9.name = 'phone_number'; //match pdf field property name fieldClient9.type = 'INPUT'; fieldClient9.subtype = 'TEXTFIELD'; //set validator ESignLiveAPIObjects.FieldValidation FieldValidation_phone_number = new ESignLiveAPIObjects.FieldValidation(); FieldValidation_phone_number.required = true; FieldValidation_phone_number.errorMessage = 'Please enter a valid phone number (XXX-XXX-XXXX)'; FieldValidation_phone_number.pattern = '^[2-9]\\d{2}-\\d{3}-\\d{4}$'; fieldClient9.validation = FieldValidation_phone_number; //text field: email ESignLiveAPIObjects.Field fieldClient10 = new ESignLiveAPIObjects.Field(); fieldClient10.extract = true; fieldClient10.name = 'email'; //match pdf field property name fieldClient10.type = 'INPUT'; fieldClient10.subtype = 'TEXTFIELD'; //set validator ESignLiveAPIObjects.FieldValidation FieldValidation_email = new ESignLiveAPIObjects.FieldValidation(); FieldValidation_email.required = true; FieldValidation_email.errorMessage = 'Please enter a valid email.'; FieldValidation_email.pattern = '^([a-z0-9_\\.-]+)@([\\da-z\\.-]+)\\.([a-z\\.]{2,6})$'; fieldClient10.validation = FieldValidation_email; //text field: company ESignLiveAPIObjects.Field fieldClient11 = new ESignLiveAPIObjects.Field(); fieldClient11.extract = true; fieldClient11.name = 'company'; //match pdf field property name fieldClient11.type = 'INPUT'; fieldClient11.subtype = 'TEXTFIELD'; //set validator ESignLiveAPIObjects.FieldValidation FieldValidation_company = new ESignLiveAPIObjects.FieldValidation(); FieldValidation_company.required = true; FieldValidation_company.errorMessage = 'Please enter a valid company.'; FieldValidation_company.pattern = '^[\\sa-zA-Z]+$'; fieldClient11.validation = FieldValidation_company; //text field: policy_number ESignLiveAPIObjects.Field fieldClient12 = new ESignLiveAPIObjects.Field(); fieldClient12.extract = true; fieldClient12.name = 'policy_number'; //match pdf field property name fieldClient12.type = 'INPUT'; fieldClient12.subtype = 'TEXTFIELD'; //set validator ESignLiveAPIObjects.FieldValidation FieldValidation_policy_number = new ESignLiveAPIObjects.FieldValidation(); FieldValidation_policy_number.required = true; FieldValidation_policy_number.errorMessage = 'Please enter a valid policy number.'; FieldValidation_policy_number.pattern = '^[-+]?[0-9]*\\.?[0-9]*$'; fieldClient12.validation = FieldValidation_policy_number; //text field: country ESignLiveAPIObjects.Field fieldClient13 = new ESignLiveAPIObjects.Field(); fieldClient13.extract = true; fieldClient13.name = 'country'; //match pdf field property name fieldClient13.type = 'INPUT'; fieldClient13.subtype = 'TEXTFIELD'; //set validator ESignLiveAPIObjects.FieldValidation FieldValidation_country = new ESignLiveAPIObjects.FieldValidation(); FieldValidation_country.required = true; FieldValidation_country.errorMessage = 'Please enter a valid country.'; FieldValidation_country.pattern = '^[\\sa-zA-Z]+$'; fieldClient13.validation = FieldValidation_country; approvalForClient.fields = new List<ESignLiveAPIObjects.Field>{fieldClient1,fieldClient2,fieldClient3,fieldClient4,fieldClient5,fieldClient6,fieldClient7,fieldClient8,fieldClient9,fieldClient10,fieldClient11,fieldClient12,fieldClient13};
Dans cet exemple, les champs du formulaire sont extraits du PDF. Pour extraire chaque champ de formulaire de votre PDF, vous devez transmettre le nom exact de votre champ de formulaire PDF à l'attribut Nom d'un champ et activer l'extraction au niveau du document et du champ pour vous assurer que la position et la taille exactes sont conservées dans OneSpan Sign.
L'extraction des positions ne peut être effectuée que lors du téléversement de votre document et uniquement par le biais des API/SDK.
Pour créer un validateur de champ, vous devez transmettre un type de validateur de champ au FieldValidatorBuilder. Vous pouvez soit utiliser les validateurs prédéfinis fournis avec les API/SDK, soit créer votre propre validateur personnalisé en utilisant des expressions régulières.
La méthode required() rend un champ obligatoire et la méthode withErrorMessage() personnalise le message d'erreur qui s'affichera si l'utilisateur saisit des données de format non valide ou si le champ obligatoire est laissé vide. Vous pouvez également limiter la longueur d'une entrée à l'aide des méthodes maxLength() et minLength() .
Résultats
Une fois la transaction envoyée, tous les champs obligatoires sont marqués pour que le signataire puisse les renseigner. Le signataire ne peut pas continuer, tant que ces champs ne sont pas renseignés.