2016-05-03 12 views
0

私はDocuSignでSalesforceを使用してテンプレートを使用してエンベロープを作成しています。SalesforceでDocuSign APIを使用してテンプレートでエンベロープを作成するときのSOAPフォルト

DocuSignAPI.EnvelopeTemplates templates = soapService.requestTemplates(accountId, false); 
    String templateId = templates.EnvelopeTemplateDefinition[0].TemplateID; 

    DocuSignAPI.EnvelopeTemplate template = soapService.requestTemplate(templateId, false); 

    DocuSignAPI.EnvelopeInformation envelopeInformation = new DocuSignAPI.EnvelopeInformation(); 
    envelopeInformation.Subject = 'XXXXXXXXXXX'; 
    envelopeInformation.AccountId = accountId; 
    envelopeInformation.EmailBlurb = 'XXXXXXXXXXXXX'; 

    DocuSignAPI.TemplateReference templateReference = new DocuSignAPI.TemplateReference(); 
    templateReference.RoleAssignments = new DocuSignAPI.ArrayOfTemplateReferenceRoleAssignment(); 
    templateReference.Template = template.EnvelopeTemplateDefinition.TemplateID; 
    templateReference.TemplateLocation = 'Server'; 

    DocuSignAPI.Recipient recipient = new DocuSignAPI.Recipient(); 
    recipient.ID = currentRecipientIndex + 1; 
    recipient.Type_x = 'Signer'; 
    recipient.Email = 'XXXXXXXXXXXXXXXX'; 
    recipient.UserName = 'XXXXXXXXXXXXXXXXX'; 
    recipient.RoutingOrder = 1; 

    DocuSignAPI.ArrayOfRecipient1 recipients = new DocuSignAPI.ArrayOfRecipient1(); 
    recipients.Recipient = new DocuSignAPI.Recipient[1]; 
    recipients.Recipient.add(recipient); 

    DocuSignAPI.TemplateReferenceRoleAssignment trra = new DocuSignAPI.TemplateReferenceRoleAssignment(); 
    trra.RoleName='Stake holder'; 
    trra.RecipientID = recipient.ID; 

    templateReference.RoleAssignments.RoleAssignment = new DocuSignAPI.TemplateReferenceRoleAssignment[1]; 
    templateReference.RoleAssignments.RoleAssignment.add(trra); 

    DocuSignAPI.ArrayOfTemplateReference arrayOfTemplateReference = new DocuSignAPI.ArrayOfTemplateReference(); 
    arrayOfTemplateReference.TemplateReference = new DocuSignAPI.TemplateReference[1]; 
    arrayOfTemplateReference.TemplateReference.add(templateReference); 

    DocuSignAPI.EnvelopeStatus status = soapService.createEnvelopeFromTemplates(arrayOfTemplateReference, recipients, envelopeInformation, true); 

ただし、コードを実行すると、私は次のエラーを取得:

Webサービスコールアウトに失敗しました:Webサービスは、SOAPフォルトを返しました:Unspecified_Errorのfaultcode =石鹸:サーバーfaultactorは= https://demo.docusign.net/api/3.0/dsapi.asmx

これは、WebServiceCalloutが呼び出されるDocuSignAPIを参照します。エラーのあいまいさを考えると、これを引き起こしている可能性のあることについて、私は思っています。

答えて

0

この記事へのアップデートとして、私はエラーを見つけることができました。 Apexのインデックス作成は、MatLabとは異なり、私の混乱の原因となったものとは異なり、0ではなく1から始まります。インデックス1から開始していたため、XMLリクエストは0番目のインデックスに 'null'値を渡していたため、エラーが発生しました。 0から始めて、XMLからヌル値を取り除き、要求が通過しました。

関連する問題