docusign - radioGroupTabs not working (locked out) in a compositeTemplate - node.js

I am trying to add a pdf with form fields document to a docusign envelope using inlineTemplates, everything is good, docusign is able to parse the textTabs, signHereTabs etc, but the problem is radioGroupTabs, when I send the envelope, these fields are locked.
The only way I got those fields unlocked/fillable is by assigning first signer as defaultRecipient.
tabs: {
textTabs: [
{
tabLabel: `ESIG_ADVISORDOC_SIGNER1_\\*`,
},
],
radioGroupTabs: [
{
groupName: `ESIG_ADVISORDOC_SIGNER1_TCP_ADD_REM`, // didn't work
},
{
groupName: `ESIG_ADVISORDOC_SIGNER1_\\*`, // didn't work
}
]
}
I tried multiple things, example use tabLabel in place of groupName for the radioGroupTabs etc etc, nothing worked. Tried with a wildcard, tried with the exact fieldName, tried with both.
Can someone please suggest a solution?

Tabs have an optional field locked. I believe the default for that value should be false but you could try explicitly setting locked to false to force the tabs to be editable.

Finally after two days of trials and errors, found that we need to pass locked: false in the radios attribute.
tabs: {
textTabs: [
{
tabLabel: `ESIG_ADVISORDOC_SIGNER1_\\*`,
},
],
radioGroupTabs: [
{
groupName: `ESIG_ADVISORDOC_SIGNER1_\\*`,
radios: [
{ locked: 'false' }
]
}
]
}
Docusign should be better with their documentation.

Related

Associated PXSelect/PXSelectReadOnly Returns Nothing on Sales Order Through OpenAPI

I've introduced a new DAC and a new field on the Sales Order associated to the new DAC key. When trying to retrieve the information through OpenAPI it comes back empty. I'd like to know why and how I can adjust my code to return the information. I've tried both PXSelect and PXSelectReadOnly
Declaring Statement on SOOrderEntry(extension):
public PXSelect<IOCSCompanyBrand, Where<IOCSCompanyBrand.companyBrandNbr,
Equal<Current<SOOrderExt.usrCompanyBrand>>>> CompanyBranding;
When I hit the URL: http://localhost/Acumatica21/entity/AcumaticaExtended21R1/20.200.001/SalesOrder?$select=OrderNbr,CompanyBranding,OrderType,CompanyBrand&$expand=CompanyBranding&$filter=OrderNbr%20eq%20'SO-030003'
This is the data that is returned:
[
{
"id": "f827cb43-9b8a-ec11-a481-747827c044c8",
"rowNumber": 1,
"note": {
"value": ""
},
"CompanyBrand": {
"value": "IO"
},
"CompanyBranding": null,
"OrderNbr": {
"value": "SO-030003"
},
"OrderType": {
"value": "SO"
},
"custom": {}
}
]
Acumatica Version: 21.205.0063
Here's the definition for SalesOrder in the endpoint (which was populated via the GUI)
I ended up opening a Acumatica Developer case and here is their response.
Hi Kyle,
Thanks for your time yesterday.
Endpoint mapping is valid but the fields in the view isn't fetch due the limitation of the filter parameter in the request. Filter parameter optimizes the data that are being fetch. In the case, the customer view isn't fetched. To workaround the limitation, instead of using filter, you can try something like below,
http://localhost/Acumatica/entity/AcumaticaExtended21R1/20.200.001/SalesOrder/SO/SO-030007?$expand=CompanyBranding
You can fetch the record and use expand to get the detail level fields. This way you can avoid the limitation of the filter.
Please check and let me know if you have any questions.
Regards,
Vignesh

Unable to get permissions to work properly

I'm messing around with permissions and am unable to figure out what's going on. I created a custom chat type, gallery, with permissions that look like this:
[
{
"action": "Deny",
"name": "No access",
"resources": [
"*"
],
"roles": [
"*"
],
"owner": false,
"priority": 999
}
]
So basically, nobody can do anything.
Now, to test this, I create a gallery channel with a user:
const client = new StreamChat(<STREAM_KEY>);
const token = <TOKEN>
chatClient.setUser(
{
id: 'user1',
name: 'User 1',
},
token,
);
const channel = client.channel('gallery', 'example', {
name: 'Example',
});
Using the React UI kit, user1 (or any user) should NOT be able to view the channel given the permissions, right? And yet the channel loads and I can type messages normally. What am I doing wrong? I don't think being an owner or not matters, as I've tested this with two different users.
Thanks #ferhatelmas for the heads up. Though my app was in production mode, I noticed a toggle that was ON that disabled permissions. I toggled it off and I think everything seems to be OK.

Docusign envelope creation without signer name

Is it possible to create a Docusign envelope without giving a name for the signer?
Here is the sample envelope definition from the REST docs
{
"status":"sent",
"emailSubject":"Example of one recipient, type signer",
"documents":[
{
"documentId":"1",
"name":"contract.pdf",
"documentBase64":"base64 document bytes..."
}
],
"recipients":{
"signers":[
{
"name":"Lisa Simpson",
"email":"lisa#email.com",
"recipientId":"1",
"routingOrder":"1",
"tabs":{
"signHereTabs":[
{
"xPosition":"150",
"yPosition":"200",
"documentId":"1",
"pageNumber":"1"
}]
}
}]
}
}
`
Instead of "Lisa Simpson" I want to have a blank string "" to withhold the persons name. Is this allowed? When I try I get back this error INVALID_USERNAME_FOR_RECIPIENT but am wondering if there is a workaround.
Thanks
No. Signers need to have names defined.
An exception to this is if you are using a 'specify recipients' role prior to the signer. In this case, you can have a blank placeholder signer, but the Specify user will be required to enter both a name and email for the signer.
What is your use case for a signer without a name?

Recipients Not Provided error from DocuSign API using composite template

I am embedding the signing of a set of documents in a web application. Ultimately, the documents will be filled in with answers provided during an online interview. Three or four documents are needed in the envelope. The documents are server-based templates. In the template definitions I have left the name and email fields blank for the Applicant role (signer), as they are generic templates that will be used by many applicants.
In a test scenario, I can load a single template in an envelope and carry it through the process, but when I convert to a composite template, I get the error "errorCode": "RECIPIENTS_NOT_PROVIDED", "message": "No recipients were found in the request." from the envelope request. I have compared the code to many examples and haven't been able to see anything different. There has to be something basic that I'm missing--not surprising, as this is my first attempt with the DocuSign API. Can someone please enlighten me?
The failing code:
{
"accountId":"xxxxxxx",
"emailSubject":"WOTC Certification Documents - Test Dummy",
"emailBlurb":"Documentation to be submitted by Consultant",
"status":"sent",
"compositTemplates":{
"serverTemplates":[{
"sequence":"1",
"templateId":"ca18aba4-49bd-4c28-9dce-fbd2dd3fbb7b",
"recipients":{
"signers":{
"name":"Test Dummy",
"roleName":"Applicant",
"recipientId":"1",
"clientUserId":"Dummy1234",
"email":"dummy#mydomain.com"
}
}
},{
"sequence":"2",
"templateId":"5ed3d600-5a57-4fee-931f-53233858dc65",
"recipients":{
"signers":{
"name":"Test Dummy",
"roleName":"Applicant",
"clientUserId":"Dummy1234",
"email":"dummy#mydomain.com"
}
}
}]
}
}
Thank you.
You're on the right track, but I'd suggest you make the following changes to the JSON that you've posted:
"compositTemplates" is missing an "e" -- should be compositeTemplates
compositeTemplates needs to be an Array of objects
each object within the compositeTemplates Array needs to contain a serverTemplates property (an Array that specifies the template info) and an inlineTemplates property (an Array that specifies the recipient info)
within each recipients object, signers needs to be an Array of objects
each signer object needs a recipientId property
Here's your JSON again, modified to implement the changes I've listed above:
{
"accountId":"xxxxxxx",
"emailSubject":"WOTC Certification Documents - Test Dummy",
"emailBlurb":"Documentation to be submitted by Consultant",
"status":"sent",
"compositeTemplates":[
{
"serverTemplates":[
{
"sequence":"1",
"templateId":"ca18aba4-49bd-4c28-9dce-fbd2dd3fbb7b"
}],
"inlineTemplates":[
{
"sequence" : 2,
"recipients":{
"signers":[{
"name":"Test Dummy",
"roleName":"Applicant",
"recipientId":"1",
"clientUserId":"Dummy1234",
"email":"dummy#mydomain.com"
}]
}
}],
},
{
"serverTemplates":[
{
"sequence" : 3,
"templateId":"5ed3d600-5a57-4fee-931f-53233858dc65"
}],
"inlineTemplates":[
{
"sequence" : 4,
"recipients": {
"signers" : [{
"name":"Test Dummy",
"roleName":"Applicant",
"recipientId": "1",
"clientUserId":"Dummy1234",
"email":"dummy#mydomain.com"
}]
}
}]
}]
}

Document Visibility works, but Sender can't see one of the documents

I'm using a composite template with Document Visibility enabled.
Signers are correctly excluded from documents they don't have tabs on, or can be explicitly excluded from those that no signer has tabs on with the excludedDocuments parameter.
My problem is this: the sender (me) cannot view one of the documents in the envelope that the sender is not a recipient of. According to docs:
Recipients that have an administrative role (recipients with an Action
of Manage envelopes, Address recipients, Manage recipients, Receive a
copy or Acknowledge receipt) can always see all the documents in an
envelope, unless they are excluded when an envelope is sent. Documents
that do not have tags are always visible to all recipients, unless
they are excluded when an envelope is sent.
I tried adding the sender as a recipient of the document but received the error:
Free form signing not allowed with document visibility
Which suggests I need to add a SignHereTab for the sender -- but there is nothing to sign, it should be for view only.
Partial request, includes the document in question. you can see how the sender is not a recipient on this document.
{
"status":"sent",
"compositeTemplates":[
{
"inlineTemplates":[
{
"sequence":"0",
"recipients":{
"signers":[
{
"name":"Harvey k",
"email":"somewhere",
"recipientId":1,
"accessCode":null,
"roleName":"Recipient",
"tabs":{
"signHereTabs":[
{
"tabLabel":"borrowerSignHere\\*",
"documentId":2,
"recipientId":1,
"templateLocked":true,
"templateRequired":true,
"optional":false,
}
]
}
},
{
"name":"first1 last1",
"email":"somewhere",
"recipientId":2,
"accessCode":null,
"roleName":"Signer",
"tabs":{
"signHereTabs":[
{
"tabLabel":"agentSignHere\\*",
"documentId":2,
"recipientId":2,
"templateLocked":true,
"templateRequired":true,
"optional":false,
}
]
},
"excludedDocuments":[2,3,4,5,6]
}
]
}
}
],
"document":{
"name":"Agent Agreement",
"documentId":2,
"documentBase64":"...",
"transformPdfFields":true
}
} // ... more templates documentId 2+
]
}
Try making the sender a Carbon Copies Recipient with a routing order after the other recipients.

Resources