Anda di halaman 1dari 8

PRACTICA ZIPCODE

En este manual abarca la creacion de extensiones de Hybris, creacion de Items e importacion de


registros por medio de InPex.

Se intuye que el lector ya elaboro los tutoriales de CuppyTrail(Development Trail) y el Training de


Hybris, para su mayor comprension.

CREACION DE UNA EXTENSION

Para generar una nueva extension, en el IDE de Eclipse, en la vista del ant, dar doble clic en
extgen(vease en la imagen).

Una vez ejecutada la accion se le pediran los 3


datos:

1. Nombre de la extension(”zipcode” ).
2. El nombre del paquete ( “org.zipcode”).
3. El Template es el “yempty”.

Terminando la generacion se recomienda


importar la extension al IDE. Esto es dando
click derecho al organizador import> import >
General > Existing Project into Worksapace …
y seleccionando la ubicacion de la carpeta de la
extension que seria en hybris> bin> custom

Lo siguiente por hacer es agregar la extension al hybris, esto se hace ubicandonos en archivo de
config/localextensions.xml y se agrega con las siguiente linea.

...
<extension dir="${HYBRIS_BIN_DIR}/custom/zipcode"/>
</extensions>

Una vez agregado la linea corre el all del Ant.

Para mas detalles o dudas vease aqui.

CREACION DE LOS MODELOS(items).

La creacion de los modelos, son generados por un archivo xml cuya ubicacion es carpetaExt>
resources > NombreExtension-items.xml (zipcode-items.xml) que nos servira para la creacion de las
clases y entidades en la base de datos.

El archivo para esta practica esta compuesto por estos <tags>.


<items>

<enumtypes>
aqui colocas las enumeraciones que son los valores predefinidos para un
atributo
</enumtypes>

<relations>
Aqui se colocan las relaciones entre los items
</relations>

<itemtypes>
Aqui van los items con sus atributos
</itemtypes>
</items>

Los items requeridos para esta practica son 2:


1. Branch_proc_temp
2. Branch_assoc_zips_temp
Y sus atributos:

Branch_proc_temp Branch_assoc_zips_
temp
GR_BRANCH_NAME GR_BRANCH_NAME
GR_BRANCH_CODE GR_ASSOC_ZIP
GR_BRANCH_ADDRESS BRANCH_ZIP_STATUS
GR_BRANCH_ADDRESS2
GR_CITY
GR_STATE
GR_ZIP
GR_COUNTRY
GR_HOURS_OPEN
GR_TIME_ZONE
GR_AREA_CODE
GR_TOLL_FREE_NUMBE
R
GR_PHONE
GR_FAX
GR_EMAIL
GR_BRANCH_TYPE
GR_BRANCH_TYPE_KEY
GR_STATE_KEY
GR_BRANCH_ACTIVE_D
ATE
GR_IS_ACTIVE

Por lo que la entidad de Branch_proc_temp quedaria de la siguiente manera.


<itemtypes>
<itemtype code="Branch_proc" autocreate="true" generate="true"
extends="PointOfService" jaloclass="org.zipcode.jalo.Branch_proc">

<attributes>
<attribute qualifier="gr_branch_code" type="java.lang.String"
generate="true">
<persistence type="property"/>
<modifiers read="true" write="true" optional="true"/>
</attribute>
............
............
............
<attribute qualifier="gr_branch_is_active"
type="java.lang.Boolean" generate="true">
<persistence type="property"/>
<modifiers read="true" write="true" optional="true"/>
</attribute>
</attributes>

En el ejemplo anterior se puede apreciar en el tag de <itemtype> cuyas propiedades son:

code: Nombre de la clase en java. Se recomienda que la primera letra sea en mayuscula.

Autocreate: genera la instancia del item al inicializarce o actualizar la plataforma. Se


recomienda dejarlo en True.

Generate: genera las clases abstractas con get y set por default. Se recomienda en True.

Extends: hereda los atributos de una superentidad(entidad padre o item).

Jaloclass: Ubicacion de las clases no abstractas que serviran para la personalizacion .

Nota:
Cabe de mencionar que el extends del Branch_proc_temp apunta hacia un item(PointOfService) que
contiene uno campos similares, vease en la extension de Hybris> bin>ext-hybris >BaseCommerce se
debe importar el proyecto. Los campos de PointOfService que se van a necesitar son name.
Address(street,streetnumber, city, state, zip y country) y type.

En lo que es dentro del tag de <attributes> lo que es el tag <attribute> cuyas propiedades son las
siguientes:

qualifier: el nombre del atributo.

Type: el tipo de dato del atributo

generate: si genera los metodos de get y set.

Y dentro de <attribute> estan otros 2 tags:


<persistence>: Contiene la propiedad de type="property" donde determina de como se va
almacenar el tipo en la base de datos.

<modifiers>: Dentro de este tag contiene las propiedades de read y write donde se determina si
sus get y set sean publicos o privados, por el momento se recomiendan que sean publicos
read="true" write="true". Mientras que la propiedad de optional... en el caso que se de
alta un registro al item correspondiente al atributo cuya propiedad optional=”false” no te
dejara hacer la insercion si el atributo lleva valor null, en pocas palabras el atributo es
obligatorio y si optional="true" acepta valores nulos.

Esto fue una breve explicacion sobre los items, para mas informacion detallada vease los siguientes
links: items.xml y itemsElementsReference.

Una vez terminado el archivo ext-item.xml se compila y va generar archivos java con las clases
correspondientes a su types.

De ahi se ejecuta el Ant all, una vez terminado el built del ant nos dijimos a la consola de
administracion del Hybris, de donde pasamos a la pestaña de init/update, donde le damos update o init
segun sea los casos vistos segun en los tutoriales anteriores...

Nota:
En caso de hacer modificaciones ya sea eliminando o agregando types o atributos y hay
incongruencias en el hmc, se recomienda ejecutar el ant all, mas aparte en la consola de
administracion en la pestaña de init/update seleccionar update, hacer el check en projects de la
extension y dar click en Go.

Otro modo en la eliminacion de atributos, seria de manera de eliminacion manual por el HMC.

IMPORTACION DE DATOS POR IMPEX


La importacion por medio de impex se necesita generar un archivo CSV.
Por ejemplo en el caso de importar los siguientes datos que son los siguiente:

Branch_assoc:
356|77455|A
356|77456|A
356|77457|A
356|77458|A
356|77459|A

Branch_proc

006|FBKS|19 College Rd. Unit A||Fairbanks|AK|99701-1702|US|8:00 AM - 5:00 PM|


Alaska|907||(907) 458-6500|(907) 458-6502|brn.006@Grainger.com|Branch|2|3|2006-09-
18 00:00:00|0
007|ANCH|6240 B St.||Anchorage|AK|99518-1727|US|7:30 AM - 5:00 PM|Alaska|907|(800)
478-4781|(907) 562-5400|(907) 562-2072|brn.007@grainger.com|Branch|2|3|1989-12-18
00:00:00|1

016|ALBY|35 Corporate Circle||Albany|NY|12203-5154|US|7:00 AM - 5:00 PM|Eastern|


518|(800) 633-8487|(518) 869-1414|(518) 869-1418|brn.016@grainger.com|Branch|2|35|
1948-09-01 00:00:00|1

017|BURL|20 Gregory Dr.||South Burlington|VT|05403-6046|US|7:00 AM - 5:00 PM|


Eastern|802||(802) 658-4988|(802) 658-2560|brn.017@grainger.com|Branch|2|56|1985-
09-01 00:00:00|1

024|AQUR|3901 Osuna Rd. NE||Albuquerque|NM|87109-4431|US|7:30 AM - 5:00 PM|


Mountain|505|(800) 687-6806|(505) 345-8631|(505) 345-9600|brn.024@grainger.com|
Branch|2|34|1962-03-01 00:00:00|1

Lo primero que se debe hacer es identificar de acuerdo a los items que se crearon con las columnas de
los datos anteriores, tomamos los primeros registros como ejemplo.

Branch_Proc
006|FBKS|19 College Rd. Unit A| |Fairbanks|AK|99701-1702|US|8:00 AM - 5:00 PM|Alaska|907| |
(907) 458-6500|(907) 458-6502|brn.006@Grainger.com|Branch|2|3|2006-09-18 00:00:00|0

GR_BRANCH_NAME GR_BRANCH_CODE GR_BRANCH_ADDR GR_BRANCH_ADDR


ESS ESS
006 FBKS 19 College Rd. Unit A

GR_CITY GR_STATE GR_ZIP GR_COUNTRY


Fairbanks AK 99701-1702 US

GR_HOURS_OPEN GR_TIME_ZONE GR_AREA_CODE GR_TOLL_FREE_NU


MBER
8:00 AM - 5:00 PM Alaska 907

GR_PHONE GR_FAX GR_EMAIL GR_BRANCH_TYPE


(907) 458-6500 (907) 458-6502 brn.006@Grainger.com Branch

GR_STATE_KEY GR_BRANCH_ACTIVE_D GR_IS_ACTIVE


GR_BRANCH_TYPE_KEY ATE
2 3 09/18/06 12:00 AM 0
Branch Assoc
356|77455|A
GR_BRANCH_NAME GR_ASSOC_ZIP BRANCH_ZIP_STATUS
356 77455 A

Elaboracion de CSV
1. Comenzamos elaborar el csv de Branch_Proc por que se debe comenzar de manera jerarquica,
primero las entidades independientes, no se agregaron los atributos que correspondientes al adress de
PointOfService(address1,addres2,city,state,zip,country) por que se deben ser por separado .

INSERT_UPDATE Branch_proc;name[unique=true];
gr_branch_code;
gr_hours_open;
gr_time_zone;gr_area_code;
gr_toll_free_number;gr_phone;
gr_fax;gr_email;
type(code);
gr_branch_type_key;
gr_branch_state_key;
gr_branch_active_date;
gr_branch_is_active;

2. Siguiente es el Address con el name del del item branch_proc para hacer el match, con los
atributos faltantes que son:
GR_BRANCH_ADDRESS,GR_BRANCH_ADDRESS2,GR_CITY,GR_STATE,
GR_ZIP, GR_COUNTRY

INSERT_UPDATE Address;owner(PointOfService.name)[unique=true];
streetname;
streetnumber;
town;
district;
postalcode;
country(isocode)

3. Hacemos una actualizacion del Branch proc para que tome los datos de address.

UPDATE Branch_proc;name[unique=true];
type(code);
address(owner(Branch_proc.name));

4. Y por ultimo se hace el insert de los datos de Branch_assoc


INSERT_UPDATE Branch_assoc;
name(name);
gr_assoc_zip[unique=true];
branch_zip_status;

IMPEX
1. Una vez terminado el csv pasamos al hmc, en el organizador damos click en System > Tools >
Import
2. Se abrira un ventana nueva, damos click al icono de para ingresar la ubicacion del
archivo csv.
3. Una vez ingresado el archivo, le damos click en Start ubicado en la parte inferior derecha.
4. Y se ha ingresado satisfactoriamente los registros

Anda mungkin juga menyukai