我正在使用以下博客條目中的代碼將用戶查詢重新分配給其他用戶。我已經在數據庫中運行了DB Update語句(如下面的博客所示)。無法在CRM Web服務AssignRequest上分配離線篩選器錯誤
http://mscrmblogger.com/2009/02/04/crm-4-userquery-privileges-for-system-administrators/
這裏是我的代碼:
CrmAuthenticationToken token = new CrmAuthenticationToken();
token.AuthenticationType = AuthenticationType.AD;
token.OrganizationName = Request.Params["orgname"];
CrmService crmService = new CrmService();
crmService.Url = ConfigurationManager.AppSettings["WebServiceUrl"];
crmService.CrmAuthenticationTokenValue = token;
crmService.PreAuthenticate = true;
crmService.UseDefaultCredentials = false;
crmService.Credentials = new NetworkCredentials(username, password, domain);
SecurityPrincipal newowner = new SecurityPrincipal();
newowner.Type = SecurityPrincipalType.User;
newowner.PrincipalId = new Guid(userid);
TargetOwnedUserQuery query = new TargetOwnedUserQuery();
query.EntityId = new Guid(queryid);
AssignRequest assign = new AssignRequest();
assign.Assignee = newowner;
assign.Target = query;
AssignResponse assignResponse = (AssignResponse)crmService.Execute(assign);
運行此代碼,我得到以下例外情況在crmService.Execute()。
SOAP Exception
Message: Server was unable to process request
Inner Detail: 0x8000404ff Cannot assign Offline Filters Platform
當爲幾個用戶查詢運行此操作時,出現了一些稍微不同的異常。大多數用戶查詢返回上面顯示的上述/第一個異常。一些返回這些不同的SOAP異常。
2) Inner Detail: 0x80048448 Cannot assign address book filters Platform
3) Inner Detail: 0x80040264 Cannot assign Outlook Filters Platform
據我所知,我們沒有在我們的CRM產品中使用離線過濾器。我們也沒有使用與Outlook集成相關的任何內容。
自定義ASPX頁面託管在與我們的CRM相同的服務器上,並位於ISV文件夾中。身份驗證,站點地圖自定義和(看似)其他任何部分都能正常工作,以將其作爲自定義頁面進行集成。
有關如何解決此問題的任何提示?
感謝
查詢來獲取UserQueryID,@SystemUserId通過用戶
SELECT [Name], [UserQueryId]
FROM [UserQueryBase]
WHERE [OwningUser] = @SystemUserId
ORDER BY [Name]
謝謝。明天我會檢查一下。這裏是我用來獲取UserQuery的代碼。上面貼出的鏈接處於離線狀態,因此以下是Google緩存副本http://webcache.googleusercontent.com/search?q=cache:aaJDANIUFRkJ:mscrmblogger.com/2009/02/04/crm-4-userquery-privileges-for -system-administrators /&hl = en&tbo = d&gl = us&strip = 1 我會發布查詢代碼以獲取上面的UserQuery ID。 –
看起來我可以簡單地修改查詢語句以排除我們不使用的查詢類型,例如OfflineFilters = 16。 –
謝謝。您對QueryType的評論指出了我的正確方向。我從我的SQL查詢中排除了QueryTypes,這是我得到QueryIds的地方。其餘的代碼按預期工作。獲得賞金。 –