{"id":9831,"date":"2016-04-20T12:10:27","date_gmt":"2016-04-20T16:10:27","guid":{"rendered":"http:\/\/www.iri.com\/blog\/?p=9831"},"modified":"2017-11-06T13:45:35","modified_gmt":"2017-11-06T18:45:35","slug":"creating-voracity-flows-using-existing-iri-scripts-part-2","status":"publish","type":"post","link":"https:\/\/beta.iri.com\/blog\/data-transformation2\/creating-voracity-flows-using-existing-iri-scripts-part-2\/","title":{"rendered":"Creating a Voracity Flow Using Existing IRI Scripts (Part 2 of 3)"},"content":{"rendered":"<p>This is the second in series of articles illustrating on how to use existing <a style=\"color: #1155cc; text-decoration: underline;\" href=\"http:\/\/www.iri.com\/products\/cosort\">IRI CoSor<\/a>t (SortCL) jobs in graphical <a style=\"color: #1155cc; text-decoration: underline;\" href=\"http:\/\/www.iri.com\/products\/voracity\">IRI Voracity<\/a> ETL workflows, or more simply, flows. In the <a href=\"http:\/\/www.iri.com\/blog\/iri\/iri-workbench\/creating-voracity-flows-using-existing-iri-scripts-part-1\/\">first article<\/a>, we dropped an existing <a style=\"color: #1155cc; text-decoration: underline;\" href=\"http:\/\/www.iri.com\/products\/cosort\/sortcl\">SortCL<\/a> job that processes month-end sales transactions into Voracity. Specifically, we:<\/p>\n<ol>\n<li>Created a flow diagram with a start block, connector, and transform mapping block representing the SortCL job script.<\/li>\n<li>Modified the Transform Mapping Diagram for that script by<br \/>\na. \u00a0deleting the output file Out_CashRecords.dat from the flow.<br \/>\nb. \u00a0adding an Action Key for the Sort.<\/li>\n<li>Saved the changes made in the diagram to the SortCL script, and created a batch file to run the job in the flow by \u201cExporting the Flow Component.&#8221;<\/li>\n<\/ol>\n<p>In this article, we will add another job script into a flow, or a \u201cflowlet.\u201d Below is that new SortCL script, MonthEndSales.scl:<\/p>\n<pre>\/STATISTICS=monthendsales.stat\r\n\/INFILE=C:\/IRI\/CoSort95\/workbench\/workspaceFlow\/MonthEnd\/AllSales.dat\r\n     \/PROCESS=RECORD\r\n     \/ALIAS=AllSales\r\n     \/FIELD=(DEPT, TYPE=ASCII, POSITION=1, SEPARATOR=\u201d|\u201d)\r\n     \/FIELD=(YEARMONTH, TYPE=ASCII, POSITION=2, SEPARATOR=\u201d|\u201d)\r\n     \/FIELD=(TRANSAMT, TYPE=NUMERIC, POSITION=3, SEPARATOR=\u201d|\u201d, PRECISION=2)\r\n\r\n\/SORT\r\n     \/KEY=(DEPT, TYPE=ASCII)\r\n\r\n\/OUTFILE=\u201dNIGHTLY.SALESBYDEPT;DSN=Oracle_qa2;\u201d\r\n     \/PROCESS=ODBC\r\n     \/CREATE\r\n     \/FIELD=(DEPT, TYPE=ASCII, POSITION=1, SEPARATOR=\u201d|\u201d)\r\n     \/FIELD=(YEARMONTH, TYPE=ASCII, POSITION=2, SEPARATOR=\u201d|\u201d)\r\n     \/FIELD=(SALESAMT, TYPE=NUMERIC, POSITION=3, SEPARATOR=\u201d|\u201d, PRECISION=2)\r\n     \/SUM SALESAMT FROM TRANSAMT BREAK DEPT\r\n<\/pre>\n<p>Drag the script file\u2019s icon from the <span style=\"font-weight: bold;\">Project Explorer<\/span> to the right of the Transform Mapping Block named SortTransSelect.scl to create the Transform Mapping Block named MonthEndSales.scl.<\/p>\n<p style=\"font-size: 12pt; font-weight: bold;\"><span style=\"font-size: 12pt; font-weight: bold;\"><span style=\"font-size: 12pt; font-weight: bold;\">Connect the Blocks<\/span><\/span><\/p>\n<p>Notice that the input file for MonthEndSales.scl is AllSales.dat, which is also one of the targets in SortTransSelect.scl. Using the <span style=\"font-weight: bold;\">Connection<\/span> component from the <span style=\"font-weight: bold;\">Palette<\/span>, connect the icon for Out_AllSales.dat in the SortTransSelect.scl block, to In_AllSales.dat in the MonthEndSales.scl block, by clicking on the component, then each file icon. The order that you click the blocks determines the direction of the connection arrow.<\/p>\n<p>The MonthEnd Flow Diagram now appears as below with two transform mapping blocks:<\/p>\n<p style=\"font-family: Calibri;\"><a title=\"Creating Voracity Flows Using Existing IRI Scripts \u2013 Part 2 - Susan Gegner 0.jpg\" href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/06\/Creating-Voracity-Flows-Using-Existing-IRI-Scripts-\u2013-Part-2-Susan-Gegner-0.jpg\" rel=\"prettyPhoto\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"width: 624px; height: 336px;\" title=\"MonthEnd Flow Diagram\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/06\/t_Creating-Voracity-Flows-Using-Existing-IRI-Scripts-\u2013-Part-2-Susan-Gegner-0.jpg\" alt=\"MonthEnd Flow Diagram\" width=\"624\" height=\"336\" \/><\/a><\/p>\n<p>Double-click on the block for MonthEndSales.scl to create the MonthEndSales Mapping Diagram. This is a detailed diagram of the script MonthEndSales.scl.<\/p>\n<p style=\"font-family: Calibri;\"><a title=\"Creating Voracity Flows Using Existing IRI Scripts \u2013 Part 2 - Susan Gegner 1.jpg\" href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/06\/Creating-Voracity-Flows-Using-Existing-IRI-Scripts-\u2013-Part-2-Susan-Gegner-1.jpg\" rel=\"prettyPhoto\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"width: 624px; height: 378px;\" title=\"Detailed diagram of the script MonthEndSales.scl\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/06\/t_Creating-Voracity-Flows-Using-Existing-IRI-Scripts-\u2013-Part-2-Susan-Gegner-1.jpg\" alt=\"Detailed diagram of the script MonthEndSales.scl\" width=\"624\" height=\"378\" \/><\/a><\/p>\n<p style=\"font-size: 12pt;\"><span style=\"font-size: 12pt; font-weight: bold;\"><span style=\"font-size: 12pt; font-weight: bold;\">Append (Don\u2019t Truncate) the Table<\/span><\/span><\/p>\n<p>Looking at the <span style=\"font-weight: bold;\">Output Data<\/span> block, the <span style=\"font-weight: bold;\">Section Options<\/span> block of the output NIGHTLY.SALESBYDEPT has <span style=\"font-weight: bold;\">Process ODBC<\/span>. This means the output will be loaded into a database for the named output. The <span style=\"font-weight: bold;\">Section Options<\/span> block also contains the option <span style=\"font-weight: bold;\">Output Write Type \/Create<\/span>. This directs the job to truncate the table before loading the new records. Instead, we want to keep the existing records and add the new records to the table.<span style=\"line-height: 1.5;\">\u00a0<\/span><\/p>\n<p>Click <span style=\"font-weight: bold;\">Output Write Type<\/span> in the <span style=\"font-weight: bold;\">Section Options<\/span>. In the <span style=\"font-weight: bold;\">Properties View<\/span> on the <span style=\"font-weight: bold;\">Base<\/span> tab, select <span style=\"font-weight: bold;\">\/APPEND<\/span> from the drop-down. Or double-click <span style=\"font-weight: bold;\">Output<\/span> <span style=\"font-weight: bold;\">Write Type<\/span> and select <span style=\"font-weight: bold;\">\/APPEND<\/span> from the <span style=\"font-weight: bold;\">Output WriteType<\/span> dialog, and click <span style=\"font-weight: bold;\">Finish<\/span>. In <span style=\"font-weight: bold;\">Section Options<\/span>, <span style=\"font-weight: bold;\">Output Write Type<\/span> now displays <span style=\"font-weight: bold;\">\/APPEND<\/span>.<\/p>\n<p style=\"font-size: 12pt;\"><span style=\"font-size: 12pt; font-weight: bold;\"><span style=\"font-size: 12pt; font-weight: bold;\">Create a New Target with Aggregation<\/span><\/span><\/p>\n<p>The output is performing a <span style=\"font-weight: bold;\">Sum <\/span>from the input field TRANSAMT and placing the value in the column named SALESAMT in the table NIGHTLY.SALESBYDEPT. The aggregation for the table has a BREAK condition for each time a new department is encountered, so the monthly subtotals for each department can load into the table.<\/p>\n<p>It was decided that a monthly grand total for sales will load to a separate table called MONTHENDSALES. Therefore, an aggregation needs to be created similar to the one in SALESBYDEPT, but without a BREAK condition.<\/p>\n<p>Drag an <span style=\"font-weight: bold;\">Output<\/span> <span style=\"font-weight: bold;\">ODBC<\/span> from the <span style=\"font-weight: bold;\">Palette<\/span> into the <span style=\"font-weight: bold;\">Output Data<\/span> block. This brings up the <span style=\"font-weight: bold;\">Table Selection<\/span> dialog.<\/p>\n<p>Select your <span style=\"font-weight: bold;\">Connection profile<\/span> from the drop-down, check the box for the table that will receive the data, and click <span style=\"font-weight: bold;\">Finish<\/span>.<\/p>\n<p align=\"center\"><a title=\"Creating Voracity Flows Using Existing IRI Scripts \u2013 Part 2 - Susan Gegner 2.jpg\" href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/06\/Creating-Voracity-Flows-Using-Existing-IRI-Scripts-\u2013-Part-2-Susan-Gegner-2.jpg\" rel=\"prettyPhoto\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"width: 448px; height: 369px;\" title=\"Get Database and Table Information\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/06\/t_Creating-Voracity-Flows-Using-Existing-IRI-Scripts-\u2013-Part-2-Susan-Gegner-2.jpg\" alt=\"Get Database and Table Information\" width=\"448\" height=\"369\" \/><\/a><\/p>\n<p>A block for the output NIGHTLY.MONTHENDSALES has now been created and links the field AllSales.YEARMONTH to the YEARMONTH column in the table NIGHTLY.MONTHENDSALES. The field SALESAMT needs to be deleted because we are going to define it with an aggregation. Right-click on the field SALESAMT, select <span style=\"font-weight: bold;\">Edit<\/span> &gt; <span style=\"font-weight: bold;\">Delete from Model<\/span>.<\/p>\n<p>From <span style=\"font-weight: bold;\">Field Options<\/span> in the <span style=\"font-weight: bold;\">Palette<\/span>, drag the <span style=\"font-weight: bold;\">Aggregation <\/span>to the blue field block for NIGHTLY.MONTHENDSALES. Be sure the block is large enough to add this to the bottom of the field list. The <span style=\"font-weight: bold;\">Aggregation <\/span>dialog pops up.<\/p>\n<p>Click the <span style=\"font-weight: bold;\">Edit<\/span> button next to the <span style=\"font-weight: bold;\">Field Name<\/span>, and change the <span style=\"font-weight: bold;\">Field Name<\/span> from AGGREGATION to SALESAMT. Change the <span style=\"font-weight: bold;\">Data Type<\/span> to <span style=\"font-weight: bold;\">NUMERIC<\/span>, change the <span style=\"font-weight: bold;\">Precision<\/span> to 2 (for 2 decimal places), and click <span style=\"font-weight: bold;\">OK<\/span>.<\/p>\n<p align=\"center\"><a title=\"Creating Voracity Flows Using Existing IRI Scripts \u2013 Part 2 - Susan Gegner 3.jpg\" href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/06\/Creating-Voracity-Flows-Using-Existing-IRI-Scripts-\u2013-Part-2-Susan-Gegner-3.jpg\" rel=\"prettyPhoto\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"width: 412px; height: 521px;\" title=\"Field Editor\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/06\/t_Creating-Voracity-Flows-Using-Existing-IRI-Scripts-\u2013-Part-2-Susan-Gegner-3.jpg\" alt=\"Field Editor\" width=\"412\" height=\"521\" \/><\/a><\/p>\n<p>This takes you back to the <span style=\"font-weight: bold;\">Aggregation<\/span> dialog. Under <span style=\"font-weight: bold;\">From<\/span>, select the <span style=\"font-weight: bold;\">Field<\/span> radio button &gt; choose the field TRANSAMT &gt; click <span style=\"font-weight: bold;\">OK<\/span>.<\/p>\n<p align=\"center\"><a title=\"Creating Voracity Flows Using Existing IRI Scripts \u2013 Part 2 - Susan Gegner 4.jpg\" href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/06\/Creating-Voracity-Flows-Using-Existing-IRI-Scripts-\u2013-Part-2-Susan-Gegner-4.jpg\" rel=\"prettyPhoto\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"width: 441px; height: 377px;\" title=\"Aggregation\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/06\/t_Creating-Voracity-Flows-Using-Existing-IRI-Scripts-\u2013-Part-2-Susan-Gegner-4.jpg\" alt=\"Aggregation\" width=\"441\" height=\"377\" \/><\/a><\/p>\n<p>Now, connect the field AllSales.TRANSAMT to the column SALESAMT by clicking on <span style=\"font-weight: bold;\">Mapping Connection<\/span> in the <span style=\"font-weight: bold;\">Palette<\/span>, then on the field AllSales.TRANSAMT in the <span style=\"font-weight: bold;\">Sort<\/span> box, and finally on the column SALESAMT in the table NIGHTLY.MONTHENDSALES.<\/p>\n<p style=\"font-size: 12pt; font-weight: bold;\"><span style=\"font-size: 12pt; font-weight: bold;\"><span style=\"font-size: 12pt; font-weight: bold;\">Save the Changes<\/span><\/span><\/p>\n<p>Right-click in the white background of the diagram, select <span style=\"font-weight: bold;\">IRI Diagram Actions<\/span> &gt; <span style=\"font-weight: bold;\">Export Flow Component<\/span>, then verify that the <span style=\"font-weight: bold;\">File name<\/span> is MonthEndSales.scl, and click <span style=\"font-weight: bold;\">Finish<\/span>.<\/p>\n<p>The MonthEndSales Mapping Diagram now appears as follows:<\/p>\n<p><a title=\"Creating Voracity Flows Using Existing IRI Scripts \u2013 Part 2 - Susan Gegner 5.jpg\" href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/06\/Creating-Voracity-Flows-Using-Existing-IRI-Scripts-\u2013-Part-2-Susan-Gegner-5.jpg\" rel=\"prettyPhoto\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"width: 624px; height: 290px;\" title=\"MonthEndSales Mapping Diagram \" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/06\/t_Creating-Voracity-Flows-Using-Existing-IRI-Scripts-\u2013-Part-2-Susan-Gegner-5.jpg\" alt=\"MonthEndSales Mapping Diagram \" width=\"624\" height=\"290\" \/><\/a><\/p>\n<p>With the edits complete, go back to the flow diagram and right-click the flowlet to create the .bat file by <span style=\"font-weight: bold;\">Exporting Flow Component<\/span>. The .bat file will contain commands to execute the blocks in the flow in sequence, beginning with the <span style=\"font-weight: bold;\">Start <\/span>block. It can be executed from within Workbench directly, through its task scheduler, using any third-party job scheduler, or from the command line.<\/p>\n<p>In the <a href=\"http:\/\/www.iri.com\/blog\/iri\/iri-workbench\/creating-voracity-flows-using-existing-iri-scripts-part-3\/\">next article<\/a>, we will expand the flow by adding:<\/p>\n<ul>\n<li><span style=\"font-weight: bold;\">Command Line<\/span> blocks where we can add any commands that can be executed on the command line of the operating system<\/li>\n<li>A <span style=\"font-weight: bold;\">Decision <\/span>block where the path that is followed by the flow is decided by whether a condition is true or false<\/li>\n<\/ul>\n<p>For help with your flow, email <span style=\"color: #1155cc; text-decoration: underline;\">voracity@iri.com.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This is the second in series of articles illustrating on how to use existing IRI CoSort (SortCL) jobs in graphical IRI Voracity ETL workflows, or more simply, flows. In the first article, we dropped an existing SortCL job that processes month-end sales transactions into Voracity. Specifically, we: Created a flow diagram with a start block,<\/p>\n<div><a class=\"btn-filled btn\" href=\"https:\/\/beta.iri.com\/blog\/data-transformation2\/creating-voracity-flows-using-existing-iri-scripts-part-2\/\" title=\"Creating a Voracity Flow Using Existing IRI Scripts (Part 2 of 3)\">Read More<\/a><\/div>\n","protected":false},"author":10,"featured_media":9833,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"categories":[1,776,91],"tags":[1095,71,100,1059,1093,1005,92,546,789,850,537,50,1096,68,977,1094],"class_list":["post-9831","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-data-transformation2","category-etl","category-iri-workbench","tag-action-key","tag-eclipse","tag-etl","tag-field-editor","tag-flow","tag-flow-diagram","tag-gui","tag-iri-cosort","tag-iri-voracity","tag-iri-workbench","tag-job-script","tag-oracle","tag-sort-key","tag-sortcl","tag-sql","tag-transform-mapping-diagram"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v23.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Creating a Voracity Flow Using Existing IRI Scripts (Part 2 of 3) - IRI<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/beta.iri.com\/blog\/data-transformation2\/creating-voracity-flows-using-existing-iri-scripts-part-2\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Creating a Voracity Flow Using Existing IRI Scripts (Part 2 of 3) - IRI\" \/>\n<meta property=\"og:description\" content=\"This is the second in series of articles illustrating on how to use existing IRI CoSort (SortCL) jobs in graphical IRI Voracity ETL workflows, or more simply, flows. In the first article, we dropped an existing SortCL job that processes month-end sales transactions into Voracity. Specifically, we: Created a flow diagram with a start block,Read More\" \/>\n<meta property=\"og:url\" content=\"https:\/\/beta.iri.com\/blog\/data-transformation2\/creating-voracity-flows-using-existing-iri-scripts-part-2\/\" \/>\n<meta property=\"og:site_name\" content=\"IRI\" \/>\n<meta property=\"article:published_time\" content=\"2016-04-20T16:10:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-11-06T18:45:35+00:00\" \/>\n<meta name=\"author\" content=\"Susan Gegner\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Susan Gegner\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/beta.iri.com\/blog\/data-transformation2\/creating-voracity-flows-using-existing-iri-scripts-part-2\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/beta.iri.com\/blog\/data-transformation2\/creating-voracity-flows-using-existing-iri-scripts-part-2\/\"},\"author\":{\"name\":\"Susan Gegner\",\"@id\":\"https:\/\/beta.iri.com\/blog\/#\/schema\/person\/87be5da567628ab9396ca81170f36d63\"},\"headline\":\"Creating a Voracity Flow Using Existing IRI Scripts (Part 2 of 3)\",\"datePublished\":\"2016-04-20T16:10:27+00:00\",\"dateModified\":\"2017-11-06T18:45:35+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/beta.iri.com\/blog\/data-transformation2\/creating-voracity-flows-using-existing-iri-scripts-part-2\/\"},\"wordCount\":912,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/beta.iri.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/beta.iri.com\/blog\/data-transformation2\/creating-voracity-flows-using-existing-iri-scripts-part-2\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/06\/Creating-Voracity-Flows-Using-Existing-IRI-Scripts-\u2013-Part-2-Susan-Gegner-0.jpg\",\"keywords\":[\"action key\",\"Eclipse\",\"ETL\",\"field editor\",\"flow\",\"flow diagram\",\"GUI\",\"IRI CoSort\",\"IRI Voracity\",\"IRI Workbench\",\"job script\",\"Oracle\",\"sort key\",\"SortCL\",\"SQL\",\"transform mapping diagram\"],\"articleSection\":[\"Data Transformation\",\"ETL\",\"IRI Workbench\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/beta.iri.com\/blog\/data-transformation2\/creating-voracity-flows-using-existing-iri-scripts-part-2\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/beta.iri.com\/blog\/data-transformation2\/creating-voracity-flows-using-existing-iri-scripts-part-2\/\",\"url\":\"https:\/\/beta.iri.com\/blog\/data-transformation2\/creating-voracity-flows-using-existing-iri-scripts-part-2\/\",\"name\":\"Creating a Voracity Flow Using Existing IRI Scripts (Part 2 of 3) - IRI\",\"isPartOf\":{\"@id\":\"https:\/\/beta.iri.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/beta.iri.com\/blog\/data-transformation2\/creating-voracity-flows-using-existing-iri-scripts-part-2\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/beta.iri.com\/blog\/data-transformation2\/creating-voracity-flows-using-existing-iri-scripts-part-2\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/06\/Creating-Voracity-Flows-Using-Existing-IRI-Scripts-\u2013-Part-2-Susan-Gegner-0.jpg\",\"datePublished\":\"2016-04-20T16:10:27+00:00\",\"dateModified\":\"2017-11-06T18:45:35+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/beta.iri.com\/blog\/data-transformation2\/creating-voracity-flows-using-existing-iri-scripts-part-2\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/beta.iri.com\/blog\/data-transformation2\/creating-voracity-flows-using-existing-iri-scripts-part-2\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/beta.iri.com\/blog\/data-transformation2\/creating-voracity-flows-using-existing-iri-scripts-part-2\/#primaryimage\",\"url\":\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/06\/Creating-Voracity-Flows-Using-Existing-IRI-Scripts-\u2013-Part-2-Susan-Gegner-0.jpg\",\"contentUrl\":\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/06\/Creating-Voracity-Flows-Using-Existing-IRI-Scripts-\u2013-Part-2-Susan-Gegner-0.jpg\",\"width\":624,\"height\":337},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/beta.iri.com\/blog\/data-transformation2\/creating-voracity-flows-using-existing-iri-scripts-part-2\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/beta.iri.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Creating a Voracity Flow Using Existing IRI Scripts (Part 2 of 3)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/beta.iri.com\/blog\/#website\",\"url\":\"https:\/\/beta.iri.com\/blog\/\",\"name\":\"IRI\",\"description\":\"Total Data Management Blog\",\"publisher\":{\"@id\":\"https:\/\/beta.iri.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/beta.iri.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/beta.iri.com\/blog\/#organization\",\"name\":\"IRI\",\"url\":\"https:\/\/beta.iri.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/beta.iri.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2019\/02\/iri-logo-total-data-management-small-1.png\",\"contentUrl\":\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2019\/02\/iri-logo-total-data-management-small-1.png\",\"width\":750,\"height\":206,\"caption\":\"IRI\"},\"image\":{\"@id\":\"https:\/\/beta.iri.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/beta.iri.com\/blog\/#\/schema\/person\/87be5da567628ab9396ca81170f36d63\",\"name\":\"Susan Gegner\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/beta.iri.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/2b1ca5592a65d44483351292cf1ae00a?s=96&d=blank&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/2b1ca5592a65d44483351292cf1ae00a?s=96&d=blank&r=g\",\"caption\":\"Susan Gegner\"},\"url\":\"https:\/\/beta.iri.com\/blog\/author\/susang\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Creating a Voracity Flow Using Existing IRI Scripts (Part 2 of 3) - IRI","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/beta.iri.com\/blog\/data-transformation2\/creating-voracity-flows-using-existing-iri-scripts-part-2\/","og_locale":"en_US","og_type":"article","og_title":"Creating a Voracity Flow Using Existing IRI Scripts (Part 2 of 3) - IRI","og_description":"This is the second in series of articles illustrating on how to use existing IRI CoSort (SortCL) jobs in graphical IRI Voracity ETL workflows, or more simply, flows. In the first article, we dropped an existing SortCL job that processes month-end sales transactions into Voracity. Specifically, we: Created a flow diagram with a start block,Read More","og_url":"https:\/\/beta.iri.com\/blog\/data-transformation2\/creating-voracity-flows-using-existing-iri-scripts-part-2\/","og_site_name":"IRI","article_published_time":"2016-04-20T16:10:27+00:00","article_modified_time":"2017-11-06T18:45:35+00:00","author":"Susan Gegner","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Susan Gegner","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/beta.iri.com\/blog\/data-transformation2\/creating-voracity-flows-using-existing-iri-scripts-part-2\/#article","isPartOf":{"@id":"https:\/\/beta.iri.com\/blog\/data-transformation2\/creating-voracity-flows-using-existing-iri-scripts-part-2\/"},"author":{"name":"Susan Gegner","@id":"https:\/\/beta.iri.com\/blog\/#\/schema\/person\/87be5da567628ab9396ca81170f36d63"},"headline":"Creating a Voracity Flow Using Existing IRI Scripts (Part 2 of 3)","datePublished":"2016-04-20T16:10:27+00:00","dateModified":"2017-11-06T18:45:35+00:00","mainEntityOfPage":{"@id":"https:\/\/beta.iri.com\/blog\/data-transformation2\/creating-voracity-flows-using-existing-iri-scripts-part-2\/"},"wordCount":912,"commentCount":0,"publisher":{"@id":"https:\/\/beta.iri.com\/blog\/#organization"},"image":{"@id":"https:\/\/beta.iri.com\/blog\/data-transformation2\/creating-voracity-flows-using-existing-iri-scripts-part-2\/#primaryimage"},"thumbnailUrl":"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/06\/Creating-Voracity-Flows-Using-Existing-IRI-Scripts-\u2013-Part-2-Susan-Gegner-0.jpg","keywords":["action key","Eclipse","ETL","field editor","flow","flow diagram","GUI","IRI CoSort","IRI Voracity","IRI Workbench","job script","Oracle","sort key","SortCL","SQL","transform mapping diagram"],"articleSection":["Data Transformation","ETL","IRI Workbench"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/beta.iri.com\/blog\/data-transformation2\/creating-voracity-flows-using-existing-iri-scripts-part-2\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/beta.iri.com\/blog\/data-transformation2\/creating-voracity-flows-using-existing-iri-scripts-part-2\/","url":"https:\/\/beta.iri.com\/blog\/data-transformation2\/creating-voracity-flows-using-existing-iri-scripts-part-2\/","name":"Creating a Voracity Flow Using Existing IRI Scripts (Part 2 of 3) - IRI","isPartOf":{"@id":"https:\/\/beta.iri.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/beta.iri.com\/blog\/data-transformation2\/creating-voracity-flows-using-existing-iri-scripts-part-2\/#primaryimage"},"image":{"@id":"https:\/\/beta.iri.com\/blog\/data-transformation2\/creating-voracity-flows-using-existing-iri-scripts-part-2\/#primaryimage"},"thumbnailUrl":"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/06\/Creating-Voracity-Flows-Using-Existing-IRI-Scripts-\u2013-Part-2-Susan-Gegner-0.jpg","datePublished":"2016-04-20T16:10:27+00:00","dateModified":"2017-11-06T18:45:35+00:00","breadcrumb":{"@id":"https:\/\/beta.iri.com\/blog\/data-transformation2\/creating-voracity-flows-using-existing-iri-scripts-part-2\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/beta.iri.com\/blog\/data-transformation2\/creating-voracity-flows-using-existing-iri-scripts-part-2\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/beta.iri.com\/blog\/data-transformation2\/creating-voracity-flows-using-existing-iri-scripts-part-2\/#primaryimage","url":"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/06\/Creating-Voracity-Flows-Using-Existing-IRI-Scripts-\u2013-Part-2-Susan-Gegner-0.jpg","contentUrl":"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/06\/Creating-Voracity-Flows-Using-Existing-IRI-Scripts-\u2013-Part-2-Susan-Gegner-0.jpg","width":624,"height":337},{"@type":"BreadcrumbList","@id":"https:\/\/beta.iri.com\/blog\/data-transformation2\/creating-voracity-flows-using-existing-iri-scripts-part-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/beta.iri.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Creating a Voracity Flow Using Existing IRI Scripts (Part 2 of 3)"}]},{"@type":"WebSite","@id":"https:\/\/beta.iri.com\/blog\/#website","url":"https:\/\/beta.iri.com\/blog\/","name":"IRI","description":"Total Data Management Blog","publisher":{"@id":"https:\/\/beta.iri.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/beta.iri.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/beta.iri.com\/blog\/#organization","name":"IRI","url":"https:\/\/beta.iri.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/beta.iri.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2019\/02\/iri-logo-total-data-management-small-1.png","contentUrl":"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2019\/02\/iri-logo-total-data-management-small-1.png","width":750,"height":206,"caption":"IRI"},"image":{"@id":"https:\/\/beta.iri.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/beta.iri.com\/blog\/#\/schema\/person\/87be5da567628ab9396ca81170f36d63","name":"Susan Gegner","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/beta.iri.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/2b1ca5592a65d44483351292cf1ae00a?s=96&d=blank&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2b1ca5592a65d44483351292cf1ae00a?s=96&d=blank&r=g","caption":"Susan Gegner"},"url":"https:\/\/beta.iri.com\/blog\/author\/susang\/"}]}},"jetpack_featured_media_url":"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/06\/Creating-Voracity-Flows-Using-Existing-IRI-Scripts-\u2013-Part-2-Susan-Gegner-0.jpg","_links":{"self":[{"href":"https:\/\/beta.iri.com\/blog\/wp-json\/wp\/v2\/posts\/9831"}],"collection":[{"href":"https:\/\/beta.iri.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/beta.iri.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/beta.iri.com\/blog\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/beta.iri.com\/blog\/wp-json\/wp\/v2\/comments?post=9831"}],"version-history":[{"count":10,"href":"https:\/\/beta.iri.com\/blog\/wp-json\/wp\/v2\/posts\/9831\/revisions"}],"predecessor-version":[{"id":11462,"href":"https:\/\/beta.iri.com\/blog\/wp-json\/wp\/v2\/posts\/9831\/revisions\/11462"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/beta.iri.com\/blog\/wp-json\/wp\/v2\/media\/9833"}],"wp:attachment":[{"href":"https:\/\/beta.iri.com\/blog\/wp-json\/wp\/v2\/media?parent=9831"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/beta.iri.com\/blog\/wp-json\/wp\/v2\/categories?post=9831"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/beta.iri.com\/blog\/wp-json\/wp\/v2\/tags?post=9831"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}