2016-12-21 12 views
0

Я пытаюсь отправить конверт docusign из Salesforce, используя SOAP API docusign. Я использую метод CreateEnvelopeFromTemplates для Docusign API, у меня есть функциональный шаблон, созданный в моей песочнице docusign, но каждый раз, когда я отправляю запрос, я получаю Unspecified Error в своем ответе. Ниже приведен код Я используюDocusign Soap API возвращает Unspecified Error

wwwDocusignNetApi30.EnvelopeInformation envelope = new wwwDocusignNetApi30.EnvelopeInformation(); 
envelope.Subject = 'Envelope Subject' ;  
envelope.EmailBlurb = 'Email Blurb'; 
envelope.AccountId = '********-****-****-****-************'; 

//use custom field to store the id of the record that initiated the transaction  
envelope.CustomFields = new wwwDocusignNetApi30.ArrayOfCustomField(); 
envelope.CustomFields.CustomField = new wwwDocusignNetApi30.CustomField[2]; 
wwwDocusignNetApi30.CustomField myCustomField = new wwwDocusignNetApi30.CustomField(); 
myCustomField.Name = 'DSFSSourceObjectId'; 
myCustomField.Value = '0012600000PQn9g'; 
myCustomField.Show = 'false'; 
myCustomField.Required = 'false'; 
myCustomField.CustomFieldType = 'Text'; 
envelope.CustomFields.CustomField.add(myCustomField); 

wwwDocusignNetApi30.ArrayOfTemplateReference templateArray = new wwwDocusignNetApi30.ArrayOfTemplateReference(); 
templateArray.TemplateReference = new wwwDocusignNetApi30.TemplateReference[2]; 
wwwDocusignNetApi30.TemplateReference templat = new wwwDocusignNetApi30.TemplateReference();// TemplateReferences 
templat.Template = '********-****-****-****-************'; 
templat.TemplateLocation = 'Server'; 

wwwDocusignNetApi30.ArrayOfRecipient1 recArray = new wwwDocusignNetApi30.ArrayOfRecipient1(); 
recArray.Recipient = new wwwDocusignNetApi30.Recipient[2]; 
wwwDocusignNetApi30.Recipient recipient = new wwwDocusignNetApi30.Recipient(); 
recipient.ID = 100987; 
recipient.Type_x = 'Signer'; 
recipient.RoutingOrder = 2; 
recipient.Email = '[email protected]'; 
recipient.UserName = 'Test'; 
recArray.Recipient.add(recipient); 

wwwDocusignNetApi30.TemplateReferenceRoleAssignment trra = new wwwDocusignNetApi30.TemplateReferenceRoleAssignment(); 
trra.RoleName='Signer 1'; 
trra.RecipientID = recipient.ID; 

wwwDocusignNetApi30.ArrayOfTemplateReferenceRoleAssignment roleArray = new wwwDocusignNetApi30.ArrayOfTemplateReferenceRoleAssignment(); 
roleArray.RoleAssignment = new wwwDocusignNetApi30.TemplateReferenceRoleAssignment[1]; 
roleArray.RoleAssignment.add(trra); 

templat.RoleAssignments = new wwwDocusignNetApi30.ArrayOfTemplateReferenceRoleAssignment(); 
templat.RoleAssignments = (roleArray); 
templateArray.TemplateReference.add(templat); 

String auth = '<DocuSignCredentials><Username>********-****-****-****-************</Username><Password>PASSWORD</Password><IntegratorKey>********-****-****-****-************</IntegratorKey></DocuSignCredentials>'; 
wwwDocusignNetApi30.APIServiceSoap service = new wwwDocusignNetApi30.APIServiceSoap(); 
service.inputHttpHeaders_x = new Map<String, String>(); 
service.inputHttpHeaders_x.put('X-DocuSign-Authentication',auth); 
service.CreateEnvelopeFromTemplates(templateArray,recArray,envelope,true); 

Ниже ответ я получаю:

System.CalloutException: Web service callout failed: WebService returned a SOAP Fault: Unspecified_Error faultcode=soap:Server faultactor=https://demo.docusign.net/api/3.0/dsapi.asmx 

Поскольку сообщение об ошибке расплывчато, я не могу отладить проблему. Любая помощь приветствуется.

ответ

0

Предлагаю начать с более простого запроса. Посмотрите рецепты на github.com/docusign, которые начинаются с sfdc

Получите более простой запрос, затем добавьте функции, чтобы получить его по вашим потребностям.

Одна вещь, которую я заметил, заключалась в том, что вы не указываете порядок маршрутизации 1 для вашего единственного получателя. Но это, наверное, хорошо.

Я не уверен, что ссылка на ваш шаблон верна, поскольку вы не должны использовать составные шаблоны для простой ссылки на шаблон. К сожалению, у меня нет большого опыта работы с мылом api. НТН.

+0

Я смог исправить ошибку Unspecified, вместо использования SOAP API, я напрямую отправляю SOAP xml в docusign и добавляя заголовки мыла в xml, которые решили неуказанную ошибку. Но теперь я получаю «У этой учетной записи не хватает разрешений». Ошибка. Любая идея, почему это может произойти. Я видел несколько ответов от @Ergin, в которых он упомянул, что поддержка docusign может помочь. Я попытался связаться с ними, но они говорят, что все разрешения разрешены в моей изолированной песочнице dev. –

+0

Я рад, что он работает! Отправьте новый вопрос и * укажите свой запрос/ответ. * (Но удалите ключ интеграции и любую другую личную информацию.) @AsifBhat –