2017-06-01 25 views
0

私はxml-rpcでリクエストを行います。Java経由でのOdooリクエスト

List singleTasks = Arrays.asList((Object[]) objClient.execute("execute_kw", 
      Arrays.asList(db, uid, password, "project.task", "search_read", 
        Arrays.asList(Arrays.asList(
          Arrays.asList("active", "=", true))), 
        new HashMap() {{ 
         put("fields", Arrays.asList("display_name", "total_hours", "project_id", "user_id")); 
        }} 
       ))); 

これは残念ながら、以下を返す:

[{PROJECT_ID = [Ljava.lang.Object; 759ebb3d @、USER_ID = [Ljava.lang.Object; 484b61fc @、ID = 23、total_hours = 11.0、DISPLAY_NAME = TEST}]

私はその平均値を何、Ljava.lang.Objectを使用したり、変換する方法は考えているとどのように私は本当のidを取得するのですか?

私はそれがone2many、many2oneまたはmany2manyフィールドのいずれかであるため、フィールドのタイプと関係があると思います。

答えて

1

同じケースがあり、このクエリが見つかりました。だから、私はその答えを実装することに決めました。

関係がmany2oneあると仮定すると、クエリは、関連するオブジェクトを返すので、あなたが(国のために例えば)次のクエリを実行しなければならない、つまり、個別に行う必要があります。

final Map<String, Object> c = (Map<String, Object>) 
((Object[])models.execute("execute_kw", Arrays.asList(db, uid, password, 
           "project.task", 
     "search_read",Arrays.asList(Arrays.asList(Arrays.asList("id","=", "id_project.task"))),new HashMap<String, Object>() {{ 
             put("fields", Arrays.asList(            
              "project_id" 
             )); 
            }} 
         )))[0]; 

//値は Object [] as =(Object [])c.get( "project_id");という値をとります。

よろしくお願いいたします。

関連する問題