OneSpan Sign Developer: Erstellen eines Optionsfelds

Duo Liang, 26. September 2018

Wenn Sie Transaktionen erstellen, möchten Sie möglicherweise während der Unterzeichnungszeremonie Informationen von Ihrem Empfänger erfassen. Mit OneSpan Sign können Sie dies tun, indem Sie Felder wie Textfelder und Kontrollkästchen in Ihre Dokumente einfügen.

In diesem Blog werden wir uns mit dem Optionsfeld befassen, wie es sowohl in der SDK- als auch in der REST-Methode erstellt wird und wichtige Überlegungen beim Erstellen eines Optionsfelds. Lassen Sie uns ohne weiteres loslegen.

Optionsfeld

Einer der häufigsten Feldtypen in OneSpan Sign sind Optionsfelder. Sie können gruppiert werden, indem sie jeweils einem gemeinsamen Gruppennamen zugeordnet werden. Innerhalb einer Gruppe können Sie von Ihrem Unterzeichner verlangen, dass er eine Auswahl trifft und ein Optionsfeld als Standardauswahl vorab auswählt.

Nach der Zeremonie wird das ausgewählte Optionsfeld nach der Verarbeitung durch OneSpan Sign durch ein „X“ auf dem Dokument repliziert.

SDK-Beispiel

Hier sind einige SDK-Schnipsel, die Ihnen zeigen, wie Sie ein Optionsfeld erstellen:

Java-Version:

Feld radio1 = FieldBuilder.radioButton ("group1")
		           .withId (neue FieldId ("signer1_group1_radio1"))
		           .withName (("signer1_group1_radio1")
	               .withSize (15,15)
	               .onPage (0)
	               .atPosition (100.100)
                   .withValue (true) // standardmäßig ausgewählt
                   .withValidation (FieldValidatorBuilder.basic (). required ()) // einen erforderlichen Validator hinzufügen
                .bauen();

.Net-Version:

Feld radio1 = FieldBuilder.RadioButton ("Gruppe1")
                         .WithId (("signer1_group1_radio1")
      		             .WithName (("signer1_group1_radio1")
                         .WithSize (15,15)
                         .OnPage (0)
                         .AtPosition (100.100)
                         .WithValue (true) // standardmäßig ausgewählt
                         .WithValidation (FieldValidatorBuilder.Basic (). Required ()) // einen erforderlichen Validator hinzufügen
               .Bauen();

Wie oben erläutert, können mehrere Optionsfelder denselben Gruppennamen verwenden, und diese Gruppe kann nur an einen einzelnen Unterzeichner gebunden werden. Die Feld-ID wird nach einer aussagekräftigen Namenskonvention vorgeschlagen.

Standardmäßig müssen Unterzeichner keine Auswahl treffen. Wenn Sie Ihren Unterzeichner dazu zwingen möchten, fügen Sie dem Feld einen erforderlichen Feldvalidator hinzu, damit in Ihrem Feld JSON ein "erforderliches" Feld hinzugefügt wird. Bei mehreren Feldern in einer Gruppe muss diese Zeile nur einem von ihnen hinzugefügt werden. Wir empfehlen jedoch, sie allen Feldern hinzuzufügen.

Um eine von mehreren Kombinationen vorzuwählen, können Sie Ihren Feldwert auf true / ”true” / ”x” / ”X” setzen und mit false / ”false” / ”” vergleichen, um die Auswahl aufzuheben. Da wir ein SDK verwenden, wird empfohlen, einfach eine boolesche true-Einstellung zu verwenden, um Fehlereingaben zu vermeiden. Wenn Sie versehentlich wahre Werte für mehrere Schaltflächen in einer Gruppe festgelegt haben, erkennt OneSpan Sign das zuletzt hinzugefügte Feld als standardmäßig ausgewähltes Feld.

REST-Beispiel

Ein JSON-Beispiel zum Erstellen eines Optionsfelds, das dem obigen SDK-Code entspricht, wird wie folgt angezeigt:

{
   "id": "signer1_group1_radio1",
   "name": "signer1_group1_radio1",
   "Typ": "EINGABE",
   "Subtyp": "RADIO",
   "Seite": 0,
   "Höhe": 15,
   "Breite": 15,
   "links": 100,
   "Top 100,
   "Wert": "X",
   "Validierung": {
      "erforderlich": wahr,
      "enum": [
         "Gruppe 1"
      ]]
   }
}

Wie Sie sehen können, werden das erforderliche Attribut und Ihr Funkgruppenname in das Attribut "Validierung" eingefügt, um einem Feld zusätzliche Informationen zu geben.

Interessante Tatsache

Wenn Sie REST zum Entwickeln Ihrer Anwendung verwenden und die Optionsfeld-Metadaten in Ihrem Paket-JSON (GET / api / packages / {packageId}) abrufen möchten, müssen Sie den folgenden Header-Parameter einschließen, um erweiterte Formularfelder nutzen zu können:

Akzeptieren: application / json; esl-api-version = 11.18 (jede Version nach 10.6)

Wenn Sie zum Abrufen Ihrer Genehmigungsmetadaten den API-Aufruf (GET / api / packages / {packageId} / Approvals / {ApprovalId}) verwenden, müssen Sie diesen Header-Parameter nicht tragen. Kurz gesagt, es wird empfohlen, dies zu tragen, um den gleichen Anforderungsheader wie das SDK beizubehalten. (Im SDK wird dieser Parameter standardmäßig hinzugefügt.)

Sie können sich beziehen Versionshinweis 10.6.1 für mehr Informationen.

Mit Extraktionsmethoden

Derzeit wird der Optionsfeldtyp in der Dokumentextraktion noch nicht unterstützt. Aus diesem Grund wählen wir die Positionsextraktion, um alle unsere Felder zu lokalisieren, sowie die Feldinjektionsfunktion, um die Informationen des Unterzeichners einzugeben und unser Demo-Beispiel zu erstellen.

Die Formularfeldnamen in den Feldern werden im Bild links unten angezeigt. Den Screenshot des signierten Dokuments finden Sie rechts.

9-26-1

Das Beispiel basiert auf Java SDK. Dies ist der Kerncode, auf den Sie verweisen können, wenn Sie auch die Funktion zur Positionsextraktion und Feldinjektion verwenden:

DocumentPackage documentPackage = PackageBuilder.newPackageNamed ("Testpaket mit Optionsfeldern")
					.withSigner (SignerBuilder.newSignerWithEmail (signerInfo.get ("email")). withCustomId ("signer1")
							.withFirstName (signerInfo.get ("Vorname")). withLastName (signerInfo.get ("Nachname")))
					.withDocument (DocumentBuilder.newDocumentWithName ("Beispielvertrag")
							.fromFile ("Ihr Dateipfad")
							.enableExtraction ()
							.withSignature (SignatureBuilder.signatureFor (signerInfo.get ("email"))
									.withPositionExtracted (). withName ("signer1_fullname1")
									.withField (FieldBuilder.signatureDate (). withPositionExtracted ()
											.withName ("signer1_fullname1_date"))
									.withField (radio1) .withField (radio2) .withField (radio3))
							.withInjectedField (FieldBuilder.textField (). withName ("signer1_name")
									.withValue (signerInfo.get ("Vorname") + "" + signerInfo.get ("Nachname"))
							.withInjectedField (FieldBuilder.textField (). withName ("signer1_email")
									.withValue (signerInfo.get ("email")))
							.withInjectedField (FieldBuilder.textField (). withName ("signer1_phone")
									.withValue (signerInfo.get ("phone")))
							.withInjectedField (FieldBuilder.textField (). withName ("signer1_address")
									.withValue (signerInfo.get ("address")))
					.bauen();
			PackageId packageId = eslClient.createPackageOneStep (documentPackage);

Den vollständigen Code und das Dokument, das ich verwendet habe, finden Sie im Beispiel Hier .

Durch den heutigen Blog lernen wir die allgemeine Verwendung von Radio Button Field kennen. Durch Anwenden der Positionsextraktion auf das Optionsfeld können wir effektiv eine Transaktion damit erstellen.

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!