Dynamic column names using DIH (DataImportHandler)

Is there a way to create a dynamic column (as a key / value) using the return values ​​from the throw DIH (DataImportHandler) query?

For instance:

<entity name="foo" dataSource="my_database" query="select key,value from foo where id=${item.id}"> <field column="${foo.key}" value="${foo.value}" name="${foo.key}_s"/> </entity> 

??

+6
source share
1 answer

Use ScriptTransformer -

Example -

Data Configuration - Adding a Custom Field -

 <script><![CDATA[ function addfield(row){ var fieldName = row.get('key') + "_s" row.put(fieldName, row.get('value')); return row; } ]]></script> 

Entity mapping -

 <entity name="foo" dataSource="my_database" transformer="script:addfield" query="select key,value from foo where id=${item.id}"> ...... </entity> 
+8
source

Source: https://habr.com/ru/post/900206/


All Articles