1、Impex是基于java Model的一种面向对象的数据操作手段,因此写impex代码前需要理清java Model之间的依赖关系。
2、基本语法:mode type[modifier=value];attribute[modifier=value];attribute[modifier=value];attribute[modifier=value][;...];attribute[modifier=value]
  • mode:提供四种操作insert、update、insert_update、remove等操作

    • Insert:在Hybris中创建一个item,Impex默认不检查是否存在相同属性的item
    • Update:在hybris中通过一个unique的属性,选择一个存在的item,将属性值设置到对应的值上
    • Insert_update:将insert和Update方式合并。
    • Remove:hybris会尝试寻找正确的item,如果一个item存在,它将被删除
  • type:定义处理的item类型,category,product,media等等
  • attribute:映射到对象的column属性
  • modifier 控制说明使用,来说明这个column的限制
    • alias 别名
    • allownull
    • cellDecorator
    • collection-delimiter
    • dateformat 时间格式化
    • default 默认值
    • forceWrite
    • ignoreKeyCase
    • ignorenull
    • key2value-delimiter 键值对
    • lang 定义语言,多语言。lang=en
    • map-delimiter
    • mode
    • numberformat
    • path-delimiter
    • pos
    • translator
    • unique 控制属性唯一 unque=true
    • virtual
3、Demo
insert User;uid[unique=true] Customer;sampleCustomer Employee;SampleEmployee
Customer 和 Employee是User的子类,以上表示增加两个对象
等价于
insert Customer;uid[unique=true] ;sampleCustomer
insert Employee;uid[unique=true] ;sampleEmployee
中间用空格隔开表示后面的依次为前面的赋值,不用空格隔开表示是对象的属性
----------------------------------------------------------------------------------------------------------------------------
insert product;code;unit(code);catalogVersion(catalog(id),version)
;testCode;pieces;clothescatalog:staged
catalogVersion(catalog(id),version)
id=clothescatalog,version=staged;
查询方式:先根据id=clothescatalog查出cataloglog对象,然后根据对象的pk和version等于staged查出catalogVersion对象的pk和version等于Staged查询出catalogVersion对象的PK
 
---------------------------------------------------------------------------------------------------------------------------
insert language;code;;active ;de;deutsch;true
;;表示跳过这一列,deutsch不会被增加
 
---------------------------------------------------------------------------------------------------------------------------
INSERT Product;code[unique=true];name[lang=en];name[lang=de]
;myProduct1;myProduct1's localized name;lokalisierter Name von myProduct1 
lang 来指定本地化,就是什么语言。
 
---------------------------------------------------------------------------------------------------------------------------
UPDATE Product;code[unique=true];name[lang=en]
;myProduct1;my product 1
这样修改是不会影响到其他语言的,只会影响到lang=en的
 
4、一对多关系插入
INSERT_UPDATE USER;uid[unique=true];userDescription
;1;1;
 
INSERT_UPDATE OUTLET;code[unique=true];name;outletDescription;product(uid[unique=true])
;12;12;12;1;
;2;2;2;1;
;3;3;3;1;
一对多的话,主要在多表中有一个字段来表示和一表关联,所以只要有一个一表的唯一键来确认对应到那条记录就可以了 product(uid[unique=true])
5、批量处理
REMOVE product[batchmode=true];name[unique=true,lang=zh]
;test
所有name等于test的产品全部删除

IMPEX的更多相关文章

  1. Hybris IMPEX.

    1.Impex是基于java Model的一种面向对象的数据操作手段,因此写impex代码前需要理清java Model之间的依赖关系.   2.基本语法:mode type[modifier=val ...

  2. impex 语法

    impex 语法 2016-01-14 16:23 588人阅读 评论(0) 收藏 举报  分类: hybris(8)  脱离java Model单纯的去看impex文件的代码是不能很好理解impex ...

  3. Hybris商品图片导入与压缩有关的配置

    1.   在电脑上安装 ImageMagick 软件(windows平台还需要安装VC++),下载路径:http://www.imagemagick.org/script/download.php#w ...

  4. Hybris安装和各个Extention简单介绍

    前言:突然想好好梳理一下这几个月所学的内容了,顺便让自己的知识有一个系统的框架. 一.  安装JDK 请安装最新的Oracle JDK 8.0版(从Oracle官网下载). 二.开发工具建议使用 In ...

  5. CronJobs

    一.概念     CronJobs提供了在特定的时间或者间隔内处理业务逻辑的方法.一般创建一个Cronjob有两种方式,第一种是定义Java类,由Hybris生成脚本并加入数据库.第二种是直接编写gr ...

  6. Hybris CronJob.

    一.概念     CronJobs提供了在特定的时间或者间隔内处理业务逻辑的方法.一般创建一个Cronjob有两种方式,第一种是定义Java类,由Hybris生成脚本并加入数据库.第二种是直接编写gr ...

  7. Conjob For hybris

    1.Defining the Job 写conjob的逻辑:core包下当做service层(要继承AbstractJobPerformable<CronJobModel>) public ...

  8. CRM, C4C和Hybris的工作流简介

    CRM的例子 Step by Step to debug IC inbox workflow WS14000164 C4C Custom recipient determination in work ...

  9. CRM WebClient UI和Hybris里工作中心跳转的url生成逻辑

    CRM WebClient UI 把Work center的navigation target在client side不可见:在Chrome development tool里看不到,而是点击了Wor ...

随机推荐

  1. C#继承的执行顺序

    自己对多态中构造函数.函数重载执行顺序和过程一直有些不理解,经过测试,对其中的运行顺序有了一定的了解,希望对初学者有些帮助. eg1: public class A { public A() { Co ...

  2. 浅谈WEB编辑器——HBuilder

    我自己用过的WEB编辑器有两种:HBuilder和Dreamweaver.这两种编辑器各有各的特点,但是相对来说,我倾向于前者:后者给我的感觉就是功能繁杂,运行起来慢,而且编码的便捷度不高,时不时需要 ...

  3. eclipse左侧的导航栏不见了怎么调

    点击eclipse上方导航栏的window 然后再点击Reset Perspective 这样左侧的导航栏就出来了

  4. 让div产生滚动条

    .demo{ padding-right:10px; overflow-y:auto; padding-left:10px; scrollbar-face-color:#ffffff; font-si ...

  5. [leetcode-563-Binary Tree Tilt]

    Given a binary tree, return the tilt of the whole tree.The tilt of a tree node is defined as the abs ...

  6. form表单的ajax验证2

    form表单的ajax验证2: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"&g ...

  7. 如何使用LIBSVM,从安装到基本实例使用

    1.在eclipse上安装libsvm 下载libsvm压缩包解压到本地目录,下载地址http://www.csie.ntu.edu.tw/~cjlin/libsvm/index.html 如图: 2 ...

  8. hack在微信等webview中无法修改document.title的情况

    var $body = $('body'); document.title = '确认车牌'; // hack在微信等webview中无法修改document.title的情况 var $iframe ...

  9. 记VUE的v-on:textInput无法执行事件的BUG

    <div id="wrap"> <input type="text" v-on:textInput="fn"> &l ...

  10. Java编程代码性能优化总结

    如果有足够的时间开发.维护代码,这时候就必须考虑每个可以优化的细节了,一个一个细小的优化点累积起来,对于代码的运行效率绝对是有提升的. 代码优化的目标是: 1.减小代码的体积 2.提高代码运行的效率 ...