Thank you Tom, That is basically what I have successfully done in xTuple.
My argument was that you cannot use the API for data import from one system to xTuple.
This is unfortunate because the API is so robust.
Since we are currently using Oracle EAS, the transformation queries from Oracle to xTuple are extremely complex and time consuming. I find that it is faster to stage the Oracle tables to PostgreSQL in their own schema and run the transformation queries in PostgreSQl, where it is much faster.
The other issue I run into with Oracle is the "number" columns. xTuple requires all their "number" columns to be unique, which is a good practice. Oracle is a bit lazy in this regard. For example the Oracle AR.HZ_LOCATION table which is the equivalent of the xTuple addr table has no location_number column. This happens in a number of Oracle tables.
So for now, I have to maintain the Oracle PK id, which leaves a lot of gaps in the xTuple PK id columns.
But I would prefer to start with a clean slate and every PK id start at one.
Lastly, since both systems will run concurrently, during testing. I need the PK id of the xTuple table to look up the PK in the Oracle table to verify the data. This can be difficult if the PK ids are different.
But any suggestion would be helpful.