2017-10-20 12 views
0

は、私がテストシナリオは、私は、フォルダを作成しようとしているされてSSRSのCreateFolder C#コマンドのバグ?

Reportingservices2010のSOAP APIでCREATEFOLDERコマンドのバグに遭遇したと思う同じ親フォルダ内(という名前を営業ダッシュボード)(することができますセールス)をセールスダッシュボードという名前のレポートとしてください。

フォルダが存在しない場合、コマンドは "AlreadyExists"例外で完了しました。メソッドがカタログアイテムタイプをチェックしていないようです。

ここに私のコードです:

public static void createFolders(string targetURL, string folderName, string parentPath, string description, string visible) 
    { 
     //Build Authentication 
     ReportingService2010 rs = new ReportingService2010(); 
     rs.Credentials = System.Net.CredentialCache.DefaultCredentials; 
     rs.Url = targetURL; 

     //Declare properties 
     Property descriptionProp = new Property(); 
     Property visibleProp = new Property(); 
     Property[] props = new Property[2]; 

     descriptionProp.Name = "Description"; 
     descriptionProp.Value = description; 
     visibleProp.Name = "Visible"; 
     visibleProp.Value = visible; 
     props[0] = descriptionProp; 
     props[1] = visibleProp; 

     try 
     { 
      rs.CreateFolder(folderName, parentPath, props); 
     } 
     catch(Exception ex) 
     { 
      if(ex.Message.Contains("AlreadyExists")) 
      { 
       //do nothing? 
      } 
      else 
      { 
       throw; 
      } 
     } 
    } 

私は修正を貢献できるかどうかを確認したかったが、C#SSRSものにはGitHubのレポはありません。回避策はありますか?

+0

レポートマネージャを使用してフォルダを作成していますか? – newGuy

+0

@newGuyいいえ、私は上記のC#コードでフォルダを作成しています。 GUIは影響を受けません。これは、RS 'CreateFolder'メソッドのバグのようです。 – CPorteous

+0

これはバグではありません。それは完全に正常です。それらは*ディスクフォルダではなく、* URL *です。同じURLが異なるタイプのリソースを参照することはできません。 'Sales%20Dashboard'というURLは、「フォルダ」*と*レポートを同時に参照することはできません。ちょうど*同じ名前を使用しないでください –

答えて

1

APIは、これがReporting Servicesの一般的な制限であるため、正しいエラーを返しています。同じフォルダ内のアイテムは、アイテムタイプに関係なく、一意の名前を持つ必要があります。

+0

Riccardoありがとう、私はこれをテストしたので、手動で作成することもできません。私はこれが可能だったという印象を受けていました。情報をありがとう。 – CPorteous