1

Notesのケースにいくつかの文書テンプレートを保存しました。 私はドキュメントのダウンロードURLを取得する必要があります。これは、それを必要とする他のプラグインで使用します。すべてのユーザーがアクセス可能なCRM文書を格納する

問題は、 私はノートセクションに文書をアップロードしました。 ダウンロードURLをダウンロードしてダウンロードURLを確認しました。

これをプラグインの入力としてフィードすると、プラグインをアップロードしたユーザーのみが動作します。他のユーザーのために

それは、すべてのユーザーが閲覧可能とダウンロード可能であるように、そのアクセス可能ではない、それは

enter image description here

を言う今私はCRMにドキュメントをアップロードすることができますが?

+0

セキュリティモデルはどのように設定されていますか? –

+0

既定のセキュリティモデル Btwに何も変更を加えていません。同じセキュリティロールを持つユーザーであっても、トークンの変更に応じてリンクを使用してダウンロードすることはできません –

答えて

2

有効なWRPCTokenUrlを取得する必要があります。ドキュメントを取得するための直接URL(他のユーザーのための有効なWRPCTokenUrlを含まない)を保存する代わりに、あなたのノートのGUIDを保存し、後で必要なときに有効なURLを取得します。

Extending Microsoft Dynamics CRM 2011: Build Attachment Download URL Links with JQueryで説明されているように、有効なダウンロードURLを取得するためにNote guidを使用できます。そのページから該当するコードスニペットはここで見ることができます:

function getDocumentUrl(annotId) { 
    var URL = urlbase + '/userdefined/edit.aspx?etc=5&id={' + annotId + '}'; 
    var docUrl; 

    // get the security token to build the href link. if the token cannot be found, 
    // a null value is returned 
    $.get(URL, function (data) { 
     // get the form data via the 'URL' 
     data = $.parseHTML(data); 

     // locate the security element 
     var securityTokenElement = $(data).find("[WRPCTokenUrl]"); 

     if (securityTokenElement) { // if the security element was found on the Note form 
      // locate the security token within the security element 
      var securityTokenUrl = SecurityTokenElement.attr("WRPCTokenUrl"); 

      // if the security token is located, build the url 
      if (securityTokenUrl) { 
       docUrl = urlbase + "/Activities/Attachment/download.aspx?AttachmentType=5&AttachmentId={" + 
         annotId + "}&IsNotesTabAttachment=undefined" + SecurityTokenUrl; 
      } 
     } 
    }); 

    return docUrl; 
} 
2

それはあなたが単純なWebサービス呼び出しを使用してしようとしているものだ場合、文書データにアクセスするための非常に簡単な方法があります。私はURLを介してドキュメントデータにアクセスしようとしないだろう、私はそれが本当に行われることを意味するとは思わない。

チェックアウトSample: Upload, retrieve, and download an attachment

// Retrieve the annotation record. 
Annotation retrievedAnnotation = (Annotation)_serviceProxy.Retrieve("annotation", _annotationId, cols); 
_fileName = retrievedAnnotation.FileName; 

// Download the attachment in the current execution folder. 
using (FileStream fileStream = new FileStream(retrievedAnnotation.FileName, FileMode.OpenOrCreate)) 
{ 
    byte[] fileContent = Convert.FromBase64String(retrievedAnnotation.DocumentBody); 
    fileStream.Write(fileContent, 0, fileContent.Length); 
} 
関連する問題