{"id":66,"date":"2011-09-30T14:06:31","date_gmt":"2011-09-30T13:06:31","guid":{"rendered":"http:\/\/www.hman-projects.de\/?p=66"},"modified":"2011-09-30T14:30:55","modified_gmt":"2011-09-30T13:30:55","slug":"talend-open-studio-tos-variablen-und-etwas-java","status":"publish","type":"post","link":"https:\/\/www.hman-projects.de\/?p=66","title":{"rendered":"Talend Open Studio (TOS) &#8211; Variablen und etwas Java"},"content":{"rendered":"<h2>TOS Jobs kennen unterschiedliche Arten von Variablen<\/h2>\n<p>Um eine hohe Flexibilit\u00e4t in entwickelten Jobs zu erhalten versucht man den Job m\u00f6glichst mittels Parameter\u00fcbergaben zu steuern. bei TOS werden die Variablen in einem Context zusammengefa\u00dft und in einem File gespeichert. ..\u00a0 wie in alten &#8222;INI&#8220;-Files.<br \/>\nBeim Start des Jobs \u00fcbergibt man nun nur den Namen des Context-File, &#8230; by Default lautet der Name &#8222;Default&#8220;<br \/>\nSomit lassen sich Variablen statisch hinterlegen.<br \/>\nDas Context-File Default.context liegt sp\u00e4ter im Scriptverzeichnis.<\/p>\n<p>Context-Definition: hier die Variable &#8222;emails&#8220;<\/p>\n<p><a href=\"http:\/\/www.hman-projects.de\/wp-content\/uploads\/2011\/09\/contextfile_1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-69\" title=\"contextfile_1\" src=\"http:\/\/www.hman-projects.de\/wp-content\/uploads\/2011\/09\/contextfile_1.png\" alt=\"\" width=\"787\" height=\"179\" srcset=\"https:\/\/www.hman-projects.de\/wp-content\/uploads\/2011\/09\/contextfile_1.png 787w, https:\/\/www.hman-projects.de\/wp-content\/uploads\/2011\/09\/contextfile_1-300x68.png 300w\" sizes=\"(max-width: 787px) 100vw, 787px\" \/><\/a><\/p>\n<p>Context-Variablen nutzen:\u00a0\u00a0\u00a0 .. in irgendein Feld reingehen und mal STRG+SPACE <!--more-->dr\u00fccken. Es werden dann alle verf\u00fcgbaren Variablen angeboten.<br \/>\n<a href=\"http:\/\/www.hman-projects.de\/wp-content\/uploads\/2011\/09\/contextfile_2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-70\" title=\"contextfile_2\" src=\"http:\/\/www.hman-projects.de\/wp-content\/uploads\/2011\/09\/contextfile_2.png\" alt=\"\" width=\"691\" height=\"266\" srcset=\"https:\/\/www.hman-projects.de\/wp-content\/uploads\/2011\/09\/contextfile_2.png 691w, https:\/\/www.hman-projects.de\/wp-content\/uploads\/2011\/09\/contextfile_2-300x115.png 300w\" sizes=\"(max-width: 691px) 100vw, 691px\" \/><\/a><\/p>\n<p>und hier eingesetzt als Variable f\u00fcr den tSendMail-Baustein.<\/p>\n<p>&nbsp;<\/p>\n<h2>Dynamische Variablen<\/h2>\n<p>kann man im Job einfach generieren, z.B. aus:<\/p>\n<ul>\n<li>Spalten einer Row-Verbindung,<\/li>\n<li>aus den Variablen eines Bausteins<\/li>\n<li>Java und eines Bausteins &#8222;tIterateToFlow&#8220; oder &#8222;tForEach&#8220; passend generieren\n<ul>\n<li>tForEach kann vordefinierte Werte generieren und als Iteration verwendet werden<\/li>\n<li>tIterateToFlow kann einen eigens definierten &#8222;MAIN&#8220; &#8211; Output generieren. In den Component-Details kann man dazu die Spaltennamen der ROW und mittels JAVA dann die Werte definieren.<br \/>\n<a href=\"http:\/\/www.hman-projects.de\/wp-content\/uploads\/2011\/09\/tIterateToFlow_1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-68\" title=\"tIterateToFlow_1\" src=\"http:\/\/www.hman-projects.de\/wp-content\/uploads\/2011\/09\/tIterateToFlow_1.png\" alt=\"\" width=\"436\" height=\"52\" srcset=\"https:\/\/www.hman-projects.de\/wp-content\/uploads\/2011\/09\/tIterateToFlow_1.png 436w, https:\/\/www.hman-projects.de\/wp-content\/uploads\/2011\/09\/tIterateToFlow_1-300x35.png 300w\" sizes=\"(max-width: 436px) 100vw, 436px\" \/><\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><!--more--><\/p>\n<p>In den Jobs kann man sehr flexibel auf Variablen anderer Komponenten zur\u00fcckgreifen.<\/p>\n<p>Innerhalb eines Subjobs kann man dazu direkt die reine Java-Notation wie im Sourcecode verwenden. \u00dcber Subjobs hinweg muss man auf die globalMap zur\u00fcck greifen.<\/p>\n<p>Hier hilft bei der Wandlung von Datentypen auch etwas Java-Kenntniss:<\/p>\n<div>\u2022Object zu String<br \/>\n(&#8222;&#8220;+globalMap.get(&#8222;tFileExist_1_EXISTS&#8220;))<\/div>\n<div>\u2022Stringvergleich<br \/>\n(&#8222;&#8220;+globalMap.get(&#8222;tFileExist_1_EXISTS&#8220;)).equals(&#8222;false&#8220;)<\/div>\n<div>\n<ul>\n<li>R\u00fcckgriff auf Contextvariablen, einfach ohne Hochkomma!<br \/>\ncontext.custID<\/li>\n<li>R\u00fcckgriff auf Context-Variablen innerhalb von JAVA<br \/>\nString SQL = \u201cselect * from tickets where fk_customer=\u201c + context.custID + \u201c and ticket_status != 4 \u201c;<\/li>\n<li>R\u00fcckgriff auf Row-Variable:<br \/>\n(&#8222;&#8220;+globalMap.get(\u201erow1.Column0&#8220;))<\/li>\n<\/ul>\n<div>\n<ul>\n<li>\u00dcber globalMap.get(&#8222;row3.ERREICHBARKEIT&#8220;) erh\u00e4lt z.B. man das Objekt\n<div>Will man \u00fcberpr\u00fcfen, ob dieses Objekt einen bestimmten Integer-Wert einh\u00e4lt, so muss man in 2 Schritten pr\u00fcfen:<\/div>\n<div>A) Pr\u00fcfen != null<\/div>\n<p>B) Pr\u00fcfen ob der IntegerValue passt<\/li>\n<li><a href=\"http:\/\/www.hman-projects.de\/wp-content\/uploads\/2011\/09\/int_float_check.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-67\" title=\"int_float_check\" src=\"http:\/\/www.hman-projects.de\/wp-content\/uploads\/2011\/09\/int_float_check.png\" alt=\"\" width=\"590\" height=\"233\" srcset=\"https:\/\/www.hman-projects.de\/wp-content\/uploads\/2011\/09\/int_float_check.png 590w, https:\/\/www.hman-projects.de\/wp-content\/uploads\/2011\/09\/int_float_check-300x118.png 300w\" sizes=\"(max-width: 590px) 100vw, 590px\" \/><\/a><\/li>\n<\/ul>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>TOS Jobs kennen unterschiedliche Arten von Variablen Um eine hohe Flexibilit\u00e4t in entwickelten Jobs zu erhalten versucht man den Job m\u00f6glichst mittels Parameter\u00fcbergaben zu steuern. bei TOS werden die Variablen in einem Context zusammengefa\u00dft und in einem File gespeichert. ..\u00a0 wie in alten &#8222;INI&#8220;-Files. Beim Start des Jobs \u00fcbergibt man nun nur den Namen des [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[],"class_list":["post-66","post","type-post","status-publish","format-standard","hentry","category-etl-talend-open-studio"],"_links":{"self":[{"href":"https:\/\/www.hman-projects.de\/index.php?rest_route=\/wp\/v2\/posts\/66"}],"collection":[{"href":"https:\/\/www.hman-projects.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hman-projects.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hman-projects.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hman-projects.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=66"}],"version-history":[{"count":4,"href":"https:\/\/www.hman-projects.de\/index.php?rest_route=\/wp\/v2\/posts\/66\/revisions"}],"predecessor-version":[{"id":74,"href":"https:\/\/www.hman-projects.de\/index.php?rest_route=\/wp\/v2\/posts\/66\/revisions\/74"}],"wp:attachment":[{"href":"https:\/\/www.hman-projects.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=66"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hman-projects.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=66"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hman-projects.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=66"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}