Hello
I want to import the product data, I have the data in a csv flat file
In this case I have a problem with the productSubTypeSelect field, the idea is that the person who fills out the file does not write the subTypeSelect codes, such as 1, 2 or 3, but rather writes data that is more understandable for humans such as: « Finished product » instead of the number 1
I understand that I configure this in an xml file, but I don’t know how to bind
<?xml version="1.0" encoding="UTF-8"?>
<csv-inputs xmlns="http://axelor.com/xml/ns/data-import"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://axelor.com/xml/ns/data-import http://axelor.com/xml/ns/data-import/data-import_6.1.xsd">
<input file="base_product_ejemplo.csv" separator=";" type="com.axelor.apps.base.db.Product"
search="self.importId = :importId" call="com.axelor.csv.script.ImportProduct:importProduct">
<bind to="startDate" eval="call:com.axelor.csv.script.ImportDateTime:importDate(startDate)"
column="startDate"/>
<bind to="createdOn" eval="call:com.axelor.csv.script.ImportDateTime:importDate(startDate)"
column="startDate"/>
<bind to="netMass" eval="1" if="productTypeSelect == 'storable' && netMass == null"/>
<bind to="grossMass" eval="1"
if="productTypeSelect == 'storable' && grossMass == null"/>
<bind to="isShippingCostsProduct" column="isShippingCostsProduct"
eval="isShippingCostsProduct ? isShippingCostsProduct : 'false'"/>
</input>
</csv-inputs>
I have managed to do it with the eval function, but I am asking for 3 values that are fixed, and the idea is for it to be automated and work for any value
<?xml version="1.0" encoding="UTF-8"?>
<csv-inputs xmlns="http://axelor.com/xml/ns/data-import"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://axelor.com/xml/ns/data-import http://axelor.com/xml/ns/data-import/data-import_6.1.xsd">
<input file="base_product_ejemplo.csv" separator=";" type="com.axelor.apps.base.db.Product"
search="self.importId = :importId" call="com.axelor.csv.script.ImportProduct:importProduct">
<bind to="productSubTypeSelect" column="productSubTypeSelect_item"
eval="productSubTypeSelect_item == 'Finished product'? 1 : (productSubTypeSelect_item == 'Semi-finished product' ? 2 : (productSubTypeSelect_item == 'Component' ? 3 : -1 ))"/>
<bind to="startDate" eval="call:com.axelor.csv.script.ImportDateTime:importDate(startDate)"
column="startDate"/>
<bind to="createdOn" eval="call:com.axelor.csv.script.ImportDateTime:importDate(startDate)"
column="startDate"/>
<bind to="netMass" eval="1" if="productTypeSelect == 'storable' && netMass == null"/>
<bind to="grossMass" eval="1"
if="productTypeSelect == 'storable' && grossMass == null"/>
<bind to="isShippingCostsProduct" column="isShippingCostsProduct"
eval="isShippingCostsProduct ? isShippingCostsProduct : 'false'"/>
</input>
</csv-inputs>