Fusion Applications Integration with Microsoft Teams : Channel Naming in OIC

December 20, 2023 | 3 minute read
Greg Mally
Consulting Solutions Architect
Text Size 100%:

Introduction

In this installment of our technical series on Fusion Applications Social Network Integration (FASNI), we examine the channel naming convention within Oracle Integration Cloud (OIC) for use in Microsoft Teams conversations concerning Fusion Applications (FA) Business Objects. We'll review the current implementation and the touchpoints to make any customizations.

Current Implementation

The FASNI channel naming mechanism leverages two pivotal features of OIC: Lookups and Libraries (JavaScript functions). The naming process follows these straightforward steps:

  1. Retrieve the Business Object Lookup Template: Begin by getting the channel naming template from Lookups. The template follows a standard format: BUSINESSOBJECTFAMILY.TYPE.ChannelName.
  2. Acquire FA Business Object Data: Use the FA REST APIs to gather the necessary Business Object data.
  3. Generate the Channel Name: Invoke the getChannelName function from the OIC Library, inputting the strings from the first two steps.

The getChannelName function ensures compliance with Microsoft Teams’ channel naming restrictions by returning a string capped at 50 characters and substituting any invalid characters with a dash (-). Here's a summary of these limitations:

  1. Length Limit: The maximum length for a Microsoft Teams channel name is 50 characters.
  2. Invalid Characters: Channel names in Microsoft Teams cannot contain the following characters or words:
    • Characters such as: ~ # % & * { } + / \ : < > ? | ' " , and two consecutive dots (..).
    • Characters in the ASCII ranges 0 to 1F and 80 to 9F.
    • Specific words like: forms, CON, CONIN$, CONOUT$, PRN, AUX, NUL, COM1 to COM9, LPT1 to LPT9, desktop.ini, and vti.
    • Channel names also cannot start with an underscore (_) or a period (.), nor can they end with a period (.).

Example: Procurement Requisition Channel Name

To illustrate the name generation flow, consider the channel name template for a Procurement Requisition. The Lookup key in OIC would be PROCUREMENT.REQUISITION.ChannelName, with a template resembling:

Requisition Number - {Requisition}

Here, {Requisition} acts as a placeholder for dynamic data retrieved from the FA Business Object. During the naming process, the getChannelName function will replace {Requisition} with an actual number obtained via the FA REST API, resulting in a channel name such as:

Requisition Number – 915271

This example demonstrates the process of transforming a standardized template into a unique channel name that aligns with Microsoft Teams' requirements. It also underscores the customizable nature of the Lookup template, which can adapt to various Business Object fields as necessary. In practice, the Lookup template can integrate multiple Business Object attributes, each identified by curly braces. Be aware that any generated channel name surpassing the 50-character limit of Microsoft Teams will be truncated, potentially leading to non-unique names and consequent channel creation errors. It's essential to construct channel names that are unique yet concise to avoid these issues.

Customization

Customizing channel naming in FASNI centers on the getChannelName function within OIC. This function is responsible for:

  1. Accepting the channel name template.
  2. Accepting the FA REST API payload as a string.
  3. Substituting placeholders in the template with values from the FA REST API payload.
  4. Replacing any characters not permitted by Microsoft Teams with a dash (-).
  5. Truncating the channel name to 50 characters, if necessary.

To tailor the getChannelName function for specific requirements:

  • Function Enhancement: Alter the function's internal logic to extend or modify its behavior while preserving the interface. This ensures compatibility with existing integrations.
  • Function Signature: Keep the parameters and return value unchanged. This allows the OIC Library to be updated without modifying the integrations.
  • Deployment Consideration: After updating the library code, deactivate and reactivate the integrations for the changes to take effect.

By following these guidelines, you can customize the channel naming process while minimizing disruption to the existing OIC workflows.

Conclusion

To sum up, the getChannelName function within OIC serves as a key integration point for generating Microsoft Teams channel names from FA Business Objects. Customization of this function should be approached with an understanding of Teams' constraints and OIC's capabilities. When modifying the getChannelName function, retaining the original function signature is critical to avoid disruptions in service.

It's important to test any changes thoroughly to ensure that new channel names meet both Microsoft Teams' requirements and the business's needs. Properly implemented, these customizations can enhance the collaboration experience with Fusion Business Objects.

Greg Mally

Consulting Solutions Architect


Previous Post

Fusion Applications Integration with Microsoft Teams : Custom Header Message in OIC

Greg Mally | 9 min read

Next Post


OCI DNS Geolocation Traffic Steering and Object Storage

Radu Nistor | 14 min read