OpenERP API Java CreateObject Erro
Pergunta
Eu recebo um erro de código a seguir.Objeto é o rh.atendimento.Alguém pode por favor me orientar?
public static void main(String[] args) throws MalformedURLException, XmlRpcException
{
// TODO code application logic here
Session openERPSession;
openERPSession = new Session("localhost", 8069, "Demo", "admin", "demo@2013");
try {
// startSession logs into the server and keeps the userid of the logged in user
openERPSession.startSession();
ObjectAdapter partnerAd = openERPSession.getObjectAdapter("hr.attendance");
//////
////// Example code snippet goes here
//////
Object[] ids = new Object[] {0,1,2,3,4,5};
RowCollection partners = partnerAd.readObject(ids, new String[]{"action","action_desc", "day", "employee_id", "sheet_id"});
for (Row row : partners){
System.out.println("Row ID: " + row.getID()+"Action:" + row.get("action")+" day" + row.get("day")+" EmpName" + ((Object[])row.get("employee_id"))[1].toString()+" EmpId" + ((Object[])row.get("employee_id"))[0].toString()+"/ "+row.get("employee_id"));
}
Row newPartner = partnerAd.getNewRow(new String[]{"action", "day", "employee_id"});
newPartner.put("action", "sign_out");
newPartner.put("day", "2013-07-03");
newPartner.put("employee_id", new Object[] {"2","Fabien Pinckaers"});
partnerAd.createObject(newPartner);
System.out.println("New Row ID: " + newPartner.getID());
} catch (Exception e) {
System.out.println("Error while reading data from server:\n\n" + e.getMessage());
}
}
Mensagem de erro (Quando eu depuração e, em seguida, o erro é lançada quando createObject linha.Por favor, ajuda Erro ao ler dados do server:Para a seqüência de caracteres de entrada:"[Ljava.lang.Objeto;@dd462c"
Eu tentei passar employee_id em ambos os formatos, como mencionado abaixo.1.newPartner.put("employee_id", 2);2.newPartner.put("employee_id", "2");Mas tanto tempo que acabei com o seguinte erro novamente Erro ao ler dados do server:o java.lang.Cadeia de caracteres não pode ser convertido em java.lang.Inteiro A razão que eu estava tentando passar o objeto como no primeiro lançamento foi porque quando eu ler os valores da iteração, eu tinha para lançar (por Favor, dê uma olhada no meu código)
((Object[])row.get("employee_id"))[0].toString() &
((Object[])row.get("employee_id"))[1].toString()
para ler a identificação do funcionário e o nome do empregado fora do objeto.Na verdade, eu estava esperando somente empregado para estar presente lá.Então eu pensei que eu poderia precisar para lançá-lo de volta para o objeto para inserir também.Mas acabou fracassando.
No entanto, quando eu tentei inserir sem employee_id objeto.Ele trabalhou.Quando eu verificar se o campo tipo de employee_id, foi muitos-para-um na Definição=>Estrutura de Banco de dados -> Modelos para "rh.atendimento" Como faço para inserir no caso, se o campo é muitas 2?
Solução
Aqui você ir, Tudo graças a Pieter.
https://sourceforge.net/p/openerpjavaapi/discussion/general/thread/871410e3/?limit=25#bf63