在Microsoft CRM 2011聯機和使用webservices時,我在使用由webservices調用創建的OrganizationServiceStub類的Main.java中使用下面的方法。檢索到的輸出記錄的輸出是-1,有人可以幫助我出錯的地方。我想檢索名稱以「Tel」開頭的帳戶而不給予帳戶。我可以看到CRM中存在的數據。 感謝從Microsoft CRM 2011在線檢索多個帳戶
public static void getAccountDetails(OrganizationServiceStub service, ArrayOfstring fields)
{
try{
ArrayOfanyType aa = new ArrayOfanyType();
aa.setAnyType(new String[] {"Tel"});
ConditionExpression condition1 = new ConditionExpression();
condition1.setAttributeName("name");
condition1.setOperator(ConditionOperator.BeginsWith);
condition1.setValues(aa);
ArrayOfConditionExpression ss = new ArrayOfConditionExpression();
ss.setConditionExpression(new ConditionExpression[] {condition1});
FilterExpression filter1 = new FilterExpression();
filter1.setConditions(ss);
QueryExpression query = new QueryExpression();
query.setEntityName("account");
ColumnSet cols = new ColumnSet();
cols.setColumns(fields);
query.setColumnSet(cols);
query.setCriteria(filter1);
RetrieveMultiple ll = new RetrieveMultiple();
ll.setQuery(query);
RetrieveMultipleResponse result1 = service.retrieveMultiple(ll);
EntityCollection accounts = result1.getRetrieveMultipleResult();
System.out.println(accounts.getTotalRecordCount());
}
catch (IOrganizationService_RetrieveMultiple_OrganizationServiceFaultFault_FaultMessage e) {
logger.error(e.getMessage());
e.printStackTrace();
}
catch (RemoteException e) {
logger.error(e.getMessage());
e.printStackTrace();
}
}
我不熟悉CRM 2011和Java的,但我無法看到任何明顯與查詢有關的錯誤。如果你刪除過濾器,你會得到任何結果返回? –
另外,考慮執行帳戶,正在運行測試的用戶是否擁有Crm權限? –
如果我通過帳戶ID,那麼它會返回值和其他詳細信息。我嘗試了所有可能的選擇。但每當我將它記錄爲-1記錄時。是的用戶是admin用戶,擁有所有權利。如果我使用演示示例,則可以創建,檢索,更新和刪除它。但是,如果我想只做檢索,它會返回-1。 – user1664770