Abfragen von Benutzerfiltern

24. April 2013 11:37

Hallo zusammen,

ich habe mich in der vergangenen Woche mit den Synchronisierungsfiltern für den Outlookclient beschäftigt und habe dazu ein kleines Tool geschrieben, was mir beim Verwalten der Filter helfen soll. Das Problem ist nun, dass es mir nicht mehr möglich ist die Benutzerfilter (Entität "userquery") eines bestimmten Nutzers abzufragen. Es werden nur die Filter des Users angezeigt, der die Abfrage ausführt. Ich bin mir allerdings ziemlich sicher, dass ich vergangene Woche auch die Benutzerfilter anderer User abfragen und bearbeiten konnte.

Hier eine abgespeckte Konsolenversion meines Codes, welche auch nicht alle Datensätze zurückgibt:
Code:
static void Main(string[] args)
{
  ClientCredentials creds = new ClientCredentials();
  creds.UserName.UserName = "<user>";
  creds.UserName.Password = "<passwort>";

  Uri serverUri = new Uri("http://<Server>/<Organisation>/XRMServices/2011/Organization.svc");
  IOrganizationService service = new OrganizationServiceProxy(serverUri, null, creds, null);

  // querytype 256 = Outlook-Synchronisierungsfilter.
  string qryFilter = @"<fetch version='1.0' output-format='xml-platform' mapping='logical'>
                           <entity name='userquery'>
                              <all-attributes />
                                <filter type='and'>
                                    <condition attribute='querytype' operator='eq' value='256' />
                                </filter>
                           </entity>
                        </fetch>";

  EntityCollection collFilter = service.RetrieveMultiple(new FetchExpression(qryFilter));

  foreach (Entity filter in collFilter.Entities)
  {
    Console.WriteLine(filter["name"] + " | " + ((EntityReference)filter["ownerid"]).Name);
  }

  Console.ReadKey();
}

Ich habe es auch schon mit einer QueryExpression versucht, allerdings brachte dies auch keine Besserungen.

Der Nutzer den ich verwende hat auch jegliche Sicherheitsrollen, weil ich zunächst dachte, dass es mit dem Privileg "Benutzersynchronisierungsfilter verwalten" zusammenhängt, welches ich zuvor zu Testzwecken entfernt hatte. Ich habe es auch schon mit anderen Nutzern probiert, die ebenfalls Systemadministrator sind... ohne Erfolg.

Die Frage ist nun, ob ich mich letzte Woche verguckt habe und man die Daten nicht abfragen kann, ob es lediglich irgendeine Einstellung ist, die geändert werden muss, oder ob es Fehler im Code gibt.

Vielen Dank schonmal im Vorraus,

Marvin

Edit 24.02.2013:
Ich habe festgestellt, dass es auch nicht möglich ist ein Filtertemplate über einen InstantiateFiltersRequest an andere Nutzer verteilt werden kann.

Re: Abfragen von Benutzerfiltern

30. April 2013 16:02

Hallo,

ich musste erstmal feststellen, dass ich mich wohl verschaut habe, da es im Standard nicht vorgesehen ist die Benutzerfilter bestimmter Nutzer zu verwalten, weil auch Systemadministratoren nur eigene Sichten lesen und schreiben darf. Quelle: http://mscrmblogger.com/2009/02/04/crm-4-userquery-privileges-for-system-administrators/.

Allerdings frage ich mich dann, wofür die InstantiateFiltersRequest-Klasse dient.

Gruß

Marvin