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.