{"id":9980,"date":"2016-04-08T14:18:45","date_gmt":"2016-04-08T18:18:45","guid":{"rendered":"http:\/\/www.iri.com\/blog\/?p=9980"},"modified":"2024-10-23T15:43:54","modified_gmt":"2024-10-23T19:43:54","slug":"creating-a-voracity-flow-from-a-wizard-part-1-of-2","status":"publish","type":"post","link":"https:\/\/www.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-1-of-2\/","title":{"rendered":"Creating a Voracity Flow from a Wizard (Part 1 of 2)"},"content":{"rendered":"<p><em>Abstract:\u00a0<\/em>The <a href=\"https:\/\/www.iri.com\/products\/voracity\">IRI Voracity<\/a> data management platform provides data integration tools, including data pipeline automation for high-performance ETL (<span style=\"font-weight: 400;\">Extract-Transform-Load) operations<\/span>. This article is the first in another series <span style=\"font-weight: 400;\">on how to create and use high-performance ETL workflows in the IRI Workbench <\/span><a href=\"http:\/\/www.iri.com\/products\/workbench\/voracity-gui\"><span style=\"font-weight: 400;\">GUI for Voracity<\/span><\/a><span style=\"font-weight: 400;\">. It follows the <\/span><a href=\"http:\/\/www.iri.com\/blog\/iri\/iri-workbench\/creating-voracity-flows-using-existing-iri-scripts-part-1\/\"><span style=\"font-weight: 400;\">first series<\/span><\/a><span style=\"font-weight: 400;\"> of articles on creating flows from existing CoSort\/SortCL (ETL) job scripts. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">In this article, we create an Voracity ETL workflow using one of the built-in job creation wizards in the toolbar menu of IRI Workbench. Many ETL tools do not provide wizard-driven job design; for Voracity, this is only one of several ways to build out your jobs.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Remember that flows contain\u00a0 and other data processing steps, which are illustrated in flow and transform mapping diagrams in IRI Workbench. They are saved in .flow files for execution from IRI Workbench or serialized as .sh or .bat files for execution from inside or outside IRI Workbench. Wizards can be used to create either job scripts or flows that include them.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">This flow matches data in an Oracle table called PATIENT_RECORD with billing information from the PATIENTBILLING table, then sends it to collections. Some of the data in the PATIENT_RECORD table is sensitive. After extracting the data from the table, this phase of the job will mask some of the columns and eliminate others.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">We will begin by creating a project in IRI Workbench called WizardFlow to hold all the files associated with this Flow.<\/span><\/p>\n<h3><b>Create the Flow<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">In this case, running the job wizard to completion will build a complete ETL flow, which can be modified later. To launch the wizard and begin creating the Flow, click the stopwatch icon in the toolbar to reveal the CoSort job menu. Select <\/span><b>New Sort Job<\/b><span style=\"font-weight: 400;\"> and type PatientInfoProtect for the <\/span><b>File name<\/b><span style=\"font-weight: 400;\">. Select the <\/span><b>Create flow<\/b><span style=\"font-weight: 400;\"> radio button and click <\/span><b>Next<\/b><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/Job-Specification-File.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-9982\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/Job-Specification-File.png\" alt=\"Job Specification File\" width=\"525\" height=\"593\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/Job-Specification-File.png 525w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/Job-Specification-File-266x300.png 266w\" sizes=\"(max-width: 525px) 100vw, 525px\" \/><\/a><\/p>\n<h3><b>Define the Source<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Our source is the table PATIENT_RECORD. To create the source definition, 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. Because the source is a table, select the <\/span><b>ODBC<\/b><span style=\"font-weight: 400;\"> radio button and click <\/span><b>Browse<\/b><span style=\"font-weight: 400;\">. 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;\">PATIENT_RECORD from the drop-downs, then 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\/ODBC-Table-Selection.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-9983\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/ODBC-Table-Selection.png\" alt=\"ODBC Table Selection\" width=\"478\" height=\"460\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/ODBC-Table-Selection.png 478w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/ODBC-Table-Selection-300x289.png 300w\" sizes=\"(max-width: 478px) 100vw, 478px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">Click <\/span><b>OK <\/b><span style=\"font-weight: 400;\">again to return to the <\/span><b>Data Sources <\/b><span style=\"font-weight: 400;\">dialog. We now need to create the field or column definitions. \u00a0Select <\/span><b>Discover Metadata<\/b><span style=\"font-weight: 400;\"> to bring up the <\/span><b>Setup Options<\/b><span style=\"font-weight: 400;\"> dialog. Type PatientRecord for the <\/span><b>File Name<\/b><span style=\"font-weight: 400;\"> field and click <\/span><b>Next<\/b><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In the <\/span><b>Data Source Identification <\/b><span style=\"font-weight: 400;\">dialog, verify that the information about your table is correct, then click <\/span><b>Next<\/b><span style=\"font-weight: 400;\"> to open the <\/span><b>Field Data Viewer and Editor<\/b><span style=\"font-weight: 400;\">. The upper half contains a sample of the data from the table, along with the column names. The bottom half contains the column names, CoSort-equivalent data types, position, and data types in the source table.<\/span><\/p>\n<p><a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/Field-Data-Viewer-and-Editor.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-9984\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/Field-Data-Viewer-and-Editor.png\" alt=\"Field Data Viewer and Editor\" width=\"624\" height=\"447\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/Field-Data-Viewer-and-Editor.png 624w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/Field-Data-Viewer-and-Editor-300x215.png 300w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">Click <\/span><b>Finish<\/b><span style=\"font-weight: 400;\">, then click <\/span><b>Yes<\/b><span style=\"font-weight: 400;\"> to copy the fields into the <\/span><b>Data Sources<\/b><span style=\"font-weight: 400;\"> tree. This saves the field definitions to a reusable data definition file (DDF) so it can be referenced in this or another job. Click <\/span><b>Next <\/b><span style=\"font-weight: 400;\">to open the<\/span><b> Sort <\/b><span style=\"font-weight: 400;\">dialog where we will define a key.<\/span><\/p>\n<h3><b>Define the Sort Key(s)<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Because the next phase of this flow will join on the IDNUMBER field, we can sort on it by defining that field as the key.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Select IDNUMBER from the <\/span><b>Input Fields<\/b><span style=\"font-weight: 400;\"> box and select <\/span><b>Add Key<\/b><span style=\"font-weight: 400;\">. IDNUMBER is now displayed in the <\/span><b>Key Fields<\/b><span style=\"font-weight: 400;\"> box. You can repeat the process for as many keys as necessary for the sort. In this instance, we only need one key. 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.<\/span><\/p>\n<p><a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/New-Sort-Job-Sort.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-9985\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/New-Sort-Job-Sort.png\" alt=\"New Sort Job - Sort\" width=\"525\" height=\"593\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/New-Sort-Job-Sort.png 525w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/New-Sort-Job-Sort-266x300.png 266w\" sizes=\"(max-width: 525px) 100vw, 525px\" \/><\/a><\/p>\n<h3><b>Define the Target<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Select <\/span><b>Add Data Target<\/b><span style=\"font-weight: 400;\"> in the <\/span><b>Data Target<\/b><span style=\"font-weight: 400;\"> dialog. Select the <\/span><b>File<\/b><span style=\"font-weight: 400;\"> radio button, then type PatientInfoProtected.dat in the <\/span><b>File<\/b><span style=\"font-weight: 400;\"> field, and click <\/span><b>OK<\/b><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In the <\/span><b>Data Targets<\/b><span style=\"font-weight: 400;\"> dialog, select <\/span><b>Target Field Layout<\/b><span style=\"font-weight: 400;\">. The top half of the dialog has source definitions and the bottom half has target definitions. Initially, all of the input fields have been copied to the targets. If you want, you can click the trash can icon and delete all the fields in the target PatientInfoProtected.dat, and then drag the desired fields from the source to the target.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Since we want most of the fields, we will, instead, remove the fields that we don\u2019t want. \u00a0We want to remove AGE, EMAIL, DRIVING_LICENSE, and SSN. For each one, right-click on the field and select <\/span><b>Remove<\/b><span style=\"font-weight: 400;\">. With those fields gone, the field positions need to be recalculated by clicking the <\/span><b>1-2-3<\/b><span style=\"font-weight: 400;\"> icon.<\/span><\/p>\n<h3><b>Apply Protection<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">There are fields for two credit card numbers. These need to be masked so that only the last 4 digits of the numbers are displayed. \u00a0Right-click on the field CREDIT_CARD1 &gt; <\/span><b>Apply Rule<\/b><span style=\"font-weight: 400;\"> &gt; <\/span><b>Create Rule<\/b><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Click <\/span><b>Masking Function<\/b><span style=\"font-weight: 400;\"> under <\/span><b>Protection Rules<\/b><span style=\"font-weight: 400;\"> and verify that the <\/span><b>Library location<\/b><span style=\"font-weight: 400;\"> has our project name. Type CreditCardMask for the <\/span><b>Rule name<\/b><span style=\"font-weight: 400;\">, and click <\/span><b>Next.<\/b><\/p>\n<p><a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/New-Field-Rule-Wizard.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-9986\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/New-Field-Rule-Wizard.png\" alt=\"New Field Rule Wizard\" width=\"525\" height=\"746\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/New-Field-Rule-Wizard.png 525w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/New-Field-Rule-Wizard-211x300.png 211w\" sizes=\"(max-width: 525px) 100vw, 525px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">In the <\/span><b>Masking Function<\/b><span style=\"font-weight: 400;\"> dialog, select the <\/span><b>Define mask<\/b><span style=\"font-weight: 400;\"> radio button. Type * for <\/span><b>Mask character<\/b><span style=\"font-weight: 400;\">, 1 for <\/span><b>Start position<\/b><span style=\"font-weight: 400;\">, 12 for <\/span><b>Length<\/b><span style=\"font-weight: 400;\">, then click <\/span><b>Add to table<\/b><span style=\"font-weight: 400;\">. The definition is added to the table at the bottom. 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\/Masking-Function.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-9987\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/Masking-Function.png\" alt=\"Masking Function\" width=\"446\" height=\"636\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/Masking-Function.png 446w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/Masking-Function-210x300.png 210w\" sizes=\"(max-width: 446px) 100vw, 446px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">We have returned to the <\/span><b>Target Field Layout <\/b><span style=\"font-weight: 400;\">dialog and now want to mask the other credit card field. \u00a0We already created the masking rule for credit cards, so we want to use that rule. Right-click on the field CREDIT_CARD2 &gt; <\/span><b>Apply Rule<\/b><span style=\"font-weight: 400;\"> &gt; <\/span><b>Browse Rule<\/b><span style=\"font-weight: 400;\">. When the <\/span><b>Field Rule Library<\/b><span style=\"font-weight: 400;\"> dialog displays, select the rule named CreditCardMask and 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\/Field-Rule-Library.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-9988\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/Field-Rule-Library.png\" alt=\"Field Rule Library\" width=\"547\" height=\"450\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/Field-Rule-Library.png 547w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/Field-Rule-Library-300x247.png 300w\" sizes=\"(max-width: 547px) 100vw, 547px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">The two credit card fields now have the <\/span><b>Field<\/b><span style=\"font-weight: 400;\"> designation of <\/span><b>Function<\/b><span style=\"font-weight: 400;\">, and the field names have been changed to MASK_CREDIT_CARD1 and MASK_CREDIT_CARD2 because these are now derived fields.<\/span><\/p>\n<p><a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/Target-Field-Layout.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-9989\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/Target-Field-Layout.png\" alt=\"Target Field Layout\" width=\"624\" height=\"559\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/Target-Field-Layout.png 624w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/Target-Field-Layout-300x269.png 300w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">Click <\/span><b>OK<\/b><span style=\"font-weight: 400;\"> to return to the <\/span><b>Data Targets<\/b><span style=\"font-weight: 400;\"> dialog where the tree outline is displayed in the box on the left. 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\/New-Sort-Job-Data-Targets.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-9990\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/New-Sort-Job-Data-Targets.png\" alt=\"New Sort Job - Data Targets\" width=\"525\" height=\"507\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/New-Sort-Job-Data-Targets.png 525w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/New-Sort-Job-Data-Targets-300x290.png 300w\" sizes=\"(max-width: 525px) 100vw, 525px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">PatientInfoProtect.flow is now part of the project and displays in the editor. In the project, rename the flow to Collections.flow and then expand the flow. Right-click Batch: PatientInfoProtect.scl \u00a0&gt; <\/span><b>New Representation<\/b><span style=\"font-weight: 400;\"> &gt; <\/span><b>new flow diagram.<\/b><span style=\"font-weight: 400;\"> For <\/span><b>Representation name<\/b><span style=\"font-weight: 400;\">, type Collections Flow Diagram in the <\/span><b>New Representation<\/b><span style=\"font-weight: 400;\"> dialog, and click <\/span><b>OK<\/b><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">A flow is created and displayed in the editor. It consists of a gray flowlet block that contains a green <\/span><b>Start<\/b><span style=\"font-weight: 400;\"> block and a brown Transform Mapping Block named PatientInfoProtect.scl.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The <\/span><b>Start <\/b><span style=\"font-weight: 400;\">block has an arrow connected to the icon for input table NIGHTLY.PATIENT_RECORD in the Transform Mapping Block. There is also an output file icon named PatientInfoProtected.dat.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Let\u2019s change the name of the batch and the name of the flowlet from PatientInfoProtect.scl to Collections. Click in the white space around the flowlet. Then in the <\/span><b>Properties <\/b><span style=\"font-weight: 400;\">view at the bottom of the screen, select <\/span><b>Base<\/b><span style=\"font-weight: 400;\">, and type Collections in the <\/span><b>Name<\/b><span style=\"font-weight: 400;\"> field. Now click in the flowlet and do the same. The names are changed in the editor and in the <\/span><b>Project Explorer<\/b><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/IRI-Development-Project-Explorer.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-9991\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/IRI-Development-Project-Explorer.png\" alt=\"IRI Development - Project Explorer\" width=\"624\" height=\"434\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/IRI-Development-Project-Explorer.png 624w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/IRI-Development-Project-Explorer-300x209.png 300w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">Double-click in the Transform Mapping Block and name the diagram PatientInfoProtect Transform Mapping Diagram. Click <\/span><b>OK<\/b><span style=\"font-weight: 400;\">. This displays a detailed diagram of the job PatientInfoProtect.scl that we created using the <\/span><b>New Sort Job<\/b><span style=\"font-weight: 400;\"> option from the <\/span><b>CoSort Menu<\/b><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The input file with fields is displayed in the <\/span><b>Input Data<\/b><span style=\"font-weight: 400;\"> block. You can follow the fields through the <\/span><b>Action <\/b><span style=\"font-weight: 400;\">block where, in this case, the sort key is defined. Then follow the fields into the file block in the <\/span><b>Output Data<\/b><span style=\"font-weight: 400;\"> block. Notice that not all the fields were mapped into the output, and that the two fields where masking was applied have orange instead of blue connecting arrows. This is because a masking function is applied to the values in the original fields before being accepted to the output. For a more detailed explanation of these blocks, see <\/span><i><span style=\"font-weight: 400;\">Creating Voracity Flows Using Existing IRI Scripts (Part 1).<\/span><\/i><\/p>\n<p><a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/Input-Data-Action-Output-Data.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-9992\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/Input-Data-Action-Output-Data.png\" alt=\"Input Data - Action - Output Data\" width=\"624\" height=\"275\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/Input-Data-Action-Output-Data.png 624w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/Input-Data-Action-Output-Data-300x132.png 300w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">Now, go back to the Collections Flow Diagram in the editor. To create the job script PatientInfoProtect.scl and the batch file for this flow, 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 Collections.bat is in the <\/span><b>File name<\/b><span style=\"font-weight: 400;\"> field. This 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 script and batch file are created and placed in the project. \u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Following are the batch script and the job script it can execute. This is done from within IRI Workbench directly, through its task scheduler, any third-party job scheduler, or from the command line:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Collections.bat<\/span><\/p>\n<pre><span style=\"font-weight: 400;\">@echo off\r\n <\/span><span style=\"font-weight: 400;\">sortcl \/SPECIFICATION=PatientInfoProtect.scl<\/span><\/pre>\n<p><span style=\"font-weight: 400;\">PatientInfoProtect.scl<\/span><\/p>\n<pre>\/INFILE=\"NIGHTLY.PATIENT_RECORD;DSN=Oracle_qa2;UID=nightly;PWD=N321ghtly;\"\r\n     \/ALIAS=NIGHTLY_PATIENT_RECORD\r\n     \/PROCESS=ODBC\r\n     \/FIELD=(IDNUMBER, TYPE=ASCII, POSITION=1, SEPARATOR=\"\\t\", EXT_FIELD=\"IDNUMBER\")\r\n     \/FIELD=(NAME, TYPE=ASCII, POSITION=2, SEPARATOR=\"\\t\", EXT_FIELD=\"NAME\")\r\n     \/FIELD=(AGE, TYPE=ASCII, POSITION=3, SEPARATOR=\"\\t\", EXT_FIELD=\"AGE\")\r\n     \/FIELD=(EMAIL, TYPE=ASCII, POSITION=4, SEPARATOR=\"\\t\", EXT_FIELD=\"EMAIL\")\r\n     \/FIELD=(PHONE, TYPE=ASCII, POSITION=5, SEPARATOR=\"\\t\", EXT_FIELD=\"PHONE\")\r\n     \/FIELD=(CREDIT_CARD1, TYPE=ASCII, POSITION=6, SEPARATOR=\"\\t\", EXT_FIELD=\"CREDIT_CARD1\")\r\n     \/FIELD=(CREDIT_CARD2, TYPE=ASCII, POSITION=7, SEPARATOR=\"\\t\", EXT_FIELD=\"CREDIT_CARD2\")\r\n     \/FIELD=(DRIVING_LICENSE, TYPE=ASCII, POSITION=8, SEPARATOR=\"\\t\", EXT_FIELD=\"DRIVING_LICENSE\")\r\n     \/FIELD=(SSN, TYPE=ASCII, POSITION=9, SEPARATOR=\"\\t\", EXT_FIELD=\"SSN\")\r\n     \/FIELD=(CITY, TYPE=ASCII, POSITION=10, SEPARATOR=\"\\t\", EXT_FIELD=\"CITY\")\r\n     \/FIELD=(STATE, TYPE=ASCII, POSITION=11, SEPARATOR=\"\\t\", EXT_FIELD=\"STATE\")\r\n\r\n\/SORT\r\n     \/KEY=(IDNUMBER, TYPE=ASCII)\r\n     \r\n\/OUTFILE=PatientInfoProtected\r\n     \/PROCESS=RECORD\r\n     \/FIELD=(IDNUMBER, TYPE=ASCII, POSITION=1, SEPARATOR=\"\\t\", EXT_FIELD=\"IDNUMBER\")\r\n     \/FIELD=(NAME, TYPE=ASCII, POSITION=2, SEPARATOR=\"\\t\", EXT_FIELD=\"NAME\")\r\n     \/FIELD=(PHONE, TYPE=ASCII, POSITION=3, SEPARATOR=\"\\t\", EXT_FIELD=\"PHONE\")\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\/FIELD=(MASK_CREDIT_CARD1=replace_chars(CREDIT_CARD1, \"*\", 1, 12), TYPE=ASCII, POSITION=4, SEPARATOR=\"\\t\", EXT_FIELD=\"CREDIT_CARD1\")\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\/FIELD=(MASK_CREDIT_CARD2=replace_chars(CREDIT_CARD2, \"*\", 1, 12), TYPE=ASCII, POSITION=5, SEPARATOR=\"\\t\", EXT_FIELD=\"CREDIT_CARD2\")\r\n     \/FIELD=(CITY, TYPE=ASCII, POSITION=6, SEPARATOR=\"\\t\", EXT_FIELD=\"CITY\")\r\n     \/FIELD=(STATE, TYPE=ASCII, POSITION=7, SEPARATOR=\"\\t\", EXT_FIELD=\"STATE\")<\/pre>\n<p><span style=\"font-weight: 400;\"><br \/>\nIn the <a href=\"http:\/\/www.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-2-of-2\/\">next article<\/a>, we will use another CoSort job wizard in IRI Workbench to create a Transform Mapping Block that will be added to the flowlet created in this article. The output from the script, represented here by the Transform Mapping Block, will become one of the inputs for a new Transform Mapping Block.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Abstract:\u00a0The IRI Voracity data management platform provides data integration tools, including data pipeline automation for high-performance ETL (Extract-Transform-Load) operations. This article is the first in another series on how to create and use high-performance ETL workflows in the IRI Workbench GUI for Voracity. It follows the first series of articles on creating flows from existing<\/p>\n<div><a class=\"btn-filled btn\" href=\"https:\/\/www.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-1-of-2\/\" title=\"Creating a Voracity Flow from a Wizard (Part 1 of 2)\">Read More<\/a><\/div>\n","protected":false},"author":10,"featured_media":9991,"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":[44,1862,632,1112,100,131,46,102,1113,789,967,50,1114,284,1096,68,193,1013],"class_list":["post-9980","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-etl","category-iri-workbench","tag-cosort","tag-data-integration-tools","tag-data-source","tag-discover-metadata","tag-etl","tag-etl-tool","tag-etl-tools","tag-extract-transform-load","tag-input","tag-iri-voracity","tag-job-wizard","tag-oracle","tag-output","tag-protection","tag-sort-key","tag-sortcl","tag-testing-etl","tag-voracity-etl"],"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 a Wizard (Part 1 of 2) - IRI<\/title>\n<meta name=\"description\" content=\"Learn how to create and use ETL workflows in the IRI Voracity data integration platform via job wizards for faster data pipeline automation.\" \/>\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\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-1-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 1 of 2)\" \/>\n<meta property=\"og:description\" content=\"Learn how to create and use ETL workflows in the IRI Voracity data integration platform via job wizards for faster data pipeline automation.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-1-of-2\/\" \/>\n<meta property=\"og:site_name\" content=\"IRI\" \/>\n<meta property=\"article:published_time\" content=\"2016-04-08T18:18:45+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-10-23T19:43:54+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/IRI-Development-Project-Explorer.png\" \/>\n\t<meta property=\"og:image:width\" content=\"624\" \/>\n\t<meta property=\"og:image:height\" content=\"434\" \/>\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=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-1-of-2\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-1-of-2\/\"},\"author\":{\"name\":\"Susan Gegner\",\"@id\":\"https:\/\/www.iri.com\/blog\/#\/schema\/person\/87be5da567628ab9396ca81170f36d63\"},\"headline\":\"Creating a Voracity Flow from a Wizard (Part 1 of 2)\",\"datePublished\":\"2016-04-08T18:18:45+00:00\",\"dateModified\":\"2024-10-23T19:43:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-1-of-2\/\"},\"wordCount\":1487,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.iri.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-1-of-2\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/IRI-Development-Project-Explorer.png\",\"keywords\":[\"CoSort\",\"data integration tools\",\"data source\",\"discover metadata\",\"ETL\",\"ETL tool\",\"ETL tools\",\"extract transform load\",\"input\",\"IRI Voracity\",\"job wizard\",\"Oracle\",\"output\",\"protection\",\"sort key\",\"SortCL\",\"testing ETL\",\"Voracity ETL\"],\"articleSection\":[\"ETL\",\"IRI Workbench\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-1-of-2\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-1-of-2\/\",\"url\":\"https:\/\/www.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-1-of-2\/\",\"name\":\"Creating a Voracity Flow from a Wizard (Part 1 of 2) - IRI\",\"isPartOf\":{\"@id\":\"https:\/\/www.iri.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-1-of-2\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-1-of-2\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/IRI-Development-Project-Explorer.png\",\"datePublished\":\"2016-04-08T18:18:45+00:00\",\"dateModified\":\"2024-10-23T19:43:54+00:00\",\"description\":\"Learn how to create and use ETL workflows in the IRI Voracity data integration platform via job wizards for faster data pipeline automation.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-1-of-2\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-1-of-2\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-1-of-2\/#primaryimage\",\"url\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/IRI-Development-Project-Explorer.png\",\"contentUrl\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/IRI-Development-Project-Explorer.png\",\"width\":624,\"height\":434,\"caption\":\"IRI Development - Project Explorer\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-1-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 a Wizard (Part 1 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 a Wizard (Part 1 of 2) - IRI","description":"Learn how to create and use ETL workflows in the IRI Voracity data integration platform via job wizards for faster data pipeline automation.","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\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-1-of-2\/","og_locale":"en_US","og_type":"article","og_title":"Creating a Voracity Flow from a Wizard (Part 1 of 2)","og_description":"Learn how to create and use ETL workflows in the IRI Voracity data integration platform via job wizards for faster data pipeline automation.","og_url":"https:\/\/www.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-1-of-2\/","og_site_name":"IRI","article_published_time":"2016-04-08T18:18:45+00:00","article_modified_time":"2024-10-23T19:43:54+00:00","og_image":[{"width":624,"height":434,"url":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/IRI-Development-Project-Explorer.png","type":"image\/png"}],"author":"Susan Gegner","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Susan Gegner","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-1-of-2\/#article","isPartOf":{"@id":"https:\/\/www.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-1-of-2\/"},"author":{"name":"Susan Gegner","@id":"https:\/\/www.iri.com\/blog\/#\/schema\/person\/87be5da567628ab9396ca81170f36d63"},"headline":"Creating a Voracity Flow from a Wizard (Part 1 of 2)","datePublished":"2016-04-08T18:18:45+00:00","dateModified":"2024-10-23T19:43:54+00:00","mainEntityOfPage":{"@id":"https:\/\/www.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-1-of-2\/"},"wordCount":1487,"commentCount":0,"publisher":{"@id":"https:\/\/www.iri.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-1-of-2\/#primaryimage"},"thumbnailUrl":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/IRI-Development-Project-Explorer.png","keywords":["CoSort","data integration tools","data source","discover metadata","ETL","ETL tool","ETL tools","extract transform load","input","IRI Voracity","job wizard","Oracle","output","protection","sort key","SortCL","testing ETL","Voracity ETL"],"articleSection":["ETL","IRI Workbench"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-1-of-2\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-1-of-2\/","url":"https:\/\/www.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-1-of-2\/","name":"Creating a Voracity Flow from a Wizard (Part 1 of 2) - IRI","isPartOf":{"@id":"https:\/\/www.iri.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-1-of-2\/#primaryimage"},"image":{"@id":"https:\/\/www.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-1-of-2\/#primaryimage"},"thumbnailUrl":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/IRI-Development-Project-Explorer.png","datePublished":"2016-04-08T18:18:45+00:00","dateModified":"2024-10-23T19:43:54+00:00","description":"Learn how to create and use ETL workflows in the IRI Voracity data integration platform via job wizards for faster data pipeline automation.","breadcrumb":{"@id":"https:\/\/www.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-1-of-2\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-1-of-2\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-1-of-2\/#primaryimage","url":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/IRI-Development-Project-Explorer.png","contentUrl":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2016\/07\/IRI-Development-Project-Explorer.png","width":624,"height":434,"caption":"IRI Development - Project Explorer"},{"@type":"BreadcrumbList","@id":"https:\/\/www.iri.com\/blog\/iri\/iri-workbench\/creating-a-voracity-flow-from-a-wizard-part-1-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 a Wizard (Part 1 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\/IRI-Development-Project-Explorer.png","_links":{"self":[{"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/posts\/9980"}],"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=9980"}],"version-history":[{"count":20,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/posts\/9980\/revisions"}],"predecessor-version":[{"id":18071,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/posts\/9980\/revisions\/18071"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/media\/9991"}],"wp:attachment":[{"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/media?parent=9980"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/categories?post=9980"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/tags?post=9980"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}