Odoo Help

Welcome!

This community is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.

1

Java API CreateObject Error

By
Remya
on 11/15/13, 7:56 AM 593 views

I get an error for following code. Object is hr.attendance. Can some one please guide me?

public static void main(String[] args) throws MalformedURLException, XmlRpcException {

    // TODO code application logic here

    Session openERPSession;

    openERPSession = new Session("localhost", 8069, "Demo", "admin", "demo");


    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()); }

}

}

Error message

Error while reading data from server:

For input string: "[Ljava.lang.Object;@dd462c"

I tried passing employee_id in both formats as mentioned below.

  1. newPartner.put("employee_id", 2);

  2. newPartner.put("employee_id", "2");

But both time I ended up with following error again

Error while reading data from server:

java.lang.String cannot be cast to java.lang.Integer

The reason I was trying to passing object as in first posting was because when I read the values from iterating, I had to cast as (Please take a look at my code)

((Object[])row.get("employee_id"))[0].toString() &

((Object[])row.get("employee_id"))[1].toString()

to read employee id and employee name out of the object. Actually I was expecting only employee to be present there.

Then I thought that I might need to cast it back to object to insert also. But ended up failing.

However when I tried inserting without employee_id object. It worked.

When I check field type of employee_id, it was many to one at Setting=>Database Structure -> Models for "hr.attendance"

How do I insert in case if field is many 2 one?

Your Answer

Please try to give a substantial answer. If you wanted to comment on the question or answer, just use the commenting tool. Please remember that you can always revise your answers - no need to answer the same question twice. Also, please don't forget to vote - it really helps to select the best questions and answers!

About This Community

This community is for professionals and enthusiasts of our products and services. Read Guidelines

Question tools

0 follower(s)

Stats

Asked: 11/15/13, 7:56 AM
Seen: 593 times
Last updated: 3/16/15, 8:10 AM