Monday 28 March 2016

Interesting IMPEX in hybris



Impex:
·         As we know that everything is an extension in hybris, so  integrated text-based import/export extension is called impex .
·         Before going to know impex one must have knowledge on Comma-Separated Values (CSV) data files.
·         Impex file is allowed to create,update,delete and exporting platform related data to and from comma-seperated values(CSV)data files both during runtime and hybris commerce suite initialization or update process.

Key Features:
ü  Import and export hybris Commerce Suite data from and into CSV files.
ü  To feed data into database we go for impex.
ü  Impex file is developed based on the "BeanShell Script".

The ImpEx extension is a converter between items in the hybris Commerce Suite and a CSV file, and the other way round as shown below:
By using Hybris Impex extension it is easy to:
ü                 Update data at run time
ü                 Creating initial data for a project or migrating existing data from one hybris            Commerce Suite into another.
Impex Syntax:
Before going to syntax first we should know terminology used while writing impex file. There are different line types appear  are:
  • Headers in header section 
  •  Lines of values value line section
  •  Comments 
  •  Macro definitions 
Header:
An ImpEx header line has the following structure:
mode type[modifier=value];attribute[modifier=value];attribute[modifier=value];attribute[modifier=value][;...];attribute[modifier=value]

  • Mode specifies what is to be done with the following value lines (insert, update, and so on)
  • Type defines the type of item to be processed (category, product, media, type, and so on)
  • Attribute describes which item attributes the columns are mapped to. The value lines supply the actual values for the items that are translated using the header settings.
  • Modifier gives additional information for translating a value record to the mapped type attribute.

Example for header row:

INSERT_UPDATE category;code[unique=true];name[lang=de];name[lang=en];$supercategories;$thumbnail;description[lang=de];order
Red color-Mode
Blue color-item Type
Orange color-Attribute
Violet color- Modifier
$- macros
     This header states that each following value line creates or updates a category   instance, until another header occurs.

Value of line:
The values inserted in attributes level in type are called value of line.
Ex: In the above example true, en etc represents value of line
Comments:
A comment starts with hash symbol #.
Ex: # inserting values into category type---- comment
INSERT_UPDATE  Category ;id[unique=true];name
Macro definitions:
Macro definitions start with the dollar symbol $, and they are referenced by $macro name. impex extension allows definitions of macros. you don't have to type repeating strings into your csv file.
Macro must be first  statement in impex file. We can have any number of macros.
Ex: $catalog=catalog(id)-- macro
$catalogVersion=catalogVersion($catalog,version)--- macro
INSERT Product; code; $catalogVersion--- Header
Wherever the term $catalogVersion appears, it is replaced by: catalogVersion(catalog(id),version)

In hybris, Data feeding can be done in 3 ways: 
  1.  Through HAC 
  2. Through HMC
  3.  Programmatic Way
1.     Through HAC: 
  1.               start server and navigate to http://localhost:9001 
  2.       Goto console tab -->select ImpEximport 
  3.           write or copy impex statement-->click on validate content then if script valid it will display saying that import script is valid. 
  4.      After Validating Click on Impex Import Tab. Now Impex Script is imported.

2.    Through HMC:
  •      Start server and navigate to http://localhost:9001/hmc/hybris 
  •     In tree menu select system-->Extract system-->select Tools 
  •     Tools extracted-->select import-->New window is opened 
  •     click on import file-->new window opened
  •      select choose file-->select that impex file-->next upload file 
  •          finally select start button -->your record is successfully uploaded

3.    Through Programmatic way:
As an alternative to populate the data model, we will use the ImpEx approach.
ImpEx files for essential data and project data can be prepared without the need for additional data configuration.
Convention:
During the initialization and update processes, the platform looks for ImpEx files in the <extension_name> /resources/impex folder. In particular:
    For essential data: The platform scans the <extension_name> /resources/impex  folders for files with names that match the pattern essentialdata*.impex and imports the files during the essential data creation.
    For project data: The platform scans the <extension_name> /resources/impex folders for files with names that match the pattern projectdata*.impex and imports the files during the project data creation.

The ImpEx directory does not exist by default. You must create it and copy files to it.

For example, if you have the following folder structure:
    resources/impex/essentialdataOne.impex
    resources/impex/essDataOne.impex
    resources/impex/DataOne.csv
    resources/impex/projectdataOne.impex
The files essentialdataOne.impex and projectdataOne.impex are located and imported during the essential and project data imports respectively.

 
 








16 comments:

  1. can i know that our impex file is loaded during server start up time or not?? why??

    ReplyDelete
    Replies
    1. all impex files are used to feed the data into our system

      ant initialize and ant update commands are there to initialize and update our system

      once go to cms2-items.xml file you will find all pages and in that folder you will find all impex

      Delete
  2. How could know to hybris server this data will be insert or update/ Can you explain briefly.

    ReplyDelete
    Replies
    1. i dint get your point can you elaborate it ?

      Delete
    2. Terendesetters asked you ,How do i know the data insert or update in our application?

      Delete
  3. After run the query in flexible search in HAC then we able to find and elaborate data.

    ReplyDelete
  4. what are the modifiers in impex

    ReplyDelete
  5. which extensions are needed to use wcms in hybris.?

    ReplyDelete
  6. How to add RS symbol for every price when we are importing pricerow using IMPEX?

    ReplyDelete
  7. https://stackoverflow.com/questions/50292352/how-to-change-mpexes-under-mystoreinitialdata-resources-hybris

    any help

    ReplyDelete
  8. getting error message when i run below query to see the imported data. Can someone help me on this.


    Query:

    select {Hariusername} from {Haricustomers}

    Error:

    select {Hariusername} from {Haricustomers},,,,;# no current header for value line

    ReplyDelete
  9. This comment has been removed by the author.

    ReplyDelete
  10. do we need to add catalogversion in header row as mandatory ?
    In my case it is throwing error:
    target type AuctionProduct is not permitted by current header - type AuctionProduct requires missing column [catalog Version] impex

    ReplyDelete
  11. https://indainhybris.wordpress.com/2016/05/14/interesting-impex-in-hybris/

    Both are same matter.

    ReplyDelete
  12. How do we generate Impex file CSV format , any tools ?
    Anyone has tried to import data into Hybris CMS using Power Automate ?

    ReplyDelete