{"id":10006,"date":"2016-07-08T15:04:56","date_gmt":"2016-07-08T19:04:56","guid":{"rendered":"http:\/\/www.iri.com\/blog\/?p=10006"},"modified":"2017-11-07T08:08:15","modified_gmt":"2017-11-07T13:08:15","slug":"creating-a-voracity-flow-from-a-wizard-part-2-of-2","status":"publish","type":"post","link":"https:\/\/beta.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-2-of-2\/","title":{"rendered":"Creating a Voracity Flow from a Wizard (Part 2 of 2)"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">This is the second of two articles where we are creating an IRI Voracity ETL flow using new jobs wizards in the IRI Workbench GUI for Voracity, built on Eclipse. In <a href=\"http:\/\/www.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-1-of-2\/\">part 1<\/a>, we used the CoSort wizard called New Sort Job<\/span> <span style=\"font-weight: 400;\">to create a<\/span> <span style=\"font-weight: 400;\">flow. We:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">used ODBC to extract the table PATIENT_RECORD<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">sorted on the field IDNUMBER<\/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.dat <\/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<\/ul>\n<p><span style=\"font-weight: 400;\">The last <\/span><b>Finish<\/b><span style=\"font-weight: 400;\"> created the flow with the Transform Mapping Block representing the CoSort job that the wizard defined.<\/span><\/p>\n<p><a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/1-Transform-Mapping-Block.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-10007\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/1-Transform-Mapping-Block.png\" alt=\"Transform Mapping Block\" width=\"624\" height=\"431\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/07\/1-Transform-Mapping-Block.png 624w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/07\/1-Transform-Mapping-Block-300x207.png 300w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/><\/a><span style=\"font-weight: 400;\">Now that the pieces of data that are sensitive have either been eliminated or masked, we can match the customer information in the file PatientInfoProtected.dat to the records in the table PATIENTBILLING that have PASTDUE amounts. We want to send these records to the COLLECTION table.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">We will use a CoSort wizard to create another Transform Mapping Block that will be added to the flowlet created in part 1. Be sure that no diagram for the flow is open in the editor.<\/span><\/p>\n<h3><b>Begin the Wizard<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Click the arrow next to the <\/span><b>CoSort Menu<\/b><span style=\"font-weight: 400;\"> (the stopwatch) on the navigation bar &gt; <\/span><b>New Join Job<\/b><span style=\"font-weight: 400;\">. Type Collections for the<\/span><b> File name<\/b><span style=\"font-weight: 400;\">, then select the <\/span><b>Append to existing flow<\/b><span style=\"font-weight: 400;\"> radio button and click <\/span><b>Browse<\/b><span style=\"font-weight: 400;\">. In the <\/span><b>Get Existing Flow File <\/b><span style=\"font-weight: 400;\">dialog, double-click the file Collections.flow in our project, and click <\/span><b>Next <\/b><span style=\"font-weight: 400;\">to go to the <\/span><b>Data Sources<\/b><span style=\"font-weight: 400;\"> dialog where we will define the two inputs for a join.<\/span><\/p>\n<h3><b>Define Source 1<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Select <\/span><b>Add Data Source<\/b><span style=\"font-weight: 400;\"> in the <\/span><b>Data Source<\/b><span style=\"font-weight: 400;\"> dialog, then select the <\/span><b>ODBC<\/b><span style=\"font-weight: 400;\"> radio button and click <\/span><b>Browse.<\/b><span style=\"font-weight: 400;\"> \u00a0In the <\/span><b>ODBC Table Selection<\/b><span style=\"font-weight: 400;\"> dialog, select the <\/span><b>Data source name<\/b><span style=\"font-weight: 400;\"> and select the <\/span><b>Table name <\/b><span style=\"font-weight: 400;\">PATIENTBILLING from the drop-downs, then click <\/span><b>OK<\/b><span style=\"font-weight: 400;\">. Click <\/span><b>OK<\/b><span style=\"font-weight: 400;\"> again.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Select <\/span><b>Discover Metadata<\/b><span style=\"font-weight: 400;\"> in the Data Sources dialog. Type PatientBilling for the <\/span><b>File name<\/b><span style=\"font-weight: 400;\">, \u00a0click <\/span><b>Next<\/b><span style=\"font-weight: 400;\">, then verify that the information about your table is correct. Click <\/span><b>Next<\/b><span style=\"font-weight: 400;\"> to go to the <\/span><b>Field Data Viewer and Editor<\/b><span style=\"font-weight: 400;\">,<\/span> <span style=\"font-weight: 400;\">then click<\/span><b> Finish <\/b><span style=\"font-weight: 400;\">and<\/span><b> Yes <\/b><span style=\"font-weight: 400;\">in the<\/span><b> Save specification <\/b><span style=\"font-weight: 400;\">dialog.<\/span><\/p>\n<h3><b>Define a Filter<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">In this source, we only want the records where the PASTDUE field value is greater than 0. So, select <\/span><b>Record Filter<\/b><span style=\"font-weight: 400;\"> to go to the <\/span><b>Record Filtering<\/b><span style=\"font-weight: 400;\"> dialog. Under <\/span><b>Filter Action<\/b><span style=\"font-weight: 400;\">, select the radio button <\/span><b>Include<\/b><span style=\"font-weight: 400;\">, and under <\/span><b>Condition Type<\/b><span style=\"font-weight: 400;\">, select the radio button <\/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 that radio button.<\/span><\/p>\n<p><a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/2-Include-Omit-Record-Filtering.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-10008\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/2-Include-Omit-Record-Filtering.png\" alt=\"Include-Omit Record Filtering\" width=\"464\" height=\"335\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/07\/2-Include-Omit-Record-Filtering.png 464w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/07\/2-Include-Omit-Record-Filtering-300x217.png 300w\" sizes=\"(max-width: 464px) 100vw, 464px\" \/> <\/a><span style=\"font-weight: 400;\">This brings us to 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 there is an expression that has correct syntax, the X will change to a green check. There is a <\/span><b>Categories<\/b><span style=\"font-weight: 400;\"> box below and to the left. As you click on each category, a list of items associated with the category will display 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 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 <\/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. 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, so click <\/span><b>Finish,<\/b><span style=\"font-weight: 400;\"> then click <\/span><b>OK<\/b><span style=\"font-weight: 400;\">.<\/span><\/p>\n<h3><a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/3-Expression-Builder.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-10009\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/3-Expression-Builder.png\" alt=\"Expression Builder\" width=\"525\" height=\"577\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/07\/3-Expression-Builder.png 525w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/07\/3-Expression-Builder-273x300.png 273w\" sizes=\"(max-width: 525px) 100vw, 525px\" \/> <\/a><b>Define Source 2<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Select <\/span><b>Add Data Source<\/b><span style=\"font-weight: 400;\">. In the <\/span><b>Data Source<\/b><span style=\"font-weight: 400;\"> dialog, select the <\/span><b>File<\/b><span style=\"font-weight: 400;\"> radio button. Type the file name PatientInfoProtected.dat in the field next to the <\/span><b>Files<\/b><span style=\"font-weight: 400;\"> radio button. We could not browse for the file because we have not run the job that produces the file. Click <\/span><b>OK<\/b><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">A metadata file does not exist for this file, and we cannot discover the metadata because the data file does not exist yet. But, we can use the metadata file for the table PATIENT_RECORD and then edit it. In the <\/span><b>Data Sources<\/b><span style=\"font-weight: 400;\"> dialog, select <\/span><b>Add Existing Metadata<\/b><span style=\"font-weight: 400;\">. Double-click PatientRecord.ddf in our project. Click <\/span><b>Yes<\/b><span style=\"font-weight: 400;\"> in the <\/span><b>Save specification<\/b><span style=\"font-weight: 400;\"> dialog. Select <\/span><b>Source Field Layout<\/b><span style=\"font-weight: 400;\">. For the fields AGE, EMAIL, DRIVING_LICENSE, and SSN, right-click on the field, then select <\/span><b>Remove<\/b><span style=\"font-weight: 400;\">. Click the <\/span><b>1-2-3<\/b><span style=\"font-weight: 400;\"> icon to renumber the positions for the fields, then click <\/span><b>OK<\/b><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">We now have the tree for the inputs displayed in the <\/span><b>Data Sources<\/b><span style=\"font-weight: 400;\"> dialog. Click <\/span><b>Next.<\/b><\/p>\n<h3><a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/4-New-Join-Job-Data-Sources.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-10010\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/4-New-Join-Job-Data-Sources.png\" alt=\"New Join Job - Data Sources\" width=\"624\" height=\"583\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/07\/4-New-Join-Job-Data-Sources.png 624w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/07\/4-New-Join-Job-Data-Sources-300x280.png 300w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/><\/a><b>Define the Join<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">On the <\/span><b>Join Sources <\/b><span style=\"font-weight: 400;\">screen we want to match the records in PATIENTBILLING to the records in PatientInfoProtected.dat that have the same IDNUMBER, then send those to the output. This is called an inner join. For the join to execute correctly, the input sources must be in order by the field that is being matched. We know <\/span><b>Data source 2<\/b><span style=\"font-weight: 400;\"> will be in order because the data is sorted in the previous step of the flow. <\/span><b>Data source 1<\/b><span style=\"font-weight: 400;\"> will be in order because the table maintains the data in order by IDNUMBER. If a source is not in order, we can select <\/span><b>NOT_SORTED<\/b><span style=\"font-weight: 400;\"> from <\/span><b>Sort order options<\/b><span style=\"font-weight: 400;\">. The default is to assume the files have been sorted.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Make sure the <\/span><b>Inner join<\/b><span style=\"font-weight: 400;\"> radio button under <\/span><b>Join type<\/b><span style=\"font-weight: 400;\"> is selected. Click IDNUMBER in both sources, then select <\/span><b>Create Condition.<\/b><span style=\"font-weight: 400;\"> The condition for matching the IDNUMBER \u00a0displays in the <\/span><b>Join conditions<\/b><span style=\"font-weight: 400;\"> box. Click <\/span><b>Next <\/b><span style=\"font-weight: 400;\">to go to the<\/span><b> Data Targets <\/b><span style=\"font-weight: 400;\">dialog.<br \/>\n<\/span><br \/>\n<a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/5-New-Join-Job-Join-Sources.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-10011\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/5-New-Join-Job-Join-Sources.png\" alt=\"New Join Job - Join Sources\" width=\"624\" height=\"579\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/07\/5-New-Join-Job-Join-Sources.png 624w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/07\/5-New-Join-Job-Join-Sources-300x278.png 300w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/> <\/a><b>Define the Target<\/b><\/p>\n<p><span style=\"font-weight: 400;\">The target is the table COLLECTION. \u00a0When the output is going to a table, it must first be created before creating the job.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Select <\/span><b>Add Data Target<\/b><span style=\"font-weight: 400;\">, then select the radio button for <\/span><b>ODBC.<\/b><span style=\"font-weight: 400;\"> Click the <\/span><b>Browse<\/b><span style=\"font-weight: 400;\"> button next to the <\/span><b>ODBC<\/b><span style=\"font-weight: 400;\"> field. In the <\/span><b>ODBC Table Selection<\/b><span style=\"font-weight: 400;\"> dialog, select the <\/span><b>Data source name<\/b><span style=\"font-weight: 400;\"> and select the <\/span><b>Table name <\/b><span style=\"font-weight: 400;\">COLLECTION from the drop-downs, then click <\/span><b>OK<\/b><span style=\"font-weight: 400;\">. The columns in the table COLLECTION have all the fields from both sources (IDNUMBER is there only once). Select <\/span><b>Target Field Layout<\/b><span style=\"font-weight: 400;\">. Remove the duplicate IDNUMBER field and click the <\/span><b>1-2-3 <\/b><span style=\"font-weight: 400;\">icon. Then click <\/span><b>OK<\/b><span style=\"font-weight: 400;\">, and click <\/span><b>Yes<\/b><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The <\/span><b>Data Targets<\/b><span style=\"font-weight: 400;\"> screen will be as below:<br \/>\n<\/span><br \/>\n<a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/6-New-Join-Job-Data-Targets.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-10012\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/6-New-Join-Job-Data-Targets.png\" alt=\"New Join Job - Data Targets\" width=\"624\" height=\"498\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/07\/6-New-Join-Job-Data-Targets.png 624w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/07\/6-New-Join-Job-Data-Targets-300x239.png 300w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/> <\/a><span style=\"font-weight: 400;\">Click <\/span><b>Finish<\/b><span style=\"font-weight: 400;\">. Collections.flow displays in the editor. In the Project Explorer, right-click on Batch: Collection.bat under the file Collections.flow &gt; <\/span><b>New Representation<\/b><span style=\"font-weight: 400;\"> &gt; <\/span><b>new Flow Diagram<\/b><span style=\"font-weight: 400;\">. Type Collection Flow Diagram and click <\/span><b>OK<\/b><span style=\"font-weight: 400;\">. The Transform Mapping Block named collections.scl is added to the flowlet that we named in the field for <\/span><b><i>Append to existing flow<\/i><\/b><span style=\"font-weight: 400;\">. \u00a0After arranging the blocks and connecting the Out_PatientInfoProtected.dat file in the PatientInfoProtect.scl transform mapping block to the In_PatientInfoProtected.dat file in the collections.scl transform mapping block, the flow shown below is produced.<\/span><\/p>\n<p><a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/7-Transform-Mapping-Block-Flow.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-10013\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/7-Transform-Mapping-Block-Flow.png\" alt=\"Transform Mapping Block Flow\" width=\"624\" height=\"330\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/07\/7-Transform-Mapping-Block-Flow.png 624w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/07\/7-Transform-Mapping-Block-Flow-300x159.png 300w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/> <\/a><span style=\"font-weight: 400;\">The following join script collection.scl was created after exporting the flow component:<\/span><\/p>\n<pre><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 \u00a0\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><span style=\"font-weight: 400;\"> \u00a0\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\">\/INFILE=PatientInfoProtected.dat\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=(CREDIT_CARD1, TYPE=ASCII, POSITION=4, SEPARATOR=\"\\t\", EXT_FIELD=\"CREDIT_CARD1\")\r\n<\/span><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0\/FIELD=(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;\">\/JOIN INNER NIGHTLY_PATIENTBILLING PatientInfoProtected WHERE NIGHTLY_PATIENTBILLING.IDNUMBER == PATIENTINFOPROTECTED.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=(NIGHTLY_PATIENTBILLING.IDNUMBER, TYPE=ASCII, POSITION=1, SEPARATOR=\"\\t\", EXT_FIELD=\"IDNUMBER\") \u00a0\r\n<\/span><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0\/FIELD=(NIGHTLY_PATIENTBILLING.PASTDUE, TYPE=NUMERIC, POSITION=2, SEPARATOR=\"\\t\", EXT_FIELD=\"PASTDUE\")\r\n<\/span><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0\/FIELD=(NIGHTLY_PATIENTBILLING.CURRENTDUE, TYPE=NUMERIC, POSITION=3, SEPARATOR=\"\\t\", EXT_FIELD=\"CURRENTDUE\")\r\n<\/span><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0\/FIELD=(NIGHTLY_PATIENTBILLING.BALANCE, TYPE=NUMERIC, POSITION=4, SEPARATOR=\"\\t\", EXT_FIELD=\"BALANCE\")\r\n<\/span><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0\/FIELD=(PATIENTINFOPROTECTED.NAME, TYPE=ASCII, POSITION=5, SEPARATOR=\"\\t\", EXT_FIELD=\"NAME\")\r\n<\/span><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0\/FIELD=(PATIENTINFOPROTECTED.PHONE, TYPE=ASCII, POSITION=6, SEPARATOR=\"\\t\", EXT_FIELD=\"PHONE\")\r\n<\/span><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0\/FIELD=(PATIENTINFOPROTECTED.CREDIT_CARD1, TYPE=ASCII, POSITION=7, SEPARATOR=\"\\t\", EXT_FIELD=\"CREDIT_CARD1\")\r\n<\/span><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0\/FIELD=(PATIENTINFOPROTECTED.CREDIT_CARD2, TYPE=ASCII, POSITION=8, SEPARATOR=\"\\t\", EXT_FIELD=\"CREDIT_CARD2\")\r\n<\/span><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0\/FIELD=(PATIENTINFOPROTECTED.CITY, TYPE=ASCII, POSITION=9, SEPARATOR=\"\\t\", EXT_FIELD=\"CITY\")\r\n<\/span><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0\/FIELD=(PATIENTINFOPROTECTED.STATE, TYPE=ASCII, POSITION=10, SEPARATOR=\"\\t\", EXT_FIELD=\"STATE\")<\/span><\/pre>\n<p><span style=\"font-weight: 400;\">Additionally, the batch file Collections.bat was updated to:<\/span><\/p>\n<pre><span style=\"font-weight: 400;\">@echo off\r\n<\/span><span style=\"font-weight: 400;\">sortcl \/SPECIFICATION=PatientInfoProtect.scl\r\n<\/span><span style=\"font-weight: 400;\">sortcl \/SPECIFICATION=collections.sc<\/span><span style=\"font-weight: 400;\">l<\/span><\/pre>\n<p><span style=\"font-weight: 400;\">When the batch file is run, the two sortcl scripts are executed in sequence with the output of the script PatientInfoProtect.scl being used as one of the inputs for the join script collections.scl. The output of the second script is loaded into a table called COLLECTION. This table will not have four of the original columns in PATIENT_RECORD; and the two credit card columns have all but the last four digits masked. Also, only accounts with PASTDUE amounts greater than zero will go into the COLLECTION table.<\/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 using <\/span><b>Decision<\/b><span style=\"font-weight: 400;\"> blocks and <\/span><b>Command Line<\/b><span style=\"font-weight: 400;\"> blocks.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This is the second of two articles where we are creating an IRI Voracity ETL flow using new jobs wizards in the IRI Workbench GUI for Voracity, built on Eclipse. In part 1, we used the CoSort wizard called New Sort Job to create a flow. We: used ODBC to extract the table PATIENT_RECORD sorted<\/p>\n<div><a class=\"btn-filled btn\" href=\"https:\/\/beta.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-2-of-2\/\" title=\"Creating a Voracity Flow from a Wizard (Part 2 of 2)\">Read More<\/a><\/div>\n","protected":false},"author":10,"featured_media":10013,"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":[776,91],"tags":[1111,44,1108,14,632,1112,100,1110,1113,789,850,967,50,1114,284,1096,68,941,1109],"class_list":["post-10006","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-etl","category-iri-workbench","tag-bat-fiels","tag-cosort","tag-create-flow","tag-data-masking","tag-data-source","tag-discover-metadata","tag-etl","tag-extract-tranform-load","tag-input","tag-iri-voracity","tag-iri-workbench","tag-job-wizard","tag-oracle","tag-output","tag-protection","tag-sort-key","tag-sortcl","tag-transform-mapping-block","tag-use-flows"],"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 from a Wizard (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:\/\/beta.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-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 a Wizard (Part 2 of 2) - IRI\" \/>\n<meta property=\"og:description\" content=\"This is the second of two articles where we are creating an IRI Voracity ETL flow using new jobs wizards in the IRI Workbench GUI for Voracity, built on Eclipse. In part 1, we used the CoSort wizard called New Sort Job to create a flow. We: used ODBC to extract the table PATIENT_RECORD sortedRead More\" \/>\n<meta property=\"og:url\" content=\"https:\/\/beta.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-2-of-2\/\" \/>\n<meta property=\"og:site_name\" content=\"IRI\" \/>\n<meta property=\"article:published_time\" content=\"2016-07-08T19:04:56+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-11-07T13:08:15+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/07\/7-Transform-Mapping-Block-Flow.png\" \/>\n\t<meta property=\"og:image:width\" content=\"624\" \/>\n\t<meta property=\"og:image:height\" content=\"330\" \/>\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=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/beta.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-2-of-2\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/beta.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-2-of-2\/\"},\"author\":{\"name\":\"Susan Gegner\",\"@id\":\"https:\/\/beta.iri.com\/blog\/#\/schema\/person\/87be5da567628ab9396ca81170f36d63\"},\"headline\":\"Creating a Voracity Flow from a Wizard (Part 2 of 2)\",\"datePublished\":\"2016-07-08T19:04:56+00:00\",\"dateModified\":\"2017-11-07T13:08:15+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/beta.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-2-of-2\/\"},\"wordCount\":1268,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/beta.iri.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/beta.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-2-of-2\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/07\/7-Transform-Mapping-Block-Flow.png\",\"keywords\":[\".bat fiels\",\"CoSort\",\"create flow\",\"data masking\",\"data source\",\"discover metadata\",\"ETL\",\"Extract-Tranform-Load\",\"input\",\"IRI Voracity\",\"IRI Workbench\",\"job wizard\",\"Oracle\",\"output\",\"protection\",\"sort key\",\"SortCL\",\"transform mapping block\",\"use flows\"],\"articleSection\":[\"ETL\",\"IRI Workbench\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/beta.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-2-of-2\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/beta.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-2-of-2\/\",\"url\":\"https:\/\/beta.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-2-of-2\/\",\"name\":\"Creating a Voracity Flow from a Wizard (Part 2 of 2) - IRI\",\"isPartOf\":{\"@id\":\"https:\/\/beta.iri.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/beta.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-2-of-2\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/beta.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-2-of-2\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/07\/7-Transform-Mapping-Block-Flow.png\",\"datePublished\":\"2016-07-08T19:04:56+00:00\",\"dateModified\":\"2017-11-07T13:08:15+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/beta.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-2-of-2\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/beta.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-2-of-2\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/beta.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-2-of-2\/#primaryimage\",\"url\":\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/07\/7-Transform-Mapping-Block-Flow.png\",\"contentUrl\":\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/07\/7-Transform-Mapping-Block-Flow.png\",\"width\":624,\"height\":330,\"caption\":\"Transform Mapping Block Flow\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/beta.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-2-of-2\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/beta.iri.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Creating a Voracity Flow from a Wizard (Part 2 of 2)\"}]},{\"@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 from a Wizard (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:\/\/beta.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-2-of-2\/","og_locale":"en_US","og_type":"article","og_title":"Creating a Voracity Flow from a Wizard (Part 2 of 2) - IRI","og_description":"This is the second of two articles where we are creating an IRI Voracity ETL flow using new jobs wizards in the IRI Workbench GUI for Voracity, built on Eclipse. In part 1, we used the CoSort wizard called New Sort Job to create a flow. We: used ODBC to extract the table PATIENT_RECORD sortedRead More","og_url":"https:\/\/beta.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-2-of-2\/","og_site_name":"IRI","article_published_time":"2016-07-08T19:04:56+00:00","article_modified_time":"2017-11-07T13:08:15+00:00","og_image":[{"width":624,"height":330,"url":"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/07\/7-Transform-Mapping-Block-Flow.png","type":"image\/png"}],"author":"Susan Gegner","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Susan Gegner","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/beta.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-2-of-2\/#article","isPartOf":{"@id":"https:\/\/beta.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-2-of-2\/"},"author":{"name":"Susan Gegner","@id":"https:\/\/beta.iri.com\/blog\/#\/schema\/person\/87be5da567628ab9396ca81170f36d63"},"headline":"Creating a Voracity Flow from a Wizard (Part 2 of 2)","datePublished":"2016-07-08T19:04:56+00:00","dateModified":"2017-11-07T13:08:15+00:00","mainEntityOfPage":{"@id":"https:\/\/beta.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-2-of-2\/"},"wordCount":1268,"commentCount":0,"publisher":{"@id":"https:\/\/beta.iri.com\/blog\/#organization"},"image":{"@id":"https:\/\/beta.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-2-of-2\/#primaryimage"},"thumbnailUrl":"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/07\/7-Transform-Mapping-Block-Flow.png","keywords":[".bat fiels","CoSort","create flow","data masking","data source","discover metadata","ETL","Extract-Tranform-Load","input","IRI Voracity","IRI Workbench","job wizard","Oracle","output","protection","sort key","SortCL","transform mapping block","use flows"],"articleSection":["ETL","IRI Workbench"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/beta.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-2-of-2\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/beta.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-2-of-2\/","url":"https:\/\/beta.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-2-of-2\/","name":"Creating a Voracity Flow from a Wizard (Part 2 of 2) - IRI","isPartOf":{"@id":"https:\/\/beta.iri.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/beta.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-2-of-2\/#primaryimage"},"image":{"@id":"https:\/\/beta.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-2-of-2\/#primaryimage"},"thumbnailUrl":"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/07\/7-Transform-Mapping-Block-Flow.png","datePublished":"2016-07-08T19:04:56+00:00","dateModified":"2017-11-07T13:08:15+00:00","breadcrumb":{"@id":"https:\/\/beta.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-2-of-2\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/beta.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-2-of-2\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/beta.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-2-of-2\/#primaryimage","url":"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/07\/7-Transform-Mapping-Block-Flow.png","contentUrl":"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2016\/07\/7-Transform-Mapping-Block-Flow.png","width":624,"height":330,"caption":"Transform Mapping Block Flow"},{"@type":"BreadcrumbList","@id":"https:\/\/beta.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-2-of-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/beta.iri.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Creating a Voracity Flow from a Wizard (Part 2 of 2)"}]},{"@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\/07\/7-Transform-Mapping-Block-Flow.png","_links":{"self":[{"href":"https:\/\/beta.iri.com\/blog\/wp-json\/wp\/v2\/posts\/10006"}],"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=10006"}],"version-history":[{"count":15,"href":"https:\/\/beta.iri.com\/blog\/wp-json\/wp\/v2\/posts\/10006\/revisions"}],"predecessor-version":[{"id":17805,"href":"https:\/\/beta.iri.com\/blog\/wp-json\/wp\/v2\/posts\/10006\/revisions\/17805"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/beta.iri.com\/blog\/wp-json\/wp\/v2\/media\/10013"}],"wp:attachment":[{"href":"https:\/\/beta.iri.com\/blog\/wp-json\/wp\/v2\/media?parent=10006"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/beta.iri.com\/blog\/wp-json\/wp\/v2\/categories?post=10006"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/beta.iri.com\/blog\/wp-json\/wp\/v2\/tags?post=10006"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}