2016-12-21 1 views
0

docusign SOAP API를 사용하여 Salesforce에서 docusign 봉투를 보내려고했습니다. Docusign API의 CreateEnvelopeFromTemplates 메소드를 사용하고 있는데, docusign 샌드 박스에서 만들어진 기능적 템플릿이 있지만 요청을 보낼 때마다 내 응답에 지정되지 않은 오류가 발생합니다. 아래는 내가 아래Docusign SOAP API가 지정하지 않은 오류를 반환합니다.

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

간단한 요청으로 시작하는 것이 좋습니다. sfdc로 시작하는 github.com/docusign의 요리법을 확인하십시오.

보다 간단한 요청을 받고 필요에 따라 기능을 추가하십시오.

내가주의 한 한 가지는 당신이 유일한 수신자에게 1의 라우팅 순서를 제공하지 않는다는 것입니다. 그러나 그것은 아마 OK입니다.

간단한 템플릿 참조에 복합 템플릿을 사용하지 않아야하므로 템플릿 참조가 올바른지 확신 할 수 없습니다. 불행히도 나는 비누 API에 대한 많은 경험이 없습니다. HTH.

+0

SOAP API 대신 SOAP xml을 docusign에 직접 보내고 xml에 비누 헤더를 추가하여 지정되지 않은 오류를 해결하는 Unspecified 오류를 해결할 수있었습니다. 하지만 지금은 "이 계정에는 충분한 권한이 부족합니다." 오류가 발생했습니다. 왜 이런 일이 일어날 지 모릅니다. 나는 @Ergin에 의해 몇 가지 해답을 보았는데, 그는 docusign 지원이 도움이 될 수 있다고 언급했다. 나는 그 (것)들을 접촉하는 것을 시도했다, 그러나 그들은 나의 dev 샌드 박스에 모든 허가가 가능하다고 말한다. –

+0

나는 그것이 기쁘다! 새로운 질문을 게시하고 * 요청/응답을 포함 시키십시오 * (그러나 통합 키 및 기타 개인 정보는 삭제하십시오) @AsifBhat –