Import persons into OfBiz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Import persons into OfBiz

CTCroydon - Andrew Dent
Hi

 

I have a list of persons that I want to import into OfBiz using the Data
File tool

I have two files, names.xsd and names.csv

However when I try to use the Data File tool I get a FreeMarker template
error. How do I import a list of names?

I am using OfBiz 14.12

 

The names.csv contains the data like this

 

Harry,Smith

 

The names.xsd file looks like this

 

contains

<?xml version="1.0" encoding="UTF-8" ?>

<data-files xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

 
xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/datafiles.xsd">

    <data-file name="names" separator-style="delimited" type-code="text"
text-delimiter=",">

        <record name="person">

            <field name="firstName" type="String" postion="0"/>

            <field name="lastName" type="String"  postion="1"/>            

        </record>

    </data-file>

</data-files>

 

Regards

 

Andrew Dent

 

Reply | Threaded
Open this post in threaded view
|

Re: Import persons into OfBiz

Mike Z
You need more to import a person.

Here is a "simple" example using "1000" as the primary key.  The "key" can
be anything, including the last name, but needs to stay consistent.

Order is critical.  I also use "1000" as the "sub-key" to other relations,
like ContactMech.

If you have to import many of these, create a program to read your CSV,
output in the below format, and import.

You can also write an external program (perl/shell) and directly write to
the database (it can be done), you just need to create the database entries
in the exact same order as below:  Example:

1) Create Party record
2) Create PartyGroup record
3) Create PartyRole record
... etc.

There is no substitute for studying the ofbiz schema.  There are a LOT more
possible relations for importing a person.  For example, the below
"PartyRole" is set to "ACCOUNT", which is most likely incorrect for you.
However, this should be enough to get you started.

Mike

<?xml version="1.0" encoding="UTF-8"?>
<entity-engine-xml>
  <Party partyId="1000" partyTypeId="PARTY_GROUP"
createdByUserLogin="admin" createdDate="2013-09-24 22:33:35"/>
  <PartyGroup partyId="1000" groupName="1000 Electronics"
createdStamp="2013-09-24 22:33:36"/>
  <PartyRole partyId="1000" createdStamp="2013-09-24 22:33:36"
roleTypeId="ACCOUNT"/>
  <ContactMech contactMechId="1000_0" createdStamp="2013-09-24 22:33:36"
contactMechTypeId="POSTAL_ADDRESS"/>
  <PostalAddress contactMechId="1000_0" createdStamp="2013-09-24 22:33:36"
toName="1000 Electronics" city="BayVille" postalCode="08721-1835"
countryGeoId="USA" address1="1800 Smith Avenue" stateProvinceGeoId="NJ"/>
  <PartyContactMech contactMechId="1000_0" createdStamp="2013-09-24
22:33:36" allowSolicitation="N" fromDate="2013-09-24 22:33:36"
partyId="1000"/>
  <PartyContactMechPurpose contactMechId="1000_0"
contactMechPurposeTypeId="GENERAL_LOCATION" createdStamp="2013-09-24
22:33:36" fromDate="2013-09-24 22:33:36" partyId="1000"/>
  <PartyContactMechPurpose contactMechId="1000_0"
contactMechPurposeTypeId="PAYMENT_LOCATION" createdStamp="2013-09-24
22:33:36" fromDate="2013-09-24 22:33:36" partyId="1000"/>
  <PartyContactMechPurpose contactMechId="1000_0"
contactMechPurposeTypeId="BILLING_LOCATION" createdStamp="2013-09-24
22:33:36" fromDate="2013-09-24 22:33:36" partyId="1000"/>
  <ContactMech contactMechId="1000_P" createdStamp="2013-09-24 22:33:36"
contactMechTypeId="TELECOM_NUMBER"/>
  <PartyContactMech contactMechId="1000_P" createdStamp="2013-09-24
22:33:36" allowSolicitation="N" fromDate="2013-09-24 22:33:36"
partyId="1000"/>
  <TelecomNumber contactMechId="1000_P" areaCode="800" countryCode="011"
createdStamp="2013-09-24 22:33:36" contactNumber="527-3306"
askForName="1000 Electronics"/>
  <PartyContactMechPurpose contactMechId="1000_P"
contactMechPurposeTypeId="PRIMARY_PHONE" createdStamp="2013-09-24 22:33:36"
fromDate="2013-09-24 22:33:36" partyId="1000"/>
  <ContactMech contactMechId="1000_F" createdStamp="2013-09-24 22:33:36"
contactMechTypeId="TELECOM_NUMBER"/>
  <PartyContactMech contactMechId="1000_F" createdStamp="2013-09-24
22:33:36" allowSolicitation="N" fromDate="2013-09-24 22:33:36"
partyId="1000"/>
  <TelecomNumber contactMechId="1000_F" areaCode="732" countryCode="011"
createdStamp="2013-09-24 22:33:36" contactNumber="237-1000"/>
  <PartyContactMechPurpose contactMechId="1000_F"
contactMechPurposeTypeId="FAX_NUMBER" createdStamp="2013-09-24 22:33:36"
fromDate="2013-09-24 22:33:36" partyId="1000"/>
  <ContactMech contactMechId="1000_E" createdStamp="2013-09-24 22:33:36"
infoString="[hidden email]" contactMechTypeId="EMAIL_ADDRESS"/>
  <PartyContactMech contactMechId="1000_E" createdStamp="2013-09-24
22:33:36" allowSolicitation="N" fromDate="2013-09-24 22:33:36"
partyId="1000"/>
</entity-engine-xml>


On Thu, Aug 20, 2015 at 10:47 PM, Andrew Dent - CTCroydon <
[hidden email]> wrote:

> Hi
>
>
>
> I have a list of persons that I want to import into OfBiz using the Data
> File tool
>
> I have two files, names.xsd and names.csv
>
> However when I try to use the Data File tool I get a FreeMarker template
> error. How do I import a list of names?
>
> I am using OfBiz 14.12
>
>
>
> The names.csv contains the data like this
>
>
>
> Harry,Smith
>
>
>
> The names.xsd file looks like this
>
>
>
> contains
>
> <?xml version="1.0" encoding="UTF-8" ?>
>
> <data-files xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>
>
> xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/datafiles.xsd
> ">
>
>     <data-file name="names" separator-style="delimited" type-code="text"
> text-delimiter=",">
>
>         <record name="person">
>
>             <field name="firstName" type="String" postion="0"/>
>
>             <field name="lastName" type="String"  postion="1"/>
>
>         </record>
>
>     </data-file>
>
> </data-files>
>
>
>
> Regards
>
>
>
> Andrew Dent
>
>
>
>
Reply | Threaded
Open this post in threaded view
|

Re: Import persons into OfBiz

CTCroydon - Andrew Dent
Thanks Mike.
Yes I ended up writing a perl program to construct a xml file for input
instead. I found that I only needed the id plus first and last name. I
needed a party record then a person record. That seemed to be enough to get
the records into ofbiz. But I will modify it to include your suggestions.

Shame about the id. It would be nice the Importing service could detect
that the existing records id was integer and auto populate/increment from
what was already there.

Is there a way from outside of Ofbiz that I can query the ids in a Ofbiz
table?
I only plan to use integers.

Then I can use perl to initiate that query and increment the id to begin
constructing the xml records.

Can I call a Ofbiz service from the outside of Ofbiz to import the data
automagically?
On 22/08/2015 1:34 AM, "Mike" <[hidden email]> wrote:

> You need more to import a person.
>
> Here is a "simple" example using "1000" as the primary key.  The "key" can
> be anything, including the last name, but needs to stay consistent.
>
> Order is critical.  I also use "1000" as the "sub-key" to other relations,
> like ContactMech.
>
> If you have to import many of these, create a program to read your CSV,
> output in the below format, and import.
>
> You can also write an external program (perl/shell) and directly write to
> the database (it can be done), you just need to create the database entries
> in the exact same order as below:  Example:
>
> 1) Create Party record
> 2) Create PartyGroup record
> 3) Create PartyRole record
> ... etc.
>
> There is no substitute for studying the ofbiz schema.  There are a LOT more
> possible relations for importing a person.  For example, the below
> "PartyRole" is set to "ACCOUNT", which is most likely incorrect for you.
> However, this should be enough to get you started.
>
> Mike
>
> <?xml version="1.0" encoding="UTF-8"?>
> <entity-engine-xml>
>   <Party partyId="1000" partyTypeId="PARTY_GROUP"
> createdByUserLogin="admin" createdDate="2013-09-24 22:33:35"/>
>   <PartyGroup partyId="1000" groupName="1000 Electronics"
> createdStamp="2013-09-24 22:33:36"/>
>   <PartyRole partyId="1000" createdStamp="2013-09-24 22:33:36"
> roleTypeId="ACCOUNT"/>
>   <ContactMech contactMechId="1000_0" createdStamp="2013-09-24 22:33:36"
> contactMechTypeId="POSTAL_ADDRESS"/>
>   <PostalAddress contactMechId="1000_0" createdStamp="2013-09-24 22:33:36"
> toName="1000 Electronics" city="BayVille" postalCode="08721-1835"
> countryGeoId="USA" address1="1800 Smith Avenue" stateProvinceGeoId="NJ"/>
>   <PartyContactMech contactMechId="1000_0" createdStamp="2013-09-24
> 22:33:36" allowSolicitation="N" fromDate="2013-09-24 22:33:36"
> partyId="1000"/>
>   <PartyContactMechPurpose contactMechId="1000_0"
> contactMechPurposeTypeId="GENERAL_LOCATION" createdStamp="2013-09-24
> 22:33:36" fromDate="2013-09-24 22:33:36" partyId="1000"/>
>   <PartyContactMechPurpose contactMechId="1000_0"
> contactMechPurposeTypeId="PAYMENT_LOCATION" createdStamp="2013-09-24
> 22:33:36" fromDate="2013-09-24 22:33:36" partyId="1000"/>
>   <PartyContactMechPurpose contactMechId="1000_0"
> contactMechPurposeTypeId="BILLING_LOCATION" createdStamp="2013-09-24
> 22:33:36" fromDate="2013-09-24 22:33:36" partyId="1000"/>
>   <ContactMech contactMechId="1000_P" createdStamp="2013-09-24 22:33:36"
> contactMechTypeId="TELECOM_NUMBER"/>
>   <PartyContactMech contactMechId="1000_P" createdStamp="2013-09-24
> 22:33:36" allowSolicitation="N" fromDate="2013-09-24 22:33:36"
> partyId="1000"/>
>   <TelecomNumber contactMechId="1000_P" areaCode="800" countryCode="011"
> createdStamp="2013-09-24 22:33:36" contactNumber="527-3306"
> askForName="1000 Electronics"/>
>   <PartyContactMechPurpose contactMechId="1000_P"
> contactMechPurposeTypeId="PRIMARY_PHONE" createdStamp="2013-09-24 22:33:36"
> fromDate="2013-09-24 22:33:36" partyId="1000"/>
>   <ContactMech contactMechId="1000_F" createdStamp="2013-09-24 22:33:36"
> contactMechTypeId="TELECOM_NUMBER"/>
>   <PartyContactMech contactMechId="1000_F" createdStamp="2013-09-24
> 22:33:36" allowSolicitation="N" fromDate="2013-09-24 22:33:36"
> partyId="1000"/>
>   <TelecomNumber contactMechId="1000_F" areaCode="732" countryCode="011"
> createdStamp="2013-09-24 22:33:36" contactNumber="237-1000"/>
>   <PartyContactMechPurpose contactMechId="1000_F"
> contactMechPurposeTypeId="FAX_NUMBER" createdStamp="2013-09-24 22:33:36"
> fromDate="2013-09-24 22:33:36" partyId="1000"/>
>   <ContactMech contactMechId="1000_E" createdStamp="2013-09-24 22:33:36"
> infoString="[hidden email]" contactMechTypeId="EMAIL_ADDRESS"/>
>   <PartyContactMech contactMechId="1000_E" createdStamp="2013-09-24
> 22:33:36" allowSolicitation="N" fromDate="2013-09-24 22:33:36"
> partyId="1000"/>
> </entity-engine-xml>
>
>
> On Thu, Aug 20, 2015 at 10:47 PM, Andrew Dent - CTCroydon <
> [hidden email]> wrote:
>
> > Hi
> >
> >
> >
> > I have a list of persons that I want to import into OfBiz using the Data
> > File tool
> >
> > I have two files, names.xsd and names.csv
> >
> > However when I try to use the Data File tool I get a FreeMarker template
> > error. How do I import a list of names?
> >
> > I am using OfBiz 14.12
> >
> >
> >
> > The names.csv contains the data like this
> >
> >
> >
> > Harry,Smith
> >
> >
> >
> > The names.xsd file looks like this
> >
> >
> >
> > contains
> >
> > <?xml version="1.0" encoding="UTF-8" ?>
> >
> > <data-files xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> >
> >
> > xsi:noNamespaceSchemaLocation="
> http://ofbiz.apache.org/dtds/datafiles.xsd
> > ">
> >
> >     <data-file name="names" separator-style="delimited" type-code="text"
> > text-delimiter=",">
> >
> >         <record name="person">
> >
> >             <field name="firstName" type="String" postion="0"/>
> >
> >             <field name="lastName" type="String"  postion="1"/>
> >
> >         </record>
> >
> >     </data-file>
> >
> > </data-files>
> >
> >
> >
> > Regards
> >
> >
> >
> > Andrew Dent
> >
> >
> >
> >
>
Reply | Threaded
Open this post in threaded view
|

RE: Import persons into OfBiz

damon henry
In reply to this post by Mike Z
When I want to know how to create a record to be imported, I use the webtools export function to export a similar record.  Then I have a template for creating the proper xml for import.
damon

> Date: Fri, 21 Aug 2015 08:34:12 -0700
> Subject: Re: Import persons into OfBiz
> From: [hidden email]
> To: [hidden email]
>
> You need more to import a person.
>
> Here is a "simple" example using "1000" as the primary key.  The "key" can
> be anything, including the last name, but needs to stay consistent.
>
> Order is critical.  I also use "1000" as the "sub-key" to other relations,
> like ContactMech.
>
> If you have to import many of these, create a program to read your CSV,
> output in the below format, and import.
>
> You can also write an external program (perl/shell) and directly write to
> the database (it can be done), you just need to create the database entries
> in the exact same order as below:  Example:
>
> 1) Create Party record
> 2) Create PartyGroup record
> 3) Create PartyRole record
> ... etc.
>
> There is no substitute for studying the ofbiz schema.  There are a LOT more
> possible relations for importing a person.  For example, the below
> "PartyRole" is set to "ACCOUNT", which is most likely incorrect for you.
> However, this should be enough to get you started.
>
> Mike
>
> <?xml version="1.0" encoding="UTF-8"?>
> <entity-engine-xml>
>   <Party partyId="1000" partyTypeId="PARTY_GROUP"
> createdByUserLogin="admin" createdDate="2013-09-24 22:33:35"/>
>   <PartyGroup partyId="1000" groupName="1000 Electronics"
> createdStamp="2013-09-24 22:33:36"/>
>   <PartyRole partyId="1000" createdStamp="2013-09-24 22:33:36"
> roleTypeId="ACCOUNT"/>
>   <ContactMech contactMechId="1000_0" createdStamp="2013-09-24 22:33:36"
> contactMechTypeId="POSTAL_ADDRESS"/>
>   <PostalAddress contactMechId="1000_0" createdStamp="2013-09-24 22:33:36"
> toName="1000 Electronics" city="BayVille" postalCode="08721-1835"
> countryGeoId="USA" address1="1800 Smith Avenue" stateProvinceGeoId="NJ"/>
>   <PartyContactMech contactMechId="1000_0" createdStamp="2013-09-24
> 22:33:36" allowSolicitation="N" fromDate="2013-09-24 22:33:36"
> partyId="1000"/>
>   <PartyContactMechPurpose contactMechId="1000_0"
> contactMechPurposeTypeId="GENERAL_LOCATION" createdStamp="2013-09-24
> 22:33:36" fromDate="2013-09-24 22:33:36" partyId="1000"/>
>   <PartyContactMechPurpose contactMechId="1000_0"
> contactMechPurposeTypeId="PAYMENT_LOCATION" createdStamp="2013-09-24
> 22:33:36" fromDate="2013-09-24 22:33:36" partyId="1000"/>
>   <PartyContactMechPurpose contactMechId="1000_0"
> contactMechPurposeTypeId="BILLING_LOCATION" createdStamp="2013-09-24
> 22:33:36" fromDate="2013-09-24 22:33:36" partyId="1000"/>
>   <ContactMech contactMechId="1000_P" createdStamp="2013-09-24 22:33:36"
> contactMechTypeId="TELECOM_NUMBER"/>
>   <PartyContactMech contactMechId="1000_P" createdStamp="2013-09-24
> 22:33:36" allowSolicitation="N" fromDate="2013-09-24 22:33:36"
> partyId="1000"/>
>   <TelecomNumber contactMechId="1000_P" areaCode="800" countryCode="011"
> createdStamp="2013-09-24 22:33:36" contactNumber="527-3306"
> askForName="1000 Electronics"/>
>   <PartyContactMechPurpose contactMechId="1000_P"
> contactMechPurposeTypeId="PRIMARY_PHONE" createdStamp="2013-09-24 22:33:36"
> fromDate="2013-09-24 22:33:36" partyId="1000"/>
>   <ContactMech contactMechId="1000_F" createdStamp="2013-09-24 22:33:36"
> contactMechTypeId="TELECOM_NUMBER"/>
>   <PartyContactMech contactMechId="1000_F" createdStamp="2013-09-24
> 22:33:36" allowSolicitation="N" fromDate="2013-09-24 22:33:36"
> partyId="1000"/>
>   <TelecomNumber contactMechId="1000_F" areaCode="732" countryCode="011"
> createdStamp="2013-09-24 22:33:36" contactNumber="237-1000"/>
>   <PartyContactMechPurpose contactMechId="1000_F"
> contactMechPurposeTypeId="FAX_NUMBER" createdStamp="2013-09-24 22:33:36"
> fromDate="2013-09-24 22:33:36" partyId="1000"/>
>   <ContactMech contactMechId="1000_E" createdStamp="2013-09-24 22:33:36"
> infoString="[hidden email]" contactMechTypeId="EMAIL_ADDRESS"/>
>   <PartyContactMech contactMechId="1000_E" createdStamp="2013-09-24
> 22:33:36" allowSolicitation="N" fromDate="2013-09-24 22:33:36"
> partyId="1000"/>
> </entity-engine-xml>
>
>
> On Thu, Aug 20, 2015 at 10:47 PM, Andrew Dent - CTCroydon <
> [hidden email]> wrote:
>
> > Hi
> >
> >
> >
> > I have a list of persons that I want to import into OfBiz using the Data
> > File tool
> >
> > I have two files, names.xsd and names.csv
> >
> > However when I try to use the Data File tool I get a FreeMarker template
> > error. How do I import a list of names?
> >
> > I am using OfBiz 14.12
> >
> >
> >
> > The names.csv contains the data like this
> >
> >
> >
> > Harry,Smith
> >
> >
> >
> > The names.xsd file looks like this
> >
> >
> >
> > contains
> >
> > <?xml version="1.0" encoding="UTF-8" ?>
> >
> > <data-files xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> >
> >
> > xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/datafiles.xsd
> > ">
> >
> >     <data-file name="names" separator-style="delimited" type-code="text"
> > text-delimiter=",">
> >
> >         <record name="person">
> >
> >             <field name="firstName" type="String" postion="0"/>
> >
> >             <field name="lastName" type="String"  postion="1"/>
> >
> >         </record>
> >
> >     </data-file>
> >
> > </data-files>
> >
> >
> >
> > Regards
> >
> >
> >
> > Andrew Dent
> >
> >
> >
> >