OneSpan Sign Developer: Campos condicionales - Parte 3

Duo Liang, 20 de Mayo de 2020

En los dos blogs anteriores de esta serie, describimos los conceptos básicos de los campos condicionales en Parte 1 , y luego aclaramos la sintaxis de las condiciones que demostraron cómo aprovechar la función a través de REST API en Parte 2 .

A continuación, esta serie de blogs en curso mostrará cómo crear campos condicionales usando el SDK y explicará cómo construir un paquete con condiciones y recuperar las lógicas referenciadas más adelante. ¡Empecemos!

Crear campos condicionales a través de SDK

OneSpan Sign ofrece una solución ordenada y limpia para especificar las condiciones durante la creación del paquete para minimizar los números de API salientes. El siguiente código Java de muestra demuestra cómo se implementa:

        Condición de FieldCondition = FieldConditionBuilder.newFieldCondition ()
				.withId ("ConditionId")
				.withCondition ("document ['DocumentId']. field ['fieldId2']. value == 'X'")
				.withAction ("document ['DocumentId']. field ['fieldId1']. disabled = false")
				.construir();
        DocumentPackage pkg = PackageBuilder.newPackageNamed ("Probar campos condicionales")
                .describeAs ("Descripción")
                .withSigner (SignerBuilder.newSignerWithEmail ("signer1 @mailinator .com ")
                        .withFirstName ("Patty")
                        .withLastName ("Galant"))
                .withDocument (DocumentBuilder.newDocumentWithName ("Documento")
                        .withId ("DocumentId")
                        .fromFile ("path_to_your_document")
                        .withSignature (SignatureBuilder.signatureFor ("signer1 @mailinator .com ")
                                .withId (nuevo SignatureId ("signatureId"))
                                .onPage (0)
                                .atPosition (400, 100)
                                .withField (FieldBuilder.textField ()
                                        .withId (nuevo FieldId ("fieldId1"))
                                        .onPage (0)
                                        .atPosition (0, 0))
                                .withField (FieldBuilder.checkBox ()
                                        .withId (nuevo FieldId ("fieldId2"))
                                        .onPage (0)
                                        .atPosition (0, 0))))
                .withCondition (condición)
                .construir();

        PackageId pkgId = eslClient.createPackageOneStep (superDuperPackage);

Encuentra más ejemplos de Java y .RED .

Recuperar lógicas referenciadas

Una vez que se crea un paquete con lógicas condicionales, OneSpan Sign ofrece a los integradores la capacidad de recuperar rápidamente la lista de condiciones definidas para un documento o campo específico. Esto permite a los desarrolladores gestionar fácilmente las condiciones especificadas. 

Para integradores de API

Solicitud HTTP

GET / api / packages / {packageId} / referencedConditions? DocumentId = {documentId} & fieldId = {fieldId}

Encabezados HTTP

Aceptar: aplicación / json 
Autorización: Basic api_key 

Los dos parámetros "documentId" y "fieldId" son opcionales, que se pueden utilizar para filtrar las entidades devueltas.

Nota: 

  • Especificar la ID de campo sin ID de documento devolverá un error.
  • La presencia de los parámetros no afectará el esquema de respuesta, como se muestra a continuación.

Carga útil de respuesta

{
  "packageId": "-2l-waYVRfeK3gD0ZsJCiOhr6TI =",
  "documentos": [
    {
      "documentId": "6e6295d1925dd910e4c71a43842ee0434b3e88e0f7b0f2d6",
      "campos": [
        {
          "fieldId": "GXqapEOZlQIL",
          "condiciones": {
            "referencedInCondition": [
              {
                "id": "ddcf978d-37e8-4d63-9016-c771d32ef96a",
                "condition": "document ['6e6295d1925dd910e4c71a43842ee0434b3e88e0f7b0f2d6']. field ['GXqapEOZlQIL']. value == 'X'",
                "action": "document ['6e6295d1925dd910e4c71a43842ee0434b3e88e0f7b0f2d6']. field ['cbvt5zkgLNw3']. required = true"
              }
            ],
            "referencedInAction": []
          }
        },
        {
          "fieldId": "cbvt5zkgLNw3",
          "condiciones": {
            "referencedInCondition": [],
            "referencedInAction": [
              {
                "id": "ddcf978d-37e8-4d63-9016-c771d32ef96a",
                "condition": "document ['6e6295d1925dd910e4c71a43842ee0434b3e88e0f7b0f2d6']. field ['GXqapEOZlQIL']. value == 'X'",
                "action": "document ['6e6295d1925dd910e4c71a43842ee0434b3e88e0f7b0f2d6']. field ['cbvt5zkgLNw3']. required = true"
              }
            ]
          }
        }
      ]
    }
  ]
}

Todas las condiciones en las que el campo actual está involucrado en las expresiones "condición" o "acción" se enumerarán en la matriz "documentos"> matriz "campos"> matriz "condiciones"> matrices "referencedInCondition" o "referencedInAction". Por lo tanto, se espera que aparezca una lógica condicional en todos los nodos de campo relevantes. 

Para integradores SDK

Del mismo modo, nuestros SDK exponen las funciones correspondientes para recuperar las condiciones referenciadas por paquete, documento o campo. En la clase "PackageService", se han introducido tres funciones. Veamos las firmas de métodos:

 

Nota: 

  • Asegúrese de que su versión de SDK sea la 11.28 o posterior. 
  • El objeto "ReferencedConditions" se modela en función del esquema JSON de la respuesta API.


Esto debería darle una idea de cómo desarrollar esta función con el SDK. OneSpan planea continuar desarrollando la función de Campos condicionales para aportar aún más valor en futuras versiones. Vuelva al blog de OneSpan para obtener la información más reciente sobre mejoras o cambios de comportamiento.

Si tiene alguna pregunta sobre este blog o cualquier otra cosa relacionada con la integración de OneSpan Sign en su aplicación, visite el Foros de la comunidad de desarrolladores . ¡Sus comentarios nos importan!

Comunidad de desarrolladores de OneSpan Sign

Comunidad de desarrolladores de OneSpan Sign

¡Únase a la comunidad de desarrolladores de OneSpan Sign! Foros, blogs, documentación, descargas de SDK y más.

Únete hoy