Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Done slight formating changed in available action section.

...

If you don't have access to an external DB

It's easier to use Talend to extract data (you need to know at least the data structure of the DB) and send these data to OFBiz with xml-rpc

  1. Connect Talend to the external DB
  2. For each row, prepare the data (doing transformations, joins with other tables, call web services to get ISO codes)
  3. Call an ofbiz service to create the data in OFBiz DB (like create product)

OFBiz services can be called as web service (real pain with the way parameters are encoded in maps) or through XML-RPC

Use the Entity xml data resource 

Prepare xml file

Info

Action tags are available only with OFBiz 13.07 or higher, before <create-update> was the default.

With the entity engine, you can load your data from an xml file. If you don't specify any action the <create-update> will be used, it's still the default.

  • have data in files that can be loaded

Use the Entity xml data resource 

Prepare xml file

Info

Action tags are available only with OFBiz 13.07 or higher, before <create-update> was the default.

With the entity engine, you can load your data from an xml file. If you don't specify any action the <create-update> will be used, it's still the default.

Code Block
Code Block
languagexml
titleEntity Xml Data Template
<entity-engine-xml>
    <action>
        <EntityName field1="value" field2="value" .../>
        <EntityName field1="value" ...>
            <field2> <![CDATA[Big text]]></field2>
        </EntityName>
    </action>
</entity-engine-xml>

The available actions are :

  1. <create>

...

  1. :

...

  1. The entity

...

  1. loading

...

  1. mechanism

...

  1. checks

...

  1. all

...

  1. entity

...

  1. elements

...

  1. present

...

  1. under

...

  1. this

...

  1. action

...

  1. and

...

  1. if

...

  1. a

...

  1. research

...

  1. by

...

  1. the

...

  1. primary

...

  1. returns

...

  1. empty,

...

  1. creates

...

  1. it.

...


  1. Otherwise

...

  1. nothing

...

  1. is

...

  1. done.

  2. <create-update>

...

  1. :

...

  1. The entity

...

  1. loading

...

  1. mechanism

...

  1. checks

...

  1. all

...

  1. entity

...

  1. elements

...

  1. present

...

  1. under

...

  1. this

...

  1. action

...

  1. and

...

  1. if

...

  1. a

...

  1. research

...

  1. by

...

  1. primary

...

  1. key

...

  1. return

...

  1. empty,

...

  1. creates

...

  1. it.

...


  1. Otherwise

...

  1. it

...

  1. updates

...

  1. the

...

  1. existing

...

  1. element

...

  1. with

...

  1. the

...

  1. given

...

  1. field

...

  1. value.

...



  1. <create-replace>

...

  1. :

...

  1. The entity

...

  1. loading

...

  1. mechanism

...

  1. checks

...

  1. all

...

  1. entity

...

  1. elements

...

  1. present

...

  1. under

...

  1. this

...

  1. action

...

  1. and

...

  1. if

...

  1. a

...

  1. research

...

  1. by

...

  1. primary

...

  1. key

...

  1. return

...

  1. empty,

...

  1. creates

...

  1. it.

...


  1. Otherwise

...

  1. it

...

  1. replaces

...

  1. the

...

  1. existing

...

  1. element

...

  1. with

...

  1. the

...

  1. given

...

  1. field

...

  1. value.

...

  1. If

...

  1. a

...

  1. field

...

  1. is

...

  1. present

...

  1. in

...

  1. the

...

  1. database

...

  1. but

...

  1. not

...

  1. on

...

  1. xml

...

  1. definition,

...

  1. it

...

  1. will

...

  1. be

...

  1. set

...

  1. to

...

  1. empty.

...



  1. <delete>

...

  1. :

...

  1. The entity

...

  1. loading

...

  1. mechanism

...

  1. checks

...

  1. all

...

  1. entity

...

  1. elements

...

  1. present

...

  1. under

...

  1. this

...

  1. action

...

  1. and

...

  1. if

...

  1. a

...

  1. research

...

  1. by

...

  1. primary

...

  1. key

...

  1. return

...

  1. empty,

...

  1. tries

...

  1. to

...

  1. delete

...

  1. it.

...


  1. Warning

...

  1. the

...

  1. foreign

...

  1. keys

...

  1. haven't

...

  1. been

...

  1. tested.

...

  1. So

...

  1. if

...

  1. you

...

  1. broke

...

  1. a

...

  1. database

...

  1. constraint,

...

  1. all

...

  1. operations

...

  1. present

...

  1. in

...

  1. the

...

  1. file

...

  1. will

...

  1. be

...

  1. rolled

...

  1. back.

Here is an example:

Code Block
languagexml
titleEntity Xml Data Resource Exemple
<entity-engine-xml>
    <create>
        <Example exampleId="EX13" exampleName="Example 13" exampleTypeId="INSPIRED" statusId="EXST_IN_DESIGN"/>
        <Example exampleId="EX14" exampleName="Example 14" exampleTypeId="INSPIRED" statusId="EXST_IN_DESIGN"/>
    </create>
    <create-replace>
        <Example exampleId="EX12" exampleName="Example 12 after replace" exampleTypeId="INSPIRED" statusId="EXST_IN_DESIGN"/>
    </create-replace>
    <create-update>
        <Example exampleId="EX12" exampleName="Example 11 after update" exampleTypeId="INSPIRED" statusId="EXST_IN_DESIGN"/>
    </create-update>
    <delete>
        <Example exampleId="EX09"/>
    </delete>
    <Example exampleId="EX10" exampleName="Example 10 after update"/>
</entity-engine-xml>

...

Load your data files in OFBiz

To load, you have three four possibilities

  1. By entity XML import reader : on your component indicate to load your files by with ext reader. When you want load your data, run ./ant load-ext from your OFBIz home directory.
    For instance in your component/ofbiz-component.xml:

    Code Block
    languagexml
        <entity-resource type="data" reader-name="ext" loader="main" location="data/MyImportData.xml"/>
    1.  See  How to preparing data for more information.
  2. Directly from webtools  in OFBiz, go to 

    1. https://localhost:8443/webtools/control/entityImport to load file by file or copy/paste text

    2. https://localhost:8443/webtools/control/EntityImportDir to load a directory content

    3. copy/paste text

    4. https://localhost:8443/webtools/control/EntityImportDir to load a directory content

  3. Call the OFBiz service importEntityFileDirectory if you have an automation process
  4. Directly from command line using Gradle command:

    Code Block
    gradlew "ofbiz --load-data file=data/myimportdata.xml"

    Note: The data file name should be lowercase only.

    For all the files in the given directory:

    Code Block
    gradlew "ofbiz --load-data dir=data"
    Call the OFBiz service importEntityFileDirectory if you have an automation process


Use the OFBiz's Data File Tools to import

...

a CSV or tab-delimited file

It uses a map to put the data in the entity fields. This is also good for adding static data such as new products.

Here is a sample product import file row. this is a tab delimited fileHere is a sample product import file row. This is a tab delimited file. If you prefer CSV (Comma Separated Values), change the delimiter to "," and the text-delimiter to "&quot;" in the XML below.


Code Block
PRODUCT_ID	SKU	TITLE	CATEGORIES	IMAGE_URL	BRAND	DESCRIPTION	DETAILS	WEIGHT	DIMENSIONS	GOING	REFURB	FREIGHT	ITEM_NAME	MAP	PRICE	MSRP	QTY_AVAIL	EST_AVAIL	EXPECTED_SHIPPING_COST	EXPECTED_DROP_SHIP_FEE	UPC	ITEM_ID
100	213	Atwater Carey EMT Shears	leisure and sport|camping/hiking|accessories	http://images.doba.com/products/2/213.jpg	Atwater Carey	The choice of EMTs worldwide, the 5-1/2'' trauma shears contained in all Pro Series kits or sold separately features an oversized rivet to overcome the rigors of backcountry emergencies. Identified by the bright orange handles, these shears will cut through cloth, plastic, and even light-gauge metal.<br><br>		0.100000002		N	N	N	Atwater Carey EMT Shears	0	3.92	4.99	6	0000-00-00	6.63	2	7.39657E+11	100

...

Code Block
<Product productId="100" primaryProductCategoryId="dropShip" productTypeId="FINISHED_GOOD" internalName="213" description="Atwater Carey EMT Shears" brandName="Atwater Carey" longDescription="The choice of EMTs worldwide, the 5-1/2&apos;&apos; trauma shears contained in all Pro Series kits or sold separately features an oversized rivet to overcome the rigors of backcountry emergencies. Identified by the bright orange handles, these shears will cut through cloth, plastic, and even light-gauge metal.&lt;br&gt;&lt;br&gt;" weight="0.1000000015" weightUomId="WT_lb" chargeShipping="Y" productName="Atwater Carey EMT Shears" quantityIncluded="1" isVirtual="N" returnable="Y" isVariant="N" />

Load the csv and save it as an xls file. Use the PIO to read the xls file

Importing XLS files

Microsoft Excel prior to 2007 used the proprietary XLS file format. XLS files can be read by Java and Groovy applications using the POI library. See Import Data Using Apache POI api and the JIRA issue OFBIZ-1810 for more information.

The new XLSX format is fundamentally XML files packaged in the Zip file format. You could extract data from the XLSX file and apply an XSLT transform to create an OFBiz XML file. You can then search of the product is new or already in and create or update the product. This one requires coding.
You can add a flt that lets a user find the xls and load it that way, or add a service that runs as a job to read from a folder say every midnight.

You can pull the CSV into worksheet and add columns between the data

...

To add in the xml to make it an entity import. An example:

Code Block
borderStylesolid
titleExcel row of data to importborderStylesolid
1651143	 "31090002101"	 "2.4G Media Pointer/Presenter"	 "computer and laptop|input devices|mice"	 http://images.doba.com/products/4/31090002101.jpg	 "Genius"	 "Genius 2.4G Media Pointer, USB, Blue-black. 2.4GHz professional presenter with time management and lazer pointer.   Mini receiver can be stored inside; up to 15 meters anti-interference. LCD time controller, easy to control your presentation. Integrated media functions work just like a simple remote control."	 ""	 "0.6000000238"	 ""	 N	 N	 N	 "2.4G Media Pointer/Presenter"	0	31.9	50.37	2	 0000-00-00	7.41	0	91163218432	1969225


Code Block
borderStylesolid
titleSame Excel row of data converted to entity databorderStylesolid
  <Product productId="1651143"	 productTypeId="FINISHED_GOOD"  internalName="31090002101"	 productName="2.4G Media Pointer/Presenter"	 longDescription= "Genius 2.4G Media Pointer, USB, Blue-black. 2.4GHz professional presenter with time management and lazer pointer.   Mini receiver can be stored inside; up to 15 meters anti-interference. LCD time controller, easy to control your presentation. Integrated media functions work just like a simple remote control."	 weight="0.6000000238"	 taxable="Y" chargeShipping="N"	description="2.4G Media Pointer/Presenter"	autoCreateKeywords="Y" isVirtual="N" isVariant="N" />

...