>. However passing string value to prepareCall statement.
No you aren't. You are passing an object which is returned from the conn.prepareStatement. Do you think you are passing in the returned value from this stored procedure call? Because that isn't what is happening at all. And you are taking a prepared statement object and passing it into a prepareCall.
Furthermore you are calling the stored procedure within the XSJS loop. This isn't every efficient. I think you would want to find some way to do this all within the database. Perhaps the whole logic in the Insert statement or a Scalar Function.