- 25 Nov 2024
- 22 Minutes à lire
- SombreLumière
- PDF
Restreindre les valeurs des champs
- Mis à jour le 25 Nov 2024
- 22 Minutes à lire
- SombreLumière
- PDF
SDK Java
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("signer@example.com")
.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.
.NET SDK
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("john.smith@gmail.com")
.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.
API REST
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
{
"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": "Sample Contract"
}
],
"status": "SENT",
"type": "PACKAGE",
"roles": [
{
"id": "client",
"type": "SIGNER",
"signers": [
{
"lastName": "Smith",
"email": "client@gmail.com",
"firstName": "John",
"id": "client"
}
],
"name": "client"
},
{
"id": "manager",
"type": "SENDER",
"signers": [
{
"lastName": "Haidary",
"email": "manager@gmail.com",
"firstName": "Haris",
"id": "manager"
}
],
"name": "manager"
}
],
"name": "Sample Contract"
}
Pour une description complète de chaque champ, voir le tableau des données utiles de la demande ci-dessous.
Données utiles de la réponse
{ "id": "9sKhW-h-qS9m6Ho3zRv3n2a-rkI=" }
Dans ce guide, 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 à l'objet name et définir l'objet extract à l'objet true . Cela garantit 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 passer un objet validation. Dans votre validation, vous devrez définir une expression régulière pour l'objet pattern. Le réglage de l'objet required à true rend un champ obligatoire et l'objet errorMessage permet de personnaliser 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.
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.
Tableau des données utiles de la demande
Propriété | Type | Modifiable | Requis | Par défaut | Exemples de valeurs |
---|---|---|---|---|---|
statut | chaîne de caractères | Oui | Non | ÉBAUCHE | ÉBAUCHE / ENVOYÉ / COMPLÉTÉ / ARCHIVÉ / DÉCLINÉ / REFUSÉ / EXPIRÉ |
ComplétionAuto | booléen | Oui | Non | vrai | vrai / faux |
type | chaîne de caractères | Oui | Non | PACKAGE | PAQUET / MODÈLE / MISE EN PAGE |
nom | chaîne de caractères | Oui | Oui | s.o. | Exemple de contrat |
documents | |||||
nom | chaîne de caractères | Oui | Non | s.o. | exemple de document |
extrait | booléen | Oui | Non | faux | faux / vrai |
approbations | |||||
champs | |||||
sous-type | chaîne de caractères | Oui | Non | s.o. | NOM COMPLET / INITIALES / CAPTURE / CAPTURE_MOBILE / ÉTIQUETTE / CHAMP DE TEXTE / ZONE DE TEXTE / CASE / DATE / RADIO / LISTE |
type | chaîne de caractères | Oui | Non | s.o. | SIGNATURE / ENTRÉE |
extrait | booléen | Oui | Non | faux | vrai / faux |
liaison | chaîne de caractères | Oui | Non | nul | {approval.signed} / {signer.title} / {signer.name} / {signer.company} |
nom | chaîne de caractères | Oui | Non | s.o. | manager_date |
validation | |||||
requis | booléen | Oui | Non | faux | faux / vrai |
errorMessage | chaîne de caractères | Oui | Non | s.o. | Veuillez saisir un prénom valide. |
récurrence | chaîne de caractères | Oui | Non | s.o. | ^[\\sa-zA-Z]+$ |
rôle | chaîne de caractères | Oui | Non | s.o. | Client1 |
rôles | |||||
id | chaîne de caractères | Oui | Non | s.o. | client |
nom | chaîne de caractères | Oui | Non | s.o. | Client1 |
type | chaîne de caractères | Oui | Non | SIGNER | SIGNATAIRE / EXPÉDITEUR |
signataires | |||||
courriel | chaîne de caractères | Oui | Oui | s.o. | client@gmail.com |
Prénom | chaîne de caractères | Oui | Oui | s.o. | John |
Nom de famille | chaîne de caractères | Oui | Oui | s.o. | Smith |
téléphone | chaîne de caractères | Oui | Non | s.o. | 514-555-8888 |
id | chaîne de caractères | Oui | Non | s.o. | client |
entreprise | chaîne de caractères | Oui | Non | s.o. | Acme Inc. |
titre | chaîne de caractères | Oui | Non | s.o. | Directeur général |
APEX SDK
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.
```csharp
// 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";
fieldClient1.type = "SIGNATURE";
fieldClient1.subtype = "CAPTURE";
// Date field for client
ESignLiveAPIObjects.Field fieldClient2 = new ESignLiveAPIObjects.Field();
fieldClient2.extract = true;
fieldClient2.name = "client_date";
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";
fieldClient3.type = "INPUT";
fieldClient3.subtype = "TEXTFIELD";
// Set validator for first_name
ESignLiveAPIObjects.FieldValidation validationFirstName = new ESignLiveAPIObjects.FieldValidation();
validationFirstName.required = true;
validationFirstName.errorMessage = "Please enter a valid first name.";
validationFirstName.pattern = "^[\\sa-zA-Z]+$";
fieldClient3.validation = validationFirstName;
// Text field: last_name
ESignLiveAPIObjects.Field fieldClient4 = new ESignLiveAPIObjects.Field();
fieldClient4.extract = true;
fieldClient4.name = "last_name";
fieldClient4.type = "INPUT";
fieldClient4.subtype = "TEXTFIELD";
// Set validator for last_name
ESignLiveAPIObjects.FieldValidation validationLastName = new ESignLiveAPIObjects.FieldValidation();
validationLastName.required = true;
validationLastName.errorMessage = "Please enter a valid last name.";
validationLastName.pattern = "^[\\sa-zA-Z]+$";
fieldClient4.validation = validationLastName;
// Text field: address
ESignLiveAPIObjects.Field fieldClient5 = new ESignLiveAPIObjects.Field();
fieldClient5.extract = true;
fieldClient5.name = "address";
fieldClient5.type = "INPUT";
fieldClient5.subtype = "TEXTFIELD";
// Set validator for address
ESignLiveAPIObjects.FieldValidation validationAddress = new ESignLiveAPIObjects.FieldValidation();
validationAddress.required = true;
validationAddress.errorMessage = "Please enter a valid address.";
validationAddress.pattern = "";
fieldClient5.validation = validationAddress;
// Text field: city
ESignLiveAPIObjects.Field fieldClient6 = new ESignLiveAPIObjects.Field();
fieldClient6.extract = true;
fieldClient6.name = "city";
fieldClient6.type = "INPUT";
fieldClient6.subtype = "TEXTFIELD";
// Set validator for city
ESignLiveAPIObjects.FieldValidation validationCity = new ESignLiveAPIObjects.FieldValidation();
validationCity.required = true;
validationCity.errorMessage = "Please enter a valid city.";
validationCity.pattern = "^[\\sa-zA-Z]+$";
fieldClient6.validation = validationCity;
// Text field: state
ESignLiveAPIObjects.Field fieldClient7 = new ESignLiveAPIObjects.Field();
fieldClient7.extract = true;
fieldClient7.name = "state";
fieldClient7.type = "INPUT";
fieldClient7.subtype = "TEXTFIELD";
// Set validator for state
ESignLiveAPIObjects.FieldValidation validationState = new ESignLiveAPIObjects.FieldValidation();
validationState.required = true;
validationState.errorMessage = "Please enter a valid state.";
validationState.pattern = "^[\\sa-zA-Z]+$";
validationState.maxLength = 2;
validationState.minLength = 2;
fieldClient7.validation = validationState;
// Text field: zip
ESignLiveAPIObjects.Field fieldClient8 = new ESignLiveAPIObjects.Field();
fieldClient8.extract = true;
fieldClient8.name = "zip";
fieldClient8.type = "INPUT";
fieldClient8.subtype = "TEXTFIELD";
// Set validator for zip
ESignLiveAPIObjects.FieldValidation validationZip = new ESignLiveAPIObjects.FieldValidation();
validationZip.required = true;
validationZip.errorMessage = "Please enter a valid zip code.";
validationZip.pattern = "^[-+]?[0-9]*\\.?[0-9]*$";
validationZip.maxLength = 5;
validationZip.minLength = 5;
fieldClient8.validation = validationZip;
// Text field: phone_number
ESignLiveAPIObjects.Field fieldClient9 = new ESignLiveAPIObjects.Field();
fieldClient9.extract = true;
fieldClient9.name = "phone_number";
fieldClient9.type = "INPUT";
fieldClient9.subtype = "TEXTFIELD";
// Set validator for phone_number
ESignLiveAPIObjects.FieldValidation validationPhoneNumber = new ESignLiveAPIObjects.FieldValidation();
validationPhoneNumber.required = true;
validationPhoneNumber.errorMessage = "Please enter a valid phone number (XXX-XXX-XXXX).";
validationPhoneNumber.pattern = "^[2-9]\\d{2}-\\d{3}-\\d{4}$";
fieldClient9.validation = validationPhoneNumber;
// Text field: email
ESignLiveAPIObjects.Field fieldClient10 = new ESignLiveAPIObjects.Field();
fieldClient10.extract = true;
fieldClient10.name = "email";
fieldClient10.type = "INPUT";
fieldClient10.subtype = "TEXTFIELD";
// Set validator for email
ESignLiveAPIObjects.FieldValidation validationEmail = new ESignLiveAPIObjects.FieldValidation();
validationEmail.required = true;
validationEmail.errorMessage = "Please enter a valid email address.";
validationEmail.pattern = "^([a-z0-9_\\.-]+)@([\\da-z\\.-]+)\\.([a-z\\.]{2,6})$";
fieldClient10.validation = validationEmail;
// Text field: company
ESignLiveAPIObjects.Field fieldClient11 = new ESignLiveAPIObjects.Field();
fieldClient11.extract = true;
fieldClient11.name = "company";
fieldClient11.type = "INPUT";
fieldClient11.subtype = "TEXTFIELD";
// Set validator for company
ESignLiveAPIObjects.FieldValidation validationCompany = new ESignLiveAPIObjects.FieldValidation();
validationCompany.required = true;
validationCompany.errorMessage = "Please enter a valid company name.";
validationCompany.pattern = "^[\\sa-zA-Z]+$";
fieldClient11.validation = validationCompany;
// Text field: policy_number
ESignLiveAPIObjects.Field fieldClient12 = new ESignLiveAPIObjects.Field();
fieldClient12.extract = true;
fieldClient12.name = "policy_number";
fieldClient12.type = "INPUT";
fieldClient12.subtype = "TEXTFIELD";
// Set validator for policy_number
ESignLiveAPIObjects.FieldValidation validationPolicyNumber = new ESignLiveAPIObjects.FieldValidation();
validationPolicyNumber.required = true;
validationPolicyNumber.errorMessage = "Please enter a valid policy number.";
validationPolicyNumber.pattern = "^[-+]?[0-9]*\\.?[0-9]*$";
fieldClient12.validation = validationPolicyNumber;
// Text field: country
ESignLiveAPIObjects.Field fieldClient13 = new ESignLiveAPIObjects.Field();
fieldClient13.extract = true;
fieldClient13.name = "country";
fieldClient13.type = "INPUT";
fieldClient13.subtype = "TEXTFIELD";
// Set validator for country
ESignLiveAPIObjects.FieldValidation validationCountry = new ESignLiveAPIObjects.FieldValidation();
validationCountry.required = true;
validationCountry.errorMessage = "Please enter a valid country name.";
validationCountry.pattern = "^[\\sa-zA-Z]+$";
fieldClient13.validation = validationCountry;
// Assign fields to approval for client
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.