<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Component cannot input complex Record in Talend Studio</title>
    <link>https://community.qlik.com/t5/Talend-Studio/Component-cannot-input-complex-Record/m-p/2251459#M148498</link>
    <description>&lt;P&gt;Hi @han zhen​&amp;nbsp;,&lt;/P&gt;&lt;P&gt;This is a bug that has been fixed and will be available on release 1.30.0.&lt;/P&gt;&lt;P&gt;best regards&lt;/P&gt;</description>
    <pubDate>Thu, 11 Feb 2021 15:53:32 GMT</pubDate>
    <dc:creator>undx</dc:creator>
    <dc:date>2021-02-11T15:53:32Z</dc:date>
    <item>
      <title>Component cannot input complex Record</title>
      <link>https://community.qlik.com/t5/Talend-Studio/Component-cannot-input-complex-Record/m-p/2251458#M148497</link>
      <description>&lt;P&gt;Thanks.​&lt;/P&gt;&lt;P&gt;A complex Talend Record (for example, the Record is stored in the A field of InputRecord) is no longer recorded when input as Input of the component developed by TCK (it became "Null", Talend The components provided by are fine).&lt;/P&gt;&lt;P&gt;​&lt;/P&gt;&lt;P&gt;For example, use talend component kit to create a simple Input Component (ObjectInput).&lt;/P&gt;&lt;P&gt;​&lt;/P&gt;&lt;P&gt;sources :&lt;/P&gt;&lt;P&gt;--------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;@Documentation(&lt;/P&gt;&lt;P&gt;"TODO fill the documentation for this source"&lt;/P&gt;&lt;P&gt;)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;public&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;class&lt;/P&gt;&lt;P&gt; ObjectInputSource &lt;/P&gt;&lt;P&gt;implements&lt;/P&gt;&lt;P&gt; Serializable {&lt;/P&gt;&lt;P&gt;    &lt;/P&gt;&lt;P&gt;private&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;final&lt;/P&gt;&lt;P&gt; ObjectInputMapperConfiguration configuration;&lt;/P&gt;&lt;P&gt;    &lt;/P&gt;&lt;P&gt;private&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;final&lt;/P&gt;&lt;P&gt; Demo3ComponentService service;&lt;/P&gt;&lt;P&gt;​&lt;/P&gt;&lt;P&gt;    &lt;/P&gt;&lt;P&gt;private&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;int&lt;/P&gt;&lt;P&gt; index = &lt;/P&gt;&lt;P&gt;0&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;​&lt;/P&gt;&lt;P&gt;    &lt;/P&gt;&lt;P&gt;public&lt;/P&gt;&lt;P&gt; ObjectInputSource(@Option(&lt;/P&gt;&lt;P&gt;"configuration"&lt;/P&gt;&lt;P&gt;) &lt;/P&gt;&lt;P&gt;final&lt;/P&gt;&lt;P&gt; ObjectInputMapperConfiguration configuration,&lt;/P&gt;&lt;P&gt;                        &lt;/P&gt;&lt;P&gt;final&lt;/P&gt;&lt;P&gt; Demo3ComponentService service) {&lt;/P&gt;&lt;P&gt;        &lt;/P&gt;&lt;P&gt;this&lt;/P&gt;&lt;P&gt;.configuration = configuration;&lt;/P&gt;&lt;P&gt;        &lt;/P&gt;&lt;P&gt;this&lt;/P&gt;&lt;P&gt;.service = service;&lt;/P&gt;&lt;P&gt;    }&lt;/P&gt;&lt;P&gt;​&lt;/P&gt;&lt;P&gt;    @PostConstruct&lt;/P&gt;&lt;P&gt;    &lt;/P&gt;&lt;P&gt;public&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;void&lt;/P&gt;&lt;P&gt; init() {&lt;/P&gt;&lt;P&gt;        index = &lt;/P&gt;&lt;P&gt;0&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;    }&lt;/P&gt;&lt;P&gt;​&lt;/P&gt;&lt;P&gt;    @Producer&lt;/P&gt;&lt;P&gt;    &lt;/P&gt;&lt;P&gt;public&lt;/P&gt;&lt;P&gt; ObjectInputRecord next() {&lt;/P&gt;&lt;P&gt;        &lt;/P&gt;&lt;P&gt;if&lt;/P&gt;&lt;P&gt; (index &amp;gt; &lt;/P&gt;&lt;P&gt;0&lt;/P&gt;&lt;P&gt;) {&lt;/P&gt;&lt;P&gt;            &lt;/P&gt;&lt;P&gt;return&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;null&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;        }&lt;/P&gt;&lt;P&gt;​&lt;/P&gt;&lt;P&gt;        index++;&lt;/P&gt;&lt;P&gt;​&lt;/P&gt;&lt;P&gt;        ObjectInputRecord obj = &lt;/P&gt;&lt;P&gt;new&lt;/P&gt;&lt;P&gt; ObjectInputRecord();&lt;/P&gt;&lt;P&gt;        obj.setAge(&lt;/P&gt;&lt;P&gt;35&lt;/P&gt;&lt;P&gt;);&lt;/P&gt;&lt;P&gt;        obj.setName(&lt;/P&gt;&lt;P&gt;"ObjectInputRecord"&lt;/P&gt;&lt;P&gt;);&lt;/P&gt;&lt;P&gt;        obj.setMarried(&lt;/P&gt;&lt;P&gt;true&lt;/P&gt;&lt;P&gt;);&lt;/P&gt;&lt;P&gt;        ObjConfiguration sub = &lt;/P&gt;&lt;P&gt;new&lt;/P&gt;&lt;P&gt; ObjConfiguration();&lt;/P&gt;&lt;P&gt;        sub.setObjName(&lt;/P&gt;&lt;P&gt;"sub name"&lt;/P&gt;&lt;P&gt;);&lt;/P&gt;&lt;P&gt;        obj.setObj(sub);&lt;/P&gt;&lt;P&gt;        System.out.println(obj);&lt;/P&gt;&lt;P&gt;        &lt;/P&gt;&lt;P&gt;return&lt;/P&gt;&lt;P&gt; obj;&lt;/P&gt;&lt;P&gt;    }&lt;/P&gt;&lt;P&gt;​&lt;/P&gt;&lt;P&gt;    @PreDestroy&lt;/P&gt;&lt;P&gt;    &lt;/P&gt;&lt;P&gt;public&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;void&lt;/P&gt;&lt;P&gt; release() {&lt;/P&gt;&lt;P&gt;    }&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;--------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;Among them, the definition of ObjectInputRecord is as follows:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;--------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;// this is the pojo which will be used to represent your data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;public&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;class&lt;/P&gt;&lt;P&gt; ObjectInputRecord &lt;/P&gt;&lt;P&gt;implements&lt;/P&gt;&lt;P&gt; Serializable {&lt;/P&gt;&lt;P&gt;    &lt;/P&gt;&lt;P&gt;private&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;static&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;final&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;long&lt;/P&gt;&lt;P&gt; serialVersionUID = &lt;/P&gt;&lt;P&gt;1L&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;​&lt;/P&gt;&lt;P&gt;    &lt;/P&gt;&lt;P&gt;private&lt;/P&gt;&lt;P&gt; String name;&lt;/P&gt;&lt;P&gt;    &lt;/P&gt;&lt;P&gt;private&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;int&lt;/P&gt;&lt;P&gt; age;&lt;/P&gt;&lt;P&gt;    &lt;/P&gt;&lt;P&gt;private&lt;/P&gt;&lt;P&gt; ObjConfiguration obj;&lt;/P&gt;&lt;P&gt;    &lt;/P&gt;&lt;P&gt;private&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;boolean&lt;/P&gt;&lt;P&gt; married;&lt;/P&gt;&lt;P&gt;​&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;​&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;public&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;class&lt;/P&gt;&lt;P&gt; ObjConfiguration &lt;/P&gt;&lt;P&gt;implements&lt;/P&gt;&lt;P&gt; Serializable {&lt;/P&gt;&lt;P&gt;    &lt;/P&gt;&lt;P&gt;private&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;static&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;final&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;long&lt;/P&gt;&lt;P&gt; serialVersionUID = &lt;/P&gt;&lt;P&gt;1L&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;​&lt;/P&gt;&lt;P&gt;    &lt;/P&gt;&lt;P&gt;private&lt;/P&gt;&lt;P&gt; String objName;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;--------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;Read the same content with different Components (Custom Component and the original Component of TOS DI) and output the information using System.out.println.&lt;/P&gt;&lt;P&gt;​&lt;/P&gt;&lt;P&gt;&amp;gt;&lt;/P&gt;&lt;P&gt;the original &lt;/P&gt;&lt;P&gt;Component&lt;/P&gt;&lt;P&gt;===============================================&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;com.dhc.wuxd.talend.demo.demo3.source.ObjectInputRecord@5ca17ab0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    in tJavaRow: row1.obj = {objName=sub name}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    in tJavaRow: row1.name = ObjectInputRecord&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    in tJavaRow: row1.age = 35.0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    in tJavaRow: row1.married = true&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;[statistics] disconnected&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;===============================================&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;gt;Custom &lt;/P&gt;&lt;P&gt;Component&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;===============================================&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Starting job objRecord at 16:45 27/01/2021.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;[statistics] connecting to socket on port 3869&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;[statistics] connected&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;com.dhc.wuxd.talend.demo.demo3.source.ObjectInputRecord@51650883&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;{"age":35.0,"married":true,"name":"ObjectInputRecord"}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   obj --&amp;gt; null&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   name --&amp;gt; ObjectInputRecord&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   age --&amp;gt; 35&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   getMarried --&amp;gt; true&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;[statistics] disconnected&lt;/P&gt;&lt;P&gt;​&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Job objRecord ended at 16:45 27/01/2021. [Exit code  = 0]&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;===============================================&lt;/P&gt;&lt;P&gt;I can read name \\ age \\ married, but I can't read ObjConfiguration obj.&lt;/P&gt;&lt;P&gt;​&lt;/P&gt;&lt;P&gt;Does anyone know how to achieve？Thank you.&lt;/P&gt;</description>
      <pubDate>Fri, 02 Jan 2026 14:45:42 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/Component-cannot-input-complex-Record/m-p/2251458#M148497</guid>
      <dc:creator>hzhen</dc:creator>
      <dc:date>2026-01-02T14:45:42Z</dc:date>
    </item>
    <item>
      <title>Re: Component cannot input complex Record</title>
      <link>https://community.qlik.com/t5/Talend-Studio/Component-cannot-input-complex-Record/m-p/2251459#M148498</link>
      <description>&lt;P&gt;Hi @han zhen​&amp;nbsp;,&lt;/P&gt;&lt;P&gt;This is a bug that has been fixed and will be available on release 1.30.0.&lt;/P&gt;&lt;P&gt;best regards&lt;/P&gt;</description>
      <pubDate>Thu, 11 Feb 2021 15:53:32 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/Component-cannot-input-complex-Record/m-p/2251459#M148498</guid>
      <dc:creator>undx</dc:creator>
      <dc:date>2021-02-11T15:53:32Z</dc:date>
    </item>
  </channel>
</rss>

