├── CNAME ├── Errors.md ├── Intro.md ├── OIC_logs.md ├── README.md ├── _config.yml ├── csvScreenshots ├── 1.png ├── 2.png ├── 3.png ├── 4.png ├── 5.png ├── 6.png └── 7.png ├── logscreenshots ├── 1.png ├── 2.png ├── 3.png ├── 4.png ├── 5.png ├── 6.png ├── 7.png ├── OIC_LOG_COLLE_FTP_UNZIP_6_01.00.0000.iar └── tutorial.mp4 ├── screenshots └── 1.png ├── serviceConsole.png ├── serviceConsole2.png └── tutorial.mp4 /CNAME: -------------------------------------------------------------------------------- 1 | oic.alexmacdonald.solutions -------------------------------------------------------------------------------- /Errors.md: -------------------------------------------------------------------------------- 1 | 2 | # Summary on how errors, parallelism, synchronicity & error handling works in OIC 3 | 4 | Situation of concern, how to handle a file upload if a row is messed up or something else in a integration fails? The one outlined below is a scheduled orchestration that was triggered manually for the following tests. 5 | 6 | ### Different scenarios examined: 7 | Error in csv, stopping with switch statement 8 | Scope handlers around the error prone, database & 3rd party call* 9 | What if the API call comes first? 10 | 11 | *3rd party call meaning an API call to a system other than the FTP server or database receiving csv upload. 12 | 13 | ## Scenario 1, with an error catch on the API call 14 | 15 | ![](csvScreenshots/1.png) 16 | 17 | Parallel: no 18 | Time taken: 26 min 37 sec 19 | Result: database filled with all rows, marked as completed 20 | Could watch DB rows fill up live 21 | 22 | 23 | Parallel: yes 24 | Time taken: 16 min, 8 sec 25 | Result: all rows inserted, marked as completed due to scope around serverless function 26 | Watched it fill up live, something like ~300 in 5 secs 27 | 28 | 29 | ## Scenario 2, The above, but without a scope on the API call 30 | 31 | ![](csvScreenshots/2.png) 32 | 33 | Parallel: yes 34 | Time taken: 12 min 46 sec 35 | Resulted: Rows are still uploaded to database, appears as failed in OIC though (result of no scope) 36 | Watched it fill up live 37 | 38 | 39 | ## Scenario 3, switch statement ending integration 40 | 41 | The middle of the CSV has a row with the word ‘dog’ in it. The switch statement routes this condition to stop the integration. 42 | 43 | ![](csvScreenshots/3.png) 44 | 45 | In this case, nothing was uploaded to the database due to the stop condition being triggered on that branch of the integration. 46 | 47 | ![](csvScreenshots/4.png) 48 | 49 | In this case where an error is triggered, nothing was uploaded to the integration due to the error within the switch statement, the stop condition was not triggered. Though using fault handling would get past this issue, the integration would hit the stop condition and end. 50 | 51 | ## Scenario 4, what if the error’d API call comes first? 52 | 53 | ![](csvScreenshots/5.png) 54 | 55 | error stops integration, nothing to database 56 | 57 | 58 | ## Scenario 5, what if the API call is error handled? 59 | 60 | ![](csvScreenshots/6.png) 61 | 62 | In this case, the integration was completed; I could watch the database fill up live, and all the stayed there. This is because the error'd API call was surrounded by a scope action. 63 | 64 | 65 | ## Bonus scenario, database adapter anti-pattern 66 | 67 | ![](csvScreenshots/7.png) 68 | 69 | When DB adapter not in for each loop, like below, you will not watch it fill up live, monitoring marks it as failure, and NO row is added to database (56100), scope around the database adapter will not alter this, database adapter must be inside the for each loop 70 | 71 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /Intro.md: -------------------------------------------------------------------------------- 1 | 2 | # Oracle Integration (OIC) Generation 2 + File Server information 3 | 4 | ..this page is a continuation of my [overarching OIC knowledge repo here](https://garyhostt.github.io/Oracle_Integration/). 5 | 6 | This page details: 7 | - Why you should upgrade to OIC generation 2 and how to use it 8 | - Using the OIC File Server (gen2 only) 9 | - Configuration 10 | - Use cases 11 | - OIC log collection, BICC, Oracle SaaS import/export, other APIs 12 | - Best practices 13 | - Videos 14 | - FTP tools 15 | 16 | ## Oracle Integration, Generation 2 17 | 18 | [Main Documentation for OIC Gen 2](https://docs.oracle.com/en/cloud/paas/integration-cloud/oracle-integration-oci/overview-oracle-integration-generation-2.html) 19 | 20 | >Oracle Integration Generation 2 is the next generation of our Oracle Integration platform. This upgrade delivers improved performance and reliability as well as significant improvements in provisioning and other lifecycle management activities by more deeply leveraging the power of Oracle Cloud Infrastructure. 21 | 22 | [Lists all benefits of Gen 2 over Gen 1](https://blogs.oracle.com/integration/oracle-integration-oic-generation-2-is-now-available-in-all-cloud-tenancies) - more than just the File Server! 23 | 24 | - OIC generation 2 enables OIC to be managed by the OCI API, you can see an example of interacting with OIC via the OCI API [here](https://garyhostt.github.io/OIC_start-stop/). 25 | 26 | [How to upgrade from Gen 1 to Gen 2](https://docs.oracle.com/en/cloud/paas/integration-cloud/oracle-integration-oci/upgrade-oracle-integration-generation-2.html#GUID-22F20017-87C7-47A5-8AEF-1CDBF564C7A6) - it's easy as 1, 2, 3 **and doesn't cost extra $** 27 | 28 | - You can also manually export your integrations, processes, and VBCS apps. Spin up a gen 2 instance, and then import those to your new environment. However, your instance URL will change and you will need to reconfigure your connections & users & potentially more. IF this manual process is verified 100% to work for you - then you can delete your gen 1 instance. **This is not the default recommended approach**, but it may be satisfactory for some. 29 | 30 | [IAM roles for OIC Gen 2](https://docs.cloud.oracle.com/en-us/iaas/integration/doc/setting-users-and-groups-oracle-integration-generation-2.html) 31 | - With generation 2, you still use IDCS to manage permissions of what users can on the OIC Service Console, but for managing OIC on the OCI console, that is managed by IAM. Click here to learn more about [identity federation](https://docs.cloud.oracle.com/en-us/iaas/Content/Identity/Tasks/federatingIDCS.htm) on OCI. This and other tasks are explained on the 32 | [main documentation for gen 2](https://docs.oracle.com/en/cloud/paas/integration-cloud/oracle-integration-oci/overview-oracle-integration-generation-2.html). 33 | 34 | **"How do I know if I have gen 2 or gen 1?"** - Here's how to access each in the [OCI console](https://console.us-ashburn-1.oraclecloud.com/): 35 | 36 | - Oracle Integration Generation 2: Application Integration -> Integration 37 | - Oracle Integration Generation 1: Platform Services -> Integration 38 | 39 | ## File Server 40 | 41 | [Main file server documentation](https://docs.oracle.com/en/cloud/paas/integration-cloud/file-server.html) 42 | 43 | [PDF form of documentation](https://docs.oracle.com/en/cloud/paas/integration-cloud/file-server/using-file-server-oracle-integration-generation-2.pdf) 44 | 45 | The file server **does not cost any extra money**. If you use it in integrations, it will count towards your billable messages. 46 | 47 | ### Configuration 48 | 49 | [Follow these steps to configure your file server](https://blogs.oracle.com/integration/embedded-file-server-sftp-in-oracle-integration) 50 | 51 | [To configure the file server with the FTP adapter in OIC](https://docs.oracle.com/en/cloud/paas/integration-cloud/ftp-adapter/create-connection.html#GUID-662EF1FD-2841-4A9A-87B3-FD8B8796510D) 52 | 53 | - You can use a ssh key you upload for your user or their password. On the adapter page, you need to set the SFTP connection selectBox to yes. You can get your IP address and port from the Settings -> File Server page in your OIC instance. Make sure your user is enabled and has write access. Inside your integration, you need to use the folder for which your user has write access. 54 | 55 | [User permissions and enabling users](https://blogs.oracle.com/integration/leveraging-oracle-integration-file-server-for-file-based-integrations-v2) 56 | 57 | ### Use Cases 58 | 59 | #### 1. OIC log collection & analysis 60 | 61 | * [Download the OIC logs from its API](https://docs.oracle.com/en/cloud/paas/integration-cloud/rest-api/op-ic-api-integration-v1-monitoring-logs-id-get.html) 62 | 63 | * [My detailed write up on this use case](https://github.com/GaryHostt/Oracle_Integration/blob/master/OIC_logs.md) 64 | 65 | - You can call this OIC endpoint, and have your OIC logs stored on your embedded FTP server and/or sent to object storage for analysis by your security platform of choice, such as [Oracle Management Cloud](https://docs.oracle.com/en/cloud/paas/management-cloud/logcs/ingest-logs-oci-object-storage-buckets.html#GUID-4B2BED39-CF5F-450A-B0E5-6C36FBFB80F4). 66 | 67 | #### 2. BICC Extract from object storage to File Server 68 | 69 | You can extract information from Fusion SaaS using [BICC](https://docs.oracle.com/en/cloud/saas/applications-common/r13-update17d/biacc/toc.htm). 70 | 71 | >To extract data from a Fusion Applications Cloud data source, you use the BI Cloud Connector Console to schedule a once-only or regular data load, known as a Cloud Extract. For example, you might extract data from Oracle Fusion HCM Cloud. You can load the extracted data into an Oracle Cloud Object Storage bucket or into an Oracle Universal Content Management (UCM) server. 72 | 73 | [Configuring BICC with Object Storage](https://www.ateam-oracle.com/set-up-oracle-fusion-saas-business-intelligence-cloud-connector-bicc-to-use-oracle-cloud-infrastructure-oci-object-storage) 74 | 75 | #### 3. Pulling to/from external system 76 | 77 | * [This previous lab shows how OIC can read data in a csv and pass it elsewhere](https://garyhostt.github.io/BigQueryIntegration/) 78 | * [You can use your file server for FBDI import files](https://antonyjr.github.io/Hands-On-Labs/ERP-Integration-Patterns/html/erp-cloud-fbdi-import-simple.html) 79 | - [alternative FBDI lab](https://github.com/maldu23/Fusion-FBDI-Integration/blob/master/FBDI_Wkshp.md) 80 | * [Or HDL imports in HCM](https://antonyjr.github.io/Hands-On-Labs/HCM-Integration-Patterns/html/hcm-cloud-pending-worker-import-simple.html) 81 | * [Oracle Cloud Applications/SaaS REST APIs documentation](https://docs.oracle.com/en/cloud/saas/index.html) 82 | - then you can use the [write file](https://docs.oracle.com/en/cloud/paas/integration-cloud/ftp-adapter/invoke-operations-page.html#GUID-314D1E6C-80E0-49BD-803B-A31BA99C53EA) action in the FTP adapter to create a csv based upon the JSON response from the API 83 | 84 | ### Best practices for handling files in OIC 85 | [File Handling Primer](https://www.ateam-oracle.com/integration-cloud-file-handling-primer) 86 | 87 | [File integration best practices](https://blogs.oracle.com/fmw/oracle-integration-cloud-oic-file-based-integration-best-practices) 88 | 89 | * How to handle the file depends upon its size, where it’s from, and what you want to do with it. For using the FTP adapter in integration, you will typically use scheduled integrations - maybe app-driven if you’re having an API append rows to an existing csv file. 90 | 91 | [Scheduling scheduled integrations](https://docs.oracle.com/en/cloud/paas/integration-cloud/integrations-user/creating-scheduled-integrations.html#GUID-9632A5C8-98A7-4371-B542-6A8583427C8D) 92 | 93 | * This shows how to use iCal expressions to set up more complex schedules with OIC. 94 | 95 | ### Videos 96 | The latest videos describe some key components used creating an integration to import and process bulk files using the FTP Adapter with Oracle Integration: 97 | * [Bulk File Transfer with the FTP Adapter](https://www.youtube.com/watch?v=fWvbnIh6WvQ&t=9s) 98 | * [Use the Stage File Action in Oracle Integrations](https://www.youtube.com/watch?v=LLEHt4kno9M&t=158s) 99 | * [Use the For-Each Action in Oracle Integrations](https://www.youtube.com/watch?v=-Cfq2fYwCTk) 100 | 101 | ### FTP tools 102 | 103 | [cyberduck](https://cyberduck.io/download/) 104 | 105 | [filezilla](https://filezilla-project.org/download.php) 106 | 107 | - the above are both clients you can use with your laptop to access FTP servers 108 | 109 | [Python with sFTP](https://pysftp.readthedocs.io/en/release_0.2.9/) 110 | 111 | - the OIC file server uses sFTP protocol 112 | 113 | ## Closing comic 114 | 115 | Thanks for reading, hope it was helpful. Find [me on LinkedIn](bit.ly/3lRd5e0). 116 | 117 |

118 | comic 119 |

120 | 121 | -------------------------------------------------------------------------------- /OIC_logs.md: -------------------------------------------------------------------------------- 1 | # OIC logs: FTP unzipping to embedded File Server + Object Storage 2 | 3 | ## Intro 4 | 5 | In this lab, you will download OIC's auditlogs and interact with it via the REST and FTP adapters. 6 | 7 | The audit log which "Contains all the changes users have made on design-time artifacts such as integrations, connections, adapters, and so on. Contains information for all integrations." 8 | 9 | You will learn how to unzip files downloaded from REST endpoints and subsequently store them via FTP and to object storage. Nothing besides a configured OIC instance is required to complete this article. 10 | 11 | ### Additional links 12 | 13 | [Official OIC Documentation](https://docs.oracle.com/en/cloud/paas/integration-cloud/index.html) 14 | 15 | [My OIC Repo](https://garyhostt.github.io/Oracle_Integration/) 16 | 17 | [OIC File Server + GEN 2](https://github.com/GaryHostt/Oracle_Integration/blob/master/Intro.md) 18 | 19 | [ERP with OIC](https://garyhostt.github.io/beginner_ERP_OIC/) 20 | 21 | ## Pre-requisites 22 | [Configure OIC File Server](https://blogs.oracle.com/integration/embedded-file-server-sftp-in-oracle-integration) 23 | [Filezilla](https://filezilla-project.org/) or [cyberduck](https://cyberduck.io/) 24 | 25 | # Workshop 26 | 27 | ## Integration export + video 28 | 29 | [my .iar export](https://github.com/GaryHostt/Oracle_Integration/raw/master/logscreenshots/OIC_LOG_COLLE_FTP_UNZIP_6_01.00.0000.iar) 30 | 31 | To use the export, you need to edit the connections, FTP directories, and REST url of object storage, along with any mappings that display a warning symbol. See monitoring for any errors during development. Be sure to track the payload when activating your integration for troubleshooting. 32 | 33 | [Video explanation](https://github.com/GaryHostt/Oracle_Integration/blob/master/logscreenshots/tutorial.mp4?raw=true) 34 | 35 | You will need to edit the following after importing, detailed below. 36 | - FTP, OIC REST, OCI REST connections 37 | - FTP connections and OCI Object storage REST connection on canvas 38 | -Any mapper that gains a wanring symbol 39 | 40 | ## Connect to file server with FTP adapter 41 | 42 | [FTP adapter documentation](https://docs.oracle.com/en/cloud/paas/integration-cloud/ftp-adapter/create-connection.html#GUID-662EF1FD-2841-4A9A-87B3-FD8B8796510D) 43 | ``` 44 | You can use a ssh key you upload for your user or their password. On the adapter page, you need to set the SFTP connection selectBox to yes. You can get your IP address and port from the Settings -> File Server page in your OIC instance. Make sure your user is enabled and has write access. Inside your integration, you need to use the folder for which your user has write access. 45 | ``` 46 | 47 | [Ensure your integration users have sufficient permissions](https://blogs.oracle.com/integration/leveraging-oracle-integration-file-server-for-file-based-integrations-v2) 48 | 49 | ## Connect to OIC API with REST Adapter 50 | 51 | ![](logscreenshots/1.png) 52 | 53 | To authenticate to OIC’s API with the REST adapter, simply base the url of your instance before /ic/home ; and use the basic auth security with the user you are logged in with, or another IDCS user that has the ’Service Administrator’ role for your OIC instance. 54 | 55 | ## Connect OCI with REST adapter 56 | 57 | [Official documentation on REST adapter & signature policy](https://docs.oracle.com/en/cloud/paas/integration-cloud/whats-new/index.html#INTWN-GUID-39D35E54-3FA5-4A44-A6FB-7C6496ED7E84) 58 | 59 | Object storage with OIC: 60 | 61 | [Part 1](https://redthunder.blog/2020/01/13/object-storage-with-oracle-integration-cloud-part-1/comment-page-1/) 62 | - This article shows you how to use PUT via REST in OIC, which is how we upload files to object storage in OIC. 63 | 64 | [Part 2](https://redthunder.blog/2020/03/20/object-storage-with-oracle-integration-cloud-part-2/) 65 | - You can also use the GET verb to download files from object storage, not used in this article. 66 | 67 | ## Create the scheduled integration 68 | 69 | You can import my .iar export to get to this part. 70 | 71 | ![](logscreenshots/2.png) 72 | 73 | The getOICLogs connection uses this endpoint below. You can change the id to get different files. 74 | 75 | [Download OIC logs this API endpoint](https://docs.oracle.com/en/cloud/paas/integration-cloud/rest-api/op-ic-api-integration-v1-monitoring-logs-id-get.html) 76 | ``` 77 | id: string 78 | Log file identifier. Specify which file to download. 79 | 80 | Types: 81 | icsflowlog: Contains information about what is happening during runtime, for active integrations that have tracing enabled. 82 | icsdiagnosticlog: Contains information for all integrations about how the system is working. This log can be useful when you are analyzing an issue. 83 | icsauditlog: Contains all the changes users have made on design-time artifacts such as integrations, connections, adapters, and so on. Contains information for all integrations. 84 | ``` 85 | 86 | ![](logscreenshots/3.png) 87 | 88 | You will need to change the directories in the FTP connections to write to a directory for a user you have enabled for the file server. 89 | 90 | ### Within for each loop 91 | 92 | ![](logscreenshots/4.png) 93 | 94 | You will need to change the directories on these two FTP adapters in the for each loop, and then for 'writeToObject' you will need to change the url to use your tenancy namespace and desired bucket. 95 | 96 | ### Monitoring 97 | 98 | ![](logscreenshots/5.png) 99 | 100 | After proper configuration, you should see a 'Succeeded' run of your integration in tracking. 101 | 102 | ![](logscreenshots/6.png) 103 | 104 | While the for each loop shows 3 files, only 2 are written to object storage because I have the switch statement ignore the 'environment.txt' file in the unzipped folder. 105 | 106 | ![](logscreenshots/7.png) 107 | 108 | In your object storage bucket, you should see files with the current date-time attached at the beginning of the file names. 109 | 110 | ## What to do with your logs 111 | 112 | You can call this OIC endpoint, and have your OIC logs stored on your embedded FTP server and/or sent to object storage for analysis by your security platform of choice, such as [Oracle Management Cloud](https://docs.oracle.com/en/cloud/paas/management-cloud/logcs/ingest-logs-oci-object-storage-buckets.html#GUID-4B2BED39-CF5F-450A-B0E5-6C36FBFB80F4). 113 | 114 | Congrats, you now know how to use OIC to: 115 | Download a zip file from REST API 116 | Unzip that zip file 117 | Write the contents to an FTP Server 118 | Send the contents to object storage 119 | 120 | Connect to embedded OIC file server 121 | Use OCI object storage 122 | 123 | 124 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | OIC 3 |

4 | 5 | ## Introduction 6 | 7 | This guide acts as a repository for using Oracle Integration written by [Alex MacDonald](https://intro.alexmacdonald.solutions). You will find relevant resources for administering and using OIC with a wide variety of use cases. 8 | 9 | - Last updated February, 2021. [My (OIC) watch has ended.](https://66.media.tumblr.com/a0d709029f30b4d541d7bb57b726e701/tumblr_inline_p7crstPhVW1u48vsz_500.gif) 10 | 11 | Oracle Integration, OIC, is a fully managed service offered by Oracle, ranked as a [leader in application integration by Gartner](https://www.informatica.com/ipaas-magic-quadrant.html). OIC offers application integration, typically triggered by an enterprise's business events, and it can eliminate the pain points caused by [point-to-point integrations](https://www.christiernan.com/why-point-to-point-integrations-are-evil/). We have [many successful customers](https://blogs.oracle.com/integration/oracle-integration-customer-success-stories) that have digitally transformed their businesses. 12 | 13 | OIC substantially differs from Oracle's [ODI](https://garyhostt.github.io/Oracle_Data_Integrator/), [EDQ](https://www.oracle.com/webfolder/technetwork/tutorials/tutorial/edq/pdf/edq-12.2.1-getting-started-lab/getting-started-with-edq.pdf), and [GoldenGate](https://github.com/zzhangjii/GoldenGate2ADB) offerings. The latter 3 offer data integration - moving larger quantities of data, typically to a data warehouse, for analysis. **Newly released:** is Oracle's [Data Integration](https://docs.oracle.com/en-us/iaas/data-integration/using/overview.htm). 14 | 15 | - For Fusion application users seeking to move ***large*** quantities of data, click [here](https://garyhostt.github.io/Oracle_Data_Integrator/) to see how to use BICC, Object Storage, Oracle Data Integrator, and Autonomous Database in conjunction. 16 | 17 | If this is your first time hearing about OIC, check out the [OIC Product homepage](https://www.oracle.com/middleware/application-integration/). OIC can also complement [cloud native applications deployed on OCI](https://garyhostt.github.io/OCI_DevOps/). 18 | 19 | If you do not have an OIC environment, you can start with this [tutorial](https://www.oracle.com/webfolder/s/assets/demo/integration-simulator/index.html#step1) that simulates an environment for you. You can follow [these instructions](https://docs.oracle.com/en/cloud/paas/integration-cloud/integration-cloud-auton/create-oracle-integration-instance.html#GUID-EC63C933-34BF-4B13-94F7-E2979A1668DB) to spin up an instance. Once you have OIC spun up, start with these [beginner tutorials](https://docs.oracle.com/en/cloud/paas/integration-cloud/tutorials.html) or the **'Beginner Workshops'** later in this repository. 20 | 21 | ## Outline 22 | 23 | 0. The latest & greatest! 24 | 1. General Resources 25 | 2. Components of OIC 26 | 3. **Basic types of integrations - with workshop examples** 27 | - SaaS triggers 28 | - Scheduled 29 | - Generic REST trigger 30 | 4. Treatise: [my own](https://www.linkedin.com/in/robertamacdonald94/) views on developing in OIC 31 | - Mapping 32 | - SaaS troubleshooting 33 | - Learning OIC has a business user 34 | 5. Other resources 35 | - Blogs 36 | - Certifications & training 37 | 6. Youtube resources 38 | 7. **Workshops** 39 | - Beginner 40 | - Advanced 41 | 8. Advanced use cases 42 | 9. Error Handling 43 | 10. **Integration Walk-throughs** 44 | - Oracle apps & SaaS 45 | - Non-Oracle apps 46 | - other Oracle Cloud 47 | 11. **Administering OIC** 48 | 12. Beyond Application Integration 49 | 50 | ## The latest & greatest 51 | 52 | [Cloning OIC scripts via REST scripts](https://github.com/AntonyJR/CloneOICScripts) 53 | 54 | [Embedding VBCS apps in Oracle Applications - the COMPLETE guide/video](https://blogs.oracle.com/shay/embedding-visual-builder-apps-in-other-apps) 55 | 56 | [Easily using API Gateway with OIC](https://www.ateam-oracle.com/a-simple-guide-to-setup-api-gateway-with-oracle-integration-cloud) 57 | 58 | - [This follow up](https://www.ateam-oracle.com/end-to-end-security-using-oci-waf%2C-oci-api-gateway-and-oci-functions) shows how to use API Gateway with WAF, but you can also configure WAF with OIC. 59 | 60 | [Configuring Oracle identities across SaaS & PaaS](https://docs.oracle.com/en/solutions/integrate-saas-application-with-paas/index.html#GUID-F5A94755-D62F-4BB3-901D-99564505D3A0) 61 | 62 | ## General resources 63 | 64 | [The main OIC documentation](https://docs.oracle.com/en/cloud/paas/integration-cloud/index.html) is your friend. 65 | 66 | Do I need the on-premises adapters, what is process automation, how much does it cost? Check out [OIC Pricing](https://www.oracle.com/cloud/integration/pricing.html) & [editions](https://docs.cloud.oracle.com/en-us/iaas/integration/doc/oracle-integration-editions.html), it's based on how many 'messages' you consume. But what is a message and how do you count them? Check out this [explanation](https://blog.rubiconred.com/understanding-oracle-integration-cloud-licensing/). 67 | 68 | - SaaS customers may be interested in the [Oracle Integration for Oracle SaaS edition](https://docs.oracle.com/en/cloud/paas/integration-cloud/integration-cloud-auton/differences-oracle-integration-and-oracle-integration-oracle-saas.html), depending on their requirements. 69 | 70 | Perhaps you want to programatically schedule OIC, or even have OIC integrate with itself? Then check out the OIC REST API documentation [here](https://docs.oracle.com/en/cloud/paas/integration-cloud/rest-api/index.html) or [here](https://docs.cloud.oracle.com/en-us/iaas/integration/index.html), depending on the task. What credentials do I need to connect, how do I configure SaaS outbound messaging, what can an adapter do? If these questions sound familiar, start with [the adapter documentation](https://docs.oracle.com/en/cloud/paas/integration-cloud/find-adapters.html). 71 | 72 | The [Integration blog](https://blogs.oracle.com/integration/) is where new features for OIC are announced and very helpful articles. If you see a new feature you want to try - here's how you can [request a feature flag](https://blogs.oracle.com/integration/enabling-the-future-today-feature-flags-in-oracle-integration-cloud). 73 | 74 | From the [marketplace](https://cloudmarketplace.oracle.com/marketplace/en_US/homeLinkPage) you can download pre-made integration recipes from here and customize them to your use case, such as [Netsuite to Jira case syncronization](https://cloudmarketplace.oracle.com/marketplace/en_US/adf.task-flow?tabName=O&adf.tfDoc=%2FWEB-INF%2Ftaskflow%2Fadhtf.xml&application_id=48917996&adf.tfId=adhtf) or this [salesforce & eloqua contact sync](https://cloudmarketplace.oracle.com/marketplace/en_US/listing/38627693). Need to start/stop your instance, scale for more message packs, or export your integrations? Check out how to [manage Oracle Integration](https://docs.oracle.com/en/cloud/paas/integration-cloud/integration-cloud-auton/manage-oracle-integration.html). 75 | 76 | ## Components of OIC 77 | 78 |

79 | OIC 80 |

81 | 82 | - Application integration 83 | - VBCS, Visual Builder Cloud Service 84 | - The agent 85 | - [File Server](https://github.com/GaryHostt/Oracle_Integration/blob/master/Intro.md) 86 | 87 | .................... 88 | note: Enterprise edition only below 89 | .................... 90 | 91 | - Process Automation 92 | - 'My Tasks' for run-time & administration 93 | - 'Processes' for design-time 94 | - On-premises Enterprise Application adapters 95 | - EBS, JDE, SAP, Siebel, and more 96 | - [Insight](https://docs.oracle.com/en/cloud/paas/integration-cloud/integration-insight.html) 97 | - [B2B](https://docs.oracle.com/en/cloud/paas/integration-cloud/btob.html) 98 | 99 | **Not all features are available in generation 1 instances, visit [here](https://github.com/GaryHostt/Oracle_Integration/blob/master/Intro.md) to learn which generation you are on and how to upgrade (hint: it's easy & worth your time)** 100 | 101 | ## Basic types of integrations - with workshop examples 102 | 103 | 1. SaaS triggers 104 | 2. Scheduled 105 | 3. Generic REST trigger 106 | 107 | There are more than these, but these have been the typical use case patterns I have seen. 108 | 109 | ### SaaS triggers 110 | 111 | SaaS trigger integrations typically rely upon these factors: 112 | - Use of one of the SaaS adapters in trigger or trigger & invoke mode 113 | - Configuration on the SaaS to fire off an outbound message or a webhook to OIC 114 | - An event then occuring in the SaaS application that will trigger communication with OIC 115 | 116 | Using Eloqua as a trigger first requires [installing this agent and linking it to your OIC environment](https://docs.oracle.com/cloud/latest/marketingcs_gs/OMCAA/Help/Apps/IntegrationCloudService/Tasks/InstallingICS.htm). After installing the agent, you then need to create the rule in Eloqua that triggers the outbound call to OIC by [adding a task to a campaign canvas](https://docs.oracle.com/en/cloud/saas/marketing/eloqua-user/Help/Apps/IntegrationCloudService/Tasks/AddingICSToCanvas.htm). 117 | 118 | [**This workshop**](https://garyhostt.github.io/OIC_SaaS_integration/) shows how to configure Fusion/Cloud ERP to perform outbound communication with OIC. In it, a product created in Product Data Hub triggers an integration to then add the data to CPQ. It will also get you started with Process Automation. The latter parts of [this workshop](https://garyhostt.github.io/beginner_ERP_OIC/) show more event based integrations and all of the necessary configuration inside ERP to configure for your event integrations. 119 | 120 | This video shows you how to start [configuring salesforce for business events](https://www.youtube.com/watch?v=5Pq-Dme5Gvc&feature=share) as integration triggers. This article explains [configuring Service Cloud outbound communication](https://redthunder.blog/2019/04/15/oracle-service-cloud-to-eloqua-contact-create-update-using-oic/) to Eloqua. 121 | 122 | ### Scheduled 123 | 124 | Schedule integrations are good for sending data from applications to data warehouses, reading information from csv files, or pulling information from applications and writing that data to a csv file. 125 | 126 | [**This workshop**](https://garyhostt.github.io/BigQueryIntegration/) is an example of pulling info from an FTP server and writing them to Google's data warehouse, BigQuery, via its REST API. However, for files larger than that and less than 1 GB - you will need the 'stage file' operation in order to read the file - as shown in [this YouTube video](https://www.youtube.com/watch?v=hE5nF-henFw&feature=share). Besides reading files, you can [write them to an FTP after invoking data (seen in this video)](https://www.youtube.com/watch?v=7wx-gAT4IdU), and [list files - even from multiple directories](https://www.techsupper.com/2019/05/how-to-list-files-from-ftp-resides-in-multiple-directories-oracle-integration-cloud.html). 127 | 128 | OIC can process flat files up to 1 GB in size. For larger files than that - [check out my data integration repo](https://github.com/GaryHostt/Oracle_Data_Integrator). [What if errors occur in my scheduled integration?](https://github.com/GaryHostt/Oracle_Integration/blob/master/Errors.md) 129 | 130 | ### Generic REST endpoint 131 | 132 | The next use case pattern is basically using OIC as a 'drag & drop API builder'. You can use a blank REST adapter at the beginning of your integrations. This can also be used to abstract away SOAP endpoints. These endpoints can also invoked from Postman, SOAP UI, VBCS, your given front end framework of choice, coding language API call, etc. 133 | 134 | [**In this workshop**](https://garyhostt.github.io/ATPworkshop/), we basically use OIC to create a REST API for an Autonomous Transaction Processing database. [Click here](http://media.licdn.com/embeds/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2F-9nP2LaeOok%3Ffeature%3Doembed&url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D-9nP2LaeOok&type=text%2Fhtml&schema=youtube) for a video explanation by a colleague & I. It will also show you how to get started using VBCS. 135 | 136 | The generic REST trigger can also be used to create SaaS trigger integrations with [webhooks](https://www.youtube.com/watch?v=rUaDIH5ZXB8). Applications need to be configurable to send payloads to a generic REST endpoint. For example, Agile PLM, an Oracle application lacking its own adapter, can be configured to make an outbound call to a generic API as a result of event updates. To create asynchronous communication, you can choose not to configure the REST adapter to receive a response from your other systems. 137 | 138 | The generic REST endpoint can also be the beginning of creating an omni-channel communication device, like [Wuphf](https://www.youtube.com/watch?v=GT6uWYqJq6E)! It can also be used to [receive information from an OCI event](https://redthunder.blog/2020/05/14/triggering-an-oic-integration-via-oci-events-the-oracle-functions-approach/). 139 | 140 | The first half of [this repository](https://garyhostt.github.io/beginner_ERP_OIC/) does a deep dive on using the generic REST endpoint with Cloud ERP. 141 | 142 | ## Treatise: developing in OIC, [my own](https://www.linkedin.com/in/robertamacdonald94/) views 143 | 144 | ### Mapping 145 | I want to explain how to go about developing for an integration, such as is in [**this lab**](https://github.com/GaryHostt/Fusion_PurchaseOrder_Integration). How does one know what fields to have in the mapper when you have a generic endpoint going to a SaaS API? 146 | 147 | When trying to invoke a SaaS endpoint - perhaps with a generic REST trigger, you may find that you are inundated with hundreds of fields in the mapper you do not know. Typically, beginning by searching [the documentation is a good start](https://docs.oracle.com/en/cloud/saas/procurement/19a/oaprc/manage-purchase-orders.html#OAPRC1007407). Looking at the 'Defaults:' we can find the fields required for the lines, schedules, and distributions. If you are calling a SOAP API and simply want to abstract it away as a REST API - simply make the request payload have the same fields that the SOAP API has and then press the recommend button - it should work for the fields if they are about a 1:1 ratio and have identical names. 148 | 149 | Then, to understand the data types for the fields - or see how they're formatted, I'd call the endpoint to give me one or all of the given business object I'm trying to create. In this case, I can look at the [get all POs or get 1 PO endpoints](https://docs.oracle.com/en/cloud/saas/procurement/19d/fapra/api-purchase-orders.html). The responses from calling the API directly show me how it expects values to be for the given fields. I can then use this information when sending in field/value pairs in the request payload. 150 | 151 | Typically for development purposes, I would start this integration with a generic REST adapter that has ~5 fields that map to important fields for the SaaS. After filling out the important ones like POHeaderID, ItemNumber, etc. I activate the integration, then send a payload. Typically, the response will be a 500 error and the response will then contain the field that still requires an attribute. Next, deactivate the integration, map another field from the REST adapter to the business field and then from Postman you can dynamically try different values for that field. Once you find a working value - you can leave it in the submission to the generic REST adapter, or just hardcode it in the adapter. 152 | 153 | ### If your integration is not appearing in tracking after performing the trigger action in SaaS 154 | 155 | If you create a contact in Fusion, or a new lead in salesforce, but the business event isn't appearing in tracking - you need to verify that you properly configured the SaaS. You should also check if you are logged in as the user on the SaaS that you used to create the connection on OIC. 156 | 157 | ### Learning OIC as a business user 158 | 159 | Before working with Oracle Integration, my previous technical experience mainly revolved around data work. When I started working at Oracle and with OIC, I began interacting with APIs more. Learning API development via OIC as my primary medium enabled me to learn how to use APIs faster rather than via minutiae of coding. Any user of OIC will have to read API documentation for the application with which they want to integrate, but if you are a business user that does not want to code - OIC can become your greatest tool for interacting with APIs and automating your business processes. 160 | 161 | *If you are a business user that is trying out OIC and doesn't know where to start, proceed to the 'Beginner Workshops' section below, and in no time you'll be accelerating your time to market.* 162 | 163 | ## Other Resources 164 | 165 | [Adapter Matrix](https://www.oracle.com/technetwork/middleware/adapters/documentation/adaptercertificationmatrix0217-3613709.pdf) 166 | 167 | - This is where I go to examine if a given SaaS/application version is compatible with the given adapter. 168 | 169 | [File based integration best practices](https://blogs.oracle.com/fmw/oracle-integration-cloud-oic-file-based-integration-best-practices) 170 | 171 | - Should I use the file or FTP adapter? How big can my flat file be? How should I interact with FBDI/UCM, and other questions can be answered here. 172 | 173 | [File practices, part 2](https://www.ateam-oracle.com/integration-cloud-file-handling-primer) 174 | 175 | ### Blogs 176 | 177 | [Official Oracle Integration](https://blogs.oracle.com/integration/) 178 | 179 | [Ankur Jain's](https://blogs.oracle.com/author/ankur-jain) 180 | 181 | [Shalindra's](https://shalindrasingh.wordpress.com/) 182 | 183 | [RedThunder](https://redthunder.blog/) 184 | 185 | [Niallc's](http://niallcblogs.blogspot.com/) 186 | 187 | [PaaS Community](https://paascommunity.com/category/oracle/) 188 | 189 | ### Certification & training 190 | 191 | [Oracle Integration Certification resources](https://learn.oracle.com/ords/training/dl4_pages.getpage?page=dl4learningpath&get_params=offering:37194,id:57591) 192 | 193 | [Oracle training on OIC](https://education.oracle.com/integration/integration-cloud/product_704) 194 | 195 | [Certification Study Guide](https://www.techsupper.com/2020/02/oracle-cloud-platform-application-integration-2019-associate.html) 196 | 197 | [k21academy, certification notes](https://k21academy.com/1z0997-oci-professional-training/) 198 | 199 | [Buy certification exam voucher](https://education.oracle.com/oracle-cloud-platform-application-integration-2019-associate/pexam_1Z0-1042) 200 | 201 | ## Youtube 202 | 203 | [PaaS for SaaS - Cloud ERP - Connect deep dive](https://www.youtube.com/watch?v=zZk6SI7FADY&feature=youtu.be) 204 | 205 | [Santa Monica Hub - Application Integration - Youtube channel](https://www.youtube.com/channel/UCW04sPyVsthkrjPs_Gx-dFA/featured?disable_polymer=1) 206 | 207 | This channel will show you VBCS, Process Automation, RPA, and other demos in action! See some videos below 208 | 209 | - [Process Automation Introduction](https://www.youtube.com/watch?v=hVIi06pNJ20) 210 | 211 | - [Calling the Oracle Blockchain platform's API from OIC](https://www.youtube.com/watch?v=StxK60ZtBok) 212 | 213 | - [Wuphf](https://www.youtube.com/watch?v=GT6uWYqJq6E)! 214 | 215 | - [Best video for installing an agent](https://www.youtube.com/watch?v=nYmOgX95wd4) 216 | 217 | ---> The agent is required to integrate with systems not accessible from the internet. Agent does not listen on any ports and communicates outbound on port 443. The network must allow egress to OIC instance port 443.The agent ensures your on-premises systems can live in harmony with the cloud. If you are having issues, [check this page for solutions](https://docs.oracle.com/en/cloud/paas/integration-cloud/integrations-user/troubleshooting-premises-connectivity-agent-issues.html); ex: when configuring - do not use an IDCS federated account! 218 | 219 | [Oracle Learning - Integration videos](https://www.youtube.com/user/OracleLearning/search?query=integration) 220 | 221 | [Oracle Cloud TechSupper Ankur](https://www.youtube.com/channel/UCo3xxBD5yqhofSyA_M6C10Q) 222 | 223 | - [OIC playlist](https://www.youtube.com/watch?v=gvWoBNsmSPc&list=PLlzOCTRJKR1Ljh5cg_NJoFYVrdD0OsL2Y) 224 | 225 | - [Using the REST adapter](https://www.youtube.com/watch?v=NDwTCKDC8LM) 226 | 227 | - [Navigating OIC](https://www.youtube.com/watch?v=U51IZ7og1Zw) 228 | 229 | [OraTrainings](https://www.youtube.com/channel/UCNmHtU1rBaIPH81a1E5aioA/playlists) 230 | 231 | - [Invoking Fusion's API](https://www.youtube.com/watch?v=6j_Qi2qpmKM) 232 | 233 | ## Workshops 234 | 235 | The workshops below are excellent for getting started with the various components of OIC, in isolation or together, and they seek to minimize reliance on having pre-existing external systems with which to integrate. **Some of these may be outdated and show how to access Gen1 OIC, in those cases start the workshop from where the [OIC service console is pictured](https://github.com/GaryHostt/Oracle_Integration/blob/master/serviceConsole.png?raw=true) in that given workshop.** 236 | 237 | ### Beginner Workshops 238 | 239 | [Integration workshop with Process](https://github.com/OracleCPS/oracleintegrationday) 240 | 241 | - Here, labs 100 & 300 contains great starters for basic Application Integration while seeing a variety of its toolset such as switch statements, javascript labraries, and more. Lab 400 has a great introduction for Process Automation that builds on the previous work. The next two workshops below expand on the use case while showing VBCS and integration with other systems. 242 | 243 | [Getting started with VBCS](https://github.com/OracleCPS/Visual-Builder-Cloud-Service_VBCS/blob/master/workshops/workshop-template/LabGuide100.md), with [video](https://www.youtube.com/watch?v=zPNCj4K0jSM) 244 | 245 | - This workshop is for **solely** getting started with VBCS, you'll create a functioning app with multiple pages that displays information about countries. 246 | 247 | [Application Integration & Process Automation Introduction](https://antonyjr.github.io/Hands-On-Labs/Subscription-Management/html/index.html) 248 | 249 | [Visual Builder & Process Automation Introduction](https://antonyjr.github.io/Hands-On-Labs/Visual-Builder/html/index.html) 250 | 251 | [Building a REST API in OIC to pass information to a database](https://garyhostt.github.io/ATPworkshop/) 252 | 253 | - This workshop is discussed in the 'Generic REST endpoint' section and in this [Youtube video](https://www.youtube.com/watch?v=-9nP2LaeOok). 254 | 255 | [Getting started with ERP & OIC](https://garyhostt.github.io/beginner_ERP_OIC/) 256 | 257 | - This repo consolidates everything from this page & other sources on using OIC with Oracle ERP. You can consider it to be a companion guide to this repo. 258 | 259 | ### Advanced workshops 260 | 261 | [Fusion ERP events, FBDI, Extracts](https://antonyjr.github.io/Hands-On-Labs/ERP-Integration-Patterns/html/index.html) 262 | 263 | - This workshop contains the common ERP Cloud integration patterns with the OIC adapter. The OIC adapter is capable of interacting with Fusion via: FBDI, extracts, and events. 264 | 265 | [HCM integration patterns](https://antonyjr.github.io/Hands-On-Labs/HCM-Integration-Patterns/html/index.html) 266 | 267 | - You will learn the common HCM Cloud integration patterns by importing new works & syncing a directory. 268 | 269 | [The varieties of Fusion ERP integrations + Apiary + salesforce](https://github.com/GaryHostt/Fusion_PurchaseOrder_Integration/blob/master/README.md) 270 | 271 | - The above workshop shows you the various ways to use the Cloud ERP adapter, how Apiary can substitute for a 3rd party API, and my write up "Background on the Fusion REST API" - useful for understanding how to start creating Fusion Integrations. It shows invoke Fusion's REST API, how to use the ERP adapter for querying data and using FBDI, how a business event could fire to an Apiary endpoint. The salesforce adapter's querying capabilities are also exhibited. 272 | 273 | [Scheduled FTP Integration to BigQuery + Oauth2 authentication](https://garyhostt.github.io/BigQueryIntegration/) 274 | 275 | - This workshop shows how to use the Oauth2 policy with the OIC REST adapter, the basics of scheduled integrations with the FTP adapter, and how to integrate with GCP's BigQuery. 276 | 277 | [VBCS, Process, REST](https://github.com/OracleCPS/aiconlineshopping) 278 | 279 | - This workshop builds upon the previous, adding VBCS & APIPCS to the previous work [in the first beginner workshop](https://github.com/OracleCPS/oracleintegrationday). 280 | 281 | [Database, REST, advanced Process](https://github.com/oracle/learning-library/blob/master/ospa-library/appint/ApplicationIntegration-labguide.md) 282 | 283 | - Here you continue the previous use cases you've learned in process, but now with more complex business logic, and more personas. It also shows you how to connect with an Oracle Autonomous Transaction Processing, ATP, database. 284 | 285 | [Hitting an OIC endpoint with a Python API call](https://github.com/GaryHostt/BigQueryIntegration/blob/master/Part2.md) 286 | 287 | - In this followup, my python script only needs to worry about the basic auth to the OIC API. OIC is taking care of Oauth2 with BigQuery. 288 | 289 | [HCM to EBS](https://github.com/KseniiaRyuma/HCM_to_EBS_integration/blob/master/oic100.md), with [video](https://www.youtube.com/watch?v=8YuxMwG8qKE&fbclid=IwAR0vTgkqxEJQyEGbw9S5ErjNWJSoH1UphbdLgR2-pT3N_NU2WgusA7gFzQo) 290 | 291 | - This lab shows how to use OIC to capture new employees created in HCM and then create them in EBS. 292 | 293 | [ERP events, Process Automation, CPQ, & ATP](https://garyhostt.github.io/OIC_SaaS_integration/) 294 | 295 | - This workshop will get you started with ERP events, and building a Process Automation application. 296 | 297 | [HCM and other Oracle SaaS Integrations](https://github.com/OracleCPS/oicsaasintegration) 298 | 299 | - Here, you will use HCM ATOM feeds and make connections with other SaaS adapters. 300 | 301 | [Hybrid integration with the agent](https://github.com/OracleCPS/oichybridintegration) 302 | 303 | - The agent enables communication with systems not visible through the internet, via port 22. This lab shows how to use the Oracle Database adapter, and should done only after watching this short [video](https://www.youtube.com/watch?v=nYmOgX95wd4). Note: the UI in this workshop is dated. 304 | 305 | ## Advanced use cases 306 | 307 | ### Embeding VBCS & Process forms 308 | 309 | Being able to embed VBCS & Process forms is a powerful feature - imagine a company is doing a Lift and Shift of EBS to Cloud ERP over the course of 6 months. As they move different modules, new business users can interact with forms embedded in Cloud ERP that are actually integrated to call endpoints in EBS. This means that EBS is integrated with ERP - without even being noticed. This effectively places the functionality of the non-migrated parts of EBS inside of Cloud ERP. 310 | 311 | [Extending SaaS with VBCS](https://www.ateam-oracle.com/what-you-should-know-when-extending-saas-with-vbcs-%E2%80%93-part-1-the-user-) 312 | 313 | - This blog is the first in a series about doing this. The other parts are at the bottom ‘click here to proceed.’ 314 | 315 | [Embedding Process forms](https://javiermugueta.blog/2019/02/07/embedding-process-forms-in-your-applications/) 316 | 317 | - This describes embedding process forms elsewhere. 318 | 319 | [Embedding your VBCS applications - Youtube](https://www.youtube.com/watch?v=JedAYzZSX6U) 320 | 321 | - This video shows how to embed your VBCS applications elsewhere. 322 | 323 | [Configuring VBCS for embedding](https://docs.oracle.com/en/cloud/paas/content-cloud/developer/embed-vbcs-page-site-page.html) 324 | 325 | - Steps 1 - 10 of this show how to enable embedding on VBCS 326 | 327 | [Using Process Automation with VBCS](https://www.youtube.com/watch?v=E6Uv7f_3Hs4) 328 | 329 | - This video shows how to integrate processes in VBCS. 330 | 331 | ### Using publish/subscribe 332 | 333 | Oracle Integration comes with a built in messaging system to enable publisher, topic, subscriber deployment patterns. 334 | 335 | [Part 1](https://blogs.oracle.com/integration/integration-patterns-publishsubscribe-part1) 336 | 337 | [Part 2](https://blogs.oracle.com/integration/integration-patterns-publishsubscribe-part2) 338 | 339 | ### More ways to use OIC 340 | 341 | [Triggering an OIC integration via OCI Events](https://redthunder.blog/2020/05/14/triggering-an-oic-integration-via-oci-events-the-oracle-functions-approach/) 342 | 343 | - Visit [this repo](https://garyhostt.github.io/OCI_DevOps/) to get started with events 344 | 345 | [Sending attachments with notification emails](https://www.techsupper.com/2019/12/send-notification-with-attachment-in-oracle-integration-cloud.html) 346 | 347 | [Using lookup tables](https://www.techsupper.com/2019/12/oracle-integration-cloud-service-lookups-2.html) 348 | 349 | [Getting started with Insight](http://niallcblogs.blogspot.com/2020/05/767-oic-integration-process-insight.html) 350 | 351 | [Invoking OIC endpoints with Oauth & IDCS](https://www.ateam-oracle.com/trigger-oic-integration-using-oauth) 352 | 353 | - This is an alternative to the basic auth policy that is normally used by a non-federated IDCS user that calls your integration endpoints, this [blog post](https://paascommunity.com/2020/04/27/simplified-oauth-config-for-oracle-integration-cloud-rest-api-using-postman-by-manish-kumar-gupta/) provides further details. 354 | 355 | [Integrating chatbots with VBCS applications](https://blogs.oracle.com/vbcs/integrating-chatbots-into-vbcs-applications) 356 | 357 | - You can also give chatbots [custom skills to call APIs](https://github.com/oracle/opa-oda-chat) from conversations - this could include the OIC API. 358 | 359 | [Using a javascript function in OIC](https://blogs.oracle.com/integration/using-a-library-in-oic) 360 | 361 | - Have to deal with an oddly formatted flat file or API response, or need to generate a random number? Use a javascript function! 362 | 363 | [Oracle Integration Solutions Catalog](https://docs.oracle.com/en/solutions/index.html?product=Oracle%20Integration&technology=PaaS&page=0&is=true&sort=0) 364 | 365 | - This provides pre-defined cross-product architectures. 366 | 367 | [Using a Service Gateway to route agent traffic soley over OCI](https://blogs.oracle.com/cloud-infrastructure/access-oracle-services-privately-with-a-service-gateway) 368 | 369 | - If you need to use the OIC agent in your OCI VCN, the Service Gateway ensures communication isn't routed over the internet. 370 | 371 | [Connecting on-premise to OIC via VPN/FastConnect](https://blogs.oracle.com/fmw/fastconnect-and-vpn-with-oracle-integration-cloud-oic) 372 | 373 | ## Integration Walk-throughs 374 | 375 | These articles are very useful for starting use cases with the systems below. 376 | 377 | ### Oracle Apps with OIC 378 | 379 | [Integration with PeopleSoft, part 1](https://redthunder.blog/2018/08/28/peoplesoft-integration-using-oracle-integration-cloud-part-1/) & [Integration with PeopleSoft, part 2](https://redthunder.blog/2018/09/06/peoplesoft-integration-using-oracle-integration-cloud-part-2/) 380 | 381 | [Service Cloud to Eloqua, bulk](https://redthunder.blog/2019/04/15/oracle-service-cloud-to-eloqua-bulk-opportunity-import-using-service-cloud-roql-and-oic/) 382 | 383 | [Service Cloud to Eloqua, custom objects](https://redthunder.blog/2019/04/15/oracle-service-cloud-to-eloqua-custom-object-replication/) 384 | 385 | [Service Cloud to Eloqua, contacts](https://redthunder.blog/2019/04/15/oracle-service-cloud-to-eloqua-contact-create-update-using-oic/) 386 | 387 | [Netsuite real time integration](https://www.ateam-oracle.com/netsuite-integration-series-part-1) 388 | 389 | [Extracting bulk data from Fusion HCM](https://docs.oracle.com/en/cloud/paas/integration-cloud/hcm-adapter/sample-integration-flow-demonstrate-extract-bulk-data-option.html) 390 | 391 | [Using HCM ATOM feeds in OIC](http://niallcblogs.blogspot.com/2019/01/677-consume-hcm-atom-feeds-in-oracle.html) 392 | 393 | ### Non-Oracle Apps with OIC 394 | 395 | [The complete integrating SAP guide](https://blogs.oracle.com/integration/using-oracle-integration-cloud-to-integrate-sap-oracle-saas) 396 | 397 | [Using the ServiceNow adapter](https://niallcblogs.blogspot.com/2020/03/759-oic-creating-incident-in-servicenow.html?m=1) 398 | 399 | [Sharepoint via REST & flatfile](https://www.techsupper.com/category/sharepoint) 400 | 401 | [Robotic Process Automation with the UiPath adapter](https://www.ateam-oracle.com/integrating-oracle-integration-cloud-integration-with-uipath) 402 | 403 | [Making a connection with the Workday adapter](https://shalindrasingh.wordpress.com/2017/11/21/oracle-cloud-adapter-for-workday-important-things-to-not/) 404 | 405 | [The DocuSign Adapter](http://niallcblogs.blogspot.com/2020/02/751-oic-docusign-adapter.html) 406 | 407 | [Adobe Sign](http://www.ateam-oracle.com/oic-adobe-sign/) 408 | 409 | Create Orders in SAP B1 and Invoices in Magento/eBay E-commerce: [guide](https://cloudmarketplace.oracle.com/marketplace/content?contentId=43332045), [recipe](https://cloudmarketplace.oracle.com/marketplace/en_US/adf.task-flow?tabName=O&adf.tfDoc=%2FWEB-INF%2Ftaskflow%2Fadhtf.xml&application_id=43327299&adf.tfId=adhtf) 410 | 411 | Create Invoices in NetSuite for Shipped Orders in Shopify: [guide](https://cloudmarketplace.oracle.com/marketplace/content?contentId=43283674), [recipe](https://cloudmarketplace.oracle.com/marketplace/en_US/adf.task-flow?tabName=O&adf.tfDoc=%2FWEB-INF%2Ftaskflow%2Fadhtf.xml&application_id=43065041&adf.tfId=adhtf) 412 | 413 | ### More Oracle with OIC 414 | 415 | [SOA with OIC](https://blogs.oracle.com/integration/how-soa-suite-adapter-can-help-leverage-your-on-premises-investments) 416 | 417 | [Oauth2 token with the REST adapter](https://docs.oracle.com/en/cloud/paas/integration-cloud-service/icsre/configuring-rest-adapter-consume-rest-api-protected-using-2-legged-oauth-token-based-authentication.html) 418 | 419 | [Using VBCS with Fusion](https://www.ateam-oracle.com/the-cloud-native-approach-to-extending-your-saas-applications) 420 | - [Supplemental material on cloud native architecture](https://github.com/GaryHostt/OCI_DevOps) 421 | 422 | [Invoking the REST API for IDCS](https://docs.oracle.com/en/cloud/paas/identity-cloud/rest-api/op-admin-v1-users-post.html) 423 | 424 | - Example: When a new user is created somewhere - they can then be created in IDCS. 425 | 426 | [Calling a serverless function with the REST adapter](https://github.com/GaryHostt/OCI_DevOps/blob/master/304.md) 427 | 428 | [Object Storage with OIC](https://redthunder.blog/2020/01/13/object-storage-with-oracle-integration-cloud-part-1/) 429 | 430 | - In order to call the OCI REST API, like above, - you have to configure the REST adapter connection to use the [OCI Signature Version 1 security policy](https://docs.oracle.com/en/cloud/paas/integration-cloud/whats-new/index.html#INTWN-GUID-39D35E54-3FA5-4A44-A6FB-7C6496ED7E84). This policy enables you to use Oracle Cloud Infrastructure services. For example, you can create an integration that lists your VCNs. 431 | 432 | An event that occurs in OCI could also be fired to an [integration REST endpoint](https://github.com/GaryHostt/OCI_DevOps/blob/master/Lab100.md). 433 | 434 | ## Administering OIC 435 | 436 | [The comprhensive guide on promoting your code from dev, test, prod and other other OIC environments to each other](https://blogs.oracle.com/integration/promoting-your-code) 437 | 438 | Click [here to learn about managing OIC from the OCI console](https://docs.cloud.oracle.com/en-us/iaas/integration/index.html), rather than platform services, and click here to learn about using the [new API for OIC](https://docs.cloud.oracle.com/en-us/iaas/api/#/en/integration/20190131/). The API documentation can be used create new instances, change the compartment where OIC is located in OIC, and more. 439 | 440 | [The NEW import/export feature](https://blogs.oracle.com/integration/import-export-oracle-integration) 441 | 442 | - Use object storage to migrate integrations between different environments 443 | 444 | [Administration documentation homepage](https://docs.oracle.com/en/cloud/paas/integration-cloud/integration-cloud-auton/index.html) 445 | 446 | [Enable SSO for OIC using IDCS and Federate with Third party IDP for Authentication](https://www.infosysblogs.com/oracle/2019/08/Enable%20SSO%20for%20OIC%20using%20IDCS%20and%20Federate%20with%20Third%20party%20IDP%20for%20Authentication.html) 447 | 448 | Those using previous SOA licences are eligible for [BYOL metering, do you qualify? How to turn it on/off](https://blogs.oracle.com/integration/turn-byol-metering-on-or-off-in-oracle-integration-cloud) 449 | 450 | [Sending notifications with a custom email](https://blogs.oracle.com/integration/sending-oic-notifications-from-an-email-address-of-your-choice) 451 | 452 | To control and monitor costs, you can [create budgets and budget alerts in OCI](https://blogs.oracle.com/cloud-infrastructure/how-to-get-control-of-your-spending-in-oracle-cloud-infrastructure) and use the [start/stop API, which I demonstrate in this repo](https://garyhostt.github.io/OIC_start-stop/). 453 | 454 | CI/CD for OIC is an improvement to just using the import/export feature, shown in this [video](https://www.youtube.com/watch?v=FiC7PfN7wZ0) and this [article](https://redthunder.blog/2017/02/26/teaching-how-to-use-developer-cloud-service-to-promote-ics-integrations-into-new-environments/). 455 | - Most recent article, [OIC CI/CD with Jenkins](https://blogs.oracle.com/integration/cicd-implementation-for-oic) 456 | 457 | [IDCS roles for OIC](https://docs.cloud.oracle.com/en-us/iaas/integration/doc/assigning-service-roles-oracle-integration.html) 458 | 459 | [IAM roles for OIC](https://docs.cloud.oracle.com/en-us/iaas/integration/doc/setting-users-and-groups-oracle-integration-generation-2.html) 460 | 461 | [How to recover unsaved changes in OIC](https://docs.oracle.com/en/cloud/paas/integration-cloud/integrations-user/recover-unsaved-integration-changes.html) 462 | 463 | ## Error Handling in OIC 464 | 465 | [Error Handling Guide](https://www.ateam-oracle.com/oic-error-handling-guide) 466 | 467 | [Error management](https://blogs.oracle.com/integration/oic-bulk-recovery-of-fault-instances) 468 | 469 | [Real examples of error with & without error handling](https://github.com/GaryHostt/Oracle_Integration/blob/master/Errors.md) 470 | 471 | ## Beyond application integration 472 | 473 | [Managing your integration endpoints with API Gateway](https://github.com/GaryHostt/OCI_DevOps/blob/master/Lab301.md) 474 | 475 | [Getting started with APIPCS + Apiary](https://github.com/OracleCPS/End-to-end-API-Workshop/tree/master/workshop) 476 | 477 | [Managing your endpoints with APIPCS](https://github.com/OracleCPS/APIPCS-ICS), seen in action [here](https://www.youtube.com/watch?v=dJlAA71whVY) 478 | 479 | [Other Fusion integration methods](https://shalindrasingh.wordpress.com/2019/03/12/all-you-need-to-know-about-integrating-oracle-erp-cloud/) 480 | 481 | [Build an APEX app in 30 minutes](https://github.com/fatih-keles/30-min-workshops) 482 | 483 | [More from Oracle's Cloud Solution Hubs](https://www.oracle.com/cloud/solution-hubs/demos.html) 484 | 485 | [Hybrid & Multi cloud integration](https://medium.com/@bennett.stephen/hybrid-multi-cloud-integration-75290733a41b) 486 | 487 | [Data Integration](https://s-bennett.com/data-integration/) 488 | 489 | 490 | 491 | 492 | 493 | 494 | 495 | 496 | 497 | 498 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-cayman -------------------------------------------------------------------------------- /csvScreenshots/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaryHostt/Oracle_Integration/0a099f13dc24bf9e03d24db487e77ea9bb2185bf/csvScreenshots/1.png -------------------------------------------------------------------------------- /csvScreenshots/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaryHostt/Oracle_Integration/0a099f13dc24bf9e03d24db487e77ea9bb2185bf/csvScreenshots/2.png -------------------------------------------------------------------------------- /csvScreenshots/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaryHostt/Oracle_Integration/0a099f13dc24bf9e03d24db487e77ea9bb2185bf/csvScreenshots/3.png -------------------------------------------------------------------------------- /csvScreenshots/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaryHostt/Oracle_Integration/0a099f13dc24bf9e03d24db487e77ea9bb2185bf/csvScreenshots/4.png -------------------------------------------------------------------------------- /csvScreenshots/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaryHostt/Oracle_Integration/0a099f13dc24bf9e03d24db487e77ea9bb2185bf/csvScreenshots/5.png -------------------------------------------------------------------------------- /csvScreenshots/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaryHostt/Oracle_Integration/0a099f13dc24bf9e03d24db487e77ea9bb2185bf/csvScreenshots/6.png -------------------------------------------------------------------------------- /csvScreenshots/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaryHostt/Oracle_Integration/0a099f13dc24bf9e03d24db487e77ea9bb2185bf/csvScreenshots/7.png -------------------------------------------------------------------------------- /logscreenshots/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaryHostt/Oracle_Integration/0a099f13dc24bf9e03d24db487e77ea9bb2185bf/logscreenshots/1.png -------------------------------------------------------------------------------- /logscreenshots/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaryHostt/Oracle_Integration/0a099f13dc24bf9e03d24db487e77ea9bb2185bf/logscreenshots/2.png -------------------------------------------------------------------------------- /logscreenshots/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaryHostt/Oracle_Integration/0a099f13dc24bf9e03d24db487e77ea9bb2185bf/logscreenshots/3.png -------------------------------------------------------------------------------- /logscreenshots/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaryHostt/Oracle_Integration/0a099f13dc24bf9e03d24db487e77ea9bb2185bf/logscreenshots/4.png -------------------------------------------------------------------------------- /logscreenshots/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaryHostt/Oracle_Integration/0a099f13dc24bf9e03d24db487e77ea9bb2185bf/logscreenshots/5.png -------------------------------------------------------------------------------- /logscreenshots/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaryHostt/Oracle_Integration/0a099f13dc24bf9e03d24db487e77ea9bb2185bf/logscreenshots/6.png -------------------------------------------------------------------------------- /logscreenshots/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaryHostt/Oracle_Integration/0a099f13dc24bf9e03d24db487e77ea9bb2185bf/logscreenshots/7.png -------------------------------------------------------------------------------- /logscreenshots/OIC_LOG_COLLE_FTP_UNZIP_6_01.00.0000.iar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaryHostt/Oracle_Integration/0a099f13dc24bf9e03d24db487e77ea9bb2185bf/logscreenshots/OIC_LOG_COLLE_FTP_UNZIP_6_01.00.0000.iar -------------------------------------------------------------------------------- /logscreenshots/tutorial.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaryHostt/Oracle_Integration/0a099f13dc24bf9e03d24db487e77ea9bb2185bf/logscreenshots/tutorial.mp4 -------------------------------------------------------------------------------- /screenshots/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaryHostt/Oracle_Integration/0a099f13dc24bf9e03d24db487e77ea9bb2185bf/screenshots/1.png -------------------------------------------------------------------------------- /serviceConsole.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaryHostt/Oracle_Integration/0a099f13dc24bf9e03d24db487e77ea9bb2185bf/serviceConsole.png -------------------------------------------------------------------------------- /serviceConsole2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaryHostt/Oracle_Integration/0a099f13dc24bf9e03d24db487e77ea9bb2185bf/serviceConsole2.png -------------------------------------------------------------------------------- /tutorial.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaryHostt/Oracle_Integration/0a099f13dc24bf9e03d24db487e77ea9bb2185bf/tutorial.mp4 --------------------------------------------------------------------------------