{"id":10297,"date":"2016-07-27T14:05:59","date_gmt":"2016-07-27T18:05:59","guid":{"rendered":"http:\/\/www.iri.com\/blog\/?p=10297"},"modified":"2024-07-22T10:06:08","modified_gmt":"2024-07-22T14:06:08","slug":"creating-a-voracity-flow-from-the-palette-part-2-of-2","status":"publish","type":"post","link":"https:\/\/www.iri.com\/blog\/data-protection\/creating-a-voracity-flow-from-the-palette-part-2-of-2\/","title":{"rendered":"Creating a Voracity Flow from the Palette (Part 2 of 2)"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">This is the second of two articles on creating a new\u00a0<\/span><a href=\"http:\/\/www.iri.com\/products\/voracity\"><span style=\"font-weight: 400;\">IRI Voracity\u00ae<\/span><\/a><span style=\"font-weight: 400;\">\u00a0ETL job flow from the job design <\/span><b>Palette <\/b><span style=\"font-weight: 400;\">in the <\/span><span style=\"font-weight: 400;\"><a href=\"http:\/\/www.iri.com\/products\/workbench\">IRI Workbench<\/a><\/span><span style=\"font-weight: 400;\">, built on Eclipse. Next, we will add more components to the existing flow, started in <\/span><a href=\"http:\/\/www.iri.com\/blog\/data-protection\/creating-a-voracity-flow-from-the-palette-part-1-of-2\/\"><span style=\"font-weight: 400;\">part 1<\/span><\/a><span style=\"font-weight: 400;\">, where we:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">created a basic flowlet<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">dragged a <\/span><b>Transform Mapping Block<\/b><span style=\"font-weight: 400;\"> into the flowlet<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">defined the <\/span><b>Input Data<\/b><span style=\"font-weight: 400;\"> after dragging the <\/span><b>ODBC <\/b><span style=\"font-weight: 400;\">icon into the <\/span><b>Input Data<\/b><span style=\"font-weight: 400;\"> block<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">defined the <\/span><b>Action <\/b><span style=\"font-weight: 400;\">after dragging the <\/span><b>Sort <\/b><span style=\"font-weight: 400;\">icon into the <\/span><b>Action <\/b><span style=\"font-weight: 400;\">block<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">defined the <\/span><b>Output Data<\/b><span style=\"font-weight: 400;\"> using the <\/span><b>Target Field Layout<\/b><span style=\"font-weight: 400;\"> editor after dragging the <\/span><b>File<\/b><span style=\"font-weight: 400;\"> icon into the <\/span><b>Output Data<\/b><span style=\"font-weight: 400;\"> block<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">eliminated the columns AGE, EMAIL, DRIVING_LICENSE, and SSN when mapping the table columns to the fields for the output file PatientInfoProtected<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">applied a mask to the fields CREDIT_CARD1 and CREDIT_CARD2 that masked all except the last four digits of the fields<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">created a data definition format (DDF) metadata file for\u00a0PatientInfoProtected<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">We will resume now by adding a second\u00a0<\/span><b>Transform Mapping Block <\/b><span style=\"font-weight: 400;\">to our flow.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Drag the <\/span><b>Transform Mapping Block<\/b><span style=\"font-weight: 400;\"> icon from the <\/span><b>Palette <\/b><span style=\"font-weight: 400;\">into the Scratch flow created in the <\/span><a href=\"http:\/\/www.iri.com\/blog\/data-protection\/creating-a-voracity-flow-from-the-palette-part-1-of-2\/\"><span style=\"font-weight: 400;\">previous article<\/span><\/a><span style=\"font-weight: 400;\"> and double click in that block. For <\/span><b>Representation name<\/b><span style=\"font-weight: 400;\">, type Collections Transform Mapping Diagram and click <\/span><b>OK<\/b><span style=\"font-weight: 400;\"> to open the Transform Mapping Diagram in the editor. This diagram has an empty <\/span><b>Input Data<\/b><span style=\"font-weight: 400;\"> block, <\/span><b>Action <\/b><span style=\"font-weight: 400;\">block, and <\/span><b>Output Data<\/b><span style=\"font-weight: 400;\"> block.<\/span><\/p>\n<h3><a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/1-Transform-Mapping-Diagram.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-10299\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/1-Transform-Mapping-Diagram.png\" alt=\"Transform Mapping Diagram\" width=\"600\" height=\"473\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/1-Transform-Mapping-Diagram.png 856w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/1-Transform-Mapping-Diagram-300x237.png 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/1-Transform-Mapping-Diagram-768x606.png 768w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/a><b><br \/>\n<\/b><b>Define the Input Data (Source)<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">The output file PatientInfoProtected from the CoSort <\/span><a href=\"http:\/\/www.iri.com\/products\/cosort\/sortcl\"><span style=\"font-weight: 400;\">SortCL<\/span><\/a><span style=\"font-weight: 400;\"> transform mapping block \u00a0<\/span><i><span style=\"font-weight: 400;\">PatientInfoProtect.scl<\/span><\/i><span style=\"font-weight: 400;\"> will be one of the inputs for the next transform mapping block<\/span><i><span style=\"font-weight: 400;\"> Collections.scl<\/span><\/i><span style=\"font-weight: 400;\">. Drag the <\/span><b>Input File<\/b><span style=\"font-weight: 400;\"> icon into the <\/span><b>Input Data<\/b><span style=\"font-weight: 400;\"> block.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The <\/span><b>Get File Format Information<\/b><span style=\"font-weight: 400;\"> window opens, and we select the DDF (data definition file) metadata file for the input. From the drop-down menu, select our project name ScratchFlow. From the list in the <\/span><b>Matching items<\/b><span style=\"font-weight: 400;\"> box, select PatientInfoProtected.ddf and click <\/span><b>OK<\/b><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In the next window, make sure the path is to our Project. The file PatientInfoProtected is an interim file and will not exist until we execute the Flow. Type PatientInfoProtected for <\/span><b>File Name<\/b><span style=\"font-weight: 400;\"> and click <\/span><b>Open<\/b><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In this case, we know that the input file PatientInfoProtected will be in our project directory because the previous step in this flow places it there. As long as that is true, it is not necessary to include the path as part of the file name. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Click in the <\/span><b>Section Options <\/b><span style=\"font-weight: 400;\">block for PatientInfoProtected. In the <\/span><b>Properties <\/b><span style=\"font-weight: 400;\">view, select the <\/span><b>Base <\/b><span style=\"font-weight: 400;\">tab,<\/span> <span style=\"font-weight: 400;\">and change <\/span><b>Name <\/b><span style=\"font-weight: 400;\">to In_PatientInfoProtected. Then click inside the flow diagram again.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">There are two inputs required to perform a join. Drag an <\/span><b>Input ODBC<\/b><span style=\"font-weight: 400;\"> icon into the <\/span><b>Input Data<\/b><span style=\"font-weight: 400;\"> block to open the <\/span><b>Database Information<\/b><span style=\"font-weight: 400;\"> dialog. Select the <\/span><b>Data source name(DSN)<\/b><span style=\"font-weight: 400;\">. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">The <\/span><b>Table selection<\/b><span style=\"font-weight: 400;\"> box is then populated with the available tables for that <\/span><b>DSN<\/b><span style=\"font-weight: 400;\">. Click the check box for the NIGHTLY.PATIENTBILLING table and click <\/span><b>Finish<\/b><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The <\/span><b>Input Data<\/b><span style=\"font-weight: 400;\"> block now has the two inputs with fields and <\/span><b>Section Option<\/b><span style=\"font-weight: 400;\"> blocks inside each white data block.<\/span><\/p>\n<h3><b>Create a Record Filter<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">We need to match each IDNUMBER with a PASTDUE value greater than zero in the PATIENTBILLING table to an IDNUMBER in the PatientInfoProtected file. Drag the <\/span><b>Filter Include<\/b><span style=\"font-weight: 400;\"> icon from <\/span><b>Section Options<\/b><span style=\"font-weight: 400;\"> in the <\/span><b>Palette <\/b><span style=\"font-weight: 400;\">to the <\/span><b>Section Options<\/b><span style=\"font-weight: 400;\"> block for the PATIENTBILLING table. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">The <\/span><b>Record Filtering<\/b><span style=\"font-weight: 400;\"> dialog opens. Under <\/span><b>Filter Action<\/b><span style=\"font-weight: 400;\"> click <\/span><b>Include<\/b><span style=\"font-weight: 400;\">, and under <\/span><b>Condition Type<\/b><span style=\"font-weight: 400;\">, click <\/span><b>New Condition<\/b><span style=\"font-weight: 400;\">. Click the <\/span><b><i>f <\/i><\/b><b>\u2026<\/b><span style=\"font-weight: 400;\"> button next to the field for <\/span><b>New Condition<\/b><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/2-Include-Omit-Record-Filtering-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-10300\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/2-Include-Omit-Record-Filtering-1.png\" alt=\"Include-Omit-Record Filtering\" width=\"525\" height=\"321\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/2-Include-Omit-Record-Filtering-1.png 525w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/2-Include-Omit-Record-Filtering-1-300x183.png 300w\" sizes=\"(max-width: 525px) 100vw, 525px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">This opens the <\/span><b>Expression Builder<\/b><span style=\"font-weight: 400;\"> dialog. There is a box at the top with a red X to the right of where our expression or condition will be built. When the expression syntax is valid, the X becomes a green check mark. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">There is a <\/span><b>Categories <\/b><span style=\"font-weight: 400;\">box below and to the left. For each category clicked, options associated with it appear in the <\/span><b>Items <\/b><span style=\"font-weight: 400;\">box on the right.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Click on the category <\/span><b>Field Names<\/b><span style=\"font-weight: 400;\">, then double-click the item PASTDUE. PASTDUE is now in\u00a0<\/span><span style=\"font-weight: 400;\">the <\/span><b>Expression <\/b><span style=\"font-weight: 400;\">box. Select the category <\/span><b>Relational Operators<\/b><span style=\"font-weight: 400;\"> and double-click\u00a0<\/span><b>GT <\/b><span style=\"font-weight: 400;\">(for greater than). The <\/span><b>GT <\/b><span style=\"font-weight: 400;\">is now in the <\/span><b>Expression <\/b><span style=\"font-weight: 400;\">box. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Now, type in a space and a 0 in the <\/span><b>Expression <\/b><span style=\"font-weight: 400;\">box. This completes our expression and we have a green check. Click <\/span><b>Finish<\/b><span style=\"font-weight: 400;\"> and then <\/span><b>OK<\/b><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/3-Where-Clause-Expression-Filter.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-10301\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/3-Where-Clause-Expression-Filter.png\" alt=\"Where Clause Expression - Filter\" width=\"525\" height=\"562\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/3-Where-Clause-Expression-Filter.png 525w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/3-Where-Clause-Expression-Filter-280x300.png 280w\" sizes=\"(max-width: 525px) 100vw, 525px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">The record filter is now in the <\/span><b>Section Options<\/b><span style=\"font-weight: 400;\"> block for the input table PATIENTBILLING.<\/span><\/p>\n<h3><b>Define the Join<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">We want to match the rows in the PATIENTBILLING table to records in the PatientInfoProtected file with the same IDNUMBER; then send those matched records to the target table. This is an inner join. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Drag the <\/span><b>Join <\/b><span style=\"font-weight: 400;\">icon from the <\/span><b>Transform Action<\/b><span style=\"font-weight: 400;\"> in the <\/span><b>Palette <\/b><span style=\"font-weight: 400;\">into the <\/span><b>Action <\/b><span style=\"font-weight: 400;\">block. The <\/span><b>Join Sources <\/b><span style=\"font-weight: 400;\">window opens.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">For the join to execute correctly, the inputs must be in order by the field to be matched. We know <\/span><b>Data source 1<\/b><span style=\"font-weight: 400;\"> will be in order because the data was sorted in the previous step of the flow. <\/span><b>Data source 2<\/b><span style=\"font-weight: 400;\"> will be in order by IDNUMBER because the order is maintained in the table. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">If a source is not in order, we can select <\/span><b>NOT_SORTED <\/b><span style=\"font-weight: 400;\">from the <\/span><b>Sort order<\/b> <b>option <\/b><span style=\"font-weight: 400;\">for that source and CoSort will perform the sort <\/span><i><span style=\"font-weight: 400;\">with<\/span><\/i><span style=\"font-weight: 400;\"> the join. The sources are assumed to be sorted by default.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Make sure <\/span><b>Inner join <\/b><span style=\"font-weight: 400;\"> is selected under <\/span><b>Join type<\/b><span style=\"font-weight: 400;\">. Click IDNUMBER in both sources; then select <\/span><b>Create Condition<\/b><span style=\"font-weight: 400;\">. The condition for matching the IDNUMBER is written into the <\/span><b>Join conditions<\/b><span style=\"font-weight: 400;\"> box. Click <\/span><b>Finish<\/b><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/4-Join-Sources.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-10302\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/4-Join-Sources.png\" alt=\"Join Sources\" width=\"600\" height=\"627\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/4-Join-Sources.png 626w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/4-Join-Sources-287x300.png 287w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">There is now a white <\/span><b>Join <\/b><span style=\"font-weight: 400;\">block in the <\/span><b>Action <\/b><span style=\"font-weight: 400;\">block. Contained in that <\/span><b>Join <\/b><span style=\"font-weight: 400;\">block is a gray field block with all the fields from each input and an orange <\/span><b>Join Condition<\/b><span style=\"font-weight: 400;\"> block with the condition defined in the <\/span><b>Join Sources<\/b><span style=\"font-weight: 400;\"> window. The joined fields acquire the naming convention of <\/span><i><span style=\"font-weight: 400;\">input_name.field_name<\/span><\/i><span style=\"font-weight: 400;\"> so you know the source of each field.<\/span><\/p>\n<h3><b>Define the Output (Target)<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">The join we just defined will map fields to columns in the target table COLLECTION. Drag an <\/span><b>Output ODBC<\/b><span style=\"font-weight: 400;\"> icon into the <\/span><b>Output Data<\/b><span style=\"font-weight: 400;\"> block to open the <\/span><b>Database Information <\/b><span style=\"font-weight: 400;\">dialog. Select the <\/span><b>DSN <\/b><span style=\"font-weight: 400;\">from the drop-down. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Click the check box for the table NIGHTLY.COLLECTION and click <\/span><b>Finish<\/b><span style=\"font-weight: 400;\">. Fields from the <\/span><b>Action <\/b><span style=\"font-weight: 400;\">block are mapped to corresponding field names in the COLLECTION table.<\/span><\/p>\n<h3><b>Eliminate Double-Mapping<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">When doing the join, the field IDNUMBER was used to match the records from the two inputs and thus exists in both. By default, both fields are mapped into output from the <\/span><b>Action <\/b><span style=\"font-weight: 400;\">block to allow for more granular mapping control of source fields. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">However, since only one is normally needed, remove the blue <\/span><b>Mapping Connection <\/b><span style=\"font-weight: 400;\">from one of the sources. Click the connection arrow that goes from the PATIENTBILLING.IDNUMBER in the <\/span><b>Action <\/b><span style=\"font-weight: 400;\">block to IDNUMBER in the <\/span><b>Output Data<\/b><span style=\"font-weight: 400;\"> block and press delete.<\/span><\/p>\n<h3><b>Match Field Names to Column Names<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Sometimes when your flow is processed, a final field name may not match the column name in the target table. The two fields MASK_CREDIT_CARD1 and MASK_CREDIT_CARD2 from the file PatientInfoProtected should map from the <\/span><b>Action <\/b><span style=\"font-weight: 400;\">block to the columns CREDIT_CARD1 and CREDIT_CARD2 in the target table COLLECTION. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">There are two conventions used for naming fields: one is the actual <\/span><b>Field Name<\/b><span style=\"font-weight: 400;\"> and the other is called <\/span><b>Ext Field<\/b><span style=\"font-weight: 400;\">. The <\/span><b>Field Name<\/b><span style=\"font-weight: 400;\"> is used when processing the job script and the <\/span><b>Ext Field<\/b><span style=\"font-weight: 400;\"> is the column name in the table where a field value should load.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">We, therefore, need to change the field names CREDIT_CARD1 and CREDIT_CARD2 \u00a0in the target fields block to match field names in the <\/span><b>Action <\/b><span style=\"font-weight: 400;\">block. Double-click on each field in turn. This will open the <\/span><b>Target Field<\/b><span style=\"font-weight: 400;\"> window where we can change the <\/span><b>Field Name<\/b><span style=\"font-weight: 400;\">. Change each <\/span><b>Field Name<\/b><span style=\"font-weight: 400;\"> to MASK_CREDIT_CARD1 and MASK_CREDIT_CARD2 respectively. <\/span><\/p>\n<p><b>Ext Field <\/b><span style=\"font-weight: 400;\">is found in the <\/span><b>Layout <\/b><span style=\"font-weight: 400;\">tab of this window<\/span> <span style=\"font-weight: 400;\">and contains the column name of the table where the value for the field will load. No change is needed for <\/span><b>Ext Field<\/b><span style=\"font-weight: 400;\"> since it matches the column name in the table COLLECTION. Click <\/span><b>OK<\/b><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/5-Field-Editor-Target-Field.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-10303\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/5-Field-Editor-Target-Field.png\" alt=\"Field Editor - Target Field\" width=\"541\" height=\"685\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/5-Field-Editor-Target-Field.png 541w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/5-Field-Editor-Target-Field-237x300.png 237w\" sizes=\"(max-width: 541px) 100vw, 541px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">Now, create the new <\/span><b>Mapping Connection<\/b><span style=\"font-weight: 400;\"> from the <\/span><b>Action <\/b><span style=\"font-weight: 400;\">block to the <\/span><b>Output Data<\/b><span style=\"font-weight: 400;\"> block for the fields MASK_CREDIT_CARD1 and MASK_CREDIT_CARD2. For each field, click the <\/span><b>Mapping Connection<\/b><span style=\"font-weight: 400;\"> icon in the <\/span><b>Palette<\/b><span style=\"font-weight: 400;\">.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\"> Cick on the field in the <\/span><b>Action <\/b><span style=\"font-weight: 400;\">block, and then on the field in the <\/span><b>Output Data<\/b><span style=\"font-weight: 400;\"> block. <\/span><span style=\"font-weight: 400;\">The Collections Transform Mapping Diagram is now complete.<\/span><\/p>\n<p><a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/6-Collections-Transform-Mapping-Diagram.jpeg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-10304\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/6-Collections-Transform-Mapping-Diagram.jpeg\" alt=\"Collections Transform Mapping Diagram\" width=\"600\" height=\"424\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/6-Collections-Transform-Mapping-Diagram.jpeg 780w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/6-Collections-Transform-Mapping-Diagram-300x212.jpeg 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/6-Collections-Transform-Mapping-Diagram-768x543.jpeg 768w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/a><\/p>\n<h3><b>Give the Job a Name<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Click in the area outside the blocks for the overall <\/span><b>Properties <\/b><span style=\"font-weight: 400;\">view and select the <\/span><b>Base <\/b><span style=\"font-weight: 400;\">tab. Change both the <\/span><b>Name <\/b><span style=\"font-weight: 400;\">field and the <\/span><b>IRI Job <\/b><span style=\"font-weight: 400;\">field to <\/span><i><span style=\"font-weight: 400;\">collections.scl<\/span><\/i><span style=\"font-weight: 400;\">; then click in the diagram. The first field names the Transform Mapping Block represented in the above diagram, and the second field names the SortCL Job script that will be created from that diagram.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Go back to the Scratch flow diagram in the editor. Connect the outfile from the PatientInfoProtect.scl block to the PatientInfoProtected input file in the collections.scl block. Below is the complete Scratch flow diagram.<\/span><\/p>\n<p><a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/7-Complete-Scratch-flow-diagram.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-10305\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/7-Complete-Scratch-flow-diagram.png\" alt=\"Complete Scratch flow diagram\" width=\"600\" height=\"341\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/7-Complete-Scratch-flow-diagram.png 1082w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/7-Complete-Scratch-flow-diagram-300x171.png 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/7-Complete-Scratch-flow-diagram-768x437.png 768w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/7-Complete-Scratch-flow-diagram-1024x582.png 1024w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/a><\/p>\n<h3><b>Serialize the Job for Execution<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">To create the job scripts PatientInfoProtect.scl and collections.scl, and the batch file Scratch.bat, right-click in the editor &gt; <\/span><b>IRI Diagram Actions<\/b><span style=\"font-weight: 400;\"> &gt; <\/span><b>Export Flow Component<\/b><span style=\"font-weight: 400;\">. Select <\/span><b>Windows <\/b><span style=\"font-weight: 400;\">from the <\/span><b>Platform <\/b><span style=\"font-weight: 400;\">drop-down and verify that Scratch.bat is in the <\/span><b>File name<\/b><span style=\"font-weight: 400;\"> field. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Scratch.bat is the name of the file that will execute the flow. Click <\/span><b>Finish<\/b><span style=\"font-weight: 400;\">. The CoSort SortCL job scripts and the batch file are created and placed in the project.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">If you have other commands that need to be executed in the batch script, see <\/span><a href=\"http:\/\/www.iri.com\/blog\/iri\/iri-workbench\/creating-voracity-flows-using-existing-iri-scripts-part-3\/\"><i><span style=\"font-weight: 400;\">Creating Voracity Flows Using Existing IRI Scripts (Part 3)<\/span><\/i><\/a><span style=\"font-weight: 400;\">. This covers the use of <\/span><b>Decision <\/b><span style=\"font-weight: 400;\">and <\/span><b>CommandLine <\/b><span style=\"font-weight: 400;\"> blocks. Note that there are other blocks available, including blocks for SQL and FTP commands, IRI FACT (fast extract), and bulk DB load blocks for several loaders.<\/span><\/p>\n<h3><b>Run the Job<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">You can choose to run the individual tasks or the whole batch script in IRI Workbench through the:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><b>Run <\/b><span style=\"font-weight: 400;\">menu (green arrow icon) on the navigation bar<\/span><\/li>\n<li style=\"font-weight: 400;\"><b>Run As<\/b><span style=\"font-weight: 400;\"> menu (right-click on any .scl, or .bat \/ .sh script in the project explorer)<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">built-in<\/span><a href=\"http:\/\/www.iri.com\/blog\/iri\/iri-workbench\/scheduling-jobs-in-iri-workbench\/\"> <span style=\"font-weight: 400;\">task scheduler<\/span><\/a><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">You can also run the tasks outside IRI Workbench on the command line or with any third-party job scheduler, like <\/span><a href=\"http:\/\/www.iri.com\/blog\/iri\/iri-workbench\/stonebranch-universal-controller-integration\/\"><span style=\"font-weight: 400;\">Universal Automation Center<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Here is the batch script Scratch.bat:<\/span><\/p>\n<pre><span style=\"font-weight: 400;\">@echo off\r\n<\/span><span style=\"font-weight: 400;\">sortcl \/SPECIFICATION=PatientnfoProtect.scl\r\n<\/span><span style=\"font-weight: 400;\">sortcl \/SPECIFICATION=collections.scl<\/span><\/pre>\n<p><span style=\"font-weight: 400;\">And here is the script in the SortCL language for the transformation collections.scl:<\/span><\/p>\n<pre><span style=\"font-weight: 400;\">\/INFILE=C:\/IRI\/CoSort95\/workbench\/workspaceFlow2\/ScratchFlow\/PatientInfoProtected\r\n<\/span><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0\/ALIAS=PatientInfoProtected\r\n<\/span><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0\/PROCESS=RECORD\r\n<\/span><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0\/FIELD=(IDNUMBER, TYPE=ASCII, POSITION=1, SEPARATOR=\"\\t\", EXT_FIELD=\"IDNUMBER\")\r\n<\/span><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0\/FIELD=(NAME, TYPE=ASCII, POSITION=2, SEPARATOR=\"\\t\", EXT_FIELD=\"NAME\")\r\n<\/span><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0\/FIELD=(PHONE, TYPE=ASCII, POSITION=3, SEPARATOR=\"\\t\", EXT_FIELD=\"PHONE\")\r\n<\/span><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0\/FIELD=(MASK_CREDIT_CARD1, TYPE=ASCII, POSITION=4, SEPARATOR=\"\\t\", EXT_FIELD=\"CREDIT_CARD1\")\r\n<\/span><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0\/FIELD=(MASK_CREDIT_CARD2, TYPE=ASCII, POSITION=5, SEPARATOR=\"\\t\", EXT_FIELD=\"CREDIT_CARD2\")\r\n<\/span><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0\/FIELD=(CITY, TYPE=ASCII, POSITION=6, SEPARATOR=\"\\t\", EXT_FIELD=\"CITY\")\r\n<\/span><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0\/FIELD=(STATE, TYPE=ASCII, POSITION=7, SEPARATOR=\"\\t\", EXT_FIELD=\"STATE\")<\/span>\r\n\r\n<span style=\"font-weight: 400;\">\/INFILE=\"NIGHTLY.PATIENTBILLING;DSN=Oracle_qa2;UID=nightly;PWD=N321ghtly;\"\r\n<\/span><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0\/ALIAS=NIGHTLY_PATIENTBILLING\r\n<\/span><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0\/PROCESS=ODBC\r\n<\/span><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0\/FIELD=(IDNUMBER, TYPE=ASCII, POSITION=1, SEPARATOR=\"\\t\", EXT_FIELD=\"IDNUMBER\")\r\n<\/span><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0\/FIELD=(PASTDUE, TYPE=NUMERIC, POSITION=2, SEPARATOR=\"\\t\", EXT_FIELD=\"PASTDUE\")\r\n<\/span><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0\/FIELD=(CURRENTDUE, TYPE=NUMERIC, POSITION=3, SEPARATOR=\"\\t\", EXT_FIELD=\"CURRENTDUE\")\r\n<\/span><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0\/FIELD=(BALANCE, TYPE=NUMERIC, POSITION=4, SEPARATOR=\"\\t\", EXT_FIELD=\"BALANCE\")\r\n<\/span><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0\/INCLUDE WHERE PASTDUE GT 0<\/span>\r\n\r\n<span style=\"font-weight: 400;\">\/JOIN INNER PatientInfoProtected NIGHTLY_PATIENTBILLING WHERE PATIENTINFOPROTECTED.IDNUMBER == NIGHTLY_PATIENTBILLING.IDNUMBER<\/span>\r\n\r\n<span style=\"font-weight: 400;\">\/OUTFILE=\"NIGHTLY.COLLECTION;DSN=Oracle_qa2;UID=nightly;PWD=N321ghtly;\"\r\n<\/span><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0\/PROCESS=ODBC\r\n<\/span><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0\/FIELD=(IDNUMBER, TYPE=ASCII, POSITION=1, SEPARATOR=\"\\t\", EXT_FIELD=\"IDNUMBER\")\r\n<\/span><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0\/FIELD=(NAME, TYPE=ASCII, POSITION=2, SEPARATOR=\"\\t\", EXT_FIELD=\"NAME\")\r\n<\/span><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0\/FIELD=(PHONE, TYPE=ASCII, POSITION=3, SEPARATOR=\"\\t\", EXT_FIELD=\"PHONE\")\r\n<\/span><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0\/FIELD=(MASK_CREDIT_CARD1, TYPE=ASCII, POSITION=4, SEPARATOR=\"\\t\", EXT_FIELD=\"CREDIT_CARD1\")\r\n<\/span><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0\/FIELD=(MASK_CREDIT_CARD2, TYPE=ASCII, POSITION=5, SEPARATOR=\"\\t\", EXT_FIELD=\"CREDIT_CARD2\")\r\n<\/span><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0\/FIELD=(CITY, TYPE=ASCII, POSITION=6, SEPARATOR=\"\\t\", EXT_FIELD=\"CITY\")\r\n<\/span><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0\/FIELD=(STATE, TYPE=ASCII, POSITION=7, SEPARATOR=\"\\t\", EXT_FIELD=\"STATE\")\r\n<\/span><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0\/FIELD=(PASTDUE, TYPE=NUMERIC, POSITION=8, SEPARATOR=\"\\t\", EXT_FIELD=\"PASTDUE\")\r\n<\/span><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0\/FIELD=(CURRENTDUE, TYPE=NUMERIC, POSITION=9, SEPARATOR=\"\\t\", EXT_FIELD=\"CURRENTDUE\")\r\n<\/span><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0\/FIELD=(BALANCE, TYPE=NUMERIC, POSITION=10, SEPARATOR=\"\\t\", EXT_FIELD=\"BALANCE\")<\/span><\/pre>\n<p><span style=\"font-weight: 400;\">When the batch file is run, the two job scripts are executed in sequence. Output data from the\u00a0<\/span><span style=\"font-weight: 400;\">PatientInfoProtect.scl script is one of the sources for the join script collections.scl. The output of the second script is loaded into a table called COLLECTION. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">This table will not have four of the original columns in the PATIENT_RECORD table. Additionally, the two credit card columns have all but the last four digits masked. Also, only accounts with PASTDUE amounts greater than zero go into the COLLECTION table.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">If you have any questions or need help building your ETL flows in Voracity, contact <\/span><a href=\"mailto:voracity@iri.com\"><span style=\"font-weight: 400;\">voracity@iri.com<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This is the second of two articles on creating a new\u00a0IRI Voracity\u00ae\u00a0ETL job flow from the job design Palette in the IRI Workbench, built on Eclipse. Next, we will add more components to the existing flow, started in part 1, where we: created a basic flowlet dragged a Transform Mapping Block into the flowlet defined<\/p>\n<div><a class=\"btn-filled btn\" href=\"https:\/\/www.iri.com\/blog\/data-protection\/creating-a-voracity-flow-from-the-palette-part-2-of-2\/\" title=\"Creating a Voracity Flow from the Palette (Part 2 of 2)\">Read More<\/a><\/div>\n","protected":false},"author":10,"featured_media":10305,"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":[8,776,91],"tags":[1122,14,561,1068,100,1127,1123,1125,92,1113,830,789,850,967,489,75,1114,1124,1126,941,1128],"class_list":["post-10297","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-data-protection","category-etl","category-iri-workbench","tag-create-job-flow","tag-data-masking","tag-ddf","tag-dsn","tag-etl","tag-field-rule-library","tag-flow-diagram-editor","tag-flowlet","tag-gui","tag-input","tag-iri-fact","tag-iri-voracity","tag-iri-workbench","tag-job-wizard","tag-metadata","tag-odbc","tag-output","tag-palette","tag-target-field-layout","tag-transform-mapping-block","tag-transform-script"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v23.4 (Yoast SEO v23.4) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Creating a Voracity Flow from the Palette (Part 2 of 2) - 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:\/\/www.iri.com\/blog\/data-protection\/creating-a-voracity-flow-from-the-palette-part-2-of-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 from the Palette (Part 2 of 2)\" \/>\n<meta property=\"og:description\" content=\"This is the second of two articles on creating a new\u00a0IRI Voracity\u00ae\u00a0ETL job flow from the job design Palette in the IRI Workbench, built on Eclipse. Next, we will add more components to the existing flow, started in part 1, where we: created a basic flowlet dragged a Transform Mapping Block into the flowlet definedRead More\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.iri.com\/blog\/data-protection\/creating-a-voracity-flow-from-the-palette-part-2-of-2\/\" \/>\n<meta property=\"og:site_name\" content=\"IRI\" \/>\n<meta property=\"article:published_time\" content=\"2016-07-27T18:05:59+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-07-22T14:06:08+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/7-Complete-Scratch-flow-diagram.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1082\" \/>\n\t<meta property=\"og:image:height\" content=\"615\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\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=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/creating-a-voracity-flow-from-the-palette-part-2-of-2\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/creating-a-voracity-flow-from-the-palette-part-2-of-2\/\"},\"author\":{\"name\":\"Susan Gegner\",\"@id\":\"https:\/\/www.iri.com\/blog\/#\/schema\/person\/87be5da567628ab9396ca81170f36d63\"},\"headline\":\"Creating a Voracity Flow from the Palette (Part 2 of 2)\",\"datePublished\":\"2016-07-27T18:05:59+00:00\",\"dateModified\":\"2024-07-22T14:06:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/creating-a-voracity-flow-from-the-palette-part-2-of-2\/\"},\"wordCount\":1846,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.iri.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/creating-a-voracity-flow-from-the-palette-part-2-of-2\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/7-Complete-Scratch-flow-diagram.png\",\"keywords\":[\"create job flow\",\"data masking\",\"DDF\",\"DSN\",\"ETL\",\"field rule library\",\"flow diagram editor\",\"flowlet\",\"GUI\",\"input\",\"IRI FACT\",\"IRI Voracity\",\"IRI Workbench\",\"job wizard\",\"metadata\",\"ODBC\",\"output\",\"Palette\",\"target field layout\",\"transform mapping block\",\"transform script\"],\"articleSection\":[\"Data Masking\/Protection\",\"ETL\",\"IRI Workbench\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.iri.com\/blog\/data-protection\/creating-a-voracity-flow-from-the-palette-part-2-of-2\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/creating-a-voracity-flow-from-the-palette-part-2-of-2\/\",\"url\":\"https:\/\/www.iri.com\/blog\/data-protection\/creating-a-voracity-flow-from-the-palette-part-2-of-2\/\",\"name\":\"Creating a Voracity Flow from the Palette (Part 2 of 2) - IRI\",\"isPartOf\":{\"@id\":\"https:\/\/www.iri.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/creating-a-voracity-flow-from-the-palette-part-2-of-2\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/creating-a-voracity-flow-from-the-palette-part-2-of-2\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/7-Complete-Scratch-flow-diagram.png\",\"datePublished\":\"2016-07-27T18:05:59+00:00\",\"dateModified\":\"2024-07-22T14:06:08+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/creating-a-voracity-flow-from-the-palette-part-2-of-2\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.iri.com\/blog\/data-protection\/creating-a-voracity-flow-from-the-palette-part-2-of-2\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/creating-a-voracity-flow-from-the-palette-part-2-of-2\/#primaryimage\",\"url\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/7-Complete-Scratch-flow-diagram.png\",\"contentUrl\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/7-Complete-Scratch-flow-diagram.png\",\"width\":1082,\"height\":615,\"caption\":\"Complete Scratch flow diagram\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/creating-a-voracity-flow-from-the-palette-part-2-of-2\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.iri.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Creating a Voracity Flow from the Palette (Part 2 of 2)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.iri.com\/blog\/#website\",\"url\":\"https:\/\/www.iri.com\/blog\/\",\"name\":\"IRI\",\"description\":\"Total Data Management Blog\",\"publisher\":{\"@id\":\"https:\/\/www.iri.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.iri.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.iri.com\/blog\/#organization\",\"name\":\"IRI\",\"url\":\"https:\/\/www.iri.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.iri.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/02\/iri-logo-total-data-management-small-1.png\",\"contentUrl\":\"https:\/\/www.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:\/\/www.iri.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.iri.com\/blog\/#\/schema\/person\/87be5da567628ab9396ca81170f36d63\",\"name\":\"Susan Gegner\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.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:\/\/www.iri.com\/blog\/author\/susang\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Creating a Voracity Flow from the Palette (Part 2 of 2) - 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:\/\/www.iri.com\/blog\/data-protection\/creating-a-voracity-flow-from-the-palette-part-2-of-2\/","og_locale":"en_US","og_type":"article","og_title":"Creating a Voracity Flow from the Palette (Part 2 of 2)","og_description":"This is the second of two articles on creating a new\u00a0IRI Voracity\u00ae\u00a0ETL job flow from the job design Palette in the IRI Workbench, built on Eclipse. Next, we will add more components to the existing flow, started in part 1, where we: created a basic flowlet dragged a Transform Mapping Block into the flowlet definedRead More","og_url":"https:\/\/www.iri.com\/blog\/data-protection\/creating-a-voracity-flow-from-the-palette-part-2-of-2\/","og_site_name":"IRI","article_published_time":"2016-07-27T18:05:59+00:00","article_modified_time":"2024-07-22T14:06:08+00:00","og_image":[{"width":1082,"height":615,"url":"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/7-Complete-Scratch-flow-diagram.png","type":"image\/png"}],"author":"Susan Gegner","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Susan Gegner","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.iri.com\/blog\/data-protection\/creating-a-voracity-flow-from-the-palette-part-2-of-2\/#article","isPartOf":{"@id":"https:\/\/www.iri.com\/blog\/data-protection\/creating-a-voracity-flow-from-the-palette-part-2-of-2\/"},"author":{"name":"Susan Gegner","@id":"https:\/\/www.iri.com\/blog\/#\/schema\/person\/87be5da567628ab9396ca81170f36d63"},"headline":"Creating a Voracity Flow from the Palette (Part 2 of 2)","datePublished":"2016-07-27T18:05:59+00:00","dateModified":"2024-07-22T14:06:08+00:00","mainEntityOfPage":{"@id":"https:\/\/www.iri.com\/blog\/data-protection\/creating-a-voracity-flow-from-the-palette-part-2-of-2\/"},"wordCount":1846,"commentCount":0,"publisher":{"@id":"https:\/\/www.iri.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.iri.com\/blog\/data-protection\/creating-a-voracity-flow-from-the-palette-part-2-of-2\/#primaryimage"},"thumbnailUrl":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/7-Complete-Scratch-flow-diagram.png","keywords":["create job flow","data masking","DDF","DSN","ETL","field rule library","flow diagram editor","flowlet","GUI","input","IRI FACT","IRI Voracity","IRI Workbench","job wizard","metadata","ODBC","output","Palette","target field layout","transform mapping block","transform script"],"articleSection":["Data Masking\/Protection","ETL","IRI Workbench"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.iri.com\/blog\/data-protection\/creating-a-voracity-flow-from-the-palette-part-2-of-2\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.iri.com\/blog\/data-protection\/creating-a-voracity-flow-from-the-palette-part-2-of-2\/","url":"https:\/\/www.iri.com\/blog\/data-protection\/creating-a-voracity-flow-from-the-palette-part-2-of-2\/","name":"Creating a Voracity Flow from the Palette (Part 2 of 2) - IRI","isPartOf":{"@id":"https:\/\/www.iri.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.iri.com\/blog\/data-protection\/creating-a-voracity-flow-from-the-palette-part-2-of-2\/#primaryimage"},"image":{"@id":"https:\/\/www.iri.com\/blog\/data-protection\/creating-a-voracity-flow-from-the-palette-part-2-of-2\/#primaryimage"},"thumbnailUrl":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/7-Complete-Scratch-flow-diagram.png","datePublished":"2016-07-27T18:05:59+00:00","dateModified":"2024-07-22T14:06:08+00:00","breadcrumb":{"@id":"https:\/\/www.iri.com\/blog\/data-protection\/creating-a-voracity-flow-from-the-palette-part-2-of-2\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.iri.com\/blog\/data-protection\/creating-a-voracity-flow-from-the-palette-part-2-of-2\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.iri.com\/blog\/data-protection\/creating-a-voracity-flow-from-the-palette-part-2-of-2\/#primaryimage","url":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/7-Complete-Scratch-flow-diagram.png","contentUrl":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/7-Complete-Scratch-flow-diagram.png","width":1082,"height":615,"caption":"Complete Scratch flow diagram"},{"@type":"BreadcrumbList","@id":"https:\/\/www.iri.com\/blog\/data-protection\/creating-a-voracity-flow-from-the-palette-part-2-of-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.iri.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Creating a Voracity Flow from the Palette (Part 2 of 2)"}]},{"@type":"WebSite","@id":"https:\/\/www.iri.com\/blog\/#website","url":"https:\/\/www.iri.com\/blog\/","name":"IRI","description":"Total Data Management Blog","publisher":{"@id":"https:\/\/www.iri.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.iri.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.iri.com\/blog\/#organization","name":"IRI","url":"https:\/\/www.iri.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.iri.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/02\/iri-logo-total-data-management-small-1.png","contentUrl":"https:\/\/www.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:\/\/www.iri.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.iri.com\/blog\/#\/schema\/person\/87be5da567628ab9396ca81170f36d63","name":"Susan Gegner","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.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:\/\/www.iri.com\/blog\/author\/susang\/"}]}},"jetpack_featured_media_url":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/7-Complete-Scratch-flow-diagram.png","_links":{"self":[{"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/posts\/10297"}],"collection":[{"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/comments?post=10297"}],"version-history":[{"count":17,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/posts\/10297\/revisions"}],"predecessor-version":[{"id":17802,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/posts\/10297\/revisions\/17802"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/media\/10305"}],"wp:attachment":[{"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/media?parent=10297"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/categories?post=10297"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/tags?post=10297"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}