0

テンプレートを読み込めませんというエラーが表示されます。TemplateReference(0) からテンプレートを読み込めません。エラー: ルート レベルのデータが無効です。行 1、位置 1。

以下は、私が使用しているコードの簡略化されたバージョンです...コードのテンプレート参照タイプを使用しない場合、すべて正常に機能します。しかし、テンプレート参照の使用を開始すると..何も機能せず、このエラーが発生します。誰にも提案がありますか?

      TemplateReference _tempRef = new TemplateReference();
      TemplateReference[] _tempRefs = new TemplateReference[] { };
      TemplateReferenceRoleAssignment[] _roleAssignmentArray = new TemplateReferenceRoleAssignment[] { };
      Recipient[] _recipientsArray = new Recipient[] { };



      EnvelopeInformation envelope = new EnvelopeInformation();

        Recipient recipient = new Recipient();
        recipient.ID = "1";
        recipient.Email = "someemail@somewhere.com";
        recipient.UserName = "Some Person";
        recipient.Type = RecipientTypeCode.Signer;
        recipient.RequireIDLookup = false;
        Array.Resize(ref _roleAssignmentArray, 1);
        Array.Resize(ref _recipientsArray, 1);


        _recipientsArray[0] = recipient;

        var saRoleAssignment = new TemplateReferenceRoleAssignment
        {
            RecipientID = "1",
            RoleName = "SA"
        };
        _roleAssignmentArray[0] = saRoleAssignment;
        var reference = new Docusign.TemplateReference();
        reference.Template = "49C0BE2B-48F7-4F38-B44A-19EB8E6A1A38";
        reference.Document = new Docusign.Document();
        reference.Document.PDFBytes = new byte[0];
        reference.Document.ID = Convert.ToString(1);
        reference.Document.Name = "please work";

        reference.RoleAssignments = _roleAssignmentArray;
        Array.Resize(ref _tempRefs, 1);
        _tempRefs[1 - 1] = reference;

        //.NET

        //.NET
        envelope.AccountId = "accountID";
        envelope.Subject = "Sample Application";
        envelope.EmailBlurb = "You can add a personal message here.";


        APIServiceSoapClient apiService = new APIServiceSoapClient();
        apiService.ClientCredentials.UserName.UserName = "userhere";
        apiService.ClientCredentials.UserName.Password = "pass";
        var status = apiService.CreateEnvelopeFromTemplates(_tempRefs, _recipientsArray, envelope, true);
4

1 に答える 1

0

REST の代わりに DocuSign の SOAP API を使用している場合は、GitHub の SOAP SDK に精通している必要があります。

https://github.com/docusign/DocuSign-eSignature-SDK

箱から出してすぐに動作するサンプル コードを含む MS.NET (C#) バージョンがあり、API 資格情報を入力するだけで済みます。特に最近更新されたので、プロジェクトのベースとして使用することをお勧めします。

エラーが発生している行を特定していないため、デバッグが少し難しくなりますSendTemplate.aspx.csが、SDK を見ると、テンプレート参照が次のようにインスタンス化されていることがわかります。

// Construct the template reference
var templateReference = new DocuSignAPI.TemplateReference
{
    TemplateLocation = DocuSignAPI.TemplateLocationCode.Server,
    Template = TemplateTable.Value,
    RoleAssignments = CreateFinalRoleAssignments(recipients)
};

は次のようにCreateFinalRoleAssignments()定義されます。

protected DocuSignAPI.TemplateReferenceRoleAssignment[] CreateFinalRoleAssignments(DocuSignAPI.Recipient[] recipients)
    {
        // Match up all the recipients to the roles on the template
        return recipients.Select(recipient => new DocuSignAPI.TemplateReferenceRoleAssignment
            {
                RecipientID = recipient.ID, RoleName = recipient.RoleName
            }).ToArray();
    }
于 2013-10-01T05:57:20.753 に答える