diff --git a/docs/best-practices/secure-agent.md b/docs/best-practices/secure-agent.md index de89cb416cfff946d429d922d55dddce0811d941..8492081539557d4eb42f06351dd3e0dabd02ea6e 100644 --- a/docs/best-practices/secure-agent.md +++ b/docs/best-practices/secure-agent.md @@ -46,7 +46,7 @@ For more information on Secure Agents with Cloud Application Integration, please ## Secure Agent For Training and Learning Purposes There are multiple options if you are looking for a Secure Agent for training and learning purposes. -* Install a Secure Agent in your local computer for training and learning proposes. See [installation guide](https://docs.informatica.com/integration-cloud/cloud-application-integration/current-version/2---getting-started/installing-secure-agents.html) for installing Secure Agent locally. +* Install a Secure Agent in your local computer for training and learning proposes. See [installation guide](https://docs.informatica.com/integration-cloud/cloud-data-integration/current-version/getting-started/installing-secure-agents.html) for installing Secure Agent locally. * Use Docker image maintained by EI for installing Secure Agent locally. See [documentation](https://git.doit.wisc.edu/interop/iics/iics_secure_agent) (mentioned under Recommendations above as well). * Test Secure Agent instance deployed by EI on AWS. See [user guide](https://git.doit.wisc.edu/interop/iics/iics_secure_agent/-/blob/master/userguide.md) for details. diff --git a/docs/on-boarding-to-iics.md b/docs/on-boarding-to-iics.md index 95073a758fdbd8d0aebf7e179051c7c2282dcde8..7a3d416dc3ad8ff2f3d9c0cf476be0c2f63da238 100644 --- a/docs/on-boarding-to-iics.md +++ b/docs/on-boarding-to-iics.md @@ -19,4 +19,4 @@ See [this document](./howto.md#how-to-create-a-manifest-group-for-your-team-for- We will also work on setting up any additional connectors, sub-orgs, or secure agent licenses, if applicable to your use case. After getting access to IICS, you can start [training](./training.md), follow [tutorials](./tutorials.md), and start implementing your integration(s). -Informatica also provides documentation to get started (e.g. [getting started guide for Cloud Application Integration (CAI)](https://network.informatica.com/docs/DOC-17653)). +Informatica also provides documentation to get started (e.g. [getting started guide for Cloud Application Integration (CAI)](https://knowledge.informatica.com/s/article/DOC-17653?language=en_US)). diff --git a/docs/training.md b/docs/training.md index 3fc25c3ac54b0a4510e01298ad130d2e396aeae9..2bd7ab6acf4ab6ad7e5c396e5b0dd285e3cd18a4 100644 --- a/docs/training.md +++ b/docs/training.md @@ -34,9 +34,11 @@ There are two main services offered by Informatica to access training material: [Informatica University](https://www.informatica.com/services-and-training/informatica-university/find-training.html) has the most training resources available. Filter by product "Cloud Integration" and training method "onDemand" to browse the free self-paced trainings. -For Data Integration, we recommend starting with the training "[IICS: Cloud Data Integration Services](https://www.informatica.com/services-and-training/informatica-university/find-training/iics-cloud-data-integration-services/ondemand.html)". +In addition, reccomended training programs can be found in the page for [Informatica University Cloud Training Paths](https://now.informatica.com/Cloud-Landing-Page.html). -For Application Integration, we recommend starting with the training "[Cloud Application Integration Processes for Developers](https://www.informatica.com/services-and-training/informatica-university/find-training/cloud-application-integration-processes-for-developers-instructor-led/ondemand.html)". +For Data Integration, we recommend starting with the training "[IICS: Cloud Data Integration Services](https://now.informatica.com/IICS-Cloud-Data-Integration-Services-onDemand.html)". + +For Application Integration, we recommend starting with the training "[Cloud Application Integration Processes for Developers](https://now.informatica.com/Cloud-Application-Integration-Services-for-Developers-onDemand.html)". ### Success Portal @@ -50,4 +52,4 @@ Some areas of the Success Portal link out to [Informatica Network](https://netwo During some trainings, there might be mentions of setting up your own secure agent or accessing a secure agent directly. For training purposes, the shared test organization can be used to create secure agents. -Please make sure to destroy any secure agents used for training purposes when the training is completed. \ No newline at end of file +Please make sure to destroy any secure agents used for training purposes when the training is completed. diff --git a/docs/tutorials/box/box.md b/docs/tutorials/box/box.md index a386aec69b37efcf4414aed8f773cb513b6b7837..4a19f354036ef89df6c81241ff4178473c326869 100644 --- a/docs/tutorials/box/box.md +++ b/docs/tutorials/box/box.md @@ -101,5 +101,5 @@ This tutorial walks through how to set up Box connector to copy content from Box * https://kb.wisc.edu/box/page.php?id=80045 * https://kb.wisc.edu/26278 * [Data classification](https://www.wisconsin.edu/uw-policies/uw-system-administrative-policies/information-security-data-classification-and-protection/information-security-data-classification/) -* [IICS Box connector documentation](https://docs.informatica.com/integration-cloud/cloud-data-integration-connectors/current-version/box-connector) +* [IICS Box connector documentation](https://knowledge.informatica.com/s/article/DOC-17997?language=en_US) * [Box search API](https://developer.box.com/reference/get-search/) \ No newline at end of file diff --git a/docs/tutorials/wiscalerts/wiscalerts.md b/docs/tutorials/wiscalerts/wiscalerts.md index d4ff7f04202925aae0bd7c068c5a1998106cf476..f609edb302afe553271fc7cacb6925c9ea5f8045 100644 --- a/docs/tutorials/wiscalerts/wiscalerts.md +++ b/docs/tutorials/wiscalerts/wiscalerts.md @@ -6,16 +6,16 @@ This tutorial demonstrates using Informatica Intelligent Cloud Services (IICS) t ## Setting Up Connections to Sources and Targets -First, we need to configure IICS [Connections](https://network.informatica.com/onlinehelp/IICS/prod/admin/en/index.htm#page/ff-cloud-connections/Connectors_and_connections.html) to our source databases and targets. +First, we need to configure IICS [Connections](https://docs.informatica.com/integration-cloud/cloud-data-integration/current-version/data-integration-connections/connectors-and-connections.html) to our source databases and targets. ### Prerequisites Before setting up connections to sources and targets: 1. Gather connection information for each of your sources and targets. For databases, you'll need a username, password, host name, port, and database name. -2. Determine which [Secure Agent](https://network.informatica.com/onlinehelp/IICS/prod/admin/en/index.htm#page/cc-cloud-administrator/Secure_Agents.html) you will be using for your integration. A list of Secure Agents for your organization can be found under _Runtime Environments_ in the _Administrator_ module of IICS. You may need to consult your IICS administrator for guidance. +2. Determine which [Secure Agent](https://docs.informatica.com/integration-cloud/cloud-platform/current-version/runtime-environments/runtime-environments/secure-agents.html) you will be using for your integration. A list of Secure Agents for your organization can be found under _Runtime Environments_ in the _Administrator_ module of IICS. You may need to consult your IICS administrator for guidance. 3. Verify that your Secure Agent has network connectivity to your various connections, including any firewall rules that may need to be configured. -4. Determine which connectors you will need. For example, you may need a specific database connector (e.g. Oracle, MySQL, PostgreSQL) or you may want to use JDBC. Informatica maintains a [list of connectors](https://www.informatica.com/products/cloud-integration/connectivity/connectors.html) on their website, and you may need to work with your system administrator to verify that the connector you need is available in your environment. In this example, we'll be using [Oracle](https://network.informatica.com/onlinehelp/IICS/prod/CDI/en/index.htm#page/ff-cloud-connections/Oracle_connection_properties.html) and [Amazon S3](https://network.informatica.com/onlinehelp/IICS/prod/CDI/en/index.htm#page/data-integration-amazon-s3-connector/Introduction_to_Amazon_S3_Connector.html) connections. +4. Determine which connectors you will need. For example, you may need a specific database connector (e.g. Oracle, MySQL, PostgreSQL) or you may want to use JDBC. Informatica maintains a [list of connectors](https://www.informatica.com/products/cloud-integration/connectivity/connectors.html) on their website, and you may need to work with your system administrator to verify that the connector you need is available in your environment. In this example, we'll be using [Oracle](https://docs.informatica.com/integration-cloud/cloud-data-integration-connectors/current-version/oracle-connector/oracle-connections/oracle-connection-properties.html) and [Amazon S3](https://docs.informatica.com/integration-cloud/cloud-data-integration-connectors/current-version/amazon-s3-connector/introduction-to-amazon-s3-connector.html) connections. #### JDBC Connections @@ -67,7 +67,7 @@ IICS permissions are based on folder level permissions, and best practice is to ### Mapping -The main work of an IICS data integration is accomplished in a [Mapping](https://network.informatica.com/onlinehelp/IICS/prod/CDI/en/index.htm#page/hh-cloud-mappings/Mappings.html). We'll be creating one mapping with many [Tranformations](https://network.informatica.com/onlinehelp/IICS/prod/CDI/en/index.htm#page/jj-cloud-transformations/Transformations.html) to get the data from our sources, make changes to the data, and put our new data in our target system. +The main work of an IICS data integration is accomplished in a [Mapping](https://docs.informatica.com/integration-cloud/cloud-data-integration/current-version/mappings/preface.html). We'll be creating one mapping with many [Tranformations](https://docs.informatica.com/integration-cloud/cloud-data-integration/current-version/transformations/preface.html) to get the data from our sources, make changes to the data, and put our new data in our target system. #### Emails @@ -79,7 +79,7 @@ Let's take emails from our source database and put them in a CSV file in Amazon  -IICS will create a basic mapping with a [Source](https://network.informatica.com/onlinehelp/IICS/prod/CDI/en/index.htm#page/jj-cloud-transformations/Source_transformation.html) and a [Target](https://network.informatica.com/onlinehelp/IICS/prod/CDI/en/index.htm#page/jj-cloud-transformations/Target_transformation.html). +IICS will create a basic mapping with a [Source](https://docs.informatica.com/integration-cloud/cloud-data-integration/current-version/transformations/source-transformation.html) and a [Target](https://docs.informatica.com/integration-cloud/cloud-data-integration/current-version/transformations/target-transformation.html).  @@ -99,7 +99,7 @@ After adding the basic mapping, let's edit our source to get emails.  -Some data sources support [partitioning](https://network.informatica.com/onlinehelp/IICS/prod/CDI/en/index.htm#page/jj-cloud-transformations/Partitions.html), which optimize performance for larger data sets. In our case, we don't need to configure this. +Some data sources support [partitioning](https://docs.informatica.com/integration-cloud/cloud-data-integration/current-version/transformations/target-transformation/partitions.html), which optimize performance for larger data sets. In our case, we don't need to configure this. ##### Email Target @@ -148,7 +148,7 @@ Congratulations! You have successfully created your first mapping! At this point, we have identifiers and emails being copied from our source to our target system. However, as part of our [ETL](https://en.wikipedia.org/wiki/Extract,_transform,_load) process, we'd like to validate that the email addresses are in the [correct format](https://en.wikipedia.org/wiki/Email_address), _localaddress@domain_, and has the correct characters for each part of the address. If one of our email addresses doesn't match, we will send it to a different S3 file that we can use for debugging and alerting purposes. -In order to accomplish this, we will be using an [Expression](https://network.informatica.com/onlinehelp/IICS/prod/CDI/en/index.htm#page/jj-cloud-transformations/Expression_transformation.html) transformation that will set a variable for each email address and a [Router](https://network.informatica.com/onlinehelp/IICS/prod/CDI/en/index.htm#page/jj-cloud-transformations/Router_transformation.html) transformation to copy bad emails to one file and good emails to another file. +In order to accomplish this, we will be using an [Expression](https://docs.informatica.com/integration-cloud/cloud-data-integration/current-version/transformations/expression-transformation.html) transformation that will set a variable for each email address and a [Router](https://docs.informatica.com/integration-cloud/cloud-data-integration/current-version/transformations/router-transformation.html) transformation to copy bad emails to one file and good emails to another file. Let's get started! @@ -176,22 +176,22 @@ The first new field that we will be adding is a _Variable Field_, a variable tha  9. This opens the _Field Expression_ window where you can define the value. Here, we are using -two Informatica functions, _lower_ and _reg_replace_, to remove whitespace from our email addresses. Many of the Informatica functions are based on similar SQL functions, although there are some differences, so it is best to refer to the [function reference](https://network.informatica.com/onlinehelp/IICS/prod/CDI/en/index.htm#page/qq-cloud-function-reference/Function_reference.html), which is available online and in the _Field Expression_ window by clicking on the dropdown _Fields_ and choosing _Built-in functions_. +two Informatica functions, _lower_ and _reg_replace_, to remove whitespace from our email addresses. Many of the Informatica functions are based on similar SQL functions, although there are some differences, so it is best to refer to the [function reference](https://docs.informatica.com/integration-cloud/cloud-data-integration/current-version/function-reference/preface.html), which is available online and in the _Field Expression_ window by clicking on the dropdown _Fields_ and choosing _Built-in functions_.  10. Create two new variables, _new_email_ and _valid_email_. Unlike _trimmed_email_, both of these are _Output Fields_, which means they will passed to subsequent transformations in the mapping. Field _new_email_ should be of _string_ type with a precision of _100_ and _valid_email_ should be set to type _integer_. Integer values stand in for boolean types in IICS, with FALSE being equivalent to 0 and TRUE being any non-zero integer value. -11. Edit the field expressions for each of these variables. The [expression](https://network.informatica.com/onlinehelp/IICS/prod/CDI/en/index.htm#page/ll-cloud-tasks/Field_expressions.html) for _new_email_ is set to the variable field _trimmed_email_, so it can be used in later transformations. We also use _trimmed_email_ in the expression for _valid_email_, using an IICS built-in function, [reg_match](https://network.informatica.com/onlinehelp/IICS/prod/CDI/en/index.htm#page/qq-cloud-function-reference/REG_MATCH.html), to compare our _trimmed_email_ variable to a Perl regular expression for a correctly formatted email address and return a boolean value. +11. Edit the field expressions for each of these variables. The [expression](https://docs.informatica.com/integration-cloud/cloud-data-integration/current-version/tasks/data-integration-tasks/field-expressions.html) for _new_email_ is set to the variable field _trimmed_email_, so it can be used in later transformations. We also use _trimmed_email_ in the expression for _valid_email_, using an IICS built-in function, [reg_match](https://docs.informatica.com/integration-cloud/cloud-data-integration/current-version/function-reference/functions/reg_match.html), to compare our _trimmed_email_ variable to a Perl regular expression for a correctly formatted email address and return a boolean value.  ##### Routing -In this step, we will use the value of _valid_email_ with a [Router](https://network.informatica.com/onlinehelp/IICS/prod/CDI/en/index.htm#page/jj-cloud-transformations/Router_transformation.html) transformation that will send correctly formatted email addresses to our _S3_Emails_ target and incorrectly formatted emails to a new target called _S3_Bad_Emails_. +In this step, we will use the value of _valid_email_ with a [Router](https://docs.informatica.com/integration-cloud/cloud-data-integration/current-version/transformations/router-transformation.html) transformation that will send correctly formatted email addresses to our _S3_Emails_ target and incorrectly formatted emails to a new target called _S3_Bad_Emails_. 1. Return to the designer and hover the arrow connecting _email_fields_ and _S3_Emails_, and then click on the circle with three dots. -2. Scroll down and click on _Router_ to add a [Router transformation](https://network.informatica.com/onlinehelp/IICS/prod/CDI/en/index.htm#page/jj-cloud-transformations/Router_transformation.html) to your mapping. +2. Scroll down and click on _Router_ to add a [Router transformation](https://docs.informatica.com/integration-cloud/cloud-data-integration/current-version/transformations/router-transformation.html) to your mapping.  @@ -238,7 +238,7 @@ At this point, our mapping successfully reads identifiers and emails from our so We have found S3 to be an excellent place to store targets and lookup objects with excellent performance and easy accessibility. For example, S3 is an excellent option for when you do not have easy access to the Secure Agent filesystem. You may want to manually create or use [Terraform](https://terraform.io) or another [infrastructure as code](https://en.wikipedia.org/wiki/Infrastructure_as_code) tool to create your target objects in S3 before you work on your mapping. This will allow you to map the fields directly. The only thing you need to create is a CSV file with header information, e.g. `ID,EMAIL_ADDRESS`, and then you will be able to map IICS fields to your file. -One issue that we have run into using the S3 connector is instances where your target file should not have a header row. Targets created with the IICS [Flat File connection](https://network.informatica.com/onlinehelp/IICS/prod/admin/en/index.htm#page/ff-cloud-connections/Flat_file_connections.html) have an option for not including the header row, where targets created using the S3 connector do not. +One issue that we have run into using the S3 connector is instances where your target file should not have a header row. Targets created with the IICS [Flat File connection](https://docs.informatica.com/integration-cloud/cloud-platform/current-version/connections/connection-properties/flat-file-connections.html) have an option for not including the header row, where targets created using the S3 connector do not. #### Flattening Emails @@ -248,7 +248,7 @@ We can handle this criteria using a common SQL technique of assigning a row numb ##### Adding Rank -1. Begin by selecting the arrow between _Emails_Router_ and _S3_Emails_, then clicking the three dots and choosing a [Rank](https://network.informatica.com/onlinehelp/IICS/prod/CDI/en/index.htm#page/jj-cloud-transformations/Rank_transformation.html) transformation, which is an equivalent concept to rank functions found in SQL databases. +1. Begin by selecting the arrow between _Emails_Router_ and _S3_Emails_, then clicking the three dots and choosing a [Rank](https://docs.informatica.com/integration-cloud/cloud-data-integration/current-version/transformations/rank-transformation.html) transformation, which is an equivalent concept to rank functions found in SQL databases.  @@ -276,7 +276,7 @@ Now that we've added a rank to each row, let's calculate a row number by adding  3. Create an integer output field named _output_row_. The expression for _output_row_ should be set to `trunc(rankindex/3,0)`. This will divide the rankindex value by three, the number of email columns we need in our target, and throw away the remainder, giving us a row number for each value of our identifier, PVI. -4. Create an integer output field named _output_order_ with an expression of `iif(rankindex>3,mod(rankindex,3),rankindex)`. This is our first use of [IIF](https://network.informatica.com/onlinehelp/IICS/prod/CDI/en/index.htm#page/qq-cloud-function-reference/IIF.html), the IICS conditional function, which is used frequently in tranformations. Here we are using it to give us the remainder of the RANKINDEX divided by three, which will give us the rank of the row with regards to the new output row. For example if our _RANKINDEX_ is 7, the _output_order_, _**1**_, will be calculated by using integer division represented by the equation _7 ÷ 3 = 2 r **1**_. +4. Create an integer output field named _output_order_ with an expression of `iif(rankindex>3,mod(rankindex,3),rankindex)`. This is our first use of [IIF](https://docs.informatica.com/integration-cloud/cloud-data-integration/current-version/function-reference/functions/iif.html), the IICS conditional function, which is used frequently in tranformations. Here we are using it to give us the remainder of the RANKINDEX divided by three, which will give us the rank of the row with regards to the new output row. For example if our _RANKINDEX_ is 7, the _output_order_, _**1**_, will be calculated by using integer division represented by the equation _7 ÷ 3 = 2 r **1**_.  @@ -294,7 +294,7 @@ Here's how our data might look after our expression tranformation: ##### Flattening With An Aggregator Tranformation And Group Function -In order to flatten these values for a CSV file with _ID_, _EMAIL1_, _EMAIL2_, and _EMAIL3_ columns, we can use an [Aggregator](https://network.informatica.com/onlinehelp/IICS/prod/CDI/en/index.htm#page/jj-cloud-transformations/Aggregator_transformation.html) tranformation and the [MAX](https://network.informatica.com/onlinehelp/IICS/prod/CDI/en/index.htm#page/qq-cloud-function-reference/MAX_String.html) function to choose one value for each of these fields. +In order to flatten these values for a CSV file with _ID_, _EMAIL1_, _EMAIL2_, and _EMAIL3_ columns, we can use an [Aggregator](https://docs.informatica.com/integration-cloud/cloud-data-integration/current-version/transformations/aggregator-transformation.html) tranformation and the [MAX](https://docs.informatica.com/integration-cloud/cloud-data-integration/current-version/function-reference/functions/max--string-.html) function to choose one value for each of these fields. 1. Click on the arrow after our latest expression tranformation, click the three dots, and choose _Aggregator_. 2. Give the aggregator transformation a name and description. @@ -319,7 +319,7 @@ Now, if we only choose _PVI_, _output_row_, _EMAIL_1_, _EMAIL_2_, and _EMAIL_3_ | A11 | 1 | eric4@example.com | | | | | A14 | 0 | jenny@example.com | jenny1@example.com | jenny2@example.com | -Using the [MAX](https://network.informatica.com/onlinehelp/IICS/prod/CDI/en/index.htm#page/qq-cloud-function-reference/MAX_String.html) function in this manner is a common way to flatten data in SQL databases, but it doesn't feel intuitive and warrants some additional explanation. +Using the [MAX](https://docs.informatica.com/integration-cloud/cloud-data-integration/current-version/function-reference/functions/max--string-.html) function in this manner is a common way to flatten data in SQL databases, but it doesn't feel intuitive and warrants some additional explanation. 1. For each PVI, we give each email address a rank. 2. Because there are three output columns, we can calculate which row an email address will belong to by dividing the rank by three in the expression `trunc(rankindex/3,0)`. 3. We also rank each item in the set of three by using the `mod(rankindex,3)` function. @@ -363,7 +363,7 @@ Because Clarissa has two of the same email addresses, they were given the same r How could we solve this problem? The solution is only passing distinct values to the rank transformation. There are a couple of ways that we could accomplish this. * In the _Advanced_ properties of our source, we can check the box next to _Select distinct rows only_. While this would work in our case, it will not work for mix matched case, e.g. clarrisa2@example.com and CLARISSA2@example.com. It might also cause performance problems with some databases and large data sets. -* Add a [Sorter](https://network.informatica.com/onlinehelp/IICS/prod/CDI/en/index.htm#page/jj-cloud-transformations/Sorter_transformation.html) tranformation before our _Rank_ tranformation. This tranformation can filter out case-insensitive distinct values and can improve performance of subsequent tranformations, such as [Lookup](https://network.informatica.com/onlinehelp/IICS/prod/CDI/en/index.htm#page/jj-cloud-transformations/Lookup_transformation.html) and [Joiner](https://network.informatica.com/onlinehelp/IICS/prod/CDI/en/index.htm#page/jj-cloud-transformations/Joiner_transformation.html) tranformations. +* Add a [Sorter](https://docs.informatica.com/integration-cloud/cloud-data-integration/current-version/transformations/sorter-transformation.html) tranformation before our _Rank_ tranformation. This tranformation can filter out case-insensitive distinct values and can improve performance of subsequent tranformations, such as [Lookup](https://docs.informatica.com/integration-cloud/cloud-data-integration/current-version/transformations/lookup-transformation.html) and [Joiner](https://docs.informatica.com/integration-cloud/cloud-data-integration/current-version/transformations/joiner-transformation.html) tranformations. ##### Unique Values With A Sorter Transformation @@ -400,7 +400,7 @@ After rearranging some of our tranformations, here is how our mapping looks in t  -We can see that we have many objects, and it is easy to see that a complicated mapping could be busy and hard to understand. Often, we may add the same series of tranformations for different sources, further complicating our design. IICS provides a [Mapplet](https://network.informatica.com/onlinehelp/IICS/prod/CDI/en/index.htm#page/jj-cloud-transformations/Mapplet_transformation.html) tranformation to create reusable sets of tranformations that can help streamline and [DRY](https://en.wikipedia.org/wiki/Don%27t_repeat_yourself) up our mappings. Let's see how we can use it here. +We can see that we have many objects, and it is easy to see that a complicated mapping could be busy and hard to understand. Often, we may add the same series of tranformations for different sources, further complicating our design. IICS provides a [Mapplet](https://docs.informatica.com/integration-cloud/cloud-data-integration/current-version/transformations/mapplet-transformation.html) tranformation to create reusable sets of tranformations that can help streamline and [DRY](https://en.wikipedia.org/wiki/Don%27t_repeat_yourself) up our mappings. Let's see how we can use it here. 1. Close the mapping and return to your project folder in the IICS Data Integration module. 2. Click on the _New..._ menu item in the left menu bar and click on _Mapplets_ in the left popup menu. Then choose "Mapplet" and click the blue _Create_ button. @@ -460,13 +460,13 @@ We have similar processes taking emails and phones and putting the data in two d ##### Phones and Emails -1. After the _flatten_phones_ tranformation, add a [Joiner transformation](https://network.informatica.com/onlinehelp/IICS/prod/CDI/en/index.htm#page/jj-cloud-transformations/Joiner_transformation.html) and name it _Join_phones_and_emails_. +1. After the _flatten_phones_ tranformation, add a [Joiner transformation](https://docs.informatica.com/integration-cloud/cloud-data-integration/current-version/transformations/joiner-transformation.html) and name it _Join_phones_and_emails_. 2. Expand the orange plus sign next to your joiner transformation and draw an error from _flatten_emails_ to the detail input. -3. Because the output of both mapplets, _flatten_phones_ and _flatten_emails_, has the same field names, IICS will prompt us to [Resolve Field Name Conflicts](https://network.informatica.com/onlinehelp/IICS/prod/CDI/en/index.htm#page/jj-cloud-transformations/Incoming_fields.html) when we click on the _Incoming Fields_ properties window. Choose _Prefix_ under _Bulk Rename Options_ for both _flatten_emails_ and _flatten_phones_ with the appropriate prefixes in the _Specify_ fields. +3. Because the output of both mapplets, _flatten_phones_ and _flatten_emails_, has the same field names, IICS will prompt us to [Resolve Field Name Conflicts](https://docs.informatica.com/integration-cloud/cloud-data-integration/current-version/transformations/transformations/incoming-fields.html) when we click on the _Incoming Fields_ properties window. Choose _Prefix_ under _Bulk Rename Options_ for both _flatten_emails_ and _flatten_phones_ with the appropriate prefixes in the _Specify_ fields.  -4. In the _Join Condition_ properties window of _Join_phones_and_emails_, choose [Full Outer](https://network.informatica.com/onlinehelp/IICS/prod/CDI/en/index.htm#page/jj-cloud-transformations/Join_type.html) for _Join Type_. Then add the encircled plus sign to add a join condition. Under _Master_ choose _phone_identifier_ and under _Detail_ choose _email_identifier_. Add another join condition and select _phone_output_row_ and _email_output_row_. +4. In the _Join Condition_ properties window of _Join_phones_and_emails_, choose [Full Outer](https://docs.informatica.com/integration-cloud/cloud-data-integration/current-version/transformations/joiner-transformation/join-type.html) for _Join Type_. Then add the encircled plus sign to add a join condition. Under _Master_ choose _phone_identifier_ and under _Detail_ choose _email_identifier_. Add another join condition and select _phone_output_row_ and _email_output_row_.  @@ -485,7 +485,7 @@ After the joiner tranformation, our sample data might look something like this. Because we did a [full outer join](https://en.wikipedia.org/wiki/Join_(SQL)#Full_outer_join), we have null values for phones for user _A41_ and null values for emails for _B19_ in the sample data above. In the next step, we will be joining to names to add to our output file, but in order to do that, our joined rows need one field with an identifier. 1. Add an Expression transformation called _add_fields_ to the output of _Join_phones_and_emails_. -2. Create an _Output Field_ of type string, precision 100, called _identifer_. For the expression, use ```IIF(ISNULL(phone_identifier),email_identifier,phone_identifier)```. The _IIF_ and [ISNULL](https://network.informatica.com/onlinehelp/IICS/prod/CDI/en/index.htm#page/qq-cloud-function-reference/ISNULL.html) functions test if _phone_identifier_ is null and return _email_identifier_ **or** _phone_identifier_. +2. Create an _Output Field_ of type string, precision 100, called _identifer_. For the expression, use ```IIF(ISNULL(phone_identifier),email_identifier,phone_identifier)```. The _IIF_ and [ISNULL](https://docs.informatica.com/integration-cloud/cloud-data-integration/current-version/function-reference/functions/isnull.html) functions test if _phone_identifier_ is null and return _email_identifier_ **or** _phone_identifier_. 3. Create an integer _Output Field_ called _output_row_ and use a similar expression to output the either _phone_output_row_ or _email_output_row_. | identifier | output_row | phone_identifier | phone_output_row | phone_value_1 | phone_value_2 | phone_value_3 | email_identifier | email_output_row | email_value_1 | email_value_2 | email_value_3 | @@ -528,7 +528,7 @@ Deleting the intermediate target files, our mapping is done and looks like this: ### Mapping Task -Now that we have a successul mapping, we need to run it on a regular basis. This can be accomplished using a [Mapping Task](https://network.informatica.com/onlinehelp/IICS/prod/CDI/en/index.htm#page/ll-cloud-tasks/Mapping_task_configuration.html). A mapping task lets you specify the runtime (Secure Agent), which mapping to run, and lets you choose a schedule. Setting up a mapping task is straightforward, so try to set it up on your own with the experience you have gained from this tutorial. +Now that we have a successul mapping, we need to run it on a regular basis. This can be accomplished using a [Mapping Task](https://docs.informatica.com/integration-cloud/cloud-data-integration/current-version/tasks/mapping-tasks/mapping-task-configuration.html). A mapping task lets you specify the runtime (Secure Agent), which mapping to run, and lets you choose a schedule. Setting up a mapping task is straightforward, so try to set it up on your own with the experience you have gained from this tutorial. ## Summary diff --git a/get-help.md b/get-help.md index 18624126919997824c74e7f428a4f5dc350f3719..c34a25096e312b1197c759eae7ddc0522d2b4b04 100644 --- a/get-help.md +++ b/get-help.md @@ -3,12 +3,12 @@ If you weren't able to answer your question using the documentation in this repository, here are some options that are available to get help. - Informatica provides documentation on their website. If you're looking for IICS training, please see our [training documentation](./docs/training.md). - - [Cloud Data Integration](https://network.informatica.com/onlinehelp/IICS/prod/CDI/en/index.htm) - - [Cloud Application Integration ](https://network.informatica.com/onlinehelp/IICS/prod/CAI/en/index.htm) + - [Cloud Data Integration](https://onlinehelp.informatica.com/IICS/prod/CDI/en/index.htm) + - [Cloud Application Integration ](https://onlinehelp.informatica.com/IICS/prod/CAI/en/index.htm) - Frequently asked questions are [documented in the Informatica KB](https://search.informatica.com/). - [Informatica Network](https://network.informatica.com/) has a "Communities" section that allows anyone to create public forum posts to illicit help from other IICS users or experts. An Informatica Network account is required to use this feature. The account isn't associated with a NetID and can be deleted at any time. - UW System has an integration platform community of practice made up of integrators who use IICS. Questions, ideas, practices, and any other form of integration platform content can be shared with the community via their mailing list: [ipaas-community-practice@lists.wisconsin.edu](mailto:ipaas-community-practice@lists.wisconsin.edu) -- UW-Madison's Informatica license provides an ["Ask an Expert"](https://network.informatica.com/community/informatica-network/blog/2018/09/10/new-feature-announcement-ask-an-expert) service, which allows anyone to get on a call with an Informatica expert to discuss design and architectural questions. Please contact [integration-platform@doit.wisc.edu](mailto:integration-platform@doit.wisc.edu) to schedule a session. +- UW-Madison's Informatica license provides an ["Ask an Expert"](https://knowledge.informatica.com/s/article/new-feature-announcement-ask-an-expert?language=en_US) service, which allows anyone to get on a call with an Informatica expert to discuss design and architectural questions. Please contact [integration-platform@doit.wisc.edu](mailto:integration-platform@doit.wisc.edu) to schedule a session. - Support cases can be created with Informatica for general usage questions or operational issues. Please contact [integration-platform@doit.wisc.edu](mailto:integration-platform@doit.wisc.edu) to create a support case. - For all other questions related to UW-Madison's instance of IICS, please contact the DoIT Integration Platform team: [integration-platform@doit.wisc.edu](mailto:integration-platform@doit.wisc.edu)