Fill in Label Field after Transaction Created from Template
Tuesday, October 11, 2022 at 08:35amI have a transaction I'm creating in C# based on using at template. The consent agreement and document to be signed are in the template. I can create the transaction from the template no problem, but once it's created i want to update the value of a label field that's in the first document (after the Consent Agreement). The label field is named "AccountNum". All the transactions are "the same" but a couple fields need customized values. Is there any easy way to do this?
Reply to: Fill in Label Field after Transaction Created from Template
Tuesday, October 11, 2022 at 09:06amHi Richard,
Thanks for your post!
I would suggest to use this API (PUT /api/packages/{packageId}/documents/{documentId}/approvals/) to update all the fields under one signature in bulk. Below is some code snippets in Java SDK which is very similar to .Net code:
//create a package out of the template
PackageId templatePackageID = new PackageId("GbstM-DP5mB7hC0xdDZ2wvc1uW4=");
DocumentPackage newPackage = PackageBuilder.newPackageNamed("Transaction created out of a Template")
.describedAs("Test Form")
.withSigner(SignerBuilder.newSignerWithEmail("[email protected]")
.withFirstName("firstName")
.withLastName("lastName")
.withCustomId("Placeholder1")
)
.withSettings(DocumentPackageSettingsBuilder.newDocumentPackageSettings().withInPerson())
.build();
PackageId pkgId = eslClient.createPackageFromTemplate(templatePackageID, newPackage);
//inject field
HashMap<String, String> fieldValues = new HashMap<String, String>(){{
put("FirstName", "John");
put("LastName", "Smith");
}};
DocumentPackage createdPackage = eslClient.getPackage(pkgId);
Document document = createdPackage.getDocument("AddressForm");
for (Signature signature : document.getSignatures()) {
boolean isUpdate = false;
for(Field field : signature.getFields()) {
if(fieldValues.containsKey(field.getName())) {
field.setValue(fieldValues.get(field.getName()));
isUpdate = true;
}
}
if(isUpdate) {
eslClient.getApprovalService().modifySignature(createdPackage, document.getId().getId(), signature);
}
}
//send package
eslClient.sendPackage(pkgId);
The same logic can be applied to Restful API code as well. Please let me know if this works for you and if you need to me create some other sample codes.
Duo