2016-05-03 22 views
0

Ich verwende Salesforce mit DocuSign, um einen Umschlag über Vorlagen zu erstellen.SOAP-Fehler bei Verwendung der DocuSign-API mit Salesforce zum Erstellen von Umschlägen mit Vorlagen

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); 

jedoch auf den Code ausgeführt wird, erhalte ich folgende Fehlermeldung:

Web-Service-callout fehlgeschlagen: WebService zurück einen SOAP-Fehler: Unspecified_Error faultcode = soap: Server faultactor = https://demo.docusign.net/api/3.0/dsapi.asmx

Und dies verweist auf die DocuSignAPI, in der das WebServiceCallout aufgerufen wird. Angesichts der Mehrdeutigkeit des Fehlers würde ich mich über Gedanken darüber, was dies verursachen könnte, freuen.

Antwort

0

Als Update für diesen Beitrag konnte ich den Fehler finden. Die Indexierung für Apex beginnt bei 0 nicht 1 (im Gegensatz zu MatLab, was meine Verwirrung verursacht hat). Da ich bei Index 1 anfing, übergab die XML-Anforderung Nullwerte an den 0. Index und verursachte den Fehler. Beginnend bei 0 wurden die Nullwerte aus dem XML entfernt und die Anforderung wurde ausgeführt.