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 |
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 > > > > |
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 > > > > > > > > > |
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 > > > > > > > > |
Free forum by Nabble | Edit this page |