OneSpan Sign Developer: Bedingte Felder - Teil 3

Duo Liang, 20. Mai 2020
OneSpan Sign Developer: Conditional Fields – Part 3

In den beiden vorherigen Blogs dieser Reihe haben wir die Grundlagen der bedingten Felder in erläutert Teil 1 und dann haben wir die Syntax der Bedingungen geklärt, die gezeigt haben, wie die Funktion über die REST-API in genutzt werden kann Teil 2 .

In dieser fortlaufenden Blog-Reihe wird gezeigt, wie Sie mit dem SDK bedingte Felder erstellen und wie Sie ein Paket mit Bedingungen erstellen und anschließend die referenzierten Logiken abrufen. Lass uns anfangen!

Erstellen Sie bedingte Felder über das SDK

OneSpan Sign bietet eine saubere und saubere Lösung, um die Bedingungen während der Paketerstellung anzugeben und die ausgehenden API-Nummern zu minimieren. Der folgende Java-Beispielcode zeigt, wie er implementiert ist:

        FieldCondition condition = FieldConditionBuilder.newFieldCondition ()
				.withId ("ConditionId")
				.withCondition ("document ['DocumentId']. field ['fieldId2']. value == 'X'")
				.withAction ("document ['DocumentId']. field ['fieldId1']. disabled = false")
				.bauen();
        DocumentPackage pkg = PackageBuilder.newPackageNamed ("Bedingte Testfelder")
                .describedAs ("Beschreibung")
                .withSigner (SignerBuilder.newSignerWithEmail ("signer1 @mailinator .com ")
                        .withFirstName ("Patty")
                        .withLastName ("Galant"))
                .withDocument (DocumentBuilder.newDocumentWithName ("Document")
                        .withId ("DocumentId")
                        .fromFile ("path_to_your_document")
                        .withSignature (SignatureBuilder.signatureFor ("signer1 @mailinator .com ")
                                .withId (neue Signatur-ID ("Signatur-ID"))
                                .onPage (0)
                                .atPosition (400, 100)
                                .withField (FieldBuilder.textField ()
                                        .withId (neue FieldId ("fieldId1"))
                                        .onPage (0)
                                        .atPosition (0, 0))
                                .withField (FieldBuilder.checkBox ()
                                        .withId (neue FieldId ("fieldId2"))
                                        .onPage (0)
                                        .atPosition (0, 0))))
                .withCondition (Bedingung)
                .bauen();

        PackageId pkgId = eslClient.createPackageOneStep (superDuperPackage);

Weitere Beispiele finden Sie für Java und .NETZ .

Referenzierte Logik abrufen

Sobald ein Paket mit bedingter Logik erstellt wurde, bietet OneSpan Sign Integratoren die Möglichkeit, die Liste der für ein bestimmtes Dokument oder Feld definierten Bedingungen schnell abzurufen. Auf diese Weise können Entwickler die angegebenen Bedingungen einfach verwalten. 

Für API-Integratoren

HTTP-Anfrage

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

HTTP-Header

Akzeptieren: application / json 
Autorisierung: Basic api_key 

Die beiden Parameter "documentId" und "fieldId" sind optional und können zum Filtern der zurückgegebenen Entitäten verwendet werden.

Hinweis: 

  • Wenn Sie eine Feld-ID ohne Dokument-ID angeben, wird ein Fehler zurückgegeben.
  • Das Vorhandensein der Parameter wirkt sich nicht auf das Antwortschema aus, wie unten gezeigt.

Antwortnutzlast

{
  "packageId": "-2l-waYVRfeK3gD0ZsJCiOhr6TI =",
  "Dokumente": [
    {
      "documentId": "6e6295d1925dd910e4c71a43842ee0434b3e88e0f7b0f2d6",
      "Felder": [
        {
          "fieldId": "GXqapEOZlQIL",
          "Bedingungen": {
            "referencedInCondition": [
              {
                "id": "ddcf978d-37e8-4d63-9016-c771d32ef96a",
                "Bedingung": "Dokument ['6e6295d1925dd910e4c71a43842ee0434b3e88e0f7b0f2d6']. Feld ['GXqapEOZlQIL']. Wert == 'X'",
                "action": "document ['6e6295d1925dd910e4c71a43842ee0434b3e88e0f7b0f2d6']. field ['cbvt5zkgLNw3']. required = true"
              }
            ],
            "referencedInAction": []
          }
        },
        {
          "fieldId": "cbvt5zkgLNw3",
          "Bedingungen": {
            "referencedInCondition": [],
            "referencedInAction": [
              {
                "id": "ddcf978d-37e8-4d63-9016-c771d32ef96a",
                "Bedingung": "Dokument ['6e6295d1925dd910e4c71a43842ee0434b3e88e0f7b0f2d6']. Feld ['GXqapEOZlQIL']. Wert == 'X'",
                "action": "document ['6e6295d1925dd910e4c71a43842ee0434b3e88e0f7b0f2d6']. field ['cbvt5zkgLNw3']. required = true"
              }
            ]]
          }
        }
      ]]
    }
  ]]
}

Alle Bedingungen, bei denen das aktuelle Feld entweder an den Ausdrücken "Bedingung" oder "Aktion" beteiligt ist, werden unter den Arrays "Dokumente"> Array "Felder"> Array "Bedingungen"> Arrays "referencedInCondition" oder "referencedInAction" aufgelistet. Daher wird erwartet, dass eine bedingte Logik in allen relevanten Feldknoten erscheint. 

Für SDK-Integratoren

In ähnlicher Weise stellen unsere SDKs die entsprechenden Funktionen bereit, um die referenzierten Bedingungen pro Paket, Dokument oder Feld abzurufen. In der Klasse "PackageService" wurden drei Funktionen eingeführt. Lassen Sie uns die Methodensignaturen überprüfen:

 

Hinweis: 

  • Stellen Sie sicher, dass Ihre SDK-Version 11.28 oder höher ist. 
  • Das Objekt "ReferencedConditions" wird basierend auf dem JSON-Schema aus der API-Antwort modelliert.


Dies sollte Ihnen einen Einblick in die Entwicklung dieser Funktion mit dem SDK geben. OneSpan plant, die Funktion "Bedingte Felder" weiterzuentwickeln, um in zukünftigen Versionen noch mehr Wert zu erzielen. Im OneSpan-Blog finden Sie die neuesten Informationen zu Verbesserungen oder Verhaltensänderungen.

Wenn Sie Fragen zu diesem Blog oder zu anderen Aspekten der Integration von OneSpan Sign in Ihrer Anwendung haben, besuchen Sie die Entwickler-Community-Foren . Ihr Feedback ist uns wichtig!

OneSpan Sign-Entwickler-Community

OneSpan Sign-Entwickler-Community

Treten Sie der OneSpan Sign Developer Community bei! Foren, Blogs, Dokumentationen, SDK-Downloads und mehr.

Tritt heute bei