OneSpan Sign Developer: Conditional Fields - Partie 3

Duo Liang, mai 20, 2020

Dans les deux blogs précédents de cette série, nous avons décrit les bases de Conditional Fields dans la partie 1, puis nous avons clarifié la syntaxe des conditions démontrées comment tirer parti de la fonctionnalité par LE biais de REST API dans la partie 2.

Ensuite, cette série de blogs en cours montrera comment créer des champs conditionnels en utilisant le SDK et expliquer comment construire un paquet avec des conditions et récupérer les logiques référencées par la suite. Commençons !

Créer des champs conditionnels via SDK

OneSpan Sign offre une solution soignée et propre pour spécifier les conditions pendant la création du paquet afin de minimiser les numéros d’API sortants. L’échantillon de code Java ci-dessous montre comment il est implémenté:

        Condition FieldCondition - FieldConditionBuilder.newFieldCondition()
				.withId ("ConditionId")
				.withCondition ("document['DocumentId'].field['fieldId2'].value 'X'")
				.withAction ("document['DocumentId'].field['fieldId1'].disabled 'faux")
				.construire();
        DocumentPackage pkg - PackageBuilder.newPackageNamed ("Test Conditional Fields")
                .décritAs ("Description")
                .withSigner(SignerBuilder.newSignerWithEmail("signer1@[email protected]")
                        .avecFirstName ("Patty")
                        .avecLastName ("Galant"))
                .withDocument (DocumentBuilder.newDocumentWithName("Document")
                        .withId ("DocumentId")
                        .fromFile ("path_to_your_document")
                        .withSignature (SignatureBuilder.signatureFor("signer1 @mailinator .com")
                                .withId (nouveau SignatureId ("signatureId"))
                                .onPage(0)
                                .atPosition(400, 100)
                                .withField (FieldBuilder.textField()
                                        .withId (nouveau FieldId ("fieldId1"))
                                        .onPage(0)
                                        .atPosition(0, 0))
                                .withField (FieldBuilder.checkBox()
                                        .withId (nouveau FieldId ("fieldId2"))
                                        .onPage(0)
                                        .atPosition(0, 0)))
                .avecCondition(condition)
                .construire();

        PackageId pkgId et eslClient.createPackageOneStep (superDuperPackage);

Trouver plus d’exemples pour Java et .NET.

Récupérer les logiques référencées

Une fois qu’un paquet est créé avec des logiques conditionnelles, OneSpan Sign offre aux intégrateurs la possibilité de récupérer rapidement la liste des conditions définies pour un document ou un champ spécifique. Cela permet aux développeurs de gérer facilement les conditions spécifiées. 

Pour les intégrateurs API

Demande HTTP

GET /api/packages/packageIdMD/referencedConditions?documentId’documentId’fieldId 'fieldId'

En-têtes HTTP

Accepter : application/json 
Autorisation: api_key de base 

Les deux paramètres "documentId" et "fieldId" sont facultatifs, qui peuvent être utilisés pour filtrer les entités retournées.

Note: 

  • Spécifier l’ID de champ sans pièce d’identité de document retournera une erreur.
  • La présence des paramètres n’affectera pas le schéma de réponse, comme indiqué ci-dessous.

Charge utile de réponse

{
  "packageId": "-2l-waYVRfeK3gD0ZsJCiOhr6TI",
  "documents": [
    {
      "documentId": "6e6295d1925dd910e4c71a43842ee0434b3e88e0f7b0f2d6",
      "champs": [
        {
          "fieldId": "GXqapEOZlQIL",
          "conditions":
            "referencedInCondition": [
              {
                "id": "ddcf978d-37e8-4d63-9016-c771d32ef96a",
                "condition": "document['6e6295d1925d910e4c71a43842ee0434b3e88e0f7b0f2d6'].field['GXqapEOZlQIL'].valeur 'X'",
                "action": "document['6e6295d1925d910e4c71a43842ee0434b3e88e0f7b0f2d6'].field['cbvt5zkgLNw3'].requis 'vrai"
              }
            ],
            "referencedInAction": []
          }
        },
        {
          "fieldId": "cbvt5zkgLNw3",
          "conditions":
            "referencedInCondition": [],
            "referencedInAction": [
              {
                "id": "ddcf978d-37e8-4d63-9016-c771d32ef96a",
                "condition": "document['6e6295d1925d910e4c71a43842ee0434b3e88e0f7b0f2d6'].field['GXqapEOZlQIL'].valeur 'X'",
                "action": "document['6e6295d1925d910e4c71a43842ee0434b3e88e0f7b0f2d6'].field['cbvt5zkgLNw3'].requis 'vrai"
              }
            ]
          }
        }
      ]
    }
  ]
}

Toutes les conditions dans lesquelles le champ actuel est impliqué soit dans les expressions «condition» ou «action» seront énumérées dans le tableau des « documents » - tableau « champs » - tableau « conditions » - « référencedInCondition » ou « referencedInAction ». Par conséquent, on s’attend à ce qu’une logique conditionnelle apparaît dans tous les nœuds de terrain pertinents. 

Pour les intégrateurs SDK

De même, nos SDK exposent les fonctions correspondantes pour récupérer les conditions référencées par paquet, document ou champ. Dans la classe "PackageService", trois fonctions ont été introduites. Vérifions les signatures de la méthode :


 

Note: 

  • Assurez-vous que votre version SDK est 11.28 ou plus tard. 
  • L’objet "ReferencedConditions" est modélisé en fonction du schéma JSON de la réponse de l’API.


Cela devrait vous donner un aperçu du développement de cette fonctionnalité avec le SDK. OneSpan prévoit de continuer à développer la fonctionnalité Conditional Fields afin d’apporter encore plus de valeur dans les versions futures. Revenez sur le blog OneSpan pour les dernières informations sur les améliorations ou les changements de comportement.

Si vous avez des questions concernant ce blog ou toute autre chose concernant l'intégration de OneSpan Sign dans votre application, visitez les Forums communautairesdes développeurs . Vos commentaires sont importants pour nous!

OneSpan Sign Developer Community

OneSpan Sign Developer Community

Rejoignez la communauté OneSpan Sign Developer! Forums, blogs, documentation, téléchargements SDK, et plus encore.

Joignez-vous aujourd'hui