
[space] Link Enterprise

[title] Graph API: Sites Selected
[path] Repository Specific Guides/Link Enterprise for M365/Installation and Base Configuration Guide/Configure app within M365 - Application based permissions - Certificate Based (recommended)/

To setup granular permissions for the middleware application you will need to create an azure application that already has the permission&#x20;

- **Microsoft Graph \:: Sites.Selected**&#x20;
- **SharePoint \:: Sites.Selected**&#x20;

for with admin consent granted. (See the below screenshot to setup granular permissions for the middleware application.)

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/eu06E2aSQrsxcu_fd6mWw_image.png" size="50" width="1717" height="770" position="center" darkWidth="1347" darkHeight="674" darkSrc="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/qAhNLh6GebFKrVmzVimLS_entra-app-permision-selected.png" showCaption="false"}

Once that is completed we will use the graph explorer to give permissions to our azure application for the selected site.

- Visit [https://developer.microsoft.com/en-us/graph/graph-explorer](https://developer.microsoft.com/en-us/graph/graph-explorer) (login as a tenant admin)
- In the URL input for query enter the following [https://graph.microsoft.com/beta/sites/\<insert-hostname>:/sites/\<insert-site-name> ](https://graph.microsoft.com/beta/sites/ybvp4.sharepoint.com:/sites/middleware)(See example below) and click run query. \*\*subsites are not supported

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/aH193Lujc36ozYBfINp5e_image.png)

- &#x20;In the response object copy the highlighted value under "id". &#x20;

**(This is different for each tenant and site. Do not use the sample site id provided in the screenshot)**

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/_ED8kPloVoPal_eSKmKMu_image.png)

- In URL input for query enter the following and run the following query.&#x20;

&#x20;       [https://graph.microsoft.com/beta/sites/\<insert-site-id>/permissions](https://graph.microsoft.com/beta/sites/ybvp4.sharepoint.com,d7fc546c-1aa1-4207-85fa-d324776a235b,85566eaa-b416-4c76-8998-67fda9c1ee96/permissions)

&#x20;You may recieve a 403 forbidden access response. If so click modify response and consent the permissions&#x20;

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/1Pp51uDT19h6jw3roAjib_image.png)

- Change the request from a GET to POST. Click request body tab and modify the following json object sample below with the applicable azure application id and display name for your organization.  Copy and paste the modified object into the request body tab. (You can get the azure app id and display name from the overview page of the azure application). Run the query.



```json
{
  "roles": [
    "fullcontrol"
  ],
  "grantedToIdentities": [
    {
      "application": {
        "id": "Insert Azure Application ID",
        "displayName": "Insert Azure Application Display Name"
      }
    }
  ]
}
```

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/Q2W63zcqReZixFPLpd1sb_image.png)

Below is a screenshot if the permissions have been setup successful.&#x20;

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/Rx2P_GqK7_hmEBMXSZuts_image.png)


[title] Configuring an S3 Connection in middleware
[path] Repository Specific Guides/Link Enterprise for S3/Installation and Base Configuration Guide/

1. Visit the middleware web interface in the browser.
2. Under "Connections" select "S3"
3. Click 'Add Row'
4. Under System name, use an identifier (used to reference this connection with docuflow). Example: S3QA,S3DEV,S3PRD
5. Enter the access key ID specified in the previous step and its secret access key. Finally, enter a default bucket name to be used if not specified in certain scenario.

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/hm2zvlneT5U4i_XzL4ocb_image.png)

To add an  Archive Link compliant S3 content server you can select "Add Content Server".

An example configuration is included below. You will need one entry for each repository ID in OAC0 and each entry must have a unique port.

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/uYb61i5MCTdzSmL0uqKLD_image.png)


[title] Anonymous Shared URL Configuration
[path] Repository Specific Guides/Link Enterprise for M365/Installation and Base Configuration Guide/Configure app within M365 - Application based permissions - Certificate Based (recommended)/

To configure shared URL's in SharePoint, we have the following options.



::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/45LQ6M7RnC8PvpucN7jv2_image.png" size="72" width="643" height="393" position="center" showCaption="false"}

To enable sharing URL with anyone (using expiry time) the following steps are required to do so:

- Enter the browser the following URL and hit enter.
  https\://\<insert-your-tenant-sub-domain>.sharepoint.com/\_layouts/15/online/AdminHome.aspx#/home
- Under active sites, select the site we want to modify the sharing URL permissions.&#x20;

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/JGXrhoUMPxf2jTKZzZF3t_image.png)

- Under the tab "Settings" click on the link "More sharing settings".
- Select the following options in the provided screenshot



![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/I1d4PzIJI0fWprWDDyzpb_image.png)

- To change the default expiry timing of shared URL'S on the left side navigation panel under 'Policies' select 'Sharing'. Below, you will see the default number of days you can set the expiry time to. (You can override this in the middleware)

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/gQc52C1rB265p936xaXBq_image.png)

- To shorten the default expiry time and override the default tenant level,  we can do so via the middleware.&#x20;
- Enter the number of seconds in the highlighted field in the screenshot and hit save. Restart the Gimmal Link service via Windows services after saving.
- To visit this URL, enter https\://localhost:82&#x20;

  default user: admin
  default password: admin



![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/Jg7GSEfVhktYDkKijNpFK_image.png)


[title] SharePoint Implementation Guide
[path] Repository Specific Guides/Link Enterprise for M365/

### Introduction

This documentation provides a comprehensive overview of Link Enterprise's integration with SAP and SharePoint Online, covering inbound and outbound storage, metadata management, content server vs. ECM server functionality, dynamic location routing, document libraries and folders, viewing options, and various configurations and considerations for optimal performance and user experience. It highlights key features and benefits, as well as pros and cons of different approaches and technologies used in this integration.

### Getting Started

1. Go to the guide applicable to your scenario
2. Review the guide to understand some of the architecture decisions that are made along the way
3. Review the information Discovery Template to collect required information for implementation&#x20;
4. Follow the implementation guide

### Discovery Template

[Click here to view the link.](https://app.box.com/s/ch37keof7mqi3ot08cizmgnn5v9nv0qu)


[title] Archiving API Gateway Log/Tables
[path] Repository Specific Guides/Link Enterprise for M365/Installation and Base Configuration Guide/Untitled/

This tool allows you to maintain and archive API gateway log tables that may grow in size over time.

In particular the below tables contain the bulk of the gateway data:

1. /DFLOW/ZAPIL01 - CMS API Log - Header
2. /DFLOW/ZAPIL06 - CMS API Log - MetaData
3. /DFLOW/ZAPIL10 - CMS API Log - Return

It is highly recommended that you determine how long you would like to keep a line item level log vs header detail log and then create/schedule a background job to delete anything greater (either nightly or weekly).&#x20;

You have the choice to delete line item data (the highest volume by a hundred fold) and header data (less volume) as well as saving the entries to an export file as part of the deletion process.&#x20;

Line item detail is the data contained behind any drill down activity, eg: viewing metadata, viewing the full return table, etc.&#x20;

We recommend 1 year for line item detail and 5 years for header detail.&#x20;

Please observe foreground vs. background file locations. (SAP app/DB server vs. user presentation server).

To archive Ggateway, first create a logical filename as shown below and then set up a background job with a variant via the following steps. 

a.     <font color="#3b9f0f">Create the logical filename "ZGLINK\_API\_GATEWAY\_SAVED\_LOG\_FILES" via transaction FILE.</font>  Assign to a logical path of the same name and configure that logical path to the directory to save the log files.  The physical path must have the filename placeholder as \<FILENAME>.&#x20;

b.    <font color="#3b9f0f">Create a variant on the "Archive Gateway Data" selection screen to determine what to archive from the Gateway logs</font>

&#x20;             a. Go to the Gimmal Link Enterprise System Dashboard by utilizing transaction /DFLOW/SYS.

&#x20;                       b. Select the “Archive Gateway Data” menu option under the “Execute” menu.

&#x20;                       c. Enter in the criteria to determine what data to archive. We suggest leaving the last year’s worth of detail information and leaving all header information intact. Initially only the date and max header rows filters will need to have information entered. Note that in order to do advanced date calculations you will need to adjust on the “Save as Variant…” screen.

| **Setting**                          | **Description**                                                                                                                                                                                                                                                                    | **Sample Value(s)**  |
| ------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------- |
| CMS Profile                          | The content management system profile to limit archiving on.                                                                                                                                                                                                                       |                      |
| CMS Use Tag                          | The use tag to limit archiving on.                                                                                                                                                                                                                                                 |                      |
| CMS Repository Type                  | The content management system repository type to limit archiving on.                                                                                                                                                                                                               |                      |
| CMS RFC Destination                  | The remote function call (RFC) destination to limit archiving on.                                                                                                                                                                                                                  |                      |
| API Source                           | The source of the api calls to limit archiving on.                                                                                                                                                                                                                                 |                      |
| API Type                             | The particular api call type to limit archiving on.                                                                                                                                                                                                                                |                      |
| SAP object ID                        | The particular SAP ArchiveLink object keys to limit archiving on.                                                                                                                                                                                                                  |                      |
| Document Type                        | The SAP ArchiveLink document types to limit archiving on. <br />                                                                                                                                                                                                                   |                      |
| Unique Entry Key                     | The unique entry in the gateway log to limit archiving on. <br />                                                                                                                                                                                                                  |                      |
| Date                                 | The date range to limit archiving to. It is recommended to configure this at a minimum to limit how much data is archived.                                                                                                                                                         |                      |
| Time                                 | The time range to limit archiving on.                                                                                                                                                                                                                                              |                      |
| User Name                            | The SAP user name to limit archiving on.                                                                                                                                                                                                                                           |                      |
| CMS Message Type                     | The particular message types from the logs to limit archiving on.                                                                                                                                                                                                                  |                      |
| CMS SAP User                         | The SAP user name to limit archiving on. <br />                                                                                                                                                                                                                                    |                      |
| CMS Rep./Store                       | The content management system repository or object store to limit archiving on.                                                                                                                                                                                                    |                      |
| CMS ID                               | The content management system id(s) to limit archiving on.                                                                                                                                                                                                                         |                      |
| CMS Filename                         | The content management system filename(s) to limit archiving on. <br />                                                                                                                                                                                                            |                      |
| CMS Type <br />                      | The content management system document class, object type or metadata template to limit archiving on.                                                                                                                                                                              |                      |
| CMS Property                         | The content management system property that a choice list is defined to be configured against to limit archiving on.                                                                                                                                                               |                      |
| CMS Choice List Prefix               | The content management system choice list prefix to limit archiving on.                                                                                                                                                                                                            |                      |
| Test Only <br />                     | If selected the archiving isn’t actually performed and the process is just simulated.                                                                                                                                                                                              |                      |
| Delete Headers – not recommended     | If selected the header information from the gateway log will be deleted as well. Typically only the detail information needs to be deleted for space saving reasons so try to leave the headers when possible.                                                                     |                      |
| Max Header Rows <br />               | This determines how many at one given time are checked to see if their data should be archived. This helps for performance reasons to help limit the amount of processing. We suggest trying a value representative of the amount of processing that goes on in the given system.  | 500                  |
| Save selected entries                | Optionally if selected the archived entries can be stored in an output file for later analysis.                                                                                                                                                                                    |                      |
| PC file path (online execution only) | When this program is executed manually from the menu path and not via a scheduled job this determines the output file location for the archived data. <br />                                                                                                                       |                      |
| Dataset file path                    | When this program is executed in the background (potentially by the scheduled job) a dataset file is used for storing the archived data.                                                                                                                                           |                      |

&#x20;                       d.         Save the criteria as a variant that can be used by the scheduled job.

&#x20;                                    a.      Select "Save as Variant..." from the "Goto" menu under the "Variants".

&#x20;                                    b.      Adjust the date range by selecting "X\:Dynamic Date Calculation (System DA\ate)" for the selection variable of the "Date" Field name.

&#x20;                                     c.       Configure the "Name of Variable (Input Only Using F4)" to select the particular date  range to archive.

&#x20;                                                a.        We suggest selecting I for include (the I in the I/E column) with the LT (for less than) option the "Current date +/- ??? days" selection from the choices.&#x20;
&#x20;                                                b.        Enter 365 - for the ??? value.

&#x20;                                                c.         This archives all non-header data older than a year.&#x20;
&#x20;                                                d.         Make sure to enter a unique variant name that will be needed when scheduling the job. Ex: ARCHIVEGATEWAY

&#x20;                           e.         Also enter a description for the information entered. Ex: Archive the Gateway Logs

c.        <font color="#3b9f0f">Configure a scheduled job to archive the gateway data periodically.</font>

1. Go to transaction SM36 to configure a new background job to archive the data.
2. Enter a unique name for the job that reflects the archiving of Gimmal Link Enterprise data. Ex: zglink\_archive\_gateway.
3. Define a step to call the particular archive program with the variant defined previously.
   1. Define an ABAP program by pressing the “ABAP program” button.
   2. Enter “/DFLOW/ZCMSAPI\_GTW\_ARCHIVE” for the “Name”.
   3. Select the variant name previously defined in the “Variant” field.
   4. Then finally save the step information by clicking on the floppy disk at the bottom.
   5. Green arrow back to view the background job and you should see that a job step was successfully defined.
4. Define the start condition by clicking on the “Start condition” button along the top.
   1. Press the “Date/Time” button along the top and define a start date and time for the archiving background job. We suggest starting the job off hours at night or on the weekend. The job shouldn’t affect any current processing so it isn’t required to run off hours but just suggested.
   2. Press the “Period value” at the bottom to make the job run periodically to archive the gateway logs. We suggest running the archiving program weekly so that the job performs quickly and logs are maintained fairly regularly.
   3. Finally save the start condition by clicking on the floppy disk at the bottom.
   4. Confirm that the background job now mentions the planned start time along with how frequently it will be run.
5. Save the background job so that the archiving of gateway logs can occur.


[title] Configure SAP RFC destinations – ECM Only
[path] Repository Specific Guides/Link Enterprise for S3/Installation and Base Configuration Guide/

Base configuration for ECM requires (at least one) SAP RFC to be created. This allows Link Enterprise ECM within SAP to execute RFC calls to an instance of the Enterprise Connector (in theory you can utilize more than one) acting as an SAP JCo Server. 

The RFC destination configured here will be selected in the Link Enterprise configuration outlined the step Base SAP Link Enterprise Configuration – ECM Only (API Destination). 

1. &#x20;   Destination Name: Z\_CMSAPI\_01
   1. &#x20;   We suggest the following naming convention: Z\_CMSAPI\_\<number> but any destination name can be used.
2. &#x20;   Connection Type: T (TCP/IP Connection)
3. &#x20;   Technical Settings:
   1. &#x20;   Select Registered Server Program radio button
   2. &#x20;   Program ID: Z\_CMSAPI\_01
      1. &#x20;   We suggest to keep the program ID name the same as the RFC destination name for simplicity as this will need to match the program ID in the Enterprise Connector.
   3. &#x20;   Gateway Options (Optional if only one gateway host for the SAP environment)
      1. &#x20;   Gateway Host: \<insert the gateway host to use>
      2. &#x20;   Gateway Service: \<insert the gateway service to use>
   4. Unicode:
      1. Select Unicode radio button

- Note: **You cannot test the RFC destination** until the Enterprise Connector has at least 1 RFC Destination (Outbound Rule) configured is also completed below and the windows service is running. When the windows service is installed, configured and running, refer to section <u>Milestone: Establish SAP \<-> Enterprise Connector Connectivity Configuration</u> to test connectivity.
- The Program ID and Gateway Host and Service must match that configured in the Enterprise Connector (section “Base Enterprise Connector Configuration”), work with your Gimmal Link Enterprise configurator to ensure this is the case.You may need to repeat RFC destination creation above for additional processing threads and load balancing. Initially however only one RFC destination is needed.
- **&#x20;Important  This RFC destination chosen must match the API Destination configured in&#x20;**&#x4C;ink Enterprise Connector in step Base Enterprise Connector Configuration – ECM Only.


[title] SAP S4 Rise / Private Cloud
[path] Repository Specific Guides/Link Enterprise for S3/Technical Overview/

This information is based on SAP's current best practices for connectivity:

[https://blogs.sap.com/2023/01/31/rise-with-sap-s-4hana-cloud-private-edition-secure-cloud-connectivity/](https://blogs.sap.com/2023/01/31/rise-with-sap-s-4hana-cloud-private-edition-secure-cloud-connectivity/)

The following three options are recommended for connectivity to S/4HANA Cloud, Private Edition / S/4 Rise.&#x20;

- VPN (IPSEC)
- VPC or VNET Peering
- Internet Based Firewall Access (***Content Server Only***)

The connectivity architecture between AWS, Azure and Google Cloud are analogous, with minor variances in implementation


## VPN (IPSEC)

In this scenario, a Virtual Private Network (VPN) Gateway client is deployed in the GimmalLink Tenant and is configured to connect to the SAP RISE Tenant VPN Gateway. Traffic for the SAP communications are routed through this secured connection.

Azure and AWS provide options for Highly Available connections as an option.



![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/w1Oan0HKV5UtFEq5amO2A_image.png)

## VPC (AWS/Google) or VNET (MS) Peering

Virtual Network Peering is a mechanism that connects two virtual networks between Tenants in a Virtual Private Cloud (VPC).

Microsoft calls their implementation VNET and AWS/Google use the term VPC Peering.

In all cases, Peering provides a virtual, ***internal***, low latency, high bandwidth network connection between Tenants in the same VPC provider.



![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/vmV1LFyVcQjQtdqKvzk_b_image.png)

## Internet Based Firewall Access

In this scenario, a Web Application Firewall (WAF) is configured to allow specific traffic connectivity into the SAP RISE Tenant.

AWS, Google and Azure all offer WAF as a service within the tenant.

***NOTE: The WAF solutions only supports HTTPS outbound connections from SAP RISE deployments (i.e. Content Server only)***



![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/B58A-KvQv7aknXWE02PRp_image.png)



[title] SAP Connection - ECM Only
[path] Repository Specific Guides/Link Enterprise for M365/Installation and Base Configuration Guide/Base Enterprise Connector Configuration/

This is required for ECM only.

Ensure the Enterprise Connector windows service is turned on.

1. Visit the Enterprise Connector configuration ui via https\://localhost:82 (enter user name: link, password: link)
2. Under the "Connections" category in the left navigation panel click "SAP".
3. Click "Add Row". (SAP connection config dialog box will appear)
4. Complete the rest of the SAP configuration information by filling in the relevant details in the input box's. (For help setting some of these values work with SAP Basis team members.)
5. Click "Test Connection" if a text displays "Success" then proceed to save the connection.
6. If "Success" does not appear, you may need to check if the connection details are correct. (Check with basis team)



| **Setting**                          | **Description**                                                                                                                                                                 | **Sample Value&#xA0;**  |
| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- |
| Client                               | Client number to connect to                                                                                                                                                     | 800                     |
| Language                             | Language can only be EN for English currently but the setting is available for future international use                                                                         | EN                      |
| System                               | The system number                                                                                                                                                               | 00                      |
| Unicode                              | True if the system is a Unicode system and communication will be in Unicode. This is recommended to be enabled.                                                                 |                         |
| User ID                              | The SAP non dialogue system account with elevated permissions to allow the middleware to communicate with SAP.                                                                  | GIMMAL                  |
| Password                             | The non expiring password for the SAP system account                                                                                                                            | \*\*\*\*\*\*\*\*\*\*\*  |
| App. Server Host                     | The application server host name or ip address(disabled if using load balancing)                                                                                                |                         |
| Gateway Host                         | The gateway host name or ip address that the RFC destinations are configured to.                                                                                                | 127.0.0.1 <br />        |
| Gateway Port                         | The port number used to communicate with the gateway. Typically 33## with the ##’s being the system number                                                                      | 3300                    |
| Use Load Balanced Server             | When enabled a message server can be configured to handle incoming Enterprise Connector calls. If available it is recommended that this be utilized                             |                         |
| Msg. Server Host                     | The message server host name or ip address.                                                                                                                                     | 127.0.0.1 <br />        |
| Msg. Server Port                     | The port number to use to communicate with the message server. Typically 36## with the ##’s being the system number.                                                            | 3600                    |
| R3 System Name                       | The system name                                                                                                                                                                 | ED1                     |
| Group Name                           | The group name used with the message server                                                                                                                                     | Production              |
| Use Secure Network Connection (SNC)  | If enabled secure communication will be used between the Enterprise Connector and SAP. Generally this is not needed since all communication is from servers behind a firewall.  |                         |
| SNC Name                             | The SNC Name to use                                                                                                                                                             |                         |
| SNC Partner                          | The SNC Partner name                                                                                                                                                            |                         |
| QOS                                  | The SNC quality of service                                                                                                                                                      |                         |
| SNC Library                          | The SNC library location                                                                                                                                                        |                         |
| Use SAP Router                       | If enabled SAP router technology is used for communication. <br />                                                                                                              |                         |
| SAP Router                           | The SAP router configuration                                                                                                                                                    |                         |

If an error message occurs, or if there is no response at all, please refer to the Enterprise Connector log file. 

Note: A typical reason for no response is either the SAP Gateway has security enabled and Basis must allow access (refer to above section Configure SAP Gateway – Enterprise ECM Only) or the SAP Jco library does not exist in the Jco folder. 
\*the Windows service must be restarted for changed to take effect


[title] Follow up SharePoint Team Tasks
[path] Repository Specific Guides/Link Enterprise for M365/Installation and Base Configuration Guide/

This section contains any follow up tasks for the SharePoint team.

[title] Base SAP ArchiveLink Configuration
[path] Repository Specific Guides/Link Enterprise for M365/Installation and Base Configuration Guide/

Both ECM and Content Server require basic ArchiveLink configuration for connectivity. This involves creating one (or more) Content Repository ID via transaction OAC0. 

***Please review the functionality referenced in the "Introduction and Overview" section of this document for a matrix of ECM vs. Content Server functionality.***

NOTE:&#x20;

- For ECM usage - Each repository ID will equate to a SharePoint top-level site collection. If you have multiple top-level site collections, a repository ID for each will need to be created.  For final content sub-site / library  / locations, this is dictated/configuration at the document type level.
- For Content Server usage - Each repository ID will equate to a SharePoint top-level site collection PLUS a final content sub-site / library  / location. If you have multiple various of this final location, a repository ID for each will need to be created. 

Additional ArchiveLink configuration may be required depending on the integration pattern implemented such as creation of doctypes (OAC2), assigning link tables (OAC3). 

This configuration is not outlined in this guide – refer to the Solutions Guide for further information. 

Optionally if you have big-bucket organization of content across sites within you site collections, you may choose to create a repository id for each, such as: Human Resources, Finance, Supply Chain, Health and Safety, etc. Please work with your Gimmal Link Enterprise team to determine the best setup to meet your requirements. Regardless, a minimum of one repository is required (and for the purpose of basic setup and configuration).







[title] System Requirements
[path] Repository Specific Guides/Link Enterprise for S3/Technical Overview/

The middleware component (Enterprise Connector) can be deployed on-premise, in a private cloud or as a fully managed service from Gimmal.&#x20;

When deploying on premise or in a private cloud environment, physical or virtual hardware is supported. The following server resources are the **minimum** requirements:

| **Operating Systems**                 | **CPU**                                                 | **Disk Space** | **RAM** | **SAPJco**                                                                                           |
| ------------------------------------- | ------------------------------------------------------- | -------------- | ------- | ---------------------------------------------------------------------------------------------------- |
| Windows Server 2016, 2019, 2022, 2025 | Minimum 2 cores or 2 physical CPUs with at least 2.0Ghz | 40 GB          | 8 GB    | 3.1 and above<br />(JCo 3.1 requires the Microsoft Visual Studio 2015-2022 C/C++ runtime libraries ) |

When deploying on premise or in a private cloud environment, physical or virtual hardware is supported. The following server resources are the **recommended** requirements:

| **Operating Systems**                 | **CPU**                                                 | **Disk Space** | **RAM** | **SAPJco**                                                                                           |
| ------------------------------------- | ------------------------------------------------------- | -------------- | ------- | ---------------------------------------------------------------------------------------------------- |
| Windows Server 2019, 2022, 2025<br /> | Minimum 4 cores or 2 physical CPUs with at least 2.0Ghz | 128 GB         | 64 GB   | 3.1 and above<br />(JCo 3.1 requires the Microsoft Visual Studio 2015-2022 C/C++ runtime libraries ) |

## Production/Non Production Environments

SAP typically follows a 3-tier landscape:

1. Development (DEV)
2. Quality Assurance (QUAL)
3. Production (PROD)

Albeit Link Enterprise supports a 1 middleware to \<n> SAP connection, it is recommended to have 1 middleware environment (separate windows machine/VM) for each SAP system ie: most common is 3 separate windows machines/VM's.

a. Development - can be minimum server requirement specs if desired

b. We recomend QUAL be identical to production (recomended requirement specs).

Reasons why you may choose to share the DEV and QUAL SAP connections to a single non-production midldeware server instance:

1. low volume and load
2. no migration testing&#x20;
3. little or no concurrent "inbound to SAP" processing where you might want some event to go up to both DEV and QUAL SAP at the same time

## Enterprise Connector Middleware Service

The Gimmal Link Enterprise middleware service requires Read/Write permission to the Gimmal Link Enterprise installation root directory and sub-directories.  This can be accomplished via two methods based on your server configuration:

1. Running as local host
2. A specified service account where local host does not have Read/Write permissions.

## SAP Firewall Access

The Gimmal Link Enterprise Content server application communicates via HTTP/HTTPS and can be configured to use any port number.

1. The Gimmal Link Enterprise Content Server application communicates via HTTP/HTTPS and can be configured to use any port number (ex: 8085) (Inbound to middleware and Outbound from SAP. Refer to organization's internal IT security and project team on which IP address to allow).
2. Note that each SAP repository (Z1, Z2, etc) requires its own set of ports, for example:
   1. Z1
      1. 1 unique port for HTTP eg: 8085
      2. 1 unique port for HTTPS eg: 8086
   2. Z2
      1. 1 unique port for HTTP eg: 8087
      2. 1 unique port for HTTPS eg: 8088

The Gimmal Link Enterprise ECM application communicates via SAP JCo over the following ports:

1. Gateway Port: The port number used to communicate with the gateway. Typically, 33## with the ##’s being the system number (ex: 3300) (Inbound to sap)
2. Message Server Host (if applicable): The port number used to communicate with the gateway. Typically, 36## with the ##’s being the system number (ex: 3600) (Inbound to sap. Refer to organization's internal IT security and project team on which IP address to allow)

`Confirm with your SAP Basis team for the values specific to your SAP installation.`

## URL and Firewall Configuration for S3 API Access

Access to the following URLs is required from the server:

- Base URL: \<your s3 site(s)>
- Source: the IP of the Gimmal Link Enterprise server
- Port: HTTPS is 443
- Protocol: HTTPS
- This provides the basic functionality that Link Enterprise requires for its processing.


[title] Welcome
[path] /

&#x20;                &#x20;

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/Zwi2e5KAZlmZijYlXixhn_image.png" size="54" width="1210" height="462" position="center" darkWidth="1210" darkHeight="462" showCaption="false"}

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/a9EXFAnHd3Drulu3gfKnI_image.png" size="54" width="1227" height="243" position="center" darkWidth="1227" darkHeight="243" showCaption="false"}


[title] Architecture Overview
[path] Repository Specific Guides/Link Enterprise for S3/Technical Overview/

The below diagram outlines the basic components of the Gimmal Link Enterprise stack for S3:



![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/_8vuOED8hPIXth-8gu_7y_.blob)


[title] Follow up Basis Tasks
[path] Repository Specific Guides/Link Enterprise for M365/Installation and Base Configuration Guide/


[title] Follow up Middleware Team Tasks
[path] Repository Specific Guides/Link Enterprise for M365/Installation and Base Configuration Guide/

This section contains any follow up tasks for the middleware teams.  Any changes requires the Windows service must be restarted for changed to take effect.


[title] Milestone: Establish SAP <-> Enterprise Connector Connectivity
[path] Repository Specific Guides/Link Enterprise for M365/Installation and Base Configuration Guide/

Establishing connectivity from SAP to the Enterprise Connector and SharePoint depends on whether ECM or Content Server is being utilized. 

This is a good milestone to reach for a base install and connectivity. 



[title] Installation Overview
[path] Repository Specific Guides/Link Enterprise for S3/Installation and Base Configuration Guide/

The below outlines the necessary Gimmal Link Enterprise installation tasks: 

1. Install Enterprise Connector
2. Configure S3 Credentials/Connection
3. Install SAP transports (mandatory ECM, optional Content Server)
4. Create SAP SAP system account with appropriate authorizations (mandatory ECM)
5. Configure SAP RFC destinations and Gateway (ECM only)&#x20;
6. Configure SAP Gateway - ECM Only
7. Base SAP ArchiveLink Configuration
8. Base SAP Link Enterprise Configuration
9. Base Enterprise Connector Configuration - SAP / ECM / Content Server / RFC Destination
10. Milestone: Establish SAP \<-> Enterprise Connector \<-> SharePoint Connectivity
11. Determine Viewing Strategy (located in Solution Guide)

Optional follow up steps (not required to achieve base the connectivity milestone) and notes include:

1. Follow Up Basis Tasks
2. Follow Up Security Tasks
3. Follow Up Middleware Team Tasks&#x20;
4. Follow up S3 Team Tasks

For additional integration patterns (i.e.: document storage, inbound processing, metadata transfer, etc.…) this functional configuration is NOT included in this guide - refer to the Solution Guide.

Such activity includes:

1. Configure SAP ArchiveLink document type and link tables
2. Configure S3 collections, sites, libraries, and content types
3. Configure Link Enterprise document storage, linking, migration, metadata transfer, etc.
4. Customize or extend SCRUD functionality (ECM only)









[title] Create SAP system account – ECM Only
[path] Repository Specific Guides/Link Enterprise for S3/Installation and Base Configuration Guide/

*`relevant to Gimmal Link `*`Enterprise `*`ECM only`*

In order for the Link Enterprise Connector to log in via SAP Jco to register on the SAP Gateway to receive outbound processing requests, as well as execute inbound processing (if configured), an SAP system (non-dialogue) account is required. This user ID requires the below privileges:

### Authorization Object: S\_RFC

ACTVT: 16

### RFC\_TYPE values:&#x20;

1. FUGR
2. FUNC

### RFC\_NAME values: 

1. /DFLOW/ZDOCMANAGER\_SAPLINK\_V2
2. DDIF\_FIELDINFO\_GET
3. RFC1
4. RFCPING
5. RFC\_GET\_FUNCTION\_INTERFACE
6. SDIFRUNTIME
7. RFC\_METADATA
8. RFC\_METADATA\_GET

### Transactions

1. /DFLOW/GTW

This authorization covers most standard Gimmal Link Enterprise processing. &#x20;

For custom requirements, please either use a copy of WF-BATCH with SAP\_ALL / SAP\_NEW or add the relevant authorizations via trace evaluation.&#x20;

Please note the user ID create and password and work with your Gimmal Link Enterprise implementor – this will be need to be configured in Gimmal Link Enterprise Connector in step Base Gimmal Link Enterprise Connector Configuration – Gimmal Link Enterprise ECM Only. 














[title] Configuring SSL communication with Content Server
[path] Repository Specific Guides/Link Enterprise for M365/Installation and Base Configuration Guide/Follow up Middleware Team Tasks/

The content server communication with SAP can optionally have an SSL port enabled which also requires some certificates to be adjusted so that communication with SAP can be secure. The following example uses the command line tool called openssl. There are various ways to generate certificates so this example is just one way. Getting the openssl utility installed in your environment is not part of this guide. This example also generates what are known as self signed certificates. Generating signed certificates from certificate authorities is outside the scope of this document. 

First you’ll need to get a private key and convert it to the appropriate format required by the Gimmal Link Enterprise Connector. 

1. Generate an encrypted private key using openssl.

openssl genrsa -aes256 -out my\_private\_key.pem 2048 

This generates an RSA private key using AES256 encryption (other types of encryption are possible if AES256 is deemed insecure by your organization. It will prompt you to enter in a passphrase for the encryption, make sure to choose something that you will remember. The format of this certificate should be human readable since it is in the PEM format. The 2048 at the end of the command tells this key to be 2048 bits long (you could also use something like 4096 here instead of 2048) 


&#x20;       2\. Convert the private key to the pkcs8 structure

openssl pkcs8 -topk8 -inform pem -in my\_private\_key.pem -outform pem -nocrypt -out entlink\_private\_key\_pkcs8.pem 

This command takes the input file generated in the previous step and converts it into the pkcs8 structure used by the Enterprise Connector. Note that the nocrypt command here also unencrypts the private key. Since this could allow vulnerabilities you may wish to restrict who has access to the folder where the certificates are stored. Just make sure that the Windows server that runs the Gimmal Link Enterprise Connector has access to the folder by creating a logon user for the service if need be. 


&#x20;       3\. Store the private key in the config directory under the installation folder.
&#x20;       4\. Change the private key name to be entlink\_private\_key\_pkcs8.pem if you chose a different name in the previous steps. if you wish to keep the name that you originally chose you can optionally adjust the Config.properties file found under the config directory under the installation folder to point tp the new peivate key file you have created. You will need to adjust the content.pem.file to be the name of the file you have chosen.&#x20;

Ex: content.pem.file=my\_private\_key\_pkcs8.pem (if you chose my\_private\_key\_pkcs8.pem as the output file when converting to the pkcs8 structure. 


&#x20;       5\. Generate a public cerificate from the private key using openssl. Make surethat the common name matches the host used in the OAC0 ArchiveLink configuration (ip or hostname).

openssl req -new -x509 -key my\_private\_key.pem -out entlink\_public.cer -days 3650 

This command creates a new self signed certificate that is valid for 3,650 days. 

It will prompt you to enter the passphrase you chose earlier for your private key. 

Then it will ask you to enter in a country designation, state or province, and city. 

Next enter in your company name and an optional organizational unit from within your company (this can be left blank). 

For the common name make sure to enter the ip address or hostname you used or will use when configuring the ArchiveLink repository under OAC0. 

You can optionally enter in an email address as well. 

&#x20;       6\. Store the public certificate in the config directory under the installation folder.&#x20;
&#x20;       7\. Change the public certificate name to be entlink\_public.cer if you chose a different name in the previous steps.  If you wihs to keep the name that you originally chose you can optinally adjust the Config.properties file under the config directory under the installation folder to point to the new public  certificate you have created. You will need to adjust the content.cer.file to be the name of the file you have chosen.&#x20;

Ex: content.cer.file=my\_public.cer (if you chose my\_public.cer as the output file when creating the certificate). 

&#x20;       8\. Store the publiccertificate in SAP using the transaction STRUST.  This lets SAP know that calls out to the content server using this public certificate are trusted.&#x20;

1. Execute transaction STRUST
2. Double click on the SSL System Client SSL Client on the left hand side (note there may be two variants of the System SSL client so repeat the process for both SSL clients )
3. Verify that the right hand side says "SSL System Client SSL Client" at the top
4. On the bottom certificate section on the right hand side click on the import certificate button found in the lower left.
5. Select the certificate file that was previously generated and upload the certificate.
6. Verify that the certificate details get loaded up into the screen.
7. Finally click on the “Add to Certificate List”
8. Verify that the certificate list in the middle of the right hand side now contains an entry for the newly created public certificate (you may have to scroll down through the list of certificates).
9. Repeat the process if there was more than one SSL System client.

9\. Adjust the content server configuration tab in the Profile Wizard that will be using SSL communication by adding an SSL port number to configuration.&#x20;

10\. Make sure that the same port number is configured in the ArchiveLink repository that will be used with this configuration via transaction OAC0.

11\. Make sure to save configuration to active profile and restart the Gimmal Link Enterprise Connector Windows service for the changes to take effect.&#x20;

12\. In order to verify that the SSL configuration is correct you will need to attempt to store and retrieve (view) a business document that is associated with the ArchiveLink repository configured to use SSL. Note that testing the connection to the ArchiveLink repository does not test the SSL connection since that information is sent over the non-SSL port. This also means that ArchiveLink repository configurations must have both an SSL port and a regular port configured.&#x20;
























&#x20;

















































&#x20;













[title] SharePoint - Inbound Storage
[path] Repository Specific Guides/Link Enterprise for M365/SharePoint Implementation Guide/

Link Enterprise has a process to query the SharePoint Online system looking for documents to link to SAP. These are called ‘inbound rules’ and are only available with ECM Server. 

ECM Server is a communication specification based on SAP’s RFC socket protocol called JCo (Java Connector). The ECM server unlocks remote function calls and Link Enterprise provides an API within SAP to leverage this technology, allowing enhanced functionality over standard Content Server. 

Documents to link are determined by a metadata flag that is set to True and some optional filters to help specify a sub-set of documents to process. In addition to this metadata flag, additional business information in metadata is required to identify the object in SAP to link to. This additional metadata is based on the business process/SAP Object to be identified. 

The following is a high level overview of the inbound process: 

1. The documents and any configured metadata (columns) are returned 
2. Link Enterprise calls an SAP RFC and sends the list of documents and their metadata 
3. SAP finds the corresponding object for each document and creates an archive link entry for it 
4. SAP returns a success and additionally, any configured metadata to update SharePoint with 
5. Link Enterprise updates the documents in SharePoint with SAP required metadata along with any configured custom metadata 

## 2. Custom Metadata 

Custom metadata can be set in SharePoint as columns in content types. Custom metadata is any values from SAP beyond those required by Link Enterprise and SAP for linking.  

During the inbound linking process, once the SAP Object is found and the document linked, custom metadata can be pushed back to SharePoint columns on the document. 

Custom metadata is most valuable when there is the desire to:  

- Allow end-users to access SAP-linked documents directly in the SharePoint interface, especially through search 
- Enables Microsoft Search 
- Enables access to Search Refiners in SharePoint 
- Trigger a Power Automate workflow 
- Allow other Business Systems to access/link to documents stored by SAP (i.e. SalesForce) 

### Metadata enables inbound scenarios. For example, a document arriving in SharePoint can:  

- Link to an existing SAP object 
- Trigger an SAP workflow with container values 
- Trigger custom ABAP code 

### Custom Metadata Considerations: 

Pros:  

- Can enable metadata based searching and search result filtering for users accessing content within SharePoint 
- Enables the ability to do inbound rules when using ECM connectivity 

Cons: 

- Requires additional transaction time and SharePoint Graph API calls. 
- Please see the section ‘Application Throttling’ in the following Microsoft information page: [https://learn.microsoft.com/en-us/sharepoint/dev/general-development/how-to-avoid-getting-throttled-or-blocked-in-sharepoint-online](https://learn.microsoft.com/en-us/sharepoint/dev/general-development/how-to-avoid-getting-throttled-or-blocked-in-sharepoint-online) 


[title] Base Enterprise Connector Configuration
[path] Repository Specific Guides/Link Enterprise for M365/Installation and Base Configuration Guide/

Base Enterprise Connector configuration contains the following components:

1. SharePoint Endpoint - required for both ECM and Content Server
2. SAP Connection - required for ECM only
3. Content Server - required for Content Server only

    

The above will finalize base connectivity between SAP and SharePoint..

For specific configuration of SharePoint *\<->&#xA0;*&#x53;AP integration patters and use cases, please refer to the Solution Guide (separate). 







[title] OAC0 Repository ID Configuration
[path] Repository Specific Guides/Link Enterprise for M365/Installation and Base Configuration Guide/Base SAP ArchiveLink Configuration/

**1. For ECM: &#xA0;**&#x74;he repository ID, albeit mandatory, only requires it to be created with a meaningful description – the HTTP server and HTTP script are not needed. No certification needs to be sent as well as additional repository ID CS administration functionality is not relevant (and will fail if you try as this is only utilized by Content Servers). A content server does NOT need to be configured in the Enterprise Connector. 

Make sure the changes are saved and captured in a transport so that they can be transported to other environments.

**2. For Content Server:&#xA0;**&#x66;ull configuration of the repository ID is required. A corresponding Content Server must also be configured in the Enterprise Connector. 

This configuration contains SAP system level details (DEV vs. QUAL vs. PRODUCTION). *This should not be transported, but instead created manually in each SAP system if possible.*

Below is an example:

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/TWzclgQBbzSRZLPvHCuqa_image.png)

- Note: You cannot send the certificate or test connectivity until the Enterprise Connector configuration is also completed below and the windows service is running. When the windows service is installed, configured and running, refer to section <u>Establishing SAP \<-> Enterprise Connector Connectivity Configuration</u> to send the SAP certificate and test connectivity.







[title] SharePoint - Outbound Storage
[path] Repository Specific Guides/Link Enterprise for M365/SharePoint Implementation Guide/

##  ​​1. Outbound Storage Description 

Outbound storage allows SAP users to attach content/documents to objects within SAP. Instead of storing the document into the SAP database, Link Enterprise will store the document in your SharePoint environment. 

## 2. Content Server vs ECM 

When storing outbound documents, there are two options: 

1. Content Server 
2. ECM Server 

**Content Server&#xA0;**

Content Server is a communication specification defined by SAP that uses HTTPS to communicate with the Link Enterprise middleware. Link Enterprise is an SAP Content Server certified application. 

**ECM Server&#xA0;**

ECM Server is a communication specification based on SAP’s RFC socket protocol called JCo (Java Connector). The ECM server unlocks remote function calls and Link Enterprise provides an API within SAP to leverage this technology, allowing enhanced functionality over standard Content Server. 

While we are only discussing Outbound communications, ECM with JCo does allow for bi-directional communication between Link Enterprise and SAP, Inbound and Outbound.   



![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/PaqAtMykUHkZ2m-ox1_Tj_image.png)

**Content Server Considerations:&#xA0;**

Pros:  

- HTTPS protocol – routes well over the public internet and can be used with stateful packet inspection firewalls 
- Does not require Link Enterprise transports to be deployed in SAP 

Cons: 

- Does not inherently allow for custom metadata to be sent during upload to SharePoint

### ECM Considerations: 

 Pros:  

- Custom metadata can be sent 
- Allows for a ‘do anything’ pipeline into SAP 

Cons: 

- RFC protocol requires non-standard ports to be opened 

## 3. Metadata 

Custom metadata can be set in SharePoint as columns in content types. Custom metadata is any values from SAP beyond those required by Link Enterprise. 

Custom metadata is most valuable when there is the desire to:  

- Allow end-users to access SAP-linked documents directly in the SharePoint interface, especially through search. 
- Enables Microsoft Search.  
- Enables access to Search Refiners in SharePoint.  
- Trigger a Power Automate workflow.  
- Allow other Business Systems to access/link to documents stored by SAP (i.e. SalesForce).  

Metadata enables inbound scenarios. For example, a document arriving in SharePoint can:  

- Link to an existing SAP object.  
- Trigger an SAP workflow with container values.  
- Trigger custom ABAP code.  

How custom metadata is applied to SharePoint varies based on the method of outbound storage, ECM or Content Server. 

ECM has native support for selecting a SharePoint Content Type and its column values when creating the document in a document library. Content Server, based on the SAP specification, does not allow custom metadata to be set during the creation of the document in SharePoint. This must be done through a Link Enterprise technology called a ‘call back’. 

Call backs utilize the ECM connectivity and update the document metadata/columns once the SAP Content Server store/create operation has been completed. This means there are additional API calls/time required to update the document with business metadata. 

### Callback: 

Call backs utilize the ECM connectivity and update the document metadata once the SAP Content Server store/create operation has been completed. This means there are additional API calls/time required to update the document with business metadata. 

\[Graphic overview to be added at a future date]

### Custom Metadata Considerations: 

Pros:  

- Can enable metadata based searching and search result filtering for users accessing content within SharePoint 
- Enables the ability to do inbound rules when using ECM connectivity 

Cons: 

- Content Server does not inherently allow for custom metadata to be sent during upload to SharePoint. This then requires an ECM call to back populate the custom metadata which adds additional transaction time and SharePoint Graph API calls. 
- Please see the section ‘Application Throttling’ in the following Microsoft information page: [https://learn.microsoft.com/en-us/sharepoint/dev/general-development/how-to-avoid-getting-throttled-or-blocked-in-sharepoint-online](https://learn.microsoft.com/en-us/sharepoint/dev/general-development/how-to-avoid-getting-throttled-or-blocked-in-sharepoint-online) 

## 4. Dynamic Location Routing 

Dynamic Location Routing Dynamic Location Routing is a feature that allows documents to be automatically stored in different SharePoint folders based on associated SAP data when the document is transferred from SAP to SharePoint.&#x20;

This capability enables organizations to create rules and logic that determine the storage location of documents based on specific SAP attributes or metadata. By leveraging Dynamic Location Routing, companies can:

- Automatically categorize and file documents according to business-specific criteria
- Ensure consistent and organized storage of documents across various departments or processes
- Simplify document management and improve information accessibility

Here are a couple of examples to illustrate how Dynamic Location Routing can be used:

**Example1: Routing based on code:**
Documents attached to Sales Orders within a Sales Organzization with code 1000, go to SharePoint location 1000:&#x20;
SAPDocs->Sales Orders->1000
Documents attached to Sales Orders within a Sales Organzization with code 2000, go to SharePoint folder 2000 :
SAPDocs->Sales Orders->2000

**Example2: Internal vs. External documents:**
SAP information, such as ArchiveLink document type, classification, or vendor number, can be used to automatically classify documents as either internal or external and route them to the appropriate SharePoint folders.

External documents, intended for vendor access, are stored in a SharePoint folder that the specific vendor can view. Internal documents, meant for internal use only, are stored in a separate SharePoint folder inaccessible to vendors, even if the document is related to a specific vendor.

This automated categorization and routing process, based on SAP metadata, helps organizations maintain better control over document access and ensures that information is shared appropriately.


5\. Document Libraries and Folders 
-----------------------------------

Document Libraries and/or Folders are sometimes leveraged to logically bundle a series of documents together.  

SharePoint implements Permission inheritance from Site Collection->Site/Subsite->Document Library->Folder. Permission inheritance can be broken at any of these levels up until 100,000 items exist, at which point it is no longer possible. As a general best practice, it is best to break inheritance at the highest possible level in the hierarchy.  

ECM will allow dynamic selection at any level of Site/Subsite/Document Library/Folder/SubFolder.  

Content Server allows for only a single target Document Library to be selected per Content Repository configuration. 

### Document Libraries and Folders Considerations: 

Pros:  

- Can ensure security models are followed 
- Can implement business logic around folders. E.g. create a new Document Library folder for every new Work Order that is created in Plant Maintenance 
- ECM can link folders to SAP business objects vs individual documents. This can be used for scenarios where large batches of documents need to be easily linked to SAP Business Objects 

Cons: 

- Content Server does not inherently allow for custom folders to be created in its specification 

## 6. Viewing Options 

There are three options available when deciding how to view SAP content stored and linked to SharePoint Online: 

- SAP Viewer: The document is downloaded to the user’s computer and the SAP viewer will display the document 
- SharePoint Authenticated URL Link: A SharePoint Viewing URL is returned to the user who must then authenticate to SharePoint to view the document. The user must have permissions to the Document. The document is viewed in the SharePoint web based viewer 
- SharePoint Unauthenticated (Short Lived) URL Link: A short lived unauthenticated URL is generated and returned to the user. The user does not need to authenticate to SharePoint Online to view the item. The document is viewed in the SharePoint web based viewer. By default the URL expires in 1 minute, but this expiry period is configurable in Link Enterprise 

Each of the above options has pros and cons listed below: 

### SAP Viewer Considerations: 

Pros: 

- SAP Viewer allows notes to be attached to documents 

Cons: 

- SAP Viewer has limited file type support 
- SAP Viewer must be maintained on the user’s desktop (IT overhead) 
- The document is downloaded (highest bandwidth) to the local computer before viewing 

### SharePoint Authenticated URL Link Considerations: 

Pros: 

- SharePoint Online Viewer has a wide range of file type support 
- SharePoint Online Viewer is web based and runs in the browser 
- The SAP viewer does not have to be installed or maintained 
- The document does not need to be downloaded to the local computer before viewing (lowest bandwidth) 

Cons: 

- The user must have access rights to the document in the SharePoint Online document library 

### SharePoint Online Unauthenticated (Short Lived) URL Link Considerations: 

Pros: 

- SharePoint Online Viewer has a wide range of file type support 
- SharePoint Online Viewer is web based and runs in the browser 
- The SAP viewer does not have to be installed or maintained 
- The document does not need to be downloaded to the local computer before viewing (lowest bandwidth) 
- The user does not need access rights to the document in the SharePoint Online document library, SAP controls access 

Cons: 

- Additional configuration of SharePoint site collections to allow unauthenticated URLs to be generated. Configuration of this setting is per Site Collection 


[title] OAC0 Repository ID Configuration
[path] Repository Specific Guides/Link Enterprise for S3/Installation and Base Configuration Guide/Base SAP ArchiveLink Configuration/

**1. For ECM: &#xA0;**&#x74;he repository ID, albeit mandatory, only requires it to be created with a meaningful description – the HTTP server and HTTP script are not needed. No certification needs to be sent as well as additional repository ID CS administration functionality is not relevant (and will fail if you try as this is only utilized by Content Servers). A content server does NOT need to be configured in the Enterprise Connector. 

Make sure the changes are saved and captured in a transport so that they can be transported to other environments.

**2. For Content Server:&#xA0;**&#x66;ull configuration of the repository ID is required. A corresponding Content Server must also be configured in the Enterprise Connector. 

This configuration contains SAP system level details (DEV vs. QUAL vs. PRODUCTION). *This should not be transported, but instead created manually in each SAP system if possible.*

Below is an example:

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/vfv64QRgMk9E0-QidhXeO_image.png)

- Note: You cannot send the certificate or test connectivity until the Enterprise Connector configuration is also completed below and the windows service is running. When the windows service is installed, configured and running, refer to section <u>Establishing SAP \<-> Enterprise Connector Connectivity Configuration</u> to send the SAP certificate and test connectivity.







[title] Anonymous Shared URL Configuration
[path] Repository Specific Guides/Link Enterprise for M365/Installation and Base Configuration Guide/Configure app within M365 - Application based permissions - Client Secret (Not Recommended)/

To configure shared URL's in SharePoint, we have the following options.



::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/45LQ6M7RnC8PvpucN7jv2_image.png" size="72" width="643" height="393" position="center" darkWidth="643" darkHeight="393" showCaption="false"}

To enable sharing URL with anyone (using expiry time) the following steps are required to do so:

- Enter the browser the following URL and hit enter.
  https\://\<insert-your-tenant-sub-domain>.sharepoint.com/\_layouts/15/online/AdminHome.aspx#/home
- Under active sites, select the site we want to modify the sharing URL permissions.&#x20;

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/JGXrhoUMPxf2jTKZzZF3t_image.png)

- Under the tab "Settings" click on the link "More sharing settings".
- Select the following options in the provided screenshot



![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/I1d4PzIJI0fWprWDDyzpb_image.png)

- To change the default expiry timing of shared URL'S on the left side navigation panel under 'Policies' select 'Sharing'. Below, you will see the default number of days you can set the expiry time to. (You can override this in the middleware)

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/gQc52C1rB265p936xaXBq_image.png)

- To shorten the default expiry time and override the default tenant level,  we can do so via the middleware.&#x20;
- Enter the number of seconds in the highlighted field in the screenshot and hit save. Restart the Gimmal Link service via Windows services after saving.
- To visit this URL, enter https\://localhost:82&#x20;

  default user: admin
  default password: admin



![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/Jg7GSEfVhktYDkKijNpFK_image.png)


[title] Milestone: Establish SAP <-> Enterprise Connector Connectivity
[path] Repository Specific Guides/Link Enterprise for S3/Installation and Base Configuration Guide/

Establishing connectivity from SAP to the Enterprise Connector and S3 depends on whether ECM or Content Server is being utilized. 

This is a good milestone to reach for a base install and connectivity. 



[title] Installation Overview
[path] Repository Specific Guides/Link Enterprise for M365/Installation and Base Configuration Guide/

The below outlines the necessary Gimmal Link Enterprise installation tasks: 

1. Install Enterprise Connector
2. Configure M365 application
3. Install SAP transports (mandatory ECM, optional Content Server)
4. Create SAP SAP system account with appropriate authorizations (mandatory ECM)
5. Configure SAP RFC destinations and Gateway (ECM only)&#x20;
6. Configure SAP Gateway - ECM Only
7. Base SAP ArchiveLink Configuration
8. Base SAP Link Enterprise Configuration
9. Base Enterprise Connector Configuration - SAP / ECM / Content Server / RFC Destination
10. Milestone: Establish SAP \<-> Enterprise Connector \<-> SharePoint Connectivity
11. Determine Viewing Strategy (located in Solution Guide)

Optional follow up steps (not required to achieve base the connectivity milestone) and notes include:

1. Follow Up Basis Tasks
2. Follow Up Security Tasks
3. Follow Up Middleware Team Tasks&#x20;
4. Follow up SharePoint Team Tasks

For additional integration patterns (i.e.: document storage, inbound processing, metadata transfer, etc.…) this functional configuration is NOT included in this guide - refer to the Solution Guide.

Such activity includes:

1. Configure SAP ArchiveLink document type and link tables
2. Configure SharePoint collections, sites, libraries, and content types
3. Configure Link Enterprise document storage, linking, migration, metadata transfer, etc.
4. Customize or extend SCRUD functionality (ECM only)









[title] Grant Necessary SAP authorizations – ECM Only
[path] Repository Specific Guides/Link Enterprise for M365/Installation and Base Configuration Guide/

In order to configure and monitor Link Enterprise , the below two transactions should be granted to the configurator and administrator of Link Enterprise : 

- /DFLOW/SYS
- /DFLOW/GTW

Note: Depending on what functional integration patterns you are implementation, there may be additional transaction codes to grant access to a broader group of users:

1. Workflow Configuration: /DFLOW/WFCONFIG
2. Workflow AP Rollover: /DFLOW/APROLLOVER
3. Workflow AP Statistics: /DFLOW/APSTAT
4. Workflow ASL: /DFLOW/APASL
5. Workflow AP TrackLink: /DFLOW/APTRACKLINK
6. Workflow DMS TrackLink: /DFLOW/DMSTRACKLINK
7. Workflow General TrackLink: /DFLOW/TRACKLINK
8. Delete Link Manager: /DFLOW/LINKM
9. API Mass Load: /DFLOW/MLOAD
10. Migration Utility: /DFLOW/MIGRATOR
11. AuditLink Create: /DFLOW/AUDITLINK
12. AuditLink Dashboard: /DFLOW/AUDITLINKDASH

If your security roles also check table maintenance authorizations, the authorization object Z/D1 must be granted via S\_TABU\_DIS for those who will configure Gimmal Link Enterprise.

\*If Z/D1 does not exist in your system, the transport that contains Z/D1 is a customizing transport and must be imported separately.  Please contact your Link Enterprise implementation specialist to obtain this transport.&#x20;


[title] Overview for S3 and Middleware Team
[path] Repository Specific Guides/Link Enterprise for S3/Installation and Base Configuration Guide/

Refer to the below sections for steps relevant to the S3 and Middleware teams. This is often a collaborative effort and maybe also require support from SAP Basis for SAP connectivity. 

1. Installing the Enterprise Connector
2. Create S3 Credentials in AWS.
3. Configure S3 Connection in Middleware.
4. Establishing SAP \<-> Enterprise Connector Connectivity
5. Follow up Middleware Team Tasks
6. Follow up S3 Teams Tasks


[title] Mandatory ECM Indexes
[path] Repository Specific Guides/Link Enterprise for M365/Installation and Base Configuration Guide/Follow up SharePoint Team Tasks/

ECM uses search query to enable real time search of documents uploaded using ECM for Inbound to SAP Processing (SAPLink)

An index should be created for:

- LinkEnterpriseSaplinkTrigger

Please consult your integration team to determine if ECM is being implemented for the above pattern.

[title] Purpose of Guide
[path] Repository Specific Guides/Link Enterprise for M365/Installation and Base Configuration Guide/

The goal of this guide is to establish base installation, minimal configuration, and connectivity testing to a point that SAP and Link Enterprise can communicate with SharePoint and vice-versa. 

For details on architecture, supported environments, and system requirements please refer to the docuflow [Technical Overview](https://linkenterprise.docs.gimmal.com/technical-overview).

For detailed configuration of specific integration patterns and docuflow add-ons please refer to the docuflow [Solution Guide](https://linkenterprise.docs.gimmal.com/solution-guide). 

For custom development, please refer to the [Developers Guide](https://linkenterprise.docs.gimmal.com/developers-guide).

[title] Customer Resources Required
[path] Repository Specific Guides/Link Enterprise for S3/Installation and Base Configuration Guide/

Customer resources typically required for a Gimmal Link Enterprise installation and implementation are: 

- SAP Basis: install SAP transports, support base configuration, and QUAL, PROD migration (see below  Overview for SAP Basis)
- SAP Security: create SAP user (Gimmal Link ECM) and grant necessary ArchiveLink and Gimmal Link Enterprise authorizations (see below Overview for SAP security)
- SAP Developer: if Gimmal Link Enterprise integration patters are to be extended or customized, an ABAP developer (customer or Gimmal) will be required along with corresponding developer key and SAP transports (see separate Gimmal Link Enterprise Solution Guide)
- S3 Admin: support installation of Gimmal Link Enterprise middleware and SharePoint configuration
- Middleware Server/Network/Security Team: support installation of Gimmal Link Enterprise Connector
- Business/SAP End-User/Tester: support unit and user acceptance testing.


[title] Content Server
[path] Repository Specific Guides/Link Enterprise for M365/Installation and Base Configuration Guide/Milestone: Establish SAP <-> Enterprise Connector Connectivity/

When you are ready to completed connectivity between SAP and the Enterprise Connector for Content Server, you must first send the certificate from SAP to Enterprise Content Server. 

Both sending of the certificate and testing connectivity is done via the SAP CS Admin functionality in transaction OAC0. 

\* Make sure the Enterprise Connector server is turned on (windows service “Gimmal Link Enterprise Connector”) prior to executing the SM59 test connection. 

1. From OAC0 find the repository ID configured prior and open the details
2. Choose the “Send Certificate” icon
3. The message in the bottom toolbar should read “Certificate sent successfully”
4. Click the “Info” icon next to confirm the content server is fully operational


[title] Adding SAP JCO logging information to any windows service
[path] Repository Specific Guides/Link Enterprise for M365/Installation and Base Configuration Guide/Follow up Middleware Team Tasks/

In order for additional JCO logging to take place it may be necessary to adjust the configuration for the Windows service. Open the Gimmal Link Enterprise Service configuration by clicking on the “Gimmal Service” application in the Gimmal program group (Optionally you can double click on the gimmal.exe application found under the service folder in the installation directory) Click on the “Java” tab and scroll the “Java Options:” window all the way to the bottom. There will be two lines that determine where the JCO logs will go (jco.trace\_path) and the amount of logging to perform (jco.trace\_level). For more information on the trace level refer to SAP JCO documentation. For this example the setting of 10 gives complete logging information. For that reason it is best to leave this additional logging only enabled when needed to better understand a JCO communication error with SAP and not leave it enabled in a production environment. 

-Djco.trace\_path="\<Put the Gimmal Link Enterprise Connector installation folder here>\logs\\" 

-Djco.trace\_level=10 












[title] Overview for SAP Security
[path] Repository Specific Guides/Link Enterprise for S3/Installation and Base Configuration Guide/

Refer to the below section or links for the steps relevant to SAP Security team: 

1. Create SAP system account – Gimmal Link Enterprise ECM Only
2. Grant Necessary SAP Gimmal Link Enterprise authorizations – Gimmal Link Enterprise ECM Only
3. Grant Necessary SAP ArchiveLink authorizations – Gimmal Link Enterprise ECM or Content Server
4. Follow up Security Tasks




[title] Technical Overview
[path] Repository Specific Guides/Link Enterprise for S3/

&#x20;                &#x20;

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/Zwi2e5KAZlmZijYlXixhn_image.png" size="54" width="1210" height="462" position="center" showCaption="false"}

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/a9EXFAnHd3Drulu3gfKnI_image.png" size="54" width="1227" height="243" position="center" showCaption="false"}


[title] Configure SAP Gateway – ECM Only
[path] Repository Specific Guides/Link Enterprise for S3/Installation and Base Configuration Guide/

Gateway security via SMGW may need to be configured depending on your reginfo file settings in order that connections are permitted from the host where the Link Enterprise Connector is installed. Note the below values need to reflect the naming convention chose above in the RFC destination: 

1. &#x20;   Ex: P TP=Z\* (Allows the Gimmal Link Enterprise middleware registered server programs to connect from any host)
2. &#x20;   Ex: P TP=Z\* HOST=\*.\<your domain.com> (Allows the Gimmal Link Enterprise middleware registered server programs to connect from any host on the domain specified.
3. &#x20;   Ex: P TP= Z\_CSM\_API\_01 HOST=\<ip address or host where Enterprise Connector is installed> (Only allows the specified registered server program to connect from the specified host)

Example: 

&#x20;                    P TP=Z\_CMSAPI1 HOST=\* 










[title] Grant Necessary SAP ArchiveLink authorizations – ECM or Content Server
[path] Repository Specific Guides/Link Enterprise for M365/Installation and Base Configuration Guide/

Base configuration for both Gimmal Link Enterprise components requires (at least one) SAP ArchiveLink repository to be created. Thus, access to the below transactions should be granted to the configurator and administrator of Gimmal Link Enterprise: 

- OAC0 - Content Repositories
- OAA3 - Protocols

In some instances, the SAP Basis team will already have access and may prefer to control this configuration. This configuration is outlined below sections. 

Business process configuration requires access to additional ArchiveLink transactions. Albeit not covered in this guide, these transactions should also be granted to the Gimmal Link Enterprise configurator: 

- OAC2 - document types
- OAC3 – business object /document type / link table assignment


[title] Configure app within M365 - Application based permissions - Certificate Based (recommended)
[path] Repository Specific Guides/Link Enterprise for M365/Installation and Base Configuration Guide/

The preferred method to authenticate with the graph api is via application based permissions.

Using M365 SharePoint as a Gimmal Link Enterprise repository you will need to ensure that the Enterprise Connector is configured and able to connect to the Microsoft graph API. You must create an enterprise application via the Microsoft Azure portal to complete this procedure. This will require an account with appropriate level of permissions to grant correct access rights to a user (connector user) using the graph API when inside the azure portal. 

You can either self-grant access or have an admin grant access to the graph API and its corresponding access rules inside the azure portal if and only if that user has authority to grant access to those rules. 

The following steps below outline this process: 


&#x20;       i.   Visit https\://portal.azure.com/ then login using an appropriate account.&#x20;

&#x20;      ii.   Click on Active Directory, then click on App Registrations and click on new registration.

Name the application GimmalLinkENT\_suffix (Either DEV, TEST,PROD) depending on environment provisioning.

Select single tenant.

Click register.

Click Api Permissions under Manage.

Click Add Permissions.

*We have also included a summary of the site level permissions&#x20;*[here](docId\:b5UKq8Dzz49AtdKe2yDay)

Click Grant admin consent for GimmalLinkENT\_suffix app

Click certificates and secrets.



![Certificates & Secret](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/V1ysLrJ2yVTUqGRYe-zei_image.png "Certificates & Secret")

Click on 'Upload certificate' under 'Certificates' tab.



![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/UKjU8uB9QOFsD2q1HhuhM_image.png)

select a public key/certificate by selecting it via file choose.



![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/uABhgokoCWkB9ZdoJ6Nqp_image.png)

Provide appropriate description of the certificate in 'Description' field.

Click on 'Add'

If everything is well, certificate basic details will be populated in the table along with Thumbprint, Description, start date, Expiry Date and certificate ID.


![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/CqcggDNwHuJLL7fCEjsZa_image.png)

Click on overview and save the following information. App ID, and tenant ID.

**


[title] Introduction and Overview - S3
[path] Repository Specific Guides/Link Enterprise for S3/Technical Overview/

Gimmal Link Enterprise is an SAP certified suite of functionality that provides integration between SAP and content service repositories.&#x20;

This integration includes document storage, linking, bidirectional metadata transfer, process
and workflow automation, as well as ArchiveLink processing. Line of business solutions (such as
Accounts Payable) and additional add-ons (such as SAP DMS integration and AuditLink bundle
creation) can be leveraged in addition to the baseline functionality.

In addition, Gimmal Link Enterprise provides a robust SAP based migration tool that handles migration of content from any ArchiveLink, File, or SAP database (both attachments and notes) source to S3. &#x20;

The Gimmal Link Enterprise offering consists of two separate integration options or approaches that can be
used independently or in combination to provide the best value for your implementation:

&#x20;      1\.    <u>Link Enterprise ECM</u>

Leveraging components both inside (SAP transport component) and outside the SAP
boundary (middleware component), Gimmal Link Enterprise ECM provides the most powerful and flexible SAP to content services integration options. Enhanced user-based storage and linking, no-code bidirectional metadata transfer and workflow triggering, all supported by comprehensive SAP based administrator workbench monitoring, utilities, user delete link request management, Audit and Compliance bundle creation, and reporting functions are just some of the highlights. &#x20;

In addition, Gimmal Link Enterprise provides a robust SAP based migration tool that will handle migration of content from any ArchiveLink, File, or SAP database (both attachments and notes) source to S3. &#x20;

Gimmal Link Enterprise ECM also provides a powerful Content API set of SAP BAPI’s to allow the customer to perform full SCRUD (Search, Create, Read, Update, and Delete) functionality to fulfill any custom requirements within the SAP boundary.

&#x20;      2\.    <u>Link Enterprise Content Server</u>

Based on the SAP ArchiveLink framework, the Gimmal Link Enterprise Content Server (middleware
component only), provides SAP message output, document storage, print list
support, data archiving, and other standard ArchiveLink functionality from SAP to
your content services platform.

Which Gimmal Link Enterprise approach and tool is utilized depends on the integration pattern/add-on
required:

`*put your mouse over the below table to scroll left/right`

|                     | Web Services Integration | Business Document<br />Storage | Enhanced SFO / GOS Attachment List | Enhanced Business<br />Document Storage | Outbound from SAP<br />Metadata Transfer | Inbound to SAP<br />Metadata Transfer | Migration Utilities | Federated Services | Administrator<br />Workbench | Message Output<br />Storage | Print List Storage | Data Archiving (ADK) | Enhanced Inbound<br />Processing | Inbound SAP DMS<br />Integration | Outbound SAP DMS<br />Support | Bi-Directional<br />Workflow<br />Integration\Process | Dynamic Folder Creation | Delete Link Management | Automation AuditLink | TrackLink Workflow | List Creation (SAP reference data) | Accounts Payable | S3 SAP<br />Content API |
| ------------------- | ------------------------ | ------------------------------ | ---------------------------------- | --------------------------------------- | ---------------------------------------- | ------------------------------------- | ------------------- | ------------------ | ---------------------------- | --------------------------- | ------------------ | -------------------- | -------------------------------- | -------------------------------- | ----------------------------- | ----------------------------------------------------- | ----------------------- | ---------------------- | -------------------- | ------------------ | ---------------------------------- | ---------------- | ----------------------- |
| ECM                 | x                        | x                              | x                                  | x                                       | x                                        |                                       | x                   | x                  | x                            | x                           |                    |                      | x                                |                                  | x                             | x                                                     | x                       | x                      | x                    | x                  |                                    | x                | x                       |
| Content<br />Server |                          | x                              | x                                  |                                         | x                                        |                                       |                     |                    |                              | x                           | x                  | x                    |                                  |                                  | x                             |                                                       |                         |                        |                      |                    |                                    |                  |                         |

Figure 1: Toolset vs. Integration Pattern

Reasons you may need to use content server:

1. SAP message output without ECM plug in
2. ADK data archiving&#x20;
3. Fiori apps using document service (ie: without SFO/GOS functionality)
4. Outbound DMS
5. Any other application or 3rd party that relies on ArchiveLink directly


[title] WebSocket RFC (Cloud Connections)
[path] Repository Specific Guides/Link Enterprise for M365/Installation and Base Configuration Guide/

## Cloud Configuration

The Cloud Configuration allows on-premise solutions to communicate with Internet based Gimmal Link Enterprise servers over **HTTPS/SSL**.

### Import Certificate

To allow SSL handshake between SAP and a hosted Link Enterprise Environment we require importing Gimmal Link Enterprise public certificate into SAP's Trust Manager.

1. In SAP start the **Trust Manager** (**STRUST**)
2. **Import&#x20;**&#x74;he Gimmal Link Enterprise public certificate into ***SSL Client (Standard)*** (This will enable SAP to identify Gimmal certificate during TLS handshake)
3. Enter **Change Mode (Ctrl + F1)**
4. Click **SSL Client Standard**. Click **Import&#x20;**&#x61;nd select the Gimmal Link Enterprise public certificate provided. Click **Add to Certificate List** and **Save**

### Export Certificates

The Gimmal Link Enterprise middleware requires an export of the SAP public root certificate for SSL Client and SSL Server. This is to identify the SAP system connecting into the hosted environment.

1. In SAP start the **Trust Manager (STRUST)**
2. Export the root certificate from **SSL Client (Standard) and SSL Server (Standard)**.&#x20;
3. Clic&#x6B;**&#x20;SSL server Standard&#x20;**&#x61;nd double click the subject

   ![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/y4-PmOMlv6QKsXzoEzYKx_exp1.png)
4. It will be appear in the Certificate section
5. Scroll down and export (provided below is a sample image) of export icon

   ![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/CZrLjYYsqbfQ9w3rJVQJC_root-cert-2.png)
6. Click **SSL server Client&#x20;**&#x61;nd double click the Subject
7. Scroll down and export the certificate

   ![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/lWsasF1o0ZYHXUBh6N8dP_exp2.png)
8. Send both certificates to your Gimmal representative

### Setup RFC Destination

To enable a endpoint for the SAP to connect into the middleware we require an **RFC Destination** to be created

1. Visit transaction **SM59**
2. Click **Create&#x20;**&#x61;nd give the destination an appopriate name. An example is Z\<TYPE>\_\<NAME>
3. Ensure the connection type is type **'W'**

   ![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/EkYksHsPCFz57o8WjU7oT_zweb.png)
4. Under technical settings we need to prove the **Target System Settings**
5. For **host name** enter the provided hostname given to you by your Gimmal Representative
6. For **port** enter the provided port given to you by your Gimmal Representative&#x20;
7. ![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/Yrpx4JlTuSoTO4IlhGLSu_initalsettings.png)
8. Click the **Logon & Security** tab and enter Language as **EN**
9. Set th&#x65;**&#x20;Explicit Client** to **by Hostname**
10. Set the **Authentication Method** to by **X.509 certificate**
11. Under **Security Options** set to **SSL Client (Standard)**
12. ![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/fqsL5NnIBlPywM9A8scW5_securiy.png)
13. Click **Save**
14. ***Provide the RFC Destination to your Gimmal representative***

### Firewall

The firewall needs to be configured to allow **HTTPS&#x20;**&#x74;raffic through to the Gimmal Link Enterprise server. To find or define these ports:

***Inbound Rule***

- In SAP, review the value for ***icm/server\_port\_x*** (where x=0,1,2,3...,n) that is used for **HTTPS**. This port will need to be opened for inbound traffic to the SAP system.

***Outbound Rule***

- Review the section ***Setup RFC Destination*** for the port that has been configured in **SM59&#x20;**&#x66;or the ***WebSocket RFC*** communication to the Gimmal Link Enterprise Server.&#x20;
- This port will be given to you by the Gimmal representative

### Changing Profile Parameters

To allow quick setup of websocket connetivity we can dynamically change the parameters to quickly confirm connectivity. Work with your SAP BASIS to configure the parameters to hold.

1. Enter transacation RZ11.
2. Type in rfc/websocket/external\_active&#x20;
3. Change the value from 2 to 1. (This will allow us to bypass UCONN and enable logon, even if UCON is not activated and configured)
4. Confirm ucon/websocketrfc/active is set to 1.&#x20;


[title] ECM
[path] Repository Specific Guides/Link Enterprise for M365/Installation and Base Configuration Guide/Milestone: Establish SAP <-> Enterprise Connector Connectivity/

At this point no additional configuration is required to establish connectivity and ECM connectivity testing can be done so via: 

1. The test connection button at the Enterprise Connector level for the SAP   endpoint (refer to Base Enterprise Connector Configuration – ECM Only)
2. Using transaction SM59 within SAP to ensure the RFC connection configured in   &#x20;Configure SAP RFC destinations – Enterprise ECM Only can now communicate&#x20;   with the Enterprise Connector.

\* Make sure the Enterprise Connector windows service is turned on prior to executing the SM59 test connection. 

Select the Connection Test button. You should see a successful connection with timing.

In addition, via the System Dashboard, you should now see a green light under the column “API” as shown below. This indicates that SAP has the RFC connection to the matching Enterprise Connector middleware and configuration. 

Note that until the API destination(s) and CMS Use Tags are utilized in a processing rule such as DocManager or Migrator, etc., they will show as “unused”. 







[title] Content Server
[path] Repository Specific Guides/Link Enterprise for S3/Installation and Base Configuration Guide/Milestone: Establish SAP <-> Enterprise Connector Connectivity/

When you are ready to completed connectivity between SAP and the Enterprise Connector for Content Server, you must first send the certificate from SAP to Enterprise Content Server. 

Both sending of the certificate and testing connectivity is done via the SAP CS Admin functionality in transaction OAC0. 

\* Make sure the Enterprise Connector server is turned on (windows service “Gimmal Link Enterprise Connector”) prior to executing the SM59 test connection. 

1. From OAC0 find the repository ID configured prior and open the details
2. Choose the “Send Certificate” icon
3. The message in the bottom toolbar should read “Certificate sent successfully”
4. Click the “Info” icon next to confirm the content server is fully operational


[title] Content Server
[path] Repository Specific Guides/Link Enterprise for S3/Installation and Base Configuration Guide/Base Enterprise Connector Configuration/

Below is the configuration needed for a S3 Content Server.

\*\*\* please refer to the section Follow Up S3 Team Tasks for more information on required indexes \*\*\*

1. Under "Connections" click "S3"
2. Under "S3" click modify on a previously created box connection.
3. Click "Add Content Server"
4. Hover over each input box to see example values.
5. Click "Add"
6. Click "Save".
7. Restart service via Windows services.

    

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/sXK8kJEqLKdTfPxiiBo2f_screenshot-624.png" size="58" width="536" height="720" position="center" showCaption="false"}

Image CaptionImage alt text

The below table is a description of each configuration entry above, along with possible value. 

| Setting                            | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | Sample Value(s)                                              |
| ---------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ |
| enabled                            | YES/NO                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Yes to enable, No to not but still configure.                |
| signature required                 | YES                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | Used for verify authentic origin requests.                   |
| csHost                             | Binds to local IP address                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | 127.0.01                                                     |
| port                               | Port we want content server to be deployed on.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | 8089                                                         |
| threads                            | Max Number of threads to allocate for parallel processing.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | 50                                                           |
| contentType                        | CMS Custom metadata needs to specify the name of template                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | invoices                                                     |
| SAPType                            | Configured SAP System utilized                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | S4                                                           |
| tmpDir                             | Directory to temporary use for storage                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | C:\\\\\<connector install directory>\\\config\\\tmp          |
| certDir                            | Directory where certificates are located                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | C:\\\\\<connector install directory>\\\config\\\certificates |
| RepoId                             | SAP repository for content Server                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | ZS                                                           |
| Location                           | S3 Bucket ID                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | For S3:  i.e. 13213213                                       |
| repository                         | For S3 n/a                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | n/a                                                          |
| callBackEnabled(for version 6.6.8) | Enable callbackHandler to link and monitor content server activities from SAP and to allow for ECM/SAPDocID mapping.  ie: for each content server call from SAP to M365, a separate return call is made via SAP Jco RFC to log in the Link Enterprise SAP Gateway as well for a CREATE, it will map SAPDocID to the ECM M365 object id.<br /><br />The recommended setting is YES as this will support:<br />- ECM based viewing<br />- ECM API support for documents stored via Content Server<br />In extremely high volume content server scenarios where no ECM will be in play, this setting should be set to NO  | YES                                                          |

\*the Windows service must be restarted for changed to take effect

[title] Architecture Overview
[path] Repository Specific Guides/Link Enterprise for M365/Technical Overview/

The below diagram outlines the basic components of the Gimmal Link Enterprise stack for Microsoft 365:



![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/si0HKb_hOG9dKP66ebs3u_image.png)


[title] Creating S3 Credentials for middleware
[path] Repository Specific Guides/Link Enterprise for S3/Installation and Base Configuration Guide/

To create an S3 Connection in middleware you must have an aws Access Key and a secret access key. We recommend using the IAM interface in AWS to configure a user with an access key with the appropriate permissions, however it is possible to use a root access/secret access key.

For demonstration and simplicity purposes on how to create an access key and secret access key, the below instructions are using a root account.&#x20;

- In the IAM Panel click "Create Access Key".

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/7lBt05ngd2Rb9-05QY9b3_image.png)

- Note down the "Access Key" and "Secret access key" for later use as seen below. You can also download the record as a csv file.

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/QHNnEObWsrQcTARO_aZ0G_image.png)


[title] Mandatory Content Server Indexes
[path] Repository Specific Guides/Link Enterprise for M365/Installation and Base Configuration Guide/Follow up SharePoint Team Tasks/

Content server uses search query to enable real time search of documents uploaded using content server for :

1. Viewing from SAP&#x20;
2. ADK data archiving&#x20;

Indexes should be created for:

- compId
- docID

Please consult your integration team to determine if Content Server is being implemented for any of the above patterns.

[title] Overview for SAP Basis
[path] Repository Specific Guides/Link Enterprise for S3/Installation and Base Configuration Guide/

Refer to the below section or links for the steps relevant to SAP Basis team: 

1. Installing the Gimmal Link Enterprise SAP Transports – Gimmal Link Enterprise ECM Only 
2. Configure SAP RFC destinations – Gimmal Link Enterprise ECM Only&#x20;
3. Configure SAP Gateway – Gimmal Link Enterprise ECM Only 
4. Base SAP ArchiveLink Configuration
5. Establishing SAP \<-> Gimmal Link Enterprise Connector Connectivity Configuration
6. Follow up Basis Tasks – Gimmal Link Enterprise ECM Only 





























[title] Overview for SharePoint and Middleware Team
[path] Repository Specific Guides/Link Enterprise for M365/Installation and Base Configuration Guide/

Refer to the below sections for steps relevant to the SharePoint and Middleware teams. This is often a collaborative effort and maybe also require support from SAP Basis for SAP connectivity. 

1. Installing the Enterprise Connector
2. Configure App within M365 - Application based permissions (recommended)
3. Configure App within M365 Account - User Based (not recommended)
4. Configure App within M365 Account – Legacy Registration (not recommended)
5. Establishing SAP \<-> Enterprise Connector Connectivity
6. Follow up Middleware Team Tasks
7. Follow up SharePoint Teams Tasks


[title] Adjusting log4j logging
[path] Repository Specific Guides/Link Enterprise for M365/Installation and Base Configuration Guide/Follow up Middleware Team Tasks/

The Windows service can have what is logged adjusted by adjusting the log4j configuration files. These configuration files work in conjunction with a logging utility called log4j which is well documented online. The configuration files (found under the config directory in the installation folder): 

log4j2-gimmal.xml (The Gimmal Link Enterprise Windows service log configuration) 

Using your preferred text editor you can go in and adjust these configuration files to increase logging as well as change how the log files look. Once the changes have been made make sure to either restart the profile wizard or the Windows service so that the changes can take affect. Please refer to log4j information online for assistance in changing the format of these configuration files. 







[title] Installation and Base Configuration Guide
[path] Repository Specific Guides/Link Enterprise for S3/

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/Z5Y48ZCc_-BUkADQDuJUI_image.png" size="54" width="1210" height="462" position="center" showCaption="false"}

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/b8OaCikFuJjB6GJS6ZKml_image.png" size="54" width="1227" height="243" position="center" showCaption="false"}

²

[title] Customer Resources Required
[path] Repository Specific Guides/Link Enterprise for M365/Installation and Base Configuration Guide/

Customer resources typically required for a Gimmal Link Enterprise installation and implementation are: 

- SAP Basis: install SAP transports, support base configuration, and QUAL, PROD migration (see below  Overview for SAP Basis)
- SAP Security: create SAP user (Gimmal Link ECM) and grant necessary ArchiveLink and Gimmal Link Enterprise authorizations (see below Overview for SAP security)
- SAP Developer: if Gimmal Link Enterprise integration patters are to be extended or customized, an ABAP developer (customer or Gimmal) will be required along with corresponding developer key and SAP transports (see separate Gimmal Link Enterprise Solution Guide)
- SharePoint Admin: support installation of Gimmal Link Enterprise middleware and SharePoint configuration
- Middleware Server/Network/Security Team: support installation of Gimmal Link Enterprise Connector
- Business/SAP End-User/Tester: support unit and user acceptance testing.


[title] Overview for SAP Basis
[path] Repository Specific Guides/Link Enterprise for M365/Installation and Base Configuration Guide/

Refer to the below section or links for the steps relevant to SAP Basis team: 

1. Installing the Gimmal Link Enterprise SAP Transports – Gimmal Link Enterprise ECM Only 
2. Configure SAP RFC destinations – Gimmal Link Enterpsrise ECM Only&#x20;
3. Configure SAP Gateway – Gimmal Link Enterprise ECM Only 
4. Base SAP ArchiveLink Configuration
5. Establishing SAP \<-> Gimmal Link Enterprise Connector Connectivity Configuration
6. Follow up Basis Tasks – Gimmal Link Enterprise ECM Only 





























[title] SharePoint On-Prem Endpoint
[path] Repository Specific Guides/Link Enterprise for M365/Installation and Base Configuration Guide/Base Enterprise Connector Configuration/

Using a SharePoint On-Prem repository you will need to ensure that the enterprise connector is configured and able to talk to the Microsoft SharePoint Rest API. 

Note: SharePoint On-Prem requires utilization of Windows NTLM Authentication to access the SharePoint Rest API. This is enabled via your Microsoft IIS server and is an option that must be enabled for connector usage. 

From the information gathered in the step Configure Gimmal Link Enterprise app within M365 Account, update the configuration file located at \<installation directory>\config\INILocator.properties the following parameters where “companySP” is the name of your system in the connector, under section “\[Sharepoint Connection]”. 

An example is shown below: 

companySP.sharepoint.onprem.login=administrator 

companySP.sharepoint.onprem.password=\<usethepasswordgeneratorbelow> 

companySP.sharepoint.onprem.domain=DEVAD002 

companySP.sharepoint.onprem.host= devsp2013srv1 

Use the PasswordGenerator.jar located under \<install-directory> enter using command prompt java -jar PasswordGenerator \<enter-your-password> to receive the encrypted hash to enter in the configuration file. 

Also under \[General Preferences]: 

sharepointOnPrem.systems=companySP 

\*the Windows service must be restarted for changed to take effect








[title] Configure SAP Gateway – ECM Only
[path] Repository Specific Guides/Link Enterprise for M365/Installation and Base Configuration Guide/

Gateway security via SMGW may need to be configured depending on your reginfo file settings in order that connections are permitted from the host where the Link Enterprise Connector is installed. Note the below values need to reflect the naming convention chose above in the RFC destination: 

1. &#x20;   Ex: P TP=Z\* (Allows the Gimmal Link Enterprise middleware registered server programs to connect from any host)
2. &#x20;   Ex: P TP=Z\* HOST=\*.\<your domain.com> (Allows the Gimmal Link Enterprise middleware registered server programs to connect from any host on the domain specified.
3. &#x20;   Ex: P TP= Z\_CSM\_API\_01 HOST=\<ip address or host where Enterprise Connector is installed> (Only allows the specified registered server program to connect from the specified host)

Example: 

&#x20;                    P TP=Z\_CMSAPI1 HOST=\* 










[title] Base Enterprise Connector Configuration
[path] Repository Specific Guides/Link Enterprise for S3/Installation and Base Configuration Guide/

Base Enterprise Connector configuration contains the following components:

1. S3 Connection/Endpoint - required for both ECM and Content Server
2. SAP Connection - required for ECM only
3. Content Server - required for Content Server only

    

The above will finalize base connectivity between SAP and S3..

For specific configuration of SharePoint *\<->&#xA0;*&#x53;AP integration patters and use cases, please refer to the Solution Guide (separate). 







[title] Installation and Base Configuration Guide
[path] Repository Specific Guides/Link Enterprise for M365/

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/Z5Y48ZCc_-BUkADQDuJUI_image.png" size="54" width="1210" height="462" position="center" showCaption="false"}

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/b8OaCikFuJjB6GJS6ZKml_image.png" size="54" width="1227" height="243" position="center" showCaption="false"}

²

[title] Uninstalling the Enterprise Connector
[path] Repository Specific Guides/Link Enterprise for M365/Installation and Base Configuration Guide/Follow up Middleware Team Tasks/

1. In order to uninstall the Enterprise Connector we recommend that you first stop the Windows service by either using the “Administrative Tools” “Services” option under the “Control Panel” or by using the “Gimmal Link Enterprise Service” configuration found in the Gimmal program group.
2. Once the service has been stopped you will need to uninstall the service by running the “uninstallService.bat” script found in the “service” directory found under the installation folder. Verify that the service was truly removed from the list of services. If for some reason the service isn’t removed you can run “SC DELETE Gimmal Link” from a DOS command prompt window”
3. Once the service has been removed you can run the uninstaller found in the “Uninstaller” directory under the installation folder. Double clicking on the uninstaller.jar file will then walk you through uninstalling the Gimmal Link Enterprise Connector.

Note: The uninstaller may not be able to delete some of the files and folders that were created so additional cleanup may have to be done manually for the installation location. If you have any problems uninstalling the Gimmal Link Enterprise Connector please don’t hesitate to speak to your system administrator or a Gimmal support team member. 







[title] How to change Enterprise Connector username and password
[path] Repository Specific Guides/Link Enterprise for M365/Installation and Base Configuration Guide/Follow up Middleware Team Tasks/

1. Turn off the Gimmal Link Enterprise service
2. Open command prompt in windows
3. Change directory to the installation directory of Gimmal Link Enterprise&#x20;
4. Type in java -jar PasswordGenerator.jar insertyourpassword
5. Copy the encrypted password returned to the console
6. Open up config.properties located in the /config directory where Gimmal Link Enterprise is installed
7. Locate the fields&#x20;
   user.name=gimmal
   password=r0TMzjlSeMkURTcC77ocxg==
8. Replace "gimmal" if you would like to change the previous username, and replace password with your copied encrypted password from step 5 and replace the previous password
9. Save your changes
10. Start the Gimmal Link Enterprise service
11. Open browser in privacy/icognito mode or with cleared cache/cookies/passwords. Type in your new username and password,



[title] Overview for SAP Security
[path] Repository Specific Guides/Link Enterprise for M365/Installation and Base Configuration Guide/

Refer to the below section or links for the steps relevant to SAP Security team: 

1. Create SAP system account – Gimmal Link Enterprise ECM Only
2. Grant Necessary SAP Gimmal Link Enterprise authorizations – Gimmal Link Enterprise ECM Only
3. Grant Necessary SAP ArchiveLink authorizations – Gimmal Link Enterprise ECM or Content Server
4. Follow up Security Tasks




[title] ECM
[path] Repository Specific Guides/Link Enterprise for S3/Installation and Base Configuration Guide/Milestone: Establish SAP <-> Enterprise Connector Connectivity/

At this point no additional configuration is required to establish connectivity and ECM connectivity testing can be done so via: 

1. The test connection button at the Enterprise Connector level for the SAP   endpoint (refer to Base Enterprise Connector Configuration – ECM Only)
2. Using transaction SM59 within SAP to ensure the RFC connection configured in   &#x20;Configure SAP RFC destinations – Enterprise ECM Only can now communicate&#x20;   with the Enterprise Connector.

\* Make sure the Enterprise Connector windows service is turned on prior to executing the SM59 test connection. 

Select the Connection Test button. You should see a successful connection with timing.

In addition, via the System Dashboard, you should now see a green light under the column “API” as shown below. This indicates that SAP has the RFC connection to the matching Enterprise Connector middleware and configuration. 

Note that until the API destination(s) and CMS Use Tags are utilized in a processing rule such as DocManager or Migrator, etc., they will show as “unused”. 







[title] SharePoint M365 Endpoint
[path] Repository Specific Guides/Link Enterprise for M365/Installation and Base Configuration Guide/Base Enterprise Connector Configuration/

This is required for both ECM and Content Server.

Using an M365 SharePoint repository you will need to ensure that the enterprise connector is configured and able to talk to Microsoft Graph API. 

From the information gathered in the step <u>Configure App within M365 Account</u>, update the configuration file through middleware GUI [https://localhost:82/ ](#)

To Configure, Select SharePoint Online under Connections and click on"add row" to establish a new SharePoint connection.

| SharePoint Details                      | Description                                                                                                                            | Sample Values                                                                                                              |
| --------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| System name                             | Unique name for the Content Management System to be configured<br />in middleware.                                                     | M365\_1                                                                                                                    |
| User Name Property                      | Property defined in SharePoint for User Name                                                                                           | LinkEnterpriseUserName                                                                                                     |
| Time Property                           | Property defined in SharePoint for Time Stamp                                                                                          | LinkEnterpriseTimeStamp                                                                                                    |
| Tenant Id                               | find Tenant id in azure active directory registered application.                                                                       | 4dexxxx-xxxx-xxxxx                                                                                                         |
| Application Id                          | find Application id in azure active directory registered application.                                                                  | fbxxxxxx-xxxxxx                                                                                                            |
| Graph Url                               | find graph url in azure active directory registered application.                                                                       | [https://graph.windows.net/tenantId](https://graph.windows.net/tenantId)                                                   |
| Token Url                               | find token url in azure active directory registered application                                                                        | [https://login.microsoftonline.com/](#)<br />[&#x7B;tenantId}/oauth2/token](#)                                             |
| Enable Application based Authentication | Set the value to true to enable app based authentication.                                                                              | Set to true to enable app based Authentication.                                                                            |
| Client Secret                           | For App Based Authentication, find client secret in azure active directory registered application                                      | Combination of characters and integers.                                                                                    |
| Scope                                   | For App Based Authentication, find scope in azure active directory registered application                                              | [https://graph.microsoft.com/XXXX](https://graph.microsoft.com/XXXX)                                                       |
| UserName                                | For User Based Authentication, provide your username for sharepoint.                                                                   | \<linkenterpriseuser>@xxx.com                                                                                              |
| Password                                | For User Based Authentication, Provide your password for sharepoint                                                                    | Password to login into SharePoint                                                                                          |
| Anonymous url expiry time               | Provide the url expiry time                                                                                                            |                                                                                                                            |
| API Headers                             | Provide the API Headers included                                                                                                       | Mozilla/5.0 (Windows NT 10.0; Win64; x64)                                                                                  |
| Retry Count                             | When A call fails, provide number of retry attempts                                                                                    | 5                                                                                                                          |
| Default retry Time                      | Provide the time until the request attempts retrying                                                                                   | 1000                                                                                                                       |
| Throttle Filter Size                    | For a Large query, Provide the the filter size(recommended less than 1000)                                                             | 500                                                                                                                        |
| Enable REST API                         | Enable sharepoint  rest api                                                                                                            | true/false                                                                                                                 |
| REST API scope                          | Find scope in azure active directory registered application(when rest api is enabled)                                                  | For App Based Authentication, find scope in azure active directory registered application<br />https\://\<tenant>/.default |
| certBasedAuthentication                 | Enable if sharepoint certificate based authentication is required.(Only enable if authenticate                                         | true/false                                                                                                                 |
| Grant Type                              | Type of grant - when certBasedAuth is enabled / when rest api is enabled                                                               | eg\:client\_credentials                                                                                                    |
| Client assertion type                   | client assertion type - when certBasedAuth is enabled / when rest api is enabled                                                       | eg: urn\:ietf\:params\:oauth\:client-assertion-type\:jwt-bearer                                                            |
| certificate private key path            | path to the certificate file- when certBasedAuth is enabled / when rest api is enabled                                                 | C:\Users\\...\tp\_135b7b49\_a876\_492d\_9716\_64d272f5a425.pem                                                             |
| private key encrypted                   | enable if the private key provided certificate private key path is encrypted- when certBasedAuth is enabled / when rest api is enabled | YES/NO                                                                                                                     |
| private key password                    | password for certificate file provided above- when certBasedAuth is enabled / when rest api is enabled                                 | dgf\*\*\*\*                                                                                                                |
| public key path                         | Path to public certificate- when certBasedAuth is enabled / when rest api is enabled                                                   | eg\:C:\Users\\..\publiccert.cer                                                                                            |
| JWT type                                | Type of assertion- when certBasedAuth is enabled / when rest api is enabled                                                            | JWT                                                                                                                        |
| JWT Algorithm                           | Algorithm used for assertion- when certBasedAuth is enabled / when rest api is enabled                                                 | RS256                                                                                                                      |
| JWT Expiration                          | exipration of assertion token- when certBasedAuth is enabled / when rest api is enabled                                                | 3600000                                                                                                                    |

Hit save button and re-run the service to apply all the changes. To verify is the connection is established, click on modify and hit test connection. If established successfully, A dialog box with connection success message is displayed.

\*the Windows service must be restarted for changed to take effect






[title] Purpose of Guide
[path] Repository Specific Guides/Link Enterprise for S3/Installation and Base Configuration Guide/

The goal of this guide is to establish base installation, minimal configuration, and connectivity testing to a point that SAP and Link Enterprise can communicate with S3 and vice-versa. 

For details on architecture, supported environments, and system requirements please refer to the docuflow [Technical Overview](https://linkenterprise.docs.gimmal.com/technical-overview).

For detailed configuration of specific integration patterns and docuflow add-ons please refer to the docuflow [Solution Guide](https://linkenterprise.docs.gimmal.com/solution-guide). 

For custom development, please refer to the [Developers Guide](https://linkenterprise.docs.gimmal.com/developers-guide).

[title] Configure app within M365 Account – Legacy Registration
[path] Repository Specific Guides/Link Enterprise for M365/Installation and Base Configuration Guide/

Note: The app registration has recently changed for some accounts – please refer to this section only if the above description does not match your M365 account. 

Using M365 SharePoint as a Gimmal Link Enterprise repository you will need to ensure that the Enterprise Connector is configured and able to connect to the Microsoft graph API. You must create an enterprise application via the Microsoft Azure portal to complete this procedure. This will require an account with appropriate level of permissions to grant correct access rights to a user (connector user) using the graph API when inside the azure portal. 

You can either self-grant access or have an admin grant access to the graph API and its corresponding access rules inside the azure portal if and only if that user has authority to grant access to those rules. 

The following steps below outline this process: 


&#x20;       i.   Visit https\://portal.azure.com/ then login using an appropriate account.&#x20;

&#x20;      ii.   Click on **Azure active directory**, then click on **app registrations** and select **new application registration**.

::Image[]{src="https://archbee-doc-uploads.s3.amazonaws.com/image_072e388f-c8ca-4d3c-af7b-f88faf0e544c.png" size="58" position="center" width="1374" height="172" darkWidth="1374" darkHeight="172" showCaption="false"}

&#x20;       iii.    Fill in the follow details and then click **create.**

::Image[]{src="https://archbee-doc-uploads.s3.amazonaws.com/image_e026d394-7114-41b2-a341-def763a630ca.png" size="28" position="center" width="480" height="372" darkWidth="480" darkHeight="372" showCaption="false"}

&#x20;       iv.    Click **Settings.**

&#x20;        v.    Click **required permissions** \[Symbol] click **add** \[Symbol] click **select an api** \[Symbol] click **"Microsoft graph"**.

::Image[]{src="https://archbee-doc-uploads.s3.amazonaws.com/image_0bd3ff77-2717-4087-81e1-3839abf459e7.png" size="42" position="center" width="832" height="458" darkWidth="832" darkHeight="458" showCaption="false"}

&#x20;       vi.    Set appropriate permissions for SharePoint online. But ensure “Create, edit, and delete items and lists in all site collections” is checked.

::Image[]{src="https://archbee-doc-uploads.s3.amazonaws.com/image_6d713ee9-c3ab-4bdf-b784-8b43d7288862.png" size="62" position="center" width="976" height="72" darkWidth="976" darkHeight="72" showCaption="false"}

&#x20;     vii.    Click done

&#x20;    viii.    Click grant permissions (may have to do this on an admin account if account used does not have appropriate permissions)

::Image[]{src="https://archbee-doc-uploads.s3.amazonaws.com/image_b484c272-305e-45e5-a043-ec3b689a8cf9.png" size="58" position="center" showCaption="false"}

&#x20;       ix.    Make sure owner is set to the account being used for the connector. Example: <u>demouser\@company.com.</u>

::Image[]{src="https://archbee-doc-uploads.s3.amazonaws.com/image_d8846dd0-70d3-40d0-807f-76721c43e3a5.png" size="40" position="center" showCaption="false"}

&#x20;       x.    Click on properties and note down the **application id**, along with the **username**, **email** and **password&#x20;**&#x66;or base configuration of the connector detailed in the step <u>Base Gimmal Link Enterprise Connector Configuration - Gimmal Link ECM only</u>.

&#x20;      xi.    Go back to app registrations, then click on endpoints and note down the graph endpoint API url and token url for base configuration of the connector detailed in the step <u>Base Gimmal Link Enterprise Connector Configuration - Gimmal Link ECM only</u>.

























[title] Installing the Enterprise Connector
[path] Repository Specific Guides/Link Enterprise for M365/Installation and Base Configuration Guide/

# Link Enterprise 6.x.x Installation Instructions

## Obtain the Latest Installer

Download the latest Link-Enterprise-6.x.x-release.zip from a Gimmal representative.

## Extract the Installation Files

Extract the contents of Link-Enterprise-6.x.x-release.zip into your desired installation folder (e.g., C:\LinkEnterprise).

## Run the Installation Script

1. Navigate to the service folder inside the extracted directory and execute the installation script with administrative privileges:&#x20;
   - **Open a Command Prompt** with administrative permissions.
   - Navigate to the service folder. For example:&#x20;
   - Run the installation script: installservice.bat
2. This will configure and install Link Enterprise 6.x.x on your system.

## Adjust Windows Service Log On Properties

If folder permissions on the server restrict processing:

- Adjust the **Log On** properties of the Gimmal Link Enterprise Windows services.
- Use the **service account** mentioned in the installation requirements.

## Extract SAP JCO

1. **Download SAP JCO:**
   - Obtain the appropriate SAP JCO 64-bit version from SAP’s marketplace (provided by your SAP Basis team).

     [https://support.sap.com/en/product/connectors/jco.html?anchorId=section#section\_2129803369](https://support.sap.com/en/product/connectors/jco.html?anchorId=section#section_2129803369)
2. **Place the Extracted Files:**
   - Extract the contents into the jco folder under lib.
   - For Windows installations, ensure sapjco3.dll is also placed in the jco folder.
   - **Note:** If SAP JCO comes as two compressed files, ensure all levels are extracted. The correct files should include sapjco3.jar in the top-level jco folder under lib.

## Obtain Authorization Token

1. Request a **Gimmal Link Enterprise authorization token** from a Gimmal representative.
2. Use this token during the Gimmal Link Enterprise Connector configuration:&#x20;
   - Enter the token in the **active configuration .ini file** under the field authentication.token.
   - Alternatively, use the GUI navigating to Settings at [https://localhost:82](https://localhost:82).

⚠️ The service will shut down within 30 seconds if no active token is present, so using the .ini file method is recommended for reliability.

For further details, refer to **Base Gimmal Link Enterprise Connector Configuration – Gimmal Link Enterprise ECM Only**.

Let me know if you need further adjustments or additional formatting!

\*\*\*JCO Requires Visual C++


[title] Supported Environments
[path] Repository Specific Guides/Link Enterprise for S3/Technical Overview/

The following environments are supported with Gimmal Link Enterprise:

| **SAP**                                |                     |                                     |   |   |
| -------------------------------------- | ------------------- | ----------------------------------- | - | - |
| ECC 6.0<br />Basis 7.40 SP4 and higher | S/4 1809 and higher | CRM <br />Basis 7.40 SP4 and higher |   |   |

| **Amazon** |   |   |   |
| ---------- | - | - | - |
| S3         |   |   |   |

| &#x20; |   |   |
| ------ | - | - |
|        |   |   |

:::BlockQuote
Note: Gimmal Link Enterprise passes all P1/P2/P3 SAP CVA SLIN\_SEC checks.&#x20;
:::


[title] Configure app within M365 Account
[path] Repository Specific Guides/Link Enterprise for M365/Installation and Base Configuration Guide/

Using M365 SharePoint as a Gimmal Link Enterprise repository you will need to ensure that the Enterprise Connector is configured and able to connect to the Microsoft graph API. You must create an enterprise application via the Microsoft Azure portal to complete this procedure. This will require an account with appropriate level of permissions to grant correct access rights to a user (connector user) using the graph API when inside the azure portal. 

You can either self-grant access or have an admin grant access to the graph API and its corresponding access rules inside the azure portal if and only if that user has authority to grant access to those rules. 

The following steps below outline this process: 

&#x20;         I.    Visit [https://portal.azure.com](https://portal.azure.com) and login with appropriate credentials.

&#x20;        II.    Click on Azure Active Directory&#x20;

::Image[]{src="https://archbee-doc-uploads.s3.amazonaws.com/image_45f4a4b8-85e5-44fa-a72f-0c177b7f7e4c.png" size="30" position="center" width="600" height="116" darkWidth="600" darkHeight="116" showCaption="false"}

&#x20;       III.    Under Manage select

::Image[]{src="https://archbee-doc-uploads.s3.amazonaws.com/image_59bb60fd-a2c0-4346-b026-44cce6d4cafe.png" size="42" position="center" width="668" height="90" darkWidth="668" darkHeight="90" showCaption="false"}

&#x20;      IV.    Click on

::Image[]{src="https://archbee-doc-uploads.s3.amazonaws.com/image_0fddd8a3-3e35-4e1f-aaa5-a48eb2922eb4.png" size="26" position="center" width="402" height="120" darkWidth="402" darkHeight="120" showCaption="false"}

&#x20;       V.    Type in an appropriate name for application.

![](https://archbee-doc-uploads.s3.amazonaws.com/image_6dc1bdc0-eb2a-4565-a7de-3cb921391736.png)

&#x20;       VI.    Click Register

::Image[]{src="https://archbee-doc-uploads.s3.amazonaws.com/image_95200717-9fcf-429d-869e-4bb37c1a557c.png" size="16" position="center" width="238" height="68" darkWidth="238" darkHeight="68" showCaption="false"}

&#x20;       VII.  Under manage click on manifest, and look for "allowPublicClient", ensure this is set to True, for      example '"allowPublicClient"\:true,' and then click save.

::Image[]{src="https://archbee-doc-uploads.s3.amazonaws.com/image_ea4cee10-9479-40f4-a4f5-91e23f8f6082.png" size="20" position="center" width="450" height="96" darkWidth="450" darkHeight="96" showCaption="false"}

&#x20;     VIII.    Click on API permissions under manage, and click on add a permission. Click on Microsoft graph, then click on application permissions. Select all options as per your organizations security policies, but allow Sites.ReadWrite.All at a minimum.

![](https://archbee-doc-uploads.s3.amazonaws.com/image_cf00e67a-61bc-4b53-92bb-087c73c87550.png)

&#x20;     IX.  Click on owners, and add owners for all accounts that will use the connector. (optional)

&#x20;       X.  Log in under an account with admin permissions and grant consent to the previous API rules, the button is located in the screenshot below.

![](https://archbee-doc-uploads.s3.amazonaws.com/image_03202244-7c14-4b20-aa5c-36dde56aec3d.png)

&#x20;       XI.    Under app registrations click on endpoints and note down your oauth 2.0 token endpoint url. You will need this url later for base configuration of the connector detailed in the step <u>Base Gimmal Link Enterprise Connector Configuration - Gimmal Link ECM only</u>.

![](https://archbee-doc-uploads.s3.amazonaws.com/image_e341dd1e-15c6-41d0-86fb-eb73f8280a10.png)

&#x20;       XII.    Click on overview, and note down the **application id**, located in the below screenshot. Note down the application id, along with the **username**, **email** and **password** and **OAuth 2.0** **Token Endpoint URL** for base configuration of the connector detailed in the step <u>Base Gimmal Link Enterprise Connector Configuration - Gimmal Link ECM only</u>.

![](https://archbee-doc-uploads.s3.amazonaws.com/image_a85914e1-2158-40a2-9e8f-039e7604f1b1.png)





























[title] Technical Overview
[path] Repository Specific Guides/Link Enterprise for M365/

&#x20;                &#x20;

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/Zwi2e5KAZlmZijYlXixhn_image.png" size="54" width="1210" height="462" position="center" darkWidth="1210" darkHeight="462" showCaption="false"}

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/a9EXFAnHd3Drulu3gfKnI_image.png" size="54" width="1227" height="243" position="center" darkWidth="1227" darkHeight="243" showCaption="false"}


[title] System Requirements
[path] Repository Specific Guides/Link Enterprise for M365/Technical Overview/

The middleware component (Enterprise Connector) can be deployed on-premise, in a private cloud or as a fully managed service from Gimmal.&#x20;

When deploying on premise or in a private cloud environment, physical or virtual hardware is supported. The following server resources are the **minimum** requirements:

| **Operating Systems**                 | **CPU**                                                 | **Disk Space** | **RAM** | **SAPJco**                                                                                           |
| ------------------------------------- | ------------------------------------------------------- | -------------- | ------- | ---------------------------------------------------------------------------------------------------- |
| Windows Server 2016, 2019, 2022, 2025 | Minimum 2 cores or 2 physical CPUs with at least 2.0Ghz | 40 GB          | 8 GB    | 3.1 and above<br />(JCo 3.1 requires the Microsoft Visual Studio 2015-2022 C/C++ runtime libraries ) |

When deploying on premise or in a private cloud environment, physical or virtual hardware is supported. The following server resources are the **recommended** requirements:

| **Operating Systems**                  | **CPU**                                                 | **Disk Space** | **RAM** | **SAPJco**                                                                                           |
| -------------------------------------- | ------------------------------------------------------- | -------------- | ------- | ---------------------------------------------------------------------------------------------------- |
| Windows Server  2019, 2022, 2025<br /> | Minimum 4 cores or 2 physical CPUs with at least 2.0Ghz | 128 GB         | 64 GB   | 3.1 and above<br />(JCo 3.1 requires the Microsoft Visual Studio 2015-2022 C/C++ runtime libraries ) |

## Production/Non Production Environments

SAP typically follows a 3-system landscape:

1. Development (DEV)
2. Quality Assurance (QUAL)
3. Production (PROD)

Albeit Link Enterprise supports a 1 middleware to \<n> SAP connection, it is recommended to have 1 middleware environment (separate windows machine/VM) for each SAP system ie: most common is 3 separate windows machines/VM's.

a. Development - can be minimum server requirement specs if desired

b. We recomend QUAL be identical to production (recomended requirement specs).

Reasons why you may choose to share the DEV and QUAL SAP connections to a single non-production midldeware server instance:

1. low volume and load
2. no migration testing&#x20;
3. little or no concurrent "inbound to SAP" processing where you might want some event to go up to both DEV and QUAL SAP at the same time

## Enterprise Connector Middleware Service

The Gimmal Link Enterprise middleware service requires Read/Write permission to the Gimmal Link Enterprise installation root directory and sub-directories.  This can be accomplished via two methods based on your server configuration:

1. Running as local host
2. A specified service account where local host does not have Read/Write permissions.

## SAP Firewall Access

The Gimmal Link Enterprise Content server application communicates via HTTP/HTTPS and can be configured to use any port number.

1. The Gimmal Link Enterprise Content Server application communicates via HTTP/HTTPS and can be configured to use any port number (ex: 8085) (Inbound to middleware and Outbound from SAP. Refer to organizations internal IT security and project team on which IP address to allow).
2. Note that each SAP repository (Z1, Z2, etc) requires its own set of ports, for example:
   1. Z1
      1. 1 unique port for HTTP eg: 8085
      2. 1 unique port for HTTPS eg: 8086
   2. Z2
      1. 1 unique port for HTTP eg: 8087
      2. 1 unique prt for HTTPS eg: 8088

The Gimmal Link Enterprise ECM application communicates via SAP JCo over the following ports:

1. Gateway Port: The port number used to communicate with the gateway. Typically 33## with the ##’s being the system number (ex: 3300) (Inbound to sap)
2. Message Server Host (if applicable): The port number used to communicate with the gateway. Typically 36## with the ##’s being the system number (ex: 3600) (Inbound to sap. Refer to organizations internal IT security and project team on which IP address to allow)

`Confirm with your SAP Basis team for the values specific to your SAP installation.`

## URL and Firewall Configuration for M365 API Access

Access to the following URLs is required from the server:

- Base url: \<your sharepoint site(s)>
- Source: the IP of the Gimmal Link Enterprise server
- Port: https is 443
- Protocol: https
- This provides the basic functionality that Link Enterprise requires for its processing.


[title] Supported Environments
[path] Repository Specific Guides/Link Enterprise for M365/Technical Overview/

The following environments are supported with Gimmal Link Enterprise:

| **SAP**                                |                     |                                     |   |   |
| -------------------------------------- | ------------------- | ----------------------------------- | - | - |
| ECC 6.0<br />Basis 7.40 SP4 and higher | S/4 1809 and higher | CRM <br />Basis 7.40 SP4 and higher |   |   |

| **Microsoft 365** |   |   |   |
| ----------------- | - | - | - |
| SharePoint Online |   |   |   |

| **Microsoft On-Prem or Azure Private Cloud** |                 |                 |
| -------------------------------------------- | --------------- | --------------- |
| SharePoint 2013                              | SharePoint 2016 | SharePoint 2019 |

:::BlockQuote
Note: Gimmal Link Enterprise passes all P1/P2/P3 SAP CVA SLIN\_SEC checks.&#x20;
:::


[title] Link Enterprise for S3
[path] Repository Specific Guides/


[title] Link Enterprise for M365
[path] Repository Specific Guides/


[title] Graph API: Sites Selected
[path] Repository Specific Guides/Link Enterprise for M365/Installation and Base Configuration Guide/Configure app within M365 - Application based permissions - Client Secret (Not Recommended)/


[title] Public Certificate Creation using win-acme (Optional)
[path] Repository Specific Guides/Link Enterprise for M365/Installation and Base Configuration Guide/Configure app within M365 - Application based permissions - Certificate Based (recommended)/

In order to authenticate using a certificate, both a public and a private key are required. The following steps outline how to generate a keystore on the server using Win-ACME and later use KeyStore Explorer to manage the public and private keys. <u>**This step is optional if the client already has a trusted certificate issued by a recognized Certificate Authority (CA).&#x20;**</u>

Download win-acme from official website ([https://www.win-acme.com/](https://www.win-acme.com/))

The downloaded file should be in ZIP format. Hence, extract the contents of the file and place them in the middleware server, e.g., c:/wacs

now open command prompt as administrator and navigate to folder location c:\wacs

execute wacs.exe

choose "M" from menu.

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/7-YOVbXMg-f1Zi_UP-Wci_image.png)

type 2 to manually entered all the domain.

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/hoE9MVarwJSEER6QbdUW9_image.png)

Now provide DSN name. you can enter multiple seprated by ,.

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/2L-1L7nh4KqZSMdXpLx8__image.png)

The next prompt will ask for the friendly name of the generated certificate. Enter suitable name


![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/LtHhmCoVDuYavNlyfBzPE_image.png)

Type 4 to generate a single certificate.

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/WCsM8k9aLX0nNK8800SPq_image.png)

Type 2 for "Serve verification files from memory"



![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/m4f0wKlbv9i_LE-6LSXHK_image.png)

Type 2 for RSA Key.

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/EoWr3Th10l-rTolELPY9l_image.png)

Type 3 to generate PFX archive

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/Zy4wKqon4aJvZdB75Js1Q_image.png)

Next provide desired folder path where pfx file will be saved.



![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/ydWW0VGauJSixzIKYh0ln_image.png)

Next 1 to not associate a password or 2 to protect pfx with password. Here I will choose 1.

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/y4FOPE7PwAJdrfszEiENf_image.png)

Now select 5 for No additional store steps.

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/VMS9EK9KD_WL_vuSpwO3K_image.png)

Type 3 for No Addtional installation steps.

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/TAT358dF56UsvVCwHfyfJ_image.png)

Now it will run generate pfx file in desired location.


![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/-x4u0QXEx9qWJqQrlnH9D_image.png)

Press Q to Quit.

Now, the PFX file has been generated. It is time to extract the public and private keys from it. To achieve this, we will use a tool called 'KeyStore Explorer'. It can be downloaded from this link : ([https://keystore-explorer.org/downloads.html](https://keystore-explorer.org/downloads.html))

Once downloaded, install it with the default settings&#x20;

open KeyStore Explorer.

Drag and drop the newly generated PFX file onto the KeyStore Explorer window, or choose to open an existing keystore.&#x20;

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/8lMT6H4FIhbmdHIi-9oSt_image.png)

Enter the password if provided at the time of PFX creation; otherwise, press Enter or click OK. You should be able to see the certificate chain details with the DNS name.

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/bH97IWlsIea78duyX-l_6_image.png)

Right-click on the certificate chain, select 'Export' → 'Export Private Key' to export the private key.&#x20;

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/7DEPo_vBPmo8VwC4prOBf_image.png)

For the password, enter the password you provided earlier, or press Enter or click OK.&#x20;

Select 'PCS#8' for the private key export type and click OK.&#x20;

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/HxrHvfCJZhOpjpFDx_Mnf_image.png)

Next, it will provide an option to encrypt and specify the export file location. For this, we will use an unencrypted private key.

Uncheck 'Encrypt.'

In the 'Export File' field, change the folder location and file name.

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/9KS6sHUCYfK6zbiczV1Oh_image.png)

Click 'Export,' and a success message should appear.&#x20;

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/ZxctDhwrvWwGf1YIQY1Ar_image.png)

Now, generate the public certificate by right-clicking, selecting 'Export' → 'Export Certificate Chain.'&#x20;

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/9r_RTwADwhNLFLRQiwYv0_image.png)

Next, select 'Entire Chain' in the Export Length, 'X.509' in the Export Format, and change the folder location and file name in the 'Export File' field.&#x20;

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/NRq6yv0Sf5jOx9m4SoASq_image.png)

Click on 'Export,' and a success message should appear.&#x20;

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/x4HYOr0ZRTI0jlk6EcZ8e_image.png)

Now, go to the folder location, and there should be two files exported.&#x20;


![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/hkNb0nekNbzLu4ij1iwpw_image.png)

The PEM file represents the private key, and the CER file is the public certificate.&#x20;

The next step is to place those files under the config folder of the Middleware installation and modify the init file:

- 'sharepoint.cert.privatekey.path' to the private key path
- 'sharepoint.cert.publickey.path' to the public certificate path
- 'sharepoint.cert.privatekey.encrypted' to 'Yes' or 'No' if the private key is encrypted
- 'sharepoint.cert.privatekey.password' to the decrypted private key password via the Encryption utility

For more details, please refer to the 'SharePoint M365 Endpoint' section."





# SharePoint (SP365) Cert Authentication Configuration Example

Authentication Modes

App-Based Authentication
&#x20;Enables service-to-service communication without user interaction.
&#x20;sp365.sharepoint.appBasedAuthentication = true

Certificate-Based Authentication
&#x20;Uses certificates for enhanced security.
&#x20;sp365.sharepoint.certBasedAuthentication = true

## OAuth 2.0 Parameters

Grant Type
&#x20;sp365.sharepoint.granttype = client\_credentials

Client Assertion Type
&#x20;sp365.sharepoint.client.assertion.type = urn\:ietf\:params\:oauth\:client-assertion-type\:jwt-bearer

Resource URL
&#x20;sp365.sharepoint.resource.url = https\://graph.microsoft.com

## Certificate Configuration

Private Key Path
&#x20;Path to the private key file used to sign JWTs.
&#x20;sp365.sharepoint.cert.privatekey.path = \<path-to-private-key.pem>

Private Key Encryption
&#x20;Indicates whether the private key file is encrypted.
&#x20;sp365.sharepoint.cert.privatekey.encrypted = YES

Private Key Password (use encryption utility)
&#x20;Provide only if encryption is enabled.
&#x20;sp365.sharepoint.cert.privatekey.password = \<secure-password>

Public Key Path
&#x20;Path to the public certificate used to validate signatures.
&#x20;sp365.sharepoint.cert.publickey.path = \<path-to-public-cert.cer>

## JWT Settings

Type
&#x20;sp365.sharepoint.jwt.type = JWT

Algorithm
&#x20;sp365.sharepoint.jwt.algorithm = RS256

Expiration
&#x20;Example: 1 hour = 3600000 ms
&#x20;sp365.sharepoint.jwt.expiration.millisec = 3600000

[title] Repository Specific Guides
[path] /


[title] Introduction and Overview - Microsoft 365
[path] Repository Specific Guides/Link Enterprise for M365/Technical Overview/

Gimmal Link Enterprise is an SAP certified suite of functionality that provides integration between SAP and content service repositories.&#x20;

![](https://archbee-doc-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/Ydxeysrxy2Qy5MQXNtiji_image.png)

This integration includes document storage, linking, bi-directional metadata transfer, process
and workflow automation, as well as ArchiveLink processing. Line of business solutions (such as
Accounts Payable) and additional add-ons (such as SAP DMS integration and AuditLink bundle
creation) can be leveraged in addition to the baseline functionality.

In addition, Gimmal Link Enterprise provides a robust SAP based migration tool that handles migration of content from any ArchiveLink, File, or SAP database (both attachments and notes) source to Sharepoint. &#x20;

The Gimmal Link Enterprise offering consists of two separate integration options or approaches that can be
used independently or in combination to provide the best value for your implementation:

&#x20;      1\.    <u>Link Enterprise ECM</u>

Leveraging components both inside (SAP transport component) and outside the SAP
boundary (middleware component), Gimmal Link Enterprise ECM provides the most powerful and flexible SAP to content services integration options. Enhanced user-based storage and linking, no-code bi-directional metadata transfer and workflow triggering, all supported by comprehensive SAP based administrator workbench monitoring, utilities, user delete link request management, Audit and Compliance bundle creation, and reporting functions are just some of the highlights. &#x20;

In addition, Gimmal Link Enterprise provides a robust SAP based migration tool that will handles migration of content from any ArchiveLink, File, or SAP database (both attachments and notes) source to SharePoint. &#x20;

Gimmal Link Enterprise ECM also provides a powerful Content API set of SAP BAPI’s to allow the customer perform full SCRUD (Search, Create, Read, Update, and Delete) functionality to fulfill any custom requirements within the SAP boundary.

&#x20;      2\.    <u>Link Enterprise Content Server</u>

Based on the SAP ArchiveLink framework, the Gimmal Link Enterprise Content Server (middleware
component only), provides SAP message output, document storage, print list
support, data archiving, and other standard ArchiveLink functionality from SAP to
your content services platform.

Which Gimmal Link Enterprise approach and tool is utilized depends on the integration pattern/add-on
required:

`*put your mouse over the below table to scroll left/right`

|                     | Web Services Integration | Business Document<br />Storage | Enhanced SFO / GOS Attachment List | Enhanced Business<br />Document Storage | Outbound from SAP<br />Metadata Transfer | Inbound to SAP<br />Metadata Transfer | Migration Utilities | Federated Services | Administrator<br />Workbench | Message Output<br />Storage | Print List Storage | Data Archiving (ADK) | Enhanced Inbound<br />Processing | Inbound SAP DMS<br />Integration | Outbound SAP DMS<br />Support | Bi-Directional<br />Workflow<br />Integration\Process | Dynamic Folder Creation | Delete Link Management | Automation AuditLink | TrackLink Workflow | SharePoint List Creation (SAP reference data) | Accounts Payable | Microsoft 365 SAP<br />Content API |
| ------------------- | ------------------------ | ------------------------------ | ---------------------------------- | --------------------------------------- | ---------------------------------------- | ------------------------------------- | ------------------- | ------------------ | ---------------------------- | --------------------------- | ------------------ | -------------------- | -------------------------------- | -------------------------------- | ----------------------------- | ----------------------------------------------------- | ----------------------- | ---------------------- | -------------------- | ------------------ | --------------------------------------------- | ---------------- | ---------------------------------- |
| ECM                 | x                        | x                              | x                                  | x                                       | x                                        | x                                     | x                   | x                  | x                            | x                           |                    |                      | x                                | x                                | x                             | x                                                     | x                       | x                      | x                    | x                  | x                                             | x                | x                                  |
| Content<br />Server |                          | x                              | x                                  |                                         | x                                        |                                       |                     |                    |                              | x                           | x                  | x                    |                                  |                                  | x                             |                                                       |                         |                        |                      |                    |                                               |                  |                                    |

Figure 1: Toolset vs. Integration Pattern

Reasons you may need to use content server:

1. SAP message output without ECM plug in
2. ADK data archiving&#x20;
3. Fiori apps using document service (ie: without SFO/GOS functionality)
4. Outbound DMS
5. Any other application or 3rd party that relies on ArchiveLink directly


[title] Create SAP system account – ECM Only
[path] Repository Specific Guides/Link Enterprise for M365/Installation and Base Configuration Guide/

*`relevant to Gimmal Link `*`Enterprise `*`ECM only`*

In order for the Link Enterprise Connector to log in via SAP Jco to register on the SAP Gateway to receive outbound processing requests, as well as execute inbound processing (if configured), an SAP system (non-dialogue) account is required. This user ID requires the below privileges:

### Authorization Object: S\_RFC

ACTVT: 16

### RFC\_TYPE values:&#x20;

1. FUGR
2. FUNC

### RFC\_NAME values: 

1. /DFLOW/ZDOCMANAGER\_SAPLINK\_V2
2. DDIF\_FIELDINFO\_GET
3. RFC1
4. RFCPING
5. RFC\_GET\_FUNCTION\_INTERFACE
6. SDIFRUNTIME
7. RFC\_METADATA
8. RFC\_METADATA\_GET

### Transactions

1. /DFLOW/GTW

This authorization covers most standard Gimmal Link Enterprise processing. &#x20;

For custom requirements, please either use a copy of WF-BATCH with SAP\_ALL / SAP\_NEW or add the relevant authorizations via trace evaluation.&#x20;

Please note the user ID create and password and work with your Gimmal Link Enterprise implementor – this will be need to be configured in Gimmal Link Enterprise Connector in step Base Gimmal Link Enterprise Connector Configuration – Gimmal Link Enterprise ECM Only. 














[title] Installing the SAP Transports – ECM Only
[path] Repository Specific Guides/Link Enterprise for S3/Installation and Base Configuration Guide/

The following steps outline how to install Link Enterprise ECM Flow within SAP. Installing the Enterprise Connector (Link Enterprise middleware component) and configuring the Link Enterprise base connectivity is covered in other sections. 


&#x20;       1\.    Obtain the latest Link Enterprise transports from a Gimmal representative. The transports provided will be determined by the Link Enterprise Content API base plus add-ones licensed. 

&#x20;       2\.    Import the Link Enterprise transports into the target SAP system. 

- The Gimmal Link Enterprise product resides entirely in its own namespace (/DFLOW)
- These transports should be imported with all import options enabled:

::Image[]{src="https://archbee-doc-uploads.s3.amazonaws.com/image_1217ed1f-6f97-4f4c-8239-d0ecd2438f60.png" size="54" position="center" showCaption="false"}

&#x20;       3\.    This is a good time to enjoy a hot beverage of your choice while the import is running. 

&#x20;       4\.    Confirm that the transports were imported into the SAP system without any issues 

- Note: Warnings will occur, for example regarding domains over 255 characters among others. Errors (return code 8) should not occur. If they do, stop further import of additional transports and contact your Gimmal Link implementer.



















[title] SAP Connection - ECM Only
[path] Repository Specific Guides/Link Enterprise for S3/Installation and Base Configuration Guide/Base Enterprise Connector Configuration/

This is required for ECM only.

Ensure the Enterprise Connector windows service is turned on.

1. Visit the Enterprise Connector configuration ui via https\://localhost:82 (enter user name: link, password: link)
2. Under the "Connections" category in the left navigation panel click "SAP".
3. Click "Add Row". (SAP connection config dialog box will appear)
4. Complete the rest of the SAP configuration information by filling in the relevant details in the input box's. (For help setting some of these values work with SAP Basis team members.)
5. Click "Test Connection" if a text displays "Success" then proceed to save the connection.
6. If "Success" does not appear, you may need to check if the connection details are correct. (Check with basis team)



| **Setting**                          | **Description**                                                                                                                                                                 | **Sample Value&#xA0;**  |
| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- |
| Client                               | Client number to connect to                                                                                                                                                     | 800                     |
| Language                             | Language can only be EN for English currently but the setting is available for future international use                                                                         | EN                      |
| System                               | The system number                                                                                                                                                               | 00                      |
| Unicode                              | True if the system is a Unicode system and communication will be in Unicode. This is recommended to be enabled.                                                                 |                         |
| User ID                              | The SAP non dialogue system account with elevated permissions to allow the middleware to communicate with SAP.                                                                  | GIMMAL                  |
| Password                             | The non expiring password for the SAP system account                                                                                                                            | \*\*\*\*\*\*\*\*\*\*\*  |
| App. Server Host                     | The application server host name or ip address(disabled if using load balancing)                                                                                                |                         |
| Gateway Host                         | The gateway host name or ip address that the RFC destinations are configured to.                                                                                                | 127.0.0.1 <br />        |
| Gateway Port                         | The port number used to communicate with the gateway. Typically 33## with the ##’s being the system number                                                                      | 3300                    |
| Use Load Balanced Server             | When enabled a message server can be configured to handle incoming Enterprise Connector calls. If available it is recommended that this be utilized                             |                         |
| Msg. Server Host                     | The message server host name or ip address.                                                                                                                                     | 127.0.0.1 <br />        |
| Msg. Server Port                     | The port number to use to communicate with the message server. Typically 36## with the ##’s being the system number.                                                            | 3600                    |
| R3 System Name                       | The system name                                                                                                                                                                 | ED1                     |
| Group Name                           | The group name used with the message server                                                                                                                                     | Production              |
| Use Secure Network Connection (SNC)  | If enabled secure communication will be used between the Enterprise Connector and SAP. Generally this is not needed since all communication is from servers behind a firewall.  |                         |
| SNC Name                             | The SNC Name to use                                                                                                                                                             |                         |
| SNC Partner                          | The SNC Partner name                                                                                                                                                            |                         |
| QOS                                  | The SNC quality of service                                                                                                                                                      |                         |
| SNC Library                          | The SNC library location                                                                                                                                                        |                         |
| Use SAP Router                       | If enabled SAP router technology is used for communication. <br />                                                                                                              |                         |
| SAP Router                           | The SAP router configuration                                                                                                                                                    |                         |

If an error message occurs, or if there is no response at all, please refer to the Enterprise Connector log file. 

Note: A typical reason for no response is either the SAP Gateway has security enabled and Basis must allow access (refer to above section Configure SAP Gateway – Enterprise ECM Only) or the SAP Jco library does not exist in the Jco folder. 
\*the Windows service must be restarted for changed to take effect


[title] Follow up Basis Tasks
[path] Repository Specific Guides/Link Enterprise for S3/Installation and Base Configuration Guide/


[title] Grant Necessary SAP ArchiveLink authorizations – ECM or Content Server
[path] Repository Specific Guides/Link Enterprise for S3/Installation and Base Configuration Guide/

Base configuration for both Gimmal Link Enterprise components requires (at least one) SAP ArchiveLink repository to be created. Thus, access to the below transactions should be granted to the configurator and administrator of Gimmal Link Enterprise: 

- OAC0 - Content Repositories
- OAA3 - Protocols

In some instances, the SAP Basis team will already have access and may prefer to control this configuration. This configuration is outlined below sections. 

Business process configuration requires access to additional ArchiveLink transactions. Albeit not covered in this guide, these transactions should also be granted to the Gimmal Link Enterprise configurator: 

- OAC2 - document types
- OAC3 – business object /document type / link table assignment


[title] SharePoint - Message Output
[path] Repository Specific Guides/Link Enterprise for M365/SharePoint Implementation Guide/

## 1. Message Output Description 

Message Output in SAP allows users to generate and distribute documents from SAP to various output channels. With Link Enterprise, these generated documents can be routed to your Sharepoint environment for storage and distribution.

Key benefits include:

1. Centralized document storage in Sharepoint
2. Secure distribution with SharePoint's permission settings
3. Seamless integration with SAP processes
4. Support for multiple output formats
5. Audit trail and compliance features
6. Reduced manual effort through automation

Example use cases:

- Distributing invoices, shipping notifications, and order confirmations to customers, partners, and suppliers via SharePoint

## 2. Content Server vs ECM 

When storing Message Output documents, there are two options: 

1. Content Server 
2. ECM Server 

### Content Server 

Content Server is a communication specification defined by SAP that uses HTTPS to communicate with the Link Enterprise middleware. Link Enterprise is an SAP Content Server certified application. 



![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/6Dakw1eFc_MOdAZo6mLqi_image.png)

### ECM Server 

ECM Server is a communication specification based on SAP’s RFC socket protocol called JCo (Java Connector). The ECM server unlocks remote function calls and Link Enterprise provides an API within SAP to leverage this technology, allowing enhanced functionality over standard Content Server. 

While we are only discussing Outbound communications, ECM with JCo does allow for bi-directional communication between Link Enterprise and SAP, Inbound and Outbound.  

\[Architecture Diagram] 

 

### Content Server Considerations: 

Pros:  

- HTTPS protocol – routes well over the public internet and can be used with stateful packet inspection firewalls 
- Does not require Link Enterprise transports to be deployed in SAP 
- There will be no modifications to print program required 

Cons: 

- Does not inherently allow for custom metadata to be sent during upload to SharePoint unless call back is used. See Call Back Guide below.
- See the below section on custom metadata
- Does not inherently get dynamic routing unless call back is used 
- No Dynamic folder creation unless call back is used 

 

### ECM Considerations: 

 Pros:  

- Custom metadata can be sent real-time 
- Real-time dynamic routing 
- Real-time dynamic folder creation 

Cons: 

- RFC protocol requires non-standard ports to be opened 
- Modification to Z version of print program required 

## 3. Metadata 

Custom metadata can be set in SharePoint as columns in content types. Custom metadata is any values from SAP beyond those required by Link Enterprise. 

Custom metadata is most valuable when there is the desire to:  

- Allow end-users to access SAP-linked documents directly in the SharePoint interface, especially through search. 
- Enables Microsoft Search.  
- Enables access to Search Refiners in SharePoint.  
- Trigger a Power Automate workflow.  
- Allow other Business Systems to access/link to documents stored by SAP (i.e. SalesForce).  

Metadata enables inbound scenarios. For example, a document arriving in SharePoint can:  

- Link to an existing SAP object.  
- Trigger an SAP workflow with container values.  
- Trigger custom ABAP code.  

How custom metadata is applied to SharePoint varies based on the method of outbound storage, ECM or Content Server. 

ECM has native support for selecting a SharePoint Content Type and its column values when creating the document in a document library. Content Server, based on the SAP specification, does not allow custom metadata to be set during the creation of the document in SharePoint. This must be done through a Link Enterprise technology called a ‘call back’. 

Call backs utilize the ECM connectivity and update the document metadata/columns once the SAP Content Server store/create operation has been completed. This means there are additional API calls/time required to update the document with business metadata. 

### Callback: 

Call backs utilize the ECM connectivity and update the document metadata once the SAP Content Server store/create operation has been completed. This means there are additional API calls/time required to update the document with business metadata. 

\[Graphic Overview to be added at a future date]

### Custom Metadata Considerations: 

Pros:  

- Can enable metadata based searching and search result filtering for users accessing content within SharePoint 
- Enables the ability to do inbound rules when using ECM connectivity 

Cons: 

- Content Server does not inherently allow for custom metadata to be sent during upload to SharePoint. This then requires an ECM call to back populate the custom metadata which adds additional transaction time and SharePoint Graph API calls. 
- Please see the section ‘Application Throttling’ in the following Microsoft information page: [https://learn.microsoft.com/en-us/sharepoint/dev/general-development/how-to-avoid-getting-throttled-or-blocked-in-sharepoint-online](https://learn.microsoft.com/en-us/sharepoint/dev/general-development/how-to-avoid-getting-throttled-or-blocked-in-sharepoint-online) 

## 4. Dynamic Location Routing 

Dynamic Location Routing Dynamic Location Routing is a feature that allows documents to be automatically stored in different SharePoint folders based on associated SAP data when the document is transferred from SAP to SharePoint.&#x20;

This capability enables organizations to create rules and logic that determine the storage location of documents based on specific SAP attributes or metadata. By leveraging Dynamic Location Routing, companies can:

- Automatically categorize and file documents according to business-specific criteria
- Ensure consistent and organized storage of documents across various departments or processes
- Simplify document management and improve information accessibility

Here are a couple of examples to illustrate how Dynamic Location Routing can be used:

**Example1: Routing based on code:**
Documents attached to Sales Orders within a Sales Organzization with code 1000, go to SharePoint location 1000:&#x20;
SAPDocs->Sales Orders->1000
Documents attached to Sales Orders within a Sales Organzization with code 2000, go to SharePoint folder 2000 :
SAPDocs->Sales Orders->2000

**Example2: Internal vs. External documents:**
SAP information, such as ArchiveLink document type, classification, or vendor number, can be used to automatically classify documents as either internal or external and route them to the appropriate SharePoint folders.

External documents, intended for vendor access, are stored in a SharePoint folder that the specific vendor can view. Internal documents, meant for internal use only, are stored in a separate SharePoint folder inaccessible to vendors, even if the document is related to a specific vendor.

This automated categorization and routing process, based on SAP metadata, helps organizations maintain better control over document access and ensures that information is shared appropriately.


5\. Document Libraries and Folders 
-----------------------------------

Document Libraries and/or Folders are sometimes leveraged to logically bundle a series of documents together.  

SharePoint implements Permission inheritance from Site Collection->Site/Subsite->Document Library->Folder. Permission inheritance can be broken at any of these levels up until 100,000 items exist, at which point it is no longer possible. As a general best practice, it is best to break inheritance at the highest possible level in the hierarchy.  

ECM will allow dynamic selection at any level of Site/Subsite/Document Library/Folder/SubFolder.  

Content Server allows for only a single target Document Library to be selected per Content Repository configuration. 

### Document Libraries and Folders Considerations: 

Pros:  

- Can ensure security models are followed 
- Can implement business logic around folders. E.g. create a new Document Library folder for every new Work Order that is created in Plant Maintenance 
- ECM can link folders to SAP business objects vs individual documents. This can be used for scenarios where large batches of documents need to be easily linked to SAP Business Objects 

Cons: 

- Content Server does not inherently allow for custom folders to be created in its specification 

## 6. Viewing Options 

There are three options available when deciding how to view SAP content stored and linked to SharePoint Online: 

- SAP Viewer: The document is downloaded to the user’s computer and the SAP viewer will display the document 
- SharePoint Authenticated URL Link: A SharePoint Viewing URL is returned to the user who must then authenticate to SharePoint to view the document. The user must have permissions to the Document. The document is viewed in the SharePoint web based viewer 
- SharePoint Unauthenticated (Short Lived) URL Link: A short lived unauthenticated URL is generated and returned to the user. The user does not need to authenticate to SharePoint Online to view the item. The document is viewed in the SharePoint web based viewer. By default the URL expires in 1 minute, but this expiry period is configurable in Link Enterprise 

Each of the above options has pros and cons listed below: 

### SAP Viewer Considerations: 

Pros: 

- SAP Viewer allows notes to be attached to documents 

Cons: 

- SAP Viewer has limited file type support 
- SAP Viewer must be maintained on the user’s desktop (IT overhead) 
- The document is downloaded (highest bandwidth) to the local computer before viewing 

### SharePoint Authenticated URL Link Considerations: 

Pros: 

- SharePoint Online Viewer has a wide range of file type support 
- SharePoint Online Viewer is web based and runs in the browser 
- The SAP viewer does not have to be installed or maintained 
- The document does not need to be downloaded to the local computer before viewing (lowest bandwidth) 

Cons: 

- The user must have access rights to the document in the SharePoint Online document library 

### SharePoint Online Unauthenticated (Short Lived) URL Link Considerations: 

Pros: 

- SharePoint Online Viewer has a wide range of file type support 
- SharePoint Online Viewer is web based and runs in the browser 
- The SAP viewer does not have to be installed or maintained 
- The document does not need to be downloaded to the local computer before viewing (lowest bandwidth) 
- The user does not need access rights to the document in the SharePoint Online document library, SAP controls access 

Cons: 

- Additional configuration of SharePoint site collections to allow unauthenticated URLs to be generated. Configuration of this setting is per Site Collection 


[title] Base SAP ArchiveLink Configuration
[path] Repository Specific Guides/Link Enterprise for S3/Installation and Base Configuration Guide/

Both ECM and Content Server require basic ArchiveLink configuration for connectivity. This involves creating one (or more) Content Repository ID via transaction OAC0. 

***Please review the functionality referenced in the "Introduction and Overview" section of this document for a matrix of ECM vs. Content Server functionality.***

NOTE:&#x20;

- For ECM usage - Each RepoID will equate to a S3 Bucket.
- For Content Server usage - Each RepoID will equate to a S3 Bucket.

Additional ArchiveLink configuration may be required depending on the integration pattern implemented such as creation of doctypes (OAC2), assigning link tables (OAC3). 

This configuration is not outlined in this guide – refer to the Solutions Guide for further information. 

Optionally if you have big-bucket organization of content across Buckets within your Bucket collections, you may choose to create a oaco repository id for each, such as: Human Resources, Finance, Supply Chain, Health and Safety, etc. Please work with your Gimmal Link Enterprise team to determine the best setup to meet your requirements. Regardless, a minimum of one repository is required (and for the purpose of basic setup and configuration).







[title] Archiving API Gateway Log/Tables
[path] Repository Specific Guides/Link Enterprise for S3/Installation and Base Configuration Guide/Follow up Basis Tasks/

This tool allows you to maintain and archive API gateway log tables that may grow in size over time.

In particular the below tables contain the bulk of the gateway data:

1. /DFLOW/ZAPIL01 - CMS API Log - Header
2. /DFLOW/ZAPIL06 - CMS API Log - MetaData
3. /DFLOW/ZAPIL10 - CMS API Log - Return

It is highly recommended that you determine how long you would like to keep a line item level log vs header detail log and then create/schedule a background job to delete anything greater (either nightly or weekly).&#x20;

You have the choice to delete line item data (the highest volume by a hundred fold) and header data (less volume) as well as saving the entries to an export file as part of the deletion process.&#x20;

Line item detail is the data contained behind any drill down activity, eg: viewing metadata, viewing the full return table, etc.&#x20;

We recommend 1 year for line item detail and 5 years for header detail.&#x20;

Please observe foreground vs. background file locations. (SAP app/DB server vs. user presentation server).

To archive Ggateway, first create a logical filename as shown below and then set up a background job with a variant via the following steps. 

a.     <font color="#3b9f0f">Create the logical filename "ZGLINK\_API\_GATEWAY\_SAVED\_LOG\_FILES" via transaction FILE.</font>  Assign to a logical path of the same name and configure that logical path to the directory to save the log files.  The physical path must have the filename placeholder as \<FILENAME>.&#x20;

b.    <font color="#3b9f0f">Create a variant on the "Archive Gateway Data" selection screen to determine what to archive from the Gateway logs</font>

&#x20;             a. Go to the Gimmal Link Enterprise System Dashboard by utilizing transaction /DFLOW/SYS.

&#x20;                       b. Select the “Archive Gateway Data” menu option under the “Execute” menu.

&#x20;                       c. Enter in the criteria to determine what data to archive. We suggest leaving the last year’s worth of detail information and leaving all header information intact. Initially only the date and max header rows filters will need to have information entered. Note that in order to do advanced date calculations you will need to adjust on the “Save as Variant…” screen.

| **Setting**                          | **Description**                                                                                                                                                                                                                                                                    | **Sample Value(s)**  |
| ------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------- |
| CMS Profile                          | The content management system profile to limit archiving on.                                                                                                                                                                                                                       |                      |
| CMS Use Tag                          | The use tag to limit archiving on.                                                                                                                                                                                                                                                 |                      |
| CMS Repository Type                  | The content management system repository type to limit archiving on.                                                                                                                                                                                                               |                      |
| CMS RFC Destination                  | The remote function call (RFC) destination to limit archiving on.                                                                                                                                                                                                                  |                      |
| API Source                           | The source of the api calls to limit archiving on.                                                                                                                                                                                                                                 |                      |
| API Type                             | The particular api call type to limit archiving on.                                                                                                                                                                                                                                |                      |
| SAP object ID                        | The particular SAP ArchiveLink object keys to limit archiving on.                                                                                                                                                                                                                  |                      |
| Document Type                        | The SAP ArchiveLink document types to limit archiving on. <br />                                                                                                                                                                                                                   |                      |
| Unique Entry Key                     | The unique entry in the gateway log to limit archiving on. <br />                                                                                                                                                                                                                  |                      |
| Date                                 | The date range to limit archiving to. It is recommended to configure this at a minimum to limit how much data is archived.                                                                                                                                                         |                      |
| Time                                 | The time range to limit archiving on.                                                                                                                                                                                                                                              |                      |
| User Name                            | The SAP user name to limit archiving on.                                                                                                                                                                                                                                           |                      |
| CMS Message Type                     | The particular message types from the logs to limit archiving on.                                                                                                                                                                                                                  |                      |
| CMS SAP User                         | The SAP user name to limit archiving on. <br />                                                                                                                                                                                                                                    |                      |
| CMS Rep./Store                       | The content management system repository or object store to limit archiving on.                                                                                                                                                                                                    |                      |
| CMS ID                               | The content management system id(s) to limit archiving on.                                                                                                                                                                                                                         |                      |
| CMS Filename                         | The content management system filename(s) to limit archiving on. <br />                                                                                                                                                                                                            |                      |
| CMS Type <br />                      | The content management system document class, object type or metadata template to limit archiving on.                                                                                                                                                                              |                      |
| CMS Property                         | The content management system property that a choice list is defined to be configured against to limit archiving on.                                                                                                                                                               |                      |
| CMS Choice List Prefix               | The content management system choice list prefix to limit archiving on.                                                                                                                                                                                                            |                      |
| Test Only <br />                     | If selected the archiving isn’t actually performed and the process is just simulated.                                                                                                                                                                                              |                      |
| Delete Headers – not recommended     | If selected the header information from the gateway log will be deleted as well. Typically only the detail information needs to be deleted for space saving reasons so try to leave the headers when possible.                                                                     |                      |
| Max Header Rows <br />               | This determines how many at one given time are checked to see if their data should be archived. This helps for performance reasons to help limit the amount of processing. We suggest trying a value representative of the amount of processing that goes on in the given system.  | 500                  |
| Save selected entries                | Optionally if selected the archived entries can be stored in an output file for later analysis.                                                                                                                                                                                    |                      |
| PC file path (online execution only) | When this program is executed manually from the menu path and not via a scheduled job this determines the output file location for the archived data. <br />                                                                                                                       |                      |
| Dataset file path                    | When this program is executed in the background (potentially by the scheduled job) a dataset file is used for storing the archived data.                                                                                                                                           |                      |

&#x20;                       d.         Save the criteria as a variant that can be used by the scheduled job.

&#x20;                                    a.      Select "Save as Variant..." from the "Goto" menu under the "Variants".

&#x20;                                    b.      Adjust the date range by selecting "X\:Dynamic Date Calculation (System DA\ate)" for the selection variable of the "Date" Field name.

&#x20;                                     c.       Configure the "Name of Variable (Input Only Using F4)" to select the particular date  range to archive.

&#x20;                                                a.        We suggest selecting I for include (the I in the I/E column) with the LT (for less than) option the "Current date +/- ??? days" selection from the choices.&#x20;
&#x20;                                                b.        Enter 365 - for the ??? value.

&#x20;                                                c.         This archives all non-header data older than a year.&#x20;
&#x20;                                                d.         Make sure to enter a unique variant name that will be needed when scheduling the job. Ex: ARCHIVEGATEWAY

&#x20;                           e.         Also enter a description for the information entered. Ex: Archive the Gateway Logs

c.        <font color="#3b9f0f">Configure a scheduled job to archive the gateway data periodically.</font>

1. Go to transaction SM36 to configure a new background job to archive the data.
2. Enter a unique name for the job that reflects the archiving of Gimmal Link Enterprise data. Ex: zglink\_archive\_gateway.
3. Define a step to call the particular archive program with the variant defined previously.
   1. Define an ABAP program by pressing the “ABAP program” button.
   2. Enter “/DFLOW/ZCMSAPI\_GTW\_ARCHIVE” for the “Name”.
   3. Select the variant name previously defined in the “Variant” field.
   4. Then finally save the step information by clicking on the floppy disk at the bottom.
   5. Green arrow back to view the background job and you should see that a job step was successfully defined.
4. Define the start condition by clicking on the “Start condition” button along the top.
   1. Press the “Date/Time” button along the top and define a start date and time for the archiving background job. We suggest starting the job off hours at night or on the weekend. The job shouldn’t affect any current processing so it isn’t required to run off hours but just suggested.
   2. Press the “Period value” at the bottom to make the job run periodically to archive the gateway logs. We suggest running the archiving program weekly so that the job performs quickly and logs are maintained fairly regularly.
   3. Finally save the start condition by clicking on the floppy disk at the bottom.
   4. Confirm that the background job now mentions the planned start time along with how frequently it will be run.
5. Save the background job so that the archiving of gateway logs can occur.


[title] SAP S4 Rise / Private Cloud
[path] Repository Specific Guides/Link Enterprise for M365/Technical Overview/

This information is based on SAP's current best practices for connectivity:

[https://blogs.sap.com/2023/01/31/rise-with-sap-s-4hana-cloud-private-edition-secure-cloud-connectivity/](https://blogs.sap.com/2023/01/31/rise-with-sap-s-4hana-cloud-private-edition-secure-cloud-connectivity/)

The following three options are recommended for connectivity to S/4HANA Cloud, Private Edition / S/4 Rise.&#x20;

- VPN (IPSEC)
- VPC or VNET Peering
- Internet Based Firewall Access (***Content Server  and WebSockets Only***)

The connectivity architecture between AWS, Azure and Google Cloud are analogous, with minor variances in implementation


## VPN (IPSEC)

In this scenario, a Virtual Private Network (VPN) Gateway client is deployed in the GimmalLink Tenant and is configured to connect to the SAP RISE Tenant VPN Gateway. Traffic for the SAP communications are routed through this secured connection.

Azure and AWS provide options for Highly Available connections as an option.



![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/w1Oan0HKV5UtFEq5amO2A_image.png)

## VPC (AWS/Google) or VNET (MS) Peering

Virtual Network Peering is a mechanism that connects two virtual networks between Tenants in a Virtual Private Cloud (VPC).

Microsoft calls their implementation VNET and AWS/Google use the term VPC Peering.

In all cases, Peering provides a virtual, ***internal***, low latency, high bandwidth network connection between Tenants in the same VPC provider.



![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/vmV1LFyVcQjQtdqKvzk_b_image.png)

## Internet Based Firewall Access

In this scenario, a Web Application Firewall (WAF) is configured to allow specific traffic connectivity into the SAP RISE Tenant.

AWS, Google and Azure all offer WAF as a service within the tenant.

**NOTE: Only HTTPS is supported. This includes all Content Server connections and ECM Server when WebSockets are enabled (WebSockets require S/4 Hana 1909 or later)**

**\*https\://community.sap.com/t5/technology-blogs-by-sap/websocket-rfc-rfc-for-the-internet/ba-p/13502531**



![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/B58A-KvQv7aknXWE02PRp_image.png)



[title] Base SAP Link Enterprise Configuration
[path] Repository Specific Guides/Link Enterprise for S3/Installation and Base Configuration Guide/

## ECM

ECM requires base configuration regardless of what integration patterns, use cases, or functionality you would like to utilize.&#x20;

## Content Server

Content Server requires no more SAP Link Enterprise specific configuration unless you are going to use the below functionality with Content Server:

1. Outbound document storage (GOS/SFO or message output) WITH outbound metadata transfer
2. URL/Web viewing (instead of ArchiveLink standard viewing)
3. docMover
4. Folder Creation

It is recommended to use ECM unless you must use Content Server.  If you must use Content Server, this must be a separate (set of) OAC0 repository ID(s).&#x20;

Reasons you may need to use content server:

1. SAP message output without ECM plug in
2. ADK data archiving&#x20;
3. Fiori apps using document service (ie: without SFO/GOS functionality)
4. Outbound DMS
5. Any other application or 3rd party that relies on ArchiveLink directly

*If you are not implementing outbound metadata transfer you do NOT need to perform the below configuration.  You will most likely require standard SAP ArchiveLink OAC2 and OAC3 configuration.*

## Overview

The base configuration consists of the following components: 

1. &#x20;   One or more CMS Profiles
2. &#x20;   One or more CMS Use Tags
3. &#x20;   One or more API Destinations
4. &#x20;   Environment variables (optional)
5. &#x20;   One or more Repository ID’s

All above configuration is navigated via the Content API System Dashboard (transaction /dflow/sys) utilizing the top left menu path “Configure”. 

Configuration must be done in sequence, and requires the Repository ID(s) to be created as a prerequisite. 

All configuration must be saved in a transport for migration to QUAL and Production (among other) environments. 

## CMS Profiles

| **Setting**      | **Description**                                                                                                                            | **Sample Value(s)&#xA0;** |
| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------- |
| CMS Profile      | CMS Profiles equate to top level site collections in S3. Typically, there is only one CMS Profile per Repository Type of an organization.  | S3\_1                     |
| Repository Type  | S3 Type                                                                                                                                    | S3                        |
| Description      | An English description given to the describe the CMS Profile                                                                               | Main Site: ACME           |

## &#x20;CMS Use Tags

| **Setting**                          | **Description**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | **Sample Value(s)**                                                                                                                                                                       |
| ------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| CMS Use Tag <br /><br /><br /><br /> | CMS Use Tags, in combination with CMS Profiles, will together determine an API Destination (below) to be utilized. API Destinations in turn determine the SAP RFC to be leveraged, and thus load on that RFC and in turn a group of SAP JCo server threads. In short, this combination allows you to load balance processing across multiple RFC/SAP JCo connections.<br /><br />A very common approach to at a minimum to break out viewing from the rest of your processing. As let’s face it, end users hate when they can’t view their documents and if you are hammering an RFC with other processing, well, insert hourglass icon. <br /><br />Also, have one or more use tags for custom usage. This way if you mess up you don’t affect everyone else ;-) <br /><br />The load balancing features of Use Tags is not relevant to Content Server usage. | Doc\_Storage\_FI <br />Doc\_Storage\_SCM <br />Doc\_Storage\_HR <br />Custom\_API\_Usage\_1 <br />Migration\_1 <br />Migration\_2 <br />AuditLink\_1 <br />Etc.… <br /><br /><br /><br /> |
| Description                          | An English description given to the describe the CMS Tag                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | Outbound document storage for FI                                                                                                                                                          |

## API Destinations

API Designations are a unique combination of CMS Use Tags and CMS Profiles that determines the SAP RFC to be leveraged, and thus load on that RFC and in turn a group of SAP JCo server threads, allowing you to manually control the load balance processing across multiple RFC/SAP JCo connections. 

This is not relevant to Content Server integration.&#x20;

Note that for extreme load, you can also have multiple Enterprise Connectors configure for an SAP system, allowing you to spread API destinations (i.e.: RFC Destination) across multiple connector instances and possibly physical/virtual servers. 

\*\* Important \*\* This RFC destination chosen must match the API Destination configured in Enterprise Connector in step Base Enterprise Connector Configuration – Enterprise ECM Only. 

| **Setting**                            | **Description**                                                                                                                                                                                                                                         | **Sample Value(s)&#xA0;**                                              |
| -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- |
| CMS Profile                            | CMS Profile that will use this API/RFC Destination                                                                                                                                                                                                      | S3\_1                                                                  |
| CMS Tag <br /><br /><br /><br />       | CMS Use Tag that will use this API/RFC Destination <br />                                                                                                                                                                                               | • Outbound document storage for FI<br /><br />or <br /><br />• Viewing |
| Disable <br />                         | Used to temporary disable processing on this API Destination                                                                                                                                                                                            | ON/OFF <br />                                                          |
| CMS RFC Destination <br /><br /><br /> | SAP RFC to be used to communicate with a specific instance of a Enterprise Connector. This RFC destination chosen must match the API Destination configured in Enterprise Connector in step <u>Base Enterprise Connector Configuration – ECM Only</u>.  | Z\_CMSAPI\_01 <br /><br />                                             |


Environment Variables
---------------------

Environment variables are used for two reasons. The primary/most common reason is when a Enterprise configuration element requires a value that might change depending on which SAP environment (i.e.: SAP System ID) you are in. An example of this would be a development server vs. a production server for saving AuditLink bundles. Viewing URL’s are often different for development vs. production as well. This is leveraged extensively for on-prem content repositories when there are more server and host names involved. 

This is not relevant to Content Server integration.&#x20;

The second reason and less common, is if the Enterprise configuration field is too small in length to hold a crazy long value you may have. Yes, we have seen it. 

NOTE: when used in configuration, the environment variable must be specified within brackets, i.e.: \<hostname>, or \<reallylongsubsitestring> 

| **Setting**             | **Description**                                                                             | **Sample Value(s)&#xA0;**                                                                                                                 |
| ----------------------- | ------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| SAP System ID           | SAP system id that should use the value specified <br />                                    | DEV <br />QA1 <br />PRD                                                                                                                   |
| Variable Name           | Variable name that will be specified in any relevant Enterprise ECM configuration.          | • SPOnPremHost<br />or<br />• reallylongsubsitestring                                                                                     |
| Variable Value 1 <br /> | The value to be substituted in the  ECM configuration per SAP environment/system ID. <br /> | http\://devsp2013srv1/ <br />http\://qualsp2013srv1/ <br />http\://prodsp2013srv1/ <br />or <br />mycompany.sharepoint.com/sites/sapdemo  |

## &#x20;Repository ID’s

| **Setting**                | **Description**                                                                                                                                                                                                                                                           | **Sample Value(s)&#xA0;** |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------- |
| Cont.Rep.I&#x44;**&#xA0;** | The content repository ID matching OAC0                                                                                                                                                                                                                                   | Z1                        |
| Disable                    | The ability to temporarily turn off all usage of the repository ID for ECM usage.                                                                                                                                                                                         | OFF                       |
| Use CMSID                  | Relevant to ECM only: this uses CMSID (instead of SAPDocID) for all ArchiveLink entries. For all implementations it is highly recommended this be `KEPT OFF` and shoud only be turned on in Link Enterprise legacy installations if dictated by your Link Enterprise SME. | OFF                       |
| Is ArchiveLink             | If this repository ID is a Content Server (ie: not ECM), this must be enabled.  <br /><br />**\*\*\* You cannot share an “Is ArchiveLink” repository ID with an ECM repository ID \*\*\***                                                                                | ON/OFF                    |
| Use Direct API             | Future use                                                                                                                                                                                                                                                                | n/a                       |
| Req. Location <br />       | Determines whether the repository requires location as part of the ECM Processing. Currently all S3 versions require a location.                                                                                                                                          | ON/OFF <br />             |
| CMS Profile                | CMS profile that is relevant to this repository ID.                                                                                                                                                                                                                       | S3\_1                     |
| CMS Rep/Store <br />       | For S3, this is your top-level construct that uniquely determines your online repository. This is a bucket id. <br />                                                                                                                                                     | 4123123123                |
| Viewer Medium              | The method of viewing you would like to utilized.                                                                                                                                                                                                                         | <br />                    |
| CMS Portal URL <br />      | Typically used for specifying viewing URL and future use. Not needed for S3 as the enterprise connector compiles the viewing URL at request time.                                                                                                                         | N/A <br />                |
| En. Embedded URL           | Use this to prevent user logon to the repository when viewing by using short lived expiring unauthenticated URLs. Currently not available in M365 but expected soon from Microsoft.                                                                                       | OFF                       |
| CMS Use Tag V. <br />      | The use tag to be utilized for viewing requests as API calls are required to compile information in order to view content. This is typically a separate Use Tag so that either from the start or in the future you can split viewing off to its own API/RFC destination.  | Viewing <br />            |

Repository ID’s are the final element to the base configuration and tie in the top-level CMS profile with the repository store name (bucket in S3) along with which viewing mechanism and elements to use and a few other options. 

At this point if you are viewing the System Dashboard **(\*\* make sure to hit refresh to show your new changes! \*\*)** you will see your entry(ies).&#x20;

*The API Status column will be red until the Enterprise Connector is configured for that API/RFC Destination. Check with your middleware installation and once completed and the windows service is turn on, see section&#x20;*<u>*Establishing SAP \<-> Enterprise Connector Connectivity Configuration*</u>*.&#xA0;*







[title] Follow up Security Tasks
[path] Repository Specific Guides/Link Enterprise for M365/Installation and Base Configuration Guide/

Albeit not required for initial installation and configuration, in almost all scenarios viewing of attachment from SAP will be required. For this to occur, standard SAP authorization will be checked and therefore will need to be added to the user profiles at some point in the future. This is a heads up (as we know SAP Security does not like surprises ☺ ) that depending on what is implemented for document types (and you may already be utilizing ArchiveLink currently), the access to object S\_WFAR\_OBJ will need to be granted. Below is an overview of the elements involved: 

| **Setting**            | **Description**                                                                                                                                                                                 | **Sample Value(s)&#xA0;**                                         |
| ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------- |
| OAARCHIV               | Content Repository                                                                                                                                                                              | \* <br />Z1                                                       |
|                        | You can use the wildcard (\*) configuration entry here or you can restrict permissions to a particular ArchiveLink repository or set of ArchiveLink repositories.                               | ZA                                                                |
| OADOKUMENT <br />      | Document Type <br /><br />You can use the wildcard (\*) configuration entry here or you can restrict permissions to a particular business object or set of business objects.                    | \* <br />ZAPINV01                                                 |
| OAOBJEKTE <br /><br /> | Object Type <br /><br />You can use the wildcard (\*) configuration entry here or you can restrict permissions to a particular ArchiveLink document type or set of ArchiveLink document types.  | \* <br />BKPF <br />BUS2014 <br />                                |
| ACTVT <br />           | Activity <br /><br />01 for creating attachments <br />03 for displaying attachments<br />06 for deleting attachment links                                                                      | \* <br />01,03,06 <br /><br />Typically, 01 & 03 is granted only  |


[title] Installing the Enterprise Connector
[path] Repository Specific Guides/Link Enterprise for S3/Installation and Base Configuration Guide/

The following steps outline how to install the Gimmal Link Enterprise Connector. 

1. &#x20;Obtain the latest Gimmal Link Enterprise installer from a Gimmal representative.
2. &#x20;Run the Gimmal Link Enterprise installer with administrative permissions on the server where Gimmal Link Enterprise is to be installed. 
   1. &#x20;By default, Gimmal Link Enterprise will install to: C:\Gimmal Link Enterprise Connector\\
   2. &#x20;We recommend changing the installation folder by adjusting the installation path (on the target path page) to: D:\Gimmal Link Enterprise Connector\ or to an extra drive available on the server that is not on the C: drive.
   3. &#x20;Optionally you can unselect the Windows Service from being installed by unselecting “Service“ on the installation package options. This is useful if you wish to administer Gimmal Link Enterprise manually or without using a service.
3. &#x20;Adjust the “Log On” properties of the Gimmal Link Enterprise Windows services if folder permissions on the server restrict processing. Use the service account mentioned in the installation requirements.
4. &#x20;Extract SAP JCO into the “jco” folder:
   1. &#x20;Download the appropriate SAP JCO 64bit version from SAP’s marketplace (this will be provided by your SAP Basis team)
   2. &#x20;Place the extracted contents into the jco folder under lib.  &#x20;
   3. &#x20;For windows installations sapjco3.dll is also required to be placed into the jco folder.
      1. &#x20;<u>Note</u>: JCO is sometimes two different compressed or zipped up files. Ensure the lowest level is extracted and placed in the jco folder. You will know the correct files are present if sapjco3.jar is found in the top level jco folder under lib.
5. Configure SAP JCO particulars .  &#x20;
   1. &#x20;In order to use service names in the SAP configuration you will need to adjust the services file to map message and gateway services to their port numbers. When configuring the services, you also have the option to use the port numbers instead of service names in which case you can skip this step. Ex for system number 21 and system name SAPQA:                                                                                           &#x20;
      1. sapmsSAPQA 3621/tcp
      2. sapgw213321/tcp                                                                                                                                                                       &#x20;
   2. The services file can typically be found at: C:\WINDOWS\system32\drivers\etc
6. &#x20;Obtain a Gimmal Link Enterprise authorization token from a Gimmal representative. This token will be used when configuring the Gimmal Link Enterprise Connector. In the active configuration .ini file you will enter this token under the field “authentication.token=” or also via the Profile Wizard under the Profile->Authorize menu path (see Base Gimmal Link Enterprise Connector Configuration – Gimmal Link Enterprise ECM Only) for more information.


[title] Changing Config.properties
[path] Repository Specific Guides/Link Enterprise for M365/Installation and Base Configuration Guide/Follow up Middleware Team Tasks/

The Config.properties file is a text file that is found under the config directory in the installation folder. This text file contains advanced settings that are only to be configured by Gimmal Link Enterprise administrators since some of the settings can break Gimmal Link Enterprise functionality. Some of the important information found in the Config.properties file is mentioned below. 

| **Setting**                             | **Description**                                                                                         | **Sample Value&#xA0;**                   |
| --------------------------------------- | ------------------------------------------------------------------------------------------------------- | ---------------------------------------- |
| version                                 | The version of the Enterprise Connector                                                                 | 6.0 <br />                               |
| jco.client.poolcount                    | The number of JCO connections to keep in the JCO client pool count                                      | 4                                        |
| jco.saplink.client.poolcount            | The number of JCO connections to keep in the JCO client pool count for SAPLink processing               | 6                                        |
| sap.client.saplink.function             | SAP BAPI name used in processing                                                                        | /DFLOW/ZCMSSAPLINK\_V1                   |
| sap.client.softlink.function            | SAP BAPI name used in processing                                                                        | /DFLOW/ZCMSSAPLINK\_V1                   |
| sap.client.backpop.function             | SAP BAPI name used in processing                                                                        | /DFLOW/ZCMSSAPLINK\_V1 <br />            |
| sap.client.auditlink.function           | SAP BAPI name used in processing                                                                        | /DFLOW/ZCMSSAPLINK\_V1                   |
| sap.server.softlink.function            | SAP BAPI name used in processing                                                                        | /DFLOW/ZJCOSERV\_001 <br />              |
| sap.server.backpop.function             | SAP BAPI name used in processing                                                                        | /DFLOW/ZJCOSERV\_001                     |
| sap.server.auditlink.function           | SAP BAPI name used in processing                                                                        | /DFLOW/ZJCOSERV\_001 <br />              |
| sap.server.email.function               | SAP BAPI name used in processing                                                                        | /DFLOW/ZJCOSERV\_002 <br />              |
| sap.server.read.function                | SAP BAPI name used in processing                                                                        | /DFLOW/ZCMS\_API\_READ\_V1               |
| sap.server.search.function              | SAP BAPI name used in processing                                                                        | /DFLOW/ZCMS\_API\_SEARCH\_V1 <br />      |
| sap.server.search.V2.function           | SAP BAPI name used in processing                                                                        | /DFLOW/ZCMS\_API\_SEARCH\_V2             |
| sap.server.create.function              | SAP BAPI name used in processing                                                                        | /DFLOW/ZCMS\_API\_CREATE\_V1 <br />      |
| sap.server.update.function              | SAP BAPI name used in processing                                                                        | /DFLOW/ZCMS\_API\_UPDATE\_V1 <br />      |
| sap.server.delete.function              | SAP BAPI name used in processing                                                                        | /DFLOW/ZCMS\_API\_DELETE\_V1 <br />      |
| sap.server.typesAndProperties.function  | SAP BAPI name used in processing                                                                        | /DFLOW/ZCMS\_API\_LOAD\_TANDP\_V1        |
| sap.server.repositories.function        | SAP BAPI name used in processing                                                                        | /DFLOW/ZCMS\_API\_LOAD\_REPOS\_V1 <br /> |
| sap.server.metadata.function            | SAP BAPI name used in processing                                                                        | /DFLOW/ZCMS\_API\_LOAD\_META\_V1 <br />  |
| sap.server.choicelist.function          | SAP BAPI name used in processing                                                                        | /DFLOW/ZCMSCREATECHOICELIST\_V1 <br />   |
| sap.server.filenetPing.function         | SAP BAPI name used in processing                                                                        | /DFLOW/ZCMS\_API\_PING\_CMS\_V1 <br />   |
| sap.server.middlewarePing.function      | SAP BAPI name used in processing                                                                        | /DFLOW/ZCMS\_API\_PING\_MID\_V1 <br />   |
| sap.client.saplink2.function            | SAP BAPI name used in processing                                                                        | /DFLOW/ZDOCMANAGER\_SAPLINK\_V2 <br />   |
| saplink.dateTime.format                 | The date and time format to use when sending SAPLink information to SAP                                 | MM/dd/yyyy hh\:mm\:ss a z <br />         |
| content.pem.file                        | The private certificate to use when configuring SSL communication with the Gimmal Link Content Server.  | gimmal\_private\_key\_pkcs8.pem          |
| content.cer.file                        | The public certificate to use when configuring SSL communication with the Gimmal Link Content Server.   | gimmal\_public.cer                       |


[title] Base SAP Link Enterprise Configuration
[path] Repository Specific Guides/Link Enterprise for M365/Installation and Base Configuration Guide/

## ECM

ECM requires base configuration regardless of what integration patterns, use cases, or functionality you would like to utilize.&#x20;

## Content Server

Content Server requires no more SAP Link Enterprise specific configuration unless you are going to use the below functionality with Content Server:

1. Outbound document storage (GOS/SFO or message output) WITH outbound metadata transfer
2. URL/Web viewing (instead of ArchiveLink standard viewing)
3. docMover
4. Folder Creation

It is recommended to use ECM unless you must use Content Server.  If you must use Content Server, this must be a separate (set of) OAC0 repository ID(s).&#x20;

Reasons you may need to use content server:

1. SAP message output without ECM plug in
2. ADK data archiving&#x20;
3. Fiori apps using document service (ie: without SFO/GOS functionality)
4. Outbound DMS
5. Any other application or 3rd party that relies on ArchiveLink directly

*If you are not implementing outbound metadata transfer you do NOT need to perform the below configuration.  You will most likely require standard SAP ArchiveLink OAC2 and OAC3 configuration.*

## Overview

The base configuration consists of the following components: 

1. &#x20;   One or more CMS Profiles
2. &#x20;   One or more CMS Use Tags
3. &#x20;   One or more API Destinations
4. &#x20;   Environment variables (optional)
5. &#x20;   One or more Repository ID’s

All above configuration is navigated via the Content API System Dashboard (transaction /dflow/sys) utilizing the top left menu path “Configure”. 

Configuration must be done in sequence, and requires the Repository ID(s) to be created as a pre-requisite. 

All configuration must be saved in a transport for migration to QUAL and Production (among other) environments. 

## CMS Profiles

| **Setting**      | **Description**                                                                                                                                    | **Sample Value(s)&#xA0;** |
| ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------- |
| CMS Profile      | CMS Profiles equate to top level site collections in SharePoint. Typically, there is only one CMS Profile per Repository Type of an organization.  | M365\_1                   |
| Repository Type  | Version of SharePoint that you are connecting to                                                                                                   | SharePoint M365           |
| Description      | An English description given to the describe the CMS Profile                                                                                       | Main Site: ACME           |

## &#x20;CMS Use Tags

| **Setting**                          | **Description**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | **Sample Value(s)**                                                                                                                                                                       |
| ------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| CMS Use Tag <br /><br /><br /><br /> | CMS Use Tags, in combination with CMS Profiles, will together determine an API Destination (below) to be utilized. API Destinations in turn determine the SAP RFC to be leveraged, and thus load on that RFC and in turn a group of SAP JCo server threads. In short, this combination allows you to load balance processing across multiple RFC/SAP JCo connections.<br /><br />A very common approach to at a minimum to break out viewing from the rest of your processing. As let’s face it, end users hate when they can’t view their documents and if you are hammering an RFC with other processing, well, insert hourglass icon. <br /><br />Also, have one or more use tags for custom usage. This way if you mess up you don’t affect everyone else ;-) <br /><br />The load balancing features of Use Tags is not relevant to Content Server usage. | Doc\_Storage\_FI <br />Doc\_Storage\_SCM <br />Doc\_Storage\_HR <br />Custom\_API\_Usage\_1 <br />Migration\_1 <br />Migration\_2 <br />AuditLink\_1 <br />Etc.… <br /><br /><br /><br /> |
| Description                          | An English description given to the describe the CMS Tag                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | Outbound document storage for FI                                                                                                                                                          |

## API Destinations

API Designations are a unique combination of CMS Use Tags and CMS Profiles that determines the SAP RFC to be leveraged, and thus load on that RFC and in turn a group of SAP JCo server threads, allowing you to manually control the load balance processing across multiple RFC/SAP JCo connections. 

This is not relevant to Content Server integration.&#x20;

Note that for extreme load, you can also have multiple Enterprise Connectors configure for an SAP system, allowing you to spread API destinations (i.e.: RFC Destination) across multiple connector instances and possibly physical/virtual servers. 

\*\* Important \*\* This RFC destination chosen must match the API Destination configured in Enterprise Connector in step Base Enterprise Connector Configuration – Enterprise ECM Only. 

| **Setting**                            | **Description**                                                                                                                                                                                                                                         | **Sample Value(s)&#xA0;**                                              |
| -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- |
| CMS Profile                            | CMS Profile that will use this API/RFC Destination                                                                                                                                                                                                      | M365\_1                                                                |
| CMS Tag <br /><br /><br /><br />       | CMS Use Tag that will use this API/RFC Destination <br />                                                                                                                                                                                               | • Outbound document storage for FI<br /><br />or <br /><br />• Viewing |
| Disable <br />                         | Used to temporary disable processing on this API Destination                                                                                                                                                                                            | ON/OFF <br />                                                          |
| CMS RFC Destination <br /><br /><br /> | SAP RFC to be used to communicate with a specific instance of a Enterprise Connector. This RFC destination chosen must match the API Destination configured in Enterprise Connector in step <u>Base Enterprise Connector Configuration – ECM Only</u>.  | Z\_CMSAPI\_01 <br /><br />                                             |


Environment Variables
---------------------

Environment variables are used for two reasons. The primary/most common reason is when a Enterprise configuration element requires a value that might change depending on which SAP environment (i.e.: SAP System ID) you are in. An example of this would be a development server vs. a production server for saving AuditLink bundles. Viewing URL’s are often different for development vs. production as well. This is leveraged extensively for on-prem content repositories when there are more server and host names involved. 

This is not relevant to Content Server integration.&#x20;

The second reason and less common, is if the Enterprise configuration field is too small in length to hold a crazy long value you may have. Yes, we have seen it. 

NOTE: when used in configuration, the environment variable must be specified within brackets, i.e.: \<hostname>, or \<reallylongsubsitestring> 

| **Setting**             | **Description**                                                                             | **Sample Value(s)&#xA0;**                                                                                                                 |
| ----------------------- | ------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| SAP System ID           | SAP system id that should use the value specified <br />                                    | DEV <br />QA1 <br />PRD                                                                                                                   |
| Variable Name           | Variable name that will be specified in any relevant Enterprise ECM configuration.          | • SPOnPremHost<br />or<br />• reallylongsubsitestring                                                                                     |
| Variable Value 1 <br /> | The value to be substituted in the  ECM configuration per SAP environment/system ID. <br /> | http\://devsp2013srv1/ <br />http\://qualsp2013srv1/ <br />http\://prodsp2013srv1/ <br />or <br />mycompany.sharepoint.com/sites/sapdemo  |

## &#x20;Repository ID’s

| **Setting**                | **Description**                                                                                                                                                                                                                                                           | **Sample Value(s)&#xA0;**                                                                        |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ |
| Cont.Rep.I&#x44;**&#xA0;** | The content repository ID matching OAC0                                                                                                                                                                                                                                   | Z1                                                                                               |
| Disable                    | The ability to temporarily turn off all usage of the repository ID for ECM usage.                                                                                                                                                                                         | OFF                                                                                              |
| Use CMSID                  | Relevant to ECM only: this uses CMSID (instead of SAPDocID) for all ArchiveLink entries. For all implementations it is highly recommended this be `KEPT OFF` and shoud only be turned on in Link Enterprise legacy installations if dictated by your Link Enterprise SME. | OFF                                                                                              |
| Is ArchiveLink             | If this repository ID is a Content Server (ie: not ECM), this must be enabled.  <br /><br />**\*\*\* You cannot share an “Is ArchiveLink” repository ID with an ECM repository ID \*\*\***                                                                                | ON/OFF                                                                                           |
| Use Direct API             | Future use                                                                                                                                                                                                                                                                | n/a                                                                                              |
| Req. Location <br />       | Determines whether the repository requires location as part of the ECM Processing. Currently all SharePoint versions require a location.                                                                                                                                  | ON/OFF <br />                                                                                    |
| CMS Profile                | CMS profile that is relevant to this repository ID.                                                                                                                                                                                                                       | M365\_1                                                                                          |
| CMS Rep/Store <br />       | For SharePoint, this is your top-level construct that uniquely determines your online repository. This is typically your top-level site collection. <br />                                                                                                                | http\://mysharepoint.com/ <br />or <br />environment variable: <br />\<reallylongsubsitestring>  |
| Viewer Medium              | The method of viewing you would like to utilized.                                                                                                                                                                                                                         | <br />                                                                                           |
| CMS Portal URL <br />      | Typically used for specifying viewing URL and future use. Not needed for SharePoint as the enterprise connector compiles the viewing URL at request time.                                                                                                                 | N/A <br />                                                                                       |
| En. Embedded URL           | Use this to prevent user logon to the repository when viewing by using short lived expiring unauthenticated URLs. Currently not available in M365 but expected soon from Microsoft.                                                                                       | OFF                                                                                              |
| CMS Use Tag V. <br />      | The use tag to be utilized for viewing requests as API calls are required to compile information in order to view content. This is typically a separate Use Tag so that either from the start or in the future you can split viewing off to its own API/RFC destination.  | Viewing <br />                                                                                   |

Repository ID’s are the final element to the base configuration and tie in the top-level CMS profile with the repository store name (top level site name in SharePoint) along with which viewing mechanism and elements to use and a few other options. 

At this point if you are viewing the System Dashboard **(\*\* make sure to hit refresh to show your new changes! \*\*)** you will see your entry(ies).&#x20;

*The API Status column will be red until the Enterprise Connector is configured for that API/RFC Destination. Check with your middleware installation and once completed and the windows service is turn on, see section&#x20;*<u>*Establishing SAP \<-> Enterprise Connector Connectivity Configuration*</u>*.&#xA0;*







[title] Attachment List Options
[path] Repository Specific Guides/Link Enterprise for M365/SharePoint Implementation Guide/

These settings are configured at the SAP business object level, which corresponds to one or more transactions. For example:

- BUS2007 (Work Order): iw32/iw33
- BUS2012 (Purchase Order): me22n/me23n

### Virtual Linking&#x20;

1. Determines the display of virtual links in the "Document Flow" node of the attachment list navigation pane.
2. Displays attachments from other SAP records.

### Virtual Folders&#x20;

1. Determines the display of the folders node in the attachment list navigation pane.
2. Provides a cosmetic folder structure for attachment list "browsing".

### Overall Delete Link Strategy&#x20;

1. Determines the behavior of the delete button on the attachment list.
   1. Uses SAP standard S\_WFAR\_OBJ authorizations.
   2. Options:
      1. Allow users to delete links.
      2. Allow users to delete links with admin review (requires Link Manager to be enabled).
      3. Allow content to be deleted with links (requires Link Manager to be enabled).

### Attachment List Options&#x20;

1. Determines the functionality available on the toolbar of the attachment list.
   1. Enable/Disable display of SAP Database Attachments.
   2. Enable/Disable display of SAP Database Notes.
   3. Enable/Disable Delete Link Manager.&#x20;
      - Controls options for users or administrators to delete links or content (with optional review).
   4. Enable/Disable download of attachments.
   5. Enable/Disable creation of notes in the SAP Database (not recommended).
   6. Enable/Disable creation of notes in the content repository.


[title] Configure SAP RFC destinations – ECM Only
[path] Repository Specific Guides/Link Enterprise for M365/Installation and Base Configuration Guide/

Base configuration for ECM requires (at least one) SAP RFC to be created. This allows Link Enterprise ECM within SAP to execute RFC calls to an instance of the Enterprise Connector (in theory you can utilize more than one) acting as an SAP JCo Server. 

The RFC destination configured here will be selected in the Link Enterprise configuration outlined the step Base SAP Link Enterprise Configuration – ECM Only (API Destination). 

1. &#x20;   Destination Name: Z\_CMSAPI\_01
   1. &#x20;   We suggest the following naming convention: Z\_CMSAPI\_\<number> but any destination name can be used.
2. &#x20;   Connection Type: T (TCP/IP Connection)
3. &#x20;   Technical Settings:
   1. &#x20;   Select Registered Server Program radio button
   2. &#x20;   Program ID: Z\_CMSAPI\_01
      1. &#x20;   We suggest to keep the program ID name the same as the RFC destination name for simplicity as this will need to match the program ID in the Enterprise Connector.
   3. &#x20;   Gateway Options (Optional if only one gateway host for the SAP environment)
      1. &#x20;   Gateway Host: \<insert the gateway host to use>
      2. &#x20;   Gateway Service: \<insert the gateway service to use>
   4. Unicode:
      1. Select Unicode radio button

- Note: **You cannot test the RFC destination** until the Enterprise Connector has at least 1 RFC Destination (Outbound Rule) configured is also completed below and the windows service is running. When the windows service is installed, configured and running, refer to section <u>Milestone: Establish SAP \<-> Enterprise Connector Connectivity Configuration</u> to test connectivity.
- The Program ID and Gateway Host and Service must match that configured in the Enterprise Connector (section “Base Enterprise Connector Configuration”), work with your Gimmal Link Enterprise configurator to ensure this is the case.You may need to repeat RFC destination creation above for additional processing threads and load balancing. Initially however only one RFC destination is needed.
- **&#x20;Important  This RFC destination chosen must match the API Destination configured in&#x20;**&#x4C;ink Enterprise Connector in step Base Enterprise Connector Configuration – ECM Only.


[title] RFC Destination (Outbound Rule) - ECM Only
[path] Repository Specific Guides/Link Enterprise for M365/Installation and Base Configuration Guide/Base Enterprise Connector Configuration/

At least 1 RFC destination is required for ECM integration.  This must match the RFC created in SAP (refer to Configure SAP RFC destination).  This is a 1 to 1 relationship with RFC's configured in SAP for Link Enterprise integration.

1. Navigate to Mappings->RFC Destinations tab in the Enterprise Connector.
2. Choose Add Row
3. Configure the below fields:

| **Setting**                          | **Description**                                                                                                                                             | **Sample Value(s)&#xA0;**                       |
| ------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------- |
| Enabled                              | Turns RFC destination on or off                                                                                                                             | true                                            |
| IncludeSubFolders                    | Not applicable to M365                                                                                                                                      | false                                           |
| ErrorifDuplicate (Box)               | For Box only: if same filename being created, error (enabled) or overwrite/version (false)                                                                  | true                                            |
| Rename On-Duplicate (SP Online)      | For M365 only: if same filename being created, rename automatically (\_1, \_2, etc) (enabled) or overwrite/version (false)<br />true                        | true                                            |
| Enable GUID ON Filenames (SP Online) | For M365 only: append unique GUID onto filename every time (no duplicate check)                                                                             | false                                           |
| CMS name                             | The CMS system to connect to                                                                                                                                | M365\_DEV                                       |
| SAP name                             | The SAP system to connect to<br />                                                                                                                          | SAPDEV                                          |
| RFCDestination                       | The RFC configuration in SAP (must match)                                                                                                                   | <br />Z\_CMSAPI\_01                             |
| Server Count                         | How many connections per RFC destination<br />\*increase this number if the number of simultaneous RFC calls is being approached / throttled                | 30                                              |
| MaxResults                           | An optional setting to limit the number of entries returned when searching for documents.<br /> <br />A setting of 0 has no limit (limit set by Graph API). | 0                                               |
| Working Directory                    | temporary directory <br />\*\* must contain double slashes                                                                                                  | c:\\\\\<middleware installation directory>//tmp |

\*the Windows service must be restarted for changed to take effect


[title] Installing the SAP Transports – ECM Only
[path] Repository Specific Guides/Link Enterprise for M365/Installation and Base Configuration Guide/

The following steps outline how to install Link Enterprise ECM Flow within SAP. Installing the Enterprise Connector (Link Enterprise middleware component) and configuring the Link Enterprise base connectivity is covered in other sections. 


&#x20;       1\.    Obtain the latest Link Enterprise transports from a Gimmal representative. The transports provided will be determined by the Link Enterprise Content API base plus add-ones licensed. 

&#x20;       2\.    Import the Link Enterprise transports into the target SAP system. 

- The Gimmal Link Enterprise product resides entirely in its own namespace (/DFLOW)
- These transports should be imported with all import options enabled:

::Image[]{src="https://archbee-doc-uploads.s3.amazonaws.com/image_1217ed1f-6f97-4f4c-8239-d0ecd2438f60.png" size="54" position="center" showCaption="false"}

&#x20;       3\.    This is a good time to enjoy a hot beverage of your choice while the import is running. 

&#x20;       4\.    Confirm that the transports were imported into the SAP system without any issues 

- Note: Warnings will occur, for example regarding domains over 255 characters among others. Errors (return code 8) should not occur. If they do, stop further import of additional transports and contact your Gimmal Link implementer.



















[title] WebSocket RFC (Cloud Connections)
[path] Repository Specific Guides/Link Enterprise for S3/Installation and Base Configuration Guide/

## Cloud Configuration

The Cloud Configuration allows on-premise solutions to communicate with Internet based Gimmal Link Enterprise servers over **HTTPS/SSL**.

### Import Certificate

To allow SSL handshake between SAP and a hosted Link Enterprise Environment we require importing Gimmal Link Enterprise public certificate into SAP's Trust Manager.

1. In SAP start the **Trust Manager** (**STRUST**)
2. **Import&#x20;**&#x74;he Gimmal Link Enterprise public certificate into ***SSL Client (Standard)*** (This will enable SAP to identify Gimmal certificate during TLS handshake)
3. Enter **Change Mode (Ctrl + F1)**
4. Click **SSL Client Standard**. Click **Import&#x20;**&#x61;nd select the Gimmal Link Enterprise public certificate provided. Click **Add to Certificate List** and **Save**

### Export Certificates

The Gimmal Link Enterprise middleware requires an export of the SAP public root certificate for SSL Client and SSL Server. This is to identify the SAP system connecting into the hosted environment.

1. In SAP start the **Trust Manager (STRUST)**
2. Export the root certificate from **SSL Client (Standard) and SSL Server (Standard)**.&#x20;
3. Clic&#x6B;**&#x20;SSL server Standard&#x20;**&#x61;nd double click the subject

   ![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/y4-PmOMlv6QKsXzoEzYKx_exp1.png)
4. It will be appear in the Certificate section
5. Scroll down and export (provided below is a sample image) of export icon

   ![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/CZrLjYYsqbfQ9w3rJVQJC_root-cert-2.png)
6. Click **SSL server Client&#x20;**&#x61;nd double click the Subject
7. Scroll down and export the certificate

   ![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/lWsasF1o0ZYHXUBh6N8dP_exp2.png)
8. Send both certificates to your Gimmal representative

### Setup RFC Destination

To enable a endpoint for the SAP to connect into the middleware we require an **RFC Destination** to be created

1. Visit transaction **SM59**
2. Click **Create&#x20;**&#x61;nd give the destination an appopriate name. An example is Z\<TYPE>\_\<NAME>
3. Ensure the connection type is type **'W'**

   ![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/EkYksHsPCFz57o8WjU7oT_zweb.png)
4. Under technical settings we need to prove the **Target System Settings**
5. For **host name** enter the provided hostname given to you by your Gimmal Representative
6. For **port** enter the provided port given to you by your Gimmal Representative&#x20;
7. ![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/Yrpx4JlTuSoTO4IlhGLSu_initalsettings.png)
8. Click the **Logon & Security** tab and enter Language as **EN**
9. Set th&#x65;**&#x20;Explicit Client** to **by Hostname**
10. Set the **Authentication Method** to by **X.509 certificate**
11. Under **Security Options** set to **SSL Client (Standard)**
12. ![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/fqsL5NnIBlPywM9A8scW5_securiy.png)
13. Click **Save**
14. ***Provide the RFC Destination to your Gimmal representative***

### Firewall

The firewall needs to be configured to allow **HTTPS&#x20;**&#x74;raffic through to the Gimmal Link Enterprise server. To find or define these ports:

***Inbound Rule***

- In SAP, review the value for ***icm/server\_port\_x*** (where x=0,1,2,3...,n) that is used for **HTTPS**. This port will need to be opened for inbound traffic to the SAP system.

***Outbound Rule***

- Review the section ***Setup RFC Destination*** for the port that has been configured in **SM59&#x20;**&#x66;or the ***WebSocket RFC*** communication to the Gimmal Link Enterprise Server.&#x20;
- This port will be given to you by the Gimmal representative

### Changing Profile Parameters

To allow quick setup of websocket connetivity we can dynamically change the parameters to quickly confirm connectivity. Work with your SAP BASIS to configure the parameters to hold.

1. Enter transacation RZ11.
2. Type in rfc/websocket/external\_active&#x20;
3. Change the value from 2 to 1. (This will allow us to bypass UCONN and enable logon, even if UCON is not activated and configured)
4. Confirm ucon/websocketrfc/active is set to 1.&#x20;

### Middleware Setup

Configure websockets through rfc destinations in middleware. INI File configuration.

| **settings**      | **Description**                                           | **Sample Value(s)&#xA0;** |
| ----------------- | --------------------------------------------------------- | ------------------------- |
| enable websockets | Enable websocket when a websocket connection is required. | true/false                |
| wsPortClient      | SAP client port number.                                   | 44300                     |
| wsPortServer      | middleware port configured to websockets.                 | 8812                      |
| wsportHost        | SAP host name/ ip address                                 | XX.XX.XXX.XX              |


[title] Mandatory Microsoft Metadata Properties
[path] Repository Specific Guides/Link Enterprise for M365/Installation and Base Configuration Guide/Follow up SharePoint Team Tasks/

Important note: albeit not required for base installation and connectivity, a heads-up: any content type used for SAP integration with Link Enterprise must include the following mandatory columns based on the usage pattern (ECM vs. Content Server).

:::BlockQuote
*\*\*\*&#x20;*&#x49;t is recommended that all properties (both ECM and Content Server) be added for all content types used for Link Enterprise integration \*\*\*
:::

## ECM Required Metadata Properties

These names are suggestions and recommended, but are configurable in the Enterprise Connector.

| SharePoint Column (suggested case sensitive name) | Data Type           | Attribute Settings                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| ------------------------------------------------- | ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| LinkEnterpriseUsername                            | single line of text |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| LinkEnterpriseTimestamp                           | single line of text |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| LinkEnterpriseSaplinkTrigger                      | single line of text | The only values Link Enterprise will recognize are "True" and "False" as triggers.  <br /><br />The resulting values are True and False by default, but can be changed in the config.properties file under your installation directory.<br /><br />saplinkfalse.value=\<value>  (for success)<br />saplinkerror.value=\<value)   (for error)<br /><br />- eg: "DoNotProcessSuccess" and "DoNotProcessError"<br />- saplinkfalse.value=DoNotProcessSuccess<br />- saplinkerror.value=DoNotProcessError |
| LinkEnterpriseSaplinkError                        | single line of text |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |

## Content Server Required Metadata Properties

:::BlockQuote
`*** Please ensure these are EXACT casing as below *****`
:::

| SharePoint Column (mandatory case sensitive name) | Data Type | Attribute Setting |
| ------------------------------------------------- | --------- | ----------------- |
| contRep                                           | Text      |                   |
| docID                                             | Text      |                   |
| dateC                                             | Text      |                   |
| compId                                            | Text      |                   |
| pVersion                                          | Text      |                   |
| docProt                                           | Text      |                   |
| contentLength                                     | Text      |                   |
| accessMode                                        | Text      |                   |
| charset                                           | Text      |                   |
| compStatus                                        | Text      |                   |
| sapVersion                                        | Text      |                   |


[title] Content Server
[path] Repository Specific Guides/Link Enterprise for M365/Installation and Base Configuration Guide/Base Enterprise Connector Configuration/

Below is the configuration needed for a SharePoint Content Server.

\*\*\* please refer to the section Follow Up SharePoint Team Tasks for more information on required indexes \*\*\*

1. Under "Connections" click "SharePoint Online"
2. Under "SharePoint Online" click modify on a previously created box connection.
3. Click "Add Content Server"
4. Hover over each input box to see example values.
5. Click "Add"
6. Click "Save".
7. Restart service via Windows services.

    

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/sXK8kJEqLKdTfPxiiBo2f_screenshot-624.png" size="58" width="536" height="720" position="center" showCaption="false"}

Image CaptionImage alt text

The below table is a description of each configuration entry above, along with possible value. 

| Setting                            | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | Sample Value(s)                                              |
| ---------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ |
| enabled                            | YES/NO                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Yes to enable, No to not but still configure.                |
| signature required                 | YES                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | Used for verify authentic origin requests.                   |
| csHost                             | Binds to local IP address                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | 127.0.01                                                     |
| port                               | Port we want content server to be deployed on.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | 8089                                                         |
| threads                            | Max Number of threads to allocate for parallel processing.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | 50                                                           |
| contentType                        | CMS Custom metadata needs to specify the name of template                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | invoices                                                     |
| SAPType                            | Configured SAP System utilized                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | S4                                                           |
| tmpDir                             | Directory to temporary use for storage                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | C:\\\\\<connector install directory>\\\config\\\tmp          |
| certDir                            | Directory where certificates are located                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | C:\\\\\<connector install directory>\\\config\\\certificates |
| RepoId                             | SAP repository for content Server                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | ZS                                                           |
| Location                           | subsite and or document library value where the data is stored<br /><br />i.e /insertsubsitename/insertdocumentlibraryname                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | For SharePoint: /fi/ap                                       |
| repository                         | For SharePoint, Provide site Information                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | tenantname.sharepoint.com/sites/test                         |
| callBackEnabled(for version 6.6.8) | Enable callbackHandler to link and monitor content server activities from SAP and to allow for ECM/SAPDocID mapping.  ie: for each content server call from SAP to M365, a separate return call is made via SAP Jco RFC to log in the Link Enterprise SAP Gateway as well for a CREATE, it will map SAPDocID to the ECM M365 object id.<br /><br />The recommended setting is YES as this will support:<br />- ECM based viewing<br />- ECM API support for documents stored via Content Server<br />In extremely high volume content server scenarios where no ECM will be in play, this setting should be set to NO  | YES                                                          |

\*the Windows service must be restarted for changed to take effect

### Mapping SharePoint Fields to docuflow Metadata&#x20;

SharePoint stores columns with internal names that may differ from those expected by docuflow. To synchronize document metadata correctly, the field names must be mapped in the defaultConfig.ini file.

Add the following line:

:::BlockQuote
contentServer.contentType.columns = \{"DOCID":"docID","COMPID":"compId","PVERSION":"pVersion","CONTREP":"contRep","DOCPROT":"docProt"}
:::

- The keys on the left (e.g., DOCID) represent standard metadata fields used by docuflow.
- The values on the right (e.g., docID) correspond exactly to the internal SharePoint field names.

This mapping enables docuflow to correctly interpret SharePoint metadata fields for indexing and synchronization.

### Multi-Library Support for SharePoint

The **Multi-Library Support** feature enables Link Enterprise to search documents across multiple repositories and document libraries within the same SharePoint tenant, providing a unified and seamless search experience.

To enable this feature, update the defaultConfig.ini configuration file with the following settings:

:::BlockQuote
contentServer.searchAll = YES
contentServer.AdditionalSearchRepositoryWithLocation = xxxx.sharepoint.com/sites/repository/library
:::

- contentServer.searchAll = YES activates Multi-Library Support.
- contentServer.AdditionalSearchRepositoryWithLocation lists additional SharePoint document libraries (comma-separated) to include in the search.

Once configured, Link Enterprise will search across the main repository and all specified SharePoint document libraries within the tenant.

[title] Configure app within M365 - Application based permissions - Client Secret (Not Recommended)
[path] Repository Specific Guides/Link Enterprise for M365/Installation and Base Configuration Guide/

The preferred method to authenticate with the graph api is via application based permissions.

Using M365 SharePoint as a Gimmal Link Enterprise repository you will need to ensure that the Enterprise Connector is configured and able to connect to the Microsoft graph API. You must create an enterprise application via the Microsoft Azure portal to complete this procedure. This will require an account with appropriate level of permissions to grant correct access rights to a user (connector user) using the graph API when inside the azure portal. 

You can either self-grant access or have an admin grant access to the graph API and its corresponding access rules inside the azure portal if and only if that user has authority to grant access to those rules. 

The following steps below outline this process: 


&#x20;       i.   Visit https\://portal.azure.com/ then login using an appropriate account.&#x20;

&#x20;      ii.   Click on Active Driectory, then click on App Registrations and click on new registration.

Name the application GimmalLinkENT\_suffix (Either DEV, TEST,PROD) depending on environment provisioning.

Select single tenant.

Click register.

Click Api Permissions under Manage.

Click Add Permissions.

Select Microsoft Graph, and then select application permissions.

Type "Sites" in the search and select&#x20;
Sites.FullControl.All and Sites.Manage All for permissions.

(Creating site permissions requires Sites.FullControl.All)

*If you want to do permissions granularly at the site level follow, you may choose Site.Selected. Please reference this guide from Microsoft for site level permissions. [https://learn.microsoft.com/en-us/graph/api/site-post-permissions?view=graph-rest-beta\&tabs=http ](https://learn.microsoft.com/en-us/graph/api/site-post-permissions?view=graph-rest-beta\&tabs=http)*
**
*(We have also included a summary of the site level permissions [here](https://linkenterprise.docs.gimmal.com/graph-api-sites-selected)*)

Click Grant admin consent for GimmalLinkENT\_suffix

Click certificates and secrets.

Click new client secret

Type in for the description GimmalLinkENT\_suffix. (Where the suffix is DEV/TEST/PRD.

Select the appropriate expiry time.

Save the Value which is the secret required to configure the Gimmal Link Enterprise middleware later.

~~CLick on manifest and change "allowPublicClient" to true and click save.~~ (not required app based permissions)

Click on overview and save the following information. App ID, and tenant ID.

Secret Id

Configure Gimmal Link Enterprise in middleware GUI:

1. Visit http\://localhost:82 (enter the default user and password).
2. Click "Sharepoint Online"
3. Click "Add Row"
4. Enter the saved details in the previous page and enter them in the correct locations.
5. Click test connection. If "Success" is displayed the configuration has was done correctly.&#x20;

:::BlockQuote
\*Note for our application scope will always be [https://graph.microsoft.com/.default](https://graph.microsoft.com/.default)
\*The token URL and graph url always contain the tenant id in the URL
Graph Url: [https://graph.windows.net/\<insertTenantId](https://graph.windows.net/)
Token Url: [https://login.microsoftonline.com/\<insertTenantId>/oauth2/token](https://login.microsoftonline.com/4de6eaf6-cf7a-47de-b747-6e3bffb4a/oauth2/token)
:::

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/W_jCpoM_c4g3Af9UBU10z_image.png "These are only sample values (replace with actual values from steps above)")

These are only sample values in screenshot. (replace with actual values from steps above)

**


[title] Grant Necessary SAP authorizations – ECM Only
[path] Repository Specific Guides/Link Enterprise for S3/Installation and Base Configuration Guide/

In order to configure and monitor Link Enterprise , the below two transactions should be granted to the configurator and administrator of Link Enterprise : 

- /DFLOW/SYS
- /DFLOW/GTW

Note: Depending on what functional integration patterns you are implementation, there may be additional transaction codes to grant access to a broader group of users:

1. Workflow Configuration: /DFLOW/WFCONFIG
2. Workflow AP Rollover: /DFLOW/APROLLOVER
3. Workflow AP Statistics: /DFLOW/APSTAT
4. Workflow ASL: /DFLOW/APASL
5. Workflow AP TrackLink: /DFLOW/APTRACKLINK
6. Workflow DMS TrackLink: /DFLOW/DMSTRACKLINK
7. Workflow General TrackLink: /DFLOW/TRACKLINK
8. Delete Link Manager: /DFLOW/LINKM
9. API Mass Load: /DFLOW/MLOAD
10. Migration Utility: /DFLOW/MIGRATOR
11. AuditLink Create: /DFLOW/AUDITLINK
12. AuditLink Dashboard: /DFLOW/AUDITLINKDASH

If your security roles also check table maintenance authorizations, the authorization object Z/D1 must be granted via S\_TABU\_DIS for those who will configure Gimmal Link Enterprise.

\*If Z/D1 does not exist in your system, the transport that contains Z/D1 is a customizing transport and must be imported separately.  Please contact your Link Enterprise implementation specialist to obtain this transport.&#x20;


[title] RFC Destination (Outbound Rule) - ECM Only
[path] Repository Specific Guides/Link Enterprise for S3/Installation and Base Configuration Guide/Base Enterprise Connector Configuration/

At least 1 RFC destination is required for ECM integration.  This must match the RFC created in SAP (refer to Configure SAP RFC destination).  This is a 1 to 1 relationship with RFC's configured in SAP for Link Enterprise integration.

1. Navigate to Mappings->RFC Destinations tab in the Enterprise Connector.
2. Choose Add Row
3. Configure the below fields:

| **Setting**                          | **Description**                                                                                                                                             | **Sample Value(s)&#xA0;**                       |
| ------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------- |
| Enabled                              | Turns RFC destination on or off                                                                                                                             | true                                            |
| IncludeSubFolders                    | Not applicable to M365/S3                                                                                                                                   | false                                           |
| ErrorifDuplicate (Box)               | For Box only: if same filename being created, error (enabled) or overwrite/version (false)                                                                  | true                                            |
| Rename On-Duplicate (SP Online)      | For M365 only: if same filename being created, rename automatically (\_1, \_2, etc) (enabled) or overwrite/version (false)<br />true                        | true                                            |
| Enable GUID ON Filenames (SP Online) | For M365 only: append unique GUID onto filename every time (no duplicate check)                                                                             | false                                           |
| CMS name                             | The CMS system to connect to                                                                                                                                | S3\_DEV                                         |
| SAP name                             | The SAP system to connect to<br />                                                                                                                          | SAPDEV                                          |
| RFCDestination                       | The RFC configuration in SAP (must match)                                                                                                                   | <br />Z\_CMSAPI\_01                             |
| Server Count                         | How many connections per RFC destination<br />\*increase this number if the number of simultaneous RFC calls is being approached / throttled                | 30                                              |
| MaxResults                           | An optional setting to limit the number of entries returned when searching for documents.<br /> <br />A setting of 0 has no limit (limit set by Graph API). | 0                                               |
| Working Directory                    | temporary directory <br />\*\* must contain double slashes                                                                                                  | c:\\\\\<middleware installation directory>//tmp |

\*the Windows service must be restarted for changed to take effect


[title] Migration Concepts and Strategies
[path] Agnostic Guides/Solution Guide/Untitled/

Migration content from a source to Gimmal Link Enterprise Target with DocMigrator is a combination of DocManager business rules (SAP Business Objects and DocTypes), RFCs and their connections, and SAP background jobs.&#x20;

All of these, plus consideration of day-to-day Gimmal Link Enterprise processing and how quickly you want to migrate your content determines the constellation of these components.

The diagram below provides a high level overview:

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/JGEeKXm19yBQF1-lroZK0_image.png)

Typically there is a timeline for a migration, and together with the volume of content to be migrated, a seconds/per document or document/per second target is determined.

The below sections outline the components, consideration, and best practices involved in order to achieve a successful migration. &#x20;

`Along with overall best practices, each content repository may have an additional notes or best practices section, please ensure you reference if applicable.`

# Sharing of DocManager Rules and RFCs

The first determination is whether content to be migrated will be sharing DocManager rules (which are at the SAP Business Object and/or DocType level) with day-to-day Gimmal Link processing.

Things that will force separate DocManager rules:

- If there is a need for separate bucket locations in S3
- If there is a need for separate SAP security
- If there is a need for different meta-data

In short, RFC destinations (and their number of RFC connections per destination) are how Gimmal Link can be load balanced to allow:

1. multiple Gimmal Link Enterprise Migrator SAP background jobs to be ran in parallel
2. sharing or separation of RFC processing between migration processing and day-to-day processing 

In typical day-to-day Gimmal Link Enterprise processing, the DocManager rules determine the RFC destination, however DocMigrator can override this to force use of dedicated RFC destinations at runtime (more on this below).

# Parallel vs. Single Stream Processing

The second determination is whether your volume vs. timeline/milestones require multiple migration processes to run in parallel, or whether a single processing stream will suffice, in other words, how fast do you want or need your content to be migrated.

## Single Stream

- Additional consideration into carving and chunking migration is not required
- The only consideration is whether to share existing RFCs with day-to-day processing using a higher number of RFC connections (more on this below)

## Parallel Processing (most common and recommended)

- Ideally is executed using separate RFC destinations than day-to-day processing, and further ideal over separate Gimmal Link Enterprise middleware connectors
- The number of dedicated SAP background tasks available for migration dictates how many parallel processes can be executed
- For Parallel Processing, there are 2 ways to carve and chunk a migration within the Gimmal Link DocMigrator, both leverage the input/selection criteria to the DocMigrator:
  - ArchiveLink Link parameters (most common and recommended)
    - All fields in TOA01 are available, both for “source” and “target” link entries in the migrator table once loaded/staged
    - Typical and easiest levels of carving are SAP Business Object and/or DocType
    - The advantage of using these two elements is it typically prevents from job running in parallel for the same migration load table entry at the exact same time
    - The other fields in a link entry can be used (such as SAP record/object\_id range) but extra caution must be given to not processing a load table entry at the same time over multiple jobs
  - Loading with custom ABAP to assign unique tags (requires development)
    - This method typically has the chunks set by Tag name set at time of the load process, and thus migration of the load table is done at the tag level

`*note: it is imperative that parallel jobs do not have input criteria that allow it to process the same rule at the same time - they must be “unique” jobs to avoid runtime conflict.  Running a migration for a document that is already migrated is OK, Gimmal Link will not migrate or process a document twice. `

# RFC Destinations and Connections

Regardless of the processing style chosen able, but imperative to consider for Parallel Processing, is how to load balance the migration process over RFC destinations and RFC connections. 

## Sharing DocManager Rules

If sharing the same DocManager rule as day-to-day processing is not concern, and load is not a concern, DocMigrator can be run to leverage the DocManager rule in it’s entirety, including which RFC to use

In this scenario, it is recommended to increase the number of RFC connections at the middleware level for each RFC to be shared, thus reducing the chance of migration activity and day-to-day processing waiting for an available RFC destination connection

## Forcing RFC Destination(s)

To take full control over which RFC destination is to be used, DocMigrator can be run explicitly specifying the RFC destination to use for that background job by using the "Force RFC" input parameter **(most common and recommended)**

- In this scenario, ideally use 1 RFC destination per background job
- If background jobs are to share an RFC destination, increase the number of RFC connections to match the number of SAP jobs running against that RFC at the same time (assuming no day-to-day processing is using that same RFC)
- Ideally each background job uses 1 RFC destination with 1 RFC connection&#x20;
- It is recommended to have a maximum of 10 RFC destinations per Gimmal Link Enterprise middleware connectors
- It is recommended to have a maximum of 10 RFC connections per RFC destination
- In theory, that is 100 RFC destination/connection combinations registered in your SAP Gateway, therefore mind your maximum allowed users as logged in clients in SMGW

# Additional Best Practises

- <u>SAP Background Jobs</u>
  - **Never have migration table entries shared between background jobs for parallel processing.**  A potential collision could occur to process the same entry at the same time across more than 1 background job
- <u>Unique Filenames from Source Content</u>
  - If your source files may contain non-unique filenames, and there is a chance they may be migrated to the same repository location for a CMS that does *not* allow same name files, **versioning must be prevented**.  This can be handled in two ways:
    - 1\) In the DocMigrator, choose the "Force Unique Filename".  This will append a unique UUID stamp  to the source filename. &#x20;
    - 2\) In the Gimmal Link Enterprise middleware, at the RFC destination level - enable "Error On Duplicate".  This will result in an erorr for documents attempted to be migrated to the same folder if there is an file with that existing name.  These erorrs can then be triaged after the fact to either modify the filename in the source system, or re-run the Gimmal Link migration for those errors and choose "Force Unique Filename" above.
- <u>RFC’s and Gimmal Link Enterprise Middleware</u>
  - Ideally avoid sharing Gimmal Link Enterprise migration RFC destinations with production day-to-day Gimmal Link processing RFC destinations&#x20;
  - Ideally avoid sharing Gimmal Link Enterprise migration with production day-to-day Gimmal Link processing across the same middleware instance
  - Ideally have dedicated 1 or more Gimmal Link Enterprise middleware instances for migration (unless shared doctypes and DocManager rules for migration and day-to-day)
  - Consider total number of RFC destinations/RFC connections in your SAP Gateway maximum user count
  - For production day-to-day Gimmal Link Enterprise processing and migration processing, servers hosting Gimmal Link Enterprise middleware should be dedicated to Gimmal Link Enterprise&#x20;
  - Often 1 non-prod Gimmal Link Enterprise middleware instance/server is enough, ideally 1 per SAP instance (DEV/QUAL/PROD/TRAINING) but that is optional/nice to have.  This only affects Inbound to SAP processing/testing as when you add a document to S3, how does the connector know which SAP system to go to (hint for the fancy pants out there: yes you can add more than one metadata field at the SAPLink rule level in the mdfilters string).
  - If your source data is also from a Gimmal Link Enterprise endpoint - ensure the CMS Use Tag in the DocMigrator configuration is separate from DocManager business rules and/or is configured to a dedicated RFC as a Gimmal Link Enterprise READ will be performed on that RFC
    - Also important to ensure there are multiple RFC connections for a READ RFC destination to ensure maximum throughput and performance.
- &#x20;<u>Repository ID’s and Doctype’s</u>
  - Mapping to new Repository ID’s is almost always required and highly recommended
  - Mapping to new document types is optional.  Remember that new document types typically requires updated SAP Security roles/profiles.&#x20;
    - theory recap: ArchiveLink uses S\_WFAR\_OBJ authorization object which has repository id, SAP business object, and doctype
    - thus if repository ID is already part of your security model, you will have to accommodate the new repository ID at a minimum
    - recap section “Sharing of DocManager Rules and RFCs” above to determine if you have to have new doctypes (in addition to reasons you may have as well)
- <u>Deleting Links / Attachments List</u>
  - During migration of  SAP Business Objects/Doctypes buckets, if the source content is to remain intact, and if using then Gimmal Link Enterprise DocManager attachment list ONLY, consider “hiding” those from the attachment list until migration for that combination is complete (DocManager config)
  - After migration buckets of SAP Business Objects/Doctypes are completed, and if using then Gimmal Link Enterprise DocManager attachment list ONLY, consider “hiding” those from the attachment list until final verification (DocManager config)
  - Deletion of source links is only recommended after a verification window post-migration.  This is also optional if using the DocManager attachment list, as you can also simply hide the original links as well.

# Performance Notes

- Set logging in Gimmal Link Enterprise middleware to ERROR only.  Less logging, less writing to disk
- Increase the JVM size for Gimmal Link Enterprise middleware server to 2048 initial/4096 max.
- Have Gimmal Link Enterprise Profile Wizard closed during processing
- Including metadata as part of the migration requires an additional API call as part of the “create”, but allows for the migration to process in one enchilada.  However, If migration milestones are short and if metadata isn’t required Day 1, or if API max calls are a concern, consider transferring metadata as a second wave using the Gimmal Link MDPro in SAP to execute a mass push of metadata after the fact.&#x20;

****








[title] Utilities: Archiving Gateway Data
[path] Agnostic Guides/Solution Guide/

An overview and instructions on how to schedule the Gimmal Link Enterprise API maintenance job can be found in our Base Installation and Configuration Guide.


[title] Additional Utilities
[path] Agnostic Guides/Solution Guide/Untitled/

# Export Copy of Source / Target Content

DocMigrator can be used as a content exporter for any entries in the Migration Table.  Specify a valid path available to the program (ie: foreground or background).

This process uses all the input criteria available for selection parameters.

## Delete Target Content

You can use DocMigrator to delete target content.  This is typically only done when backing out a migration or portion thereof and should be approached using EXTREME CAUTION.

This process uses all the input criteria available for selection parameters.

## Delete Target Link

You can use DocMigrator to delete target ArchiveLink links.  This is typically only done when backing out a migration or portion thereof and should be approached using EXTREME CAUTION.

This process uses all the input criteria available for selection parameters.

The results of the Load phase are displayed on the screen according to the option "Display Results in ALV" checkbox.  If this option is chosen, all entries are displayed in the ALV report format, else a simple message indicating the number of entries loaded successfully, with info message, or errors is displayed.

If ALV is chosen, the header will display information as to the breakdown of entries loaded successfully, with info message, or errors.

`Be careful when choosing "Display Results in ALV" as for large datasets this will significantly increase runtime and potential SAP system memory usage and timeouts.  It is therefore suggested to use the "Display" mode of the migrator afterwards instead of displaying the results in ALV format. `

Clicking on the source or target hotspot/hyperlink in the ALV allows you to view the image prior to deleting the link or content, but of course is not supported after.


[title] Invoice Processing Rules
[path] Agnostic Guides/Solution Guide/Untitled/Untitled/

## Overview

Processing rules determine the baseline behaviour for an invoice based on its classification.

Albeit you can dynamically change the processing rule during the life cycle of an invoice via customizing (optional — refer to the Customizing section later in this document), the processing rule will set the default behaviour.

## Setup

Based on the Gimmal Link Enterprise Classification configuration, below are the processing rule options.  <u>Unless specified otherwise</u>, the options below are relevant to *both* NON-PO and PO Invoice Types.

1. **Enable Auto Create NON-PO/PO:** Attempt to automatically park the invoice given metadata from the content management system
2. **Enable Auto Keep:** If Auto Create is enabled and successful, keep the invoice at the Initial AP Stage (enable Auto Keep IA) or send directly for the next processing stage (disable Auto Keep IA)
3. **Enable Pre-Pop NON-PO/PO:&#x20;**&#x49;f Auto Create is not enabled, or is enabled and fails, the Initial AP team must first create the invoice (or send for exception).  This option allows you to pre-populate the SAP invoice entry screen with metadata from the content management system if available. &#x20;
4. **Enable Auto Send Initial AP:**
   1. Auto Create successful: work-item will be sent to the next processing stage after Initial AP (ie: Initial AP will be skipped)
   2. Invoice "manually" created successfully (ie: Auto Create is not enabled or fails, or the Initial AP clerk parks the invoice successfully), the Gimmal Link Enterprise pop-up window can be skipped and the invoice can be sent directly for the next processing stage.
5. **Enable Skip Approvals for PO Invoices:&#x20;**&#x53;kip all approval levels for PO based invoices.
6. **Deadline (Days) Initial AP:** In days, how long a work-item will stay at the Initial AP stage before escalation.  Who receives this escalation is configured in the Agents configuration (outlined later in this document).
7. **Enable Level 1 thru 5 Approvals:** Enable approval level based on configured thresholds.
8. **Level 1 thru 5 Minimum Amounts:&#x20;**&#x4D;inimum dollar amount of invoice to enable the relevant approval level.  Leave blank to indicate no minimum.
9. **Deadline (Days) Approval Level 1 thru 5:** In days, how long a work-item will stay at particular Approval stage before escalation.  Who receives this escalation is configured in the Agents configuration (outlined later in this document).
10. **Skip Final AP for Posted Document NON-PO/PO:** if the invoice is already posted when it arrives at this stage of the workflow, Final AP will be skipped entirely and the Gimmal Link Enterprise AP workflow will be completed automatically. &#x20;
11. **Enable Final AP NON-PO/PO:** Enable the Final AP stage.
12. **Enable AutoPost NON-PO/PO:** Gimmal Link Enterprise can attempt to Automatically post the invoice at the Final AP stage.  This is only attempted if "Enable Final AP" is enabled above.  If Auto Post fails, a work-item is automatically sent to a Final AP agent.
13. **Enable Auto Send Final AP:**
    1. Auto Post successful: workflow will be set to complete (ie: Final AP will be skipped).
    2. Invoice "manually" posted successfully (ie: Auto Post is not enabled or fails, or the Final AP clerk posts the invoice successfully), the Gimmal Link Enterprise pop-up window can be skipped and the workflow will be set to complete automatically.
14. **Force Post:&#x20;**&#x49;f Final AP is enabled, and in the case that a work-item is sent to an agent (ie: AutoPost is enabled and either fails or AutoKeep is enable / Skip Final AP is disabled) if the invoice is *not* posted, then the "Complete Workflow" on the Gimmal Link pop-up window will be disabled.&#x20;
15. **Deadline (Days) Final AP:&#x20;**&#x49;n days, how long a work-item will stay at the Final AP stage before escalation.  Who receives this escalation is configured in the Agents configuration (outlined later in this document).

## Role Resolution / Agent Determination

Who will receive dialogue (foreground) work-items for workflow Initial AP, Approval, Final AP, and Exception stages is configured in the Agent configuration.  Refer to the section "Agents" later in this document.&#x20;

## Customizing Options

The following customizing options are available for Invoice Processing.  For information on how to implement, please refer to the section "Customizing" later in this document.&#x20;

1. **Custom Rule Determination:&#x20;**&#x54;o manipulate the Processing Rule for an invoice.
2. **Custom Auto Create:** To implement your own Auto Create logic.
3. **Custom Pre-Pop:** To implement your own Pre-Pop logic.
4. **Custom Work-item Text:&#x20;**&#x54;o implement your own Work-item text.
5. **Custom Auto Exceptions:** To implement your Auto Exceptions.
6. **Custom Auto Post Logic:** To implement your own Auto Post logic.
7. **Custom Approval ASL Check:** To implement your own ASL check
8. **Custom Role Resolution / Agent Determination:** To implement your own logic to determine work-item recipients&#x20;
9. **Custom Notifications:** To implement your own method of notifying agents.
10. **Custom Pre-Processor Logic:&#x20;**&#x50;owerful BADI to take control of all pre-processing logic
11. **Custom Post-Processor Logic:&#x20;**&#x50;owerful BADI to take control of all post-processing logic
12. **Custom POPUP PBO Logic:&#x20;**&#x54;o implement your own changes to the Gimmal Link pop-up windows for processing.
13. **Custom POPUP PAI Logic:** To implement your own logic to the Gimmal Link pop-up windows for processing.


[title] Read
[path] Agnostic Guides/Developers Guide/FileNet Endpoints/

Link Enterprise provides a web service endpoint that will allow you to retrieve a file metadata.

Included below are example of reading a files metadata.

:::ApiMethodV2
```json
{
  "tab": "examples",
  "url": "https://localhost:82/scrud/read",
  "name": "Read (metadata)",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [],
    "bodyDataParameters": [
      {
        "kind": "required",
        "name": "cmsName",
        "type": "string",
        "description": "Name of the filenet system configured in Link Enterprise ."
      },
      {
        "kind": "required",
        "name": "selectedCMS",
        "type": "string",
        "description": "Value should always be set to \"filenet\" to let Link Enterprise know which configured content system to search."
      },
      {
        "name": "location",
        "kind": "required",
        "type": "string",
        "description": "filenet folder where the document need to be read.",
        "children": []
      },
      {
        "name": "repository",
        "kind": "required",
        "type": "string",
        "description": "filenet repository Value",
        "children": []
      },
      {
        "name": "domain",
        "kind": "required",
        "type": "string",
        "description": "Filenet Domain name",
        "children": []
      },
      {
        "name": "checkout",
        "kind": "optional",
        "type": "string",
        "description": "If true, Does an Exclusive Checkout for filenet document.",
        "children": []
      },
      {
        "name": "id",
        "kind": "required",
        "type": "string",
        "description": "Filenet unique Document Id",
        "children": []
      },
      {
        "name": "selectClause",
        "kind": "optional",
        "type": "string",
        "description": "metadataField name which is required in response.",
        "children": []
      },
      {
        "name": "getContent",
        "kind": "optional",
        "type": "string",
        "description": "If true, Returns binary content of the Document. If false, returns metadata properties.",
        "children": []
      },
      {
        "name": "dateTimeFormat",
        "kind": "required",
        "type": "string",
        "description": "add datetime property in this provided format.",
        "children": []
      },
      {
        "name": "maxSize",
        "kind": "optional",
        "type": "string",
        "description": "Maximum number of entries in response.",
        "children": []
      }
    ],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "ymgovs5m1fdI32-gkqqCH",
        "code": "{\n\t\"someMetadataFieldName\": \"someMetadataFieldValue\"\n}",
        "language": "200"
      },
      {
        "id": "guaZg_Kjaci06qaXI6hoD",
        "code": "",
        "language": "500"
      }
    ],
    "selectedLanguageId": "ymgovs5m1fdI32-gkqqCH"
  },
  "examples": {
    "languages": [
      {
        "id": "yA6PAHJgLMNa-NjR8XpmC",
        "code": "{\n   \"cmsName\":\"Name of the filenet system configured in Link Enterpri.\",  \n    \"repository\":\"Filenet_Repository\",\n \"domain\":\"Domain_Name\",\n\t\"checkout\":false,\n\t\"id\":\"filenet document id\",\n\t\"dateTimeFormat\":\"MM/dd/yyyy hh:mm:ss a z\",\n\t\"selectClause\":\"someMetadataFieldName\",\n\t\"getContent\":false,\n\t\"maxSize\":100\n   \"selectedCMS\":\"filenet\",\n      \"location\":\"filenet folder name\"\n\t\n}",
        "language": "json"
      }
    ],
    "selectedLanguageId": "yA6PAHJgLMNa-NjR8XpmC"
  },
  "description": "Retrieve a file metadata by using filenet unique Id.",
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "autoGeneratedAnchorSlug": "read-metadata",
  "legacyHash": "RTkIuAhig8f9DkChR6cM4"
}
```
:::

:::ApiMethodV2
```json
{
  "tab": "examples",
  "url": "https://localhost:82/scrud/read",
  "name": "Read (Content)",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [],
    "bodyDataParameters": [
      {
        "kind": "required",
        "name": "cmsName",
        "type": "string",
        "description": "Name of the filenet system configured in Link Enterprise ."
      },
      {
        "kind": "required",
        "name": "selectedCMS",
        "type": "string",
        "description": "Value should always be set to \"filenet\" to let Link Enterprise know which configured content system to search."
      },
      {
        "name": "location",
        "kind": "required",
        "type": "string",
        "description": "filenet folder where the document need to be read.",
        "children": []
      },
      {
        "name": "repository",
        "kind": "required",
        "type": "string",
        "description": "filenet repository Value",
        "children": []
      },
      {
        "name": "domain",
        "kind": "required",
        "type": "string",
        "description": "Filenet Domain name",
        "children": []
      },
      {
        "name": "checkout",
        "kind": "optional",
        "type": "string",
        "description": "If true, Does an Exclusive Checkout for filenet document.",
        "children": []
      },
      {
        "name": "id",
        "kind": "required",
        "type": "string",
        "description": "Filenet unique Document Id",
        "children": []
      },
      {
        "name": "selectClause",
        "kind": "optional",
        "type": "string",
        "description": "metadataField name. While retrieving content. add \"ContentElements\" as selectClause to get file information in response header.",
        "children": []
      },
      {
        "name": "getContent",
        "kind": "optional",
        "type": "string",
        "description": "If true, Returns binary content of the Document. If false, returns metadata properties.",
        "children": []
      },
      {
        "name": "dateTimeFormat",
        "kind": "required",
        "type": "string",
        "description": "add datetime property in this provided format.",
        "children": []
      },
      {
        "name": "maxSize",
        "kind": "optional",
        "type": "string",
        "description": "Maximum number of entries in response.",
        "children": []
      },
      {
        "name": "tmpDirectory",
        "kind": "optional",
        "type": "string",
        "description": "Temporary directory where the file content is stored in the local system. Required while getContent is set to true.",
        "children": []
      }
    ],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "ymgovs5m1fdI32-gkqqCH",
        "code": "file content",
        "language": "200"
      },
      {
        "id": "guaZg_Kjaci06qaXI6hoD",
        "code": "",
        "language": "500"
      }
    ],
    "selectedLanguageId": "ymgovs5m1fdI32-gkqqCH"
  },
  "examples": {
    "languages": [
      {
        "id": "yA6PAHJgLMNa-NjR8XpmC",
        "code": "{\n   \"cmsName\":\"Name of the filenet system configured in Link Enterpri.\",  \n    \"repository\":\"Filenet_Repository\",\n \"domain\":\"Domain_Name\",\n\t\"checkout\":false,\n\t\"id\":\"filenet document id\",\n\t\"dateTimeFormat\":\"MM/dd/yyyy hh:mm:ss a z\",\n\t\"selectClause\":\"someMetadataFieldName\",\n\t\"getContent\":true,\n\t\"maxSize\":100\n   \"selectedCMS\":\"filenet\",\n      \"location\":\"filenet folder name\",\n      \"tmpDirectory\":\"C:\\\\somefolderlocation\"\n\t\n}",
        "language": "json"
      }
    ],
    "selectedLanguageId": "yA6PAHJgLMNa-NjR8XpmC"
  },
  "description": "Retrieve a file metadata by using filenet unique Id.",
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "autoGeneratedAnchorSlug": "read-content",
  "legacyHash": "vfL_H1ym3b69iCwb8tkz1"
}
```
:::


[title] Upload
[path] Agnostic Guides/Developers Guide/S3 Endpoints/

Link Enterprise provides an endpoint to upload files to. This is strictly for uploading files, and if you require metadata to be transferred following up with an update endpoint call is required.

:::ApiMethodV2
```json
{
  "tab": "request",
  "url": "https://localhost:82/scrud/upload",
  "name": "Upload",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [
      {
        "kind": "required",
        "name": "cmsName",
        "type": "string",
        "description": "Name of the content management system configured in Link Enterprise."
      },
      {
        "kind": "optional",
        "name": "location",
        "type": "String",
        "description": "S3 Bucket Name. By Default, Bucket name under s3 configuration in ini file is considered."
      },
      {
        "kind": "optional",
        "name": "Content-Type",
        "type": "string",
        "description": "multipart/form-data; boundary=(insert boundary)\n\nExample is included in code examples"
      }
    ],
    "bodyDataParameters": [],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "81EVM7WXdGrYfDwshYJW6",
        "code": "SUCCESS EXAMPLE\n{\n\t\"id\": \"POSPaper COD-04.pdf\",\n\t\"result\": \"success\"\n}\n\nFAILED EXAMPLE\n{\n\t\"id\": null.\n\t\"result\": \"fail\"\n}",
        "language": "200"
      },
      {
        "id": "6U9gw-gSaolDqS3WcFi9t",
        "code": "",
        "language": "500"
      }
    ],
    "selectedLanguageId": "81EVM7WXdGrYfDwshYJW6"
  },
  "examples": {
    "languages": [
      {
        "id": "xY6nLYt-BP3jeEy_-jkb3",
        "code": "POST /scrud/upload HTTP/1.1\nCookie: vertx-web.session=135e85c919328477ec243e270a692c4d\nUser-Agent: insomnia/2023.5.8\nCmsname: blob\nLocation: dflow123\nAccept: */*\nAuthorization: Basic YWRtaW46YWRtaW4=\nContent-Type: multipart/form-data; boundary=---011000010111000001101001\nHost: localhost:82\nContent-Length: 172\n\n-----011000010111000001101001\nContent-Disposition: form-data; name=\"\"; filename=\"POSPaper COD-04.pdf\"\nContent-Type: application/pdf\n\n\n-----011000010111000001101001--",
        "language": "none"
      }
    ],
    "selectedLanguageId": "xY6nLYt-BP3jeEy_-jkb3"
  },
  "description": "Upload a file using HTTP multi part form data. HTTP headers specifying location, and the content system named must be specified.",
  "currentNewParameter": {
    "label": "Header Parameter",
    "value": "headerParameters"
  },
  "autoGeneratedAnchorSlug": "upload",
  "legacyHash": "SYWoaQaa1CeAs6I_xHZZn"
}
```
:::






[title] Search
[path] Agnostic Guides/Developers Guide/S3 Endpoints/

Link Enterprise provides a web service endpoint that will allow you to retrieve a subset of documents based on a search criteria.

:::ApiMethodV2
```json
{
  "tab": "examples",
  "url": "https://localhost:82/scrud/search",
  "name": "Search ",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [],
    "bodyDataParameters": [
      {
        "kind": "required",
        "name": "cmsName",
        "type": "String",
        "description": "Name of the s3 system configured in Link Enterprise ."
      },
      {
        "kind": "required",
        "name": "whereClause",
        "type": "string",
        "description": "A where clause Used to query s3 to return a set of files/folders depending on criteria set."
      },
      {
        "kind": "required",
        "name": "selectedCMS",
        "type": "string",
        "description": "Value should always be set to \"s3\" to let Link Enterprise know which configured content system to search."
      },
      {
        "name": "location",
        "kind": "optional",
        "type": "string",
        "description": "S3 Bucket name where you want to search the document.",
        "children": []
      }
    ],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "l7mAccvIkcMGyR03J3_aP",
        "code": "[\n\t{\n\t\t\"compid\": \"data24\",\n\t\t\"content-length\": \"3000\",\n\t\t\"contrep\": \"K2456\",\n\t\t\"docid\": \"1234\",\n\t\t\"scanperformed\": \"true\"\n\t}\n]",
        "language": "200"
      },
      {
        "id": "C0tj4vmrgrTV7Xq8ZvvAu",
        "code": "",
        "language": "500"
      }
    ],
    "selectedLanguageId": "l7mAccvIkcMGyR03J3_aP"
  },
  "examples": {
    "languages": [
      {
        "id": "RinXZo0WaAz3lEkUOH2ux",
        "code": "{\n    \"cmsName\":\"insertProductionSystemName (located in Link       Enterprise gui)\",\n   \"selectedCMS\":\"s3\",\n\t\"whereClause\":\"contRep,K2456\",\n\t   \"location\":\"S3 Bucket Name\"\n}",
        "language": "json"
      }
    ],
    "selectedLanguageId": "RinXZo0WaAz3lEkUOH2ux"
  },
  "description": "Search for all documents using a where clause. If successful will return a JSON Array with a size greater then or equal to zero with status code of 200. Otherwise status code 500 is returned. If it's a known error returns 200 with error message in response.\n",
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "autoGeneratedAnchorSlug": "search",
  "legacyHash": "2I1lkUo-tBmvDr0MrlixB"
}
```
:::


[title] Publisher: Triggering Storing and Linking
[path] Agnostic Guides/Developers Guide/Untitled/

In your custom code or enhancements (primarily in the "processing" or appropriate form of your Z version of the message output), add code that calls the “publish\_message” method of the “/dflow/cl\_publishing”.  

The example below shows the retrieval of the spool id as well as various other input parameters like the filename (used for the document that will be stored in the content management system) so that the call to the “publish\_message” method can be made.  

Calls to the method can also be made using the SAP OTF table or by passing in the PDF as a string instead of using the spool id.  Adjustments will need to be made for the particular message output program/function module that is getting Gimmal Link Enterprise functionality added to it.  

Consult with an ABAP developer for assistance in gathering the correct information so that a call to the “publish\_message” can be made successfully.  

## Example

\* Ensure the user has selected to PRINT the document (ie. Not Fax/EDI/etc)

IF finaa-nacha = 1. "Print

  “ define the variables we need to make the call to Gimmal Link publisher

  DATA lo\_publishing TYPE REF TO /dflow/cl\_publishing.

  DATA lv\_object\_id  TYPE /dflow/cl\_publishing=>gt\_object\_id.

  DATA lv\_arc\_doc\_id TYPE /dflow/cl\_publishing=>gt\_id.

  DATA lv\_filename   TYPE file\_table-filename.&#x20;

&#x20; DATA lv\_document\_linked type abap\_bool.

&#x20; DATA lv\_document\_stored type abap\_bool.

&#x20; DATA lv\_message type string.



  “ get an instance of the Gimmal Link publisher object

  lo\_publishing = /dflow/cl\_publishing=>get\_instance( ).

 

  " set FILENAME (format the filename to how you would like)

  CONCATENATE bkorm-konto bkorm-bukrs INTO lv\_filename SEPARATED BY '\_'.

 

  “ determine the SAP object id for this particular object

  lv\_object\_id+0(10) = bkorm-konto. "Customer number

  lv\_object\_id+10(4) = bkorm-bukrs. "Company code

 

  “ try to make the call to the Publisher method and catch any exceptions

  “ in this example the sap object type and document type are hard coded

  TRY.

      CALL METHOD lo\_publishing->publish\_message

            EXPORTING

              iv\_spool\_id   = itcpp-tdspoolid

\*             it\_otf        =

\*             iv\_pdf\_xstring            =

              iv\_filename   = lv\_filename

              iv\_sap\_object = 'KNB1'

              iv\_ar\_object  = 'ZCRMPUBL01'

              iv\_object\_id  = lv\_object\_id

        IMPORTING

&#x20;           ev\_arc\_doc\_id = lv\_arc\_doc\_id

&#x20;           ev\_error      = lv\_error

            ev\_document\_stored = lv\_document\_stored

            ev\_document\_linked = lv\_document\_linked

            et\_return     = lt\_return.

          .

      CATCH /dflow/cx\_common . 

&#x20;       lv\_message = lo\_error->get\_text( ).
&#x20;       lv\_error   = abap\_true.
&#x20;       MESSAGE lv\_message TYPE 'I'.

  ENDTRY.

      READ TABLE lt\_return INTO ls\_return WITH KEY type = 'E'.
&#x20;   IF sy-subrc EQ 0.
&#x20;     MOVE: 'ZTC' TO syst-msgid,
&#x20;           'E' TO syst-msgty,
&#x20;           '018'  TO syst-msgno,
&#x20;           ls\_return-message(50) TO syst-msgv1,
&#x20;           ls\_return-message+50(50) TO syst-msgv2,
&#x20;           ls\_return-message+100(50) TO syst-msgv3,
&#x20;           ls\_return-message+150(50) TO syst-msgv4.
&#x20;     PERFORM protocol\_update.
&#x20;     MOVE: '/DFLOW/ZDOCUFLOW' TO syst-msgid,
&#x20;           'E' TO syst-msgty,
&#x20;           '001'  TO syst-msgno,
&#x20;           'Link Enterprise storage connection error - contact admin' TO syst-msgv1.
&#x20;     PERFORM protocol\_update.
&#x20;     MOVE c\_rc01 TO g\_subrc.
&#x20;   ELSE.
&#x20;     MOVE: '/DFLOW/ZDOCUFLOW' TO syst-msgid,
&#x20;           'S' TO syst-msgty,
&#x20;           '001'  TO syst-msgno,
&#x20;           'Link Enterprise storage success' TO syst-msgv1.
&#x20;     PERFORM protocol\_update.
&#x20;   ENDIF.

ENDIF.


[title] Migration Table Flags
[path] Agnostic Guides/Solution Guide/Untitled/

Over the entire migration process (including optional steps and flags), below are the list of flags set (if applicable) in the migration table as DocMigrator is executed across the different phases of the migration, post-processing, etc.

These flags are included as input to DocMigrator, allowing you to report on, or execute migration tasks based on.

eg: Only process migration table entries for a particular SAP object and document type that have NOT been migrated yet - Target Cont. Migrated NE 'X'

1. Source MD Exists (if applicable)
2. New MD Exists (if applicable)
3. Source Validated (during validation runs only)
4. Target Cont. Migrated (during migration)
5. Metadata Migrated (if applicable)
6. Target Link Created (during migration)
7. Src Content Exported (used as an optional utility)
8. Src Content Deleted (used as an optional post-processing step)
9. Src Link Deleted (used as an optional post-processing step)
10. Target Content Deleted  (used as an optional utility)
11. Target Content Link Deleted (used as an optional utility)
12. Target Content Exported (used as an optional utility)

These flags are extremely useful when running the migrator in Display mode to report on subsets of your migration content and activity.


[title] DocMigrator Custom Source Link Determination
[path] Agnostic Guides/Developers Guide/Untitled/

Not specified in the configuration as the other Gimmal Link Enterprise class/method plug-ins, but rather at runtime in the DocMigrator load screen, this ABAP method allows you to compile the source entries for a migration. This is useful in scenarios where the standard ArchiveLink source selection criteria does not satisfy your query (ie: all PO based invoices from a particular company code, thus you cannot use the object\_id to determine those from a company code since MM invoices do not have company code as part of the SAPKey). 

# Example Method: /DFLOW/CL\_MIGRATOR\_HELPER=> GET\_ABAP\_LINKS\_EXAMPLE

*The below example is provided with the&#x20;*&#x47;immal Link Enterprise *product.*

Signature: 

| **Type**   | **Parameter**     | **Description**                                                                                | **Sample Value**                                     |
| ---------- | ----------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------- |
| Exporting  | EV\_SOURCE\_TYPE  | The source type is either an ArchiveLink Content Server (A) or Gimmal Link Enterprise ECM (D)  | A or D <br />                                        |
| Exporting  | ET\_CONNECT       | The ArchiveLink table entries that you either custom retrieve or custom build.                 | Structure of TOAV0 – standard SAP ArchiveLink links  |









[title] Configuring SSL communication with Content Server
[path] Repository Specific Guides/Link Enterprise for S3/Installation and Base Configuration Guide/Follow up Middleware Team Tasks/

The content server communication with SAP can optionally have an SSL port enabled which also requires some certificates to be adjusted so that communication with SAP can be secure. The following example uses the command line tool called openssl. There are various ways to generate certificates so this example is just one way. Getting the openssl utility installed in your environment is not part of this guide. This example also generates what are known as self signed certificates. Generating signed certificates from certificate authorities is outside the scope of this document. 

First you’ll need to get a private key and convert it to the appropriate format required by the Gimmal Link Enterprise Connector. 

1. Generate an encrypted private key using openssl.

openssl genrsa -aes256 -out my\_private\_key.pem 2048 

This generates an RSA private key using AES256 encryption (other types of encryption are possible if AES256 is deemed insecure by your organization. It will prompt you to enter in a passphrase for the encryption, make sure to choose something that you will remember. The format of this certificate should be human readable since it is in the PEM format. The 2048 at the end of the command tells this key to be 2048 bits long (you could also use something like 4096 here instead of 2048) 


&#x20;       2\. Convert the private key to the pkcs8 structure

openssl pkcs8 -topk8 -inform pem -in my\_private\_key.pem -outform pem -nocrypt -out entlink\_private\_key\_pkcs8.pem 

This command takes the input file generated in the previous step and converts it into the pkcs8 structure used by the Enterprise Connector. Note that the nocrypt command here also unencrypts the private key. Since this could allow vulnerabilities you may wish to restrict who has access to the folder where the certificates are stored. Just make sure that the Windows server that runs the Gimmal Link Enterprise Connector has access to the folder by creating a logon user for the service if need be. 


&#x20;       3\. Store the private key in the config directory under the installation folder.
&#x20;       4\. Change the private key name to be entlink\_private\_key\_pkcs8.pem if you chose a different name in the previous steps. if you wish to keep the name that you originally chose you can optionally adjust the Config.properties file found under the config directory under the installation folder to point tp the new peivate key file you have created. You will need to adjust the content.pem.file to be the name of the file you have chosen.&#x20;

Ex: content.pem.file=my\_private\_key\_pkcs8.pem (if you chose my\_private\_key\_pkcs8.pem as the output file when converting to the pkcs8 structure. 


&#x20;       5\. Generate a public cerificate from the private key using openssl. Make surethat the common name matches the host used in the OAC0 ArchiveLink configuration (ip or hostname).

openssl req -new -x509 -key my\_private\_key.pem -out entlink\_public.cer -days 3650 

This command creates a new self signed certificate that is valid for 3,650 days. 

It will prompt you to enter the passphrase you chose earlier for your private key. 

Then it will ask you to enter in a country designation, state or province, and city. 

Next enter in your company name and an optional organizational unit from within your company (this can be left blank). 

For the common name make sure to enter the ip address or hostname you used or will use when configuring the ArchiveLink repository under OAC0. 

You can optionally enter in an email address as well. 

&#x20;       6\. Store the public certificate in the config directory under the installation folder.&#x20;
&#x20;       7\. Change the public certificate name to be entlink\_public.cer if you chose a different name in the previous steps.  If you wihs to keep the name that you originally chose you can optinally adjust the Config.properties file under the config directory under the installation folder to point to the new public  certificate you have created. You will need to adjust the content.cer.file to be the name of the file you have chosen.&#x20;

Ex: content.cer.file=my\_public.cer (if you chose my\_public.cer as the output file when creating the certificate). 

&#x20;       8\. Store the publiccertificate in SAP using the transaction STRUST.  This lets SAP know that calls out to the content server using this public certificate are trusted.&#x20;

1. Execute transaction STRUST
2. Double click on the SSL System Client SSL Client on the left hand side (note there may be two variants of the System SSL client so repeat the process for both SSL clients )
3. Verify that the right hand side says "SSL System Client SSL Client" at the top
4. On the bottom certificate section on the right hand side click on the import certificate button found in the lower left.
5. Select the certificate file that was previously generated and upload the certificate.
6. Verify that the certificate details get loaded up into the screen.
7. Finally click on the “Add to Certificate List”
8. Verify that the certificate list in the middle of the right hand side now contains an entry for the newly created public certificate (you may have to scroll down through the list of certificates).
9. Repeat the process if there was more than one SSL System client.

9\. Adjust the content server configuration tab in the Profile Wizard that will be using SSL communication by adding an SSL port number to configuration.&#x20;

10\. Make sure that the same port number is configured in the ArchiveLink repository that will be used with this configuration via transaction OAC0.

11\. Make sure to save configuration to active profile and restart the Gimmal Link Enterprise Connector Windows service for the changes to take effect.&#x20;

12\. In order to verify that the SSL configuration is correct you will need to attempt to store and retrieve (view) a business document that is associated with the ArchiveLink repository configured to use SSL. Note that testing the connection to the ArchiveLink repository does not test the SSL connection since that information is sent over the non-SSL port. This also means that ArchiveLink repository configurations must have both an SSL port and a regular port configured.&#x20;
























&#x20;

















































&#x20;













[title] Tasks
[path] Agnostic Guides/Developers Guide/Box Endpoints/

Currently Link Enterprise  has an endpoint to create tasks on top of files and assign them to a user (among other things).

:::ApiMethodV2
```json
{
  "tab": "examples",
  "url": "https://localhost:82/scrud/createTask",
  "name": "Create Tasks",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [],
    "bodyDataParameters": [
      {
        "kind": "required",
        "name": "id",
        "type": "string",
        "description": "Unique id of box file or folder."
      },
      {
        "kind": "required",
        "name": "type",
        "type": "string",
        "description": "Name of metadata template in box."
      },
      {
        "kind": "required",
        "name": "selectedCMS",
        "type": "string",
        "description": "Value should always be set to \"box\" to let Link Enterprise  know which configured content system to search."
      },
      {
        "kind": "required",
        "name": "body",
        "type": "Array",
        "description": "Json Array of strings (each index being a seperate line). \n\nOr can take a single string value \"singleLineExample\""
      },
      {
        "kind": "required",
        "name": "dueDate",
        "type": "string",
        "description": "Date the task is due\n\n2100-12-31 (YYYY-MM-DD)\n"
      },
      {
        "kind": "required",
        "name": "recipients",
        "type": "Array",
        "description": "Array of strings of recipients of the task (email id)\n\n*User may require permissions to file before being able to be assigned a task."
      }
    ],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "qNYNaQPOhJ1UW-zegaFJ6",
        "code": "",
        "language": "200"
      },
      {
        "id": "FRMYak2F3gPEAHrtkDAvt",
        "code": "",
        "language": "500"
      }
    ],
    "selectedLanguageId": "qNYNaQPOhJ1UW-zegaFJ6"
  },
  "examples": {
    "languages": [
      {
        "id": "npeO0usSroLpgszC5fpHh",
        "code": "{\r\n \"cmsName\":\"insertProductionSystemName (located in Link Enterprise gui)\",\r\n \"id\": \"insert box file id\",\r\n\t\"taskType\":\"insert Task type (described in params)\",\r\n\t\"recipients\":\r\n             [\r\n              \"admin@gimmal.com\",\r\n      \t      \"admin2@gimmal.com\"\r\n             ],\r\n\t\"body\":  [\r\n              \"Hi\",\r\n      \t      \"Thank you.\"\r\n             ],\r\n\t\"dueDate\":\"2021-12-30\", \r\n        \"selectedCMS\":\"box\",\r\n\r\n\r\n}",
        "language": "json"
      },
      {
        "id": "ZhU-IX53oNPcu7rTsSn1n",
        "code": "",
        "language": "none"
      }
    ],
    "selectedLanguageId": "npeO0usSroLpgszC5fpHh"
  },
  "description": "Create a task on a file",
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "autoGeneratedAnchorSlug": "create-tasks",
  "legacyHash": "qY7HAGpZETj9t2-9xMoY7"
}
```
:::

:::ApiMethodV2
```json
{
  "tab": "examples",
  "url": "https://localhost:82/scrud/createTask",
  "name": "Create Tasks",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [],
    "bodyDataParameters": [
      {
        "kind": "required",
        "name": "id",
        "type": "string",
        "description": "Unique id of box file or folder."
      },
      {
        "kind": "required",
        "name": "type",
        "type": "string",
        "description": "Name of metadata template in box."
      },
      {
        "kind": "required",
        "name": "selectedCMS",
        "type": "string",
        "description": "Value should always be set to \"box\" to let Link Enterprise know which configured content system to search."
      },
      {
        "kind": "required",
        "name": "body",
        "type": "Array",
        "description": "Json Array of strings (each index being a seperate line). \n\nOr can take a single string value \"singleLineExample\""
      },
      {
        "kind": "required",
        "name": "dueDate",
        "type": "string",
        "description": "Date the task is due\n\n2100-12-31 (YYYY-MM-DD)\n"
      },
      {
        "kind": "required",
        "name": "recipients",
        "type": "Array",
        "description": "Array of strings of recipients of the task (email id)\n\n*User may require permissions to file before being able to be assigned a task."
      }
    ],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "qNYNaQPOhJ1UW-zegaFJ6",
        "code": "",
        "language": "100"
      },
      {
        "id": "FRMYak2F3gPEAHrtkDAvt",
        "code": "",
        "language": "500"
      }
    ],
    "selectedLanguageId": "qNYNaQPOhJ1UW-zegaFJ6"
  },
  "examples": {
    "languages": [
      {
        "id": "npeO0usSroLpgszC5fpHh",
        "code": "{\r\n \"cmsName\":\"insertProductionSystemName (located in Link Enterprise gui)\",\r\n \"id\": \"insert box file id\",\r\n\t\"taskType\":\"insert Task type (described in params)\",\r\n\t\"recipients\":\r\n             [\r\n              \"admin@gimmal.com\",\r\n      \t      \"admin2@gimmal.com\"\r\n             ],\r\n\t\"body\":  [\r\n              \"Hi\",\r\n      \t      \"Thank you.\"\r\n             ],\r\n\t\"dueDate\":\"2021-12-30\", \r\n        \"selectedCMS\":\"box\",\r\n\r\n\r\n}",
        "language": "json"
      },
      {
        "id": "ZhU-IX53oNPcu7rTsSn1n",
        "code": "",
        "language": "none"
      }
    ],
    "selectedLanguageId": "npeO0usSroLpgszC5fpHh"
  },
  "description": "Create a task on a file",
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "autoGeneratedAnchorSlug": "create-tasks-1",
  "legacyHash": "8Ulfr4LyHjkK0bR5Eq25B"
}
```
:::




[title] Follow up Security Tasks
[path] Repository Specific Guides/Link Enterprise for S3/Installation and Base Configuration Guide/

Albeit not required for initial installation and configuration, in almost all scenarios viewing of attachment from SAP will be required. For this to occur, standard SAP authorization will be checked and therefore will need to be added to the user profiles at some point in the future. This is a heads up (as we know SAP Security does not like surprises ☺ ) that depending on what is implemented for document types (and you may already be utilizing ArchiveLink currently), the access to object S\_WFAR\_OBJ will need to be granted. Below is an overview of the elements involved: 

| **Setting**            | **Description**                                                                                                                                                                                 | **Sample Value(s)&#xA0;**                                         |
| ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------- |
| OAARCHIV               | Content Repository                                                                                                                                                                              | \* <br />Z1                                                       |
|                        | You can use the wildcard (\*) configuration entry here or you can restrict permissions to a particular ArchiveLink repository or set of ArchiveLink repositories.                               | ZA                                                                |
| OADOKUMENT <br />      | Document Type <br /><br />You can use the wildcard (\*) configuration entry here or you can restrict permissions to a particular business object or set of business objects.                    | \* <br />ZAPINV01                                                 |
| OAOBJEKTE <br /><br /> | Object Type <br /><br />You can use the wildcard (\*) configuration entry here or you can restrict permissions to a particular ArchiveLink document type or set of ArchiveLink document types.  | \* <br />BKPF <br />BUS2014 <br />                                |
| ACTVT <br />           | Activity <br /><br />01 for creating attachments <br />03 for displaying attachments<br />06 for deleting attachment links                                                                      | \* <br />01,03,06 <br /><br />Typically, 01 & 03 is granted only  |


[title] Follow up Middleware Team Tasks
[path] Repository Specific Guides/Link Enterprise for S3/Installation and Base Configuration Guide/

This section contains any follow up tasks for the middleware teams.  Any changes requires the Windows service must be restarted for changed to take effect.


[title] Changing Config.properties
[path] Repository Specific Guides/Link Enterprise for S3/Installation and Base Configuration Guide/Follow up Middleware Team Tasks/

The Config.properties file is a text file that is found under the config directory in the installation folder. This text file contains advanced settings that are only to be configured by Gimmal Link Enterprise administrators since some of the settings can break Gimmal Link Enterprise functionality. Some of the important information found in the Config.properties file is mentioned below. 

| **Setting**                             | **Description**                                                                                         | **Sample Value&#xA0;**                   |
| --------------------------------------- | ------------------------------------------------------------------------------------------------------- | ---------------------------------------- |
| version                                 | The version of the Enterprise Connector                                                                 | 6.0 <br />                               |
| jco.client.poolcount                    | The number of JCO connections to keep in the JCO client pool count                                      | 4                                        |
| jco.saplink.client.poolcount            | The number of JCO connections to keep in the JCO client pool count for SAPLink processing               | 6                                        |
| sap.client.saplink.function             | SAP BAPI name used in processing                                                                        | /DFLOW/ZCMSSAPLINK\_V1                   |
| sap.client.softlink.function            | SAP BAPI name used in processing                                                                        | /DFLOW/ZCMSSAPLINK\_V1                   |
| sap.client.backpop.function             | SAP BAPI name used in processing                                                                        | /DFLOW/ZCMSSAPLINK\_V1 <br />            |
| sap.client.auditlink.function           | SAP BAPI name used in processing                                                                        | /DFLOW/ZCMSSAPLINK\_V1                   |
| sap.server.softlink.function            | SAP BAPI name used in processing                                                                        | /DFLOW/ZJCOSERV\_001 <br />              |
| sap.server.backpop.function             | SAP BAPI name used in processing                                                                        | /DFLOW/ZJCOSERV\_001                     |
| sap.server.auditlink.function           | SAP BAPI name used in processing                                                                        | /DFLOW/ZJCOSERV\_001 <br />              |
| sap.server.email.function               | SAP BAPI name used in processing                                                                        | /DFLOW/ZJCOSERV\_002 <br />              |
| sap.server.read.function                | SAP BAPI name used in processing                                                                        | /DFLOW/ZCMS\_API\_READ\_V1               |
| sap.server.search.function              | SAP BAPI name used in processing                                                                        | /DFLOW/ZCMS\_API\_SEARCH\_V1 <br />      |
| sap.server.search.V2.function           | SAP BAPI name used in processing                                                                        | /DFLOW/ZCMS\_API\_SEARCH\_V2             |
| sap.server.create.function              | SAP BAPI name used in processing                                                                        | /DFLOW/ZCMS\_API\_CREATE\_V1 <br />      |
| sap.server.update.function              | SAP BAPI name used in processing                                                                        | /DFLOW/ZCMS\_API\_UPDATE\_V1 <br />      |
| sap.server.delete.function              | SAP BAPI name used in processing                                                                        | /DFLOW/ZCMS\_API\_DELETE\_V1 <br />      |
| sap.server.typesAndProperties.function  | SAP BAPI name used in processing                                                                        | /DFLOW/ZCMS\_API\_LOAD\_TANDP\_V1        |
| sap.server.repositories.function        | SAP BAPI name used in processing                                                                        | /DFLOW/ZCMS\_API\_LOAD\_REPOS\_V1 <br /> |
| sap.server.metadata.function            | SAP BAPI name used in processing                                                                        | /DFLOW/ZCMS\_API\_LOAD\_META\_V1 <br />  |
| sap.server.choicelist.function          | SAP BAPI name used in processing                                                                        | /DFLOW/ZCMSCREATECHOICELIST\_V1 <br />   |
| sap.server.filenetPing.function         | SAP BAPI name used in processing                                                                        | /DFLOW/ZCMS\_API\_PING\_CMS\_V1 <br />   |
| sap.server.middlewarePing.function      | SAP BAPI name used in processing                                                                        | /DFLOW/ZCMS\_API\_PING\_MID\_V1 <br />   |
| sap.client.saplink2.function            | SAP BAPI name used in processing                                                                        | /DFLOW/ZDOCMANAGER\_SAPLINK\_V2 <br />   |
| saplink.dateTime.format                 | The date and time format to use when sending SAPLink information to SAP                                 | MM/dd/yyyy hh\:mm\:ss a z <br />         |
| content.pem.file                        | The private certificate to use when configuring SSL communication with the Gimmal Link Content Server.  | gimmal\_private\_key\_pkcs8.pem          |
| content.cer.file                        | The public certificate to use when configuring SSL communication with the Gimmal Link Content Server.   | gimmal\_public.cer                       |


[title] Follow up S3 Team Tasks
[path] Repository Specific Guides/Link Enterprise for S3/Installation and Base Configuration Guide/

This section contains any follow up tasks for the S3 team.

[title] Adding SAP JCO logging information to any windows service
[path] Repository Specific Guides/Link Enterprise for S3/Installation and Base Configuration Guide/Follow up Middleware Team Tasks/

In order for additional JCO logging to take place it may be necessary to adjust the configuration for the Windows service. Open the Gimmal Link Enterprise Service configuration by clicking on the “Gimmal Service” application in the Gimmal program group (Optionally you can double click on the gimmal.exe application found under the service folder in the installation directory) Click on the “Java” tab and scroll the “Java Options:” window all the way to the bottom. There will be two lines that determine where the JCO logs will go (jco.trace\_path) and the amount of logging to perform (jco.trace\_level). For more information on the trace level refer to SAP JCO documentation. For this example the setting of 10 gives complete logging information. For that reason it is best to leave this additional logging only enabled when needed to better understand a JCO communication error with SAP and not leave it enabled in a production environment. 

-Djco.trace\_path="\<Put the Gimmal Link Enterprise Connector installation folder here>\logs\\" 

-Djco.trace\_level=10 












[title] CMS_API_READ
[path] Agnostic Guides/Developers Guide/Untitled/

| **Functionality&#xA0;**              | **Description**                                                                                                                                                                                | **FileNet Notes&#xA0;**               | **Documentum Notes**                     | **Box Notes&#xA0;**                                                                                                       | **M365/SharePoint Notes&#xA0;**                                                                                                                                                                                                             |
| ------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------- | ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| IV\_CMSPROFILE                       | Required: Determines which configured CMS Profile in Enterprise SAP to utilize. Combination of CMS Profile and CMS Tag determine the API destination and thus load across an RFC destination.  |                                       |                                          |                                                                                                                           |                                                                                                                                                                                                                                             |
|  IV\_CMSTAG <br /><br /><br /><br /> | Required: Determine which configured CMS Profile in Enterprise SAP to utilize. Combination of CMS Profile and CMS Tag determine the API destination and thus load across an RFC destination.   |                                       |                                          |                                                                                                                           |                                                                                                                                                                                                                                             |
| IV\_REPOSITORY <br /><br />          | Required: Determines which configured repository in Link Enterprise SAP to utilize                                                                                                             | Object Store <br />                   | Docbase <br /><br />                     | Default is the only Store/Repository supported since Box currently doesn’t support the notion of different repositories.  | Site, site collection                                                                                                                                                                                                                       |
| IV\_TYPE <br />                      | Optional: what CMS type to create.                                                                                                                                                             | DOCUMENT CLASS                        | OBJECT TYPE                              | METADATA TEMPLATE                                                                                                         | CONTENT TYPE <br />                                                                                                                                                                                                                         |
| IV\_USE\_MAPPING                     | Optional: use mapping of IV\_TYPE to CMS type in Enterprise Connector if CMS. Used if ArchiveLink doctype name to CMS type mapping is required.                                                |                                       |                                          |                                                                                                                           |                                                                                                                                                                                                                                             |
| IV\_ID                               | Optional: id to use for versioning a document. When specified a new version of the existing id is created with the given content.                                                              | GUID <br /><br /><br /><br />         | r\_object\_id <br /><br /><br /><br />   | id <br /><br /><br /><br />                                                                                               | Versioning not supported <br /><br /><br /><br />                                                                                                                                                                                           |
| IV\_CHECKOUT                         | Optional: allows you to checkout a document.                                                                                                                                                   | Only available in newer versions.     | Only available in newer versions. <br /> |                                                                                                                           | Not supported <br /><br />                                                                                                                                                                                                                  |
| IV\_GET\_CONTENT                     | Optional: Indicates whether to pass the content of the document back in table ET\_CONTENT\_MULTI                                                                                               |                                       |                                          |                                                                                                                           |                                                                                                                                                                                                                                             |
| IV\_LOCATION                         | Optional: (Mandatory for M365/SharePoin to only and not used in any other CMS system) Specified where to read the document from.                                                               | Not utilized <br /><br /><br /><br /> | Not utilized <br /><br /><br /><br />    | Not utilized <br /><br /><br /><br />                                                                                     | This is required and is the Document Library. For documents created by Link Enterprise, this is stored at the time of create in a Link Enterprise table in the scenario that the config changes and thus can be used for subsequent reads.  |
| IT\_METADATA\_FILTER                 | If specified, only metadata properties indicated will be returned. By default of no filter is provided, all metadata for a document is retrieved.                                              |                                       |                                          |                                                                                                                           |                                                                                                                                                                                                                                             |
| ET\_METADATA                         | Contains the metadata retrieved.                                                                                                                                                               |                                       |                                          |                                                                                                                           |                                                                                                                                                                                                                                             |
| ET\_FILES                            | Table containing the filename, size, and mime-type of the files retrieved if get content is enabled.                                                                                           |                                       |                                          |                                                                                                                           |                                                                                                                                                                                                                                             |
| ET\_RETURN                           | Table that indicates a success of an error. The TYPE field will contain an ‘S’ or ‘E’ respectively and the MESSAGE field will contain information in the case of an error.                     |                                       |                                          |                                                                                                                           |                                                                                                                                                                                                                                             |
| CT\_CUSTOM                           | Future use                                                                                                                                                                                     |                                       |                                          |                                                                                                                           |                                                                                                                                                                                                                                             |

General FileNet comments: 

- For performance considerations it’s best to limit the read to the particular metadata that is necessary for processing and not retrieve all of the available metadata.

## General Documentum comments: 

- For performance considerations it’s best to limit the read to the particular metadata that is necessary for processing and not retrieve all of the available metadata.

## General Box comments: 

- For performance considerations it’s best to limit the read to the particular metadata that is necessary for processing and not retrieve all of the available metadata.
- Currently VersionSeries isn’t supported with Box since there is currently no unique id that represents all versions of a document.
- FoldersFiledIn only returns the parent folder for a Box document.

Example



Link Enterprise has a test hardness that is located under the API Gateway.  You can choose to either:

1. &#x20;Single click on a gateway entry and choose the menu path Execute->Read Again.  This will populate values into the test harness from the line you have selected
2. Choose the the menu path Execute->Read New.  This provide a blank test harness.

To set a break-point to see how this call is executed, the program the test harness uses for READ is:

Program SE38: /DFLOW/ZCMSAPI\_READ\_01

Below is a sample call:

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/NrcB7kGZUUhV6tpvjTMlI_image.png" size="68" width="698" height="530" position="flex-start" showCaption="false"}














[title] Adjusting log4j logging
[path] Repository Specific Guides/Link Enterprise for S3/Installation and Base Configuration Guide/Follow up Middleware Team Tasks/

The Windows service can have what is logged adjusted by adjusting the log4j configuration files. These configuration files work in conjunction with a logging utility called log4j which is well documented online. The configuration files (found under the config directory in the installation folder): 

log4j2-gimmal.xml (The Gimmal Link Enterprise Windows service log configuration) 

Using your preferred text editor you can go in and adjust these configuration files to increase logging as well as change how the log files look. Once the changes have been made make sure to either restart the profile wizard or the Windows service so that the changes can take affect. Please refer to log4j information online for assistance in changing the format of these configuration files. 







[title] Uninstalling the Enterprise Connector
[path] Repository Specific Guides/Link Enterprise for S3/Installation and Base Configuration Guide/Follow up Middleware Team Tasks/

1. In order to uninstall the Enterprise Connector we recommend that you first stop the Windows service by either using the “Administrative Tools” “Services” option under the “Control Panel” or by using the “Gimmal Link Enterprise Service” configuration found in the Gimmal program group.
2. Once the service has been stopped you will need to uninstall the service by running the “uninstallService.bat” script found in the “service” directory found under the installation folder. Verify that the service was truly removed from the list of services. If for some reason the service isn’t removed you can run “SC DELETE Gimmal Link” from a DOS command prompt window”
3. Once the service has been removed you can run the uninstaller found in the “Uninstaller” directory under the installation folder. Double clicking on the uninstaller.jar file will then walk you through uninstalling the Gimmal Link Enterprise Connector.

Note: The uninstaller may not be able to delete some of the files and folders that were created so additional cleanup may have to be done manually for the installation location. If you have any problems uninstalling the Gimmal Link Enterprise Connector please don’t hesitate to speak to your system administrator or a Gimmal support team member. 







[title] Link Enterprise SCRUD Web Services
[path] Agnostic Guides/Developers Guide/











[title] Classification
[path] Agnostic Guides/Solution Guide/Untitled/Untitled/

## Overview

Classification of your invoices allows you to configure the rest of the Gimmal Link Enterprise AP Workflow accordingly.  This include:

1. Rule processing options such as auto-create, auto-post, etc
2. Approval levels
3. Agent Determination
4. Agent Load Balancing
5. Applicable Manual and Auto Exceptions
6. Prioritization

Further more, classification of invoices provides you many more options when working within Gimmal Link Enterprise TrackLink for:

1. Inbox Work-item queue management
2. Load Balancing
3. Sorting
4. Filtering
5. Prioritization
6. Searching

In additional, for Gimmal Link Enterprise Statistics as well as your own, classification can provide further options for analysis.&#x20;

Each tier of classification is optional, and you can also created additional custom tiers if you need.

Each tier can be logically associated with additional tiers to create a hierarchal structure, but this is optional as well.

## Classification Sources

In order for classification to be functional, the values of the classification have to come from somewhere.  These typically come from the below scenarios but again this is flexible to suite your AP process and business:

1. Metadata from the time of invoice capture / ingestion - direct values
2. Metadata from the time of invoice capture / ingestion - derived values based on business logic
3. Values within SAP based on business logic and metadata from 1. and 2. above
4. Values obtained only after the creation of an invoice

`Values of classification are completely for your purpose only, and each tier can represent whatever you wish them to represent, with each tier being optional `

Classification tiers that come with Gimmal Link Enterprise are:

## Document Type

This represent the ArchiveLink Document Type determine by the configuration of Gimmal Link Enterprise DocManager which receives the inbound to SAP request from you content management system.

The document type (not accounting document type) is the highest overall classification of an invoice.  Companies often just have 1 document type. &#x20;

*This is the minimum classification you must have for the and is already built into the Gimmal Link system.*

Note: Document type determine who can view images attached to invoices (outside of the Gimmal Link AP workflow).  If you require certain invoices to have different security requirements, consider implementing more document types.

## Locations

Location typically represent geographical regions.

## Invoice Categories

Invoice categories are the highest level of invoice specific classification.  Some common examples are:

Commercial

Critical

Standard

Request for Funds

Confidential

## Business Units

Business Units and Departments can also be used stand alone or with a relationship to Location, Invoice Categories, or each other.&#x20;

## Departments

Business Units and Departments can also be used stand alone or with a relationship to Location, Invoice Categories, or each other.&#x20;

## Invoice Flags

Invoice Flags tend to be very granular in nature and typically identify a very specific instance of an invoice that requires "special" processing along its lifecycle.  Whether that be high priority processing from the AP team such as Early Pay Discounts to an Auto Exception such as Admin Kick-out.

## Invoice Types

Invoice Types are <u>pre-built</u> in Gimmal Link Enterprise and consist of:

- PO
- NON-PO

Gimmal Link determines this as to whether there is a PO number at time of capture/ingestion *or&#x20;*&#x20;based on which type of invoice is chosen to be created by the system or the Initial AP team.&#x20;

Invoice Type is the minimum an invoice can be classified as.

## Workflow Container Names

In the Workflow Trigger metadata mapping (or your customizing options), below are the corresponding workflow container names (must be upper case):

ZAR\_OBJECT
ZLOCATION
ZINVOICECATEGORY
ZBUSINESSUNIT
ZDEPARTMENT
ZINVOICEFLAG
ZINVOICETYPE

## Customizing Options

The following customizing options are available for Invoice Processing.  For information on how to implement, please refer to the section "Customizing" later in this document.&#x20;

1. **Custom Invoice Classification:&#x20;**&#x54;o manipulate the Classification for an invoice.


[title] DocManager Inbound Processing
[path] Agnostic Guides/Developers Guide/Untitled/

In your CMS system, the property configured to be polled for as the indicator whether a document should be processed/call SAP (referred to as the Gimmal Link Enterprise SAPLink Trigger property or filter), when found, will trigger a call to the Gimmal Link Enterprise SAP gateway BAPI at a configured interval. 

The DocManager Inbound Processing class/method allows you to either: 

1. Custom: Execute your own custom process entirely or in combination with any other DocManager configured option mentioned above
2. Link Create: Optionally manipulate all exporting and changing method parameters for subsequent DocManager configured Create Link processing (called after Custom if configured). Primarily this is used to find/confirm/format/compile/specify the “SAPKey” for what SAP record to link to.

# Example Method: /DFLOW/CL\_DOCMANAGER\_HELPER=>SAPLINK\_EXAMPLE 

*The below example is provided with the&#x20;*&#x47;immal Lin&#x6B;*&#x20;product.*

Signature: 

| **Type**                 | **Parameter**                         | **Description**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | **Sample Value**                                                |
| ------------------------ | ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------- |
| Importin&#x67;**&#xA0;** | IV\_MODE <br /><br /><br /><br />     | This class/method is shared in the Gimmal Link Enterprise configuration for both “types” of processing (custom vs. SAP Key determination). Which processing is being executed by Gimmal Link Enterprise configuration is indicated by this value.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | SAPKEY or CUSTOM <br /><br /><br /><br />                       |
| Importing                | IV\_DOCUMENTID <br />                 | The CMS unique identifier (ie: UUID/GUID)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | 485029877609 <br />                                             |
| Exporting                | EV\_GOON\_FLAG <br />                 | CUSTOM processing only: setting the goon flag to ABAP\_TRUE (ie: X)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | ABAP\_FALSE or empty vs. ABAP\_TRUE (X) <br />                  |
| Exporting                | ET\_RETURN <br />                     | Anything other than a line added with the value ‘E’ in the TYPE field (ie: any line with S or I or W as a TYPE) will result in the Gimmal Link middleware considering the process a success and the inbound request will be set to complete (ie: the SAPLInk “trigger” property set to false and will NOT be reprocessed). If a line in the table with the value ‘E’ in the TYPE field is found, the entry in the CMS system will be reprocessed at the next interval. Regardless of the TYPE value, all entries added to this table will be logged and viewable in the Gimmal Link Enterprise API Gateway and thus can be leverage to log/report on the processing of your logic using any fields of the table (Message Text being the most common)                                                               |                                                                 |
| Exporting                | EV\_SAPKEY <br /><br />               | Used extensively in Link Enterprise Create, this is the fully formatted SAPKey that will be used to create the ArchiveLink Link                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | FI Invoice: 300019000002222019 Vendor Master: 0000033985 <br /> |
| Exporting                | EV\_GUID <br /><br /><br />           | Used only in CRM: this is the GUID that will be used in place of EV\_SAPKEY to generate the viewing URL to link                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |                                                                 |
| Changing                 | CT\_METADATA <br /><br /><br /><br /> | This table contains the metadata from your CMS system (what is sent over to SAP is determined by the Gimmal Link Enterprise middleware configuration for Inbound Processing metadata). <br /><br />This table it not typically changed, but rather read to leverage the metadata from your CMS system to either execute a custom process or in the case of Link Create, determine the EV\_SAPKEY. This might be to take different metadata fields and do a lookup to get a key, or maybe simply formatting the key to be padded so ArchiveLink will recognize it, or possible to verify the incoming key is correct (and if not, add an E type line to the return table). <br /><br />The values of this table can be viewed under the “SMD” (SAPLink Metadata) column in the Gimmal Link Enterprise API Gateway.  |                                                                 |
| Changing                 | CT\_FILES                             | Table containing the CMS inbound files related to the triggering of the SAPLink process.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |                                                                 |
| Changing                 | CT\_CUSTOM                            | For future use.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |                                                                 |
| Changing                 | CS\_ZDMC01                            | Table containing the existing DocManager configuration.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |                                                                 |
| Changing                 | CS\_ZCMSC05                           | Table containing the existing Repository ID configuration.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |                                                                 |
| Changing                 | CS\_ZCMSC01                           | Table containing the existing CMS Profile configuration.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |                                                                 |

Notes: 

- Custom processing is executed first, follow by Link Create (SAPKey) processing ‘2nd’ (if no goon flag is received).
- Any exporting or changing parameter values manipulated by Custom processing will be passed on to Link Create (SAPKey) processing.




[title] System Messages
[path] Agnostic Guides/Solution Guide/

System messages prevent or inform/warn users and API usage when needed during downtime or critical changes across the Gimmal Link Enterprise platform.

Examples of this may include:

1. When there is an issue storing documents to the backend content repository and you wish to inform the users to take a chill pill rather than create an abundance of help desk tickets
2. You are in the middle of making a change to production that requires a temporary hands off
3. The content management system is undergoing maintenance and a particular interface that uses the Gimmal Link Enterprise SCRUD API needs to stop processing temporarily

There are two types of system messages (see below for the "Message Type"):

"E" - stops processing and informs the user/process

"I" - informs the user/process but continues processing

For user based Gimmal Link Enterprise processing, such as Store New and Assing (ie: GOS menu based document storage and linking), the message (regardless of type I or E) will be displayed to the end user and will also will be added to the return table in the Gimmal Link Enterprise API gateway. &#x20;

For API or background based Gimmal Link Enterprise processing, such as SCRUD usage, the message (regardless of type I or E) will be added to the return table in the Gimmal Link Enterprise API gateway.&#x20;

To create a System Message, enter transaction /dflow/sys and choose the menu path Configure->System Messages.

| Setting             | Description                                                                                                              | Sample Value(s)                                     |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------- |
| API Source          | The particular type of processing that needs to have a message displayed on.                                             | DocManager: Store New and Assign                    |
| CMS Profile         | The content management system profile associated with this particular message                                            | \<any profile that you have configured>             |
| CMS Use Tag         | The content management system use tag associated with this particular message.                                           | \<any tag that you have configured>                 |
| API Type            | Optional API type of call that you wish the message to be associated with.                                               |                                                     |
| Enable/Disable      | If enabled this message will be displayed to users utilizing the associated processing tied to this message.             |                                                     |
| Message Type        | The type of message which can be just informational or an error which will restrict further processing.                  | Information                                         |
| Message Text        | The first line of text to display to the user.                                                                           | We are currently experiencing a network slowdown.   |
| Message Text        | The second line of text to display to the user.                                                                          |  Please be patient!                                 |
| Message Text        | The third line of text to display to the user.                                                                           |                                                     |
| En. Verbose Logging | If enabled additional logging will be added to the gateway dashboard logging.  Note this has a small hit to performance. |                                                     |


[title] Create
[path] Agnostic Guides/Developers Guide/FileNet Endpoints/

Link Enterprise provides a web service endpoint that will allow you to create a document.

The following endpoint allows the following capabilities.

1. Create a File
2. Create a File with metadata



:::ApiMethodV2
```json
{
  "tab": "examples",
  "url": "https://localhost:82/scrud/create",
  "name": "Create a File",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [],
    "bodyDataParameters": [
      {
        "kind": "required",
        "name": "selectedCMS",
        "type": "string",
        "description": "Value should always be set to \"filenet\" to let Link Enterprise know which configured content system to search."
      },
      {
        "kind": "required",
        "name": "cmsName",
        "type": "string",
        "description": "Name of the filenet system configured in docuflow."
      },
      {
        "name": "fileLocation",
        "kind": "required",
        "type": "string",
        "description": "file location in local system that needs to be stored in filenet.",
        "children": []
      },
      {
        "name": "repository",
        "kind": "required",
        "type": "string",
        "description": "filenet repository Value",
        "children": []
      },
      {
        "name": "location",
        "kind": "required",
        "type": "string",
        "description": "filenet folder where the document need to be created.",
        "children": []
      },
      {
        "name": "domain",
        "kind": "required",
        "type": "string",
        "description": "Filenet Domain name",
        "children": []
      },
      {
        "name": "checkout",
        "kind": "optional",
        "type": "string",
        "description": "If true, Enables file checkout ",
        "children": []
      },
      {
        "name": "dateTimeFormat",
        "kind": "required",
        "type": "string",
        "description": "Update datetime property in this provided format. ",
        "children": []
      },
      {
        "name": "checkinAsMinor",
        "kind": "optional",
        "type": "string",
        "description": "If true, The document is checkedIn as minor.",
        "children": []
      },
      {
        "name": "findCurrent",
        "kind": "optional",
        "type": "string",
        "description": "Enable to search for the latest version of Document.",
        "children": []
      }
    ],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "VzFOzYGCxsoPbWzdx0yew",
        "code": "{\n\t\"docId\": [\n\t\t\"{18CFCD6C-FFBF-CC9C-8780-89272DA000}\",\n\t\tnull,\n\t\tnull\n\t]\n}",
        "language": "200"
      },
      {
        "id": "VQkVXQFKVKg-X3yyvKCWC",
        "code": "",
        "language": "500"
      }
    ],
    "selectedLanguageId": "VzFOzYGCxsoPbWzdx0yew"
  },
  "examples": {
    "languages": [
      {
        "id": "CXPum3DlkEh5CtlxE_mJB",
        "code": "{\n   \"cmsName\":\"Name of the filenet system configured in Link Enterpri.\",  \n    \"repository\":\"Filenet_Repository\",\n \"selectedCMS\":\"filenet\",\n \"domain\":\"Domain_Name\",\n\t\"checkout\":false,\n\t\"dateTimeFormat\":\"MM/dd/yyyy hh:mm:ss a z\",\n   \"fileLocation\":\"C:\\\\someFolder\\\\someFile.txt\",\n   \"selectedCMS\":\"filenet\",\n\t\"checkinAsMinor\":false,\n\t\"findCurrent\":false,\n\t\"location\":\"/folderName\"\n}",
        "language": "json"
      }
    ],
    "selectedLanguageId": "CXPum3DlkEh5CtlxE_mJB"
  },
  "description": "Create a file with no metadata",
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "autoGeneratedAnchorSlug": "create-a-file",
  "legacyHash": "LTZYKRF4XjDFS4dN8yyEx"
}
```
:::

:::ApiMethodV2
```json
{
  "tab": "examples",
  "url": "http://localhost:82/scrud/create",
  "name": "Create a File (metadata)",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [],
    "bodyDataParameters": [
      {
        "kind": "required",
        "name": "selectedCMS",
        "type": "string",
        "description": "Value should always be set to \"filenet\" to let Link Enterprise know which configured content system to search."
      },
      {
        "kind": "required",
        "name": "cmsName",
        "type": "string",
        "description": "Name of the filenet system configured in docuflow."
      },
      {
        "kind": "required",
        "name": "mdArray",
        "type": "Array",
        "description": "A JSON array where each index is a json object with the keys \"md1\" and \"md2\". Where md1 is the column name, and md2 is the value to be inserted in that column."
      },
      {
        "name": "fileLocation",
        "kind": "required",
        "type": "string",
        "description": "file location in local system that needs to be stored in filenet.",
        "children": []
      },
      {
        "name": "location",
        "kind": "optional",
        "type": "string",
        "description": "filenet folder where the document need to be created.",
        "children": []
      },
      {
        "name": "repository",
        "kind": "required",
        "type": "string",
        "description": "filenet repository Value",
        "children": []
      },
      {
        "name": "domain",
        "kind": "required",
        "type": "string",
        "description": "Filenet Domain name",
        "children": []
      },
      {
        "name": "type",
        "kind": "optional",
        "type": "string",
        "description": "Filenet Class name attached to the document. Default is \"Document\"",
        "children": []
      },
      {
        "name": "checkinAsMinor",
        "kind": "optional",
        "type": "string",
        "description": "If true, The document is checkedIn as minor.",
        "children": []
      },
      {
        "name": "findCurrent",
        "kind": "optional",
        "type": "string",
        "description": "Enable to search for the latest version of Document.",
        "children": []
      }
    ],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "0iMkCF4s-yKchRAaXWJq3",
        "code": "{\n\t\"docId\": [\n\t\t\"{18CFCD6C-FFBF-CC9C-8780-89272DA00}\",\n\t\tnull,\n\t\tnull\n\t]\n}",
        "language": "200"
      },
      {
        "id": "Idjmyl-woaWfo4s5K3_bg",
        "code": "",
        "language": "500"
      }
    ],
    "selectedLanguageId": "0iMkCF4s-yKchRAaXWJq3"
  },
  "examples": {
    "languages": [
      {
        "id": "YYkmw0EaCT-jCk9-cGJJs",
        "code": "{\n   \"cmsName\":\"Name of the sharepoint system configured in Link Enterpri.\",  \n    \"repository\":\"Filenet_Repository\",\n \"selectedCMS\":\"filenet\",\n \"domain\":\"Domain_Name\",\n\t\"checkout\":false,\n\t\"dateTimeFormat\":\"MM/dd/yyyy hh:mm:ss a z\",\n   \"fileLocation\":\"C:\\\\someFolder\\\\someFile.txt\",\n   \"selectedCMS\":\"filenet\",\n      \"type\":\"MetadataClassName\",\n\t\"checkinAsMinor\":false,\n\t\"findCurrent\":false,\n\t\"location\":\"/folderName\",\n\t\"mdArray\":[\n\t{\"md1\": \"metadataField\", \"md2\": \"metadataValue\"}]\n}",
        "language": "json"
      }
    ],
    "selectedLanguageId": "YYkmw0EaCT-jCk9-cGJJs"
  },
  "description": "Create a file with metadata",
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "autoGeneratedAnchorSlug": "create-a-file-metadata",
  "legacyHash": "jwu3C_6nkyZkTjqhuztuj"
}
```
:::




[title] Search
[path] Agnostic Guides/Developers Guide/Box Endpoints/

Link Enterprise provides a web service endpoint that will allow you to retrieve a subset of documents/folders based on a search criteria. Link Enterprise supports two types of search within box. One using metadata filters and another using metadata queries (real-time).

To enable or disable metadata queries (real-time search) you can do so within the Link Enterprise configurator interface.

We are providing below an example of both a metadata filter example (with search query disabled in the configurator), and a metadata query example (with search query enabled in the configurator).

:::ApiMethodV2
```json
{
  "tab": "examples",
  "url": "https://localhost:82/scrud/search",
  "name": "Search (query)",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [],
    "bodyDataParameters": [
      {
        "kind": "required",
        "name": "cmsName",
        "type": "String",
        "description": "Name of the box system configured in Link Enterprise ."
      },
      {
        "kind": "required",
        "name": "whereClause",
        "type": "string",
        "description": "A where clause (JSON in string form). Used to query box to return a set of files/folders depending on criteria set."
      },
      {
        "kind": "required",
        "name": "selectedCMS",
        "type": "string",
        "description": "Value should always be set to \"box\" to let Link Enterprise know which configured content system to search."
      }
    ],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "l7mAccvIkcMGyR03J3_aP",
        "code": "[\n\t{\n\t\t\"name\": \"check\",\n\t\t\"id\": \"895736641171\",\n\t\t\"type\": \"file\"\n\t},\n\t{\n\t\t\"name\": \"demo1.txt\",\n\t\t\"id\": \"897859484481\",\n\t\t\"type\": \"file\"\n\t}\n]",
        "language": "200"
      },
      {
        "id": "C0tj4vmrgrTV7Xq8ZvvAu",
        "code": "",
        "language": "500"
      }
    ],
    "selectedLanguageId": "l7mAccvIkcMGyR03J3_aP"
  },
  "examples": {
    "languages": [
      {
        "id": "RinXZo0WaAz3lEkUOH2ux",
        "code": "{\r\n   \"cmsName\":\"insertProductionSystemName (located in Link Enterprise gui)\",\r\n   \"whereClause\":\"{\\\"from\\\":\\\"enterprise_InsertEnterpriseId.insertMetaDataTemplate\\\",\\\"query\\\":\\\"insertMetaDataColumnName = :value\\\",\\\"query_params\\\":{\\\"value\\\":\\\"insertMetaDataValue\\\"},\\\"ancestor_folder_id\\\":\\\"insertFolderId\\\"}\",\r\n   \"selectedCMS\":\"box\"\r\n}\r\n\r\n",
        "language": "json"
      }
    ],
    "selectedLanguageId": "RinXZo0WaAz3lEkUOH2ux"
  },
  "description": "Search for all documents using a where clause. If succesfull will return a JSON Array with a size greater then or equal to zero with status code of 200. Otherwise status code 500 is returned.\n\nPrecondition: insertName.searchQueryEnabled=true (located in inifile)",
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "autoGeneratedAnchorSlug": "search-query",
  "legacyHash": "2I1lkUo-tBmvDr0MrlixB"
}
```
:::

:::ApiMethodV2
```json
{
  "tab": "examples",
  "url": "https://localhost:82/scrud/search",
  "name": "Search (mdfilters)",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [],
    "bodyDataParameters": [
      {
        "kind": "required",
        "name": "cmsName",
        "type": "string",
        "description": "Name of the box system configured in Link Enterprise ."
      },
      {
        "kind": "optional",
        "name": "whereClause",
        "type": "string",
        "description": "A where clause (JSON in string form). Used to query box to return a set of files/folders depending on criteria set."
      },
      {
        "kind": "optional",
        "name": "selectedCMS",
        "type": "string",
        "description": "Value should always be set to \"box\" to let Link Enterprise know which configured content system to search."
      }
    ],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "fGXdotBZMqjtdKDUmY0WT",
        "code": "[\n\t{\n\t\t\"name\": \"check\",\n\t\t\"id\": \"895736641171\",\n\t\t\"type\": \"file\"\n\t},\n\t{\n\t\t\"name\": \"demo1.txt\",\n\t\t\"id\": \"897859484481\",\n\t\t\"type\": \"file\"\n\t},\n\t{\n\t\t\"name\": \"Cataray.pdf\",\n\t\t\"id\": \"901051603311\",\n\t\t\"type\": \"file\"\n\t},\n\t{\n\t\t\"name\": \"Version3.pdf\",\n\t\t\"id\": \"901048740163\",\n\t\t\"type\": \"file\"\n\t},\n\t{\n\t\t\"name\": \"TEST XLS.xls\",\n\t\t\"id\": \"900741822394\",\n\t\t\"type\": \"file\"\n\t},\n\t{\n\t\t\"name\": \"TEST HTM.htm\",\n\t\t\"id\": \"900747633313\",\n\t\t\"type\": \"file\"\n\t},\n\t{\n\t\t\"name\": \"TEST GIF.gif\",\n\t\t\"id\": \"900747915499\",\n\t\t\"type\": \"file\"\n\t}\n]",
        "language": "200"
      },
      {
        "id": "J0Ifgft2wz-db1qWGif2B",
        "code": "",
        "language": "500"
      }
    ],
    "selectedLanguageId": "fGXdotBZMqjtdKDUmY0WT"
  },
  "examples": {
    "languages": [
      {
        "id": "jGF6SQdzbwLQ6_z9ZiwPF",
        "code": "{\r\n   \"cmsName\":\"insertProductionSystemName (located in Link Enterprise gui)\",\r\n\t   \"whereClause\":\"mdfilters=[{\\\"templateKey\\\":\\\"insertMetaDataTemplateName\\\",\\\"scope\\\":\\\"enterprise\\\",\\\"filters\\\":{\\\"insertMetaDataColumnName\\\":\\\"insertMetaDataValue\\\"}}]\",\r\n   \"selectedCMS\":\"box\"\r\n}\r\n\r\n",
        "language": "json",
        "customLabel": "JSON"
      }
    ],
    "selectedLanguageId": "jGF6SQdzbwLQ6_z9ZiwPF"
  },
  "description": "Search for all files/folders using a where clause. If succesfull will return a JSON Array with a size greater then or equal to zero with status code of 200. Otherwise status code 500 is returned.",
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "autoGeneratedAnchorSlug": "search-mdfilters",
  "legacyHash": "1XRHrMjsJLILx9kjnW4Vl"
}
```
:::




[title] Attachment List Options
[path] Agnostic Guides/Solution Guide/DocManager/

Using the Gimmal Link Enterprise Attachment List provides the below additional benefits:

1. Gimmal Link Enterprise Attachment list displays all ArchiveLink Attachments whether they were created via Gimmal Link Enterprise ECM or other content services
2. Allow document storage to both Gimmal Link Enterprise ECM supported CMS system AND non-Gimmal Link Enterprise supported CMS systems (ie: any ArchiveLink endpoint)
3. Gimmal Link Enterprise Virtual Link Manager allows you display links that are not linked to the SAP record you are viewing, but rather linked to an associated SAP record.  Instead of implementing a process that duplicates links, you can use Virtual Link Manager to show these links as if they were attached.  For example, when viewing a Purchase Order and its attachments, you can also display any attachments that were directly linked to the Goods Receipt.
4. Gimmal Link Enterprise Virtual Link Manager also allows you to manipulate what is shown on the attachment list as a whole: meaning you can hide links, blank out sensitive information, add additional security checks, and so forth.
5. You can choose to display or hide SAP DB Attachments and Notes
6. You can choose to hide particular SAP Object / doctype combinations.  This is used often during migrations when for a window of time, you may have duplicate links from the source system as well as the new target system prior to validation and link deletion.
7. For those earlier release systems that do not have table TOAAT implemented, the Gimmal Link Attachment List fills the gap in providing the columns of who created the attachment, time stamp, filename, and extension
   Regardless of #1 above, the Gimmal Link Enterprise Attachment List provides the full ArchiveLink link record (repository UUID, doctype, etc)
8. Easy "tab" based interface for drag and drop document storage and viewing in one window
9. Consistent interface regardless of windows or java based SAP GUI
10. Allow "Notes" to be created in your external repository instead of your SAP database
11. Supports Viewing attachments by auto-group via classification, document flow, or file extension

Gimmal Link Enterprise provides the above functionality config and code free (with the exception of the Virtual Link Manager - refer to the below).

**Configuration is located within the Gimmal Link Enterprise System Dashboard (/dflow/sys) and choose the menu path Configure->Services for Object**

Below is an overview of the configuration required to enable the Gimmal Link Enterprise DocManager Attachment List:

## SGOSATTR Entries / Utility

This utility is in beta and should not be used. &#x20;

<u>Instead, the following entries must be manually created in the table SGOSATTR. </u> These entries enable the Gimmal Link SFO/GOS menu path(s) to be shown (note: the Gimmal Link Enterprise DocManager, Workflow and AuditLink will only be displayed IF that option is *independently and separately&#x20;*&#x63;onfigured for a particular SAP Object), else they will not appear.

Below are the entries that must be created in SGOSATTR via transaction SM30 (note this is cross-client):

### Name of service: GIMMALSTOR

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/16wEJ3iV_JRiLAz8oa9I-_image.png)

### Name of service: GIMMALWFM

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/SrlkYHSakrvKOs2xvAsFw_image.png)

### Name of service: GIMMALAUDC

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/pytmLjX9bsiBDmueAM34o_image.png)

## TOAEX Utility

Except in the case where a (Gimmal Link Enterprise) Content Server is being used for viewing, an entry in the table TOAEX must be created to allow for Gimmal Link Enterprise to handle viewing request and integrate your web browser.

First check whether you have an existing entry in table TOAEX (use transaction SE16 or SE17) under the two exit ID's:

1. OA\_DISPLAYJAVA\_01 
2. OA\_OBJECTDISPLAY\_01

If you DO, please consult your development team to work with your Gimmal Link Enterprise implementer to merge your existing logic within those function modules and the Gimmal Link Enterprise function module "/DFLOW/ZUTIL\_TOAEX\_FUNCTION\_01".

If you DO NOT have entries in the TOAEX able for the above exits ID's, choose the sub menu path Configure->Services for Object->**TOAEX Utility.**

From there simply <u>execute</u> using the “Update Settings” option. <u>If utilizing this method, ensure you execute this in each SAP environment that </u><u>Gimmal </u><u>Enter</u><u>pris</u><u>e </u><u>Link will be used. </u>

Your TOAEX table should now look like the below for the two exit ID's:

| **EXIT ID**                        | **Status (ACTIVE)**  | **Function Module (EXIT\_FUB)&#xA0;** | **VALUE&#xA0;** |
| ---------------------------------- | -------------------- | ------------------------------------- | --------------- |
| OA\_DISPLAYJAVA\_0&#x31;**&#xA0;** | X                    | /DFLOW/ZUTIL\_TOAEX\_FUNCTION\_01     |                 |
| OA\_OBJECTDISPLAY\_01              | X                    | /DFLOW/ZUTIL\_TOAEX\_FUNCTION\_01     |                 |
|                                    |                      |                                       |                 |



## MENU OPTIONS

Below are the menu options for the Gimmal Link Enterprise DocManager Attachment List:

### Object Type

This is your SAP Object such as BKPF, BUS2012, etc.  This must match the business object for the SAP transaction you are configuration.  Note you can also use a wildcard "\*" to set options system wide.  You can subsequently add individual SAP Objects that will override the system "\*" wildcard.

### SAP Key1/2/3 Length

Specifies the SAP Business Object's key length.  Only required if "En. WF TrackLink" or "En. Late WF" is enabled below.

For example, vendor numbers are a single key field, and are 10 characters in length for LFA1.  Put a 10 in the SAPKey1 Length.&#x20;

For example, vendor numbers at the company code level are a composite key (ie: two fields) for LFB1.  10 characters in length.  Put a 10 in the SAPKey1 Length, and 4 in SAPKey2 Length.

### En. Atta.w/ Fold

If enabled, the 2nd generation of the Gimmal Link Enterprise DocManager attachment list will be used.  This newer version contains the following changes:

1. Supports Viewing attachments by auto-group via classification, Gimmal Link Enterprise flow, or file extension
2. Move the attachment list tab to the first tab, and the "Store" tab to the 2nd position.

### SAP DB Attach

If enabled, Attachments stored in the SAP database will be displayed in the attachment list.

### SAP DB Notes

If enabled, Notes stored in the SAP database will be displayed in the attachment list.

### Attachments Link Manager

If enabled, users will be allowed to delete items from the attachment list leveraging Gimmal Link Enterprise Delete Link Management functionality.  Please refer to the section Delete Link Management via Gimmal Link Enterprise Link Manager for more information.&#x20;

### En. Download

If enabled, users will be allowed to download content in the attachment list to their local/network drive.

### En. Cr.Note DB

If enabled, users will be allowed to create/store Notes in the SAP database.

### En. Cr.Note GOS

If enabled, users will be allowed to create/store Notes in your content repository (stored as .txt files).

### En. AuditLink GOS

If enabled, the Gimmal Link Enterprise AuditLink TrackLink option will show on the SFO/GOS menu path.

### En. WF TrackLink

If enabled, the Gimmal Link Enterprise TrackLink option will show on SFO/GOS menu path.&#x20;

### En. Late WF

Document Type

## Hiding particular SAP Object / doctype combinations

1. via the Gimmal Link Enterprise System Dashboard (/dflow/sys) choose the menu path Configure->API Rules->Document Manager
2. Create/find the entry for the SAP Object/document type rule.
3. Enable the "Hide Att.List" checkbox:

## Virtual Link Manager

Please refer to the Gimmal Link Enterprise Developers Guide on more information on implementing.

## Delete Link Manager

Configuration and usage is outlined in the next section.


[title] Enabling Store New and Assign / Attachment List Menu Path
[path] Agnostic Guides/Solution Guide/DocManager/

For all Store New and Assign (ie: Business Document Storage), or to use the Gimmal Link Enterprise Attachment List for any other purposes, you must add the DocManager menu path to the Services for Object / Global Object Services configuration table via the instructions below:

1. Maintain the table SGOSATTR via SM30 in your development configuration client.  Note that this configruation is client independent, but will generate a transport to must be moved with other ArchiveLink and Gimmal Link configuration.
2. Find the entry with the name INFO\_SERVICE and double click to change the entry.
3. Change the field value for "Next Service" to GIMMALSTOR as shown below.  Save your entry and green arrow back.

4\.  Click the button "New Entries" and create the following entry named "GIMMALSTOR":



![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/jwBApDRVXMKC7KJR_eXVB_image.png)

&#x20;\- ensure the class name /DFLOW/CL\_DOCMANAGER is spelled correctly and that the "Commit Required" is enabled!

5\.  You must then find a menu item to link it too.  The most common entry is the INFOSERVICE, but **it is recommended that you choose the "last" entry in your systems SFO menu list (add as the "Next Service"):**

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/WqXPGRYRrwKN0q-l_jHyt_image.png)



6\.  Save your entry and include this transport in your migration to QUAL and PROD list of transports.


[title] Required Metadata Properties
[path] Agnostic Guides/Solution Guide/DocManager/

Note: you might already have some properties during your Base Installation and Configuration.

:::BlockQuote
*\*\*\*&#x20;*&#x49;t is mandatory that all properties (both ECM and Content Server) be added for any content type/metadata template/document class used for Link Enterprise integration \*\*\*
:::

## ECM Required Metadata Properties

These names are suggestions and recommended, but are configurable in the Enterprise Connector.

| SharePoint Column (suggested) | Data Type           | Attribute Settings                                                                           |
| ----------------------------- | ------------------- | -------------------------------------------------------------------------------------------- |
| LinkEnterpriseUsername        | single line of text |                                                                                              |
| LinkEnterpriseTimestamp       | single line of text |                                                                                              |
| LinkEnterpriseSaplinkTrigger  | single line of text | No settings, however - the only values Link Enterprise will recognize are "True" and "False" |
| LinkEnterpriseSaplinkError    | single line of text |                                                                                              |

## Content Server Required Metadata Properties

:::BlockQuote
`*** Please ensure these are EXACT casing as below *****`
:::

| SharePoint Column (mandatory) | Data Type | Attribute Setting |
| ----------------------------- | --------- | ----------------- |
| contRep                       | Text      |                   |
| docID                         | Text      |                   |
| dateC                         | Text      |                   |
| compId                        | Text      |                   |
| pVersion                      | Text      |                   |
| docProt                       | Text      |                   |
| contentLength                 | Text      |                   |
| accessMode                    | Text      |                   |
| charset                       | Text      |                   |
| compStatus                    | Text      |                   |
| sapVersion                    | Text      |                   |


[title] Utilities: Link Maintenance
[path] Agnostic Guides/Solution Guide/

Link Maintenance allows a simple tool to maintain ArchiveLink links.

This is often used after client refreshes in order to "reset" the links in non-production environments as well.

This utility differs from the Attachment List Dashboard in that allows for multiple links to be deleted at one time while the dashboard only allows for one deletion at a time. 

To execute Link Maintenance, enter transaction /dflow/sys and choose the menu path Configure->Dashboards->Link Manager->Mass Maintenance.

`Make sure to limit the search results by at least a Doctype and Archive ID (required fields) to help narrow down the results.`  

This utility can also be run in the background for large processing to be completed in the background to avoid timeout issues with foreground/dialogue processing.

| Setting                    | Description                                                                                                                                                                                            | Sample Value(s) |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------- |
| Test Only                  | If selected the actual processing of the ArchiveLink entries will only be simulated and not actually run.                                                                                              |                 |
| Production System Override | If selected this allows for ArchiveLink entries to be adjusted in a production environment.                                                                                                            |                 |
| Wipe ArchiveLink Links     | If selected the ArchiveLink entries filtered on will be deleted from the underlying ArchiveLink tables.                                                                                                |                 |
| Link Table (eg: TOA01)     | The link table to restrict processing on.                                                                                                                                                              | TOA01           |
| SAP Object                 | The SAP business object in particular to filter the ArchiveLink entries on.                                                                                                                            | BUS2014         |
| Object ID                  | A particular unique object id to filter the ArchiveLink entries on.  This unique object id will only be unique to a particular SAP business object so make sure to include additional filter criteria. | 0000000001      |
| Archive ID                 | The ArchiveLink repository to filter the ArchiveLink entries on.                                                                                                                                       | ZC              |
| CMS ID                     | The content management system document id in particular to filter the ArchiveLink entries on.                                                                                                          | 1232456         |
| Doctype                    | The ArchiveLink document type to filter the ArchiveLink entries on.                                                                                                                                    | ZCONTRACT       |
| Archive Date               | The ArchiveLink archive date to filter the ArchiveLink entries on.                                                                                                                                     | 12/25/2020      |
| Reserve                    | The ArchiveLink reserve entry to filter the ArchiveLink entries on.                                                                                                                                    |                 |


[title] Approvals
[path] Agnostic Guides/Solution Guide/Untitled/Untitled/

## Overview

## Setup

The below configuration is available for Gimmal Link Enterprise AP Workflow Approvals.

### Rejection Codes

Setup rejection codes and a descriptive text.  These will be available to the approvers to choose when rejecting.&#x20;

### Role Resolution / Agent Determination

Who will receive dialogue (foreground) work-items for Approval is by default configured in the Agent configuration.  Refer to the section "Agents" later in this document.&#x20;

## Customizing Options

The following customizing options are available for Approvals.  For information on how to implement, please refer to the section "Customizing" later in this document.&#x20;

1. **Custom ASL Check:** To implement your own ASL check
2. **Custom Workitem Text:** To implement your own Workitem text.
3. **Custom Auto Exceptions:** To implement your Auto Exceptions.
4. **Custom Role Resolution / Agent Determination:** To implement your own logic to determine work-item recipients&#x20;
5. **Custom Notifications:** To implement your own method of notifying agents.
6. **Custom Pre-Processor Logic:&#x20;**&#x20;Powerful BADI to take control of all pre-processing logic.
7. **Custom Post-Processor Logic:** Powerful BADI to take control of all post-processing logic
8. **Custom POPUP PBO Logic: T**o implement your own changes to the Gimmal Link pop-up windows for processing.
9. **Custom POPUP PAI Logic:&#x20;**&#x54;o implement your own logic to the Gimmal Link pop-up windows for processing.


[title] Utilities: Metadata Push (MDPro)
[path] Agnostic Guides/Solution Guide/

Metadata Push (or MDPro), is a utility that allows you to manually trigger or schedule metadata updates from SAP to your CMS system based on configured DocManager rules.

There are two way to execute a metadata push:

1. Directly via the MDPro transaction/menu path and you enter the input criteria to determine what gets pushed
   1. To execute MDPro, enter transaction /dflow/sys and choose the menu path Configure->Execute->Metadata Push.
2. From a Gimmal Link Enterprise API Gateway results set, and then "loading" MDPro from that result set.

Using the Gimmal Link Enterprise API gateway allows you to use entries in the gateway to populate the input selection screen to MDPro.

If entering MDProd directly, leverage the Link Selection to determine which ArchiveLink link entries MDPro will push metadata for.

`Note that all MDPro activity is logged in the Gimmal Link API Gateway.`

## Link Selection

Use any combination of the standard ArchiveLink link table elements to filter which links you would like to push metadata for

## Action

| **Setting**                | **Description**                                                                                         |
| -------------------------- | ------------------------------------------------------------------------------------------------------- |
| Production System Override | Enable this for production environments                                                                 |
| Descriptive Label          | Give your "run" a meaningful label.  This will assist you in searching the Gimmal Link API Gateway.     |
| View Only                  | This does not execute the (U)pdate API call to the content repository.  It is equivalent to a test run. |
| Push Metadata              | This is an actual run that will update the content repository.                                          |

## Gateway Update

| **Setting**              | **Description**                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Update Existing (Slower) | If there are any previous ERROR entries from (U)pdate for a particular SAP object / Object ID / Archive ID / CMS ID / AR Object unique key in the Gimmal Link API gateway, it will be updated to reflect a success.  Therefore, you can report on all ERRORS in the gateway for outstanding errors if desired.  There is performance overhead with this option.  You can always report (via date or label or other criteria) the MDPro run as an alternative. |
| No Update (Faster)       | This option does not update historical gateway entries.                                                                                                                                                                                                                                                                                                                                                                                                       |

## Display Options

| **Setting**       | **Description**                                                   |
| ----------------- | ----------------------------------------------------------------- |
| Detail ALV        | Results are displayed in ALV report format                        |
| Summary Text Only | A simple text summary only is displayed instead of the ALV report |


[title] Accounts Payable
[path] Agnostic Guides/Solution Guide/

## Introduction

Gimmal Link Enterprise Accounts Payable is an extremely powerful SAP based Invoice Processing and Approval workflow built on the SAP workflow runtime system. &#x20;

Even with its powerful design, the Gimmal Link Enterprise Accounts Payable Workflow is simple and fully configurable to handle all types of invoice processing: from straightforward to complex to fully customized. &#x20;

Compatible with any scanning or ingestion method to your content repository, Gimmal Link Enterprise AP is a powerful and flexible solution to process, track, manage, and automate your accounts payable process - resulting in greater efficiencies and promoting shorter invoice processing times, enhanced exception management, and much more - allowing you to pay invoices faster, easier, and achieve vendor discounts.  &#x20;

## Features

Below are some of the Gimmal Link Enterprise AP features:

- automatic creation of invoices
- data pre-population for manual invoice creating&#x20;
- full integration with your content repository
- enhanced exception management
- auto posting
- built in agent management
- multi level approvals inside and outside of SAP (including mobile phone)
- ASL integration
- built in notifications&#x20;
- leverages your standard SAP screen and functions to ensure 2 and 3 way matching and data validation
- back-population of metadata to your content management system along entire invoice lifecycle
- deadline monitoring to ensure no invoices stall
- powerful and fast searching and tracking of invoices
- work queues with powerful sort, filter, and load balancing capabilties&#x20;
- based on the powerful and robust SAP workflow runtime system
- a suite to tools to support administrative functionality including year end rollover
- supports delegation&#x20;
- works with SAP UWL
- fully configurable
- code-free implementations
- customizable
- fast implementation timelines
- no SAP workflow in-house skill set required






[title] S3 Endpoints
[path] Agnostic Guides/Developers Guide/


[title] HTTPS Setup (JKS/PEM)
[path] Agnostic Guides/Developers Guide/Link Enterprise SCRUD Web Services/

# PEM/CER

To enable Link Enterprise to use the following formats you must add to the ini file **cert.type = pem** under \[General Preferences].

- Do not use encrypted private key

**Using a generated private key file in pkcs8 format for the server and place in the config folder of the Link Enterprise instance.**

```Text
 * Using openssl and your private key this is created by:
 * openssl pkcs8 -topk8 -inform pem -in your_private_key.pem -outform pem -nocrypt -out your_private_key_pkcs8.pem
```

**&#x20;Generating the public certificate for the server. Place in the config folder of the Link Enterprise instance.**

```Text
 *
 * openssl req -new -x509 -key your_private_key.pem -out your_public.cer -days 3650
 *
```

Update Config.properties and remove the default values for content.cer.file and content.pem.file with the ones generaged above. Save the file and restart the service.

content.cer.file=your\_public.cer
content.pem.file=your\_private\_key\_pkcs8.pem

# JKS

Link Enterprise supports utilizing the JKS format for it's web services API. If you are not familiar with java key stores you can learn more about them [here](https://en.wikipedia.org/wiki/Java_KeyStore). In most cases inside a keystore a private key is accompanied by the corresponding public key certificate.

To view the certificates currently installed in your Link Enterprise middleware for web services you can view the JKS file using a key store viewer such as [https://keystore-explorer.org/](https://keystore-explorer.org/)

Once downloaded you can open the "keystore.jks" file using the password !DFLOW! to open the JKS file.&#x20;

The JKS file is located at **C:\\\<link enterprise-installation-directory>\config\certificates\keystore.jks**

For information on **trusted certificates** and importing them you can visit the following link [https://keystore-explorer.org/doc/5.4/trustedCertificates.html](https://keystore-explorer.org/doc/5.4/trustedCertificates.html)

For information on using a generated key-pair certificate you can visit the following link [http://keystore-explorer.org/doc/5.4/keyPairs.html#generate-a-key-pair](http://keystore-explorer.org/doc/5.4/keyPairs.html#generate-a-key-pair)

Alternatively you can utilize pem and cer files for encrypting the Link Enterprise web service.

Upon any changes of the JKS the service must be restarted.

[title] Working with the API Gateway and SCRUD Test Harness
[path] Agnostic Guides/Solution Guide/

The Gimmal Link API gateway provides the below functions:

1. Reporting of all Gimmal Link Enterprise processing, useful for a wide array of reporting and analysis
2. An entry point to the SCRUD (and PL) Test Harness
3. Load MDPro (metadata push) from an API gateway results set

Regardless of the function above, execute the Gimmal Link Enterprise API gateway via either:

1. Transaction /dflow/sys and choose the button API Gateway
2. Enter the transaction /dflow/gtw

Once a results set is displayed, you see all data columns left to right -**&#x20;these can be filtered** to provide a more focused view depending on what you are looking for/at by choosing the `"Views" menu path `when viewing the report results.

Within the both summary and detail level line, you can drill down on the columns indicated with a green checkbox to view further data, eg: viewing metadata, viewing the full return table, etc.&#x20;

Due to the volume of logging, it is recommended you routinely purge the gateway (primarily at the detail level) to keep table space to a minimum.  Refer to the section in this document "Utilities: Archiving Gateway Data".

# Selection Criteria

| Setting                  | Description                                                                                                                                                                                                                                                                                          | Sample Value(s)              |
| ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- |
| CMS Profile              | The CMS profile to filter on.                                                                                                                                                                                                                                                                        | Box\_1                       |
| CMS Tag                  | The CMS Use Tag to filter on.                                                                                                                                                                                                                                                                        | Gimmal Link Document Storage |
| CMS Repository Type      | The CMS repository type (FileNet P8, Documentum, or Box)                                                                                                                                                                                                                                             | BX                           |
| RFC Destination          | The RFC destination to filter on.                                                                                                                                                                                                                                                                    | ZDOCUFLOW\_CMSAPI\_01        |
| API Source               | The source of the process to filter on like viewing or choice list processing.                                                                                                                                                                                                                       | STORENEW                     |
| API Type                 | The underlying API call to filter on (search, create, read, update, delete, ping and load).  These calls are used together to form various processing so it may be interesting to focus the results on just a port of say the viewing process.                                                       | READ                         |
| SAP Key                  | The unique SAP ArchiveLink key for a particular object to filter on.                                                                                                                                                                                                                                 | 00000000013000               |
| DocType                  | The ArchiveLink document type to filter on.                                                                                                                                                                                                                                                          | ZCONTRACT                    |
| Call Date                | The date when the api call was made to filter on                                                                                                                                                                                                                                                     | 12/25/2020                   |
| Call Time                | The time when the api call was made to filter on                                                                                                                                                                                                                                                     | 00:00:00                     |
| Call User                | The originating user that made the API call.                                                                                                                                                                                                                                                         | GIMMAL                       |
| Call Return Message Type | The return that was associated with the API call which can either be an (E)rror, (S)uccess, (W)arning, or (I)nfo.                                                                                                                                                                                    | E                            |
| SAP User                 | The originating user that made the API call.                                                                                                                                                                                                                                                         | GIMMAL                       |
| CMS ID                   | The content management system document id number to filter on.                                                                                                                                                                                                                                       | 123456                       |
| Label                    | Migration and MDPro labels                                                                                                                                                                                                                                                                           |  Gimmal Link is great        |
| Hide System Ping         | If selected the ping API messages are not reported.                                                                                                                                                                                                                                                  |                              |
| Hide DocViewing          | If selected, and if Gimmal Link Enterprise DocManager or the TOAEX method is used for viewing content, then those entries are not reported.                                                                                                                                                          |                              |
| Hide Detail Entries      | If selected the detail API messages are not reported.  By default, the gateway summarizes API calls into 1 “summary” entry in the gateway for ease of reporting.  If you wish to see the underlying API calls (for example, the CREATE and UPDATE for a DocManager Storage request), click this off. |                              |
| Default Layout           | Optionally you can select a previously saved layout for the gateway dashboard before displaying the results.                                                                                                                                                                                         | DEFAULT                      |

# Reporting on Gimmal Link Enterprise Processing

All Gimmal Link Enterprise processing is logged at a summary and detail level within the API Gateway, and therefore reporting can done so for various reasons such as:

1. Viewing general activity
2. Troubleshooting and unhappy path scenerios
3. Exporting results for performance and load analysis
4. etc...

Familiarize yourself with the input selection criteria and drill down information available.  Also note that by default document viewing activity and "detailed entries" are hidden.  See input criteria above "Hide DocViewing" and "Hide Detail Entries" for more information and to see what additional data is available.

# SCRUD "Test" Harness

The SCRUD "Test" Harness allows the testing of basic SCRUD API's with no coding via the Gimmal Link Enterprise API Gateway.  The (S)earch, (C)reate, (R)ead, (U)pdate, and (D)elete API's that are executed are identical to those called when using the ABAP SCRUD API set (refer to the Gimmal Link Developers Guide) or the Gimmal Link Enterprise Connector test harness.

All Gimmal Link Enterprise processing leverages the same endpoint API calls and resulting calls in the Gimmal Link Enterprise middleware and therefore the test harness can provide you the ability to simulate all Gimmal Link Enterprise processing.

To enter the SCRUD "Test" Harness:

1. Execute the API gateway using input parameters that will return:
   1. a small dataset *or*
   2. NO dataset *or*&#x20;
   3. a dataset that contains the line(s) that you wish to use to action (or "re-process") using SCRUD functions
      1. "Re-process" in this context means that for Read and Update, you can choose an existing line in the API gateway report and the test harness will use those values as the input to the test harness (you have the option to change those values of course, but they can be handy to reduce entring all the data).
2. Choose the "Execute" menu path and choose the applicable SCRUD function.
   1. The ...."New" options bring up a new/empty SCRUD input screen
   2. The ...."Again" options require you to select a reported line (click once anywhere on the desired results screen on the line of choice) and basically pre-populates the SCRUD input screen with already utilized values in the case of (R)ead and (U)pdate.  Not to worry....these values can be changed prior to execution.

`**** NOTE **** Even though this is referred to as "test harness", all actions are processed fully to the CMS endpoint.  So albeit you can use this to test (Search/Read of course have no lasting effect other than load and performance), in the case of Create/Update/Delete, especially in a production environment, these actions must be approached with caution.`

# Loading MDPro

MDPro allows you to push metadata from SAP to your CMS endpoint, and can be executed directly *or&#x20;*&#x61;lternatively, you can "load" the input selection criteria from the API Gateway if you are reporting on (U)pdate API activity. &#x20;

&#x20;Refer to the section "Utilities: Metadata Push (MDPro) for more detail on how to run MDPro.


[title] Developers Guide
[path] Agnostic Guides/



::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/3xSWehIIfwUKO96kXvAq1_image.png" size="54" width="1210" height="462" position="center" showCaption="false"}

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/Sk1DFPg1rPxoJR3zfIQYN_image.png" size="54" width="1227" height="243" position="center" showCaption="false"}


[title] SAP Logon Pad Security Configuration
[path] Agnostic Guides/Solution Guide/DocManager/

By default, the SAP Logon Pad generates a pop-up warning each time a local file is accessed *or* a file is accessed from an external content management system. &#x20;

Due to the fact that Gimmal Link Enterprise DocManager does this...a LOT!, it is recommended that you disable this warning pop-up to avoid end-user frustration.

Follow the steps below to avoid this pop-up message:

- From the SAP GUI Logon Pad, choose:
- for Windows: Click on the top left icon and select Options or Preference (depending on your SAP GUI version):

::Image[]{src="https://archbee-doc-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/tdn3CooBurSPsEjdLruIx_Image%202020-07-13%20at%203.28%20PM.jpg" size="70" position="center" showCaption="false"}

- for Java: via the menu bar path SAPGUI->Preferences:

::Image[]{src="https://archbee-doc-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/Ki6X3w2yN57VpHZkPDBle_Image%202020-07-13%20at%203.29%20PM.jpg" size="56" position="center" showCaption="false"}

- Location the Security folder on the left, highlight Security Settings, and then choose "Open Security Configuration":

::Image[]{src="https://archbee-doc-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/autdGo4ZXs47vIPXsckJb_image.png" size="66" position="center" showCaption="false"}

- Change the default Action to "Allow", and click OK/Apply:

![](https://archbee-doc-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/RrdD-BR-JuFF1YnJRJ5Na_image.png)








[title] Create
[path] Agnostic Guides/Developers Guide/S3 Endpoints/

Link Enterprise provides a web service endpoint that will allow you to create a document.

The following endpoint allows the following capabilities.

1. Create a File
2. Create a File with metadata



:::ApiMethodV2
```json
{
  "tab": "examples",
  "url": "https://localhost:82/scrud/create",
  "name": "Create a File",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [],
    "bodyDataParameters": [
      {
        "kind": "required",
        "name": "selectedCMS",
        "type": "string",
        "description": "Value should always be set to \"s3\" to let Link Enterprise know which configured content system to search."
      },
      {
        "kind": "required",
        "name": "cmsName",
        "type": "string",
        "description": "Name of the s3 system configured in docuflow."
      },
      {
        "name": "fileLocation",
        "kind": "required",
        "type": "string",
        "description": "file location in local system that needs to be stored in s3.",
        "children": []
      },
      {
        "name": "location",
        "kind": "optional",
        "type": "string",
        "description": "S3 Bucket name where you want to create the document.",
        "children": []
      }
    ],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "VzFOzYGCxsoPbWzdx0yew",
        "code": "{\n\t\"docId\": [\n\t\t\"01KWRZNISOYOOXWOQBKJGIRKQBPPKM\",\n\t\tnull,\n\t\tnull\n\t],\n\t\"FolderIds\": [\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n        ...\n\t]\n}",
        "language": "200"
      },
      {
        "id": "VQkVXQFKVKg-X3yyvKCWC",
        "code": "{\n\t\"docId\": [\n\t\t\"123demotest\",\n\t\tnull,\n\t\tnull\n\t]\n}",
        "language": "500"
      }
    ],
    "selectedLanguageId": "VQkVXQFKVKg-X3yyvKCWC"
  },
  "examples": {
    "languages": [
      {
        "id": "CXPum3DlkEh5CtlxE_mJB",
        "code": "{\n   \"cmsName\":\"Name of the s3 system configured in Link Enterpri.\",  \n   \"fileLocation\":\"C:\\\\someFolder\\\\someFile.txt\",\n   \"selectedCMS\":\"s3\",\n      \"location\":\"S3 Bucket Name\"\n}",
        "language": "json"
      }
    ],
    "selectedLanguageId": "CXPum3DlkEh5CtlxE_mJB"
  },
  "description": "Create a file with no metadata",
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "autoGeneratedAnchorSlug": "create-a-file",
  "legacyHash": "LTZYKRF4XjDFS4dN8yyEx"
}
```
:::

:::ApiMethodV2
```json
{
  "tab": "examples",
  "url": "http://localhost:82/scrud/create",
  "name": "Create a File (metadata)",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [],
    "bodyDataParameters": [
      {
        "kind": "required",
        "name": "selectedCMS",
        "type": "string",
        "description": "Value should always be set to \"s3\" to let Link Enterprise know which configured content system to search."
      },
      {
        "kind": "required",
        "name": "cmsName",
        "type": "string",
        "description": "Name of the s3 system configured in docuflow."
      },
      {
        "kind": "required",
        "name": "mdArray",
        "type": "Array",
        "description": "A JSON array where each index is a json object with the keys \"md1\" and \"md2\". Where md1 is the column name, and md2 is the value to be inserted in that column."
      },
      {
        "name": "fileLocation",
        "kind": "required",
        "type": "string",
        "description": "file location in local system that needs to be stored in s3.",
        "children": []
      },
      {
        "name": "location",
        "kind": "optional",
        "type": "string",
        "description": "S3 Bucket name where you want to create the document.",
        "children": []
      }
    ],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "0iMkCF4s-yKchRAaXWJq3",
        "code": "{\n\t\"docId\": [\n\t\t\"123demotest\",\n\t\tnull,\n\t\tnull\n\t]\n}",
        "language": "200"
      },
      {
        "id": "Idjmyl-woaWfo4s5K3_bg",
        "code": "",
        "language": "500"
      }
    ],
    "selectedLanguageId": "0iMkCF4s-yKchRAaXWJq3"
  },
  "examples": {
    "languages": [
      {
        "id": "YYkmw0EaCT-jCk9-cGJJs",
        "code": "{\n   \"cmsName\":\"Name of the sharepoint system configured in Link Enterpri.\",\n\"fileLocation\":\"C:\\\\someFolder\\\\1GB.bin\",\n       \"mdArray\":[\n               {\n         \"md1\":\"contRep\",\n         \"md2\":\"K1\"\n      }\t\t \n         ],\n   \"selectedCMS\":\"s3\",\n      \"location\":\"S3 Bucket Name\"\n}",
        "language": "json"
      }
    ],
    "selectedLanguageId": "YYkmw0EaCT-jCk9-cGJJs"
  },
  "description": "Create a file with metadata",
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "autoGeneratedAnchorSlug": "create-a-file-metadata",
  "legacyHash": "jwu3C_6nkyZkTjqhuztuj"
}
```
:::




[title] CMS_API_LOAD
[path] Agnostic Guides/Developers Guide/Untitled/

| **Functionality&#x20;**                 | **Description**                                                                                                                                                                                     | **FileNet Notes** | **Documentum Notes** | **Box Notes** | **M365/SharePoint Notes** |
| --------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- | -------------------- | ------------- | ------------------------- |
| IV\_CMSPROFILE <br /><br /><br /><br /> | Required: Determines which configured CMS Profile in Link Enterprise SAP to utilize. Combination of CMS Profile and CMS Tag determine the API destination and thus load across an RFC destination.  |                   |                      |               |                           |
| IV\_CMSTAG <br /><br /><br /><br />     | Required: Determine which configured CMS Profile in Link Enterprise SAP to utilize. Combination of CMS Profile and CMS Tag determine the API destination and thus load across an RFC destination.   |                   |                      |               |                           |
| IV\_LOAD\_REPOSITORIES <br />           | Load list of repositories for a CMS tab and profile                                                                                                                                                 |                   |                      |               |                           |
| IV\_LOAD\_METADATA <br /><br />         | Load list of metadata available for each repository                                                                                                                                                 |                   |                      |               |                           |
| IV\_LOAD\_TYPESANDPROPS <br />          | Load list of types and their properties for each repository                                                                                                                                         |                   |                      |               |                           |
| IV\_LOAD\_DATABASE <br />               | Save results to Link Enterprise SAP tables                                                                                                                                                          |                   |                      |               |                           |
| IV\_LOAD\_INITIALIZE\_DB <br />         | When Load DB is specified, whether to clear existing Link Enterprise SAP tables to be loaded into                                                                                                   |                   |                      |               |                           |
| IV\_REPOSITORY <br />                   | Which repositories to load (Mandatory if Load Repositories is specified).                                                                                                                           |                   |                      |               |                           |
| ET\_REPOSITORIES <br />                 | Retrieved list of repositories.                                                                                                                                                                     |                   |                      |               |                           |
| ET\_METADATA\_STRUCT <br />             | Retrieved list of metadata                                                                                                                                                                          |                   |                      |               |                           |
| ET\_TYPESANDPROPS <br />                | Retrieved list of types and properties                                                                                                                                                              |                   |                      |               |                           |
| ET\_RETURN <br /><br />                 | Table that indicates a success of an error. The TYPE field will contain an ‘S’ or ‘E’ respectively and the MESSAGE field will contain information in the case of an error.                          |                   |                      |               |                           |
| CT\_CUSTOM                              | Future use                                                                                                                                                                                          |                   |                      |               |                           |




[title] DocManager
[path] Agnostic Guides/Developers Guide/Untitled/

The below BADI’s/enhancement spots are available within the DocManager Add-On: 

## /DFLOW/DOCMANGER\_CRM\_BO\_DETAIL

- BADI: /DFLOW/BADI\_DOCMGR\_CRM\_BO\_DTL
  - Allows custom manipulation of CRM Store New processing business object, sap\_object, doctype, object\_id, and filename details.

## /DFLOW/DOCMANGER\_SFO\_STATUS

- BADI: /DFLOW/BADI\_DOCMGR\_SFO\_STATUS
  - Allows custom determination of whether to enabled or disable the DocManager SFO menu option.
    - In the code, leverage the input parameter IS\_LPORB to determine the SAP Object and ArchiveLink document type
    - Set the parameter CV\_EP\_STATUS with one of the following values:
      - 0	Active
        1	Inactive
        2	Invisible
    - Note that you do NOT have to set to 0 - Active, as this is the default

## /DFLOW/DOCMANGER\_STOREANDLINK

- BADI: /DFLOW/BADI\_DOCMGR\_STORE\_LINK
  - Allows custom processing of the Store New process *prior* to the Content API “CREATE” call with iv\_caller 'B'.
    - One of the most common reasons to implement this BADI under iv\_caller 'B' is to create a folder structure during the document creation process.
    - To do so, you two options:
      - 1\. 1 parent with \<n> flat folders
      - 2\. All folders as nested folders: in this case, set the variable cv\_nested\_folders to "X".&#x20;
    - Note: you can pass the folder name each time you create a document.  Link Enterprise will first check to see if that name exists under the configured location/folder ID in the DocManager rule.  If it does not exist, it will create it.  If it exists, no action is performed for a folder creation.
  - When you create a multi level folder structure, you will be able to indicate which folder to store the document in.  By default, the document is stored in the top level sub-folder.  To place the content (if you are storing content, which is optional) in a folder other than the top parent folder, indicate this with a \~ tild.
    - Example of CT\_CUSTOM to create 4 folders, and place content in parent folder:
      - SAP\_4500017723
        SAP\_SubFolder1
        SubFolder2
        SubFolder3
      - or
      - \~SAP\_4500017723
        SAP\_SubFolder1
        SubFolder2
        SubFolder3
    - Example of CT\_CUSTOM to create 4 folders, and place content in lowest sub-folder:
      - SAP\_4500017723
        SAP\_SubFolder1
        SubFolder2
        \~SubFolder3
    - Below is an example to create 1 sub folder showing the ABAP debugger:

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/U8-Gf6rq0pQP9-QiSsHAw_image.png)

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/EZZxh15sVomjfjfRc00db_image.png" size="64" width="930" height="486" position="flex-start" showCaption="false"}



- Allows custom processing of the Store New process *after* the Content API “CREATE” call and also the ArchiveLink create link with iv\_caller 'A'.
  - This is called in both success and error occurrences which is indicated by the entries in the return table
  - In the case of success, IV\_ARC\_DOC\_ID will be populated
  - Some customers implement this to interpret the return table CT\_RETURN when creating folders.  In some scenarios the folder ID's created are useful to know.
  - When you use the IT\_CUSTOM folder to create folders, the return table will also pass back the folder ID's created.  The parent folder is indicated by a ! exclamation point, all sub-folders are indicated by a \~ tild.&#x20;
    - Example of return table when folders are created:  &#x20;
      !SAP\_4500017723,147811962292
      \~SAP\_SubFolder1,938382828
      \~SAP\_SubFolder2,938382829
      \~SAP\_SubFolder3,938382830    &#x20;


[title] Creating a DocManager Rule
[path] Agnostic Guides/Solution Guide/DocManager/

To create a DocManager Rule, enter transaction /dflow/sys and choose the menu path Configure->API Rules->DocManager.

| **Parameter**        | **Description**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | **Sample Value**              |
| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------- |
| Object Type          | The SAP Business Object that is relevant to this DocManager rule.  This and Document Type make up the unique rule key.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | BKPF                          |
| Document Type        | The ArchiveLink Document Type configured in OAC2 that is relevant to this DocManager rule.  This and SAP Business Object make up the unique rule key.<br />For link creation, and entry in OAC3 must exists for these two and the configured Cont.Rep.ID below (and in the Gimmal Link Enterprise Base product and OAC0).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | ZWFINVSP01                    |
| En. DM Store New SFO | Enable Services for Object (SFO or GOS) for SAP to CMS business document storage.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | True or False                 |
| En. DM Link Ex SFO   | Enable Link Existing document via drag and drop from CMS to SAP via OLE (future use)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | OFF                           |
| En. SL CS CB         | Enable SAPink Content Server Callback. If enabled, for Content Server "create": SAPLink will create CMSID\<->SAPDoc mapping and will execute metadata transfer or other docManager rules if configured.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |                               |
| En. SL CS Move       | Enable SAPink Content Server Callback file mover. If enabled, for Content Server "create": SAPLink will move from a Content Server dropzone (via a re-store) to a final location.  This allows for a full feature set even though a document is stored via content server, such as: folder creation, dynamic location, external BPM and task creation, etc....in short: everything that a document stored via ECM can do. (metadata and viewing is handled above with En. SL CS CB).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |                               |
| En. DM SL Cr. Link   | Enable SAPLink Create Link which automatically creates ArchiveLink links for CMS inbound to SAP processing requests.  This is used with CMS M.data Key or S.Link Cust Class/Method to determine the SAP key to link to (ie: must match exactly ArchiveLink object\_id).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | True or False                 |
| En. SL WFConnect     | Enable Workflow Connect to trigger SAP workflow code free (and fill workflow containers with metadata from CMS) for CMS inbound to SAP processing requests.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | True or False                 |
| En.  SL Custom       | Enable custom ABAP code for CMS inbound to SAP processing requests (code is contained in .Link Cust Class/Method).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | True or False                 |
| En. DM SL v1B        | Enable passing of CSM inbound to SAP processing requests to Gimmal Link V1.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | True or False                 |
| Allow SL NoCont.     | For repositories that support contentless records, enable this to allow these to send inbound to Gimmal Link SAP SAPLink requests                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | True or False                 |
| En. DM Publish       | Enable SAP to CMS outbound saving of message output data with metadata.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | True or False                 |
| En. DM Custom        | Enable custom API usage for SAP to CMS outbound processing (code is container in your own Z namespace ABAP).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | True or False                 |
| En. Migration        | Enable DocMigrator for this rule.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | True or False                 |
| Hide Att.List        | Hide this SAP Business Object/DocType combination on the Gimmal Link Enterprise SFO/GOS attachment list menu for existing links.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | True or False                 |
| Hide Act.List        | Hide the Activity List tab on the SFO/GOS attachment list menu to prevent showing activity for this SAP Business Object/DocType.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | True or False                 |
| CMS Profile          | Determines which configured CMS Profile in Gimmal Link SAP to utilize.  Combination of CMS Profile and CMS Tag determine the API destination and thus load across an RFC destination.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | Gimmal\_Demo                  |
| CMS Use Tag          | Determine which configured CMS Profile in Gimmal Link SAP to utilize.<br />Combination of CMS Profile and CMS Tag determine the API destination and thus load across an RFC destination.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Gimmal\_Demo                  |
| Cont.Rep.ID          | Determines which configured repository in Gimmal Link SAP to utilize for SAP to CMS processing.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | ZF                            |
| CMS Type             | Determines which CMS Types to use for Gimmal Link SAP to CMS outbound processing (typically Create).<br /> <br />FileNet:<br />-        document class<br />-        for create, defaults to the “Document” document class if unspecified. <br /> <br />Documentum:<br />-        object type<br />-        for create, defaults to the “dm\_document” class if unspecified.<br /> <br />Box:<br />-        metadata template<br />-        for create, defaults to creating a document with no metadata template if not specified.<br /> <br />SharePoint On-Prem/SharePoint M365:<br />-        content type<br />-        for create, defaults to creating a document of content type Document if not specified.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | accountsPayable               |
| CMS Location         | Specifies where the content resides for Gimmal Link Enterprise SAP to CMS outbound processing (typically Create).<br /> <br />\*\* CMS Location allows Environment Variable usage.  In short these allow for different values based on your SAP system id (ex: DEV / QA1 / PRD).  Please refer to the Gimmal Link Enterprise Installation and Base Configuration Guide under “Environment Variables” for detail on how to configure and utilize. \*\*<br /> <br />FileNet:<br />-        if unspecified documents are left unfiled. <br /> <br />Documentum:<br />-        If unspecified documents are stored in root of the user’s cabinet.<br /> <br />Box:<br />-        Best practice: folder number/id for the exact folder location can be specified<br />-        If unspecified documents are stored in the configured root folder of the Enterprise Connector<br />-        relative folder names can be used with a / being the root.  If a root folder is configured for the Box CMS in the Enterprise connector all relative folder locations will be relative to the root folder configured.<br />-        Relative folder names are not recommended for performance reasons.<br /> <br />SharePoint On-Prem/SharePoint M365:<br />-        optional sub-site URL (added on to repository URL) with mandatory document library specified last<br />  | 5523993                       |
| Own Folder           | Determines whether a file is stored in the CMS Location (not enabled), versus when enabled the Enterprise Connector will check if there is a folder with the name “SAP\_\<sapkey>”.  <br /> <br />If there is one (as a subfolder to CMS Location), the file is stored there.  <br /> <br />Otherwise it will create one automatically and store the file there.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | True or False                 |
| Link Folder          | If Own Folder is enabled, whether to create an ArchiveLink link to the folder vs. the file.<br /> <br />Linking to a folder, when viewed from SAP, will show the folder view and all of it’s contents.<br /> <br />Linking to a file will bring up the Box preview of the file being viewed.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | True or False                 |
| CMS M.data Key       | For inbound from CMS to SAP processing requests for “En. DM SL Cr. Link” (ie: automatic link creation), if an SAP key does not need to be formatted or retrieve and is an exact match in your CMS system to the ArchiveLink key required (with formatting/padding, etc..), you can specify that property name here.  <br /> <br />Otherwise, you must use a S.Link Cust Class/Method to determine the SAP key to link to                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | InvoiceSAPKey                 |
| S.Link Cust Class    | For inbound from CMS to SAP processing requests for “En. DM SL Cr. Link” (ie: automatic link creation), if an SAP key sneed to be formatted or retrieve or is NOT an exact match in your CMS system, you can compile the SAPKey here (either with the metatata or SAP lookup).  <br /> <br />Otherwise, you must specify the key in the CMS M.data Key field to determine the SAP key to link to.<br /> <br />Refer to the Gimmal Link Enterprise Developers Guide for more information on how to program these class/methods.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | /DFLOW/CL\_DOCMANAGER\_HELPER |
| S.Link Cust Method   | See above “S.Link Cust Class”                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | SAPLINK\_EXAMPLE              |
| En. MD Trans.Map     | Applicable to both inbound and outbound processing patterns, this <u>no-code option </u>generates metadata mapping from SAP to your CMS system<br /> <br />If enabled, a metadata map must exist under the Configure->Metadata mapping on the Gimmal Link SAP System Dashboard.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | True or False                 |
| En. MD Trans.Cus.    | Applicable to both inbound and outbound processing patterns, this CODE option generates metadata mapping from SAP to your CMS system<br /> <br />If enabled, the below metadata class/method must be specified.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | True or False                 |
| Metadata Class       | Refer to the Gimmal Link Enterprise Developers Guide for more information on how to program these class/methods.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | /DFLOW/CL\_DOCMANAGER\_HELPER |
| Metadata Method      | See above “Metadata Class”.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | METADATA\_EXAMPLE             |
| Description          | English description for cosmetic reasons on the overall System                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | “FI Invoice Processing”       |


[title] Configuration
[path] Agnostic Guides/Solution Guide/Untitled/

There are three levels of configuration for DocMigrator:

1. SAP ArchiveLink Document Class to Mime-type Mappings - these entries are in the table TOADD and contain the file extension (document class) to mime-type mapping.  This is required for all file types to be migrated regardless of their source.&#x20;
2. DocMigrator - source repository id setup and mapping, doctype mapping, and source metadata mapping.
3. DocManager Rule - all configuration needed to store content from SAP to your target repository such as location, metadata, etc.  *All business objects and content must be configured in DocManager.*
4. If you are using flat files as input, create a logical filename "ZDOCUFLOW\_MIGRATOR\_SOURCE\_FILES"
5. If you are export file copies, create a logical filename "ZDOCUFLOW\_MIGRATOR\_EXPORT\_COPY\_FILES"


## SAP ArchiveLink Document Class to Mime-Type Mappings

SAP comes with pre-populated mappings.  If a combination is missing in your TOADD table, you can add new entries via the menu path:

SPRO->SAP Reference IMG->SAP Net weaver->Application Server-> Basic Services->Archive Links->Basic Customizing-> Edit Document Classes

## DocMigrator

Locate the DocMigrator config under the Gimmal Link System Dashboard (txn /dflow/sys) and the menu path Configure->DocMigrator

- <u>Source Connectivity</u>
  - Not required for SAP database attachements or notes
  - Choose between a Gimmal Link Enterprise endpoint, a non-Gimmal Link ArchiveLink content server, the SAP database, or File input for each repository ID that will be used in the Load Table
  - Provided CMS Use Tag.  For non-Gimmal Link Enterprise endpoints, this is for description purposes only. For Gimmal Link Enterprise endpoints, this will be used along with standard Gimmal Link configuration to determine the RFC destination to perform the READ from.&#x20;
- <u>Repository Mapping</u>
  - Not required for SAP database attachments or notes
    - This is required in all cases except where you are reading from the same source Gimmal Link repository as the target, or if you have/will populate the Load table from an ABAP class/method or file method (as those determine the target repository ID).
    - It is strongly recommended not to sharing repository IDs for different repository type.
- <u>DocType Mapping</u>
  - Not required for SAP database attachments or notes
  - Mapping of document types is optional in all cases.
  - Typically only recommended if SAP security is to be different between source and target content, or if you want to merge document types.
  - Remember that new document types typically requires updated SAP Security roles/profiles.
  - Wildcards (\*) can be used in the Source Object Type and Source Document Type columns and take  second precedence over an exact matching entry.&#x20;
- <u>Original MD Map</u>
  - Not required for SAP database attachments or notes
  - If metadata is supported from the source content, mapping of original/source metadata names to new target metadata field/property names can be done.
  - If only new metadata from SAP is being sent to the target system as part of the migration, this mapping is not required.
  - Wildcards (\*) can be used in the Source Object Type and Source Document Type columns and take  second precedence over an exact matching entry.&#x20;
- <u>SAP DB as Source Map</u>
  - Required *only* for SAP database attachments or notes
  - For all SAP database attachments or notes you must specify a target repository ID and doctype per SAP Object.
  - A wildcard (\*) can be used in the Source Object Type column and take second precedence over an exact matching entry.&#x20;

## DocManager Rule

Locate the DocManager config under the Gimmal Link Enterprise System Dashboard (txn /dflow/sys) and the menu path Configure->API Rules->Document Manager.

Since DocMigrator utilizes DocManager for all content to be migrated to determine location, metadata, etc, a DocManager rule must exist for every business object and doctype combination to be migrated.

For detail on this configuration, refer to the DocManager section of the Gimmal Link Enterprise Solution Guide.

## Logical Filename: Source Files

Create the logical filename "ZGIMMALLINK\_MIGRATOR\_SOURCE\_FILES" via transaction FILE.  Assign to a logical path of the same name and configure that logical path to the directory to save the log files.  The physical path must have the filename placeholder as \<FILENAME>.  Example below:

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/pFfkMactpJpq9qsSPVXXJ_image.png)

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/bYX3UpT5mC_3BDikIszcx_image.png)

## Logical Filename: Export Copy

Create the logical filename "ZGIMMAL\_MIGRATOR\_EXPORT\_COPY\_FILES" via transaction FILE.  Assign to a logical path of the same name and configure that logical path to the directory to save the log files.  The physical path must have the filename placeholder as .  Use the examples above as guidance if necessary.





﻿


[title] Execution: Load
[path] Agnostic Guides/Solution Guide/Untitled/

Loading the migration table sets the stage for:

- what content is to be migrated and from what source (a Gimmal Link endpoint, file, SAP content server, SAP DB)
- any SAP repository ID or doctype mapping (via configuration)&#x20;
- where the content is to be migrated to (ie: what Gimmal Link endpoint repository ID)

This can be done using 3 separate "Source" methods:

1. ArchiveLink Links
2. .CSV file containing file references and required ArchiveLink data
3. Custom ABAP Class-Method
4. Content stored in your SAP database

Regardless of the method used, it is highly recommended to enter a useful descriptor/tag that identifies this migration run.

You can run the load process in test mode without making any chances to the load table.

The results of the Load phase are displayed on the screen according to the option "Display Results in ALV" checkbox.  If this option is chosen, all entries are displayed in the ALV report format, else a simple message indicating the number of entries loaded successfully, with info message, or errors is displayed.

If ALV is chosen, the header will display information as to the breakdown of entries loaded successfully, with info message, or errors.

`Be careful when choosing "Display Results in ALV" as for large datasets this will significantly increase runtime and potential SAP system memory usage and timeouts.  It is therefore suggested to use the "Display" mode of the migrator afterwards instead of displaying the results in ALV format. `

Clicking on the source or target hotspot/hyperlink in the ALV allows you to view the image.

The DocManager rule and/or metadata mapping *does not happen* at the Load stage.  This is done in the Migrate phase.

No additional flags are set at this stage, as the Load phase creates the entries in the migration table. &#x20;

## ArchiveLink Links

This method relies entirely on existing link entries in your ArchiveLink link tables (TOA01, etc).

1. Specify the parameters in the section "Source ArchiveLink Selection Criteria" to determine which entries will be read by the DocMigrator
2. Each entry found will equate to an entry in the load table
3. Before writing the entry to the load table, DocMigrator reads the DocMigrator configuration to determine repository ID and doctype mapping

The source of this content must be accessible through an ArchiveLink content server or equivalent to be read.

## .CSV File

This method relies entirely on an input .CSV file that you compile yourself to add entries to the Migration table.  The source type of these entries are data files only (ie: *you cannot* use this method to load ArchiveLink link entries into the migration table).

The .CSV file must follow the below columns, in order:

- sap\_object
- object\_id
- archiv\_id
- arc\_doc\_id
- ar\_object
- ar\_date
- del\_date (optional)
- reserve (this must align with your viewing platform, thus either \* or file extension)
- source file path
- source file name

These files must be accessible by the DocMigrator program, be sure to take into consideration if the migration run will be executed in the background (and therefore the files must be accessible by the SAP server).

## Custom ABAP Class-Method

This method relies entirely on an ABAP class-method that you can develop yourself to add entries to the Migration table, which takes the form of ArchiveLink links. &#x20;

Refer to /DFLOW/CL\_MIGRATOR\_HELPER=>GET\_ABAP\_LINKS\_EXAMPLE for an example of this logic.

The custom class method MUST set the following:

ArchiveLink Source:

- EV\_SOURCE\_TYPE:
  - \= "A" for ArchiveLink content server
  - \= "D" for Gimmal Link ECM&#x20;
- sap\_object
- object\_id
- archiv\_id
- arc\_doc\_id
- ar\_object
- ar\_date
- del\_date (optional)
- reserve (this must align with your viewing platform, thus either \* or file extension)

## SAP Database

With the information available to us for this as a source being limited, this method relies on specifying and SAP Business Object and the corresponding object ID "range". &#x20;

Not that as part of the LOAD phase, unlike the other sources, mime-type and therefore extension (reserve) will not be known until migration is executed (or even in validation mode).

An example would be "EQUI" for Equipment, and then specifying the object ID "range", ie: the equipement numbers that you like to migrate the content for.

Select either/both Attachments or Notes options.  The SAP Object and Object ID (the SAP Key) are optional.  If you are unsure of what is in your database, you can run this wide open to see!




[title] Utilities: Cleaning Gateway Errors
[path] Agnostic Guides/Solution Guide/

This function allows you to maintain (ie: delete) errors in the Gimmal Link Enterprise API gateway that  may have subsequently been processed successfully.  This allows the API gateway to be more "clean" and have less false negatives as its history grows and as corrections are made. &#x20;

We recommend you run the program monthly, with the input variant set for a date equal to + 1 day since the last time it was ran, or, aligned with how often you run the API gateway to use the errors to trigger a resolution action.

To execute a gateway error clean, enter transaction /dflow/sys and choose the menu path Configure->Execute->Clean Gateway Errors.

# Selection Criteria

| Setting             | Description                                                                                           | Sample Value(s) |
| ------------------- | ----------------------------------------------------------------------------------------------------- | --------------- |
| CMS Profile         | The content management system profile to limit cleaning on.                                           |                 |
| CMS Use Tag         | The use tag to limit cleaning on.                                                                     |                 |
| CMS Repository Type | The content management system repository type to limit cleaning on.                                   |                 |
| CMS RFC Destination | The remote function call (RFC) destination to limit cleaning on.                                      |                 |
| API Source          | The source of the api calls to limit cleaning on.                                                     | SAPLINK         |
| API Type            | The particular api call type to limit cleaning on.                                                    |                 |
| SAP object ID       | The particular SAP ArchiveLink object keys to limit cleaning on.                                      |                 |
| Document Type       | The SAP ArchiveLink document types to limit cleaning on.                                              |                 |
| Date                | The date range to limit cleaning to.                                                                  |                 |
| Time                | The time range to limit cleaning on.                                                                  |                 |
| User Name           | The SAP user name to limit cleaning on.                                                               |                 |
| CMS SAP User        | The SAP user name to limit cleaning on.                                                               |                 |
| CMS Rep./Store      | The content management system repository or object store to limit cleaning on.                        |                 |
| CMS ID              | The content management system id(s) to limit cleaning on.                                             |                 |
| CMS Filename        | The content management system filename(s) to limit cleaning on.                                       |                 |
| CMS Type            | The content management system document class, object type or metadata template to limit cleaning on.  |                 |
| Test Only           | If selected the cleaning isn’t actually performed and the process is just simulated.                  |                 |

# Creating and Scheduling Background Job

1. Consult with your SAP Basis team to create the job using the program “/DFLOW/ZCMSAPI\_GTW\_ERROR\_CLEAN”
2. Create a variant for the above program using a dynamic date selection per the below (as an example)
   1. Select “Save as Variant…” from the “Goto” menu under the “Variants“.
   2. Adjust the date range by Selecting “X\:Dynamic Date Calculation (System Date)” for the Selection variable of the “Date” Field name.
   3. Configure the “Name of Variable (Input Only Using F4)” to select the particular date range to archive.&#x20;
      1. We suggest selecting I for include (the I in the I/E column) with the LT (for less than) option the “Current date +/- ??? days” selection from the choices.
   4. Enter 31- for the ??? value.
   5. This cleans errors that have been processed successfully older than 31 days.&#x20;


[title] Utilities: Attachment List Dashboard
[path] Agnostic Guides/Solution Guide/

This is a simple report on ArchiveLink links with an enhanced selection criteria across all link tables, that also allows for adjustment of individual link entries.

This utility differs from the Link Maintenance utility in that it only allows for single links to be maintained/deleted versus the Link Maintenance dashboard allows for mass deletion.

To execute the attachment list report, enter transaction /dflow/sys and choose the menu path Configure->Dashboards->Attachment List.

Make sure to limit the search results by at least an SAP Object or AR Object(Doctype) to help narrow down the results.

The toolbar that runs along the top of the attachment list dashboard can allow you to further refine your view of the attachment list table.  Included in the toolbar is some additional functionality like the ability to customize layouts and delete link entries.

| Setting             | Description                                                                                                                                                                                            | Sample Value(s) |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------- |
| SAP Object          | The SAP business object in particular to filter the ArchiveLink entries on.                                                                                                                            | BUS2014         |
| Object ID           | A particular unique object id to filter the ArchiveLink entries on.  This unique object id will only be unique to a particular SAP business object so make sure to include additional filter criteria. | 0000000001      |
| Archive ID          | The ArchiveLink repository to filter the ArchiveLink entries on.                                                                                                                                       | ZC              |
| CMS ID              | The content management system document id in particular to filter the ArchiveLink entries on.                                                                                                          | 1232456         |
| AR Object (Doctype) | The ArchiveLink document type to filter the ArchiveLink entries on.                                                                                                                                    | ZCONTRACT       |
| Archive Date        | The ArchiveLink archive date to filter the ArchiveLink entries on.                                                                                                                                     | 12/25/2020      |
| Reserve             | The ArchiveLink reserve entry to filter the ArchiveLink entries on.                                                                                                                                    |                 |
| Layout              | Optionally you can select a previously saved layout for the gateway dashboard before displaying the results.                                                                                           | DEFAULT         |


[title] Upload
[path] Agnostic Guides/Developers Guide/FileNet Endpoints/

Link Enterprise provides an endpoint to upload files to. This is strictly for uploading files, and if you require metadata to be transferred following up with an update endpoint call is required.

:::ApiMethodV2
```json
{
  "tab": "request",
  "url": "https://localhost:82/scrud/upload",
  "name": "Upload",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [
      {
        "kind": "required",
        "name": "cmsName",
        "type": "string",
        "description": "Name of the content management system configured in Link Enterprise."
      },
      {
        "kind": "required",
        "name": "location",
        "type": "String",
        "description": "Folder id where Link Enterprise  is uploading the file. (box folder id) else root folder used."
      },
      {
        "kind": "optional",
        "name": "Content-Type",
        "type": "string",
        "description": "multipart/form-data; boundary=(insert boundary)\n\nExample is included in code examples"
      },
      {
        "name": "repository",
        "kind": "required",
        "type": "string",
        "description": "Filenet repository where the file exists",
        "children": []
      },
      {
        "name": "domain",
        "kind": "required",
        "type": "string",
        "description": "Filenet domain where the file exists",
        "children": []
      }
    ],
    "bodyDataParameters": [],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "81EVM7WXdGrYfDwshYJW6",
        "code": "SUCCESS EXAMPLE\n{\n\t\"id\": \"{75C8F438-A625-C99B-848E-8AD7C2F00000}\",\n\t\"result\": \"success\"\n}\n\nFAILED EXAMPLE\n{\n\t\"id\": null.\n\t\"result\": \"fail\"\n}",
        "language": "200"
      },
      {
        "id": "6U9gw-gSaolDqS3WcFi9t",
        "code": "",
        "language": "500"
      }
    ],
    "selectedLanguageId": "81EVM7WXdGrYfDwshYJW6"
  },
  "examples": {
    "languages": [
      {
        "id": "xY6nLYt-BP3jeEy_-jkb3",
        "code": "POST /scrud/upload HTTP/1.1\nCookie: vertx-web.session=135e85c919328477ec243e270a692c4d\nUser-Agent: insomnia/2023.5.8\nCmsname: FN_TEST\nLocation: /TestFilenet\nAccept: */*\nRepository: ABC_OS1\nDomain: ABC_P8Dom\nAuthorization: Basic YWRtaW46YWRtaW4=\nContent-Type: multipart/form-data; boundary=---011000010111000001101001\nHost: localhost:82\nContent-Length: 172\n\n-----011000010111000001101001\nContent-Disposition: form-data; name=\"\"; filename=\"POSPaper COD-04.pdf\"\nContent-Type: application/pdf\n\n\n-----011000010111000001101001--",
        "language": "none"
      }
    ],
    "selectedLanguageId": "xY6nLYt-BP3jeEy_-jkb3"
  },
  "description": "Upload a file using HTTP multi part form data. HTTP headers specifying repository, location, domain and the content system named must be specified.",
  "currentNewParameter": {
    "label": "Header Parameter",
    "value": "headerParameters"
  },
  "autoGeneratedAnchorSlug": "upload",
  "legacyHash": "SYWoaQaa1CeAs6I_xHZZn"
}
```
:::






[title] Solution Guide
[path] Agnostic Guides/



::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/QamDSdA_HA5nxKzgdxmrh_image.png" size="54" width="1210" height="462" position="center" showCaption="false"}

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/1ir6CI5Lz1y4l0Zuns-3k_image.png" size="54" width="1227" height="243" position="center" showCaption="false"}

&#x20;        &#x20;




[title] Class/Method Plug-In’s
[path] Agnostic Guides/Developers Guide/

Class/method ABAP development may be necessary in the below Gimmal Link Enterprise processing scenarios: 

1. DocManager/DocMigrator/Publisher: Metadata maps for sending SAP data to your CMS
2. DocManager: Custom processing during Inbound Processing/SAPLink
3. DocManager: SAPKey determination during Inbound Processing/SAPLink
4. DocMigrator: Custom source link determination and compilation
5. Publisher: Triggering storing and linking via docManager to your CMS

Each one of these is optional within their respective Gimmal Link Enterprise configuration. Refer to the Gimmal Link Enterprise Solution Guide (separate) for more information on this configuration. 







[title] User Permissions
[path] Agnostic Guides/Developers Guide/Link Enterprise SCRUD Web Services/

Every user created in Link Enterprise has the ability to be restricted to different parts of the product. Currently, Link Enterprise allows users to the following:

&#x20; 1\) Enable/disable users access to admin interface.
&#x20; 2\) Enable/disable user access to web services.

To add or remove users visit the admin interface. Click on the users menu item on the left navigation panel. Click add row, and enter the details of the user. Hit save to complete creating the user.

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/yf8Nop6mYzrbUw9X0K0gH_image.png)






[title] Create
[path] Agnostic Guides/Developers Guide/Box Endpoints/

Link Enterprise provides a web service endpoint that will allow you to create a document or folder.

The following endpoint allows the following capabilities.

1. Create a File
2. Create a File with metadata
3. Create a folder
4. Create a folder with metadata
5. Create a nested folder structure (with parent obtaining metadata)
6. Create a single level tree structure (with parent obtaining metadata)



:::ApiMethodV2
```json
{
  "tab": "examples",
  "url": "https://localhost:82/scrud/create",
  "name": "Create a File",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [],
    "bodyDataParameters": [
      {
        "kind": "required",
        "name": "type",
        "type": "string",
        "description": "Metdata template name in box."
      },
      {
        "kind": "required",
        "name": "location",
        "type": "string",
        "description": "Folder id where the file will be located in box."
      },
      {
        "kind": "required",
        "name": "selectedCMS",
        "type": "string",
        "description": "Value should always be set to \"box\" to let Link Enterprise know which configured content system to search."
      },
      {
        "kind": "required",
        "name": "cmsName",
        "type": "string",
        "description": "Name of the box system configured in docuflow."
      }
    ],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "VzFOzYGCxsoPbWzdx0yew",
        "code": "",
        "language": "200"
      },
      {
        "id": "VQkVXQFKVKg-X3yyvKCWC",
        "code": "",
        "language": "500"
      }
    ],
    "selectedLanguageId": "VzFOzYGCxsoPbWzdx0yew"
  },
  "examples": {
    "languages": [
      {
        "id": "CXPum3DlkEh5CtlxE_mJB",
        "code": "{   \r\n    \"cmsName\": \"Name of the box system configured in Link Enterpri.\",\r\n    \"fileLocation\": \"C:\\\\someFolder\\\\someFile.txt\",\r\n    \"type\":null,\r\n    \"location\":\"Insert unique box folder id\",\r\n    \"selectedCMS\":\"box\"\r\n}",
        "language": "json"
      }
    ],
    "selectedLanguageId": "CXPum3DlkEh5CtlxE_mJB"
  },
  "description": "Create a file with no metadata",
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "autoGeneratedAnchorSlug": "create-a-file",
  "legacyHash": "LTZYKRF4XjDFS4dN8yyEx"
}
```
:::

:::ApiMethodV2
```json
{
  "tab": "examples",
  "url": "http://localhost:82/scrud/create",
  "name": "Create a File (metadata)",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [],
    "bodyDataParameters": [
      {
        "kind": "required",
        "name": "type",
        "type": "string",
        "description": "Metdata template name in box."
      },
      {
        "kind": "required",
        "name": "location",
        "type": "string",
        "description": "Folder id where the file will be located in box."
      },
      {
        "kind": "required",
        "name": "selectedCMS",
        "type": "string",
        "description": "Value should always be set to \"box\" to let Link Enterprise know which configured content system to search."
      },
      {
        "kind": "required",
        "name": "cmsName",
        "type": "string",
        "description": "Name of the box system configured in docuflow."
      },
      {
        "kind": "required",
        "name": "mdArray",
        "type": "Array",
        "description": "A JSON array where each index is a json object with the keys \"md1\" and \"md2\". Where md1 is the column name, and md2 is the value to be inserted in that column."
      }
    ],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "0iMkCF4s-yKchRAaXWJq3",
        "code": "",
        "language": "200"
      },
      {
        "id": "Idjmyl-woaWfo4s5K3_bg",
        "code": "",
        "language": "500"
      }
    ],
    "selectedLanguageId": "0iMkCF4s-yKchRAaXWJq3"
  },
  "examples": {
    "languages": [
      {
        "id": "YYkmw0EaCT-jCk9-cGJJs",
        "code": "{   \r\n    \"cmsName\": \"Name of the box system configured in Link Enterprise.\",\r\n    \"fileLocation\": \"C:\\\\someFolder\\\\someFile.txt\",\r\n    \"type\":\"insertMetaDataTemplate\",\r\n    \"location\":\"Insert unique box folder id\",\r\n    \"selectedCMS\":\"box\",\r\n    \"mdArray\":[\r\n      {\r\n         \"md1\":\"insertColumnName\",\r\n         \"md2\":\"insertValue\"\r\n      },\r\n      {\r\n         \"md1\":\"someVendor\",\r\n         \"md2\":\"Gimmal Inc\"\r\n      }\r\n\t\t ]\r\n}",
        "language": "json"
      }
    ],
    "selectedLanguageId": "YYkmw0EaCT-jCk9-cGJJs"
  },
  "description": "Create a file with metadata",
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "autoGeneratedAnchorSlug": "create-a-file-metadata",
  "legacyHash": "jwu3C_6nkyZkTjqhuztuj"
}
```
:::

:::ApiMethodV2
```json
{
  "tab": "examples",
  "url": "https://localhost:82/scrud/create",
  "name": "Create a Folder",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [],
    "bodyDataParameters": [
      {
        "kind": "required",
        "name": "type",
        "type": "string",
        "description": "Metdata template name in box."
      },
      {
        "kind": "required",
        "name": "location",
        "type": "string",
        "description": "Folder id where the file will be located in box."
      },
      {
        "kind": "required",
        "name": "selectedCMS",
        "type": "string",
        "description": "Value should always be set to \"box\" to let Link Enterprise know which configured content system to search."
      },
      {
        "kind": "required",
        "name": "cmsName",
        "type": "string",
        "description": "Name of the box system configured in Link Enterprise."
      },
      {
        "kind": "required",
        "name": "custom1",
        "type": "string",
        "description": "Name of the folder you would like to create."
      }
    ],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "59h-A2k0zONjIeSYsWRxE",
        "code": "",
        "language": "200"
      },
      {
        "id": "-CFsYXvO_LjjekeThBmeD",
        "code": "",
        "language": "500"
      }
    ],
    "selectedLanguageId": "59h-A2k0zONjIeSYsWRxE"
  },
  "examples": {
    "languages": [
      {
        "id": "r7afh-lQ7ej9Kyrx6_sDW",
        "code": "{   \r\n    \"cmsName\": \"Name of the box system configured in Link Enterprise.\",\r\n    \"type\":null,\r\n    \"location\":\"Insert unique box folder id\",\r\n    \"selectedCMS\":\"box\",\r\n    \"custom1\":\"insert Folder Name\"\r\n}",
        "language": "json"
      }
    ],
    "selectedLanguageId": "r7afh-lQ7ej9Kyrx6_sDW"
  },
  "description": "Create a folder with no metadata",
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "autoGeneratedAnchorSlug": "create-a-folder",
  "legacyHash": "wIxsI8djIx6QeX1UJGwdT"
}
```
:::

:::ApiMethodV2
```json
{
  "tab": "examples",
  "url": "https://localhost:82/scrud/create",
  "name": "Create a Folder (metadata)",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [],
    "bodyDataParameters": [
      {
        "kind": "required",
        "name": "type",
        "type": "string",
        "description": "Metdata template name in box."
      },
      {
        "kind": "required",
        "name": "location",
        "type": "string",
        "description": "Folder id where the file will be located in box."
      },
      {
        "kind": "required",
        "name": "selectedCMS",
        "type": "string",
        "description": "Value should always be set to \"box\" to let Link Enterprise know which configured content system to search."
      },
      {
        "kind": "required",
        "name": "cmsName",
        "type": "string",
        "description": "Name of the box system configured in Link Enterprise."
      },
      {
        "kind": "required",
        "name": "custom1",
        "type": "string",
        "description": "Name of the folder you would like to create."
      },
      {
        "kind": "required",
        "name": "mdArray",
        "type": "Array",
        "description": "A JSON array where each index is a json object with the keys \"md1\" and \"md2\". Where md1 is the column name, and md2 is the value to be inserted in that column."
      },
      {
        "kind": "required",
        "name": "metaDataFolderFlag",
        "type": "Boolean",
        "description": "true if setting metadata for folders\nfalse if not setting metadata for folders"
      }
    ],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "ecFzJ0cYeEURQk6_xyi-w",
        "code": "",
        "language": "200"
      },
      {
        "id": "lxCnVEL7Gh2NxD-xcILS3",
        "code": "",
        "language": "500"
      }
    ],
    "selectedLanguageId": "ecFzJ0cYeEURQk6_xyi-w"
  },
  "examples": {
    "languages": [
      {
        "id": "9wXKSoMG0n4VQQCVfQNcy",
        "code": "{   \r\n    \"cmsName\": \"Name of the box system configured in .\",\r\n    \"fileLocation\": \"C:\\\\someFolder\\\\someFile.txt\",\r\n    \"type\":\"insertMetaDataTemplate\",\r\n    \"location\":\"Insert unique box folder id\",\r\n    \"selectedCMS\":\"box\",\r\n    \"mdArray\":[\r\n      {\r\n         \"md1\":\"insertColumnName\",\r\n         \"md2\":\"insertValue\"\r\n      },\r\n      {\r\n         \"md1\":\"someVendor\",\r\n         \"md2\":\"Gimmal Inc\"\r\n      }\r\n\t\t ],\r\n       \"custom1\":\"folderName\",\r\n      \"metaDataFolderFlag\":true\r\n}",
        "language": "json"
      }
    ],
    "selectedLanguageId": "9wXKSoMG0n4VQQCVfQNcy"
  },
  "description": "Create a Folder with metadata",
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "autoGeneratedAnchorSlug": "create-a-folder-metadata",
  "legacyHash": "Jv0MnAE3164FpSznGPg08"
}
```
:::

:::ApiMethodV2
```json
{
  "tab": "examples",
  "url": "https://localhost:82/scrud/create",
  "name": "Create a Folder (metadata and nested)",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [],
    "bodyDataParameters": [
      {
        "kind": "required",
        "name": "type",
        "type": "string",
        "description": "Metdata template name in box."
      },
      {
        "kind": "required",
        "name": "location",
        "type": "string",
        "description": "Folder id where the file will be located in box."
      },
      {
        "kind": "required",
        "name": "selectedCMS",
        "type": "string",
        "description": "Value should always be set to \"box\" to let Link Enterprise know which configured content system to search."
      },
      {
        "kind": "required",
        "name": "cmsName",
        "type": "string",
        "description": "Name of the box system configured in Link Enterprise."
      },
      {
        "kind": "required",
        "name": "custom1",
        "type": "string",
        "description": "Name of the folder you would like to create. If using nested the delimiter is #DFLOW#"
      },
      {
        "kind": "required",
        "name": "mdArray",
        "type": "Array",
        "description": "A JSON array where each index is a json object with the keys \"md1\" and \"md2\". Where md1 is the column name, and md2 is the value to be inserted in that column."
      },
      {
        "kind": "required",
        "name": "enableNested",
        "type": "Boolean",
        "description": "true (if wanting each folder to have one child in a nested manner)\n\nfalse (if all children are located under the first folder name)"
      },
      {
        "kind": "required",
        "name": "metaDataFolderFlag",
        "type": "Boolean",
        "description": "true if setting metadata for folders\nfalse if not setting metadata for folders"
      }
    ],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "1P4dxmaXpscwhcaiJsF-W",
        "code": "",
        "language": "200"
      },
      {
        "id": "YFJvJP7JqIuUdivzIep9B",
        "code": "",
        "language": "500"
      }
    ],
    "selectedLanguageId": "1P4dxmaXpscwhcaiJsF-W"
  },
  "examples": {
    "languages": [
      {
        "id": "ueWIFObFukX7uxGDL9XBi",
        "code": "{   \r\n    \"cmsName\": \"Name of the box system configured in Link Enterprise.\",\r\n    \"fileLocation\": \"C:\\\\someFolder\\\\someFile.txt\",\r\n    \"type\":\"insertMetaDataTemplate\",\r\n    \"location\":\"Insert unique box folder id\",\r\n    \"selectedCMS\":\"box\",\r\n    \"mdArray\":[\r\n      {\r\n         \"md1\":\"insertColumnName\",\r\n         \"md2\":\"insertValue\"\r\n      },\r\n      {\r\n         \"md1\":\"someVendor\",\r\n         \"md2\":\"Gimmal Inc\"\r\n      }\r\n\t\t ],\r\n       \"custom1\":\"folderName#DFLOW#folderName2#DFLOW#folderName3\",\r\n      \"metaDataFolderFlag\":true,\r\n      \"enableNested\":true\r\n}",
        "language": "json"
      }
    ],
    "selectedLanguageId": "ueWIFObFukX7uxGDL9XBi"
  },
  "description": "Create a Folder with metadata",
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "autoGeneratedAnchorSlug": "create-a-folder-metadata-and-nested",
  "legacyHash": "wCBvhfT17RLyLiW_SsYpj"
}
```
:::

:::ApiMethodV2
```json
{
  "tab": "examples",
  "url": "https://localhost:82/scrud/create",
  "name": "Create a Folder (metadata and nested false)",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [],
    "bodyDataParameters": [
      {
        "kind": "required",
        "name": "type",
        "type": "string",
        "description": "Metdata template name in box."
      },
      {
        "kind": "required",
        "name": "location",
        "type": "string",
        "description": "Folder id where the file will be located in box."
      },
      {
        "kind": "required",
        "name": "selectedCMS",
        "type": "string",
        "description": "Value should always be set to \"box\" to let Link Enterprise know which configured content system to search."
      },
      {
        "kind": "required",
        "name": "cmsName",
        "type": "string",
        "description": "Name of the box system configured in Link Enterprise."
      },
      {
        "kind": "required",
        "name": "custom1",
        "type": "string",
        "description": "Name of the folder you would like to create. If using nested the delimiter is #DFLOW#"
      },
      {
        "kind": "required",
        "name": "mdArray",
        "type": "Array",
        "description": "A JSON array where each index is a json object with the keys \"md1\" and \"md2\". Where md1 is the column name, and md2 is the value to be inserted in that column."
      },
      {
        "kind": "required",
        "name": "enableNested",
        "type": "Boolean",
        "description": "true (if wanting each folder to have one child in a nested manner)\n\nfalse (if all children are located under the first folder name)"
      },
      {
        "kind": "required",
        "name": "metaDataFolderFlag",
        "type": "Boolean",
        "description": "true if setting metadata for folders\nfalse if not setting metadata for folders"
      }
    ],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "eZnSiYCQgdUwGzVHVCpC-",
        "code": "",
        "language": "200"
      },
      {
        "id": "N2NeRZSPkxazHkQm-jwrV",
        "code": "",
        "language": "500"
      }
    ],
    "selectedLanguageId": "eZnSiYCQgdUwGzVHVCpC-"
  },
  "examples": {
    "languages": [
      {
        "id": "bgcmLQUzSw5m7cmhH8kbV",
        "code": "{   \r\n    \"cmsName\": \"Name of the box system configured in Link Enterpris.\",\r\n    \"fileLocation\": \"C:\\\\someFolder\\\\someFile.txt\",\r\n    \"type\":\"insertMetaDataTemplate\",\r\n    \"location\":\"Insert unique box folder id\",\r\n    \"selectedCMS\":\"box\",\r\n    \"mdArray\":[\r\n      {\r\n         \"md1\":\"insertColumnName\",\r\n         \"md2\":\"insertValue\"\r\n      },\r\n      {\r\n         \"md1\":\"someVendor\",\r\n         \"md2\":\"Gimmal Inc\"\r\n      }\r\n\t\t ],\r\n       \"custom1\":\"folderName#DFLOW#folderName2#DFLOW#folderName3\",\r\n      \"metaDataFolderFlag\":true,\r\n      \"enableNested\":false\r\n}",
        "language": "json"
      }
    ],
    "selectedLanguageId": "bgcmLQUzSw5m7cmhH8kbV"
  },
  "description": "Create a Folder with metadata",
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "autoGeneratedAnchorSlug": "create-a-folder-metadata-and-nested-false",
  "legacyHash": "GD-3v2PH9Zpl5L7CzrcqT"
}
```
:::

:::ApiMethodV2
```json
{
  "tab": "examples",
  "url": "https://localhost:82/scrud/create",
  "name": "Create a Folder (no metadata and nested false)",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [],
    "bodyDataParameters": [
      {
        "kind": "required",
        "name": "type",
        "type": "string",
        "description": "Metdata template name in box."
      },
      {
        "kind": "required",
        "name": "location",
        "type": "string",
        "description": "Folder id where the file will be located in box."
      },
      {
        "kind": "required",
        "name": "selectedCMS",
        "type": "string",
        "description": "Value should always be set to \"box\" to let Link Enterprise know which configured content system to search."
      },
      {
        "kind": "required",
        "name": "cmsName",
        "type": "string",
        "description": "Name of the box system configured in Link Enterprise."
      },
      {
        "kind": "required",
        "name": "custom1",
        "type": "string",
        "description": "Name of the folder you would like to create. If using nested the delimiter is #DFLOW#"
      },
      {
        "kind": "required",
        "name": "mdArray",
        "type": "Array",
        "description": "A JSON array where each index is a json object with the keys \"md1\" and \"md2\". Where md1 is the column name, and md2 is the value to be inserted in that column."
      },
      {
        "kind": "required",
        "name": "enableNested",
        "type": "Boolean",
        "description": "true (if wanting each folder to have one child in a nested manner)\n\nfalse (if all children are located under the first folder name)"
      },
      {
        "kind": "required",
        "name": "metaDataFolderFlag",
        "type": "Boolean",
        "description": "true if setting metadata for folders\nfalse if not setting metadata for folders"
      }
    ],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "Vo9jNEPrIAjJ6wvW4Sip-",
        "code": "",
        "language": "200"
      },
      {
        "id": "L4O7Oo2z1FBfXmQCA-pGy",
        "code": "",
        "language": "500"
      }
    ],
    "selectedLanguageId": "Vo9jNEPrIAjJ6wvW4Sip-"
  },
  "examples": {
    "languages": [
      {
        "id": "m_86XorHlr5Rl-54vrddu",
        "code": "{   \r\n    \"cmsName\": \"Name of the box system configured in Link Enterprise.\",\r\n    \"fileLocation\": \"C:\\\\someFolder\\\\someFile.txt\",\r\n    \"type\":null\r\n    \"location\":\"Insert unique box folder id\",\r\n    \"selectedCMS\":\"box\",\r\n    \"custom1\":\"folderName#DFLOW#folderName2#DFLOW#folderName3\",\r\n   \"metaDataFolderFlag\":false,\r\n    \"enableNested\":false\r\n}",
        "language": "json"
      }
    ],
    "selectedLanguageId": "m_86XorHlr5Rl-54vrddu"
  },
  "description": "Create a Folder with metadata",
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "autoGeneratedAnchorSlug": "create-a-folder-no-metadata-and-nested-false",
  "legacyHash": "iamkEN4dx3y-wyZdXaiVe"
}
```
:::




[title] Customer Resources Required
[path] Agnostic Guides/Solution Guide/

Customer resources required for a Gimmal Link Enterprise configuration and utility usage typically falls on the shoulders of an SAP Basis and/or an SAP technical resource (often an SAP developer who has experience in or nominated to be the document management guru.

Configuration flows between SAP ArchiveLink (OAC2, OAC3) and Gimmal Link Enterprise SAP configuration, so can be handled by one resource with the appropriate authorizations.

In situations where Gimmal Link Enterprise plug-ins are utilized (such as more complex meta-data mapping or inbound processing SAP Key manipulation or custom usage), working with your SAP developer (if not that document admin already) will be necessary.

On-going correspondence and collaboration will of course be required between your Middleware and CMS teams for configuration and testing of new patterns. 

 As new document types are configured, SAP Security may need to grant the necessary authorizations. 


[title] SCRUD API’s
[path] Agnostic Guides/Developers Guide/

All standard Link Enterprise functionally and processing relies on 5 methods within the class **/DFLOW/CL\_CMS\_API**.&#x20;

These methods are listed below and are free to use directly. 

1. CMS\_API\_SEARCH
2. CMS\_API\_CREATE
3. CMS\_API\_READ
4. CMS\_API\_UPDATE
5. CMS\_API\_DELETE

When using the SCRUD API's, you may wish to use the Link Enterprise Custom API Rule configuration table.  This table with a key of "Label", allows you to specify input parameters to the SCRUD API set and thus avoid potential hard coding of the input parameters required. &#x20;

By using a "Label" to uniquely identify a Custom API Rule, you can then query the table /DFLOW/ZCMSC06 using that label to get such parameters as CMS Profile, CMS Use Tag, Repository ID, Location, etc.

To create a Custom API Rule when DocManager is not installed, enter transaction /dflow/sys and choose the menu path Configure->API Rules->Custom.&#x20;


[title] Ping and Load API's
[path] Agnostic Guides/Developers Guide/

Ok, we weren’t completely truthful, there are more than 5 API’s that made up the Link Enterprise SCRUD platform. Actually it is SCRUDPL. But it doesn’t sound the same when you say it. &#x20;

Here are the two additional API’s: 

1. [CMS\_API\_PING](https://archbee.io/doc/S5CoH-hbYE3WVirr0PAcX/uelUumjbKwJRIfF3S0-ar)
2. [CMS\_API\_LOAD](https://archbee.io/doc/DKZ1T8K_JJwpxRYVu7bOJ/gpJqX-DBapcH42dz5OoRz)


[title] Purpose of Guide
[path] Agnostic Guides/Solution Guide/

The goal of this guide is to provide detailed configuration of specific integration patterns and Gimmal Link add-ons as well as an overview of all Gimmal Link Enterprise utilities.

For details on architecture, supported environments, and system requirements please refer to the docuflow [Technical Overview](https://linkenterprise.docs.gimmal.com/technical-overview).

For custom development, please refer to the [Developers Guide](https://linkenterprise.docs.gimmal.com/developers-guide).

[title] Upload
[path] Agnostic Guides/Developers Guide/Box Endpoints/

Link Enterprise provides an endpoint to upload files to. This is strictly for uploading files, and if you require metadata to be transferred following up with an update endpoint call is required.

:::ApiMethodV2
```json
{
  "tab": "request",
  "url": "https://localhost:82/scrud/upload",
  "name": "Upload",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [
      {
        "kind": "required",
        "name": "cmsName",
        "type": "string",
        "description": "Name of the content management system configured in Link Enterprise."
      },
      {
        "kind": "optional",
        "name": "location",
        "type": "String",
        "description": "Folder id where Link Enterprise  is uploading the file. (box folder id) else root folder used."
      },
      {
        "kind": "optional",
        "name": "Content-Type",
        "type": "string",
        "description": "multipart/form-data; boundary=(insert boundary)\n\nExample is included in code examples"
      }
    ],
    "bodyDataParameters": [],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "81EVM7WXdGrYfDwshYJW6",
        "code": "SUCCESS EXAMPLE\n{\n\t\"id\": \"910645979785\",\n\t\"result\": \"success\"\n}\n\nFAILED EXAMPLE\n{\n\t\"id\": null.\n\t\"result\": \"fail\"\n}",
        "language": "200"
      },
      {
        "id": "6U9gw-gSaolDqS3WcFi9t",
        "code": "",
        "language": "500"
      }
    ],
    "selectedLanguageId": "81EVM7WXdGrYfDwshYJW6"
  },
  "examples": {
    "languages": [
      {
        "id": "xY6nLYt-BP3jeEy_-jkb3",
        "code": "EXAMPLE\r\n-------\r\n> POST /scrud/upload HTTP/1.1\r\n> Host: localhost:82\r\n> User-Agent: insomnia/2021.7.2\r\n> Cookie: vertx-web.session=8c1a5313de4babf8825fe2114505da7e\r\n> Content-Type: multipart/form-data; boundary=X-INSOMNIA-BOUNDARY\r\n> location: 154829431337\r\n> cmsName: demoprod\r\n> Authorization: Basic ZG9jdWZsb3c6ZG9jdWZsb3c=\r\n> Accept: */*\r\n> Content-Length: 3693\r\n\r\n| --X-INSOMNIA-BOUNDARY\r\n| Content-Disposition: form-data; name=\"\"; filename=\"gimmal_4C.png\"\r\n| Content-Type: image/png\r\n| �PNG\r\n| \u001a\r\n-------\r\nEXAMPLE",
        "language": "none"
      }
    ],
    "selectedLanguageId": "xY6nLYt-BP3jeEy_-jkb3"
  },
  "description": "Upload a file using HTTP multi part form data. HTTP headers specifying folder id, and the content system named must be specified.",
  "currentNewParameter": {
    "label": "Header Parameter",
    "value": "headerParameters"
  },
  "autoGeneratedAnchorSlug": "upload",
  "legacyHash": "SYWoaQaa1CeAs6I_xHZZn"
}
```
:::






[title] Delete
[path] Agnostic Guides/Developers Guide/Box Endpoints/

Link Enterprise provides a web service endpoint that will allow you to delete a file.

:::ApiMethodV2
```json
{
  "tab": "request",
  "url": "https://localhost:82/scrud/delete",
  "name": "Delete a file.",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [],
    "bodyDataParameters": [
      {
        "kind": "required",
        "name": "id",
        "type": "string",
        "description": "id of the document"
      },
      {
        "kind": "required",
        "name": "cmsName",
        "type": "string",
        "description": "Name of the box system configured in Link Enterprise."
      },
      {
        "kind": "required",
        "name": "selectedCMS",
        "type": "string",
        "description": "Value should always be set to \"box\" to let Link Enterprise know which configured content system to search."
      }
    ],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "ZbT9xDTdXEpCuzbNprahQ",
        "code": "",
        "language": "200"
      },
      {
        "id": "b89YgQOhw-hoyU4iXf1ZM",
        "code": "",
        "language": "500"
      }
    ],
    "selectedLanguageId": "ZbT9xDTdXEpCuzbNprahQ"
  },
  "examples": {
    "languages": [
      {
        "id": "C4pSfZHstrxmG8KSy6hS0",
        "code": "{\n\n    \"cmsName\": \"insertProductionSystemName (located in Link Enterprise gui)\",\n    \"id\": \"127595030790\",\n    \"selectedCMS\": \"box\"\n\n}",
        "language": "json"
      }
    ],
    "selectedLanguageId": "C4pSfZHstrxmG8KSy6hS0"
  },
  "description": "Delete a File ",
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "autoGeneratedAnchorSlug": "delete-a-file",
  "legacyHash": "RZpY6k9dlIB2WTVx-E1YN"
}
```
:::




[title] Link Enterprise BADI’s
[path] Agnostic Guides/Developers Guide/

Link Enterprise provides BAPI's/enhancements spots in the following modules:

1. Base Content API
2. DocManager


[title] Update
[path] Agnostic Guides/Developers Guide/Box Endpoints/

Link Enterprise provides a web service endpoint that will allow you to update a document or folders metadata.&#x20;

:::ApiMethodV2
```json
{
  "tab": "request",
  "url": "https://localhost:82/scrud/update",
  "name": "Update File/Folder metadata",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [],
    "bodyDataParameters": [
      {
        "kind": "required",
        "name": "id",
        "type": "string",
        "description": "Unique id of box file or folder."
      },
      {
        "kind": "required",
        "name": "cmsName",
        "type": "string",
        "description": "Name of the box system configured in Link Enterprise."
      },
      {
        "kind": "required",
        "name": "selectedCMS",
        "type": "string",
        "description": "Value should always be set to \"box\" to let Link Enterprise know which configured content system to search."
      },
      {
        "kind": "required",
        "name": "type",
        "type": "string",
        "description": "Name of metadata template in box."
      },
      {
        "kind": "required",
        "name": "metaDataFolderFlag",
        "type": "Boolean",
        "description": "true if setting metadata for folders\nfalse if not setting metadata for folders"
      },
      {
        "kind": "required",
        "name": "mdArray",
        "type": "Array",
        "description": "A JSON array where each index is a json object with the keys \"md1\" and \"md2\". Where md1 is the column name, and md2 is the value to be inserted in that column."
      }
    ],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "NP6_JKLUVfKwgT7ZC9ANV",
        "code": "",
        "language": "200"
      },
      {
        "id": "2Qv2Iy-Q0df7ncSX-i60q",
        "code": "",
        "language": "500"
      }
    ],
    "selectedLanguageId": "NP6_JKLUVfKwgT7ZC9ANV"
  },
  "examples": {
    "languages": [
      {
        "id": "JlNcgO8TqXpNzQxN2xT04",
        "code": "{\r\n  \"cmsName\":\"insertProductionSystemName (located in Link Enterprise  gui)\",\r\n    \"type\": \"insertMetaDataTemplateName\",\r\n    \"id\": \"insert box folder id\",\r\n    \"mdArray\": [\r\n        {\r\n            \"md1\": \"someColumnToBeUpdated\",\r\n            \"md2\": \"newValue\"\r\n        }\r\n    ],\r\n    \"selectedCMS\": \"box\",\r\n\t\"metaDataFolderFlag\":true\r\n\r\n}",
        "language": "json"
      }
    ],
    "selectedLanguageId": "JlNcgO8TqXpNzQxN2xT04"
  },
  "description": "Update a file or folder metadata",
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "autoGeneratedAnchorSlug": "update-filefolder-metadata",
  "legacyHash": "TlPao_NbsVcmi0eER-y03"
}
```
:::




[title] Delete
[path] Agnostic Guides/Developers Guide/FileNet Endpoints/

Link Enterprise provides a web service endpoint that will allow you to delete a file.

:::ApiMethodV2
```json
{
  "tab": "request",
  "url": "https://localhost:82/scrud/delete",
  "name": "Delete a file.",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [],
    "bodyDataParameters": [
      {
        "kind": "required",
        "name": "ids",
        "type": "string",
        "description": "id of the document"
      },
      {
        "kind": "required",
        "name": "cmsName",
        "type": "string",
        "description": "Name of the filenet system configured in Link Enterprise."
      },
      {
        "kind": "required",
        "name": "selectedCMS",
        "type": "string",
        "description": "Value should always be set to \"filenet\" to let Link Enterprise know which configured content system to search."
      },
      {
        "name": "location",
        "kind": "optional",
        "type": "string",
        "description": "filenet folder where the document needs to be deleted.",
        "children": []
      },
      {
        "name": "repository",
        "kind": "required",
        "type": "string",
        "description": "filenet repository Value",
        "children": []
      },
      {
        "name": "domain",
        "kind": "required",
        "type": "string",
        "description": "Filenet Domain name",
        "children": []
      }
    ],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "ZbT9xDTdXEpCuzbNprahQ",
        "code": "\"[completed]\"",
        "language": "200"
      },
      {
        "id": "b89YgQOhw-hoyU4iXf1ZM",
        "code": "",
        "language": "500"
      }
    ],
    "selectedLanguageId": "ZbT9xDTdXEpCuzbNprahQ"
  },
  "examples": {
    "languages": [
      {
        "id": "C4pSfZHstrxmG8KSy6hS0",
        "code": "{\n   \"cmsName\":\"Name of the filenet system configured in Link Enterpri.\",  \n    \"repository\":\"Filenet_Repository\",\n \"selectedCMS\":\"filenet\",\n \"domain\":\"Domain_Name\",\n\t\"location\":\"/folderName\"\n\t\"ids\":\"filenet Document Id\"\n}",
        "language": "json"
      }
    ],
    "selectedLanguageId": "C4pSfZHstrxmG8KSy6hS0"
  },
  "description": "",
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "autoGeneratedAnchorSlug": "delete-a-file",
  "legacyHash": "RZpY6k9dlIB2WTVx-E1YN"
}
```
:::




[title] Execution: Migration
[path] Agnostic Guides/Solution Guide/Untitled/

The migration process is the phase in which for the entries selected (via the selection screen) in the migration table, content is READ from the source type (ArchiveLink content server,  Gimmal Link Enterprise ECM endpoint, data file, or SAP DB) and created in the target system (ArchiveLink content server, Gimmal Link ECM endpoint, or SAP DB).

This process uses all the input criteria available for selection parameters.

Below is a description of your migration options.

## Keep Original SAPDocID

This option allows you preserver the source SAPDocID (ie: \<link table>-arc\_doc\_id.  This should only be done if required by another 3rd party or other dependency.

`This option is only available for ECM target endpoints.`

## Check Multiple Links

This option will check if a other migration entries exist for the the same:&#x20;

1. source repository ID
2. source document ID (ie: SAPDocID / arc\_doc\_id)

This is only valid if you have an artifact assigned to more than 1 SAP record.

If you know or are unsure if you have 1 to many linkages, this option is safe to choose.  There is no harm in choosing this option however it comes with decreased performance as each entry, before it migrated, reads the entire migration table to see if an entry with the same source repository ID/document ID has been migrated.

If it finds an entry that is migrated, it does not "re-migrate" the document.  Instead, it preserves the 1 to \<n> multiple link entries and simply creates the appropriate ArchiveLink link and marks the entry as migrated.

Additional note: if you have or suspect multiple links, it is safest to choose single stream processing (For more information on these consideration, refer to the section/node "Migration Concepts and Strategies - Box" below).  In theory, if parallel batches contain entries of the same source repository ID/document ID combination, and if they are attempted to be migrated at the same time, duplicate documents in your document repository could occur.  This is the worst case.  The migration will still be valid.

## Force RFC (recommended)

This option allows you to override the RFC that the DocManager rule for the target entry will determine.  If this is shared with day-to-day Gimmal Link Enterprise processing, it is highly recommended to have a dedicated RFC (and migration Gimmal Link connector) to migration only.  For more information on these considerations, refer to the section/node "Migration Concepts and Strategies - Box" below.

## Force Source Rep ID

This option allows you to force a source repository ID different than the source repository ID in the load table. &#x20;

`Should be used for unique testing in non-production systems only and should only be used if required.`

## Force Unique Filename

This option allows you to force a unique filename in the target content repository, and in some cases (such as Box), this is mandatory to prevent versioning.

The target filename will have the format \<original filename>\_\<unique SAP UUID>.\<original file extension>

## Replace Characters with SP

This option allows you to identify a list of special characters all in a sequence (eg: %, or %\`@) and have them replaced by a space.

## Include Metadata (Gimmal Link Enterprise ECM only)

<u>Get/Map Source Metadata to Target Metadata</u>

If the source is a Gimmal Link Enterprise ECM endpoint - metadata can b&#x65;*&#x20;read&#x20;*&#x66;rom the source and moved along with the content to the migrated.  This requires the DocMigrator configuration described above "Source Metadata Mapping".  Only properties configured will be transferred.

You can make source metadata mandatory, in which case the entry will be flagged with an error if not found.

<u>Enhance/Compile New Target Metadata</u>

If the source does not support metadata, metadata can still be *added* to the content being migrated via DocManager, OR in addition to.  This metadata can come from any available dataset since you can create an ABAP class-method to compile that metadata, thus you have full control.  Of course, you can also add SAP metadata code free using the metadata map option in DocManager.&#x20;

You can make New Target metadata mandatory, in which case the entry will be flagged with an error if not found or compiled via the found DocManager rule.

*\*If both sources of metadata are leveraged, the metadata compiled by DocManager will override any metadata with duplicate target property names.*

<u>Validate Only / Store Content</u>

You can choose to run a validation run only to ensure your configuration and metadata options are correct.  A validation run will read data from the source, compile metadata if applicable, but will NOT create the content in the source system nor an ArchiveLink link.  In a validation run, the following flags are set:

1. Source MD Exists (if applicable)
2. New MD Exists (if applicable)
3. Source Validated

<u>Auto Delete Return Table on Success</u> - This flag helps delete the return table upon success.<u> </u> <u>Auto Delete Source Content and Link on Success (SAP Db Only)</u> - This flag is relevant for Source as SAP Database or GOS Attachments and if True, post migration the Source Content and link will be deleted including the reorganization of the database space used by the attachment in source db/repository. <u> </u> <u>Auto Delete Source Link on Success (ArchiveLink Only)</u> - Upon successful migration of the source document this flag if set will ensure deletion of the Archivelink entry from the link table defined in OAC3 against the Business Object and Source Archive Doc Type and Source Repository. <u> </u>

Store content WILL create migrate the content (with metadata if applicable) and if successful, will also create an ArchiveLink link entry and set the following flags:

1. Source MD Exists (if applicable)
2. New MD Exists (if applicable)
3. Target Cont. Migrated
4. Metadata Migrated (if applicable)
5. Target Link Created

Note that if you migrate an entry twice, the DocMigrator will skip that entry and place a message in the status table.

The results of the Load phase are displayed on the screen according to the option "Display Results in ALV" checkbox.  If this option is chosen, all entries are displayed in the ALV report format, else a simple message indicating the number of entries loaded successfully, with info message, or errors is displayed.

If ALV is chosen, the header will display information as to the breakdown of entries loaded successfully, with info message, or errors.

`Be careful when choosing "Display Results in ALV" as for large datasets this will significantly increase runtime and potential SAP system memory usage and timeouts.  It is therefore suggested to use the "Display" mode of the migrator afterwards instead of displaying the results in ALV format. `

Clicking on the source or target hotspot/hyperlink in the ALV allows you to view the image.

#


[title] Execution
[path] Agnostic Guides/Solution Guide/AuditLink/

The /DFLOW/AUDITLINK transaction provides functionality for retrieving and bundling attachments in SAP.

## Modes of Execution

1. Report
   This mode executes a predefined report program that supports filtering based on specific business objects. It displays details of the selected objects and uses them to determine which attachments are included in the bundle. Only documents that meet the inputted selection criteria are processed.
2. Spreadsheet
   In this mode, an Excel spreadsheet is uploaded containing a list of business objects. The transaction uses this list to locate and retrieve the relevant attachments. This is useful when the selection criteria are already defined externally or provided by another team.
   1. The spreadsheet must be in a format where the first three colums are the exact say key(s).  If the SAP key is a single field, columns 2 and 3 must remain empty.  See the below example.  Notice B and C colums are intentionally left empty.

      ![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/Ve_ksXn-OIvRNbo8aJADI_image.png)
   2. If the SAP key is a multi-part key, leverage columns 2 and 3 (if needed) accordingly.  Below is an example of an FI invoice that has a three part key, thus columns B and C are leveraged.  They must be in the order in which they appear concatenated in the SAP ArchiveLink table.
   3. Everything after the first 3 columns is for cosmetic/informational only purpose on the SAP report and the resulting .html (if chosen), and can contain any values.
   4. If there is a header line, make sure to select "Spreadsheet Has Header Line" so that AuditLink knows to treat it as such.
3. ArchiveLink
   This mode retrieves attachments using ArchiveLink metadata. Required parameters include the SAP object, object ID, archive ID, and CMS GUID. It directly accesses attachments based on these identifiers, bypassing the need for report-based or list-based selection.

## Optional Output Features

1. Include HTML
   When enabled, this option generates an HTML file that provides a structured summary of all the attachments included in the bundle. Each attachment is listed with a hyperlink, allowing for quick and convenient access.
2. Include Results File
   This feature creates a plain text (TXT) file summarizing the results of the attachment retrieval process. It includes counts of successfully retrieved attachments and notes the count files that failed to be retrieved, helping with auditing or troubleshooting.
3. Email When Done
   Enabling this option sends a completion email to the user once the bundle creation process finishes. This helps keep users informed without requiring them to manually check the transaction status.

## Execute

The result list generated by the transaction includes a “**Create Local Bundle**” button. When the user clicks this button, they are prompted to enter a Bundle Name. This name is then concatenated with the designated folder name used for storing the bundle, allowing for more organized output file management. Once confirmed, this action triggers the bundle creation process.

For Excel as a source based bundles, you must have the spreadsheet closed.  Note: The excel method is only compatible with a windows user machine.&#x20;

After bundles are created, users can view them through the **Bundle Dashboard**, which displays all bundles created by the user to date. The dashboard provides key information for each bundle, including:

- Bundle ID – Links to the list of business objects included in the bundle.
- Execution date and time – Indicates when the bundle was created.
- Number of attachments retrieved – Includes a count of both successful and failed retrievals.
- Additional details – Displays the CMS Filename, the corresponding AuditLink report, and the full CMS Filepath, providing comprehensive visibility and traceability for each bundle.


[title] Configuration Overview
[path] Agnostic Guides/Solution Guide/

This document assumes as a precursor that Gimmal Link Enterprise SAP and middleware has been installed, base configuration has been completed, and that you have connectivity between Gimmal Link Enterprise SAP\<->Gimmal Link Enterprise Connector\<->CMS System as well as the base repository ID, CMS profiles, tags, destinations and repository ID’s ready to roll.

:::BlockQuote
Please ensure all steps in the Installation and Base Configuration Guide have been completed.
:::

SAP Security is assumed to already by in place for the Gimmal Link Enterprise transactions and that future SAP authorization for adding and viewing documents (ex: S\_WFAR\_OBJ) has been considered.

Please refer to the Gimmal Link Enterprise Installation and Base Configuration Guide (separate) for further information on the above.

For Gimmal Link Enterprise SAP ABAP plug-in or direct web services development please refer to the Developer guide (separate).

For technical overview please refer to the Technical Overview guide for that particular repository (separate).

The below outlines an overview of the various configuration components of Gimmal Link Enterprise covered in this guide:

1. **SAPLink:&#x20;**&#x50;rovides automated Inbound processing from your CMS system to SAP for a wide variety of integration: automated link creation, triggering of workflows, execute custom ABAP code, and more
2. **DocManager: &#x20;**&#x43;ontrols outbound document storage (via message output as well as Service for Object) as well as inbound (SAPLink) options such as linking and custom code triggering, as well as metadata transfer in both directions
3. **Custom API Usage:**  Typically for use when only the base Gimmal Link API product is installed
4. **ChoiceLists: &#x20;**&#x53;end SAP metadata in the form or flat and hierarchal list for use as drop-down and choice menus in your CMS system
5. **Workflow Connect: &#x20;**&#x43;ode free triggering of SAP Workflow including container fulfillment.  WFConnect leverages DocManager for SAPLink inbound processing.
6. **AuditLink: &#x20;**&#x55;tility to extract documents from your CMS system and generate HTML report with drill down to the extracted images for a disconnected from your SAP and CMS system access to an Audit “bundle”
7. **DocMigrator: &#x20;**&#x4D;igrate content (and metadata) from various sources to a Gimmal Link ECM endpoint, creating new links, deletion of old ones, as well as various utilities to go with
8. **Accounts Payable:&#x20;**&#x20;A powerful yet flexible SAP based Invoice Processing and Approval workflow built on the SAP workflow runtime system.
9. **Publisher: &#x20;**&#x52;outines to allow for message output (SmartForms, AdobeForms, etc.) to be stored with metadata in your CMS system
10. **LinkManger:**  Provides and approval process for end users to delete links, with link managers controlling the final deletion as well as the content as an option
11. **Viewing and Attachment List Options:&#x20;**&#x43;onfigure whether Gimmal Link DocManager is leveraged to store and view content including advanced viewing options, SAP DB Attachment and Note option, and more
12. **System Messages: &#x20;**&#x50;revent or warn users and API usage when needed during downtime or critical changes across the Gimmal Link Enterprise platform
13. **Utilities:**
    1. **CMS Load: &#x20;**&#x4C;oad various CMS system components into SAP (properties, docclasses, etc.)
    2. **Link Maintenance: &#x20;**&#x4D;aintain ArchiveLink links
    3. **Metadata Push: &#x20;**&#x4D;anually or scheduled metadata updates from SAP to your CMS system based on configured DocManager rules
    4. **Cleaning Gateway Errors: &#x20;**&#x4D;aintenance of error in the Gimmal Link Enterprise API gateway
    5. **Archiving Gateway Data: &#x20;**&#x4D;aintenance and archiving of Gimmal Link AEnterprise PI gateway log tables that may grow in size over time
    6. **Attachment List Dashboard: &#x20;**&#x52;eport on ArchiveLink links with an enhanced selection criteria across all link tables
14. **Working with the API Gateway and SCRUD Test Harness:&#x20;**&#x20;All Gimmal Link Enterprise processing is logged and reportable, including the testing of basic SCRUD API's with no coding.
15. **Fiori-based Link Enterprise DocManager Plugin:** This is an optional component for customers using Fiori user experience for end-users and wish to extend the Link Enterprise DocManager functionality to SAP Fiori Apps allowing users to attach and view documents via Fiori Launchpad on browser.

`All configuration and utilities can be accessed via transaction `**`/dflow/sys`**


[title] DocManager
[path] Agnostic Guides/Solution Guide/

DocManager is the central component, actioned by “rules”, that enables and controls most Gimmal Link processing in both directions inbound and outbound from SAP.  This includes enabling further Gimmal Link Enterprise add-on’s that might leverage DocManager such as Custom API Usage, DocMigrator, WFConnect and Publisher for example.  It also allows you to specify what metadata is transferred in both directions, as well as viewing capabilities, options, and link management. &#x20;

We also provide a Fiori User Experience-based Link Enterprise DocManager that works seamlessly standard Fiori Apps and delivered as a Fiori Lanuchpad plugin. Check page "***Fiori DocManager - Launchpad Plugin***" for more details.

## Inbound to SAP DocManager processes

1. SAPLink Create Link
2. SAPLink Workflow Connect (WFConnect)
3. SAPLink Accounts Payable
4. SAPLink DMS
5. SAPLink Custom Processing (class-method ABAP)

Note that all *inbound&#x20;*&#x74;o SAP DocManager processes require a rule in the Gimmal Link Enterprise Enterprise Connector to determine what content or events in your content management system are relevant to Gimmal Link Enterprise processing.  `Refer to the SAPLink section of this document for more information.`

## Outbound from SAP DocManager processes:

1. Store New and Assign
2. Publisher
3. Custom API usage
4. DocMigrator

*Outbound&#x20;*&#x66;rom SAP DocManager processes requires only base installation and configuration.  Please keep in mind however as you add outbound DocManager processes to consider load balancing the volume for performance reasons.  Refer to the Gimmal Link Enterprise Installation and Base Configuration Guide for more information for information on these considerations. &#x20;

Note that you can also use Gimmal Link Enterprise to store business documents to non-Gimmal Link Enterprise Content Servers.  Simply configure the repository ID and relevant DocManager rule within Gimmal Link Enterprise for a consistent user interface for all your storage, linking, and viewing.

## DocManager SFO/GOS Interface and Viewing

Below are some of the advantage to using the Gimmal Link DocManager SFO/GOS interface:

1. Enhanced link attributes
2. Link Attributes for older systems with no implementation of table TOAAT
3. Delete Link Management via Gimmal Link Enterprise Link Manager
4. Multiple file / drag & drop that also support SAP GUI for JAVA
5. <u>Virtual Link Manager </u>to view links from connected SAP records without the duplication of link entries
6. Activity Logging and Viewing
7. `Allows storage/linking/viewing to both Gimmal Link and non-Link connections`
8. Advanced viewing options to show and hide SAP DB notes, SAP DB attachments, as well as all ArchiveLink attachments
   1. The "hide" option is very useful for in-flight migrations for example
9. Advanced BADI options for a wide variety of customizing options
10. Allow "Notes" to be created in your external repository instead of your SAP database
11. Supports Viewing attachments by auto-group via classification, Gimmal Link flow, or file extension&#x20;

## Configuration

DocManager leverages standard SAP ArchiveLink and therefore entries for specified Document Types must exist already in OAC2, and have their link entry with SAP Business Object configured in OAC3.

Additionally, with Gimmal Link Enterprise ECM it is highly recommended that you clear/disable the value in OAG1 "Always Copy Document Class from Document Type".  This allows you to use the "\*" in the OAC2 document class column whilst at the same time letting Gimmal Link add the appropriate file extension (ie: document class) in the Reserve field of the SAP ArchiveLink table (eg: PDF, XLSX, etc).

Configuring DocManager requires the below components:

1. Creating a DocManager Rule
   1. Required for both inbound and outbound
2. Enabling Store New and Assign / Attachment List Menu Path
   1. Required if you choose to use the Gimmal Link DocManager SFO/GOS dialogue window for either document linking, viewing, storage to non-Gimmal Link Enterprise repositories, or usage of Gimmal Link Enterprise Link Manager
3. SAPLink / Inbound to SAP Processing
   1. Required for inbound processing only
   2. Configured at the Gimmal Link Enterprise middleware level
4. Delete Link Management via Gimmal Link Enterprise Link Manager&#x20;
5. Attachment List Options
6. SAP Logon Security Configuration

## Note on ArchiveLink Doctypes

When creating document types in OAC2, consider the following:

1. Doctypes drive SAP create and viewing authorization
2. For Link Enterpise ECM or Content Server with Callback/Callback File move enabled: Doctypes drive location and metadata of document in SharePoint (and optional folder creation)
   1. Reminder: Native Content Server (without Link Enterprise Callback File Move) uses repository ID for location.
3. If storing through content server AND viewing through content server (vs. any source of storage and viewing with ECM), you must create a document type for every file type/extension/mime-type ie: pdf, xls, xlsx, doc, docx, etc - which can result in a LOT of doctypes. &#x20;
   1. This can be avoided by using an \* in OAC2 and ensuring URL viewing is used.
      1. No further config required when using ECM to view via URL, however for content server basic Content Server Callback must be configured/enabled.


[title] SAPLink / Inbound to SAP Processing
[path] Agnostic Guides/Solution Guide/DocManager/

\*Unsupported in S3

SAPLink is the inbound processing from your content repository ***to*** SAP.  This can be leveraged to execute a number of Link Enterprise delivered functions in SAP or your own custom logic.  Thus why we call SAPLink the "do anything pipe" into SAP.

There are three components involved in SAPLink processing:

1. Ensure the CMS document class/object type/metadata template has the required fields for SAPLink processing
2. Configuration a "rule" in the Enterprise Connector middleware: This determines what content is to be processed, when, and what (if any) metadata is to be transferred.  What is processing is dependent on the CMS system being used (outline more below).
3. Configuration of a corresponding DocManager rule in SAP that matches the document type configured in Step 2: This determines what action is to be performed in SAP (link a document, trigger custom code, start Accounts Payable workflow, etc.)

Note: the Link Enterprise SAP system account specified in the middleware must have access to the transaction /DFLOW/GTW in its security profile to execute inbound to SAP Jco calls.  Please refers to the section "Create SAP System Account" in the Base Installation and Configuration guide.

The inbound processing rule determines:

1. What is to be processed
2. What metadata is to be sent to SAP

### How to configure a SAPLink rule in Enterprise Connector

1. Load up in the browser the Enterprise Connector [https://localhost:82/](https://localhost:82/Box)
2. Under "Mappings" click inbound to SAP.
3. Hover over each of the input boxes in the UI to look at sample values for each input box.
4. Click Save.
5. Restart the Link Enterprise windows service.

### Notes

The DocManager rule in SAP determines what action is to be performed in SAP for each item "found" from a SAPLink rule in the connector. &#x20;

Each request is processing and calls a Link Enterprise BAPI within the SAP, which then reads the DocManager rule configuration found for that doctype.&#x20;

There can only be one ArchiveLink document type and SAP business object combination ever configured in the DocManager configuration, thus avoid sharing document types across SAP object (to avoid an inbound collision).&#x20;

Gimmal Link Enterprise will then execute the configured action and pass back a return, either an error or success. &#x20;

In the case of a success, the trigger property is set to False to prevent a re-processing of that item found. &#x20;

In the case of an error, the error property, if relevant to your CMS system, will be updated.

In both scenarios, the doucflow user name and time stamp fields are updated.

Upon a success SAPLink, metadata can also be enable to be transferred back to your CMS system.

### Rule Config: What is to be processed

Inbound to SAP entries search for documents that meet a specific criteria and send the information to SAP for processing.  If processing completes successfully the trigger property is adjusted so that the document is not processed again.  If the processing were to fail by default the processing is tried again.  In order to not retry failed documents adjustments can be made to the filter string to omit documents that were in error.  

| Setting               | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | Sample Value(s)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Enable Inbound to SAP | If checked configuration for Inbound to SAP is enabled and can be configured for inbound to SAP processing.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| SAP                   | The SAP system to send document metadata too.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | SAP DEV ED1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| CMS                   | The CMS system to get document metadata from.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| Trigger data Type     | Data type by which the saplink rule is triggered. <br />Task and Sign task type only applicable for Box workflow tasks.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Boolean, TimeStamp,<br /> task and signtask.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| SAP Repo.             | The SAP ArchiveLink repository that should be associated with this metadata being passed.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | ZC                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| SAP Type              | The SAP ArchiveLink document type associated with this metadata being passed.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | ZCONTRACT                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| CMS Repo.             | The content management system object store or repository.<br />                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| CMS Type              | The content management system document class, object type or metadata template to look for the requested metadata in.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | scmContracts                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| Interval              | The Inbound to SAP process searches for documents matching the configured criteria and then sends the information to SAP.  This interval determines how often the underlying content management system is searched.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | 10                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| Trigger Prop.         | The content management system property or attribute associated with when to trigger sending information to SAP.<br /><br /><br />By default, Link Enterprise sets this property to True or False based on the result of a SAPLink call to SAP.  These values can be manipulated via the Config.properties file with the below entries:<br /><br />saplinkfalse.value=\<value>  (for success)<br />saplinkerror.value=\<value)   (for error)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | LinkEnterpriseSaplinkTrigger<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />saplinkfalse.value=DoNotProcessSuccess<br />saplinkerror.value=DoNotProcessError                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| Type                  | The trigger property or attribute type.<br /> <br />Boolean triggers happen when the Boolean property or attribute is set to true.<br /> <br />Timestamp triggers happen when the configured date/time property or attribute has no value.<br /> <br />**Currently, Box and M365 implementations only support Boolean trigger types (even though in Box the type is Single Value Dropdown Text and SharePoint is single line of text)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Boolean                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| Error Prop.           | If an error happens while trying to process a particular file you can optionally store the error information in the content management system.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | LinkEnterpriseSaplinkError                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| Type                  | The error property or attribute type.<br /> <br />Boolean error types are only set to true if an error happens.<br /> <br />Timestamp error types only set a date/time stamp when an error happens.<br /> <br />String errors put as much of the error as they can into the configured error property or attribute.  This is the preferred configuration.<br /><br />Currently M365 implementations only support String (single line of text) and Box supports Text.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | String                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| Max                   | An optional setting to limit the number of entries returned when searching for documents.<br /> <br />A setting of 0 has no limit.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | 0                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| Filter                | An optional (with FileNet and Documentum and implementations but required for Box) filter string to finely tune what is searched for in the underlying content management system. <br /> <br />Refer to the where clause documentation for working with the Search Utility in the appendix for help configuring a filter clause.<br /> <br />For Documentum and FileNet filter clauses you must start with AND or OR since the documents are already being searched for by the configured trigger type so this additional filter logic needs to be added on with AND or OR notations.<br /> <br />Some examples are:<br /> <br />AND \<insert error property name> IS NULL  <br />(which omits documents that have already errored when using a String based Error Property)<br /><br />OR LastModifier \<> ‘\<insert DocuFlow FileNet Username>’<br />(which handles updates to documents as well as the first time they are created)<br /> <br />OR LastModifier \<> ‘\<insert DocuFlow FileNet Username>’ AND \<insert error property name> IS NULL<br />(which omits error documents and also handles updates to documents)<br /> <br />OR r\_modifier \<> ‘\<insert DocuFlow Documentum Username>’<br />(which handles updates to documents as well as the first time they are created)<br /> <br />OR r\_modifier \<> ‘\<insert DocuFlow Documentum Username>’ AND \<insert error property name> IS NULL<br />(which omits error documents and also handles updates to documents)<br /> <br />For Box implementations you must enter in a filter clause which is the input to the metadata search web service for Box.                            | **(Box example): Search API**<br />mdfilters=\[\{"templateKey":"scmContracts",<br />"scope":"Hi enterprise","filters":\{"docuflowSaplinkTrigger":"True"}}]<br />\&limit=50\&offset=0<br /> <br />**(Box example): Metadata query:**<br />\{"from":"enterprise\_761921826.metadatatemplate","query":"docuflowSaplinkEnabled = \:value","query\_params":\{"value":"True"},"ancestor\_folder\_id":"131865107948"}<br /> <br />**(FileNet example not including documents in error)**<br />AND DocuFlow\_SAPLinkError<br />IS NULL<br /><br />**(Sharepoint example)**:<br />fields/SAPFacility eq 'Complete' and fields/docuflowSaplinkTrigger eq 'True' |
| Location              | An optional location to further limit where documents are searched for.<br /> <br />This is only possible with FileNet and Documentum implementations and not possible with Box and SharePoint implementations.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| Order By              | An optional order by clause to order the returned results.  Make sure to include the metadata being ordered by in the metadata comma separated list.<br /> <br />This is only possible with FileNet and Documentum implementations and not possible with Box and SharePoint implementations.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| Sub.                  | If enabled sub folders will be searched.<br /> <br />For more information refer to the Search Utility in the appendix for help.<br /> <br />This is only possible with FileNet and Documentum implementations and not possible with Box and SharePoint implementations.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| lineItemColumn        | The line item column name which is referred to the csv files containing the line item information.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |

### Rule Config: What metadata is to be sent to SAP

What metadata is sent from your repository to SAP is determined by the Metadata column:

| Setting  | Description                                                                                                                                  | Sample Value(s)     |
| -------- | -------------------------------------------------------------------------------------------------------------------------------------------- | ------------------- |
| Metadata | The comma separated list of metadata to send to SAP in the specified order.  These must match the SharePoint column names with exact casing. | title,contract,name |

### Rule Config: Sign Task

sign task Config

| Setting               | Description                                                                                                | Sample Value(s)         |
| --------------------- | ---------------------------------------------------------------------------------------------------------- | ----------------------- |
| sourceTriggerProperty | The content management system property or attribute associated to trigger when the sign task is completed. | middlewareOriginaldocId |


[title] Using Microsoft Graph Explorer to Debug SharePoint
Filters in Link Enterprise Middleware
[path] Agnostic Guides/Solution Guide/DocManager/Untitled/



## 1. Purpose

Demonstrated how to use Microsoft Graph Explorer to debug SharePoint filters in Link Enterprise middleware. This helps identify whether issues originate from Microsoft Graph or the middleware layer.

## 2. Tools & References

- **Graph Explorer:** https\://developer.microsoft.com/en-us/graph/graph-explorer
- **Demo Tenant:** (yourtenant).sharepoint.com&#x20;
- **Sample Site ID:** https\://graph.microsoft.com/v1.0/sites/(yourtenant).sharepoint.com:/sites/VFSGMiddleware&#x20;
- **Sample Library:** /VFSGMiddleware/Equip/

## 3. Benefits of Using Graph Explorer

- Test filters instantly without restarting middleware&#x20;
- Isolate root causes between Graph and Link Enterprise
- Discover internal SharePoint field names&#x20;
- Simulate customer scenarios for debugging&#x20;

**4. Corrected Graph API Filter Example**
&#x20;**Correct Syntax:**

:::BlockQuote
https\://graph.microsoft.com/v1.0/sites/.../list/items?$expand=fields&$filter=fields/SAPFacility eq 'Complete' and fields/LinkEtnerpriseSaplinkError0 ne 'True'
:::

**URL-Encoded Version (for code):**

:::BlockQuote
...?$expand=fields&$filter=fields/SAPFacility%20eq%20'Complete'%20and%20fields/LinkEtnerpriseSaplinkError0%20ne%20'True'
:::

**5. Boolean Field Values**

| Value | Boolean |
| ----- | ------- |
| 0     | False   |
| 1     | True    |

**6. Common Pitfalls**

| Mistake                | Result                                      |
| ---------------------- | ------------------------------------------- |
| Using = instead of eq  | Filter ignored                              |
| Missing fields/ prefix | Query fails or returns incorrect results    |
| Unindexed fields       | Filter errors unless workaround header used |
| Null Boolean values    | Ignored by Graph API                        |


[title] Untitled
[path] Agnostic Guides/Developers Guide/


[title] Agnostic Guides
[path] /


[title] AuditLink
[path] Agnostic Guides/Solution Guide/

AuditLink is a tool that facilitates the secure collection, packaging, and sharing of audit-related files. It enables users to gather documents and content linked to SAP objects (ArchiveLink only), organize them into audit bundles, and distribute those bundles to auditors or relevant personnel.&#x20;

At the end of the process, AuditLink generates an optional HTML file that contains a summarized list of the all the collected contents.

<u>There are 4 methods to run AuditLink:</u>

1. Delivered reports
2. Customized or new reports by yourself the customer
   - Best practice is to copy delivered report and change to suite your needs
3. Excel Spreadsheet
4. Direct ArchiveLink Table Selectdion

Refer to the section 'Execution' for User instructions on how to run the various methods.

## Pre-Configuration Requirements

Setup Content Repositories, CMS profiles and tags, and RFC destination as part of a standard Link Enterprise implementation. These will enable RFC communication between SAP and external repository(ies).&#x20;

## SAP Security Requirements

Running AuditLink requires 2 types of SAP authorizations:

### Link Enterprise SAP T-Code Authorization

1. Mandatory: Any AuditLink End-User will need access to the below transaction to create AuditLink Bundles.  This should be granted by your SAP Securitiy Team:
   1. /DFLOW/AUDITLINK
2. Optional: For a user to view previously create AuditLink bundles (for everyone), the below transaction can be granted:
   1. /DFLOW/AUDITLINKDASH

### &#x20;Link Enterprise Global or Attachment Level Authorization

When you create a bundle, Link Enterprise checks its own config via transaction /dflow/sys and choose the menu path Configure->AuditLink->Security.

At least 1 entry in this table must exist.  <u>For details on this configuration, please refer to the section below labeled AuditLink Configuration #3: Security. </u>

## Bundle Location Configuration

The destination for saving audit bundles must be a mounted drive (e.g., network share or mapped drive) <font color="#F97316">accessbile by both </font>the SAP system (in the background) and the User.  This is setup in the 3 elements of setup/configuration below.  Albeit configured in different methods and syntax, these three elements must resolve to the exactly the same location (ie: be a 3-way match).

### 1) Transaction FILE

1. Assign the physical path of the mounted drive to the logical path ZAUDITLINK using transaction FILE in SAP.
   - You must create the ZAUDITLINK  logical file and ZAUDITLINK file path in your system
   - The destination (ie: home base for the bundles), albeit may not match in terms of format (example: Linux SAP system vs. windows network drive), must resolve to the same location as the User Workstation Accessbile drive below, as well as the section AuditLink Configurations 2.1.1 below.
   - Confirm the mounted drive is properly connected to the SAP system, allowing read/write access during audit bundle generation.
   - The physical path must have the parmaers \<PARAM\_1>\\\<FILENAME> in exact casing wih the '\\' in between.
   - Example of Logical File:

     ![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/QO4Mi_G3j9KI5e84l4Ecc_image.png)
   - Example of a Windows mounted drive logical path:

     ![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/9QWU98H8kVrhhm1Ev45fu_image.png)
   - Example of an Azure file share mount logical file path:

     ![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/jsHl2QZm1lgkNEF24r1K5_image.png)

### 2) User Workstation (OS) Accessible

- Ensure the end user has appropriate read and write permissions to a mounted drive to the same location as the above FILE transaction as well as the section AuditLink Configurations 2.1.1 below.
  - Example of user workstation windows share:
    -

      ![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/S5IwZbgTaKNis6IAER49B_image.png)

### 3) Bundle Locations

See section AuditLink Configurations 2.1.1 below.



## Additional AuditLink Configuration

Configure the AuditLink rule via transaction /dflow/sys and choose the menu path Configure->AuditLink. There are four AuditLink rule elements to configure:

1. Base Connectivity: Assign CMS tag to content repository. This tag identifies the RFC connection used to retrieve content from defined repository.
2. Bundle Locations: Define allowed locations where users can save audit bundles.  1 "root" location configuration entry is required, user based locations are optional.
   1. WRoot Location: This must match the mounted drive in the "**Transaction FILE**" and "**User Workstation Accessbile**" location in the requirements outlined above.
      - This entry is specified with a '\*' in the user field. Example:
        -

          ![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/wTL3sxbTuwfNQihFsxukf_image.png)
   2. User Location (optional): This entry is at the user ID level and forces a bundle to be created in a folder within the root location.  This could be by user or by controlling area or however you wish to organize your bundles.  This typically is only used when you want to keep certain bundles separate for security or organization reasons.
      - Specify a location with no '\\', just a folder name. Example:
        - ![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/9bjZYX_gX2VmETcMJLAQq_image.png)
      - NOTE: The folder COA1000 must ALREADY exist within the root location.&#x20;
3. Security: This table specifies whether or not to enforce an S\_WFAR\_OBJ authorization check.  This can be used to prevent users who do not typcially have authorization to view attachments to still create bundles.  This can be determined by:
   1. Option 1: A "global rule" level (\* or user id) OR whether to enforace at attachment level using the .&#x20;
      1. User ID Level: This is checked first. Leave all fields BLANK except for enter the SAP USER ID in the user name field.  Example:
      2. ::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/sntIpaJ605PLdujm-DukD_image.png" size="40" width="564" height="540" position="center" showCaption="false"}
      3. Wildcard Level: This is checked 2nd. Leave all fields BLANK except for a \* in the user name field.  This is the most straight forward way to configuration AuditLink with or without S\_WFAR\_OBJ authorization (see below).  Example:



         ::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/MuFGvKwjTOyNtREc3znSe_image.png" size="40" width="628" height="462" position="center" showCaption="false"}
   2. Option 2: This is only check if a global rule in Option 1 is not found.  Based on content repository, SAP object, and document type. (note: user name field is ignored in this check). Do not uses \*'s.  This option will perform 4 levels of granularity:
      1. Exact match at Repository ID and SAP Object and DocType.
      2. Exact match at Repository ID and SAP Object.  DocType left BLANK
      3. Exact match at Repository ID and DocType.  SAP Object left BLANK
      4. Exact match at Repository ID.  DocType and SAP Object left BLANK
   3. <u>Regardless of which option, a rule must be found, and that rule determine whether S\_WFAR\_OBJ (Activity 03) is checked at the attachment level. </u> This is determine by within the found rule, enabling/disabling the field "En.AuthCheck" as shown in the above example.
   4. Note: At least one entry is required in this table.
4. Reports: Define reports to be executed when generating an audit bundle. Reports are based on a business object and tailored to the audit context.
   - Incl. HeaderDocs: Include attachments at the header level of the document in the final bundle.
   - Include HTML: Generate and include an HTML file summarizing the list of attachments. This file will be saved in the bundle folder.
   - Include Results: Add a .TXT results file to the bundle, showing a summarized count of successfully retrieved attachments and noting any failures.
   - Email: Send an automatic notification email to the user once the bundle creation process is complete.
   - Run Auto:  Automatically generates a bundle name using the current date, time, and SAP user. Skips manual naming prompts.


[title] Functional Overview
[path] Agnostic Guides/Solution Guide/Untitled/

## Summary

The functional diagram below illustrates Gimmal Link Enterprise AP at a high level followed by a brief summary of each step.

For more detail on each step and their configuration and options, please refer to the additional sections in this document:

1. Configuration
2. Working with TrackLink
3. Working with Statistics
4. Administration
5. Customization

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/Zh_BEMPFI9-ZX1bO-eBYa_image.png)



## Steps

### Invoice Capture

Gimmal Link allows you to choose your method of capturing/scanning and ingesting your invoices.  Once the invoice is in your content repository, Gimmal Link is configured to recognize they are ready to be sent to Gimmal Link in SAP to start the Gimmal Link Accounts Payable Workflow.



### i.  Original Invoice Metadata

It is ideal that your Invoice Capture process is able to recognize original invoice metadata at the time of comital to your content repository.  <u>Any metadata captured can be sent to SAP to assist the Gimmal Link Accounts Payable Workflow and drives Step 1 Initial Invoice Processing, drastically improving efficiencies in the overall processing of an invoice.</u>

This step is done automatically in the background by Gimmal Link.&#x20;



### 1.  Initial Invoice Processing

This is the first step of the Gimmal Link Accounts Payable Workflow within SAP.  This step can be configured for:

1. Pre-population of data to decrease data entry time and errors
2. Optional auto invoice creation
3. Exception Mangement&#x20;
4. Optional auto exceptions
5. Dynamic Prioritization
6. Approver Selection (optional)
7. Initial AP Inbox Queue Load Management and Agent Routing&#x20;
8. Optional Coordinator stage

As mentioned above in the Invoice Capture Stage, any original invoice metadata that is available can be leveraged in the above configuration Gimmal Link Accounts Payable Workflow options.

Users work from the Gimmal Link TrackLink queue which can be filtered and sorted and customized to be the most effective for your AP processing team.  In addition to processing the invoice work-item, it also has a host of additional functionality for note taking, raising exceptions, reprocessing, and much more.

In addition to flexible Gimmal Link Accounts Payable Workflow agent / role resolution setup, AP processing team can also configure Gimmal Link TrackLink to load balance work-items across a group.

It is in the Initial Invoice Processing stage that once an invoice is created (parked, held, posted), Gimmal Link automatically creates a link to this invoice in your content management system.



### 2.  Invoice Approvals

After Initial Invoice Processing, and after any exceptions are triaged, is the approval stage.  Gimmal Link Accounts Payable Workflow comes with up to 5 levels of approval.  Approvers can be determined by the Gimmal Link Agent table (with optional dollar value thresholds), selected manually by the AP Clerk, or previous Approver (with optional ASL check), or more common ASL limits set forth in either your Organization Structure.  Approver determination is also fully customizable if you would like to implement your own role resolution.

The approval step can be configured to be skipped for PO based invoices.

Rejections (based on configurable rejection codes), note taking, raising exceptions, display original attachments as well as adding optional additional document to your invoice and content repository are all standard functionality.&#x20;

In addition, external / outside of SAP approvals are available based on Gimmal Link's integration with your content repository or any non-SAP workflow runtime workflow engine, included mobile applications.



### 3.  Final Invoice Processing

The last step in the Gimmal Link Accounts Payable Workflow is final Invoice Processing. &#x20;

This step can be configured for:

1. Automatic posting of invoices
2. Skipping of this step if invoice is already posted
3. Exception Management&#x20;
4. Optional auto exceptions
5. Dynamic Prioritization
6. Final AP Inbox Queue Load Management and Agent Routing&#x20;

This step is optional, and is often a different agent or group of agents than initial AP, as the last step in the workflow it is also the last chance to manipulate/check the invoice before posting and thus submitted to your standard SAP payment run.



### 4.  Exception Management

Exception Management is a big part and strength of the Gimmal Link Accounts Payable Workflow.  Each dialogue step (ie: a work-item that is delivered to a user or group of users) has the option to "manually" raise an exception. &#x20;

We say "manual", as each step whether it be a dialogue step or a background step (a step in the workflow that is behind the scenes/automatic), can also be configured for pre delivered auto-exceptions as well as custom auto-exceptions.  Auto Exceptions are those that occur before and Initial AP Clerk, Approver, or Final AP Agent receive a work-item.  &#x20;

For exceptions of either variety, a work-item is generated to an agent/set of agents via configuration who in turn process / resolve the exception.  When resolved, the work-item returns to the stage in which the exception originated.

Exceptions can also be configured to allow termination of the workflow (duplicates, etc) as well as customized to trigger a non-Gimmal Link process, as well as optionally select approvers.

Note that you can also choose to configure or customize the auto-completion of an exception as well (regardless whether it was raised automatically or manually).&#x20;

An example of raising an auto-exception would be for a PO based invoice in which the goods have not yet been received.  The invoice (whether parked or not created) work-item can be automatically routed to an "Goods Not Received" exception.&#x20;

An example of auto-completion of an exception would be in the same scenario - you may choose to have a nightly job run that determine whether any work-items in the "Goods Not Received" exception have now been fully received.  If they have been received, the exception is automatically set to resolved and the work-item returns to the next stage in the workflow.&#x20;



### ii.  SAP Invoice Metadata

You can optionally configure any SAP metadata to be sent "back" to your content management system throughout the lifecycle of the invoice in the Gimmal Link Accounts Payable Workflow. &#x20;

This sending of metadata from SAP to your content management system before and after each every stage in the workflow, ensuring your content management system (CMS) is in sync. &#x20;

Some potential reasons to do this are:

1. Enable reporting in your CMS system
2. Enable retention in your CMS system
3. Enable workflows in your CMS system&#x20;

This step is done automatically in the background by Gimmal Link.&#x20;



### a.  Gimmal Link TrackLink

Gimmal Link TrackLink is your home base for almost all elements related to the Gimmal Link Accounts Payable Workflow.

Leveraging an SAP ALV "report" approach, the TrackLink toolset provides the following functionality:

1. Allows all agents (ie: Initial AP Agents, Exception Agents, Approvers, Final AP Agents) to process their assigned work-items
2. Acts as shared Inbox for work-items with multiple agents (no SAP Office required)
3. Fully configurable sorting and filtering of customer defined layouts to allow for prioritization, queue management, and different "views" of invoices to be processed
4. Advanced note taking and viewing
5. Viewing of images from your content management system
6. A suite of Administrator utilities such as:
   1. forcing work-items to complete or terminated
   2. mass note taking
   3. year end rollover
   4. agent re-assignment
   5. and more.

For more detail please refer to the section "Working with TrackLink" located in this document.&#x20;



### b.  Gimmal Link Statistics (beta only)

Gimmal Link Statistics provides comprehensive analysis of your Gimmal Link Accounts Payable Workflow processing.  These metrics include:

1. Average processing times per stage
   1. Time to create/park/hold invoices&#x20;
   2. Time to approve
   3. Time to post
   4. Exception resolution
2. Average processing times per rule unit:
   1. ArchiveLink DocType
   2. Company Code
   3. Invoice Type
   4. Invoice Category
   5. Business Unit
   6. Invoice Flag
3. Deadlines missed
4. <u>Discounts achieved and missed</u>

All metrics can be drilled down into for further detail and recognizance and analysis. &#x20;

You maybe also implement your own statistic gathering methods for additional metrics.

For more detail please refer to the section "Working with Statistics" located in this document.&#x20;



## DeadLine Monitoring

Each dialogue step of the Gimmal Link Accounts Payable Workflow can be configured with deadline monitoring.  Deadline monitoring is a feature of the SAP workflow runtime engine of which the Gimmal Link Accounts Payable Workflow is built upon.

Each rule configured can be assigned a number of days in which a work-item must be processed within.  If this does not occur, the work-item is automatically escalated.  Escalation agents (or deadline agents) can be configured per rule or according to your needs such as based on your HR organizational structure.



## Notifications

Each dialogue step of the Gimmal Link Accounts Payable Workflow can be configured for basic and customized notifications.

Basic notifications send an email based on the agents SAP profile.  This can be optionally customized to send notifications based on your preferred corporate communication platform.


[title] DocMigrator
[path] Agnostic Guides/Solution Guide/

Gimmal Link Enterprise DocMigrator provides an SAP based toolset to migrate content from a source system to a target Gimmal Link Enterprise supported repository, including SAP linkage maintenance, metadata transfer, plus additional follow up processing tasks. &#x20;

DocMigrator supports the following `sources:`

1. SAP Database Attachments
2. SAP Database Notes (these are represented as .txt files in the target system or export)
3. SAP ArchiveLink Content Server
4. Custom ABAP Class-Method
5. FileSystem
6. Gimmal Link ECM

And the following `target` end-points:

1. SAP Database
2. Gimmal Link ECM
3. Content Server

A Gimmal Link migration consists of **4 stages**:

1. Configuration
2. Load Migration Table - sets the stage for what is to be moved, where it is to go, and what options.  These can be done via four methods:
   1. ArchiveLink link table entries (most common)
   2. .CSV file containing entries to be migrated and corresponding data files
   3. A custom ABAP Class-Method to create either of the above two options
   4. Content stored in your SAP database
3. Migrating Entries in the Migration Table - migrates the content w/ metadata if applicable and updates the  status of the Migration Table
4. Perform any post-processing tasks or utilities - allows you to delete source content and links if applicable, plus more utilities

A very useful utilities is the abilty to export content to a filesystem for review or validation.

**In addition, for SAP Database Notes and SAP Database Attachments, the DocMigrator can be used to see what you have in your database if you are unsure.  Often users will have been allowed to store content in the SAP Database without document administration or business owners knowing.&#x20;**

In addition, you can delete the entire, or a portion (using all the Source and Target selection criteria) of the docManager load/migration table using the "Delete Migration Table option.  Take extreme caution when doing so as your entries cannot be retrieved (albeit they can be re-loaded). &#x20;

As you process your migration steps, the DocMigrator updates link entries in the Migration table with the status and flags each step as it is completed. &#x20;

At any point you can display your Migration Table and its current state using the "Display" option.

Compiled metadata (if applicable) and status messages can be drilled down/single clicked into from the ALV report for more detail (indicated by an underline).&#x20;

It is highly recommended to read the `Migration Concepts and Strategies `section on how to architect and execute your migration as it pertains to Gimmal Link Enterprise setup.

In addition, `each content repository may have an additional notes or best practices section`, please ensure you reference if applicable.&#x20;

To configure DocMigrator, enter transaction /dflow/sys and choose the menu path Configure->DocMigrator.

To enter the DocMigrator Dashboard, enter transaction /dflow/sys and choose the menu path Dashboards->DocMigrator.




[title] Customizing
[path] Agnostic Guides/Solution Guide/Untitled/

Albeit Gimmal Link Enterprise AP can be implemented code-free with its flexible and configurable platform, you can tailor the workflow even further to suite your precise needs via customization.

All Gimmal Link Enterprise customization is accomplished via provided Gimmal Link Enterprise BADI's.  Each BADI's interface is described more in the Gimmal Link Enterprise Developers Guide.

Below is a list of all Gimmal Link Enterprise AP Workflow BADI's:&#x20;

`ENHANCEMENT SPOT: /DFLOW/APWF`

## Initialization - Classification

BADI: /DFLOW/APWF\_BADI\~CLASSIFICATION

Initialization of the workflow container occurs once per workflow at the start.  This BADI allows you to modify the Classification of an invoice entry prior identification of a process rule (see below).

## Initialization - Processing Rule

BADI: /DFLOW/APWF\_BADI\~PROCESSING\_RULE

Initialization of the workflow container occurs once per workflow at the start.  This BADI allows you to modify the Processing Rule for an invoice.

## Workitem Text

BADI: /DFLOW/APWF\_BADI\~WORKITEMTEXT

Gimmal Link Enterprise comes with default workitem text:

&#x20;               Gimmal Link Enterprise AP: \<workflow stage> \<workflow ID>

This BADI allows you to modify or create your own.

## Auto Create

BADI: /DFLOW/APWF\_BADI\~AUTOCREATE

Gimmal Link Enterprise comes with built in Auto Create logic for both NON-PO and PO based invoices.  This BADI allows you to modify or create your own logic.&#x20;

## Pre-Population

Gimmal Link Enterprise comes with built in Pre-Population logic (in the form of BDC routines) for both NON-PO and PO based invoices.  This BADI allows you to modify or create your own logic.&#x20;

BADI: /DFLOW/APWF\_BADI\~PREPOPULATION

## Auto Post

BADI: /DFLOW/APWF\_BADI\~AUTOPOST

Gimmal Link Enterprise comes with built in Auto Post logic for both NON-PO and PO based invoices.  This BADI allows you to modify or create your own logic.&#x20;

## Approver ASL Check

BADI: /DFLOW/APWF\_BADI\~ASLCHECK

Gimmal Link comes with built in ASL logic against its own Gimmal Link tables.  This BADI allows you to modify or create your own ASL logic.&#x20;

## Role Resolution / Agent Determination

BADI: /DFLOW/APWF\_BADI\~ROLERESOLUTION

Gimmal Link cEnterprise omes with built in Role Resolution logic against its own Gimmal Link tables.  This BADI allows you to modify or create your own ASL logic.&#x20;

## Notifications

BADI: /DFLOW/APWF\_BADI\~NOTIFICATIONS

Gimmal Link Enterprise comes with built in Notifications logic against a work-item recipient using their SAP profile.  This BADI allows you to modify or create your own ASL logic.&#x20;

## TrackLink

BADI: /DFLOW/APWF\_BADI\~TRACKLINK\_DATA

Gimmal Link comes with built in TrackLink queue monitoring, searching, and reporting.  This BADI allows you to modify what data is being constantly updated and tracked by Gimmal Link.

## TrackLink ALV

BADI: /DFLOW/APWF\_BADI\~TRACKLINK\_ALV

Gimmal Link Enterprise comes with built a TrackLnk reporting ALV.  This BADI allows you to modify columns and data displayed.&#x20;

## Statistics

BADI: /DFLOW/APWF\_BADI\~STATISTICS\_DATA

Gimmal Link Enterprise comes with built in Statistics gathering and reporting.  This BADI allows you to modify or create your own analysis logic.&#x20;

## Statistics ALV

BADI: /DFLOW/APWF\_BADI\~STATISTICS\_ALV

Gimmal Link Enterprise comes with built a Statistics reporting ALV.  This BADI allows you to modify columns and data displayed.&#x20;

## Pre-Processor

BADI: /DFLOW/APWF\_BADI\~PREPROCESSOR

This BADI allows you to modify the workflow in-progress buffer and rule processing entry *prior&#x20;*&#x74;o each step of the Gimmal Link Enterprise AP workflow, for both foreground/dialogue work-items (Initial AP, Approvals, Final AP, Exceptions) as well as background steps (such as Auto Create, Auto Post). &#x20;

CAUTION: This BADI allows you to take complete control of the pre-process aside from possible agents.  Use with caution.

## Post-Processor

BADI: /DFLOW/APWF\_BADI\~POSTPROCESSOR

This BADI allows you to modify the workflow in-progress buffer  and rule processing entry *after* to each step of the Gimmal Link Enterprise AP workflow.  This typically determines the "next stage" in processing.

CAUTION: This BADI allows you to take complete control of the post-process.  Use with caution.

## Pop-Up PBO

BADI: /DFLOW/APWF\_BADI\~POPUP\_PBO

This BADI allows you to modify the Gimmal Link Enterprise AP processing popup screen for Initial AP, Exception Manager, Approvals, and Final AP.  You can enable and disable button, as well as change text.&#x20;

## Pop-Up PAI

BADI: /DFLOW/APWF\_BADI\~POPUP\_PAI

This BADI allows you to modify the Gimmal Link Enterprise AP processing popup for logic Initial AP, Exception Manager, Approvals, and Final AP based on which pushbutton is selected.


[title] Fiori DocManager - SAP Fiori Launchpad Plugin
[path] Agnostic Guides/Solution Guide/DocManager/

**Deployment Guide for DocManager Fiori plugin (v3.0)**

| &#x20;                                                        |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| ------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Topic**                                                     | **Description**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| **Plugin Features**                                           |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| Required Back-End Product                                     | <br />SAP S/4HANA FPS 2021 and above<br />S4 CORE 106 or above (for draft mode support)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| Required Back-End ECM Components                              | SAP Transport (ECM) add-on                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| Minimum UI5 Version Requirements                              | SAP UI5 1.114.11                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| Description                                                   | <br />Attachments are an integral part of business applications and processes. In SAP S/4HANA, the DocManager Fiori plugin is offered as a central unified solution for uploading attachments across applications. The applications can integrate operations such as upload, download, delete and access to virtual links.<br />The Link Enterprise DocManager Fiori plugin is a reusable component that can be integrated to any standard SAP Fiori Object based app e.g. Purchase Order based application to enable attachment capabilities in SAP S/4HANA.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| **Implementation Information - SAP Transports**               | Contact Account Manager or VersaFile point of contact.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| **Implementation Information - Installation & Configuration** | - The app consists of front-end components (such as the user interfaces) and back-end components (such as the OData service). The back-end and front-end components are delivered as SAP transports and have to be installed in a system landscape that is enabled for SAP Fiori.<br /><br />Front-End Components<br />•	SAP BSP Application - /DFLOW/FIODOCMAN<br />•	ICF Path - /sap/bc/ui5\_ui5/dflow/fiodocman<br />•	UI5 Component - dflow\.fiori.plugin.docmanager.Component<br />•	Package - /DFLOW/Link Enterprise\_FIO\_DOCMANAGER<br /><br />Back-End Components (ABAP)<br />•	OData Service –<br />External Service Name – /DFLOW/FIORI\_DOCMANAGER\_SRV<br />Technical Service Name - /DFLOW/FIORI\_DOCMANAGER\_SRV\_0001<br />Version – 0001<br />Package – /DFLOW/Link Enterprise\_FIO\_DOCMANAGER<br /><br />•	Plugin Definition –<br />Navigate to transaction - /UI2/FLP\_CONF\_DEF to define properties for your plugin as shown in screenshot below. (taken care by transports so more of validation)<br />- <br />:inlineImage[]{src="https://archbee-image-uploads.s3.amazonaws.com/eihAf9nQ3O9NUnS2cAmi6-hgfiLWVJX0Zm-PueN7tEB-20250616-145214.png" alt caption}<br /><br />**Properties**: Below property definitions explained are key to the overall functioning of the plugin component. (These entries are delivered with package. Please consult your product support contact for any questions.)<br />:inlineImage[]{src="https://archbee-image-uploads.s3.amazonaws.com/eihAf9nQ3O9NUnS2cAmi6-D2BFW1aj8gkNx6jnKQp8N-20250616-145710.png" alt caption size="80" width="825" height="309"}<br />•	BADGE\_MAX\_VALUE = badgeMaxValue<br />- The maximum number to display in the buttons' badge. If the number of attachments is greater than the maximum number, the maximum number followed by a plus sign will be displayed.<br />•	DISPLAY\_BADGE = displayBadge<br />- Controls whether or not to display a badge next to the plugin button with the number of attachments.<br />•	DISPLAY\_TYPE = displayType<br />- Is linked to the appearance or user experience of the plugin which basically is defaulted to ‘Dialog’ but alternatively ‘Popover’ is supported too.<br />•	DRAFT\_ENABLED = draftEnabled<br />- This property is used to control the availability of draft feature in general.<br /><br />**Enabling/Activating the Plugin (Customizing): &#x20;**<br />/UI2/FLP\_CUS\_CONF → To make your plugin available in specific clients<br />:inlineImage[]{src="https://archbee-image-uploads.s3.amazonaws.com/eihAf9nQ3O9NUnS2cAmi6-bTMldYvVywWpdryohkO2k-20250616-145821.png" alt caption size="82" width="922" height="310"}<br /><br />Property Values: Providing values to the property defined is performed in this transaction. These values govern the app behavior and shouldn’t be changed without consulting product support. Values are case-sensitive too.<br />:inlineImage[]{src="https://archbee-image-uploads.s3.amazonaws.com/eihAf9nQ3O9NUnS2cAmi6-vn4-fsx3MFLXA9fZXPHnh-20250616-150007.png" alt caption size="80" width="837" height="357"}<br />•	UI Adaptation<br />The DocManager plugin was developed to replace SAP’s standard Attachment Services UI, addressing its limitations and offering additional functionality. To prevent users from seeing the default “Attachments” tab in Fiori apps, use the Key User Adaptation approach to hide the standard “Attachment” feature wherever DocManager is enabled.<br /><br />Our solutions team will help adapting apps during implementation but for further details please refer to standard SAP guide here to learn more about pre-requisites and approach.<br /><br />•	Plugin Activation Control: In addition to the core ECM configurations in order for the Fiori plugin to work we also deliver an configuration cluster /DFLOW/FDMCFG that can be accessed via T-Code **/DFLOW/SYS -> Menu Path -> Configure -> “Attachment Services” -> “Fiori Options”** to control the plugin activation per any standard or customer Fiori apps and along with other additional technical details. Our solutions team works with customers to identify potential SAP Business Processes to be enabled and accordingly help populate required information based on your SAP S/4HANA version. Below is a sample entry for activating DocManager plugin for Business Partner app.<br />:inlineImage[]{src="https://archbee-image-uploads.s3.amazonaws.com/eihAf9nQ3O9NUnS2cAmi6-oa6PgKzwx82muQg9-D1YF-20250616-150121.png" alt caption size="80" width="754" height="226"}<br /> |
| **Validation Checklist**                                      | - Validate Customers S/4HANA and Fiori Versions for compatibility and support.
- Import DocManager related transports into development environment.
- Activate (if needed) SICF services for oData and Plugin.
- Validate entries for Fiori DocManager Plugin definition and activation entries in SAP Fiori Launchpad customizing.
- Identify and enable plugin to desired SAP Standard Fiori apps.
- Support customers to complete UI Adaptation on standard SAP Fiori Apps to hide “Attachment” tab.
- Launch and validate Fiori DocManager plugin on all respective standard Fiori apps.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| **Technical Considerations – HDM Dependancies**               | <br />- DocManager plugin works in absence of HDM functionality however if HDM is enabled below matrix will help clarify any limitation towards support for draft-mode in Fiori Apps.<br />:inlineImage[]{src="https://archbee-image-uploads.s3.amazonaws.com/eihAf9nQ3O9NUnS2cAmi6-LwNpXiESNiXsiXgUtJIl5-20250616-144342.png" alt caption size="82" width="601" height="139"}<br />                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| **Technical Considerations – Standard Fiori Apps**            | - Only limitation with standard Fiori Apps would be with support for Draft-Mode attachment feature as the plugin only supports SAP Standard Fiori Apps that are built using BOPF framework that provides the ability to handle drafts. Learn more [here](https://experience.sap.com/fiori-design-web/draft-handling/#top) about SAP draft handling concept and dependencies.<br />- URLs are well-formed and provide required information like Semantic Object, Action and Object Keys for the plugin to support effectively. Business Objects that are single-valued e.g. Purchase Order number or multi-valued object keys e.g. Purchase Requisition Item must be coded into URL with appropriate key-value pairing e.g.*&#x20;PurchaseRequisition='1000489',PurchaseRequisitionItem='00030',*<br />- Recommendation - When customers leverage Fiori DocManager plugin, we recommend to hide the standard "Attachments" tab in SAP Fiori Apps to ensure the users are not storing attachments using standard SAP options. "Attachments" tab can be hidden using Fiori "**Key User Adaptation**" as explained here - [click here](https://help.sap.com/docs/ABAP_PLATFORM_NEW/a7b390faab1140c087b8926571e942b7/5c424437bf794f809087fdce391149f2.html)<br />:inlineImage[]{src="https://archbee-image-uploads.s3.amazonaws.com/eihAf9nQ3O9NUnS2cAmi6-AseBFYIvv-6ThdpiP89LF-20250618-162731.png" alt caption}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| **Technical Considerations – Custom Fiori Apps**              | * Custom Apps must have a valid Semantic Object and Action associated with it.
* Custom Apps must be associated to a BOR Business Object (standard or custom) to associate with ArchiveLink document types.
* Custom Apps built using SAP’s standard guidelines for handling draft will be able to take advantage of draft-mode support in DocManager plugin. (*Learn more [here](https://experience.sap.com/fiori-design-web/draft-handling/#top) about SAP draft handling concept and dependencies*).
* Custom Apps built using non-standard SAP Fiori floorplans need to be reviewed and tested on a case-to-case basis provided other points above meet the requirements.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
|                                                               |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |

To conclude, this page is updated from time to time and any discrepancies found please reach out to your customer success contact.

[title] Working with TrackLink
[path] Agnostic Guides/Solution Guide/Untitled/

## Overview

Gimmal Link Enterprise TrackLink is a ALV based "report" that is considered home-base for all users and administrators.  TrackLink is used as the end users processing queue as well as a host of additional functionality for inbox management, searching and tracking, and administrator functions.&#x20;

Below is a sample view of TrackLink (\*\*note: this is sample only — you configure and choose which columns are displayed — from available Gimmal Link pre-available columns to your own custom fields):

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/uaaveq3r-m7S_8g9pRIFb_image.png)

Below is a list of functionality offered:

1. User inbox processing
2. Load balancing across processing group
3. Dynamic filtering and sorting
4. Wide range of search options
5. Configurable layout at the global or user level
6. Customizable layout content&#x20;
7. Drill-down functionality to invoices, purchase orders, etc.
8. Integration with your SAP payment run status
9. Enhanced Work-Item Processing function:
   1. Security based forwarding (optional)
   2. Displaying image from content repository
   3. Enhanced "note" taking and viewing
   4. Exception processing
   5. Reprocessing
10. Administrator functions:
    1. Single and mass Reassignment
    2. Single and mass forced completion and buffer status management
    3. Single and mass enhanced "note" taking
    4. Single and mass Role Resolution update
    5. Full invoice year-end rollover toolset with link management&#x20;



## Searching

The ability to search and find a work-item quickly for customer support or other reasons is essential.

Gimmal Link Enterprise TrackLink and its underlying structure means the data is at your fingertips without any data compilation that would result in long wait times.  A wide variety of search options are available in standard SAP format (ie: select-options).

Results are displayed in a straightforward layout and then be further filtered and sorted.

Search results are independent of whether the user searching is able to process the work-item or not (they are of course prevented from processing if they are not a "possible agent").&#x20;

You can choose to display in-progress invoices only or included completed workitems.&#x20;

## User Inbox Processing and Functions

User inbox processing is the day to day work queue of your AP team and Exception managers.  Albeit TrackLink is also used by approvers when outside-of-sap or mobile approval is not configured, TrackLink flexibility is realized when leveraged as home-base for end-users main job is to process work-items. &#x20;

Working in tandem with configured role-resolution to determine "possible agents," Gimmal Link Enterprise AP and the underlying SAP workflow runtime system manages the sharing of these work-items and prevents work-items from being processed more than once.  Once a user has "touched" a work-item, it is reserved by them for processing until it is either completed or resubmitted back to the larger "team". &#x20;

Therefore, at the highest level, a user can view any list of work-items (which is basically equivalent to Searching), but they can also choose to view work-items that they are a "possible agent" for / are allowed to process.

By choosing to only view "their" work-items, this enables TrackLin to be their SAP Inbox for processing.

A user can further filter and sort by configurable and saveable layouts to provide different "views" of their queue.

Within their queue, there are 9 processing functions available:

1. **Execute Work-item:&#x20;**&#x54;he most common function, this allows the user to execute the work-item of which they are a possible agent of.  What happens upon execution depends on the workflow stage and configured functionality (ie: create invoices, display invoice, approve invoice, triage an exception, etc).
2. **Display History:&#x20;**&#x45;very detail about an invoice is logged extensively and is viewable for light reading enjoyment as well as analysis into the history of an invoice and its processing.
3. **Forwarding:** If *and only if* a user has the appropriate authorization, forwarding a work-item outside of the possible agent group is available.   Enabling forwarding is completely optional and is typically driven by a customers internal process.&#x20;
4. **Create Note:&#x20;**&#x20;Allows you too notes to a work-item.
5. **Display Note List:&#x20;**&#x20;Display a list of all notes for a work-item.  You can then view the note itself by drilling down into that note.
6. **Display Note Summary:&#x20;**&#x20;Displays a summary of all notes so you do not have to search through all the notes if there are a number of them.
7. **Display Work-item:&#x20;**&#x20;Displays the SAP workflow runtime system work-item.
8. **Display CMS Image:** Displays the original invoice from your content management system.
9. **Drill-down:&#x20;**&#x20;If the SAP invoice has been created, you can drill down to display without processing the work-item.  You can also drill down into the purchase order.

## Administrator Functions



If configured as a Gimmal Link Enterprise Administrator, the below functions are available.  These functions can be processed for single work-items as well as mass processing:

1. **Force Buffer Status(Terminated/Completed/Reprocessed):&#x20;**&#x41;dministrators can force work-items to a particular status.
2. **Re-Assign:** Individual work-items can re-assigned to a different invoice.
3. **Create Note:&#x20;**&#x20;Above what is available at the end-user level, Administrators can add mass notes to the list of work-items displayed.
4. **Forward:** Above what is available at the end-user level, Administrators can mass forward the list of work-items displayed.
5. **Role-Resolution Redo:** If agent configuration is changed, this allows the redo of the role-resolution logic to update the appropriate agents/possible agents.&#x20;
6. **Year End Rollover: &#x20;**&#x53;AP document number contain the fiscal year.  For in-process work-items with SAP invoices that are not posted and year-end occurs, the year end process changes the key for the SAP invoice (including the SAP document number itself depending on your SAP configuration).  The Gimmal Link Enterprise Year End Rollover Utility automatically:
   1. Re-creates the invoice in the new year
   2. Updates the Gimmal Link Enterprise AP database
   3. Re-establishes any linkages to your content management system attachments
   4. Can optionally set the previous years invoice as marked for deletion




[title] Exceptions
[path] Agnostic Guides/Solution Guide/Untitled/Untitled/

## Overview

Exception management is a very powerful and flexible component of the Gimmal Link Enterprise Accounts Payable Workflow.&#x20;

Exceptions take two forms with regard to how they are raised:

1. Manually by the agent of a work-item
2. Automatically by either Gimmal Link Enterprise pre-configured Auto Exceptions or by customization via customer BADI's

Exceptions are in turn resolved via two methods:

1. Manually by the agent of a work-item
2. Automatically by either Gimmal Link Enterprise pre-configured Auto Exceptions or by customization via customer BADI's

Exceptions can also be configured to call custom logic to suite unique customer requirements.&#x20;

## Setup

Below are the options for configuring Exceptions:

1. **Exception ID:&#x20;**&#x54;he exception ID is a 2-digit code that you create.  You can use numbers such as 01-99 or letters.  Typical use is 01 thru 99 with a zero padding for 01 thru 09.
2. **Workflow Stage:** Exceptions are configured per "workflow stage" levels.
   There are three levels to the Gimmal Link Enterprise Accounts Payable Workflow:
   &#x20;  a. Initial AP
   &#x20;  b. Approval
   &#x20;  c.  Final AP
   If an exception is relevant to all three stages you can leave that field flag empty and it will be available in all three levels.
3. **Exception Code Text:** This is a free form description of the exception.
4. **Allow WF Termination:** Enabling this option provides the exception agent the option to terminate the entire workflow for this invoice.   If this is disabled that pushbutton is greyed out.
5. **Force Resolve:&#x20;**&#x45;nabling this option forces the originator of the exception to acknowledge that the exception has been resolved before processing further.
6. **Deadline (Days):** In days, how long a work-item will stay at the Exception stage before escalation.  Who receives this escalation is configured in the Agents configuration (outlined later in this document).

## Role Resolution / Agent Determination

Who will receive dialogue (foreground) work-items for Exceptions is configured in the Agent configuration.  Refer to the section "Agents" later in this document.&#x20;

## Customizing Options

The following customizing options are available for Exception Management.  For information on how to implement, please refer to the section "Customizing" later in this document.&#x20;

1. **Custom Workitem Text:** To implement your own Workitem text.
2. **Custom Role Resolution / Agent Determination:** To implement your own logic to determine work-item recipients&#x20;
3. **Custom Notifications:** To implement your own method of notifying agents.
4. **Custom Pre-Processor Logic:**  Powerful BADI to take control of all pre-processing logic
5. **Custom Post-Processor Logic:&#x20;**&#x50;owerful BADI to take control of all post-processing logic
6. **Custom POPUP PBO Logic:&#x20;**&#x54;o implement your own changes to the Gimmal Link pop-up windows for processing.
7. **Custom POPUP PAI Logic:&#x20;**&#x54;o implement your own logic to the Gimmal Link pop-up windows for processing.




[title] Search
[path] Agnostic Guides/Developers Guide/FileNet Endpoints/

Link Enterprise provides a web service endpoint that will allow you to retrieve a subset of documents based on a search criteria.

:::ApiMethodV2
```json
{
  "tab": "examples",
  "url": "https://localhost:82/scrud/search",
  "name": "Search ",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [],
    "bodyDataParameters": [
      {
        "kind": "required",
        "name": "cmsName",
        "type": "String",
        "description": "Name of the filenet system configured in Link Enterprise ."
      },
      {
        "kind": "required",
        "name": "whereClause",
        "type": "string",
        "description": "A where clause Used to query filenet to return a set of files depending on criteria set."
      },
      {
        "kind": "required",
        "name": "selectedCMS",
        "type": "string",
        "description": "Value should always be set to \"filenet\" to let Link Enterprise know which configured content system to search."
      },
      {
        "name": "location",
        "kind": "optional",
        "type": "string",
        "description": "filenet folder where the file exists.",
        "children": []
      },
      {
        "name": "repository",
        "kind": "required",
        "type": "string",
        "description": "Filenet repository where the file exists.",
        "children": []
      },
      {
        "name": "domain",
        "kind": "required",
        "type": "string",
        "description": "Filenet domain where the file exists.",
        "children": []
      },
      {
        "name": "selectClause",
        "kind": "required",
        "type": "string",
        "description": "filenet metadata field on which search is performed.",
        "children": []
      },
      {
        "name": "fromClause",
        "kind": "required",
        "type": "string",
        "description": "metadata Class name where the metadata fields and values are available.",
        "children": []
      },
      {
        "name": "recursive",
        "kind": "required",
        "type": "string",
        "description": "enable it to check if the file exists inside a subfolder.",
        "children": []
      },
      {
        "name": "orderBy",
        "kind": "required",
        "type": "string",
        "description": "filenet property that needs to be displayed in response. This can multiple values separated with \",\".",
        "children": []
      }
    ],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "l7mAccvIkcMGyR03J3_aP",
        "code": "[\n\t{\n\t\t\"someRequiredMetadataField\": \"someRequiredMetadataValue\"\n\t}\n]",
        "language": "200"
      },
      {
        "id": "C0tj4vmrgrTV7Xq8ZvvAu",
        "code": "",
        "language": "500"
      }
    ],
    "selectedLanguageId": "l7mAccvIkcMGyR03J3_aP"
  },
  "examples": {
    "languages": [
      {
        "id": "RinXZo0WaAz3lEkUOH2ux",
        "code": "{\n\"cmsName\":\"insertProductionSystemName (located in Link Enterprise gui)\",\n\"repository\":\"filenet_repository_name\",\n\"domain\":\"filenet_Domain_Name\",\n\"selectedCMS\":\"filenet\",\n\t\"selectClause\":\"someMetadataField\",\n\t\"whereClause\":\"This INFOLDER '/someFolderName' AND This = OBJECT('someMetadataValue')\",\n\t\"fromClause\":\"metadataClassName\",\n\t\"recursive\":\"True\",\n\"orderBy\":\"someRequiredMetadataField\",\n\t\"includeSubFolders\":\"True\"\n}",
        "language": "json"
      }
    ],
    "selectedLanguageId": "RinXZo0WaAz3lEkUOH2ux"
  },
  "description": "Search for all documents using a where clause. If successful will return a JSON Array with a size greater then or equal to zero with status code of 200. Otherwise status code 500 is returned. If it's a known error returns 200 with error message in response.\n",
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "autoGeneratedAnchorSlug": "search",
  "legacyHash": "2I1lkUo-tBmvDr0MrlixB"
}
```
:::


[title] CMS_API_CREATE
[path] Agnostic Guides/Developers Guide/Untitled/

| **Functionality&#xA0;**                               | **Description**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | **FileNet Notes&#xA0;**                                                                                                                                                                                                           | **Documentum Notes**                                                                                                                                                                                                                                        | **Box Notes&#xA0;**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | **M365/SharePoint Notes&#xA0;**                                                                      |
| ----------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------- |
| IV\_CMSPROFIL&#x45;**&#xA0;**<br /><br /><br /><br /> | Required: Determines which configured CMS Profile in Link Enterprise SAP to utilize. Combination of CMS Profile and CMS Tag determine the API destination and thus load across an RFC destination.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |                                                                                                                                                                                                                                   |                                                                                                                                                                                                                                                             |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |                                                                                                      |
| IV\_CMSTAG <br /><br /><br /><br />                   | Required: Determine which configured CMS Profile in Enterprise SAP to utilize. Combination of CMS Profile and CMS Tag determine the API destination and thus load across an RFC destination.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |                                                                                                                                                                                                                                   |                                                                                                                                                                                                                                                             |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |                                                                                                      |
| IV\_REPOSITORY <br /><br /><br /><br />               | Required: Determines which configured repository in Link Enterprise SAP to utilize                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | Object Store <br /><br /><br /><br />                                                                                                                                                                                             | Docbase <br /><br /><br /><br />                                                                                                                                                                                                                            | Default is the only Store/Repository supported since Box currently doesn’t support the notion of different repositories.                                                                                                                                                                                                                                                                                                                                                                                                                         | Site, site collection <br /><br />                                                                   |
| IV\_TYPE <br /><br /><br /><br />                     | Optional: what CMS type to create. <br />                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | DOCUMENT CLASS <br /><br />Defaults to the “Document” document class if unspecified.                                                                                                                                              | OBJECT TYPE <br /><br />Defaults to the “dm\_document” class if unspecified. <br />                                                                                                                                                                         | METADATA TEMPLATE <br /><br />Defaults to creating a document with no metadata template if not specified.                                                                                                                                                                                                                                                                                                                                                                                                                                        | CONTENT TYPE <br /><br />Defaults to creating a document of content type Document if not specified.  |
| IV\_USE\_MAPPING <br /><br /><br /><br />             | Optional: use mapping of IV\_TYPE to CMS type in Enterprise Connector if CMS. Used if ArchiveLink doctype name to CMS type mapping is required.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |                                                                                                                                                                                                                                   |                                                                                                                                                                                                                                                             |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |                                                                                                      |
| IV\_ID <br /><br /><br /><br />                       | Optional: id to use for versioning a document. When specified a new version of the existing id is created with the given content.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | GUID <br /><br /><br /><br />                                                                                                                                                                                                     | r\_object\_id <br /><br /><br /><br />                                                                                                                                                                                                                      | id <br /><br /><br /><br />                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | Versioning not supported <br /><br /><br /><br />                                                    |
| IV\_FILENAME <br /><br /><br /><br />                 | Optional: the filename of the content being added to the CMS. If omitted some systems allow for a contentless document to be added.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | Used for the “content element” as well as the “DocumentTitle” unless “DocumentTitle” is set in the metadata which will override this. <br /><br />May be empty for a contentless document.                                        | Used as the “object name “as well as the “title” metadata property unless title is set in the metadata which will override this. If the filename is empty then the “title” is set to the “object id.” <br /><br />May be empty for a contentless document.  | Used as the “name” metadata property unless “name” is set in the metadata which will override this. <br /><br />Box requires that a filename and subsequent content be passed in since currently there is no support for a contentless document.                                                                                                                                                                                                                                                                                                 | Used as the “LinkFilename” metadata property <br /><br /><br /><br />                                |
| IV\_CHECKIN\_AS\_MIN <br />                           | Optional: performs the check-in as a minor version.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |                                                                                                                                                                                                                                   |                                                                                                                                                                                                                                                             | Not supported <br />                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | Not supported <br />                                                                                 |
| IV\_CHECKOUT <br /><br />                             | Optional: allows you to checkout a document prior to creating a new version of the document.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | Only available with new versions. <br /><br /><br /><br />                                                                                                                                                                        | Only available with new versions. <br /><br /><br /><br />                                                                                                                                                                                                  | Checks out the document prior to creation and cancels the checkout after the creation has occurred to help guarantee no other person or process modifies the document while the creation call is happening.                                                                                                                                                                                                                                                                                                                                      | Not supported <br /><br /><br /><br />                                                               |
| IV\_FIND\_CURFROM\_ID <br /><br /><br /><br />        | Optional: allows you to find the latest version from the given id (since the id might not be the latest version of the document).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |                                                                                                                                                                                                                                   |                                                                                                                                                                                                                                                             | Not supported since currently Box ids are the same for every version.                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | Not supported since currently SharePoint ids are the same for every version.                         |
| IV\_LOCATION <br /><br /><br /><br />                 | Optional: (Mandatory for M365/SharePoint) allows you to specify where to add the document in the content management system.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | If unspecified documents are left unfiled. <br /><br /><br /><br />                                                                                                                                                               | If unspecified documents are stored in root of the users cabinet. <br /><br /><br /><br />                                                                                                                                                                  | A number for the exact folder location can be specified. <br /><br />If unspecified documents are stored in the configured root. <br /><br />Relative folder names can be used with a / being the root. If a root folder is configured for the Box CMS in the Enterprise connector all relative folder locations will be relative to the root folder configured. <br /><br />Relative folder names are not recommended for performance reasons.                                                                                                  | This is required and is the Document Library <br /><br /><br /><br />                                |
| IT\_FOLDER\_METADATA                                  | Optional: metadata will be applied at the folder level instead of the file level.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Not supported                                                                                                                                                                                                                     | Not supported                                                                                                                                                                                                                                               | Applies metadata at the top level folder only                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | Applies metadata at the top level folder only                                                        |
| IV\_FOLDER\_NESTED                                    | Optional: set to X if the use of CT\_CUSTOM you choose to use nested folders.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | Not supported                                                                                                                                                                                                                     | Not supported                                                                                                                                                                                                                                               | X = nested folders                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | Not supported                                                                                        |
| IT\_METADATA <br /><br /><br /><br />                 | Optional: metadata to set during creation. <br /><br />Some metadata cannot be set during creation and is only read only (some system properties). <br /><br />Updating some system properties in certain repositories may lead to unknown results. <br /><br />The Link Enterprise username and timestamp properties are automatically set as metadata during creation if they are configured on the particular CMS tab in the Link Enterprise Connector. <br /><br />When the same keys are used multi valued properties are set with all of the specified values. The ZMULTI flag is ignored during a create since the same key signifies a multi valued property by default.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | To assist with the date format for FileNet, you may choose to utilize the Link Enterprise helper method ‘/dflow/cl\_utilities\_helper=>format\_date’ to format a system date field to the format desired <br /><br /><br /><br /> | To assist with the date format for Documentum, you may choose to utilize the Link Enterprise helper method ‘/dflow/cl\_utilities\_helper=>format\_date’ to format a system date field to the format desired <br /><br /><br /><br />                        | Currently doesn’t support multi valued metadata. <br /><br />Where a date field is part of the metadata being sent, the format must be MM/dd/yyyy hh\:mm\:ss a z, where a z = the AM/PM and TIMEZONE <br /><br />example: 12/31/9999 12:00:00 PM MST T o assist with the date format for Box, you may choose to utilize the Link Enterprise helper method ‘/dflow/cl\_utilities\_helper=> format\_date\_plus\_sys\_timezone’ to format a system date field to the format desired and also appending the system timezone <br /><br /><br /><br /> | Currently doesn’t support multi valued metadata. <br /><br /><br /><br />                            |
| IT\_CONTENT                                           | Optional if CMS supports folder creation and 1 or more folder are specified                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |                                                                                                                                                                                                                                   |                                                                                                                                                                                                                                                             |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |                                                                                                      |
| EV\_RETURNID <br />                                   | The id of the document added to the CMS.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |                                                                                                                                                                                                                                   |                                                                                                                                                                                                                                                             |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |                                                                                                      |
| ET\_RETURN <br /><br /><br /><br />                   | Table that indicates a success of an error. The TYPE field will contain an ‘S’ or ‘E’ respectively and the MESSAGE field will contain information in the case of an error.  When you use the IT\_CUSTOM folder to create folders, the return table will also pass back the folder ID's created.  The parent folder is indicated by a ! exclamation point, all sub-folders are indicated by a \~ tild. Example of return table when folders are created:   <br />!SAP\_4500017723,147811962292<br />\~SAP\_SubFolder1,938382828<br />\~SAP\_SubFolder2,938382829<br />\~SAP\_SubFolder3,938382830     Refer to the below examples for more return table samples.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |                                                                                                                                                                                                                                   |                                                                                                                                                                                                                                                             |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |                                                                                                      |
| CT\_CUSTOM <br /><br /><br /><br />                   | Optional: If supported by your CMS repository, the list of folder(s) to create.                    <br /><br />This requires the BADI /DFLOW/DOCMANGER\_STOREANDLINK to be implemented.      <br /><br />You have two choices: <br />1. Flat Folder Structure<br />2. Nested Folder Structure<br /><br />For nested, you must set the flag IV\_FOLDER\_NESTED                    <br /><br />The first line is the parent folder, lines 2 and above are subfolders (optional).  <br /><br />By default, Link Enterprise places the content (when applicable) in the first folder/first line (when flat) or top level folder (when nested).<br /><br />You can override this by placing a \~ tild preceding the folder name.  <br /><br />Example 1:<br />SAP\_PO\_HEADER\_4500012349 SAP\_PO\_LINE\_00010 SAP\_PO\_LINE\_00020                                     (content will be placed in first/top folder by default)     <br /> <br />Example 2:<br />SAP\_PO\_HEADER\_4500012349 SAP\_PO\_LINE\_00010 \~SAP\_PO\_LINE\_00020                                     (content will be placed in last/lowest sub-folder)                                         <br /><br />\*note: the flag CS\_ZDMC01-ZOWNFOLDER must be set for fodlers to be created.  <br /><br />This can be et either in the docManager rule or directly via the BADI.  |                                                                                                                                                                                                                                   |                                                                                                                                                                                                                                                             |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Not supported <br /><br /><br /><br />                                                               |

### General Box comments: 

- It is recommended to configure the “error on duplicate” in the Link Enterprise Connector since automatically versioning of documents with the same name can produce unpredictable results.
- Locations can be specified either using the exact folder number or via a relative path with / being the root. If the location is specified via a relative path the folder names can take upwards of 1-2 minutes before a create using a relative path in the location field will find it.
- General cleanup utilities are present in Box so that if <u>an error happens when creating a document the document is attempted to be permanently deleted if permissions allow it.</u> Otherwise subsequent cleanup may be required for failed documents. For instance if setting the metadata fails but creation of the document succeeds. They are handled via separate calls to Box so grouping them into a single transaction that can be rolled back is not possible.
- By default (for performance reasons), Link comes with the updating of Box system properties (referred to as Basic Metadata) turned OFF.  This affects both the CREATE and UPDATE API's.  If you want to update Basic Metadata (note the any metadata templates and properties you create on your own are considered Custom Metadata, of which is always enabled), you will need to change the config.properties property box.basicMetadataUpdate=YES.  Refer to the section "Adjusting Box Rate Limit and Basic Metadata" in the Base Installation and Configuration guide for more detail.

## Example

Below is an example call from storing a document via Services for Object.  Place a breakpoint at&#x20;

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/8yTXx9zXGFmARFGlCoyTH_image.png)

### Metadata passed

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/Xa3_dG7X44HUcH2uvpdaH_image.png" size="46" width="904" height="624" position="flex-start" showCaption="false"}

### Custom table passed

In this example, we instructed Link Enterprise to create a 1 level subfolder.  This is done by filling the CUSTOM table with the folder name:



::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/GXcydddLSdEHI3vPqf125_image.png" size="54" width="990" height="492" position="flex-start" showCaption="false"}

### Return table received

note: in this return table, we see that we also have Link Enterprise configured to create a folder.  When this occurs, the '!' indicates the folder name and the second value is the folder ID.



[title] Base Content API
[path] Agnostic Guides/Developers Guide/Untitled/

The below Link Enterprise BADI’s/enhancements spots are available within the Content API base component: 

## /DFLOW/ATTACHMENT\_LIST

- BADI: /DFLOW/BADI\_ATTACHMENT\_LIST
  - Allows custom processing of the attachment list(s) used within Link Enterprise components (including API Gateway and DocManager). Useful for hiding attachments in certain situations that might be confidential to certain users (ex: document title for HR)above and beyond SAP authorization checks as well as to enable Virtual Linking functionality.
  - Virtual Linking is the concept of being able to display links in an attachment list that are from another SAP record (or object) as if they were linked to the SAP record being viewed. Examples of this are to show original MM invoices on the resulting FI invoice, original outline agreement attachments when viewing a purchase order, etc.

## /DFLOW/GENERATE\_VIEWING\_URL

- BADI: /DFLOW/BADI\_GEN\_VIEWING\_URL
  - Allows custom manipulation of the URL generated and launched when viewing documents from the SAP or DocManager attachment list.







[title] CMS_API_DELETE
[path] Agnostic Guides/Developers Guide/Untitled/

| **Functionality**                         | **Description**                                                                                                                                                                                     | **FileNet notes**               | **Documentum Notes**             | **Box Notes**                                                                                                             | **M365/SharePoint Notes**                                                                                                                                                                                                                                |
| ----------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------- | -------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| IV\_CMSPROFIL&#x45;**&#xA0;**             | Required: Determines which configured CMS Profile in Link Enterprise SAP to utilize. Combination of CMS Profile and CMS Tag determine the API destination and thus load across an RFC destination.  |                                 |                                  |                                                                                                                           |                                                                                                                                                                                                                                                          |
| IV\_CMSTAG                                | Required: Determine which configured CMS Profile in Enterprise  SAP to utilize. Combination of CMS Profile and CMS Tag determine the API destination and thus load across an RFC destination.       |                                 |                                  |                                                                                                                           |                                                                                                                                                                                                                                                          |
| IV\_REPOSITORY                            | Required: Determines which configured repository in Link Enterprise SAP to utilize <br />                                                                                                           | Object Store <br /><br /><br /> | Docbase <br /><br /><br /><br /> | Default is the only Store/Repository supported since Box currently doesn’t support the notion of different repositories.  | Site, site collection <br /><br /><br /><br />                                                                                                                                                                                                           |
| IV\_TYPE <br />                           | Optional: what CMS type to delete.                                                                                                                                                                  | DOCUMENT CLASS                  | OBJECT TYPE                      | METADATA TEMPLATE                                                                                                         | CONTENT TYPE <br />                                                                                                                                                                                                                                      |
| IV\_USE\_MAPPING <br /><br /><br /><br /> | Optional: use mapping of IV\_TYPE to CMS type in Enterprise Connector if CMS. Used if ArchiveLink doctype name to CMS type mapping is required.                                                     |                                 |                                  |                                                                                                                           |                                                                                                                                                                                                                                                          |
| IV\_LOCATION <br /><br />                 | Optional: (Mandatory for M365/SharePoint only and not used in any other CMS system) Specifies where to delete the document from. <br /><br />                                                       | Not utilized. <br /><br />      | Not utilized. <br /><br />       | Not utilized. <br /><br />                                                                                                | This is required and is the Document Library. For documents originally created by Link Enterprise, this is stored at the time of create in a Link Enterprise table in the scenario that the config changes and thus can be used for subsequent deletes.  |
| ET\_RETURN <br /><br /><br /><br />       | Table that indicates a success of an error. The TYPE field will contain an ‘S’ or ‘E’ respectively and the MESSAGE field will contain information in the case of an error.                          |                                 |                                  |                                                                                                                           |                                                                                                                                                                                                                                                          |
| CT\_CUSTOM                                | Future use                                                                                                                                                                                          |                                 |                                  |                                                                                                                           |                                                                                                                                                                                                                                                          |




[title] Sign (available version > 6.6.5)
[path] Agnostic Guides/Developers Guide/Box Endpoints/


Currently Link Enterprise has an endpoint to create a request to sign documents and send them to multiple users to sign the file.

:::ApiMethodV2
```json
{
  "tab": "request",
  "url": "https://localhost:82/scrud/createTask",
  "name": "Sign Documents",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [],
    "bodyDataParameters": [
      {
        "kind": "required",
        "name": "id",
        "type": "string",
        "description": "Unique id of box file or folder."
      },
      {
        "kind": "required",
        "name": "type",
        "type": "string",
        "description": "Name of metadata template in box."
      },
      {
        "kind": "required",
        "name": "selectedCMS",
        "type": "string",
        "description": "Value should always be set to \"box\" to let Link Enterprise know which configured content system to search."
      },
      {
        "kind": "required",
        "name": "body",
        "type": "Array",
        "description": "Json Array of strings (each index being a seperate line). \n\nOr can take a single string value \"singleLineExample\""
      },
      {
        "kind": "required",
        "name": "dueDate",
        "type": "string",
        "description": "Number of days from today the sign request is valid for.\n"
      },
      {
        "kind": "required",
        "name": "recipients",
        "type": "Array",
        "description": "Array of strings of recipients of the task (email id)\n\n*User may require permissions to file before being able to be assigned a sign request."
      },
      {
        "kind": "optional",
        "name": "enableSameDestination",
        "type": "Boolean",
        "description": "If true, signed document and signing log is stored in the same location as source file (destination id auto filledis generated by middleware).\n\nIf false, Signed Document and signing log is stored in the destination location.\n"
      },
      {
        "kind": "required",
        "name": "destinationId",
        "type": "string",
        "description": "location where the signed document and signing log is stored (Only when enableSameDestination is false)\n"
      }
    ],
    "formDataParameters": [
      {
        "kind": "optional",
        "name": "Parameter name",
        "type": "string",
        "description": ""
      }
    ]
  },
  "results": {
    "languages": [
      {
        "id": "qNYNaQPOhJ1UW-zegaFJ6",
        "code": "",
        "language": "200"
      },
      {
        "id": "FRMYak2F3gPEAHrtkDAvt",
        "code": "",
        "language": "500"
      }
    ],
    "selectedLanguageId": "qNYNaQPOhJ1UW-zegaFJ6"
  },
  "examples": {
    "languages": [
      {
        "id": "npeO0usSroLpgszC5fpHh",
        "code": "{\r\n   \"cmsName\":\"demoprod\",\r\n   \"id\":\"917235734365\",\r\n   \"taskType\":\"SIGN\",\r\n   \"recipients\":[\r\n      \"bhavanis@gimmal.com\"\r\n   ],\r\n   \"destinationId\":\"156906751612\",\r\n   \"type\":\"purchaseOrder\",\r\n   \"selectedCMS\":\"box\",\r\n   \"dueDate\":\"1\",\r\n   \"enableSameDestination\":false\r\n}",
        "language": "json"
      },
      {
        "id": "ZhU-IX53oNPcu7rTsSn1n",
        "code": "",
        "language": "none"
      }
    ],
    "selectedLanguageId": "npeO0usSroLpgszC5fpHh"
  },
  "description": "Create a sign request on a document",
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "autoGeneratedAnchorSlug": "sign-documents",
  "legacyHash": "HXHKMmNOQG4Wu9Aaw6lE_"
}
```
:::

:::ApiMethodV2
```json
{
  "tab": "examples",
  "url": "https://localhost:82/scrud/createTask",
  "name": "Sign Documents",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [],
    "bodyDataParameters": [
      {
        "kind": "required",
        "name": "id",
        "type": "string",
        "description": "Unique id of box file or folder."
      },
      {
        "kind": "required",
        "name": "type",
        "type": "string",
        "description": "Name of metadata template in box."
      },
      {
        "kind": "required",
        "name": "selectedCMS",
        "type": "string",
        "description": "Value should always be set to \"box\" to let Link Enterprise know which configured content system to search."
      },
      {
        "kind": "required",
        "name": "body",
        "type": "Array",
        "description": "Json Array of strings (each index being a seperate line). \n\nOr can take a single string value \"singleLineExample\""
      },
      {
        "kind": "required",
        "name": "dueDate",
        "type": "string",
        "description": "Number of days from today the sign request is valid for.\n"
      },
      {
        "kind": "required",
        "name": "recipients",
        "type": "Array",
        "description": "Array of strings of recipients of the task (email id)\n\n*User may require permissions to file before being able to be assigned a sign request."
      },
      {
        "kind": "optional",
        "name": "enableSameDestination",
        "type": "Boolean",
        "description": "If true, signed document and signing log is stored in the same location as source file (destination id auto filledis generated by middleware).\n\nIf false, Signed Document and signing log is stored in the destination location.\n"
      },
      {
        "kind": "required",
        "name": "destinationId",
        "type": "string",
        "description": "location where the signed document and signing log is stored (Only when enableSameDestination is false)\n"
      }
    ],
    "formDataParameters": [
      {
        "kind": "optional",
        "name": "Parameter name",
        "type": "string",
        "description": ""
      }
    ]
  },
  "results": {
    "languages": [
      {
        "id": "qNYNaQPOhJ1UW-zegaFJ6",
        "code": "",
        "language": "200"
      },
      {
        "id": "FRMYak2F3gPEAHrtkDAvt",
        "code": "",
        "language": "500"
      }
    ],
    "selectedLanguageId": "qNYNaQPOhJ1UW-zegaFJ6"
  },
  "examples": {
    "languages": [
      {
        "id": "npeO0usSroLpgszC5fpHh",
        "code": "{\r\n   \"cmsName\":\"demoprod\",\r\n   \"id\":\"917235734365\",\r\n   \"taskType\":\"SIGN\",\r\n   \"recipients\":[\r\n      \"bhavanis@gimmal.com\"\r\n   ],\r\n   \"destinationId\":\"156906751612\",\r\n   \"type\":\"purchaseOrder\",\r\n   \"selectedCMS\":\"box\",\r\n   \"dueDate\":\"1\",\r\n   \"enableSameDestination\":false\r\n}",
        "language": "json"
      },
      {
        "id": "ZhU-IX53oNPcu7rTsSn1n",
        "code": "",
        "language": "none"
      }
    ],
    "selectedLanguageId": "npeO0usSroLpgszC5fpHh"
  },
  "description": "Use case scenario: Store signed document and signing log where orginal document is.\n\nWhen the enableSameDestination is set to true the signed document and signing log will be stored in the same location as source file (i.e; the parent folder of id)\n",
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "autoGeneratedAnchorSlug": "sign-documents-1",
  "legacyHash": "PIpIPihk5V3X_YsFdpJ32"
}
```
:::

:::ApiMethodV2
```json
{
  "tab": "examples",
  "url": "https://localhost:82/scrud/createTask",
  "name": "Sign Documents",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [],
    "bodyDataParameters": [
      {
        "kind": "required",
        "name": "id",
        "type": "string",
        "description": "Unique id of box file or folder."
      },
      {
        "kind": "required",
        "name": "type",
        "type": "string",
        "description": "Name of metadata template in box."
      },
      {
        "kind": "required",
        "name": "selectedCMS",
        "type": "string",
        "description": "Value should always be set to \"box\" to let Link Enterprise know which configured content system to search."
      },
      {
        "kind": "required",
        "name": "body",
        "type": "Array",
        "description": "Json Array of strings (each index being a seperate line). \n\nOr can take a single string value \"singleLineExample\""
      },
      {
        "kind": "required",
        "name": "dueDate",
        "type": "string",
        "description": "Number of days from today the sign request is valid for.\n"
      },
      {
        "kind": "required",
        "name": "recipients",
        "type": "Array",
        "description": "Array of strings of recipients of the task (email id)\n\n*User may require permissions to file before being able to be assigned a sign request."
      },
      {
        "kind": "optional",
        "name": "enableSameDestination",
        "type": "Boolean",
        "description": "If true, signed document and signing log is stored in the same location as source file (destination id auto filledis generated by middleware).\n\nIf false, Signed Document and signing log is stored in the destination location.\n"
      },
      {
        "kind": "required",
        "name": "destinationId",
        "type": "string",
        "description": "location where the signed document and signing log is stored (Only when enableSameDestination is false)\n"
      }
    ],
    "formDataParameters": [
      {
        "kind": "optional",
        "name": "Parameter name",
        "type": "string",
        "description": ""
      }
    ]
  },
  "results": {
    "languages": [
      {
        "id": "qNYNaQPOhJ1UW-zegaFJ6",
        "code": "",
        "language": "200"
      },
      {
        "id": "FRMYak2F3gPEAHrtkDAvt",
        "code": "",
        "language": "500"
      }
    ],
    "selectedLanguageId": "qNYNaQPOhJ1UW-zegaFJ6"
  },
  "examples": {
    "languages": [
      {
        "id": "npeO0usSroLpgszC5fpHh",
        "code": "{\r\n   \"cmsName\":\"demoprod\",\r\n   \"id\":\"917235734365\",\r\n   \"taskType\":\"SIGN\",\r\n   \"recipients\":[\r\n      \"bhavanis@gimmal.com\",\r\n      \"singetambhavani7@gmail.com\"\r\n   ],\r\n   \"destinationId\":\"156906751612\",\r\n   \"type\":\"purchaseOrder\",\r\n   \"selectedCMS\":\"box\",\r\n   \"dueDate\":\"1\",\r\n   \"enableSameDestination\":false\r\n}",
        "language": "json"
      },
      {
        "id": "ZhU-IX53oNPcu7rTsSn1n",
        "code": "",
        "language": "none"
      }
    ],
    "selectedLanguageId": "npeO0usSroLpgszC5fpHh"
  },
  "description": "Use case scenario: Multiple Sign Recipients.\n\nThe request can be sent to multiple signers. If one signer declines the request the whole request will be cancelled.\n",
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "autoGeneratedAnchorSlug": "sign-documents-2",
  "legacyHash": "0leZNxFv7elThWwOxLyQK"
}
```
:::




[title] Configuration
[path] Agnostic Guides/Solution Guide/Untitled/

## Summary

There are 5 categories of configuration for Gimmal Link Enterprise AP.  Below is a brief summary.  Refer to each categories section in this same document for complete details.

`All Gimmal Link `Enterprise `AP configuration can accessed via two methods:`

1. Directly via transaction <u>`/dflow/apconfig`</u>
2. Via the Gimmal Link Enterprise System Dashboard (transaction /dflow/sys) and the menu path Configure->Accounts Payable.&#x20;

## 1. Classification

Locations, Invoice categories, business units, departments, and invoice flags help classify your invoices for processing and set how the below components can be configured.

## 2. Invoice Processing Rules

Based on the classification of an invoice, processing rules determine the behaviour and flow the Gimmal Link AP workflow.

## 3. Rejection Codes

Setup rejection codes for approvers.

## 4. Exceptions&#x20;

Define exceptions that suite your business.  These can be raised automatically or via workflow agents.

## 5. Agents

Setup role resolution to determine standard Gimmal Link Enterprise agent assigned for all stages of the workflow including Initial AP, Exceptions, Approvers, and Final AP.

## Customization

Albeit Gimmal Link Enterprise AP can be implemented code-free with its flexible and configurable platform, you can tailor the workflow even further to suite your precise needs via customization.  Customization is available throughout the Gimmal Link Enterprise AP Workflow in the form of customer BADI's.  Refer to each section for customization options available relevant to that workflow stage, as well the section "Customizing" for a view of all customizations available.&#x20;




[title] Post-Processing Tasks
[path] Agnostic Guides/Solution Guide/Untitled/

## Delete Source Content

You can use DocMigrator to delete source content after a successful migration.  The source link must exist for the DocMigrator to do so.  This is only applicable to source types:

1. SAP DB - <font color="#6B21A8">***In this case both Source Content and Link is deleted at same time.***</font>
2. ArchiveLink Content Server
3. ArchiveLink Gimmal Link Enterprise ECM

Actual Source File deletion is not supported at this time for Archivelink based attachments.

This process uses all the input criteria available for selection parameters.

## Delete Source Link

You can use DocMigrator to delete source ArchiveLink links after a successful migration.  Typically this is done after validation of your migration.  If during the migration and validation time frame, you wish to not show duplicate entries in the SAP attachment list (if using the DocManager attachment list), you can optionally hide the target entries via the DocManager config until after all is completed and verified.  Then unhide the new attachments and delete the old, or optionally keep the old links and simply hide them as well.

This process uses all the input criteria available for selection parameters.

The results of the Load phase are displayed on the screen according to the option "Display Results in ALV" checkbox.  If this option is chosen, all entries are displayed in the ALV report format, else a simple message indicating the number of entries loaded successfully, with info message, or errors is displayed.

If ALV is chosen, the header will display information as to the breakdown of entries loaded successfully, with info message, or errors.

`Be careful when choosing "Display Results in ALV" as for large datasets this will significantly increase runtime and potential SAP system memory usage and timeouts.  It is therefore suggested to use the "Display" mode of the migrator afterwards instead of displaying the results in ALV format. `

Clicking on the source or target hotspot/hyperlink in the ALV allows you to view the image prior to deleting the link or content, but of course is not supported after.


[title] Custom API Usage
[path] Agnostic Guides/Solution Guide/

Custom API usage is typically for use when only the base Gimmal Link Enterprise API product is installed.  Usage of the Gimmal Link Enterprise (S)earch (C)reate (R)ead (U)pdate (D)elete API platform within SAP is outlined in detail the Gimmal Link Enterprise Developer Guide. 

When using the SCRUD API set in a custom scenario <u>and you have DocManager installed on your system, this section is may not relevant as you are encouraged to leverage DocManager rules to control API usage.</u>

In the scenario you have only the base CMS API installed, you may choose to utilized the creation of Custom API Rules to house relevant config, especially the mandatory input parameters for the SCRUD API set such as CMS Profile, CMS Use Tag, Repository ID, Location, etc, allowing you to leverage a unique "Label".

You are responsible for what you use the available fields for as well the retrieval of them, as the SCRUD API set will only log itself in the Gimmal Link Enterprise API Gateway by default in terms of functionality.   

To create a Custom API Rule when DocManager is not installed, enter transaction /dflow/sys and choose the menu path Configure->API Rules->Custom.&#x20;

Please also consult the Gimmal Link Enterprise Developer Guide for more information. &#x20;


[title] Update
[path] Agnostic Guides/Developers Guide/FileNet Endpoints/

Link Enterprise provides a web service endpoint that will allow you to update a document metadata.&#x20;

:::ApiMethodV2
```json
{
  "tab": "request",
  "url": "https://localhost:82/scrud/update",
  "name": "Update File metadata",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [],
    "bodyDataParameters": [
      {
        "kind": "required",
        "name": "ids",
        "type": "string",
        "description": "Unique id of filenet file."
      },
      {
        "kind": "required",
        "name": "cmsName",
        "type": "string",
        "description": "Name of the filenet system configured in Link Enterprise."
      },
      {
        "kind": "required",
        "name": "selectedCMS",
        "type": "string",
        "description": "Value should always be set to \"filenet\" to let Link Enterprise know which configured content system to search."
      },
      {
        "kind": "required",
        "name": "mdArray",
        "type": "Array",
        "description": "A JSON array where each index is a json object with the keys \"md1\" and \"md2\". Where md1 is the column name, and md2 is the value to be inserted in that column. Sharepoint allows multi value field. while updating multi value fields separate the field values with \"!DFLOW!\"."
      },
      {
        "name": "location",
        "kind": "required",
        "type": "string",
        "description": "filenet folder where the document need to be updated.",
        "children": []
      },
      {
        "name": "repository",
        "kind": "required",
        "type": "string",
        "description": "filenet repository Value",
        "children": []
      },
      {
        "name": "domain",
        "kind": "required",
        "type": "string",
        "description": "Filenet Domain name",
        "children": []
      },
      {
        "name": "checkout",
        "kind": "optional",
        "type": "string",
        "description": "If true, Does an Checkout on filenet document.",
        "children": []
      },
      {
        "name": "dateTimeFormat",
        "kind": "required",
        "type": "string",
        "description": "Update datetime property in this provided format.",
        "children": []
      },
      {
        "name": "type",
        "kind": "optional",
        "type": "string",
        "description": "Filenet Class name attached to the document. Default is \"Document\"",
        "children": []
      },
      {
        "name": "cancelCheckout",
        "kind": "optional",
        "type": "string",
        "description": "If true, cancel checkout on filenet Document.",
        "children": []
      }
    ],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "NP6_JKLUVfKwgT7ZC9ANV",
        "code": "",
        "language": "200"
      },
      {
        "id": "2Qv2Iy-Q0df7ncSX-i60q",
        "code": "",
        "language": "500"
      }
    ],
    "selectedLanguageId": "NP6_JKLUVfKwgT7ZC9ANV"
  },
  "examples": {
    "languages": [
      {
        "id": "JlNcgO8TqXpNzQxN2xT04",
        "code": "{\n   \"cmsName\":\"Name of the filenet system configured in Link Enterpri.\",  \n    \"repository\":\"Filenet_Repository\",\n \"selectedCMS\":\"filenet\",\n \"domain\":\"Domain_Name\",\n\t\"checkout\":false,\n\t\"dateTimeFormat\":\"MM/dd/yyyy hh:mm:ss a z\",\n      \"type\":\"MetadataClassName\",\n\t\"location\":\"/folderName\",\n\t\"mdArray\":[\n\t{\"md1\": \"metadataField\", \"md2\": \"metadataValue\"}]\n\t\"id\":\"filenet document id\",\n\t\"cancelCheckout\":false\n}\n",
        "language": "json"
      }
    ],
    "selectedLanguageId": "JlNcgO8TqXpNzQxN2xT04"
  },
  "description": "",
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "autoGeneratedAnchorSlug": "update-file-metadata",
  "legacyHash": "TlPao_NbsVcmi0eER-y03"
}
```
:::




[title] DocManager Metadata maps
[path] Agnostic Guides/Developers Guide/Untitled/

As a more powerful option to using the metadata map configuration, class/method metadata maps allow you to compile the SAP data via ABAP that will update your CMS documents (if configured) for outbound Gimmal Link storage and mass metadata push/updates.&#x20;

# Example Method: /DFLOW/CL\_DOCMANAGER\_HELPER=>METADATA\_EXAMPLE

*The below example is provided with the&#x20;*&#x47;immal Link Enterprise *product.*

Signature: 

| **Type**                           | **Parameter**                         | **Description**                                                                                                                                                                      | **Sample Value**                            |
| ---------------------------------- | ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------- |
| Importing <br />                   | IV\_SAP\_OBJECT <br />                | The SAP business object associated with this process                                                                                                                                 | BKPF                                        |
| Importing <br />                   | IV\_DOCTYPE <br />                    | The ArchiveLink document type to use for linking documents with this process                                                                                                         | ZINVOICE01                                  |
| Importing <br />                   | IV\_SAPKEY <br />                     | The unique identifier of the SAP records the link will be created to                                                                                                                 | 300019000000002013 <br />                   |
| Importing <br />                   | IV\_ARC\_DOC\_ID <br />               | The unique identifier of the CMS document                                                                                                                                            | &#x7B;83281172-DD17-4B8A-8913-9E5E69BA3125} |
| Exporting <br /><br /><br /><br /> | ET\_METADATA <br /><br /><br /><br /> | This is the resulting table of key (case sensitive CMS property name) value (SAP data) pairs of the SAP data to update the CMS document with that you must fill with your ABAP code  |                                             |

Notes: 
&#x20;

- If you want to update a multi-line property (only supported in Documentum and FileNet CMS systems), place an X in the field ZMULTI
- For Box CMS systems where a date field is part of the metadata being sent, the format must be MM/dd/yyyy hh\:mm\:ss a z, where a z = the AM/PM and TIMEZONE
  - example: 12/31/9999 12:00:00 PM MST
- To assist with the date format for Box, you may choose to utilize the Gimmal Link Enterprise helper method ‘/dflow/cl\_utilities\_helper=> format\_date\_plus\_sys\_timezone’ to format a system date field to the format desired and also appending the system timezone
- To assist with the date format for FileNet and Documentum, you may choose to utilize the Gimmal Link Enterprise helper method ‘/dflow/cl\_utilities\_helper=>format\_date’ to format a system date field to the format desired














[title] Publisher
[path] Agnostic Guides/Solution Guide/

Publisher provides the ability to store your message output (such as SAPScript, SmartForms, AdobeForms, as well as any PDF, OTF, or Spool output) from SAP to your CMS system using Gimmal Link ECM (an\s an alternative to Gimmal Link Enterprise Content Server).  

Typically a background process, your SAP generated content is stored, optionally linked to your SAP record, and metadata can be transferred from SAP to your CMS system.  This may be implemented using various methods depending on your SAP module such as but not limited to: message output, spool generation, workflow event, business transaction events, as well as customer enhancements spots.

When utilizing Publisher for a particular message output you will need to add a call to a Gimmal Link Enterprise class-method at the end of your message output (program/function module).  If the message output is the delivered message output (program/function module) from SAP and has not be customized (sometimes referred to as a “Z” version) you will need to create an implicit enhancement point to include the Gimmal Link Enterprise code.  Creating the implicit enhancement point is outside the scope of this document.

# Calling the Gimmal Link Enterprise Publisher code snippet

In your custom code or enhancements, add code that calls the “publish\_message” method of the “/dflow/cl\_publishing”.  

Please refer to the Gimmal Link Enterprise Development Guide for more info and an example.


[title] CMS_API_SEARCH
[path] Agnostic Guides/Developers Guide/Untitled/

| **Functionality&#xA0;**                      | **Description**                                                                                                                                                                                     | **FileNet Notes&#xA0;**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | **Documentum Notes**                                                                                                                                                                                                                                                                                                                                                                               | **Box Notes&#xA0;**                                                                                                                                                                                                                                                                    | **M365/SharePoint Notes&#xA0;**                                                                                                                                                                                                                                          |
| -------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| IV\_CMSPROFILE <br /><br /><br /><br />      | Required: Determines which configured CMS Profile in Link Enterprise SAP to utilize. Combination of CMS Profile and CMS Tag determine the API destination and thus load across an RFC destination.  |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |                                                                                                                                                                                                                                                                                                                                                                                                    |                                                                                                                                                                                                                                                                                        |                                                                                                                                                                                                                                                                          |
| IV\_CMSTAG <br /><br /><br /><br />          | Required: Determine which configured CMS Profile in Link Enterprise SAP to utilize. Combination of CMS Profile and CMS Tag determine the API destination and thus load across an RFC destination.   |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |                                                                                                                                                                                                                                                                                                                                                                                                    |                                                                                                                                                                                                                                                                                        |                                                                                                                                                                                                                                                                          |
| IV\_REPOSITORY <br /><br /><br /><br />      | Required: Determines which configured repository in Link Enterprise SAP to utilize                                                                                                                  | Object Store <br /><br /><br /><br />                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | Docbase <br /><br /><br /><br />                                                                                                                                                                                                                                                                                                                                                                   | Default is the only Store/Repository supported since Box currently doesn’t support the notion of different repositories.                                                                                                                                                               | Site, site collection <br /><br /><br /><br />                                                                                                                                                                                                                           |
| IV\_TYPE <br /><br /><br /><br />            | Optional: what CMS type to create. <br /><br /><br /><br />                                                                                                                                         | DOCUMENT <br />CLASS <br />Defaults to the searching “Document” document class if unspecified. If “Include Subfolders” configuration is enabled on connector it will also include all sub classes of the document class.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | OBJECT TYPE <br />Defaults to the searching “dm\_document” class and all sub types if unspecified. <br />                                                                                                                                                                                                                                                                                          | METADAT TEMPLATE <br />Includes all documents with or without metadata templates if empty. <br />                                                                                                                                                                                      | CONTENT TYPE <br />Defaults to searching a document of content type Document if not specified. <br />                                                                                                                                                                    |
| IV\_USE\_MAPPING <br />                      | Optional: use mapping of IV\_TYPE to CMS type in Enterprise Connector if CMS. Used if ArchiveLink doctype name to CMS type mapping is required.                                                     |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |                                                                                                                                                                                                                                                                                                                                                                                                    |                                                                                                                                                                                                                                                                                        |                                                                                                                                                                                                                                                                          |
| IV\_WHERE <br /><br /><br /><br />           | Allows for adding additional search criteria with the search. With Box if used it is the only thing that can be specified while searching. <br />                                                   | Refer to the “Relational Queries” section from the online FileNet P8 Info Center documentation for help with constructing advanced where clauses. <br /><br />Examples: DocumentTitle = ‘TEST.tif” \<Property Name> IS NULL DateCreated > 20160801T080000Z DateCreated > 2016-08-01T12:00:00-08:00                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | Refer to the Documentum DQL reference material for more information on constructing advanced where clauses.  <br /><br />Examples: \<Property Name> IS NULL r\_modifer \<> '\<username>' \<Property Name> IS NOT NULL r\_modify\_date > DATE('08/01/2016')                                                                                                                                         | Refer to the Box api for the search api call for what can be used as the where clause. <br /><br />Examples: mdfilters=\[\{"templateKey”:”\<template name>","scope":"enterprise","filters":\{“\<metadata name>":"True"}}]\&limit=50\&offset=0 <br /><br /><br /><br />                 | Refer to the Graph api for the search api call for what can be used as the where clause. <br /><br />Examples: mdfilters=\[\{"templateKey”:”\<template name>","scope":"enterprise","filters":\{“\<metadata name>":"True"}}]\&limit=50\&offset=0 <br /><br /><br /><br /> |
| IV\_LOCATION <br /><br /><br /><br />        | Limit the search results to the specified location. <br /><br /><br /><br />                                                                                                                        | Relative folder names are used with / being the root. <br /><br />Currently unfiled documents cannot be searched from the Profile Wizard utilities.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Relative cabinet/folder names are used with / being the root. <br /><br /><br /><br />                                                                                                                                                                                                                                                                                                             | A number for the exact folder location can be specified. <br /><br />Relative folder names are used with a / being the root. If a root folder is configured for the Box CMS in the Enterprise connector all relative folder locations will be relative to the root folder configured.  |                                                                                                                                                                                                                                                                          |
| IV\_MAX\_RESULTS <br /><br /><br /><br />    | Limits the returned results to the amount specified. <br /><br /><br /><br />                                                                                                                       | Generally the maximum results by default are around 5000. Tests should be made to confirm that the system is configured to return a max of 5000 results though. <br />                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | The default max search results is currently unknown. Tests should be performed to determine if there is a default maximum if it is of concern.                                                                                                                                                                                                                                                     | With a where clause type of query the max results you can get is 200. <br /><br />You may retrieve more with sub folders on the API destination configuration in the connector. <br />                                                                                                 | The default max search results is currently unknown. Tests should be performed to determine if there is a default maximum if it is of concern. <br />                                                                                                                    |
| IV\_MAX\_TIME <br />                         | Limits the returned results to the time specified.                                                                                                                                                  |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |                                                                                                                                                                                                                                                                                                                                                                                                    |                                                                                                                                                                                                                                                                                        |                                                                                                                                                                                                                                                                          |
| IV\_DATE\_TIME\_FMT <br /><br /><br /><br /> | IF date/time is specified, what format is it in. <br /><br />Leave empty for default configured in enterprise connector (recommended).                                                              |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |                                                                                                                                                                                                                                                                                                                                                                                                    | Must be MM/dd/yyyy hh\:mm\:ss a z, where a z = the AM/PM and TIMEZONE <br /><br />example: 12/31/9999 12:00:00 PM MST                                                                                                                                                                  | Must be MM/dd/yyyy hh\:mm\:ss a z, where a z = the AM/PM and TIMEZONE <br /><br />example: 12/31/9999 12:00:00 PM MST <br />                                                                                                                                             |
| IT\_METADATA\_FILTER <br />                  | If specified, only metadata properties indicated will be returned. By default of no filter is provided, all metadata for a document is retrieved.                                                   | See notes in ET\_METADATA\_ID. <br />                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | See notes in ET\_METADATA\_ID. <br />                                                                                                                                                                                                                                                                                                                                                              | Not supported. <br /><br />See notes in ET\_METADATA\_ID. <br />                                                                                                                                                                                                                       | Not supported <br /><br />See notes in ET\_METADATA\_ID. <br />                                                                                                                                                                                                          |
| IT\_METADATA\_ORDER <br /><br /><br /><br /> | Allows ordering of search results by the specified properties in the order selected.                                                                                                                | If a single property is passed in the results are ordered in ascending order for the property name. <br /><br />If unspecified the results are ordered by “Id”. Optionally you can specify ASC or DESC after the property name to make the sort happen ascending or descending respectively. \*The property being ordered by must also be specified as one of the selected properties.                                                                                                                                                                                                                                                                                                                                                                                        | If a single property is passed in the results are ordered in ascending order for the property name. <br /><br />If unspecified the results are ordered by “r\_object\_id”. Optionally you can specify ASC or DESC after the property name to make the sort happen ascending or descending respectively. \*The property being ordered by must also be specified as one of the selected properties.  | Not supported <br /><br /><br /><br />                                                                                                                                                                                                                                                 | Not supported <br /><br /><br /><br />                                                                                                                                                                                                                                   |
| ET\_METADATA\_ID <br /><br /><br /><br />    | Contains the metadata retrieved. <br /><br /><br /><br />                                                                                                                                           | If no properties are specified (IT\_METADATA\_FILTER ) then by default only the below will be returned: <br /><br />Id DocumentTitle <br /><br />Some properties can’t be returned in searches like: ContentElements FoldersFiledIn <br /><br />Some key properties that have special handling via Search: VersionSeries = will return the version series Id ClassDescription = Gets the symbolic name StorageArea = Gets the display name StoragePolicy = Gets the policy name SecurityPolicy = Gets the policy name OwnerDocument = Gets the Id of the owner document SourceDocument = Gets the Id of the source document ReplicationGroup = Gets the display name of it SecurityFolder = Gets the folder path name PublishingSubsidiaryFolder = Gets the folder path name  | If no properties are specified (IT\_METADATA\_FILTER ) then by default only the below will be returned: <br /><br />r\_object\_id title <br /><br />Some properties can’t be returned in searches like: ContentElements FoldersFiledIn VersionSeries <br /><br /><br /><br />                                                                                                                      | If no metadata is specified (IT\_METADATA\_FILTER – currently not supported by Box API endpoint) then by default only the below will be returned: <br /><br />id name <br /><br /><br /><br />                                                                                         | If no metadata is specified (IT\_METADATA\_FILTER – currently not supported by Graph API endpoint) then by default only the below will be returned: <br /><br />Id\_Object Name\_Object <br /><br /><br /><br />                                                         |
| ET\_RETURN                                   | Table that indicates a success of an error. The TYPE field will contain an ‘S’ or ‘E’ respectively and the MESSAGE field will contain information in the case of an error.                          |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |                                                                                                                                                                                                                                                                                                                                                                                                    |                                                                                                                                                                                                                                                                                        |                                                                                                                                                                                                                                                                          |
| CT\_CUSTOM                                   | Future use.                                                                                                                                                                                         |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |                                                                                                                                                                                                                                                                                                                                                                                                    |                                                                                                                                                                                                                                                                                        |                                                                                                                                                                                                                                                                          |

### General comments: 

- Behind the scenes at the connector level, the search uses either a select or a where clause.
- What determines this from the SAP side is the usage of the IV\_WHERE parameter vs. not (in tern uses a SELECT).

### General FileNet comments: 

- If not using paged search results and if the number of results exceeds the content caches default max search results you will only get that many results and you won’t be able to see the other results. Generally this is around 5,000 results.
- Using the Profile Wizard search utility screen as an example the generated SQL behind the scenes (if “Include Subfolders” is selected)
  - SELECT TOP \<Max Results> \<Select Clause> FROM \<From Clause> WITH INCLUDESUBCLASSES WHERE \<Where Clause> AND \<FROM Clause>.this INSUBFOLDER ‘\<Location>’ ORDER BY \<Order By Clause>
- Using the Profile Wizard search utility screen as an example the generated SQL behind the scenes (if “Include Subfolder” isn’t selected)
  - SELECT TOP \<Max Results> \<Select Clause> FROM \<From Clause> WHERE \<Where Clause> AND \<FROM Clause>.this INFOLDER ‘\<Location>’ ORDER BY \<Order By Clause>
- Refer to the relational queries section on the IBM InfoCenter documentation for FileNet P8 for help with configuring advanced where clauses. [http://www.ibm.com/support/knowledgecenter/SSNW2F\_5.2.1/com.ibm.p8.ce.dev.ce.doc/query\_sql\_syntax\_rel\_queries.htm?cp=SSNW2F\_5.2.1%2F10-2-1-34-4-1\&lang=en](http://www.ibm.com/support/knowledgecenter/SSNW2F_5.2.1/com.ibm.p8.ce.dev.ce.doc/query_sql_syntax_rel_queries.htm?cp=SSNW2F_5.2.1%2F10-2-1-34-4-1\&lang=en)

### General Documentum comments: 

If not using paged search results and the number of results exceeds the default max search results you will only get that many results and you won’t be able to see the other results. 

- Using the Profile Wizard search utility screen as an example the generated SQL behind the scenes (if “Include Subfolders” is selected)
  - SELECT \<Select Clause> FROM PUBLIC \<From Clause> WHERE \<Where Clause> AND FOLDER (‘\<Location>’,DESCEND) ORDER BY \<Order By Clause> enable (return\_top \<Max Results>)
- Using the Profile Wizard search utility screen as an example the generated SQL behind the scenes (if “Include Subfolder” isn’t selected)
  - SELECT \<Select Clause> FROM PUBLIC \<From Clause> WHERE \<Where Clause> AND FOLDER (‘\<Location>’) ORDER BY \<Order By Clause> enable (return\_top \<Max Results>)
- Refer to the Documentum DQL reference manual for help with configuring advanced where clauses.

### General Box comments: 

- Currently paged search results are only supported when using a where clause.
- If using the where clause the max search results can be a maximum of 200.
- If using the select clause the max search results is 1000 per folder.
- Adjusting the metadata templates requires restarting the Link Enterprise services and Profile Wizard for the changes to be visible.
- Updated metadata can take upwards of 10 minutes before a search using a where clause will find it.
- Locations can be specified either using the exact folder number or via a relative path with / being the root. If the location is specified via a relative path the folder names can take upwards of 10 minutes before a search using a relative path in the location field will find it.
- Searches can either be performed by using a where clause (and nothing else) or by using a select clause and optional location and optional max results.
- When searching via select clause (instead of a where clause) there is a performance hit when searching with a specified from clause since documents are just listed out by folders and specifying metadata template information to query requires each document to be read from a folder listing. Use searches with a select clause and from clause sparingly if possible. In those cases using a where clause search is advisable.
- Refer to the Box Content API for the search api call for help in configuring advanced searches using the where clause. [https://docs.box.com/reference#searching-for-content](https://docs.box.com/reference#searching-for-content)


[title] How to change Enterprise Connector username and password
[path] Repository Specific Guides/Link Enterprise for S3/Installation and Base Configuration Guide/Follow up Middleware Team Tasks/

1. Turn off the Gimmal Link Enterprise service
2. Open command prompt in windows
3. Change directory to the installation directory of Gimmal Link Enterprise&#x20;
4. Type in java -jar PasswordGenerator.jar insertyourpassword
5. Copy the encrypted password returned to the console
6. Open up config.properties located in the /config directory where Gimmal Link Enterprise is installed
7. Locate the fields&#x20;
   user.name=gimmal
   password=r0TMzjlSeMkURTcC77ocxg==
8. Replace "gimmal" if you would like to change the previous username, and replace password with your copied encrypted password from step 5 and replace the previous password
9. Save your changes
10. Start the Gimmal Link Enterprise service
11. Open browser in privacy/icognito mode or with cleared cache/cookies/passwords. Type in your new username and password,



[title] Workflow Connect
[path] Agnostic Guides/Solution Guide/

Workflow Connect (WFConnect) allows code free triggering of SAP Workflow including container fulfillment for "inbound to SAP" processing (ie: also called SAPLink).

There are three parts to the WFConnect configuration:

1. Configure the Gimmal Link Enterprise Enterprise for the inbound SAPLink rule.  Refer to the SAPLink section in this document for more information.
2. Enable the "En.SL WF Connect" checkbox in the appropriate DocManager rule.  Refer to the DocManager configuration for information
3. Configure the WFConnect rule via transaction /dflow/sys and choose the menu path Configure->WF Connect.

There are two WFConnect rule elements to configure:

1. Triggers: this determine what method of workflow trigger to execute based on an inbound SAP DocType and label.
2. Metadata mapping *(optional)*: if metadata is to be transferred to the corresponding workflow container, the inbound metadata must be mapped to container elements.

## WFConnect Triggers

There are three workflow trigger methods available:

1. Publish BOR Event: This publishes an event on the SAP workflow runtime system.  This in turn can be set as your triggering event in your workflow task or definition.
   1. Specify the SAP business object and event to publish.
2. Start Workflow: This starts your workflow directly calling the function "SAP\_WAPI\_CREATE\_EVENT".
   1. Specify the workflow task or definition to start.
3. Start Class/Method: This starts your workflow by called the class-method specified.

## WFConnect Metadata Mapping

Regardless of the triggering method, if inbound metadata is to be passed to the workflow container or event, you must configure metadata mapping.

1. Document Type: This is optional as you may configure mapping at the global level or only at the label level.  If you choose to configure by Document type specify the ArchiveLink SAP ar\_object.
2. Label: This is optional as you may configure mapping at the global level or only at the document type level.  If you choose to configure by Label, this is a free form text field that can be used to split up document type or categorize larger groups of metadata buckets.

`A global rule is indicated with both an empty document type and empty label.`


[title] CMS_API_UPDATE
[path] Agnostic Guides/Developers Guide/Untitled/

| **Functionality&#xA0;**<br />****         | **Description&#xA0;**<br />                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | **FileNet Notes&#xA0;**                                                                                                                                                                                                           | **Documentum Notes&#xA0;**                                                                                                                                                                                                           | **Box Notes&#xA0;**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | **M365/SharePoint Notes&#xA0;**                                                                                                                                                                                                                          |
| ----------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| IV\_CMSPROFILE <br /><br /><br />         | Required: Determines which configured CMS Profile in Link Enterprise SAP to utilize. Combination of CMS Profile and CMS Tag determine the API destination and thus load across an RFC destination.                                                                                                                                                                                                                                                                                                                                                                                                                             |                                                                                                                                                                                                                                   |                                                                                                                                                                                                                                      |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |                                                                                                                                                                                                                                                          |
| IV\_CMSTAG                                | Required: Determine which configured CMS Profile in Link Enterprise SAP to utilize. Combination of CMS Profile and CMS Tag determine the API destination and thus load across an RFC destination.                                                                                                                                                                                                                                                                                                                                                                                                                              |                                                                                                                                                                                                                                   |                                                                                                                                                                                                                                      |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |                                                                                                                                                                                                                                                          |
| IV\_REPOSITORY                            | Required: Determines which configured repository in Link Enterprise SAP to utilize                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | Object Store <br /><br /><br /><br />                                                                                                                                                                                             | Docbase <br /><br /><br /><br />                                                                                                                                                                                                     | Default is the only Store/Repository supported since Box currently doesn’t support the notion of different repositories.                                                                                                                                                                                                                                                                                                                                                                                                | Site, site collection <br /><br /><br /><br />                                                                                                                                                                                                           |
| IV\_TYPE <br />                           | Optional: what CMS type to update.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | DOCUMENT CLASS <br />                                                                                                                                                                                                             | OBJECT TYPE <br />                                                                                                                                                                                                                   | METADATA TEMPLATE <br />                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | CONTENT TYPE <br />                                                                                                                                                                                                                                      |
| IV\_USE\_MAPPING <br /><br /><br /><br /> | Optional: use mapping of IV\_TYPE to CMS type in Enterprise Connector if CMS. Used if ArchiveLink doctype name to CMS type mapping is required.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |                                                                                                                                                                                                                                   |                                                                                                                                                                                                                                      |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |                                                                                                                                                                                                                                                          |
| IV\_CHECKOUT                              | Optional: allows you to checkout a document.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | Only available in newer versions. <br />                                                                                                                                                                                          | Only available in newer versions. <br />                                                                                                                                                                                             |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | Not supported <br />                                                                                                                                                                                                                                     |
| IV\_CANCEL\_CHECKOUT                      | Optional: allows you to cancel the checkout of a document. This will return an error if the document is already checked out.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |                                                                                                                                                                                                                                   |                                                                                                                                                                                                                                      |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |                                                                                                                                                                                                                                                          |
| IV\_LOCATION                              | Optional: (Mandatory for M365/SharePoint only and not used in any other CMS system) Specifies where to document to update resides.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | Not utilized. <br /><br /><br /><br />                                                                                                                                                                                            | Not utilized. <br /><br /><br /><br />                                                                                                                                                                                               | Not utilized. <br /><br /><br /><br />                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | This is required and is the Document Library. For documents originally created by Link Enterprise, this is stored at the time of create in a Link Enterprise table in the scenario that the config changes and thus can be used for subsequent updates.  |
| IV\_FOLDER\_METADATA                      | Optional: If supported by your CMS, setting this flag to true will apply metadata at the folder level.  The ID's located in the IT\_IDS table will be folder IDs.                                                                                                                                                                                                                                                                                                                                                                                                                                                              |                                                                                                                                                                                                                                   |                                                                                                                                                                                                                                      | Applied metadata at the top level folder only                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Applied metadata at all levels of folders                                                                                                                                                                                                                |
|                                           |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |                                                                                                                                                                                                                                   |                                                                                                                                                                                                                                      |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |                                                                                                                                                                                                                                                          |
|                                           |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |                                                                                                                                                                                                                                   |                                                                                                                                                                                                                                      |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |                                                                                                                                                                                                                                                          |
|                                           |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |                                                                                                                                                                                                                                   |                                                                                                                                                                                                                                      |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |                                                                                                                                                                                                                                                          |
| IT\_IDS                                   | Table of file ID's (or folders ID's if supported by your CMS)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |                                                                                                                                                                                                                                   |                                                                                                                                                                                                                                      |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |                                                                                                                                                                                                                                                          |
| IT\_METADATA                              | Mandatory: metadata to set during updates. Some metadata cannot be set during update and is only read only (some system properties). Updating some system properties in certain repositories may lead to unknown results. The Link Enterprise username and timestamp properties are automatically set as metadata during update if they are configured on the particular CMS tab in the Link Enterprise Connector. When the same keys are used multi valued properties are set with all of the specified values. The ZMULTI flag is ignored during an update since the same key signifies a multi valued property by default.  | To assist with the date format for FileNet, you may choose to utilize the Link Enterprise helper method ‘/dflow/cl\_utilities\_helper=>format\_date’ to format a system date field to the format desired <br /><br /><br /><br /> | To assist with the date format for Documentum, you may choose to utilize the Link Enterprise helper method ‘/dflow/cl\_utilities\_helper=>format\_date’ to format a system date field to the format desired <br /><br /><br /><br /> | Currently doesn’t support multi valued metadata. Where a date field is part of the metadata being sent, the format must be MM/dd/yyyy hh\:mm\:ss a z, where a z = the AM/PM and TIMEZONE example: 12/31/9999 12:00:00 PM MST to assist with the date format for Box, you may choose to utilize the Link Enterprise helper method ‘/dflow/cl\_utilities\_helper=> format\_date\_plus\_sys\_timezone’ to format a system date field to the format desired and also appending the system timezone <br /><br /><br /><br /> | Currently doesn’t support multi valued metadata. <br /><br /><br /><br />                                                                                                                                                                                |
| ET\_RETURN <br /><br /><br /><br />       | Table that indicates a success of an error. The TYPE field will contain an ‘S’ or ‘E’ respectively and the MESSAGE field will contain information in the case of an error.                                                                                                                                                                                                                                                                                                                                                                                                                                                     |                                                                                                                                                                                                                                   |                                                                                                                                                                                                                                      |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |                                                                                                                                                                                                                                                          |
| CT\_CUSTOM                                | Future use                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |                                                                                                                                                                                                                                   |                                                                                                                                                                                                                                      |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |                                                                                                                                                                                                                                                          |






[title] Viewing and Attachment List Options
[path] Agnostic Guides/Solution Guide/

Viewing content is accomplished via two access points :

1. From your SAP transaction / record
2. Direct to your content repository (optional)&#x20;

## From SAP

Viewing from SAP is achieved via the SAP or Gimmal Link Enterprise DocManager Attachment List (Object for Services).

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/rds1pFb0Kvpsm5elaocQs_image.png" size="12" width="270" height="367" caption="Viewing options" position="center" showCaption="true"}

Accessing content from these attachment lists perform the following authorization checks:

1. Access to your SAP transaction / record with standard SAP authorizations&#x20;
2. Access to the ArchiveLink with standard SAP authorizations&#x20;
3. Optional: Additional SAP BADI authorization checks
4. Optional: Additional SAP Gimmal Link BADI authorization checks

From there, Gimmal Link provides 2 options to retrieve and display the content from your CMS system for URL based viewing.

### 1.  User <u>Un</u>authenticated Access (Authenticated by Link Enterprise App)

The method leveraged to achieve this differs based on your CMS system:

1. M365.
   1. Anonymous Short lived shared URLs via web browser
   2. Gimmal Link Content Server via a non-dialogue system user (thin and thick client options) aka: standard SAP viewing
2. S3.
   1\. Gimmal Link Archive Link Content Server URL



### 2.  User Authenticated Access via SharePoint

Whilst still leveraging SAP standard ArchiveLink and DMS links, Gimmal Link Enterprise can compile a viewing URL directing the user to log into the SharePoint system view their web browser.

This option leverages any security capabilities and options based on your CMS system.  `These are in addition to the check outlined in "From SAP".`

Refer to the section "<u>CMS Security based on SAP Security / Data</u>" below for possible additional security checks based on SAP values.&#x20;

`Please refer to your CMS Systems' security documentation for further options. `

### Comparing Viewing Options

| Viewing Option<br />All Repositories            | Pros                                                                                | Cons                                                                                                                                                                                                                                                                                                                                                                                   | Additional Tasks |
| ----------------------------------------------- | ----------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------- |
| User Unauthenticated Content Server ArchiveLink | - no additional SharePoint config needed<br />- no additional SharePoint User setup | - not all mime types supported<br />- replies on local workstation web browser or SAP viewer *and* workstation apps to handle viewing<br />- no SharePoint authentication<br />- caches a local copy on user's workstation<br />- binary sent across wire<br />- actually performs a search on SAPDocID as metadata to find document, thus performance may be affected at high volumes | - none           |

| SharePoint                                    |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |                                              |
| --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------- |
| User Unauthenticated Anonymous SharePoint URL | - supports all M365 Online supported mime types<br />- no binary sent across wire<br />- no local workstation browser or application requirements<br />- no local workstation caching<br />- no Search necessary, thus no performance considerations (direct Read)<br />- less SharePoint maintenance - bypasses User level access to site/subsite/library authorizations (Link Enterprise App/User is used)<br />- When viewing from SAP, user does NOT have to log on to M365/SharePoint | - requires SharePoint anonymous viewing enabled at tenant level or site collection level (i.e.: these are short-lived URL's that in theory can be copy/pasted and shared to other users before expiration (default 1 minute)<br />- refer to the below: [https://learn.microsoft.com/en-us/microsoft-365/solutions/best-practices-anonymous-sharing?view=o365-worldwide](https://learn.microsoft.com/en-us/microsoft-365/solutions/best-practices-anonymous-sharing?view=o365-worldwide) | - SharePoint tenant level config             |
| User Authenticated SharePoint URL             | - more authentication and security                                                                                                                                                                                                                                                                                                                                                                                                                                                         | - more SharePoint maintenance - Users must have access to that site/subsite/library<br />- When viewing from SAP, the user will need to log on to M365/SharePoint if/when their active M365/SharePoint session expires or is logged out (frequency is based on customer setup)<br />- does NOT require SharePoint anonymous viewing enabled at tenant / site collection level                                                                                                            | - SharePoint User/Group maintenance required |

### SAP SFO/GOS Attachment List Options

You can leverage the standard SAP Attachment List or (highly recommended) the Gimmal Link Enterprise DocManager Attachment List.

**Refer to the section "Attachment List Options" under the DocManager section for advantages in using the Gimmal Link Enterprise DocManager Attachment List plus additional SFO/GOS configuration options with Gimmal L**ink Enterprise.

## Direct to your CMS System

Allowing access to content directly via your CMS system relies solely on that systems' security model and capabilities. &#x20;

Refer to the section "<u>CMS Security based on SAP Security / Data</u>" below for possible additional security checks based on SAP values.&#x20;

Please refer to your CMS Systems' security documentation for further options.&#x20;

## CMS Security based on SAP Security / Data&#x20;

Gimmal Link Enterprise does not replicate the SAP security model to your CMS system.  If, however, your CMS system can leverage SAP data in the form of metadata or CVL's (choice lists), you can leverage Gimmal Link Enterprise SAP to inform your CMS system with those values (i.e.: metadata transfer).


[title] FileNet Endpoints
[path] Agnostic Guides/Developers Guide/


[title] Purpose of Guide
[path] Agnostic Guides/Developers Guide/

The goal of this guide is to provide detailed overview of all developer related components within Gimmal Link Enterprise. These components fall into two categories: 

1. Gimmal Link Enterprise SAP development:
   1. Class/Method Plug-In’s: Class-methods that may be leveraged in standard Gimmal Link configuration
   2. Gimmal Link Enterprise BADI’s: Enhancement spots for additional customization of Gimmal Link processing
   3. S(earch) C(reate) R(read) U(pdate) D(elete) API’s: Class-methods for each SCRUD functionality in which the standard Gimmal Link processing leverages, which is also open for direct customer usage in custom scenarios. 
      (P)ing and (L) API's: Class-methods for multiple levels of ping to the middleware and CMS, as well as the ability to load CMS repository info into SAP.
2. Gimmal Link Web services usage:
   1. HTTPS Setup
   2. Gimmal Link Enterprise SCRUD web services
   3. Gimmal Link Enterprise BAPI web service

Lastly, as our customers leverage the Gimmal Link logic under the hood more and more, we hear of common routines and methods that may be of use in your custom requirements.  These are located under Useful / Common Gimmal Link Enterprise Methods.






[title] Utilities: CMS Load (Unsupported S3)
[path] Agnostic Guides/Solution Guide/

CMS Load (in beta) allows you to load various CMS system components into Gimmal Link Enterprise SAP (properties, docclasses, etc.).  Please note this utility is currently under beta and no further documentation is available at this time.

Once loaded, any Gimmal Link Enterprise configuration that references a document property can be chosen via the drop down matchcode for possible values.&#x20;

To execute a CMS Load, enter transaction /dflow/sys and choose the menu path Configure->Execute->CMS Load.


[title] CMS_API_PING
[path] Agnostic Guides/Developers Guide/Untitled/

| **Functionality&#x20;**                       | **Description**                                                                                                                                                                                     | **FileNet Notes**                     | **Documentum Notes**             | **Box Notes**                                                                                                             | **M365/SharePoint Notes**                      |
| --------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------- | -------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------- |
| IV\_CMSPROFILE <br /><br /><br /><br /><br /> | Required: Determines which configured CMS Profile in Link Enterprise SAP to utilize. Combination of CMS Profile and CMS Tag determine the API destination and thus load across an RFC destination.  |                                       |                                  |                                                                                                                           |                                                |
| IV\_CMSTAG <br /><br /><br />                 | Required: Determine which configured CMS Profile in Link Enterprise SAP to utilize. Combination of CMS Profile and CMS Tag determine the API destination and thus load across an RFC destination.   |                                       |                                  |                                                                                                                           |                                                |
| IV\_PING\_MIDDLEWARE <br /><br />             | Checks that status of the connection to the connector only.                                                                                                                                         |                                       |                                  |                                                                                                                           |                                                |
| IV\_PING\_CMS <br /><br /><br /><br />        | Checks the status of the connection right through to the CMS system (requires IV\_TYPE)                                                                                                             |                                       |                                  |                                                                                                                           |                                                |
| IV\_REPOSITORY <br /><br /><br /><br />       | Required: Determines which configured repository in Link Enterprise SAP to utilize <br />                                                                                                           | Object Store <br /><br /><br /><br /> | Docbase <br /><br /><br /><br /> | Default is the only Store/Repository supported since Box currently doesn’t support the notion of different repositories.  | Site, site collection <br /><br /><br /><br /> |
| IV\_TYPE <br />                               | What CMS type to PING (mandatory for CMS ping)                                                                                                                                                      | DOCUMENT CLASS                        | OBJECT TYPE                      | METADATA TEMPLATE                                                                                                         | CONTENT TYPE                                   |
| IV\_USE\_MAPPING <br />                       | Optional: use mapping of IV\_TYPE to CMS type in Enterprise Connector if CMS. Used if ArchiveLink doctype name to CMS type mapping is required.                                                     |                                       |                                  |                                                                                                                           |                                                |
| ET\_RETURN <br /><br /><br /><br />           | Table that indicates a success of an error. The TYPE field will contain an ‘S’ or ‘E’ respectively and the MESSAGE field will contain information in the case of an error.                          |                                       |                                  |                                                                                                                           |                                                |
| CT\_CUSTOM                                    | Future use                                                                                                                                                                                          |                                       |                                  |                                                                                                                           |                                                |




[title] Delivered Reports
[path] Agnostic Guides/Solution Guide/AuditLink/

AuditLink includes four delivered reports designed to support common audit, tracking, and compliance scenarios. These pre-built reports offer immediate value without the need for custom development.&#x20;

1. Report: **/DFLOW/ZAUDITLINK\_ALV\_FI\_01**
   - Purpose: Displays financial accounting (FI) document data in an ALV format for audit and compliance tracking.&#x20;
   - Selection Screen Parameters:

     ![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/txMxck7UYo4dOzrsLwWz1_image.png)
   - Selection Process: The report selects records from the **BKPF&#x20;**&#x74;able (Accounting Document Header) based on the entered selection criteria.&#x20;
   - Output Fields:

     ::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/6lcZ-8mJcRdF0MjS5QcsM_image.png" size="70" width="495" height="394" position="center" showCaption="false"}
2. Report: **/DFLOW/ZAUDITLINK\_ALV\_PO\_01**
   - Purpose: Provides an ALV view of Purchase Order (PO) data for procurement audits and compliance reviews.&#x20;
   - Selection Screen Parameters:&#x20;

     ![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/o2OgdDz3qj-6PgqRCxAFD_image.png)
   - Selection Process: Pulls data from **EKKO&#x20;**(PO Header) based on selection criteria.&#x20;
   - Output Fields:

     ::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/5D9m03pQl3okP2kx76L5v_image.png" size="70" width="496" height="439" position="center" showCaption="false"}
3. Report: **/DFLOW/ZAUDITLINK\_ALV\_SD\_01**
   - Purpose: Displays Sales & Distribution (SD) billing document data to support sales audits and revenue tracking. &#x20;
   - Selection Screen Parameters:

     ![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/ilu3zzG5v-JjSW4I1RRLV_image.png)
   - Selection Process: Data is selected from the **VBRK&#x20;**&#x74;able (Billing Document Header) based on selection screen input.&#x20;
   - Output Fields:

     ::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/6V2qAQwAuMDOXe9MR24SV_image.png" size="70" width="495" height="675" position="center" showCaption="false"}
4. Report: **/DFLOW/ZAUDITLINK\_ALV\_SD\_02**
   - Purpose: Displays detailed SD billing item data to support line-level auditing of sales documents.&#x20;
   - Selection Screen Parameters:

     ![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/BCC0Z-1HVXiqc6u5rjqlV_image.png)
   - Selection Process: Pulls data from **VBRP&#x20;**&#x20;(Billing Document Item) and **VBRK&#x20;**&#x20;(Header) tables.&#x20;
   - Output Fields

     ::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/fxneW--8vW-Z7bQ3qfZwR_image.png" size="70" width="495" height="601" position="center" showCaption="false"}


[title] Mandatory S3 Metadata Properties (not required to configure in S3)
[path] Repository Specific Guides/Link Enterprise for S3/Installation and Base Configuration Guide/Follow up SharePoint Team Tasks/

Important note: albeit not required for base installation and connectivity, a heads-up: any content type used for SAP integration with Link Enterprise must include the following mandatory columns based on the usage pattern (ECM vs. Content Server).

## ECM Required Metadata Properties

These names are suggestions and recommended, but are configurable in the Enterprise Connector.

| Column (suggested case sensitive name) | Data Type           | Attribute Settings                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| -------------------------------------- | ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| LinkEnterpriseUsername                 | single line of text |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| LinkEnterpriseTimestamp                | single line of text |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| LinkEnterpriseSaplinkTrigger           | single line of text | The only values Link Enterprise will recognize are "True" and "False" as triggers.  <br /><br />The resulting values are True and False by default, but can be changed in the config.properties file under your installation directory.<br /><br />saplinkfalse.value=\<value>  (for success)<br />saplinkerror.value=\<value)   (for error)<br /><br />- eg: "DoNotProcessSuccess" and "DoNotProcessError"<br />- saplinkfalse.value=DoNotProcessSuccess<br />- saplinkerror.value=DoNotProcessError |
| LinkEnterpriseSaplinkError             | single line of text |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |

## Content Server Required Metadata Properties

:::BlockQuote

:::

| Column (mandatory case sensitive name) | Data Type | Attribute Setting |
| -------------------------------------- | --------- | ----------------- |
| contRep                                | Text      |                   |
| docID                                  | Text      |                   |
| dateC                                  | Text      |                   |
| compId                                 | Text      |                   |
| pVersion                               | Text      |                   |
| docProt                                | Text      |                   |
| contentLength                          | Text      |                   |
| accessMode                             | Text      |                   |
| charset                                | Text      |                   |
| compStatus                             | Text      |                   |
| sapVersion                             | Text      |                   |


[title] Read
[path] Agnostic Guides/Developers Guide/Box Endpoints/

Link Enterprise provides a web service endpoint that will allow you to retrieve a file or folders metadata or binary content of a file.

Included below are examples of reading a files metadata and it's binary content. (Two separate calls)

:::ApiMethodV2
```json
{
  "tab": "examples",
  "url": "https://localhost:82/scrud/read",
  "name": "Read (metadata)",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [],
    "bodyDataParameters": [
      {
        "kind": "required",
        "name": "cmsName",
        "type": "string",
        "description": "Name of the box system configured in Link Enterprise ."
      },
      {
        "kind": "required",
        "name": "type",
        "type": "String",
        "description": "Name of metadata template in box."
      },
      {
        "kind": "required",
        "name": "id",
        "type": "string",
        "description": "Unique id of box file or folder."
      },
      {
        "kind": "required",
        "name": "selectedCMS",
        "type": "string",
        "description": "Value should always be set to \"box\" to let Link Enterprise know which configured content system to search."
      },
      {
        "kind": "optional",
        "name": "getContent",
        "type": "Boolean",
        "description": "true/false (will retrieve binary of file)"
      }
    ],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "ymgovs5m1fdI32-gkqqCH",
        "code": "{\n\t\"ContentElements\": \"demo1.txt#DFLOW#text/plain#DFLOW#2111\",\n\t\"comment_count\": \"0\",\n\t\"companyCode\": \"\",\n\t\"content_created_at\": \"10/12/2021 12:48:52 p.m. PDT\",\n\t\"content_modified_at\": \"10/12/2021 12:48:52 p.m. PDT\",\n\t\"created_at\": \"12/20/2021 07:29:31 a.m. PST\",\n\t\"created_by\": \"Bhavani Singetam\",\n\t\"description\": \"\",\n\t\"LinkEnterpriseSaplinkEnabled\": \"\",\n\t\"LinkEnterpriseTimestamp\": \"\",\n\t\"LinkEnterpriseUsername\": \"\",\n\t\"LinkEnterprisetaskid\": \"15103846926\",\n\t\"LinkEnterprisetaskstatus\": \"in-process\",\n\t\"LinkEnterpriseworkflowid\": \"\",\n\t\"embed1\": \"https://gimmal-box.app.box.com/preview/expiring_embed/gvoct6FE!hc4EhSwuz8Zl-y-Sf8ObT25vPUi0lkTN3P_G1lELtgvcTHI4XYWYP-XZhZWcK5z5CI4u9e7c3_RoAfYB20tZMuFl0x2V7fSwClu8AhnPutLbNP1FtCxFafNsqjCtAHvpS_se8df5J8GEz9i-tcBi4b1opVcVAGLMDiZ4KX2GroXLuGTzx4aMT80hFSHoR-NCXUOkX-ybyMNUp78Tsk8L3Ka1O3mji4NA1uUuA7UPluNXgai7tpzUd-ZNvnLJdAXlrxhYftkAIDGEKAhq4CEFk4nyQ7gvU_WueSQiyHzSbwAY8VofPHTPcyrR8S7Mr7Bm-51RkzeL6SHhgIDkP-GeFLI3aHbpVKRlK5jKx74E9mJ8jbp3ll6W-9sFaKJj_UQgfcxObiNS-uT2ens9z8HzNxdLY4G-XuEzY3zFyDUdGzDKWIF8kUrC-UUMnJbE8ZjJx_Ae4Hv8kygHHJAmaU3SbHUekHLNMssnAp_jkPXg2zJupr-hjimdAldrxYV6owh-ak3op7a22qzUqmsGad7sDjsPDTm5NxP7Ea87N-T6Rrqirgrg9sxUjc1jeVCueysT-xL6ekW70oh_WM2ZFJNnf_qSDWisSyrtMGFSSNUAxySNwMZA-YRBgaKHwBHp3C942PvhLyFtxtCZ3tLA1n1acf9ow3RKmgEoV65hih6Tlaq2gfdy6wbgIRfwsKYmrP2xH67YMibfKn22xI0Isgw49Vo1VvDLFqsJ5OCUcsucG-ouuB3j4kAcwvoQa-rWdLL-Tym-04Xzp4ZmzAXZIZ0AQSfS-ifcqGPoXuL79WMYN7QAc9RgALvtq6qmkMvHaHKAbPI4G0Mnkisyiy-1xYKiAUQZlsJ4UXVhtc6qK3w78rmO8b7xVyE2lLDTQVg0McmrWk9csdNNGjVZS9vQ5Wj6SFcVFw1rw3r6r0epOH-ryN8FRy2BU4b-rV1qX1_UO1\",\n\t\"embed2\": \"Kne3s4qBnDfTAL8DoHZoq7qssnDf9P-aznmofY-lZNz0Bk8oek5Qcgf_NChMzkPyNgAT6_RSgwhMNgGh7hUuNMNOdak5_xs-bZANve68DtQWwBqwwG6kGydnZcu8Upg7JczEuwIhVO8O-5YZvMt6rq7_fFnnFeyOLx41cjNQZ3MmnK6IBw18FQhhEKU2r_pMoy4ft6-NF0D48Elhc2WxD1PIy9q6ZL4qhNHFdIMSK-tbWR0cD9lanR6GFh9h2Ggh7AWFq-K126TEgY5jD2NC\",\n\t\"etag\": \"1\",\n\t\"expiring_embed_link\": \"https://gimmal-box.app.box.com/preview/expiring_embed/gvoct6FE!hc4EhSwuz8Zl-y-Sf8ObT25vPUi0lkTN3P_G1lELtgvcTHI4XYWYP-XZhZWcK5z5CI4u9e7c3_RoAfYB20tZMuFl0x2V7fSwClu8AhnPutLbNP1FtCxFafNsqjCtAHvpS_se8df5J8GEz9i-tcBi4b1opVcVAGLMDiZ4KX2GroXLuGTzx4aMT80hFSHoR-NCXUOkX-ybyMNUp78Tsk8L3Ka1O3mji4NA1uUuA7UPluNXgai7tpzUd-ZNvnLJdAXlrxhYftkAIDGEKAhq4CEFk4nyQ7gvU_WueSQiyHzSbwAY8VofPHTPcyrR8S7Mr7Bm-51RkzeL6SHhgIDkP-GeFLI3aHbpVKRlK5jKx74E9mJ8jbp3ll6W-9sFaKJj_UQgfcxObiNS-uT2ens9z8HzNxdLY4G-XuEzY3zFyDUdGzDKWIF8kUrC-UUMnJbE8ZjJx_Ae4Hv8kygHHJAmaU3SbHUekHLNMssnAp_jkPXg2zJupr-hjimdAldrxYV6owh-ak3op7a22qzUqmsGad7sDjsPDTm5NxP7Ea87N-T6Rrqirgrg9sxUjc1jeVCueysT-xL6ekW70oh_WM2ZFJNnf_qSDWisSyrtMGFSSNUAxySNwMZA-YRBgaKHwBHp3C942PvhLyFtxtCZ3tLA1n1acf9ow3RKmgEoV65hih6Tlaq2gfdy6wbgIRfwsKYmrP2xH67YMibfKn22xI0Isgw49Vo1VvDLFqJ5OCUcsucG-ouuB3j4kAcwvoQa-rWdLL-Tym-04Xzp4ZmzAXZIZ0AQSfS-ifcqGPoXuL79WMYN7QAc9RgALvtq6qmkMvHaHKAbPI4G0Mnkisyiy-1xYKiAUQZlsJ4UXVhtc6qK3w78rmO8b7xVyE2lLDTQVg0McmrWk9csdNNGjVZS9vQ5Wj6SFcVFw1rw3r6r0epOH-ryN8FRy2BU4b-rV1qX1_UO1Kne34qBnDfTAL8DoHZoq7qssnDf9P-aznmofY-lZNz0Bk8oek5Qcgf_NChMzkPyNgAT6_RSgwhMNgGh7hUuNMNOdak5_xs-bZANve68DtQWwBqwwG6kGydnZcu8Upg7JczEuwIhVO8O-5YZvMt6rq7_fFnnFeyOLx41cjNQZ3MmnK6IBw18FQhhEKU2r_pMoy4ft6-NF0D48Elhc2WxD1PIy9q6ZL4qhNHFdIMSK-tbWR0cD9lanR6GFh9h2Gghs7AWFq-K126TEgY5jD2NC\",\n\t\"extension\": \"txt\",\n\t\"fileVersion\": \"967518965567\",\n\t\"file_version\": \"967518965567\",\n\t\"has_collaborations\": \"true\",\n\t\"id\": \"897859484481\",\n\t\"is_package\": \"false\",\n\t\"item_status\": \"active\",\n\t\"lastUpdated\": \"1640195853\",\n\t\"linkedToSap\": \"\",\n\t\"lock\": \"\",\n\t\"modified_at\": \"12/22/2021 09:57:30 a.m. PST\",\n\t\"modified_by\": \"someone\",\n\t\"name\": \"demo1.txt\",\n\t\"owned_by\": \"Link Enterprise Demo\",\n\t\"parent\": \"1474026705828\",\n\t\"path_collection\": \"/test\",\n\t\"paymentTerm\": \"\",\n\t\"permissions\": \"can_download:true,can_preview:true,can_upload:true,can_comment:true,can_rename:true,can_delete:true,can_share:true,can_set_share_access:true\",\n\t\"poNumber\": \"5900\",\n\t\"poStatus\": \"\",\n\t\"purged_at\": \"\",\n\t\"sequence_id\": \"1\",\n\t\"sha1\": \"013efd1020dea4fcdc4f9118433acc8ded3bf895\",\n\t\"shared_link\": \"\",\n\t\"size\": \"2111\",\n\t\"tags\": \"\",\n\t\"trashed_at\": \"\",\n\t\"type\": \"file\",\n\t\"vendorName\": \"\",\n\t\"vendorNumber\": \"\",\n\t\"version_number\": \"2\"\n}",
        "language": "200"
      },
      {
        "id": "guaZg_Kjaci06qaXI6hoD",
        "code": "",
        "language": "500"
      }
    ],
    "selectedLanguageId": "ymgovs5m1fdI32-gkqqCH"
  },
  "examples": {
    "languages": [
      {
        "id": "yA6PAHJgLMNa-NjR8XpmC",
        "code": "{\r\n   \"cmsName\":\"insertProductionSystemName (located in Link Enterprise gui)\",\r\n   \"type\":\"insertMetaDataTemplateName\",\r\n   \"id\":\"unique box id specfic to folder/id\",\r\n\t\"selectedCMS\":\"box\"\r\n\t\r\n}",
        "language": "json"
      }
    ],
    "selectedLanguageId": "yA6PAHJgLMNa-NjR8XpmC"
  },
  "description": "Retrieve a file or folders metadata by using its unique box identifier.",
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "autoGeneratedAnchorSlug": "read-metadata",
  "legacyHash": "RTkIuAhig8f9DkChR6cM4"
}
```
:::

:::ApiMethodV2
```json
{
  "tab": "examples",
  "url": "https://localhost:82/scrud/read",
  "name": "Read (Binary content)",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [],
    "bodyDataParameters": [
      {
        "kind": "required",
        "name": "cmsName",
        "type": "string",
        "description": "Name of the box system configured in Link Enterprise."
      },
      {
        "kind": "required",
        "name": "type",
        "type": "string",
        "description": "Name of metadata template in box."
      },
      {
        "kind": "required",
        "name": "id",
        "type": "string",
        "description": "Unique id of box file or folder."
      },
      {
        "kind": "required",
        "name": "selectedCMS",
        "type": "string",
        "description": "Value should always be set to \"box\" to let Link Enterprise know which configured content system to search."
      }
    ],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "qsuZNFPgIsSVantMQCRHv",
        "code": "...binary",
        "language": "200"
      },
      {
        "id": "PKMksZm--cuDmKfft4kGf",
        "code": "",
        "language": "500"
      }
    ],
    "selectedLanguageId": "qsuZNFPgIsSVantMQCRHv"
  },
  "examples": {
    "languages": [
      {
        "id": "x1biY5DVAqDpMMm0qvQhO",
        "code": "{\r\n   \"cmsName\":\"insertProductionSystemName (located in Link Enterprise gui)\",\r\n   \"type\":\"insertMetaDataTemplateName\",\r\n   \"id\":\"unique box id specfic to folder/id\",\r\n   \"selectedCMS\":\"box\",\r\n   \"getContent\":true\r\n\t\r\n}",
        "language": "json"
      },
      {
        "id": "q4sc9OgyJFxO60XBl5eYN",
        "code": "< HTTP/1.1 200 OK\r\n< filename: demo1.txt\r\n< size: 2111\r\n< transfer-encoding: chunked",
        "language": "none",
        "customLabel": "Headers Response (200)"
      }
    ],
    "selectedLanguageId": "x1biY5DVAqDpMMm0qvQhO"
  },
  "description": "Retrieve a files binary by using its unique box identifier.",
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "autoGeneratedAnchorSlug": "read-binary-content",
  "legacyHash": "1qlCNhBogYf8ukTiGmKWL"
}
```
:::




[title] Agents
[path] Agnostic Guides/Solution Guide/Untitled/Untitled/

## Overview

Agents are based on the Gimmal Link Enterprise Classification configuration.  There are 4 categories of agents associated with Gimmal Link Enterprise processing:

1. Initial AP Agents
2. Approval Agents
3. Final AP Agents
4. Exception Agents

Each one of those agent categories can also have assigned deadline and catch-all agent.

You can specify as many agents as you would like to 1 processing rule, or you can also choose org units that reference multiple agents.   This creates virtual "teams" of processors per invoice classification (called "possible agents"). &#x20;

Gimmal Link Enterprise AP and the underlying SAP workflow runtime system manages the sharing of these workitems and prevents work-items from being processed more than once.  Once a user has "touched" a work-item, it is reserved by them for processing until it is either completed or resubmitted back the larger "team".&#x20;

## Setup

Below are the options for configuring Agents:

1. **Approval Maximum Amount:**  For approval stages, the maximum amount an agent can approve up too.&#x20;
2. **Exception Code:**  For exception stage, specifies a particular exception.
3. **Deadline Flag:**  Indicates this agent is a deadline agent for a particular stage, approval amount, or exception.&#x20;
4. **Catch-All Flag:** `There must be at least 1 catch-all agent in your Gimmal Link implementation.`  These are agents which will receive a work-item if no agent is found.  For Catch-All agents, classification is ignored (only the flag that the agent is a catch-all is utilized).
5. **Workflow Agent Type:&#x20;**&#x20;Choose the applicable agent type.
6. **Workflow Agent:** Specify the appropriate agent value based on the workflow type specified above.

## Customizing Options

The following customizing options are available for Agent determination.  For information on how to implement, please refer to the section "Customizing" later in this document.&#x20;

1. **Custom Role Resolution / Agent Determination:** To implement your own exception processing logic in place/in addition to a Gimmal Link Enterprise AP Workflow Exception work-item.&#x20;
2. **Custom Notifications:** To implement your own method of notifying agents.


[title] Delete Link Management via Gimmal Link Enterprise Link Manager
[path] Agnostic Guides/Solution Guide/DocManager/

Gimmal Link Enterprise Link Manager provides the mechanism for a user to create a "delete request" via the docManager Attachment List within their SAP transaction, and for that delete request to be triaged by 1 or more Link Managers.

Dependent on the configuration of Link Manager, the content will also be, or not allowed, to be deleted from the content repository along with the link.

Both end-users and Link Managers can add notes to the requests to give reason for the request, or for the approval or rejection of the request.&#x20;

You may also choose for certain SAP Objects and doctypes to allow the end-user to perform these actions.&#x20;

Link Manager functionality can be categorized into 3 components:

1. Configuration
2. End-User Requests
3. Link Manager Actions

## Configuration

1. Via the Gimmal Link Enterprise System Dashboard (/dflow/sys) choose the menu path Configure->Attachment List-> Link Manager
2. For any SAP Object / doctype combination, specify what is or is not allowed to be taken as link and content action:
3. Wildcards (\*) are supported and therefore you can create global rules in addition to more specific rules.  Below is an example showing that system wide, links and content are allowed to be delete by the Link Manager only.  In addition, for and HR object, only links are allowed to be delete but not the content.

## End-User Requests

An end-user creates a delete request directly from within the docManager Services for Object Attachment List by highlighting the attachment they want to delete and choosing the Delete icon.

The end user is then prompted whether they would like to add a note (optional) to explain the reason to the Link Manager.

Once submitted, the delete request is sent to the Link Managers and the link status is updated "Pending" as indicated on the left hand column:

::Image[]{src="https://archbee-doc-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/-s6Saf6ZpmjEFNNDO2FsV_image.png" size="74" position="center" showCaption="false"}

`Note that pending attachments cannot be viewed.`

If the delete request is approved, the link entry will automatically disappear. &#x20;

If the delete request is rejected, the link entry will remain and be taken out of Pending status.

An end-user may view all their historical and current delete requests via the "My Delete Request" button:

::Image[]{src="https://archbee-doc-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/dvq7DuZSkBuoGhtm2B0Xy_image.png" size="74" position="center" showCaption="false"}

Note that the delete requests viewed are for that user only, however - is across the entire SAP system regardless of which SAP record or transaction they generated a request from.

This delete queue also allows the end user to view or add notes:

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/EepRK83fpibi3IqxzUGcy_image.png" size="80" width="562" height="221" position="center" showCaption="false"}

## Link Manager Actions

Link Managers are users who have the permission to approve or delete requests.

Permission takes the form of granting access to the Delete Queue as an Administrator via either:

1. Via the Gimmal Link Enterprise System Dashboard (/dflow/sys) choose the menu path Dashboards->Link Manager->Delete Management
2. Granting the manager access to the transaction /DFLOW/LINKM

By default, the report will display all outstanding delete requests (indicated by the checkboxes):

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/czpUIUcDhmED9-pMzInk4_image.png" size="80" width="568" height="166" position="center" showCaption="false"}

"Outstanding" is considered to be requests that need approval/rejection, OR, that encountered an error during the delete process (whether it be at the delete link or delete content level). &#x20;

`A request that is approved but an error occurs, is considered deleted from the end-user perspective, and it is the responsibility of the Link Manager to determine what the error is and what action needs to taken.`

<u>A common scenario is that the actual content in the CMS system was deleted without SAP knowing, thus the delete content stage would fail</u>

Below is a sample queue display:

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/WvpCP6FiJpRI3mbrfIYx4_image.png)

Once displaying the Delete queue, the following actions are available:

1. Approve and Delete - this is a single request action and requires you to highlight (click once) on the request to action.  You will be prompted to add an optional note.
2. Reject - this too is a single request action and requires you to highlight (click once) on the request to reject.  You will be prompted to add an optional note (in the case of rejections it is recommended to add a note).
3. Approve and Delete All Pending/Error - this will approve and delete all entries that are in those two status'.  Approved and rejected entries are ignored.
4. Add note -  this is a single request action and requires you to highlight (click once) on the request to action.
5. Add Note to Entire List - this adds a note to EVERY request on the screen regardless of status.

It is important to note the two flag columns on the report:

Lk Del - "X" indicates the link was deleted

CN Del  - "X" indicates the content was deleted

`Clicking on the underlined "Document ID" field will display the content prior to content deletion.`

Scrolling to the right, you will also see the MsgStatus column.  This provides a detailed log of all activity of the delete request.  Click on the letter (I, E, or S) to show this detail.

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/soQkM9MZu8dxhBqS37T12_image.png)














[title] Minimum Requirements
[path] SuccessFactors/SuccessFactors Technical Overview/

The Link Enterprise middleware component can be deployed on-premise, in a private cloud or as a SaaS solution from Gimmal.&#x20;

When deploying on premise or in a private cloud environment, physical or virtual hardware is supported. The following server resources are recommended:

| **Operating Systems**                                              | **CPU**                                                 | **Disk Space** | **RAM** | **Java Runtime Environment** |
| ------------------------------------------------------------------ | ------------------------------------------------------- | -------------- | ------- | ---------------------------- |
| Windows Server 2016, Windows Server 2019,<br />Windows Server 2022 | Minimum 4 cores or 4 physical CPUs with at least 2.0Ghz | 40 GB          | 16 GB   | OpenJDK 17 LTS or later      |

JCO requirements: 3.0.14 and above

(3.1.x and above requires Visual C++ Redistributable Packages for Visual Studio 2013)

[https://www.microsoft.com/en-ca/download/details.aspx?id=40784](https://www.microsoft.com/en-ca/download/details.aspx?id=40784)

See [https://me.sap.com/notes/2786882](https://me.sap.com/notes/2786882)

**Firewall Information:&#x20;**

- Source: the IP of the middleware server
- Port: https is 443
- Protocol: https




[title] Create Pick List
[path] SuccessFactors/SuccessFactors Configuration/

The section will create the Pick List for document approval workflow status

Navigate to the Admin tool '**Pick List Center**'

Click '***New Pick List***'

In the Create Dialog, set the following values:

| Name                 | Value                | Notes |
| -------------------- | -------------------- | ----- |
| Code                 | LinkCard\_DocStatus  |       |
| Name                 | Link Card Doc Status |       |
| Status               | Active               |       |
| Effective Start Date | \<today's date>      |       |
| Display Order        | Alpha                |       |
| Parent Picklist      | \<blank>             |       |
| Legacy Picklist ID   | LinkCard\_DocStatus  |       |

Click the '***Save***' button

Create the following values:

| Name                     | Value      | Notes |
| ------------------------ | ---------- | ----- |
| External Code            | 1          |       |
| Label                    | InApproval |       |
| Status                   | Active     |       |
| Non-unique External Code | 1          |       |

| Name                     | Value    | Notes |
| ------------------------ | -------- | ----- |
| External Code            | 2        |       |
| Label                    | Rejected |       |
| Status                   | Active   |       |
| Non-unique External Code | 2        |       |

| Name                     | Value    | Notes |
| ------------------------ | -------- | ----- |
| External Code            | 3        |       |
| Label                    | Approved |       |
| Status                   | Active   |       |
| Non-unique External Code | 3        |       |


[title] Update Folder
[path] l4i/Configuration/Transformations/Methods/Box Connection/Folder Operations/

This method will Update an existing Folder in box. The method allows for optionally updating the Cascade policy.

**Input Parameters:**

- Folder ID: ID of the folder to update
- Cascade Conflict Policy: If a Cascade Policy already exists on the folder, this setting determines how TRex should handle reconciling. See 'Setting Metadata Values' in the following section on how to set the Cascade Policy.
  - Overwrite Existing: Overwrite the Cascade Policy with the new value
  - Keep Existing: Keep the existing Cascading Policy



**Setting Metadata Values:**

**NOTE:** TRex only supports setting a single Enterprise Metadata Template and values during Update Folder. To add additional metadata templates and values to the document, use an additional 'Update Folder' method.

- Metadata Values: These are the values for either Enterprise Metadata (defined in a metadata template) or Global Metadata (string value pairs directly attributed to a document)
  - Click on the pencil icon in the top right to edit the definition of metadata
  - Drag an 'Available Parameter' from the Available Parameters to the middle section called 'Defined Parameters'
  - There are four types of Parameters
    - Description: This allows the setting of the description on the document. No additional configuration/naming is required. The name should be left as 'Description' and the datatype left as 'String'
    - Enable Cascade On: Turns on Cascading of metadata from the Folder to any children contained within. The string list provided should be configured with the names of the Enterprise Templates to turn on the Cascade feature
    - Enterprise Metadata Value: This allows setting of Enterprise Metadata that is defined on a pre-defined Metadata Template.&#x20;
      - Name: This is required to be the name of the metadata value defined in Box. It will include the Metadata Template name that it is assoicated with. (e.g. trexMetadata.trexTextField)
      - Data Type: The type value assigned in the Box metadata definition
    - Global Metadata Value: This allows the setting of key/value pair strings to be added to a document
      - Name: This should match the metadata value of a Custom Attribute already defined on the document. it will always be prefixed with the value 'document' followed by the name of the box value (e.g. document.trexMyCustomString)


[title] Link Card Type 4
[path] SuccessFactors/SuccessFactors Configuration/SuccessFactors Objects/

Navigate to 'Create New' -> 'Object Definition and fill in the following values into the header section:

| Property         | Value            | Notes |
| ---------------- | ---------------- | ----- |
| Code             | d4i\_LinkCard\_4 |       |
| Effective Dating | None             |       |
| API Visibility   | Editable         |       |
| Status           | Active           |       |
| Label            | Link Card Type 4 |       |

### Fields

Add the following fields to the d4i\_LinkCard\_4 object:

| Name            | Length | Data Type      | More                                               |
| --------------- | ------ | -------------- | -------------------------------------------------- |
| user            | 100    | user           | Under details, set 'Required' to 'Yes'             |
| Category        | 100    | Generic Object | Valid Values Source: cust\_Category\_LinkCard3     |
| DocumentType    | 100    | Generic Object | Valid Values Source: cust\_DocumentType\_LinkCard3 |
| Title           | 256    | String         |                                                    |
| UserID          | 38     | String         |                                                    |
| EmployeeName    | 256    | String         |                                                    |
| Country         | 128    | String         |                                                    |
| d4i\_URL        | 256    | String         |                                                    |
| d4iUploadStatus | 64     | String         |                                                    |
| CreatedDateTime | 35     | DateTime       |                                                    |
| ownerId         | 38     | String         |                                                    |
| d4i\_Status     | 64     | String         |                                                    |

### Security

Update the Security section with the following values:

| Property                        | Value                     | Notes |
| ------------------------------- | ------------------------- | ----- |
| Secured                         | Yes                       |       |
| Permission Category             | Miscellaneous Permissions |       |
| RBP Subject User Field          | cust\_user                |       |
| CREATE Respects Target Criteria | No                        |       |
| Base Date Field For Blocking    | mdfSystemEffectiveEndDate |       |






[title] Link Enterprise BAPI Web Services
[path] Agnostic Guides/Developers Guide/

Link Enterprise provides two end points to access SAP BAPI's. Using the GET request on the "any" endpoint we can retrieve what data is available to the developer. Link Enterprise BAPI web services use basic authorization with a default username: **admin**, and a default password: **admin**. Ensure SSL cert validation is disabled prior to accessing the web services.



The following examples can be imported into Insomnia Rest Client via this link: https\://gimmal.box.com/s/em0ckv2zarcai15cr5az6rewxvfw18p5

For example using a get request,&#x20;

https\://localhost:82/bapi/any?bapi=BAPI\_INCOMINGINVOICE\_CREATE&#x20;

would return the following data below:

https\://jsoneditoronline.org/#left=cloud.b9e0a63872034234850ac9de5709b564

We can use this response to learn what all the available fields/data are available in that particular bapi.

To send data to BAPI\_INCOMINGINVOICE\_CREATE we would send a post request to https\://localhost:82/bapi/any using the json body included in this link:&#x20;

https\://jsoneditoronline.org/#left=cloud.dbd7f72e2ade41eab9301c17081b2a04

You should see the following json response here

https\://jsoneditoronline.org/#left=cloud.73c35d070cb546f683dc05e82865cac1

Notice in the export parameters the response given from the BAPI that was executed

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/HWik-rlIXPsBLpEObmHiu_image.png" size="48" width="309" height="247" position="center" showCaption="false"}



Another example is given here with BAPI\_PO\_CHANGE using post.

https\://jsoneditoronline.org/#left=cloud.b9a0aeb968344aeb94b1153ca69b1959

and it's corresponding response,

https\://jsoneditoronline.org/#left=cloud.d6ef93f919e443d7a8153c1fd6b856ec



Common tables to look at for response from SAP are the **return** table, and th&#x65;**&#x20;export parameters**.












[title] Store and Link a Document
[path] Agnostic Guides/Developers Guide/Untitled/

Storing and linking a document is an extremely common functionality.

Storing be done by either providing content via a filename to upload or by providing the binary content itself.

The Link Enterprise store and link method can also create folder structures (with and without content...note content is stored in the top level folder), and in that scenario optionally apply metadata to the top level folder as well (to apply metadata to subfolders or documents, use the method /dflow/cl\_docmanager\_helper=>send\_metadata\_update.  You can also choose which level of multi-folder heirachy you create in which to place content if applicable.&#x20;

## /dflow/cl\_docmanager\_helper=>store\_and\_link\_document

## Parameters

| **Parameter**                       | **Description**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | **Sample Value**                                                                                                                                                                                                                                                                                                         |
| ----------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| IV\_CALLER                          | Describes who is calling the method.  Logged in the Link Enterprise API Gateway as such.                                                                                                                                                                                                                                                                                                                                                                                                                                                              | /dflow/cl\_common\_super=><br />gc\_caller\_docmanager\_custom                                                                                                                                                                                                                                                           |
| IV\_MODE                            | Create can be passed file content (C), the name and path of a file to upload and store (F), as well just create folder with no content (N).                                                                                                                                                                                                                                                                                                                                                                                                           | 'C' = Content 'F' = File  'N' = No Content                                                                                                                                                                                                                                                                               |
| IV\_SAP\_OBJECT                     | ArchiveLink SAP Object                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | BKPF                                                                                                                                                                                                                                                                                                                     |
| IV\_AR\_OBJECT                      | ArchiveLink doctype                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | ZINVOICE01                                                                                                                                                                                                                                                                                                               |
| IV\_OBJECT\_ID                      | ArchiveLink SAP key.  Note this can be a compound key for certain SAP objects or line item/company code level.                                                                                                                                                                                                                                                                                                                                                                                                                                        | 300019000000012020                                                                                                                                                                                                                                                                                                       |
| IV\_FILE\_WITH\_PATH                | Determine File, Content, or Contentless                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | 'C' = Content 'F' = File  'N' = No Content                                                                                                                                                                                                                                                                               |
| IV\_NO\_CREATE\_LINK                | Optional: does NOT create a link after successful document storage                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |                                                                                                                                                                                                                                                                                                                          |
| IV\_NO\_METADATA\_TRANSFER          | Optional: Overrides the docManager rule of whether to send metadata                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |                                                                                                                                                                                                                                                                                                                          |
| IV\_SIZE                            | Mandatory if File or Content mode.  Size of content in bytes.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |                                                                                                                                                                                                                                                                                                                          |
| IV\_RFC                             | Optional: Name of RFC to override docManager rule                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |                                                                                                                                                                                                                                                                                                                          |
| IV\_FOLDER\_METADATA                | Optional: Boolen to indicate if update is to a folder.  Note that this is applied to the top level folder only.                                                                                                                                                                                                                                                                                                                                                                                                                                       | X = folder metadata                     EMPTY = file metadata                                                                                                                                                                                                                                                            |
| IT\_METADATA                        | Table of key value pairs of your CMS properties and the values to update                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | sapCompanyCode 3000                                                                                                                                                                                                                                                                                                      |
| IT\_CONTENT                         | Optional (if contentless or file mode).  Table of binary content.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |                                                                                                                                                                                                                                                                                                                          |
| IT\_SAPLINK\_METADATA               | Optional: no used at this point - future functionality                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |                                                                                                                                                                                                                                                                                                                          |
| IT\_CUSTOM                          | Optional: If supported by your CMS repository, the list of folder(s) to create.  The first line is the parent folder, lines 2 and above are subfolders (optional).  By default, Link Enterprise places the content (when applicable) in the top level folder (ie: the first line).  You can override this by placing a \~ tild preceding the folder name.  Also by default, the structure will be created as 1 parent and the rest subfolders of that parent.  If you wish to create a nested folder structure, set the flag IV\_FOLDER\_NESTED to X. | SAP\_PO\_HEADER\_4500012349 SAP\_PO\_LINE\_00010 SAP\_PO\_LINE\_00020                                     (content will be placed in top folder)               SAP\_PO\_HEADER\_4500012349 SAP\_PO\_LINE\_00010 \~SAP\_PO\_LINE\_00020                                     (content will be placed in lowest sub-folder) |
| EV\_DOCUMENT\_STORED                | N/A if mode is Contentless, else flag indicating whether a document was stored successfully                                                                                                                                                                                                                                                                                                                                                                                                                                                           |                                                                                                                                                                                                                                                                                                                          |
| EV\_DOCUMENT\_LINKED                | N/A if mode is Contentless, else flag indicating whether a document was linked successfully after storage (assuming IV\_NO\_CREATE\_LINK is empty)                                                                                                                                                                                                                                                                                                                                                                                                    |                                                                                                                                                                                                                                                                                                                          |
| EV\_ARC\_DOC\_ID                    | document ID created in the CMS repository                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | &#x7B;FC2F11EF-9AB9-C08E-86B0-74E484400000} or 124057761318                                                                                                                                                                                                                                                              |
| EV\_FILENAME                        | Link Enterprise automatically trims the extension off and passed back just the filename as a parameters                                                                                                                                                                                                                                                                                                                                                                                                                                               |                                                                                                                                                                                                                                                                                                                          |
| ET\_RETURN <br /><br /><br /><br /> | Table that indicates a success of an error. The TYPE field will contain an ‘S’ or ‘E’ respectively and the MESSAGE field will contain information in the case of an error.  When you use the IT\_CUSTOM folder to create folders, the return table will also pass back the folder ID's created.  The parent folder is indicated by a ! exclamation point, all sub-folders are indicated by a \~ tild.                                                                                                                                                 | Example of return table when folders are created:   <br />!SAP\_4500017723,147811962292<br />\~SAP\_SubFolder1,938382828<br />\~SAP\_SubFolder2,938382829<br />\~SAP\_SubFolder3,938382830     Refer to the below examples for more return table samples.  <br /><br /><br /><br />                                      |



NOTE: a commit work is required.

## Example

note Folder creation is only if supported by your CMS

An easy way to see an example for the parameter is to put a breakpoint in the Link Enterprise DocManager code that will be triggered when storing a document from any Services for Object enabled transaction:

/dflow/cl\_docmanager\_helper=>store\_and\_link\_document, approximately line 713.

Below are sample values:

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/lm99u-p4VcpoXbPfnswtu_image.png)



### Metadata passed

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/Xa3_dG7X44HUcH2uvpdaH_image.png" size="46" width="904" height="624" position="flex-start" showCaption="false"}

### Custom table passed

In this example, we instructed Link Enterprise to create a 1 level subfolder.  This is done by filling the CUSTOM table with the folder name:



::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/GXcydddLSdEHI3vPqf125_image.png" size="54" width="990" height="492" position="flex-start" showCaption="false"}

To implement this folder creation with Store and Link, you can implement in your code that calls Store and LInk, or, implement the BADI /DFLOW/BADI\_DOCMGR\_STORE\_LINK at the point BEFORE the document storage (ie: IV\_CALLER 'B' in the BADI).  Please refer to the BADI section of this document for more information.  Using the BADI ensures that all methods of storing business documents (ie: Migrator, Publisher, standard Link Enterprise DocManager via Services for Object, custom use of Store and Link) all follow the same logic.

### Return Table Received

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/ODiKLZy8Eb9reP0SJ8l4U_image.png" size="88" width="1272" height="478" position="center" showCaption="false"}

note: in this return table, we see that we also have Link Enterprise configured to create a folder.  When this occurs, the '!' indicates the folder name and the second value is the folder ID.




[title] log4j Update
[path] Agnostic Guides/Developers Guide/

Below is an overview of the process to upgrade an existing installation of Link Enterprise.  This must be performed for each Link Enterprise instance (ie: Link Enterprise windows service).

:::BlockQuote
At the time of this writing, 2.17.1 is the latest log4j release.  In the future if new versions are to be utilized, change the version numbers in the below steps accordingly.&#x20;
:::

1. Stop the Gimmal Link Enterprise service
2. Take note of the "Log On" tab if you are running the service under a named account.
3. Download and move new log4j files (log4j-core-2.16.0.jar, log4j-api-2.16.0.jar) to /lib/log4j/
4. Delete/rename old l4j file(s)
5. Go to /services folder
6. Uninstall the service
   - Start a Windows CMD prompt as administrator
   - In the CMD prompt run /services/uninstallService.bat
   - Refresh your Windows Service list to confirm it is no longer present
     - If the Link Enterprise  service still exists, please edit the uninstallService.bat file to reflect the correct service name.
7. Edit installService.bat in the /services directory
   1. For upgrade from 1.2.15:
      - Delete the string "\lib\log4j\log4j-1.2.16.jar;"
      - Add a new entry "\lib\log4j\log4j-core-2.16.0.jar;\lib\log4j\log4j-api-2.16.0.jar;"
      - This entry should proceed "\lib\connector-service-6.5.7-fat.jar"
   2. For upgrade from 2.16.0 or later:
      1. Replace the two instances of "2.16.0" \<or your current version> with "2.17.1"
8. Reinstall the service
   - Start a Windows CMD prompt as administrator
   - In the CMD prompt run the updated /services/installService.bat
9. Refresh your Windows Service list to confirm the service has been re-installed&#x20;
10. `Note: If you were running the service under a named account in the Log On tab of the Windows Service, you must reapply those changes.`
11. Open the service.txt log file with baretail
12. Start the Gimmal Link Enterprise service
13. View baretail and ensure Link Enterprise activity is being logged


[title] Create
[path] Agnostic Guides/Developers Guide/Untitled/

Link Enterprise provides a web service endpoint that will allow you to create a document or folder.

The following endpoint allows the following capabilities.

1. Create a File
2. Create a File with metadata
3. Create a folder
4. Create a folder with metadata
5. Create a nested folder structure (with parent obtaining metadata)
6. Create a single level tree structure (with parent obtaining metadata)



:::ApiMethodV2
```json
{
  "tab": "examples",
  "url": "https://localhost:82/scrud/create",
  "name": "Create a File",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [],
    "bodyDataParameters": [
      {
        "kind": "required",
        "name": "location",
        "type": "string",
        "description": "Sharepoint Document Library location (including any sub site present). Each field is separated with \"/\"."
      },
      {
        "kind": "required",
        "name": "selectedCMS",
        "type": "string",
        "description": "Value should always be set to \"sp\" to let Link Enterprise know which configured content system to search."
      },
      {
        "kind": "required",
        "name": "cmsName",
        "type": "string",
        "description": "Name of the sharepoint system configured in docuflow."
      },
      {
        "name": "repository",
        "kind": "required",
        "type": "string",
        "description": "Sharepoint repository Id. It consists of sharepoint domain name and root site name separated with \"/sites/\" or \":/teams/\"",
        "children": []
      },
      {
        "name": "fileLocation",
        "kind": "required",
        "type": "string",
        "description": " file location in local system that needs to be stored in sharepoint.",
        "children": []
      }
    ],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "VzFOzYGCxsoPbWzdx0yew",
        "code": "{\n\t\"docId\": [\n\t\t\"01KWRZNISOYOOXWOQBKJGIRKQBPPKM\",\n\t\tnull,\n\t\tnull\n\t],\n\t\"FolderIds\": [\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n        ...\n\t]\n}",
        "language": "200"
      },
      {
        "id": "VQkVXQFKVKg-X3yyvKCWC",
        "code": "",
        "language": "500"
      }
    ],
    "selectedLanguageId": "VzFOzYGCxsoPbWzdx0yew"
  },
  "examples": {
    "languages": [
      {
        "id": "CXPum3DlkEh5CtlxE_mJB",
        "code": "{\n   \"cmsName\":\"Name of the sharepoint system configured in Link Enterpri.\",\n   \"repository\":\"<domain_name>/sites/<rootSiteName>\",    \n   \"fileLocation\":\"C:\\\\someFolder\\\\someFile.txt\",\n   \"location\":\"/<subsite>/<documentLibrary>\",\n   \"selectedCMS\":\"sp\"\n}",
        "language": "json"
      }
    ],
    "selectedLanguageId": "CXPum3DlkEh5CtlxE_mJB"
  },
  "description": "Create a file with no metadata",
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "autoGeneratedAnchorSlug": "create-a-file",
  "legacyHash": "LTZYKRF4XjDFS4dN8yyEx"
}
```
:::

:::ApiMethodV2
```json
{
  "tab": "examples",
  "url": "http://localhost:82/scrud/create",
  "name": "Create a File (metadata)",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [],
    "bodyDataParameters": [
      {
        "kind": "required",
        "name": "type",
        "type": "string",
        "description": "Content Type name in sharepoint."
      },
      {
        "kind": "required",
        "name": "location",
        "type": "string",
        "description": "Sharepoint Document Library location (including any sub site present). Each field is separated with \"/\"."
      },
      {
        "kind": "required",
        "name": "selectedCMS",
        "type": "string",
        "description": "Value should always be set to \"sp\" to let Link Enterprise know which configured content system to search."
      },
      {
        "kind": "required",
        "name": "cmsName",
        "type": "string",
        "description": "Name of the sharepoint system configured in docuflow."
      },
      {
        "kind": "required",
        "name": "mdArray",
        "type": "Array",
        "description": "A JSON array where each index is a json object with the keys \"md1\" and \"md2\". Where md1 is the column name, and md2 is the value to be inserted in that column."
      },
      {
        "name": "fileLocation",
        "kind": "required",
        "type": "string",
        "description": "file location in local system that needs to be stored in sharepoint.",
        "children": []
      },
      {
        "name": "repository",
        "kind": "required",
        "type": "string",
        "description": "Sharepoint repository Id.  It consists of sharepoint domain name and root site name separated with \"/sites/\" or \":/teams/\"",
        "children": []
      }
    ],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "0iMkCF4s-yKchRAaXWJq3",
        "code": "",
        "language": "200"
      },
      {
        "id": "Idjmyl-woaWfo4s5K3_bg",
        "code": "",
        "language": "500"
      }
    ],
    "selectedLanguageId": "0iMkCF4s-yKchRAaXWJq3"
  },
  "examples": {
    "languages": [
      {
        "id": "YYkmw0EaCT-jCk9-cGJJs",
        "code": "{   \n   \"cmsName\":\"Name of the sharepoint system configured in Link Enterpri.\",\n   \"repository\":\"<domain_name>/sites/<rootSiteName>\",    \n   \"fileLocation\":\"C:\\\\someFolder\\\\someFile.txt\",\n   \"type\":\"insertMetaDataTemplate\",\n   \"location\":\"/<subsite>/<documentLibrary>\",\n   \"selectedCMS\":\"sp\",\n    \"mdArray\":[\n      {\n         \"md1\":\"insertColumnName\",\n         \"md2\":\"insertValue\"\n      },\n      {\n         \"md1\":\"someVendor\",\n         \"md2\":\"Gimmal Inc\"\n      }\n\t\t ]\n}",
        "language": "json"
      }
    ],
    "selectedLanguageId": "YYkmw0EaCT-jCk9-cGJJs"
  },
  "description": "Create a file with metadata",
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "autoGeneratedAnchorSlug": "create-a-file-metadata",
  "legacyHash": "jwu3C_6nkyZkTjqhuztuj"
}
```
:::

:::ApiMethodV2
```json
{
  "tab": "examples",
  "url": "https://localhost:82/scrud/create",
  "name": "Create a Folder",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [],
    "bodyDataParameters": [
      {
        "kind": "required",
        "name": "location",
        "type": "string",
        "description": "Sharepoint Document Library location (including any sub site present). Each field is separated with \"/\"."
      },
      {
        "kind": "required",
        "name": "selectedCMS",
        "type": "string",
        "description": "Value should always be set to \"sp\" to let Link Enterprise know which configured content system to search."
      },
      {
        "kind": "required",
        "name": "cmsName",
        "type": "string",
        "description": "Name of the sharepoint system configured in Link Enterprise."
      },
      {
        "kind": "required",
        "name": "custom1",
        "type": "string",
        "description": "Name of the folder you would like to create."
      },
      {
        "name": "repository",
        "kind": "required",
        "type": "string",
        "description": "Sharepoint repository Id. It consists of sharepoint domain name and root site name separated with \"/sites/\" or \":/teams/\"",
        "children": []
      },
      {
        "name": "fileLocation",
        "kind": "optional",
        "type": "string",
        "description": "file location in local system that needs to be stored in sharepoint.",
        "children": []
      }
    ],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "59h-A2k0zONjIeSYsWRxE",
        "code": "",
        "language": "200"
      },
      {
        "id": "-CFsYXvO_LjjekeThBmeD",
        "code": "",
        "language": "500"
      }
    ],
    "selectedLanguageId": "59h-A2k0zONjIeSYsWRxE"
  },
  "examples": {
    "languages": [
      {
        "id": "r7afh-lQ7ej9Kyrx6_sDW",
        "code": "{   \n   \"cmsName\":\"Name of the sharepoint system configured in Link Enterpri.\",\n   \"repository\":\"<domain_name>/sites/<rootSiteName>\",\n   \"location\":\"/<subsite>/<documentLibrary>\",\n   \"selectedCMS\":\"sp\",\n   \"custom1\":\"test\"\n}",
        "language": "json"
      }
    ],
    "selectedLanguageId": "r7afh-lQ7ej9Kyrx6_sDW"
  },
  "description": "Create a folder with no metadata",
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "autoGeneratedAnchorSlug": "create-a-folder",
  "legacyHash": "wIxsI8djIx6QeX1UJGwdT"
}
```
:::

:::ApiMethodV2
```json
{
  "tab": "examples",
  "url": "https://localhost:82/scrud/create",
  "name": "Create a Folder (metadata)",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [],
    "bodyDataParameters": [
      {
        "kind": "required",
        "name": "type",
        "type": "string",
        "description": "Content Type name in sharepoint."
      },
      {
        "kind": "required",
        "name": "location",
        "type": "string",
        "description": "Sharepoint Document Library location (including any sub site present). Each field is separated with \"/\"."
      },
      {
        "kind": "required",
        "name": "selectedCMS",
        "type": "string",
        "description": "Value should always be set to \"sp\" to let Link Enterprise know which configured content system to search."
      },
      {
        "kind": "required",
        "name": "cmsName",
        "type": "string",
        "description": "Name of the sharepoint system configured in Link Enterprise."
      },
      {
        "kind": "required",
        "name": "custom1",
        "type": "string",
        "description": "Name of the folder you would like to create."
      },
      {
        "kind": "required",
        "name": "mdArray",
        "type": "Array",
        "description": "A JSON array where each index is a json object with the keys \"md1\" and \"md2\". Where md1 is the column name, and md2 is the value to be inserted in that column."
      },
      {
        "kind": "required",
        "name": "metaDataFolderFlag",
        "type": "Boolean",
        "description": "true if setting metadata for folders\nfalse if not setting metadata for folders"
      },
      {
        "name": "repository",
        "kind": "required",
        "type": "string",
        "description": "Sharepoint repository Id.  It consists of sharepoint domain name and root site name separated with \"/sites/\" or \":/teams/\"",
        "children": []
      },
      {
        "name": "fileLocation",
        "kind": "optional",
        "type": "string",
        "description": "file location in local system that needs to be stored in sharepoint.",
        "children": []
      }
    ],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "ecFzJ0cYeEURQk6_xyi-w",
        "code": "",
        "language": "200"
      },
      {
        "id": "lxCnVEL7Gh2NxD-xcILS3",
        "code": "",
        "language": "500"
      }
    ],
    "selectedLanguageId": "ecFzJ0cYeEURQk6_xyi-w"
  },
  "examples": {
    "languages": [
      {
        "id": "9wXKSoMG0n4VQQCVfQNcy",
        "code": "{   \n   \"cmsName\":\"Name of the sharepoint system configured in Link Enterpri.\",\n   \"repository\":\"<domain_name>/sites/<rootSiteName>\",    \n   \"type\":\"insertMetaDataTemplate\",\n   \"location\":\"/<subsite>/<documentLibrary>\",\n   \"selectedCMS\":\"sp\",\n    \"mdArray\":[\n      {\n         \"md1\":\"insertColumnName\",\n         \"md2\":\"insertValue\"\n      },\n      {\n         \"md1\":\"someVendor\",\n         \"md2\":\"Gimmal Inc\"\n      }\n\t\t ],\n\t\t    \"custom1\":\"test\",\n\t\t    \"metaDataFolderFlag\":true\n}",
        "language": "json"
      }
    ],
    "selectedLanguageId": "9wXKSoMG0n4VQQCVfQNcy"
  },
  "description": "Create a Folder with metadata",
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "autoGeneratedAnchorSlug": "create-a-folder-metadata",
  "legacyHash": "Jv0MnAE3164FpSznGPg08"
}
```
:::

:::ApiMethodV2
```json
{
  "tab": "examples",
  "url": "https://localhost:82/scrud/create",
  "name": "Create a Folder (metadata and nested)",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [],
    "bodyDataParameters": [
      {
        "kind": "required",
        "name": "type",
        "type": "string",
        "description": "Content Type name in sharepoint."
      },
      {
        "kind": "required",
        "name": "location",
        "type": "string",
        "description": "Sharepoint Document Library location (including any sub site present). Each field is separated with \"/\"."
      },
      {
        "kind": "required",
        "name": "selectedCMS",
        "type": "string",
        "description": "Value should always be set to \"sp\" to let Link Enterprise know which configured content system to search."
      },
      {
        "kind": "required",
        "name": "cmsName",
        "type": "string",
        "description": "Name of the sharepoint system configured in Link Enterprise."
      },
      {
        "kind": "required",
        "name": "custom1",
        "type": "string",
        "description": "Name of the folder you would like to create. If using nested the delimiter is #DFLOW# and prefix \"~\" before the folder name where the document needs to be stored.\nexample: folder1#DFLOW#folder2#DFLOW#~folder3. (The document is will be stored inside folder3). By default, The document goes into parent folder."
      },
      {
        "kind": "required",
        "name": "mdArray",
        "type": "Array",
        "description": "A JSON array where each index is a json object with the keys \"md1\" and \"md2\". Where md1 is the column name, and md2 is the value to be inserted in that column."
      },
      {
        "kind": "required",
        "name": "enableNested",
        "type": "Boolean",
        "description": "true (if wanting each folder to have one child in a nested manner)\n\nfalse (if all children are located under the first folder name)"
      },
      {
        "kind": "required",
        "name": "metaDataFolderFlag",
        "type": "Boolean",
        "description": "true if setting metadata for folders\nfalse if not setting metadata for folders"
      },
      {
        "name": "fileLocation",
        "kind": "optional",
        "type": "string",
        "description": "file location in local system that needs to be stored in sharepoint.",
        "children": []
      },
      {
        "name": "repository",
        "kind": "required",
        "type": "string",
        "description": "Sharepoint repository Id.  It consists of sharepoint domain name and root site name separated with \"/sites/\" or \":/teams/\"",
        "children": []
      }
    ],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "1P4dxmaXpscwhcaiJsF-W",
        "code": "",
        "language": "200"
      },
      {
        "id": "YFJvJP7JqIuUdivzIep9B",
        "code": "",
        "language": "500"
      }
    ],
    "selectedLanguageId": "1P4dxmaXpscwhcaiJsF-W"
  },
  "examples": {
    "languages": [
      {
        "id": "ueWIFObFukX7uxGDL9XBi",
        "code": "{   \n   \"cmsName\":\"Name of the sharepoint system configured in Link Enterpri.\",\n   \"repository\":\"<domain_name>/sites/<rootSiteName>\",    \n   \"fileLocation\": \"C:\\\\someFolder\\\\someFile.txt\",\n   \"type\":\"insertMetaDataTemplate\",\n   \"location\":\"/<subsite>/<documentLibrary>\",\n   \"selectedCMS\":\"sp\",\n    \"mdArray\":[\n      {\n         \"md1\":\"insertColumnName\",\n         \"md2\":\"insertValue\"\n      },\n      {\n         \"md1\":\"someVendor\",\n         \"md2\":\"Gimmal Inc\"\n      }\n\t\t ],\n       \"custom1\":\"folderName#DFLOW#folderName2#DFLOW#folderName3\",\n      \"metaDataFolderFlag\":true,\n      \"enableNested\":true\n}",
        "language": "json"
      }
    ],
    "selectedLanguageId": "ueWIFObFukX7uxGDL9XBi"
  },
  "description": "Create a Folder with metadataFolderFlag set to true and enableNested set to false. A nested folder structure is created with metadata type and fields set to the parent folder and a document is added inside the specified subfolder or the parent folder.",
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "autoGeneratedAnchorSlug": "create-a-folder-metadata-and-nested",
  "legacyHash": "wCBvhfT17RLyLiW_SsYpj"
}
```
:::

:::ApiMethodV2
```json
{
  "tab": "examples",
  "url": "https://localhost:82/scrud/create",
  "name": "Create a Folder (metadata and nested false)",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [],
    "bodyDataParameters": [
      {
        "kind": "required",
        "name": "type",
        "type": "string",
        "description": "Content Type name in sharepoint."
      },
      {
        "kind": "required",
        "name": "location",
        "type": "string",
        "description": "Sharepoint Document Library location (including any sub site present). Each field is separated with \"/\"."
      },
      {
        "kind": "required",
        "name": "selectedCMS",
        "type": "string",
        "description": "Value should always be set to \"sp\" to let Link Enterprise know which configured content system to search."
      },
      {
        "kind": "required",
        "name": "cmsName",
        "type": "string",
        "description": "Name of the sharepoint system configured in Link Enterprise."
      },
      {
        "kind": "required",
        "name": "custom1",
        "type": "string",
        "description": "Name of the folder you would like to create. If using nested the delimiter is #DFLOW#"
      },
      {
        "kind": "required",
        "name": "mdArray",
        "type": "Array",
        "description": "A JSON array where each index is a json object with the keys \"md1\" and \"md2\". Where md1 is the column name, and md2 is the value to be inserted in that column."
      },
      {
        "kind": "required",
        "name": "enableNested",
        "type": "Boolean",
        "description": "true (if wanting each folder to have one child in a nested manner)\n\nfalse (if all children are located under the first folder name)\nWhen false and metadata is "
      },
      {
        "kind": "required",
        "name": "metaDataFolderFlag",
        "type": "Boolean",
        "description": "true if setting metadata for folders\nfalse if not setting metadata for folders"
      },
      {
        "name": "fileLocation",
        "kind": "optional",
        "type": "string",
        "description": "file location in local system that needs to be stored in sharepoint.",
        "children": []
      },
      {
        "name": "repository",
        "kind": "required",
        "type": "string",
        "description": "Sharepoint repository Id.  It consists of sharepoint domain name and root site name separated with \"/sites/\" or \":/teams/\"",
        "children": []
      }
    ],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "eZnSiYCQgdUwGzVHVCpC-",
        "code": "",
        "language": "200"
      },
      {
        "id": "N2NeRZSPkxazHkQm-jwrV",
        "code": "",
        "language": "500"
      }
    ],
    "selectedLanguageId": "eZnSiYCQgdUwGzVHVCpC-"
  },
  "examples": {
    "languages": [
      {
        "id": "bgcmLQUzSw5m7cmhH8kbV",
        "code": "{   \n   \"cmsName\":\"Name of the sharepoint system configured in Link Enterpri.\",\n   \"repository\":\"<domain_name>/sites/<rootSiteName>\",    \n   \"fileLocation\": \"C:\\\\someFolder\\\\someFile.txt\",\n   \"type\":\"insertMetaDataTemplate\",\n   \"location\":\"/<subsite>/<documentLibrary>\",\n   \"selectedCMS\":\"sp\",\n    \"mdArray\":[\n      {\n         \"md1\":\"insertColumnName\",\n         \"md2\":\"insertValue\"\n      },\n      {\n         \"md1\":\"someVendor\",\n         \"md2\":\"Gimmal Inc\"\n      }\n\t\t ],\n       \"custom1\":\"folderName#DFLOW#folderName2#DFLOW#folderName3\",\n      \"metaDataFolderFlag\":true,\n      \"enableNested\":false\n}",
        "language": "json"
      }
    ],
    "selectedLanguageId": "bgcmLQUzSw5m7cmhH8kbV"
  },
  "description": "Create a Folder with metadataFolderFlag set to true and enableNested set to false. A flat folder structure is created with metadata type and fields set to the parent folder and a document is added inside the parent folder.",
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "autoGeneratedAnchorSlug": "create-a-folder-metadata-and-nested-false",
  "legacyHash": "GD-3v2PH9Zpl5L7CzrcqT"
}
```
:::

:::ApiMethodV2
```json
{
  "tab": "examples",
  "url": "https://localhost:82/scrud/create",
  "name": "Create a Folder (no metadata and nested false)",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [],
    "bodyDataParameters": [
      {
        "kind": "optional",
        "name": "type",
        "type": "string",
        "description": "Content Type name in sharepoint."
      },
      {
        "kind": "required",
        "name": "location",
        "type": "string",
        "description": "Sharepoint Document Library location (including any sub site present). Each field is separated with \"/\"."
      },
      {
        "kind": "required",
        "name": "selectedCMS",
        "type": "string",
        "description": "Value should always be set to \"sp\" to let Link Enterprise know which configured content system to search."
      },
      {
        "kind": "required",
        "name": "cmsName",
        "type": "string",
        "description": "Name of the sharepoint system configured in Link Enterprise."
      },
      {
        "kind": "required",
        "name": "custom1",
        "type": "string",
        "description": "Name of the folder you would like to create. If using nested the delimiter is #DFLOW#"
      },
      {
        "kind": "required",
        "name": "mdArray",
        "type": "Array",
        "description": "A JSON array where each index is a json object with the keys \"md1\" and \"md2\". Where md1 is the column name, and md2 is the value to be inserted in that column."
      },
      {
        "kind": "required",
        "name": "enableNested",
        "type": "Boolean",
        "description": "true (if wanting each folder to have one child in a nested manner)\n\nfalse (if all children are located under the first folder name)"
      },
      {
        "kind": "required",
        "name": "metaDataFolderFlag",
        "type": "Boolean",
        "description": "true if setting metadata for folders\nfalse if not setting metadata for folders"
      },
      {
        "name": "fileLocation",
        "kind": "optional",
        "type": "string",
        "description": "file location in local system that needs to be stored in sharepoint.",
        "children": []
      },
      {
        "name": "repository",
        "kind": "required",
        "type": "string",
        "description": "Sharepoint repository Id.  It consists of sharepoint domain name and root site name separated with \"/sites/\" or \":/teams/\"",
        "children": []
      }
    ],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "Vo9jNEPrIAjJ6wvW4Sip-",
        "code": "",
        "language": "200"
      },
      {
        "id": "L4O7Oo2z1FBfXmQCA-pGy",
        "code": "",
        "language": "500"
      }
    ],
    "selectedLanguageId": "Vo9jNEPrIAjJ6wvW4Sip-"
  },
  "examples": {
    "languages": [
      {
        "id": "m_86XorHlr5Rl-54vrddu",
        "code": "{   \n   \"cmsName\":\"Name of the sharepoint system configured in Link Enterpri.\",\n   \"repository\":\"<domain_name>/sites/<rootSiteName>\",    \n   \"fileLocation\": \"C:\\\\someFolder\\\\someFile.txt\",\n   \"type\":\"insertMetaDataTemplate\",\n   \"location\":\"/<subsite>/<documentLibrary>\",\n   \"selectedCMS\":\"sp\",\n    \"mdArray\":[\n      {\n         \"md1\":\"insertColumnName\",\n         \"md2\":\"insertValue\"\n      },\n      {\n         \"md1\":\"someVendor\",\n         \"md2\":\"Gimmal Inc\"\n      }\n\t\t ],\n       \"custom1\":\"folderName#DFLOW#folderName2#DFLOW#folderName3\",\n      \"metaDataFolderFlag\":false,\n      \"enableNested\":false\n}",
        "language": "json"
      }
    ],
    "selectedLanguageId": "m_86XorHlr5Rl-54vrddu"
  },
  "description": "Create a Folder with metadataFloderFlag and enableNested set to false. A flat folder structure is created and a document is added inside the parent folder with metadata type and fields provided in the request.",
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "autoGeneratedAnchorSlug": "create-a-folder-no-metadata-and-nested-false",
  "legacyHash": "iamkEN4dx3y-wyZdXaiVe"
}
```
:::




[title] Read
[path] Agnostic Guides/Developers Guide/Untitled/

Link Enterprise provides a web service endpoint that will allow you to retrieve a file or folders metadata or binary content of a file.

Included below are examples of reading a files metadata and it's binary content. (Two separate calls)

:::ApiMethodV2
```json
{
  "tab": "examples",
  "url": "https://localhost:82/scrud/read",
  "name": "Read (metadata)",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [],
    "bodyDataParameters": [
      {
        "kind": "required",
        "name": "cmsName",
        "type": "string",
        "description": "Name of the sharepoint system configured in Link Enterprise ."
      },
      {
        "kind": "required",
        "name": "id",
        "type": "string",
        "description": "Unique id of sharepoint file or folder."
      },
      {
        "kind": "required",
        "name": "selectedCMS",
        "type": "string",
        "description": "Value should always be set to \"sp\" to let Link Enterprise know which configured content system to search."
      },
      {
        "kind": "optional",
        "name": "getContent",
        "type": "Boolean",
        "description": "true/false (will retrieve binary of file)"
      },
      {
        "name": "repo",
        "kind": "required",
        "type": "string",
        "description": "Sharepoint repository Id. It consists of sharepoint domain name and root site name separated with \"/sites/\" or \":/teams/\"",
        "children": []
      },
      {
        "name": "location",
        "kind": "required",
        "type": "string",
        "description": "Sharepoint Document Library location (including any sub site present). Each field is separated with \"/\".",
        "children": []
      }
    ],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "ymgovs5m1fdI32-gkqqCH",
        "code": "{\n\t\"ContentElements\": \"demo1.txt#DFLOW#text/plain#DFLOW#2111\",\n\t\"comment_count\": \"0\",\n\t\"companyCode\": \"\",\n\t\"content_created_at\": \"10/12/2021 12:48:52 p.m. PDT\",\n\t\"content_modified_at\": \"10/12/2021 12:48:52 p.m. PDT\",\n\t\"created_at\": \"12/20/2021 07:29:31 a.m. PST\",\n\t\"created_by\": \"Bhavani Singetam\",\n\t\"description\": \"\",\n\t\"LinkEnterpriseSaplinkEnabled\": \"\",\n\t\"LinkEnterpriseTimestamp\": \"\",\n\t\"LinkEnterpriseUsername\": \"\",\n\t\"LinkEnterprisetaskid\": \"15103846926\",\n\t\"LinkEnterprisetaskstatus\": \"in-process\",\n\t\"LinkEnterpriseworkflowid\": \"\",\n\t\"embed1\": \"https://gimmal-box.app.box.com/preview/expiring_embed/gvoct6FE!hc4EhSwuz8Zl-y-Sf8ObT25vPUi0lkTN3P_G1lELtgvcTHI4XYWYP-XZhZWcK5z5CI4u9e7c3_RoAfYB20tZMuFl0x2V7fSwClu8AhnPutLbNP1FtCxFafNsqjCtAHvpS_se8df5J8GEz9i-tcBi4b1opVcVAGLMDiZ4KX2GroXLuGTzx4aMT80hFSHoR-NCXUOkX-ybyMNUp78Tsk8L3Ka1O3mji4NA1uUuA7UPluNXgai7tpzUd-ZNvnLJdAXlrxhYftkAIDGEKAhq4CEFk4nyQ7gvU_WueSQiyHzSbwAY8VofPHTPcyrR8S7Mr7Bm-51RkzeL6SHhgIDkP-GeFLI3aHbpVKRlK5jKx74E9mJ8jbp3ll6W-9sFaKJj_UQgfcxObiNS-uT2ens9z8HzNxdLY4G-XuEzY3zFyDUdGzDKWIF8kUrC-UUMnJbE8ZjJx_Ae4Hv8kygHHJAmaU3SbHUekHLNMssnAp_jkPXg2zJupr-hjimdAldrxYV6owh-ak3op7a22qzUqmsGad7sDjsPDTm5NxP7Ea87N-T6Rrqirgrg9sxUjc1jeVCueysT-xL6ekW70oh_WM2ZFJNnf_qSDWisSyrtMGFSSNUAxySNwMZA-YRBgaKHwBHp3C942PvhLyFtxtCZ3tLA1n1acf9ow3RKmgEoV65hih6Tlaq2gfdy6wbgIRfwsKYmrP2xH67YMibfKn22xI0Isgw49Vo1VvDLFqsJ5OCUcsucG-ouuB3j4kAcwvoQa-rWdLL-Tym-04Xzp4ZmzAXZIZ0AQSfS-ifcqGPoXuL79WMYN7QAc9RgALvtq6qmkMvHaHKAbPI4G0Mnkisyiy-1xYKiAUQZlsJ4UXVhtc6qK3w78rmO8b7xVyE2lLDTQVg0McmrWk9csdNNGjVZS9vQ5Wj6SFcVFw1rw3r6r0epOH-ryN8FRy2BU4b-rV1qX1_UO1\",\n\t\"embed2\": \"Kne3s4qBnDfTAL8DoHZoq7qssnDf9P-aznmofY-lZNz0Bk8oek5Qcgf_NChMzkPyNgAT6_RSgwhMNgGh7hUuNMNOdak5_xs-bZANve68DtQWwBqwwG6kGydnZcu8Upg7JczEuwIhVO8O-5YZvMt6rq7_fFnnFeyOLx41cjNQZ3MmnK6IBw18FQhhEKU2r_pMoy4ft6-NF0D48Elhc2WxD1PIy9q6ZL4qhNHFdIMSK-tbWR0cD9lanR6GFh9h2Ggh7AWFq-K126TEgY5jD2NC\",\n\t\"etag\": \"1\",\n\t\"expiring_embed_link\": \"https://gimmal-box.app.box.com/preview/expiring_embed/gvoct6FE!hc4EhSwuz8Zl-y-Sf8ObT25vPUi0lkTN3P_G1lELtgvcTHI4XYWYP-XZhZWcK5z5CI4u9e7c3_RoAfYB20tZMuFl0x2V7fSwClu8AhnPutLbNP1FtCxFafNsqjCtAHvpS_se8df5J8GEz9i-tcBi4b1opVcVAGLMDiZ4KX2GroXLuGTzx4aMT80hFSHoR-NCXUOkX-ybyMNUp78Tsk8L3Ka1O3mji4NA1uUuA7UPluNXgai7tpzUd-ZNvnLJdAXlrxhYftkAIDGEKAhq4CEFk4nyQ7gvU_WueSQiyHzSbwAY8VofPHTPcyrR8S7Mr7Bm-51RkzeL6SHhgIDkP-GeFLI3aHbpVKRlK5jKx74E9mJ8jbp3ll6W-9sFaKJj_UQgfcxObiNS-uT2ens9z8HzNxdLY4G-XuEzY3zFyDUdGzDKWIF8kUrC-UUMnJbE8ZjJx_Ae4Hv8kygHHJAmaU3SbHUekHLNMssnAp_jkPXg2zJupr-hjimdAldrxYV6owh-ak3op7a22qzUqmsGad7sDjsPDTm5NxP7Ea87N-T6Rrqirgrg9sxUjc1jeVCueysT-xL6ekW70oh_WM2ZFJNnf_qSDWisSyrtMGFSSNUAxySNwMZA-YRBgaKHwBHp3C942PvhLyFtxtCZ3tLA1n1acf9ow3RKmgEoV65hih6Tlaq2gfdy6wbgIRfwsKYmrP2xH67YMibfKn22xI0Isgw49Vo1VvDLFqJ5OCUcsucG-ouuB3j4kAcwvoQa-rWdLL-Tym-04Xzp4ZmzAXZIZ0AQSfS-ifcqGPoXuL79WMYN7QAc9RgALvtq6qmkMvHaHKAbPI4G0Mnkisyiy-1xYKiAUQZlsJ4UXVhtc6qK3w78rmO8b7xVyE2lLDTQVg0McmrWk9csdNNGjVZS9vQ5Wj6SFcVFw1rw3r6r0epOH-ryN8FRy2BU4b-rV1qX1_UO1Kne34qBnDfTAL8DoHZoq7qssnDf9P-aznmofY-lZNz0Bk8oek5Qcgf_NChMzkPyNgAT6_RSgwhMNgGh7hUuNMNOdak5_xs-bZANve68DtQWwBqwwG6kGydnZcu8Upg7JczEuwIhVO8O-5YZvMt6rq7_fFnnFeyOLx41cjNQZ3MmnK6IBw18FQhhEKU2r_pMoy4ft6-NF0D48Elhc2WxD1PIy9q6ZL4qhNHFdIMSK-tbWR0cD9lanR6GFh9h2Gghs7AWFq-K126TEgY5jD2NC\",\n\t\"extension\": \"txt\",\n\t\"fileVersion\": \"967518965567\",\n\t\"file_version\": \"967518965567\",\n\t\"has_collaborations\": \"true\",\n\t\"id\": \"897859484481\",\n\t\"is_package\": \"false\",\n\t\"item_status\": \"active\",\n\t\"lastUpdated\": \"1640195853\",\n\t\"linkedToSap\": \"\",\n\t\"lock\": \"\",\n\t\"modified_at\": \"12/22/2021 09:57:30 a.m. PST\",\n\t\"modified_by\": \"someone\",\n\t\"name\": \"demo1.txt\",\n\t\"owned_by\": \"Link Enterprise Demo\",\n\t\"parent\": \"1474026705828\",\n\t\"path_collection\": \"/test\",\n\t\"paymentTerm\": \"\",\n\t\"permissions\": \"can_download:true,can_preview:true,can_upload:true,can_comment:true,can_rename:true,can_delete:true,can_share:true,can_set_share_access:true\",\n\t\"poNumber\": \"5900\",\n\t\"poStatus\": \"\",\n\t\"purged_at\": \"\",\n\t\"sequence_id\": \"1\",\n\t\"sha1\": \"013efd1020dea4fcdc4f9118433acc8ded3bf895\",\n\t\"shared_link\": \"\",\n\t\"size\": \"2111\",\n\t\"tags\": \"\",\n\t\"trashed_at\": \"\",\n\t\"type\": \"file\",\n\t\"vendorName\": \"\",\n\t\"vendorNumber\": \"\",\n\t\"version_number\": \"2\"\n}",
        "language": "200"
      },
      {
        "id": "guaZg_Kjaci06qaXI6hoD",
        "code": "",
        "language": "500"
      }
    ],
    "selectedLanguageId": "ymgovs5m1fdI32-gkqqCH"
  },
  "examples": {
    "languages": [
      {
        "id": "yA6PAHJgLMNa-NjR8XpmC",
        "code": "{\n   \"cmsName\":\"insertProductionSystemName (located in Link Enterprise gui)\",\n   \"id\":\"unique sharepoint id specfic to folder/id\",\n   \"location\":\"/<subsite>/<documentLibraray>\",\n   \"repo\":\"<domainName>/sites/<siteName>\",\n   \"getContent\":false,\n\t\"selectedCMS\":\"sp\"\n\t\n}\n",
        "language": "json"
      }
    ],
    "selectedLanguageId": "yA6PAHJgLMNa-NjR8XpmC"
  },
  "description": "Retrieve a file or folders metadata by using sharepoint unique one drive Id.",
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "autoGeneratedAnchorSlug": "read-metadata",
  "legacyHash": "RTkIuAhig8f9DkChR6cM4"
}
```
:::

:::ApiMethodV2
```json
{
  "tab": "examples",
  "url": "https://localhost:82/scrud/read",
  "name": "Read (Binary content)",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [],
    "bodyDataParameters": [
      {
        "kind": "required",
        "name": "cmsName",
        "type": "string",
        "description": "Name of the sharepoint system configured in Link Enterprise."
      },
      {
        "kind": "required",
        "name": "id",
        "type": "string",
        "description": "Unique id of sharepoint file or folder."
      },
      {
        "kind": "required",
        "name": "selectedCMS",
        "type": "string",
        "description": "Value should always be set to \"sp\" to let Link Enterprise know which configured content system to search."
      },
      {
        "name": "repo",
        "kind": "required",
        "type": "string",
        "description": "Sharepoint repository Id. It consists of sharepoint domain name and root site name.",
        "children": []
      },
      {
        "name": "location",
        "kind": "required",
        "type": "string",
        "description": "Sharepoint Document Library location (including any sub site present). Each field is separated with \"/\".",
        "children": []
      },
      {
        "name": "tmpDirectory",
        "kind": "optional",
        "type": "string",
        "description": "temporary directory where the retrieved the document is stored.",
        "children": []
      },
      {
        "name": "getContent",
        "kind": "required",
        "type": "string",
        "description": "true/false (will retrieve binary of file)",
        "children": []
      }
    ],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "qsuZNFPgIsSVantMQCRHv",
        "code": "...binary",
        "language": "200"
      },
      {
        "id": "PKMksZm--cuDmKfft4kGf",
        "code": "",
        "language": "500"
      }
    ],
    "selectedLanguageId": "qsuZNFPgIsSVantMQCRHv"
  },
  "examples": {
    "languages": [
      {
        "id": "x1biY5DVAqDpMMm0qvQhO",
        "code": "{\n   \"cmsName\":\"insertProductionSystemName (located in Link Enterprise gui)\",\n   \"id\":\"unique sharepoint id specfic to folder/id\",\n   \"location\":\"/<subsite>/<documentLibraray>\",\n   \"repo\":\"<domainName>/sites/<siteName>\",\n   \"getContent\":true,\n\t\"selectedCMS\":\"sp\"\n\t\"tmpDirectory\":\"C:\\\\middleware\\\\tmp\"\n}",
        "language": "json"
      },
      {
        "id": "q4sc9OgyJFxO60XBl5eYN",
        "code": "< HTTP/1.1 200 OK\r\n< filename: demo1.txt\r\n< size: 2111\r\n< transfer-encoding: chunked",
        "language": "none",
        "customLabel": "Headers Response (200)"
      }
    ],
    "selectedLanguageId": "x1biY5DVAqDpMMm0qvQhO"
  },
  "description": "Retrieve a files binary by using sharepoint one drive Id.",
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "autoGeneratedAnchorSlug": "read-binary-content",
  "legacyHash": "1qlCNhBogYf8ukTiGmKWL"
}
```
:::




[title] SAP Code Vulnerability Analyzer (CVA)
[path] Agnostic Guides/Developers Guide/

Link Enterprise  passes all P1/P2/P3 SAP CVA SLIN\_SEC checks.&#x20;

All requirements are handed via inline Link Enterprise  code with the exception of access (READ) to standard some standard SAP table (considered level P3).

To pass this requirement, an additional transport is available from Gimmal to implement BADI SLIN\_BADI\_DBTAB\_ACCESS.


[title] Search
[path] Agnostic Guides/Developers Guide/Untitled/

Link Enterprise provides a web service endpoint that will allow you to retrieve a subset of documents/folders based on a search criteria.

:::ApiMethodV2
```json
{
  "tab": "examples",
  "url": "https://localhost:82/scrud/search",
  "name": "Search ",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [],
    "bodyDataParameters": [
      {
        "kind": "required",
        "name": "cmsName",
        "type": "String",
        "description": "Name of the sharepoint system configured in Link Enterprise ."
      },
      {
        "kind": "required",
        "name": "whereClause",
        "type": "string",
        "description": "A where clause Used to query sharepoint to return a set of files/folders depending on criteria set."
      },
      {
        "kind": "required",
        "name": "selectedCMS",
        "type": "string",
        "description": "Value should always be set to \"sp\" to let Link Enterprise know which configured content system to search."
      },
      {
        "name": "repository",
        "kind": "required",
        "type": "string",
        "description": "Sharepoint repository Id. It consists of sharepoint domain name and root site name separated with \"/sites/\" or \":/teams/\"",
        "children": []
      },
      {
        "name": "location",
        "kind": "required",
        "type": "string",
        "description": "Sharepoint Document Library location (including any sub site present). Each field is separated with \"/\".",
        "children": []
      }
    ],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "l7mAccvIkcMGyR03J3_aP",
        "code": "[\n\t{\n\t\t\"Modified\": \"2022-10-14T19:46:38Z\",\n\t\t\"LinkFilename\": \"demo.txt\",\n\t\t\"ContentType\": \"Document\",\n\t\t\"Edit\": \"0\",\n\t\t\"FileLeafRef\": \"demo.txt\",\n\t\t\"_ComplianceTag\": \"\",\n\t\t\"Created\": \"2022-10-14T19:44:57Z\",\n\t\t\"_DisplayName\": \"\",\n\t\t\"_UIVersionString\": \"1.0\",\n\t\t\"DocIcon\": \"txt\",\n\t\t\"ParentVersionString\": \"\",\n\t\t\"LinkFilenameNoMenu\": \"demo.txt\",\n\t\t\"id\": \"01CHITTN72QLKGJ5B3RREABCDEF3\",\n\t\t\"SapLinkTrigger\": \"False\",\n\t\t\"ParentLeafName\": \"\",\n\t\t\"_ComplianceTagWrittenTime\": \"\",\n\t\t\"_CommentCount\": \"\",\n\t\t\"@odata.etag\": \"\\\"64d482fa-3bf4-498c-b628-f9fbRbf33efb,2\\\"\",\n\t\t\"Title\": \"202\",\n\t\t\"_CheckinComment\": \"\",\n\t\t\"FileSizeDisplay\": \"33456\",\n\t\t\"_ComplianceTagUserId\": \"\",\n\t\t\"ItemChildCount\": \"0\",\n\t\t\"Author\": \"\",\n\t\t\"_ComplianceFlags\": \"\",\n\t\t\"Id\": \"01CHITTN72QLKGJ5B3RREABCDEF3\",\n\t\t\"Editor\": \"\",\n\t\t\"_LikeCount\": \"\",\n\t\t\"FolderChildCount\": \"0\"\n\t}\n]",
        "language": "200"
      },
      {
        "id": "C0tj4vmrgrTV7Xq8ZvvAu",
        "code": "",
        "language": "500"
      }
    ],
    "selectedLanguageId": "l7mAccvIkcMGyR03J3_aP"
  },
  "examples": {
    "languages": [
      {
        "id": "RinXZo0WaAz3lEkUOH2ux",
        "code": "{\n\"cmsName\":\"insertProductionSystemName (located in Link Enterprise gui)\",\n\"repository\":\"<domain_name>/sites/<rootSiteName>\",\n\"whereClause\":\"insertMetaDataColumnName eq 'insertMetaDataValue'\",\n\"location\":\"/<subsiteName>/<documentLibraryName>\",\n\"selectedCMS\":\"sp\"\n}\n\n",
        "language": "json"
      }
    ],
    "selectedLanguageId": "RinXZo0WaAz3lEkUOH2ux"
  },
  "description": "Search for all documents using a where clause. If successful will return a JSON Array with a size greater then or equal to zero with status code of 200. Otherwise status code 500 is returned. If it's a known error returns 200 with error message in response.\n",
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "autoGeneratedAnchorSlug": "search",
  "legacyHash": "2I1lkUo-tBmvDr0MrlixB"
}
```
:::


[title] Update
[path] Agnostic Guides/Developers Guide/Untitled/

Link Enterprise provides a web service endpoint that will allow you to update a document or folders metadata.&#x20;

:::ApiMethodV2
```json
{
  "tab": "request",
  "url": "https://localhost:82/scrud/update",
  "name": "Update File/Folder metadata",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [],
    "bodyDataParameters": [
      {
        "kind": "required",
        "name": "id",
        "type": "string",
        "description": "Unique id of sharepoint file or folder."
      },
      {
        "kind": "required",
        "name": "cmsName",
        "type": "string",
        "description": "Name of the sharepoint system configured in Link Enterprise."
      },
      {
        "kind": "required",
        "name": "selectedCMS",
        "type": "string",
        "description": "Value should always be set to \"sp\" to let Link Enterprise know which configured content system to search."
      },
      {
        "kind": "required",
        "name": "type",
        "type": "string",
        "description": "Name of metadata template in sharepoint."
      },
      {
        "kind": "required",
        "name": "mdArray",
        "type": "Array",
        "description": "A JSON array where each index is a json object with the keys \"md1\" and \"md2\". Where md1 is the column name, and md2 is the value to be inserted in that column. Sharepoint allows multi value field. while updating multi value fields separate the field values with \"!DFLOW!\"."
      },
      {
        "name": "location",
        "kind": "required",
        "type": "string",
        "description": "Sharepoint Document Library location (including any sub site present). Each field is separated with \"/\".",
        "children": []
      },
      {
        "name": "repository",
        "kind": "required",
        "type": "string",
        "description": "Sharepoint repository Id. It consists of sharepoint domain name and root site name separated with \"/sites/\" or \":/teams/\"",
        "children": []
      }
    ],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "NP6_JKLUVfKwgT7ZC9ANV",
        "code": "\"completed\"",
        "language": "200"
      },
      {
        "id": "2Qv2Iy-Q0df7ncSX-i60q",
        "code": "",
        "language": "500"
      }
    ],
    "selectedLanguageId": "NP6_JKLUVfKwgT7ZC9ANV"
  },
  "examples": {
    "languages": [
      {
        "id": "JlNcgO8TqXpNzQxN2xT04",
        "code": "{\n  \"cmsName\":\"insertProductionSystemName (located in Link Enterprise  gui)\",\n         \"id\":\"unique sharepoint id specfic to folder/id\",\n   \"location\":\"/<subsite>/<documentLibraray>\",\n   \"repository\":\"<domainName>/sites/<siteName>\",\n    \"type\": \"insertMetaDataTemplateName\",\n    \"mdArray\": [\n        {\n            \"md1\": \"someColumnToBeUpdated\",\n            \"md2\": \"newValue\"\n        },{\n            \"md1\": \"someColumnToBeUpdated\",\n            \"md2\": \"newValue1!DLOW!newValue2\"\n        }\n    ],\n    \"selectedCMS\": \"sp\"\n\n}",
        "language": "json"
      }
    ],
    "selectedLanguageId": "JlNcgO8TqXpNzQxN2xT04"
  },
  "description": "Update a file or folder metadata",
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "autoGeneratedAnchorSlug": "update-filefolder-metadata",
  "legacyHash": "TlPao_NbsVcmi0eER-y03"
}
```
:::




[title] Delete
[path] Agnostic Guides/Developers Guide/Untitled/

Link Enterprise provides a web service endpoint that will allow you to delete a file.

:::ApiMethodV2
```json
{
  "tab": "request",
  "url": "https://localhost:82/scrud/delete",
  "name": "Delete a file.",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [],
    "bodyDataParameters": [
      {
        "kind": "required",
        "name": "ids",
        "type": "string",
        "description": "one drive id of the document"
      },
      {
        "kind": "required",
        "name": "cmsName",
        "type": "string",
        "description": "Name of the sharepoint system configured in Link Enterprise."
      },
      {
        "kind": "required",
        "name": "selectedCMS",
        "type": "string",
        "description": "Value should always be set to \"sp\" to let Link Enterprise know which configured content system to search."
      },
      {
        "name": "repository",
        "kind": "required",
        "type": "string",
        "description": "Sharepoint repository Id. It consists of sharepoint domain name and root site name separated with \"/sites/\" or \":/teams/\"",
        "children": []
      },
      {
        "name": "location",
        "kind": "required",
        "type": "string",
        "description": "Sharepoint Document Library location (including any sub site present). Each field is separated with \"/\".",
        "children": []
      }
    ],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "ZbT9xDTdXEpCuzbNprahQ",
        "code": "\"completed\"",
        "language": "200"
      },
      {
        "id": "b89YgQOhw-hoyU4iXf1ZM",
        "code": "",
        "language": "500"
      }
    ],
    "selectedLanguageId": "ZbT9xDTdXEpCuzbNprahQ"
  },
  "examples": {
    "languages": [
      {
        "id": "C4pSfZHstrxmG8KSy6hS0",
        "code": "{\n\n    \"cmsName\": \"insertProductionSystemName (located in Link Enterprise gui)\",\n    \"selectedCMS\": \"sp\",\n       \"ids\":\"unique sharepoint id specfic to folder/id\",\n   \"location\":\"/<subsite>/<documentLibraray>\",\n   \"repository\":\"<domainName>/sites/<siteName>\",\n\n}",
        "language": "json"
      }
    ],
    "selectedLanguageId": "C4pSfZHstrxmG8KSy6hS0"
  },
  "description": "Delete a File ",
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "autoGeneratedAnchorSlug": "delete-a-file",
  "legacyHash": "RZpY6k9dlIB2WTVx-E1YN"
}
```
:::




[title] Overall CMS API Notes
[path] Agnostic Guides/Developers Guide/

- Although usage of each one does not require Link Enterprise Add-On configuration (such as DocManager), it does require based configuration (CMS Profile(s), CMS Tag(s), Repository ID(s) and API Destination(s))
- Each API logs activity in the Link Enterprise API Gateway automatically and will register itself as the API source “CUSTOM” which can be used in the selection criteria
- System message are checked (refer to the Link Enterprise Solution Guide for more information)


[title] Update
[path] Agnostic Guides/Developers Guide/S3 Endpoints/

Link Enterprise provides a web service endpoint that will allow you to update a document or folders metadata.&#x20;

:::ApiMethodV2
```json
{
  "tab": "request",
  "url": "https://localhost:82/scrud/update",
  "name": "Update File metadata",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [],
    "bodyDataParameters": [
      {
        "kind": "required",
        "name": "id",
        "type": "string",
        "description": "Unique id of s3 file."
      },
      {
        "kind": "required",
        "name": "cmsName",
        "type": "string",
        "description": "Name of the s3 system configured in Link Enterprise."
      },
      {
        "kind": "required",
        "name": "selectedCMS",
        "type": "string",
        "description": "Value should always be set to \"s3\" to let Link Enterprise know which configured content system to search."
      },
      {
        "kind": "required",
        "name": "mdArray",
        "type": "Array",
        "description": "A JSON array where each index is a json object with the keys \"md1\" and \"md2\". Where md1 is the column name, and md2 is the value to be inserted in that column."
      },
      {
        "name": "location",
        "kind": "required",
        "type": "string",
        "description": "S3 Bucket name where you want to update the document.",
        "children": []
      }
    ],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "NP6_JKLUVfKwgT7ZC9ANV",
        "code": "\"completed\"",
        "language": "200"
      },
      {
        "id": "2Qv2Iy-Q0df7ncSX-i60q",
        "code": "",
        "language": "500"
      }
    ],
    "selectedLanguageId": "NP6_JKLUVfKwgT7ZC9ANV"
  },
  "examples": {
    "languages": [
      {
        "id": "JlNcgO8TqXpNzQxN2xT04",
        "code": "{\n  \"cmsName\":\"insertProductionSystemName (located in Link Enterprise  gui)\",\n         \"id\":\"unique s3 id\",\n   \"location\":\"S3 Bucket Name\",\n    \"mdArray\": [\n        {\n            \"md1\": \"someColumnToBeUpdated\",\n            \"md2\": \"newValue\"\n        }\n    ],\n    \"selectedCMS\": \"s3\"\n\n}",
        "language": "json"
      }
    ],
    "selectedLanguageId": "JlNcgO8TqXpNzQxN2xT04"
  },
  "description": "",
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "autoGeneratedAnchorSlug": "update-file-metadata",
  "legacyHash": "TlPao_NbsVcmi0eER-y03"
}
```
:::




[title] Delete
[path] Agnostic Guides/Developers Guide/S3 Endpoints/

Link Enterprise provides a web service endpoint that will allow you to delete a file.

:::ApiMethodV2
```json
{
  "tab": "request",
  "url": "https://localhost:82/scrud/delete",
  "name": "Delete a file.",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [],
    "bodyDataParameters": [
      {
        "kind": "required",
        "name": "ids",
        "type": "string",
        "description": "id of the document"
      },
      {
        "kind": "required",
        "name": "cmsName",
        "type": "string",
        "description": "Name of the s3 system configured in Link Enterprise."
      },
      {
        "kind": "required",
        "name": "selectedCMS",
        "type": "string",
        "description": "Value should always be set to \"s3\" to let Link Enterprise know which configured content system to search."
      },
      {
        "name": "location",
        "kind": "optional",
        "type": "string",
        "description": "S3 Bucket name where you want to delete the document.",
        "children": []
      }
    ],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "ZbT9xDTdXEpCuzbNprahQ",
        "code": "\"[completed]\"",
        "language": "200"
      },
      {
        "id": "b89YgQOhw-hoyU4iXf1ZM",
        "code": "",
        "language": "500"
      }
    ],
    "selectedLanguageId": "ZbT9xDTdXEpCuzbNprahQ"
  },
  "examples": {
    "languages": [
      {
        "id": "C4pSfZHstrxmG8KSy6hS0",
        "code": "{\n\n    \"cmsName\": \"insertProductionSystemName (located in Link Enterprise gui)\",\n    \"selectedCMS\": \"s3\",\n       \"ids\":\"unique s3 Id\",\n   \"location\":\"s3BucketName\"\n\n}",
        "language": "json"
      }
    ],
    "selectedLanguageId": "C4pSfZHstrxmG8KSy6hS0"
  },
  "description": "",
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "autoGeneratedAnchorSlug": "delete-a-file",
  "legacyHash": "RZpY6k9dlIB2WTVx-E1YN"
}
```
:::




[title] Useful / Common Link Enterprise Methods
[path] Agnostic Guides/Developers Guide/

Below are some common Link Enterprise methods used by our customers in their custom requirements.

Feel free to use them!

1. Store and Link a Document and/or Create Folders: /dflow/cl\_docmanager\_helper=>store\_and\_link\_document
2. Send Metadata: /dflow/cl\_docmanager\_helper=>send\_metadata\_update
3. Create an ArchiveLink Link: /dflow/cl\_utilities\_helper=>create\_archivelink\_link
4. View an attachment that has an ArchiveLink entry: /dflow/cl\_utilities\_helper=>display\_image


[title] Setting up Firefox Certificate
[path] l4i/Installation Guide/

The L4i configuration service requires a HTTPS secured connection in order to communicate with a web browser. To enable this connection, a client certificate must be imported into the browser. This procedure explains how to install the certificate into Mozilla Firefox.

Open the Options section of Firefox

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/G0IHm-N0Q7ZFt3KAyML8T_image.png" size="80" width="1632" height="1358" position="flex-start" showCaption="false"}

Select **'Privacy & Security'** section, scroll to the bottom and select View Certificates and then click **'Import'**

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/MMjovFcLG2LI9Vzn1WY8j_image.png" size="80" width="1142" height="1350" position="flex-start" showCaption="false"}

Select the 'exports' directory where you have created the x509 certificates (typically a directory called x509 in the root l4i folder) and then select '***trex.cfgmgr.client.p12***' then supply the password that was configured in th&#x65;***&#x20;'trex-certmgr-application.json'*** file.

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/3Nw4Zj9VKbkytZ6xJkmz5_image.png" size="80" width="1524" height="1256" position="flex-start" showCaption="false"}

You should see something similar to the following

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/VL1iJdZKI6BVDN0ine5UD_image.png" size="80" width="1278" height="1104" position="flex-start" showCaption="false"}


[title] Box
[path] l4i/Configuration/Connectors/

To Create a new Box Connector in the L4i  Configuration UI:

1. Click on the 'Connectors' Tab
2. Click on the + icon&#x20;
3. Enter the Connector URL (**https\://localhost:42427**)

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/4u49R6rMuK9LaHko0RP7G_image.png" size="50" width="630" height="340" position="flex-start" showCaption="false"}

### Connector Description

The Box connector provides connectivity to the Box Content Management, Workflow and Collaboration platform. See **http\://www\.box.com**

Box is a SaaS platform and all current releases of the ***Enterprise&#x20;***&#x76;ersion are supported.

### Methods Included:

**File Operations**

- Delete File
- Fetch File
- File Iterator
- Update File
- Upload File

**Folder Operations**

- Create Folder
- Delete Folder
- Folder Iterator
- Update Folder

**Search**

- Metadata Query
- Search


[title] Filesystem
[path] l4i/Configuration/Connectors/

To Create a new Filesystem Connector in the L4i Configuration UI:

1. Click on the 'Connectors' Tab
2. Click on the + icon&#x20;
3. Enter the Connector URL (**https\://localhost:42421**)

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/qbeVSpD51XABcLGqUQoOn_image.png" size="50" width="630" height="340" position="flex-start" showCaption="false"}

### Connector Description

The filesystem connector allows for connections to any file locations that are accessible from the server L4i is installed on.

The Filesystem connector takes an argument on its mount point to connect to. Only this location and folders/files below will be accessible.

This is configured in file ./config/application-cnn-fs.yaml'. By default, it will start looking for a folder called 'root' within the installation location of L4i. To change this, update the 'mount-point' variable.

&#x20;   plugin-args:
&#x20;     mount-point: ./root

This can be changed to a local drive location such as C: or D: or D:\mystuff. Additionally, remote shares can be access using UNC paths. For example: \\\servername\share

**NOTE:&#x20;**&#x49;f you are mounting a remote filesystem share, the Filesystem service should be configured to log in with an account that has access/privileges to the remote share.



### Methods Included:

**CSV File Operations**

- CSV Row Iterator
- CSV Write Row

**File Conversion**

- Convert to PDF

**File Operations**

- Copy File
- Delete File
- File Digest
- File Iterator
- Move File
- Write Content To File

**Folder Operations**

- Delete Folder
- Folder Iterator

**XML File Operations**

- XML Node Iterator


[title] Microsoft SharePoint (On Premise)
[path] l4i/Configuration/Connectors/

To Create a new SharePoint (On Premise) Connector in the L4i Configuration UI:

1. Click on the 'Connectors' Tab
2. Click on the + icon&#x20;

Enter the Connector URL ([https://localhost:42431)](https://localhost:42431\))

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/_trAa3UM7CGFSE1tGf4bC_image.png" size="50" width="630" height="340" position="flex-start" showCaption="false"}

### Connector Description

The L4i SharePoint Connector provides connectivity and methods to handle lists and documents within an On Premise SharePoint library. Note that Office 365 SharePoint has its own connector.

### Methods Included:

**File Operations (Use these for accessing Documents/Files in Document Libraries)**

- Create File
- Delete File
- Fetch File
- File Iterator
- Update File

**Folder Operations (Use these for accessing Folders in Document Libraries)**

- Create Folder
- Delete Folder
- Fetch Folder
- Folder Iterator
- Update Folder

**List Item Operations**

- Create List Item
- Delete List Item
- Fetch List Item
- List Item Iterator
- Update List Item

**List Operations**

- Create List
- Delete List
- Fetch List
- List Iterator
- Update List

**Search Operations**

- SharePoint Search

**Site Operations**

- Site Iterator


[title] Creating Enterprise Application in M365
[path] l4i/Configuration/Connections/Microsoft 365 SharePoint/

To enable API connectivity between Gimmal L4i and Microsoft SharePoint Online, an Enterprise Application must be configured.

The following steps below outline this process: 

- Visit ***https\://portal.azure.com/*** then login using a tenant administrative account
- Click on **Active Directory**, then click on **App Registrations&#x20;**&#x61;nd click on ***New Registration***
- Name the application *l4i\_suffix* (Either DEV, TEST,PROD) depending on environment provisioning
- Select: *Accounts in this organizational directory only (tenant only - Single tenant)*
- Click **Register**

Once the application is created, select it to open the options/configuration

- Select **Api Permissions** under the left hand pane section called Manage
- Click **Add a Permission&#x20;**- the Request API permissions opens
- In the Request API permissions - Select **Microsoft Graph**, and then select Application Permissions
- Type "Sites" in the search box and select ***Sites.FullControl.All*** for permissions and click '**Add Permissions**'
- **Important!** Click *Grant admin consent for \<tenant>&#x20;*&#x61;s shown below

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/tJtHtUlM4htjRTN28mp1G_image.png" size="90" width="2658" height="1062" position="center" showCaption="false"}

Next select ***Certificates & secrets*** in the left hand pane section called Manage

- Click ***+ New client secret***
- Type in for the description ***l4i\_suffix*** (Where the suffix is DEV/TEST/PRD)
- Select the appropriate expiry time
- Click **'Add'**
- **Important!&#x20;**&#x43;opy and Save the **Value&#x20;**&#x77;hich is the secret required to configure the d4i connection later. This will **NOT&#x20;**&#x62;e available when later viewing the secret information (keep it secret, keep it safe)

Next, Select **Manifest** in the left hand pane section called Manage

- Change **"allowPublicClient"** to **true&#x20;**&#x61;nd click **save**

Click on **Overview&#x20;**&#x69;n the left hand pane and copy the following values:

- Application (client) ID
- Directory (tenant) ID


[title] File Operations
[path] l4i/Configuration/Transformations/Methods/Box Connection/


[title] Folder Operations
[path] l4i/Configuration/Transformations/Methods/Box Connection/


[title] Connections
[path] l4i/Configuration/

Once Connectors have been created, the Connections can be created. Connections provide the details on how and where the Connectors will authenticate to the external applications.

## Adding a Connection

To create a new connection, select the '***Connections***' Tab and then the **+** (add...) button.

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/KhMAgWo_QdDt5tNo454l9_image.png" size="80" width="1088" height="684" position="flex-start" showCaption="false"}

Each connection will require connection specific information and is detailed in the following sections.

[title] Connecting to L4i Configuration
[path] l4i/Installation Guide/

Once all of the configuration steps are completed and the client certificate has been imported into your browser, Launch the windows power shell, go to File **\<installocation>\ ,&#x20;**&#x74;hen run the powershell script&#x20;**&#x20;.\start-trex.ps1**.

If the file **\<installocation>\start-trex.ps1** cannot be loaded, then the file **\<installocation>\start-trex.ps1** is not digitally signed. And you cannot run this script on the current system. You will need to change the Execution policy to run these PowerShell scripts. 

To display the execution policies for each scope in the order of precedence, use "**Get-ExecutionPolicy -List**". To see the effective execution policy for your PowerShell session, use "**Get-ExecutionPolicy**" with no parameters.

The effective execution policy is determined by order of precedence as follows:

-     MachinePolicy: Set by a Group Policy for all users of the computer.
-     UserPolicy: Set by a Group Policy for the current user of the computer.
-     Process: Affects only the current PowerShell session.
-     CurrentUser: Affects only the current user.
-     LocalMachine: Default scope that affects all users of the computer.

To  change and set a new execution policy for the local computer for instance:

Use **Set-ExecutionPolicy** to specify the RemoteSigned policy. Then enter the Scope parameter to specify the default scope value, LocalMachine. 

**Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine**


For more information on changing the execution policy, please visit [https:/go.microsoft.com/fwlink/?LinkID=135170](https://https:/go.microsoft.com/fwlink/?LinkID=135170).

After changing the execution policy, run **C:\l4i> .\start-trex.ps1&#xA0;**&#x41; number of PowerShell windows will open up. Type "R" and run all scripts. 

Once all scripts run, you can connect to the L4i Configuration Service UI. https\://\<servername/localhost>:8443

[title] Apache Tika
[path] l4i/Configuration/Connectors/

To Create a new Apache Tika Connector in the L4i Configuration UI:

1. Click on the 'Connectors' Tab
2. Click on the + icon&#x20;
3. Enter the Connector URL (**https\://localhost:42423**)

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/LXHDigrgbraFRUkT5xwMJ_image.png" size="48" width="630" height="340" position="flex-start" showCaption="false"}

### Connector Description

The Apache Tika connector provides the ability to extract text from the typical document formats. Over 1000 formats are supported, including common types such as Microsoft Office and Adobe PDF.

The Apache Tika connector supports version 1.19 and later of the specification and all required dependencies are bundled as part of the connector file.

### Methods Included:

**General**

- Tika Parse to Text


[title] Installation Guide
[path] l4i/

The goal of this guide is to establish base installation, minimal configuration, and connectivity testing to a point that Link Enterpise for Integration (L4i) components can communicate with one another and allow configuration of the software. 

The L4i application consists of a core Transformation engine and a series of connectors. Each connector has one or more connections defined which provide the information required to connect to the end applications.

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/Kg4GkTatE_-432MhTIqY5_image.png)


[title] Delete Folder
[path] l4i/Configuration/Transformations/Methods/Box Connection/Folder Operations/

This method will delete a Box folder. Optionally, any children can be recursivly deleted

**Input Parameters:**

- Folder ID: ID of the folder to delete
- Recursive: Check this option to recursively delete any children


[title] Start & Stop Order
[path] l4i/Installation Guide/

L4i can be started and stopped via command line or as services (if installed as service)

## Start Order

1. connectors (CNN-\* eg. CNN-FS) (*connectors have no dependency*)
2. datastore (DAO)
3. config manager (CFGMGR)
4. transform engine (NGIN)

## Stop Order

1. connectors (CNN-\* eg. CNN-FS)
2. config manager (CFGMGR)
3. transform engine (NGIN)
4. datastore (DAO)


[title] Microsoft SharePoint (On Premise)
[path] l4i/Configuration/Connections/

Microsoft **SharePoint NTLM Connection** requires four parameters to connect to the API:

- Site Collection URL: URL to the Site Collection to connect to
- Domain: Active Directory Domain the SharePoint uses for authentication
- Username: AD user name of account that will be used
- Password

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/lFt7sQp8vRD7qWKGSpkig_image.png" size="80" width="1530" height="598" position="center" showCaption="false"}


[title] TRex Utilities
[path] l4i/Configuration/Connectors/

To Create a new TRex Utilities Connector in the L4i Configuration UI:

1. Click on the 'Connectors' Tab
2. Click on the + icon&#x20;
3. Enter the Connector URL (**https\://localhost:42420**)

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/grHONS43kv_X6vg1y5UMC_image.png" size="50" width="630" height="340" position="flex-start" showCaption="false"}

### Connector Description

The TRex Utilities Connector provides data object manipulation services that can be used across any other deployed connectors. For example, data can be packaged into a JSON document to be inserted into an Elasticsearch database.

### Methods Included:

**JSON**

- Build JSON Document
- Build Object From JSON


[title] Folder Iterator
[path] l4i/Configuration/Transformations/Methods/Box Connection/Folder Operations/

The Folder Iterator method will return a list of folders that exist within the specified Box folder.

**Input Parameters:**

- Root Folder ID: ID of the folder to iterate Folders from
- Iterate Sub-Folders: When selected, folders will be iterated recursively through all children
- Exclude Root Folder: When selected, the root folder ID will not be included in the iteration result set


[title] Transformation Engine
[path] l4i/Configuration/

The core engine of the solutions is known as the Transformation Engine. The transformation engine provides for the run time execution of transformations. As connectors are added to the solution, their defined methods are communicated to for use in the Transformation engine.

## Adding a Transformation Engine

To add the main Transformation Engine to L4i, select the 'Engines' tab on the right, then click on the '+' button

Fill in the URL using HTTPS protocol to the Transformation Engine service. By default this will be on the local machine on port 42002.

:::BlockQuote
For example: https\://localhost:42002
:::

Click on the 'Test' button and after a successful connection, the Engine Details will be shown.

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/STr74Ft9VNqBoWVq5ty5B_image.png)

Multipe Engine instances can be created for high volume distribution of work. However, additional hardware may be required depending on the volume and type of work being performed.

[title] Hardware Requirements
[path] l4i/Installation Guide/

Minimum Hardware Requirements:

- 2 vCPU
- 8 GB RAM
- 10 GB Installation Space

Recommended Hardware Requirements:

- 4 vCPU
- 16 GB RAM
- 10 GB Installation Space


[title] Microsoft 365 SharePoint
[path] l4i/Configuration/Connectors/

To Create a new SharePoint (M365) Connector in the L4i Configuration UI:

1. Click on the 'Connectors' Tab
2. Click on the + icon&#x20;

Enter the Connector URL ([https://localhost:42433)](https://localhost:42431\))

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/duMv1oxc8bAq0nnzHn49K_image.png" size="50" width="630" height="340" position="flex-start" showCaption="false"}


[title] Unpacking ZIP Package
[path] l4i/Installation Guide/

L4i is delivered as a simple compressed 'zip' package. To install L4i, simply unpack the zip file to a location you would like on the filesystem. For example c:\l4i

L4i requires a java runtime environment (JRE) to run. By default, L4i will reference the JRE deployed into the JDK directory in the location L4i was installed. For example, if L4i was installed to c:\l4i the JRE should be located at c:\l4i\JRE. A copy of the appropriate OpenJDK is included in the L4i package.


[title] IBM Content Manager
[path] l4i/Configuration/Connectors/

To Create a new IBM Content Manager CM8 Connector in the L4i Configuration UI:

1. Click on the 'Connectors' Tab
2. Click on the + icon&#x20;
3. Enter the Connector URL (**https\://localhost:42429**)

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/GoK4aMFd63qjli6YVqv-v_image.png" size="50" width="630" height="340" position="flex-start" showCaption="false"}

### Connector Description

IBM Content Manager (IBM CM8) connector allows for queries and fetching of documents from IBM Content Manager systems.

### Methods Included:

**Document**

- Fetch Document

**Query**

- Execute Query


[title] IBM Content Manager
[path] l4i/Configuration/Connections/

The IBM Content Manager (CM8) connector requires four values:

- Datastore Name: The name of the CM8 system database
- User Name: An account that will have permissions to access the content
- Password
- Connection String: A client connection string for the CM8 system. Typically this can be retrieved from a CM8 client installation

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/qqQUhDu7gXnrxZklYWiq6_image.png" size="80" width="1522" height="594" position="center" showCaption="false"}


[title] Microsoft 365 SharePoint
[path] l4i/Configuration/Connections/

Microsoft 365 SharePoint Connection requires an Application Registration prior to configuring a connection.
A summary is shown in the following Topic: ***Creating Enterprise Application in M365***

*Microsoft documentation: [Quickstart: Register an application with the Microsoft identity platform](https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-register-app)*

To configure the connection, three parameters are required:

- Directory (tenant) ID: provided by the Azure tenant configuration
- Application (client) ID: created for use by d4i to communicate with the Azure tenant
- Client Secret: created to authenticate d4i to the Azure Application

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/GuGGU2vkfS8XEJgK6OOn9_image.png)


[title] Elasticsearch
[path] l4i/Configuration/Connections/

The Elasticsearch connection requires the host, port and scheme of the primary node Elasticsearch server.

An example configuration is shown below:

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/m47aNE5oOrD7h69H3zECm_image.png" size="80" width="1102" height="952" position="center" showCaption="false"}


[title] File Iterator
[path] l4i/Configuration/Transformations/Methods/Box Connection/File Operations/

The File Iterator method will return a list of documents that exist within the specified Box folder.

**Input Parameters:**

- Root Folder ID: ID of the folder to iterate documents from


[title] Configuration
[path] l4i/

The Configuration of L4i falls into four key components:

1. Transformation Engine
2. Connectors
3. Connections
4. Transformations

An example deployment on Windows is shown in the diagram below:

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/L5Y1xLnLl6JsH8FQiyKSe_image.png)


[title] Filesystem
[path] l4i/Configuration/Connections/

The filesystem connection allows for the setting of a subfolder root that is relative to where the connector is running.

For example, if the connector service was connected to the root of D:\ then the value entered would be a subdirectory of D:\\. Use the default ./ to allow access to all subdirectory locations.

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/AVz7ESQdXiQnX7EwhdQHV_image.png" size="80" width="1184" height="764" position="center" showCaption="false"}


[title] FileSystem Connection
[path] l4i/Configuration/Transformations/Methods/

The Filesystem Connection provides the following methods:

**CSV File Operations**

- CSV Row Iterator
- CSV Write Row

**File Conversion**

- Convert to PDF

**File Operations**

- Copy File
- Delete File
- File Digest
- File Iterator
- Move File
- Write Content To File

**Folder Operations**

- Delete Folder
- Folder Iterator

**XML File Operations**

- XML Node Iterator


[title] Box Connection
[path] l4i/Configuration/Transformations/Methods/

The Box Connection provides the following methods. **NOTE&#x20;**&#x74;hese methods are identical regardless of the connection type chosen when configuring the Box Connection.

**File Operations**

- Delete File
- Fetch File
- File Iterator
- Update File
- Upload File

**Folder Operations**

- Create Folder
- Delete Folder
- Folder Iterator
- Update Folder

**Search**

- Metadata Query
- Search


[title] IBM FileNet P8 CE
[path] l4i/Configuration/Connections/

IBM FileNet P8 Content Engine requires four parameters to connect to the web services API:

- Connection URL: Endpoint of the CE Web services
- User Name: User with access to content
- Password
- Object Store Identifier: The symbolic name of the Object Store to connect to

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/jxLAFuXuhOvMDsMRQI7E0_image.png" size="80" width="1186" height="838" position="center" showCaption="false"}


[title] Document Type Link Card 1
[path] SuccessFactors/SuccessFactors Configuration/SuccessFactors Objects/

Navigate to 'Create New' -> 'Object Definition and fill in the following values into the header section:

| Property            | Value                     | Notes |
| ------------------- | ------------------------- | ----- |
| Code                | DocumentType\_LinkCard1   |       |
| Effective Dating    | None                      |       |
| API Visibility      | Editable                  |       |
| MDF Version History | Complete History          |       |
| Status              | Active                    |       |
| Label               | Document Type Link Card 1 |       |

In the **Fields Section** for '**external code**' select ***details***

- In the details screen, set the value of '**Visibility**' to '**Not Visible**'

In the '**Fields Section**', for '**external name**' select ***details***

- In the details screen, set the value of '**Data Type**' to '**Translatable**'



In the **Associations** section set the following values:

| Property           | Value                | Notes                                                             |
| ------------------ | -------------------- | ----------------------------------------------------------------- |
| Name               | category             | It will show as custom\_category after its been created           |
| Multiplicity       | One to Many          |                                                                   |
| Destination Object | Category Link Card 1 | Use the dropdown to find the custom object created for 'Category' |
| Type               | Valid When           |                                                                   |

Update the **Security&#x20;**&#x73;ection with the following values:

| Property                        | Value                     | Notes |
| ------------------------------- | ------------------------- | ----- |
| Secured                         | Yes                       |       |
| Permission Category             | Miscellaneous Permissions |       |
| RBP Subject User Field          | \<blank>                  |       |
| CREATE Respects Target Criteria | No                        |       |
| Base Date Field For Blocking    | \<blank>                  |       |






[title] HTML5 Application Registrations
[path] SuccessFactors/BTP Configuration/

This section will demonstrate how install the HTML5 applications into the BTP Sub Account that has been integrated into the SuccessFactors system in the previous section.

### SAP Web IDE Full-Stack Service

If not already enabled, SAP Web IDE Full-Stack Service must be enabled in the sub account.

To enable this, in the sub account navigate to 'Services' and then select the tile/option 'SAP Web IDE Full-Stack' and then click '**Enable**'.

### Security Permissions

**NOTE:** This section will require the BTP Command Line Interface (CLI). If you do not have this installed please see the sub section ***'BTP Command Line Interface'***

First, Permissions must be given to allow configuration of the BTP Sub Account.and Web Applcations.

To Enable security for the Web Applications, navigate to **Security->Authorizations**

- Enter the S User ID and click 'Show Assignments'
- Click 'Assign' and then select
  - Subaccount 'SAP Web IDE xxx'
  - Application: di
  - Role: DiAdministrator
- Click 'Assign' and then select:
  - Subaccount 'SAP Web IDE xxx'
  - Application: featurediscovery
  - Role: DevXAdministrator

Next, Navigate to the ***'Members'*** section of the BTP Sub Account

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/T8djBDH8ltgoTNfn6z1Qv_image.png" size="22" width="1300" height="3195" position="flex-start" showCaption="false"}

In the Members section, click ***'Add Members'***

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/8PS9cJWzCSATX6Thm7BOA_image.png" size="36" width="1300" height="391" position="flex-start" showCaption="false"}

Enter the ***User id*** and select the permissions you want this user account to have the BTP Sub Account.

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/Ngzz-q2O0pCqKmxzfCpU0_image.png" size="50" width="1300" height="842" position="flex-start" showCaption="false"}

Next, upload the HTML5 Applications to the BTP Sub Account. These applications are supplied in a .zip format.

Navigate to ***Applications->HTML5 Applications*** in the BTP Sub Account and click ***'Import from File'***

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/dE2KVC0kpC4PTdRu1pmTG_image.png" size="78" width="1300" height="408" position="flex-start" showCaption="false"}

In the dialog, select the ***'sfmydocuments.zip'***, enter the version number 1 and click 'Import'

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/UQ6J2-T7yKf4kenZApARX_image.png" size="34" width="1300" height="1123" position="flex-start" showCaption="false"}

Follow the same procedure as above for ***'sfdocumentsearch.zip'***.&#x20;

Once completed the applications should be listed in the HTML5 Applications screen.

### Enable Application Access

**NOTE:** This next step required the BTP Command Line Interface (CLI). If you do not have this toolset installed, see the sub topic ***'BTP Command Line Interface (CLI)'***

**NOTE:** The following examples are shown on windows but can be adapted for any other command line/shell

Open a Command Prompt/Shell and navigate to the ***'Tools'*** directory of the BTP Tools installation

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/888v63cc24FuOST-QaIsN_image.png" size="58" width="1300" height="836" position="flex-start" showCaption="false"}

Setup a properties file (e.g. ***config.properties***) with the information that will be required for the connection. This will make the process easier.

***NOTE: For a list of BTP Host values/locations:*** [[https://help.sap.com/docs/btp/sap-btp-neo-environment/regions-and-hosts-available-for-neo-environment](https://help.sap.com/docs/btp/sap-btp-neo-environment/regions-and-hosts-available-for-neo-environment)](https://help.sap.com/docs/SAP_Web_IDE/825270ffffe74d9f988a0f0066ad59f0/975b3207acf94599a9a48beb36257ebc.html)

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/_yTfqPw65uM3NNEI3T4py_image.png" size="60" width="1300" height="721" position="flex-start" showCaption="false"}

**account** = the ID of your BTP Sub Account

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/6M9gnBVbOHtzLzMZZxVnp_image.png" size="40" width="1300" height="818" position="center" showCaption="false"}

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/Y7KypKvudkr5bxkO9bsNc_image.png" size="40" width="1300" height="1285" position="center" showCaption="false"}

**application&#x20;**= name of the application be registered. This process will be done twice, once for sfdocumentsearch and once for sfmydocuments. Note: use one of these values, run the command below, then alter this value and run the command again.

**user&#x20;**= your SAP User Account. If you have a SAP Universal ID you will want to specify your S-ID, otherwise you can use the email associated with your S-ID

With the Command Prompt BTP CLI tools, execute the following command (use your properties file name)

***neo.bat hcmcloud-enable-application-access config.properties***

NOTE: if you are not using the properites file method, the full command would be:

`neo hcmcloud-enable-application-access --application <my_application> --application-type java --account <my_extension_subaccount> --user <user id> --host us1.hana.ondemand.com`

Next, modify the config.properties file so that **application=sfmydocuments** to allow registration of the **sfmydocuments** application

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/reZLWJl_TZs99aTgg6Ic6_image.png" size="60" width="1300" height="680" position="flex-start" showCaption="false"}

With the Command Prompt BTP CLI tools, execute the following command (use your properties file name)
**neo.bat hcmcloud-enable-application-access config.properties**

After registration example:

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/KdTyfa4TqE107DZ-0azy3_image.png" size="80" width="1300" height="1060" position="flex-start" showCaption="false"}

### Register oData Connection

Finally, using the CLI register an oData connection (only one required for both applications)

Edit the **config.properties** file and comment out the application and:

Edit out the application application type properties:

`#application=sfdocumentsearch`

`#application-type=html5`

Add a new value for the name of the connection:

**name=sfapps\_odata**

***Neo.bat hcmcloud-create-connection config.properties***

### Set oData Connection in HTML5 Applications

For the next step, return to the **BTP Cockpit** and navigate to the ***BTP Sub Account -> Applications -> HTML5 Applications&#x20;***&#x61;nd click the sfdocumentsearch application

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/nWvPVr2pD239TkAjUWrtr_image.png" size="78" width="1300" height="586" position="flex-start" showCaption="false"}

Under **'Required Destinations'** set the **'Mapped Subaccount Destination'**

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/FLzT-8yDYROJxH3veVNXR_image.png)



Next, Click the **'Versioning'** section, under **'History'** section select the **'Versions'** and set the **'Mapped Subaccount Destination'**

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/plkDx73goIkczsDrqFTiZ_image.png)

Next, register the second HTML5 application sfmydocuments. Return to the **BTP Cockpit** and navigate to the ***BTP Sub Account -> Applications -> HTML5 Applications&#x20;***&#x61;nd click the **sfmydocuments&#x20;**&#x61;pplication

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/j-tAua8FqivBZeXqH2Obx_image.png" size="78" width="1300" height="613" position="flex-start" showCaption="false"}

Under **'Required Destinations'** set the **'Mapped Subaccount Destination'**

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/nsrqzDlN0mOSiJaHW9_xp_image.png)

Next, Click the **'Versioning'** section, under **'History'** section select the **'Versions'** and set the **'Mapped Subaccount Destination'**

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/RQUZQvPn1eMsnWaoiY5FP_image.png)


[title] Linking SF to BTP Landscape
[path] SuccessFactors/BTP Configuration/

The following steps register the SuccessFactors instance to the BTP system Landscape. This is the first task in configuring the integration.

At the BTP Global Account, navigate to ***System Landscape.&#x20;***

Click the ***'Add System'*** button

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/Q40s_72RWB2r0GWMSCltQ_image.png)

Supply a descriptive System Name and choose ***'SAP SuccessFactors'*** from the Type dropdown

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/DKg16f-uQvgdFcYTYCviP_image.png)

Once the system has been added, click on the 'Get Token' icon. Copy this Token Value. This Token will be used within SuccessFactors to register the SuccessFactors system with the BTP Landscape.

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/71ruGFX9GHipj3RkOtv6V_image.png" size="56" width="1300" height="332" position="flex-start" showCaption="false"}

Next Log into ***SuccessFactors*** with an Administrative Account and Navigate to **'Extentions Center'**

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/91Ic8Olr5XvSepaUqiity_image.png" size="80" width="1300" height="250" position="flex-start" showCaption="false"}

Within the Extension Center navigate to the ***'Extensions on SAP BTP'*** tab. In the section ***'Add Integration with SAP BTP'*** paste the Token and click the ***'Add'*** button. This will connect the SuccessFactors instance with the BTP landscape.

A message indicating the Systems are integrating will be shown. After a short period the status will show ***'Integrated'***

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/Lm-QPu9rO7UBauDqJ5mkQ_image.png)

Next, link the BTP Sub Account to the Extensions on SAP BTP&#x20;

- **NOTE:&#x20;**&#x54;he BTP Sub Account MUST be a NEO account (SAP Region)
- **NOTE:&#x20;**&#x53;ee '***BTP Sub Account Creation***' sub-topic if you have not yet created a Sub Account

Open your BTP Sub Account and Navigate to ***'Integration Tokens'***

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/VZRN8VqgCKWXjWUbRX9Yr_image.png" size="26" width="1300" height="2321" position="flex-start" showCaption="false"}

Click on the ***'New Token'*** option to generate a new integration token for this BTP Sub Account. This token will then be used in SuccessFactors to integrate to the BTP Sub Account

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/gatgYOxU0P0Liy-NxMz2Q_image.png" size="52" width="1300" height="364" position="flex-start" showCaption="false"}

Navigate back to **'Extentions Center'&#x20;**&#x69;n SuccessFactors

Once again, use the 'Add' Integration Token feature

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/lE-yhg9BIrsJxsDgYl41J_image.png)

Once this token is added, it will show up in the ***'Neo Environment'*** Section

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/NOLhLAV8YMgAroUiUQuyv_image.png)

A Trust has been created to BTP. To see this, Navigate to ***BTP Cockpit -> Security -> Trust***

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/kZRR0oeyNageNy47gbm3m_image.png)


[title] BTP Configuration
[path] SuccessFactors/

This section describes the typical configuration required to integrate the three HTML5 applications into SuccessFactors.

- My Documents
- Document Search
- Document Search (HRBP)

Required Accounts:

- Administrative BTP Access
- Administrative SuccessFactors Access


[title] Category Link Card 3
[path] SuccessFactors/SuccessFactors Configuration/SuccessFactors Objects/

Navigate to 'Create New' -> 'Object Definition and fill in the following values into the header section:

| Property         | Value                | Notes |
| ---------------- | -------------------- | ----- |
| Code             | Category\_LinkCard3  |       |
| Effective Dating | None                 |       |
| API Visibility   | Editable             |       |
| Status           | Active               |       |
| Label            | Category Link Card 3 |       |

In the '**Fields Section**', for '**external code**' select ***details***

- In the details screen, set the value of '**Visibility**' to '**Not Visible**'

In the '**Fields Section**', for '**external name**' select ***details***

- In the details screen, set the value of '**Data Type**' to '**Translatable**'



Update the **Security Section** with the following values:

| Property                        | Value                     | Notes |
| ------------------------------- | ------------------------- | ----- |
| Secured                         | Yes                       |       |
| Permission Category             | Miscellaneous Permissions |       |
| RBP Subject User Field          | \<blank>                  |       |
| CREATE Respects Target Criteria | No                        |       |
| Base Date Field For Blocking    | \<blank>                  |       |






[title] Create Approval Workflow
[path] SuccessFactors/SuccessFactors Configuration/

The section will create the document approval workflow

Navigate to the Admin tool '**Manage Organization, Pay and Job Structures**'

**Create New: Workflow**

In the main workflow section, set the following values:

| Name        | Value         | Notes |
| ----------- | ------------- | ----- |
| Workflow ID | d4i\_WF       |       |
| Name        | d4i\_Approval |       |

In the section Step 1, set the following values:

| Name                     | Value                  | Notes |
| ------------------------ | ---------------------- | ----- |
| Approver Type            | Role                   |       |
| Approver Role            | Employee HR            |       |
| Context                  | Source                 |       |
| Edit Transaction         | Edit with Route Change |       |
| No Approver Behaviour    | Skip this Step         |       |
| Relationship to Approver | Employee               |       |
| Respect Permission       | No                     |       |


[title] BTP Sub Account Creation
[path] SuccessFactors/BTP Configuration/Linking SF to BTP Landscape/

This step only needs to be done if there is not already a sub account created for the BTP environment.

At the Global Account Level, navigate to ***'Account Explorer'*** and click the ***'Create'*** button and select ***'Sub Account'***

**NOTE:** Select one of the SAP (NEO) Regions to run the integration

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/ZWrb-yJGWSyteQhvRyy5n_image.png" size="80" width="1300" height="1330" position="flex-start" showCaption="false"}




[title] SuccessFactors Configuration
[path] SuccessFactors/

This section describes the following configuration that must be completed in SuccessFactors.




[title] Category Link Card 1
[path] SuccessFactors/SuccessFactors Configuration/SuccessFactors Objects/

Navigate to 'Create New' -> 'Object Definition and fill in the following values into the header section:

| Property         | Value                | Notes |
| ---------------- | -------------------- | ----- |
| Code             | Category             |       |
| Effective Dating | None                 |       |
| API Visibility   | Editable             |       |
| Status           | Active               |       |
| Label            | Category Link Card 1 |       |

In the '**Fields Section**', for '**external code**' select ***details***

- In the details screen, set the value of '**Visibility**' to '**Not Visible**'
- NOTE: This prevents the UI from showing a count of the categories

In the '**Fields Section**', for '**external name**' select ***details***

- In the details screen, set the value of '**Data Type**' to '**Translatable**'





Update the **Security Section** with the following values:

| Property                        | Value                     | Notes |
| ------------------------------- | ------------------------- | ----- |
| Secured                         | Yes                       |       |
| Permission Category             | Miscellaneous Permissions |       |
| RBP Subject User Field          | \<blank>                  |       |
| CREATE Respects Target Criteria | No                        |       |
| Base Date Field For Blocking    | \<blank>                  |       |






[title] ESS Link Card Child
[path] SuccessFactors/SuccessFactors Configuration/SuccessFactors Objects/

Navigate to 'Create New' -> 'Object Definition and fill in the following values into the header section:

| Property            | Value                     | Notes |
| ------------------- | ------------------------- | ----- |
| Code                | d4i\_LinkCard\_ESS\_Child |       |
| Effective Dating    | From Parent               |       |
| API Visibility      | Editable                  |       |
| Status              | Active                    |       |
| Label               | Employee Document Child   |       |
| MDF Version History | Complete History          |       |
| Subject User Field  |                           |       |
| Workflow Routing    |                           |       |
| Pending Data        | No                        |       |

### Fields

In the '**Fields Section**', for '**externalName**' select **details**

- In the details screen, set the value of 'Visibility' to 'Not Visible'

Set the following fields on the cust\_d4i\_LinkCard\_ESS\_Child:

| Name            | Length | Data Type      | More                                                                                                                                                                                                                                                                                                                                          |
| --------------- | ------ | -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| externalCode    | 100    | AutoNumber     | This should exist, set type                                                                                                                                                                                                                                                                                                                   |
| Category        | 100    | Generic Object | In **Details**, Set **Valid Values Source&#x20;**&#x74;o ***cust\_category***<br />Set label to **Document Category**<br />Set Required to **Yes**                                                                                                                                                                                            |
| DocumentType    | 100    | Generic Object | In **Details**, Set **Valid Values Source&#x20;**&#x74;o ***cust\_DocumentType\_LinkCard1***<br /><br />Set Label to **Document Type**<br /><br />Also in Details, for Field Criteria, set 'Source Field Name' to ***cust\_Category.mdfSystemInternalCode*** and 'Destination Field Name to ***cust\_Category***<br />Set Required to **Yes** |
| CollectionType  | 256    | String         |                                                                                                                                                                                                                                                                                                                                               |
| d4iUploadStatus | 38     | Picklist       | In **Details**, Set **Valid Values Source&#x20;**&#x74;o ***LinkCard\_DocStatus***                                                                                                                                                                                                                                                            |
| attachment      | 38     | Attachment     | Set Required to Yes                                                                                                                                                                                                                                                                                                                           |

### Security

Update the Security section with the following values:

| Property                        | Value                     | Notes |
| ------------------------------- | ------------------------- | ----- |
| Secured                         | Yes                       |       |
| Permission Category             | Miscellaneous Permissions |       |
| RBP Subject User Field          |                           |       |
| CREATE Respects Target Criteria | No                        |       |
| Base Date Field For Blocking    |                           |       |

### Business Rule

The next step is to create a rule that will concatenate Category and Document Type into a single field that is used for data collection

Click on the plus next to 'Save Rules' to open '**Configure Business Rules**'

Select 'Basic'

| Name        | Value                           | Notes |
| ----------- | ------------------------------- | ----- |
| Rule Name   | LinkCard\_CollectionType\_Child |       |
| Rule ID     | LinkCard\_CollectionType\_Child |       |
| Base Object | Employee Document Child         |       |

In the **IF** statement section, select the '**Always True**' checkbox

Set the following Concatenation Rule:



![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/KvN9jb9D1gyp6xmWb8DnG_image.png)

**Save&#x20;**&#x79;our changes to complete the rule

Navigate back to the Admin tool Configure Object Definitions

Open the ESS Link Card object and take action->make correction

Go to the section 'Save Rule'

- Select the ***LinkCard\_CollectionType\_Child*** rule that was just created and save the object


[title] Link Card Type 3
[path] SuccessFactors/SuccessFactors Configuration/SuccessFactors Objects/

Navigate to 'Create New' -> 'Object Definition and fill in the following values into the header section:

| Property         | Value            | Notes |
| ---------------- | ---------------- | ----- |
| Code             | d4i\_LinkCard\_3 |       |
| Effective Dating | None             |       |
| API Visibility   | Editable         |       |
| Status           | Active           |       |
| Label            | Link Card Type 3 |       |

Add the following fields to the d4i\_LinkCard\_3 object:

| Name            | Length | Data Type      | More                                               |
| --------------- | ------ | -------------- | -------------------------------------------------- |
| user            | 100    | user           | Under details, set 'Required' to 'Yes'             |
| Category        | 100    | Generic Object | Valid Values Source: cust\_Category\_LinkCard3     |
| DocumentType    | 100    | Generic Object | Valid Values Source: cust\_DocumentType\_LinkCard3 |
| Title           | 256    | String         |                                                    |
| UserID          | 38     | String         |                                                    |
| EmployeeName    | 256    | String         |                                                    |
| Country         | 128    | String         |                                                    |
| d4i\_URL        | 256    | String         |                                                    |
| d4iUploadStatus | 64     | String         |                                                    |
| CreatedDateTime | 35     | DateTime       |                                                    |
| ownerId         | 38     | String         |                                                    |
| d4i\_Status     | 64     | String         |                                                    |

Update the Security section with the following values:

| Property                        | Value                     | Notes |
| ------------------------------- | ------------------------- | ----- |
| Secured                         | Yes                       |       |
| Permission Category             | Miscellaneous Permissions |       |
| RBP Subject User Field          | cust\_user                |       |
| CREATE Respects Target Criteria | No                        |       |
| Base Date Field For Blocking    | mdfSystemEffectiveEndDate |       |






[title] HR Link Card Parent
[path] SuccessFactors/SuccessFactors Configuration/SuccessFactors Objects/

Navigate to 'Create New' -> 'Object Definition and fill in the following values into the header section:

| Property            | Value                     | Notes    |
| ------------------- | ------------------------- | -------- |
| Code                | d4i\_LinkCard\_HR\_Parent |          |
| Effective Dating    | Basic                     |          |
| API Visibility      | Editable                  |          |
| Status              | Active                    |          |
| Label               | HR Employee Documents     | Localize |
| MDF Version History | Complete History          |          |
| Default Screen      | HR Employee Documents     |          |
| Subject User Field  | externalCode              |          |
| Workflow Routing    | d4i\_Approval             |          |
| Pending Data        | Yes                       |          |

### Fields

Set the following fields on the d4i\_LinkCard\_HR\_Parent object:

| Name         | Length | Data Type | More                                                    |
| ------------ | ------ | --------- | ------------------------------------------------------- |
| externalCode | 100    | user      | This should exist, set to user type<br />Required: True |

### Associations

In the Associations section, add the following values:

| Name                    | Multiplicity | Destination Object         | Type      |
| ----------------------- | ------------ | -------------------------- | --------- |
| HREmployeeDocumentChild | One to Many  | HR Employee Document Child | Composite |



### Security

Update the Security section with the following values:

| Property                        | Value                     | Notes |
| ------------------------------- | ------------------------- | ----- |
| Secured                         | Yes                       |       |
| Permission Category             | Miscellaneous Permissions |       |
| RBP Subject User Field          | externalCode              |       |
| CREATE Respects Target Criteria | No                        |       |
| Base Date Field For Blocking    | mdfSystemEffectiveEndDate |       |




[title] Architecture Overview
[path] SuccessFactors/SuccessFactors Technical Overview/

The below diagram outlines the basic components of the solution

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/XUcTlog5rEfW5mW0maqrb_image.png)

The Link Enterprise Middleware is responsible for:

- Discovering new Employees and creating a Employee Folder in SharePoint and linking this folder back to their Employee Profile
- Discovering new Employee Documents in SuccessFactors, adding them to SharePoint and linking them back to SuccessFactors using LinkCards
- Discovering new Employee Documents in SharePoint and linking them to SuccessFactors using LinkCards

The SAP BTP Platform is responsible for:

- A user interface (MyDocuments) for Employees to see the LinkCards that have been attached to their Employee Profile
- A user interface (DocumentSearch) for HR Managers to see the LinkCards for employees they are related to


[title] Introduction
[path] SuccessFactors/SuccessFactors Technical Overview/

Link Enterprise for SuccessFactors and SharePoint integrates documents between SuccessFactors and the M365 SharePoint platform.

This integration includes document storage, linking, and metadata transfer from SuccessFactors to SharePoint.  Documents can be captured from SuccessFactors and stored within SharePoint and documents added to SharePoint can be linked back to SuccessFactors.

To enable users to access the documents in SharePoint, two HTML5 applications give them access:

- My Documents
- Document Search

My Documents will show a user all of their employee documents that have been linked from SharePoint.

Document Search will allow HR Managers to search for documents belonging to employees that report to them.

The process to capture and link documents is done through the Link Enterprise middleware while the My Documents and Document Search is done through HTML5 applications deployed on the SAP BTP Platform.


[title] SuccessFactors Objects
[path] SuccessFactors/SuccessFactors Configuration/

The following custom objects must be defined within the SuccessFactors administrative tools:

1. Category Link Card 1
2. Category Link Card 3
3. Document Type Link Card 1
4. Document Type Link Card 3
5. Link Card Type 1
6. Link Card Type 2
7. Link Card Type 3
8. Link Card Type 4
9. ESS Link Card Child
10. ESS Link Card Parent
11. HR Link Card Child
12. HR Link Card Parent
13. d4iFolderLink

**NOTE:&#x20;**&#x54;o access the administrative tools, navigate t&#x6F;**&#x20;'Admin->Configure Object Definitions'**






[title] SuccessFactors Technical Overview
[path] SuccessFactors/



![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/flsQJs-rHZ8HUfhGsc8-P_image.png)


[title] SSL Certificates
[path] l4i/Configuration/

TRex requires SSL certificates to secure communications amongst applications within the platform. TRex does provide the ability to create its own self-signed certificates. Certificates are generated through the Certificate Manager application.

The following are execution guidelines for managing the certificates for TRex.

***

### Regenerate and Configure Certificates

After completing file modifications, such as those noted below, the following steps are required to regenerate and configure the new certificates for use with the TRex platform.

1. Stop all TRex applications
2. Rename (or delete) the  \<TREX INSTALL LOCATION>\x509 directory
   e.g. x509.old
3. Start the Certificate Manager application
   1. \<TREX INSTALL LOCATION>\start-cert-mgr.ps1
   2. Upon successful completion, exit/stop the Certificate Manager application
4. Start TRex
5. Close and open a new browser instance
6. Import the newly generated certificates; follow the existing steps [here](https://docs.trex.install.versafile.com/setting-up-firefox-certificate).
   1. Note: it not required, but recommended, to remove the previously configured certificates:
      1. Personal > Gimmal Configuration Manager Client
      2. Trusted Root Certification Authorities > Gimmal TRex Root CA

***

### Modify the Expiry Length

- The expiry length for certificates is located within the \<TREX INSTALL LOCATION>\config\trex-certmgr-application.json file
  - within the defaults.validity object
  - default value 3650 (units in days; 10 years)
- To modify the expiry length of all certificates, edit the trex-certmgr-application.json file
  1. Modify the defaults.validity value
     e.g. for 1 year expiry length
     `"validity": 365`
  2. Save the file edit
  3. Execute the [Regenerate and Configure Certificates](https://linkenterprise.docs.gimmal.com/ssl-certificates) steps, noted above.

***

### Modify a Password

- Each application with the TRex platform is created with its own trustore and keystore, to permit or restrict communication amongst applications.
- Passwords exist for each application's truststore and keystore. These passwords exist in:
  - \<TREX INSTALL LOCATION>\config\trex-certmgr-application.json
  - One of the following:
    - \<TREX INSTALL LOCATION>\config\application-cfgmgr.yaml
    - \<TREX INSTALL LOCATION>\config\application-dao.yaml
    - \<TREX INSTALL LOCATION>\config\application-ngin.yaml
    - \<TREX INSTALL LOCATION>\config\application-cnn.yaml
      - each connector has its own respective yaml config file; however, the application-cnn.yaml is inherited in each case as well
- A password configuration also exists for the client certificate, which exists in \<TREX INSTALL LOCATION>\config\trex-certmgr-application.json. Specifically:
  - exports.privatekeys.storepass object
- To modify a password, edit the trex-certmgr-application.json file and edit the respetive yaml file, as required.
  - For example, to modify the password for both Configuration Manager certificates and the client certificate:
    1. **trex-certmgr-application.json** edits:
       1. Navigate to keystores.keystore : "trex.cfgmgr.keystore.p12"
       2. Edit the storepass object, e.g.
          `{ `
          `	"keystore": "trex.cfgmgr.keystore.p12",`
          `	"storepass": "newPassword1",`
          `	"aliases": ["trex.cfgmgr.server"]`
          `},`
       3. Navigate to truststores.truststore : "trex.cfgmgr.truststore.p12"
          Edit the storepass object, e.g.&#x20;
          `{`
          `	"keystore": "trex.cfgmgr.truststore.p12",`
          `	"storepass": "newPassword2",`
          `	"aliases": [ `
          `		"trex.cfgmgr.client", `
          `		...`
          `		"trex.cnn-trex-websvc.server"`
          `	]`
          `},`
       4. Navigate to exports.privatekeys
          Edit the storepass object, e.g.
          `"privatekeys": [{`
          `	"alias": "trex.cfgmgr.client",`
          `	"file": "exports/trex.cfgmgr.client.p12",`
          `	"storepass": "newPassword3"`
          `}]`
    2. **application-cfgmgr.yaml** edits
       1. Navigate to and edit the server.ssl object
       2. Edit the key-store-password and trust-store-password values, e.g.
          `server:`
          `    port: 8443`
          `    ssl:`
          `        key-store: ./x509/trex.cfgmgr.keystore.p12`
          `        key-store-password: newPassword1`
          `        key-alias: trex.cfgmgr.server`
          `        trust-store: ./x509/trex.cfgmgr.truststore.p12`
          `        trust-store-password: newPassword2`
    3. Execute the [Regenerate and Configure Certificates](https://linkenterprise.docs.gimmal.com/ssl-certificates) steps, noted above.
  - Password creation guidlines:
    - It is recommended not to use, but if using the \ or " characters, these must be escaped with the \ character within the json and yaml files, e.g.
      - not escaped: *this"is\aPwd*
      - escaped: *this\\"is\\\aPwd*
    - Although not used by default, it is recommended to surround the passwords in the yaml file with double quotes. e.g.
      `server:`
      `    port: 8443`
      `    ssl:`
      `        key-store: ./x509/trex.cfgmgr.keystore.p12`
      `        key-store-password: "newPassword1"`
      `        key-alias: trex.cfgmgr.server`
      `        trust-store: ./x509/trex.cfgmgr.truststore.p12`
      `        trust-store-password: "newPassword2"`

***



### Modify Access to Configuration Manager

- By default, Configuration Manager is configured as accessible locally through a browser through http\://localhost:8443
- An IP or DNS configuration can be added and included in the certificate creation.
  1. Edit the trex-certmgr-application.json file
  2. Navigate to the master.certificates object
  3. Edit the "alias": "trex.cfgmgr.server" object
     1. For a new DNS entry, add in a new entry in the "dns" array. For example, to add a DNS config with a name of *trex.cfgmgrtest.com* with an IP of *188.77.166.88*
        `{`
        `	"alias": "trex.cfgmgr.server",`
        `	"dn": {`
        `		"commonName": "VersaFile Configuration Manager Application"`
        `	},`
        `	"san": {`
        `		"dns": ["localhost", "trex.cfgmgrtest.com"],`
        `		"ip": ["127.0.0.1", "188.77.166.88"]`
        `	}`
        `},`**
        Note: an IP can be added on its own, without a DNS entry
  4. Execute the  steps, noted above.

  5. By default, Configuration Manager is configured as accessible locally through a browser through http\://localhost:8443
  6. An IP or DNS configuration can be added and included in the certificate creation.
     1. Edit the trex-certmgr-application.json file
     2. Navigate to the master.certificates object
     3. Edit the "alias": "trex.cfgmgr.server" object
        1. For a new DNS entry, add in a new entry in the "dns" array. For example, to add a DNS config with a name of *trex.cfgmgrtest.com* with an IP of *188.77.166.88*
           `{`
           `	"alias": "trex.cfgmgr.server",`
           `	"dn": {`
           `		"commonName": "VersaFile Configuration Manager Application"`
           `	},`
           `	"san": {`
           `		"dns": ["localhost", "trex.cfgmgrtest.com"],`
           `		"ip": ["127.0.0.1", "188.77.166.88"]`
           `	}`
           `},`**
           Note: an IP can be added on its own, without a DNS entry
     4. Execute the [Regenerate and Configure Certificates](https://linkenterprise.docs.gimmal.com/ssl-certificates) steps, noted above.



[title] Box
[path] l4i/Configuration/Connections/

## Configuring a Box Connection

Go to your Box developer console:

- [https://app.box.com/developers/console](https://app.box.com/developers/console)

Under MyApps, click on the '**Create New App**' button

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/SoplQYeqechWGywBZEoSA_image.png" size="80" width="1786" height="1348" position="flex-start" showCaption="false"}

Under 'Lets Get Started' - Select ***Custom App***

Under 'Authentication Method' - Select ***Server Authentication (with JWT)*** and click Next

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/BW5WiPuY_e9529Mp_WWt9_image.png" size="52" width="916" height="1348" position="flex-start" showCaption="false"}

Name your application  e.g. ***'l4iConnector'*** and click 'Create App'

Click 'View Your App' and navigate to the '***Configuration***' tab

Under ***Application Scopes*** select the following options:

- Read all files and folders stored in Box
- Write all files and folders stored in Box
- Manage users (allows App users to be created)

Under ***Advanced Features*** select the following options

- Make API calls using the as-user header (allows scaling across app users)
- Generate user access tokens

Under ***Add and Manage Public Keys*** select 'Generate a Public/Private Keypair' and Save the json file somewhere secure. This JSON will be required for the Box Connection configuration. ***This private key cannot be regenerated and must be stored safely and securely.***

Under ***App Settings*** select the 'Download JSON' - this JSON file is required for the Box connector

After completing these steps go to the 'App Authorization' and click 'Submit for Authorization'

Return to the Admin console, go to 'Apps' -> Custom Apps

- Click 'Authorize New App' and then enter the Client ID from the previous step
- Click the Authorize button

## Creating a L4i Box Connection

There are two types of connections supported for connecting to Box, Enterprise and AppUser. When creating a new Box connection this can be selected in the 'connection type' dropdown.

### Box Enterprise Connection

The Enterprise connection uses the default servcice account for connecting to Box.

The following information is required when creating a new Enterprise connection:

- **Enterprise ID**: This can be found in the Box Admin under the ***Account and Billing*** section
- **Client ID**: This can be found in the ***OAuth 2.0 Credentials*** section of the Box Enterprise Application configured earlier
- **Client Secret**: This can be found in the ***OAuth 2.0 Credentials*** section of the Box Enterprise Application configured earlier
- **Public Key ID**: This can be found in the ***Add and Manage Public Keys*** section of the Box Enterprise Application configured earlier
- **Private Key**: This is the Private Key that corresponds to the Public key that was registered with the Box Enterprise Application. Must be entered properly formatted with multiple lines (not only one long line).
- **Passphrase**: This is the passphrase for the Key registered with the Box Enterprise Application.&#x20;

### Box AppUser Connection

The AppUser connection uses a defined set of AppUsers associated with the Box Enterprise Application to conenct to Box. The TRex Box connector will round robin between the provided App Users configured in the connector.

The following information is required when creating a new AppUser connection:

- **AppUser List:&#x20;**&#x41; list of Box App users that have been previously created under the Box Enterprise Application
- **Enterprise ID**: This can be found in the Box Admin under the ***Account and Billing*** section
- **Client ID**: This can be found in the ***OAuth 2.0 Credentials*** section of the Box Enterprise Application configured earlier
- **Client Secret**: This can be found in the ***OAuth 2.0 Credentials*** section of the Box Enterprise Application configured earlier
- **Public Key ID**: This can be found in the ***Add and Manage Public Keys*** section of the Box Enterprise Application configured earlier
- **Private Key**: This is the Private Key that corresponds to the Public key that was registered with the Box Enterprise Application. Must be entered properly formatted with multiple lines (not only one long line).&#x20;
- **Passphrase**: This is the passphrase for the Key registered with the Box Enterprise Application.&#x20;

Once a connection is created, a connection test can be run to check if the configuration is valid.

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/ftPC-55fzJS4_xLQce8KB_image.png)


[title] Untitled
[path] /


[title] CSV Row Iterator
[path] l4i/Configuration/Transformations/Methods/FileSystem Connection/

The CSV Row Iterator allows for parsing of Comma Separated Value (CSV) files. CSV files are text documents, resembling the format of a spreadsheet, where columns of data values are typically separated by a comma delimiter.

**Input Parameters:**

- CSV File: This is the CSV file to process. Typically this is the input from a previous File Iterator
- File Encoding: Typically UTF-8 but can be adjusted if your CSV file has an extended encoding
- Row Number Of Header: Which Row in the CSV file has the header names of the columns. Set this to 0 if there is not header row
- Skip Row Count: Number of rows (line breaks) to skip from the top of the CSV. Use this when there are blank lines or non-formatted data at the start of the CSV file
- Delimiter: The character that delimits where the data values/columns are separated

**Output Entity:**

The output entity is where the definition of the columns and thus values that will be parsed. In essence, this is where you describe the format (columns) of the CSV file.&#x20;

Click on the pencil icon in the top right to edit the definition.

To add additional Attributes (CSV columns) to the definition, drag one of the **Available Attributes** from the left side into the **Defined Attributes** section in the middle area.

**Attribute Definitions:**

CSV Row Column (By Index)

- Name: The display name used when later mapping the value of the column in a future step
- Binding: The Index (integer) of the column number in the spreadsheet, starting with 0
- Data Stype: Defaults to string as the input is always a text file string value
- Convert Data Type: Use this checkbox to indicate the string should be converted when read and select the data type to convert to

CSV Row Column (By Name)

- Name: The display name used when later mapping the value of the column in a future step
- Binding: The name used in the CSV for the column to be referenced
- Data Stype: Defaults to string as the input is always a text file string value
- Convert Data Type: Use this checkbox to indicate the string should be converted when read and select the data type to convert to

**NOTE:** To use a path/filename in the CSV as a reference to the binary file to upload, use one of the CSV Row Column references as above, but use the 'Convert Data Type' option and set it to Binary. This will retrun a reference to the binary file from the csv for processing in a future method.

[title] Filters
[path] l4i/Configuration/Connections/Microsoft SharePoint (On Premise)/

Many of the SharePoint methods allow a Filter Input Parameter to be defined. This will filter the results of the method to only items that match the criteria specified.

The format of the filter expressions follows the Microsoft SharePoint API format, except omit the ***$filter=*** portion of the filter string as this is implied by L4i.

The following String Comparisons are supported:

| **String Comparison** | **Notes**       |
| --------------------- | --------------- |
| startsWith            | Starts with     |
| substringof           | Substring match |
| eq                    | Equal           |
| ne                    | Not Equal       |

The following Numeric Comparisons are supported:

| **Numeric Comparison** | **Notes**             |
| ---------------------- | --------------------- |
| lt                     | Less Than             |
| le                     | Less Than or Equal    |
| gt                     | Greater Than          |
| ge                     | Greater Than or Equal |
| eq                     | Equal                 |
| ne                     | Not Equal             |

The following String Comparisons are supported:

| **String Comparison** | **Notes**       |
| --------------------- | --------------- |
| startsWith            | Starts with     |
| substringof           | Substring match |
| eq                    | Equal           |
| ne                    | Not Equal       |

The following Numeric Comparisons are supported:

| **Numeric Comparison** | **Notes**             |
| ---------------------- | --------------------- |
| lt                     | Less Than             |
| le                     | Less Than or Equal    |
| gt                     | Greater Than          |
| ge                     | Greater Than or Equal |
| eq                     | Equal                 |
| ne                     | Not Equal             |

The following String Comparisons are supported:

| **String Comparison** | **Notes**       |
| --------------------- | --------------- |
| startsWith            | Starts with     |
| substringof           | Substring match |
| eq                    | Equal           |
| ne                    | Not Equal       |

The following Numeric Comparisons are supported:

| **Numeric Comparison** | **Notes**             |
| ---------------------- | --------------------- |
| lt                     | Less Than             |
| le                     | Less Than or Equal    |
| gt                     | Greater Than          |
| ge                     | Greater Than or Equal |
| eq                     | Equal                 |
| ne                     | Not Equal             |

Some examples Are:

| **Filter Parameter**  | **Result**                                             |
| --------------------- | ------------------------------------------------------ |
| Title eq 'README'     | returns only items whose Title equals README           |
| startswith(Title,'T') | returns only items whose Title start with the letter T |
|                       |                                                        |
|                       |                                                        |


[title] HR Link Card Child
[path] SuccessFactors/SuccessFactors Configuration/SuccessFactors Objects/

Navigate to 'Create New' -> 'Object Definition and fill in the following values into the header section:

| Property            | Value                      | Notes |
| ------------------- | -------------------------- | ----- |
| Code                | d4i\_LinkCard\_HR\_Child   |       |
| Effective Dating    | From Parent                |       |
| API Visibility      | Editable                   |       |
| Status              | Active                     |       |
| Label               | HR Employee Document Child |       |
| MDF Version History | Complete History           |       |
| Subject User Field  |                            |       |
| Workflow Routing    |                            |       |
| Pending Data        | No                         |       |

### Fields

In the '**Fields Section**', for '**externalName**' select **details**

- In the details screen, set the value of 'Visibility' to 'Not Visible'

Set the following fields on the cust\_d4i\_LinkCard\_HR\_Child:

| Name            | Length | Data Type      | More                                                                                                                                                                                                                                                                                                                                                   |
| --------------- | ------ | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| externalCode    | 100    | AutoNumber     | This should exist, set type                                                                                                                                                                                                                                                                                                                            |
| Category        | 100    | Generic Object | In **Details**, Set **Valid Values Source&#x20;**&#x74;o ***cust\_Category\_LinkCard3***<br />Set label to **Document Category&#x20;**(set localization)<br />Set Required to Yes                                                                                                                                                                      |
| DocumentType    | 100    | Generic Object | In **Details**, Set **Valid Values Source&#x20;**&#x74;o ***cust\_DocumentType\_LinkCard3***<br /><br />Set Label to **Document Type**<br /><br />Also in Details, for Field Criteria, set 'Source Field Name' to ***cust\_CategoryLinkCard3.mdfSystemInternalCode*** and 'Destination Field Name to ***cust\_Category***<br />Set Required to **Yes** |
| CollectionType  | 256    | String         |                                                                                                                                                                                                                                                                                                                                                        |
| d4iUploadStatus | 38     | Picklist       | In **Details**, Set **Valid Values Source&#x20;**&#x74;o ***LinkCard\_DocStatus***                                                                                                                                                                                                                                                                     |
| attachment      | 38     | Attachment     | Set Required to Yes                                                                                                                                                                                                                                                                                                                                    |

### Security

Update the Security section with the following values:

| Property                        | Value                     | Notes |
| ------------------------------- | ------------------------- | ----- |
| Secured                         | Yes                       |       |
| Permission Category             | Miscellaneous Permissions |       |
| RBP Subject User Field          |                           |       |
| CREATE Respects Target Criteria | No                        |       |
| Base Date Field For Blocking    |                           |       |

### Business Rule

The next step is to create a rule that will concatenate Category and Document Type into a single field that is used for data collection

Click on the plus next to 'Save Rules' to open '**Configure Business Rules**'

Select '**Basic**'

| Name        | Value                               | Notes |
| ----------- | ----------------------------------- | ----- |
| Rule Name   | HR\_LinkCard\_CollectionType\_Child |       |
| Rule ID     | HR LinkCard\_CollectionType\_Child  |       |
| Base Object | HR Employee Document Child          |       |

In the **IF** statement section, select the '**Always True**' checkbox

Set the following Concatenation Rule:

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/Hc96YEjZrhG6oxj2khBD-_image.png)

**Save&#x20;**&#x79;our changes to complete the rule

Navigate back to the Admin tool Configure Object Definitions

Open the ESS Link Card object and take action->make correction

Go to the section 'Save Rule'

- Select the ***HR\_LinkCard\_CollectionType\_Child*** rule that was just created and save the object


[title] SuccessFactors
[path] /


[title] Create Folder
[path] l4i/Configuration/Transformations/Methods/Box Connection/Folder Operations/

This method will create a new Folder in Box and optionally set an Enterprise Metadata Template and Metadata Values.

**Input Parameters:**

- Parent Folder ID: ID of the parent folder to create the new folder within. The newly created folder will be a child/leaf of this folder
- Folder Name: Name of the new folder
- Conflict Behaviour: If a folder with the same name already exists in the parent folder, this setting determines how TRex should handle reconciling this
  - Use Existing: Keep the existing folder and continue normal processing (no error surfaced)
  - Use Existing - Overwrite Metadata: Keep the existing folder but update any Metadata values (if provided)
  - Append Unique ID: This will append a uniquely generated ID string to the folder name
  - Fail: The upload will fail and the Box error will be returned
- Cascade Conflict Policy: If a Cascade Policy already exists on the folder, this setting determines how TRex should handle reconciling. See 'Setting Metadata Values' in the following section on how to set the Cascade Policy.
  - Overwrite Existing: Overwrite the Cascade Policy with the new value
  - Keep Existing: Keep the existing Cascading Policy

**Setting Metadata Values:**

**NOTE:** TRex only supports setting a single Enterprise Metadata Template and values during Create Folder. To add additional metadata templates and values to the document, use the 'Update Folder' method after the 'Create Folder' method.

- Metadata Values: These are the values for either Enterprise Metadata (defined in a metadata template) or Global Metadata (string value pairs directly attributed to a document)
  - Click on the pencil icon in the top right to edit the definition of metadata
  - Drag an 'Available Parameter' from the Available Parameters to the middle section called 'Defined Parameters'
  - There are four types of Parameters
    - Description: This allows the setting of the description on the document. No additional configuration/naming is required. The name should be left as 'Description' and the datatype left as 'String'
    - Enable Cascade On: Turns on Cascading of metadata from the Folder to any children contained within. The string list provided should be configured with the names of the Enterprise Templates to turn on the Cascade feature
    - Enterprise Metadata Value: This allows setting of Enterprise Metadata that is defined on a pre-defined Metadata Template.&#x20;
      - Name: This is required to be the name of the metadata value defined in Box. It will include the Metadata Template name that it is assoicated with. (e.g. trexMetadata.trexTextField)
      - Data Type: The type value assigned in the Box metadata definition
    - Global Metadata Value: This allows the setting of key/value pair strings to be added to a document
      - Name: This should match the metadata value of a Custom Attribute already defined on the document. it will always be prefixed with the value 'document' followed by the name of the box value (e.g. document.trexMyCustomString)


[title] Extension Admin Permissions
[path] SuccessFactors/BTP Configuration/

The extension administrators will require permissions to the BTP environments to complete the Application setup in the SuccessFactors Extensions Center portlet.

- In the SuccessFactors Admin Center, navigate to the **Permissions Role Detail**
- Select the Administrative Role that is doing the solution configuration
- Navigate to the Permission setting '**Permission not requiring target**'
- Select '**Manage Extensions on SAP BTP**'
  - Allow '**Create Integration with SAP BTP**'

Add the Administrative user who will be accessing the Portal Configuration to the Extensions Administrators Group. In SuccessFactors:

- Navigate to '**Manage Permission Groups**'
- Select the group name: **Extension Administrators**
- Add the selected UserIds to the role



**SAP Tech Note:**

[https://help.sap.com/docs/btp/sap-business-technology-platform/register-sap-successfactors-system-in-global-account-in-sap-btp](https://help.sap.com/docs/btp/sap-business-technology-platform/register-sap-successfactors-system-in-global-account-in-sap-btp)

[title] ESS Link Card Parent
[path] SuccessFactors/SuccessFactors Configuration/SuccessFactors Objects/

Navigate to 'Create New' -> 'Object Definition and fill in the following values into the header section:

| Property            | Value                      | Notes |
| ------------------- | -------------------------- | ----- |
| Code                | d4i\_LinkCard\_ESS\_Parent |       |
| Effective Dating    | Basic                      |       |
| API Visibility      | Editable                   |       |
| Status              | Active                     |       |
| Label               | Employee Documents         |       |
| MDF Version History | Complete History           |       |
| Default Screen      | Employee Document Parent   |       |
| Subject User Field  | externalCode               |       |
| Workflow Routing    | d4i\_Approval              |       |
| Pending Data        | Yes                        |       |

### Fields

Set the following fields on the cust\_d4i\_LinkCard\_ESS\_Parent object:

| Name         | Length | Data Type | More                                                        |
| ------------ | ------ | --------- | ----------------------------------------------------------- |
| externalCode | 100    | user      | This should exist, set to user type<br />Set Required: True |

### Associations

In the Associations section, add the following values:

| Name                        | Multiplicity | Destination Object      | Type      |
| --------------------------- | ------------ | ----------------------- | --------- |
| cust\_EmployeeDocumentChild | One to Many  | Employee Document Child | Composite |



### Security

Update the Security section with the following values:

| Property                        | Value                     | Notes |
| ------------------------------- | ------------------------- | ----- |
| Secured                         | Yes                       |       |
| Permission Category             | Miscellaneous Permissions |       |
| RBP Subject User Field          | externalCode              |       |
| CREATE Respects Target Criteria | No                        |       |
| Base Date Field For Blocking    | mdfSystemEffectiveEndDate |       |




[title] d4iFolderLink
[path] SuccessFactors/SuccessFactors Configuration/SuccessFactors Objects/

Navigate to 'Create New' -> 'Object Definition and fill in the following values into the header section

| Property         | Value         | Notes |
| ---------------- | ------------- | ----- |
| Code             | d4iFolderLink |       |
| Effective Dating | None          |       |
| API Visibility   | Editable      |       |
| Status           | Active        |       |
| Label            | d4iFolderLink |       |

### Fields

Set the following fields on the cust\_d4iFolderLink object:

| Name        | Length | Data Type | More            |
| ----------- | ------ | --------- | --------------- |
| BoxFolderID | 64     | String    | ******          |
| User        | 100    | user      | Required = True |

### Searchable Fields

Update the Security section with the following values:

| Field             | Status | Notes |
| ----------------- | ------ | ----- |
| cust\_User        | Active |       |
| cust\_BoxFolderID | Active |       |

### Security

Update the Security section with the following values:

| Property                        | Value                     | Notes |
| ------------------------------- | ------------------------- | ----- |
| Secured                         | Yes                       |       |
| Permission Category             | Miscellaneous Permissions |       |
| RBP Subject User Field          | cust\_User                |       |
| CREATE Respects Target Criteria | No                        |       |
| Base Date Field For Blocking    |                           |       |

###




[title] Document Type Link Card 3
[path] SuccessFactors/SuccessFactors Configuration/SuccessFactors Objects/

Navigate to 'Create New' -> 'Object Definition and fill in the following values into the header section:

| Property            | Value                     | Notes |
| ------------------- | ------------------------- | ----- |
| Code                | DocumentType\_LinkCard3   |       |
| Effective Dating    | None                      |       |
| API Visibility      | Editable                  |       |
| MDF Version History | Complete History          |       |
| Status              | Active                    |       |
| Label               | Document Type Link Card 3 |       |

In the **Fields Section** for '**external code**' select ***details***

- In the details screen, set the value of '**Visibility**' to '**Not Visible**'

In the '**Fields Section**', for '**external name**' select ***details***

- In the details screen, set the value of '**Data Type**' to '**Translatable**'



In the **Associations** section set the following values:

| Property           | Value                | Notes                                                                       |
| ------------------ | -------------------- | --------------------------------------------------------------------------- |
| Name               | CategoryLinkCard3    | It will show as custom\_CategoryLinkCard3 after its been created            |
| Multiplicity       | One to Many          |                                                                             |
| Destination Object | Category Link Card 3 | Use the dropdown to find the custom object created for 'Category LinkCard3' |
| Type               | Valid When           |                                                                             |

Update the **Security&#x20;**&#x73;ection with the following values:

| Property                        | Value                     | Notes |
| ------------------------------- | ------------------------- | ----- |
| Secured                         | Yes                       |       |
| Permission Category             | Miscellaneous Permissions |       |
| RBP Subject User Field          | \<blank>                  |       |
| CREATE Respects Target Criteria | No                        |       |
| Base Date Field For Blocking    | \<blank>                  |       |






[title] SharePoint Endpoints
[path] Agnostic Guides/Developers Guide/


[title] Send Metadata
[path] Agnostic Guides/Developers Guide/Untitled/

Sending metadata to a file ID or folder ID directly can be accomplished via the below method.

Note that if the metadata template is not yet applied (in the case of Box), it will be added (note: for Box more than one metadata template can be applied).

## /dflow/cl\_docmanager\_helper=>send\_metadata\_update

## Parameters

| **Parameter**                       | **Description**                                                                                                                                                             | **Sample Value**                                               |
| ----------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- |
| IV\_CALLER                          | Describes who is calling the method.  Logged in the Link Enterprise API Gateway as such.                                                                                    | /dflow/cl\_common\_super=><br />gc\_caller\_docmanager\_custom |
| IV\_SAP\_OBJECT                     | ArchiveLink SAP Object                                                                                                                                                      | BKPF                                                           |
| IV\_AR\_OBJECT                      | ArchiveLink doctype                                                                                                                                                         | ZINVOICE01                                                     |
| IV\_OBJECT\_ID                      | ArchiveLink SAP key.  Note this can be a compound key for certain SAP objects or line item/company code level.                                                              | 300019000000012020                                             |
| IV\_ARC\_DOC\_ID                    | CMS ID to update                                                                                                                                                            | &#x7B;FC2F11EF-9AB9-C08E-86B0-74E484400000} or 124057761318    |
| IV\_LABEL                           | Cosmetic value logged in the Link Enterprise API gateway for reporting and tracking purposes.                                                                               | MIGRATE\_DIRECT\_UPDATE                                        |
| IV\_FOLDER\_METADATA                | Boolean to indicate if update is to a folder.                                                                                                                               | X = folder      EMPTY = file                                   |
| IT\_METADATA                        | Table of key value pairs of your CMS properties and the values to update                                                                                                    | sapCompanyCode 3000                                            |
| EV\_DOCUMENT\_UPDATED               | Flag to indicate whether the file or folder was updated successfully.                                                                                                       |                                                                |
| ET\_RETURN <br /><br /><br /><br /> | Table that indicates a success of an error. The TYPE field will contain an ‘S’ or ‘E’ respectively and the MESSAGE field will contain information in the case of an error.  |                                                                |


[title] Fetch File
[path] l4i/Configuration/Transformations/Methods/Box Connection/File Operations/

The Fetch File method will return the binary content of a Box document. Optionally metadata can be retrieved for the document.

**Input Parameters:**

- File ID: ID of the document (binary) to fetch/return


[title] IBM Watson
[path] l4i/Configuration/Connections/

The IBM Watson Connector supports two types of connections:

- IBM Watson Machine Learning
- IBM Watson Natural Language Understanding (NLU)

### IBM Watson Machine Learning

To configure the IBM Watson Machine Learning connection, three values are required:

- Machine Learning Service URL: This is the endpoint of the Watson ML service for your deployed region
- API Key: The API key for your Watson ML Service. This can be obtained from your service details
- ML Service ID: The unique ID of your ML model instance

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/bE82p5ZqA8Id8nzEBGUJG_image.png" size="80" width="1404" height="526" position="center" showCaption="false"}

### IBM Watson Natural Language Understanding (NLU)

To configure the IBM Watson NLU connection, two values are required:

- NLU Service URL: This is the watson nlu api end-point
- API Key: The unique key for your Waston NLU service instance

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/jCOrOcoN9EUlxqVhxdpR2_image.png" size="80" width="1410" height="548" position="center" showCaption="false"}


[title] Elasticsearch
[path] l4i/Configuration/Connectors/

To Create a new Elasticsearch Connector in the L4i Configuration UI:

1. Click on the 'Connectors' Tab
2. Click on the + icon&#x20;
3. Enter the Connector URL (**https\://localhost:42425**)

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/oWWusxkhF5RPrgVBi2nJp_image.png" size="50" width="630" height="340" position="flex-start" showCaption="false"}

### Connector Description

Elasticsearch is a modern distributed, RESTful search and analytics engine. See [https://www.elastic.co/](https://www.elastic.co/)

Version 7.0 and later is supported

### Methods Included:

**Document**

- Create Document
- Delete Document
- Read Document
- Update Document

**Search**

- Wrapper Query


[title] Upload
[path] Agnostic Guides/Developers Guide/Untitled/

Link Enterprise provides an endpoint to upload files to. This is strictly for uploading files, and if you require metadata to be transferred following up with an update endpoint call is required.

:::ApiMethodV2
```json
{
  "tab": "request",
  "url": "https://localhost:82/scrud/upload",
  "name": "Upload",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [
      {
        "kind": "required",
        "name": "cmsName",
        "type": "string",
        "description": "Name of the content management system configured in Link Enterprise."
      },
      {
        "kind": "required",
        "name": "location",
        "type": "String",
        "description": "Sharepoint Document Library location (including any sub site present). Each field is separated with \"/\"."
      },
      {
        "kind": "optional",
        "name": "Content-Type",
        "type": "string",
        "description": "multipart/form-data; boundary=(insert boundary)\n\nExample is included in code examples"
      },
      {
        "name": "repository",
        "kind": "required",
        "type": "string",
        "description": "Sharepoint repository Id. It consists of domain name and root site name separated with \"/sites/\" or \":/teams/\"",
        "children": []
      }
    ],
    "bodyDataParameters": [],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "81EVM7WXdGrYfDwshYJW6",
        "code": "SUCCESS EXAMPLE\n{\n\t\"id\": \"01KWRZNIREIZD5TSQY3BEKS225HTGZUSMF\",\n\t\"result\": \"success\"\n}\n\nFAILED EXAMPLE\n{\n\t\"id\": null.\n\t\"result\": \"fail\"\n}",
        "language": "200"
      },
      {
        "id": "6U9gw-gSaolDqS3WcFi9t",
        "code": "",
        "language": "500"
      }
    ],
    "selectedLanguageId": "81EVM7WXdGrYfDwshYJW6"
  },
  "examples": {
    "languages": [
      {
        "id": "xY6nLYt-BP3jeEy_-jkb3",
        "code": "POST /scrud/upload HTTP/1.1\nCookie: vertx-web.session=135e85c919328477ec243e270a692c4d\nUser-Agent: insomnia/2023.5.8\nCmsname: SPRKO365DEMO\nLocation: /documentLibraryName\nAccept: */*\nRepository: domainName/sites/rootsiteName\nAuthorization: Basic YWRtaW46YWRtaW4=\nContent-Type: multipart/form-data; boundary=---011000010111000001101001\nHost: localhost:82\nContent-Length: 172\n\n-----011000010111000001101001\nContent-Disposition: form-data; name=\"\"; filename=\"POSPaper COD-04.pdf\"\nContent-Type: application/pdf\n\n\n-----011000010111000001101001-",
        "language": "none"
      }
    ],
    "selectedLanguageId": "xY6nLYt-BP3jeEy_-jkb3"
  },
  "description": "Upload a file using HTTP multi part form data. HTTP headers specifying repository, location and the content system named must be specified.",
  "currentNewParameter": {
    "label": "Header Parameter",
    "value": "headerParameters"
  },
  "autoGeneratedAnchorSlug": "upload",
  "legacyHash": "SYWoaQaa1CeAs6I_xHZZn"
}
```
:::






[title] Connectors
[path] l4i/Configuration/

Connectors allow the solution to connect to external solutions. The connectors are each their own microservice and leverage the L4i API interfaces to allow connection details and methods to be described to the core solution.&#x20;

## Adding a Connector

Select the 'Connectors' tab, then click the '+' button

Enter the URL to the connector endpoint using HTTPS and providing the port

In default installations localhost or loopback addresses can be used. In advanced configurations where connectors are deployed on remote servers, the remote machine address/name should be used:

:::BlockQuote
https\://127.0.0.1:42420
:::

:::BlockQuote
https\://localhost:42420
:::

:::BlockQuote
https\://\<remoteconnectorserver>:42420
:::

***Note:*** that 127.0.0.1 is a loopback ip4 address - the same as using localhost. This indicates the connector is running on the same machine as the L4i core services.

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/RgsgsKnsWjR83lK4gKglY_image.png" size="80" width="1764" height="1354" position="flex-start" showCaption="false"}

The default ports for the connectors assigned in the d4i configuration are listed in the table below:

| TRex Utilities                | 42420 |
| ----------------------------- | ----- |
| Filesystem                    | 42421 |
| IBM FileNet P8 Content Engine | 42422 |
| Apache Tika                   | 42423 |
| IBM Watson Cloud Services     | 42424 |
| Elasticsearch                 | 42425 |
| IBM FileNet P8 Process Engine | 42426 |
| Box Cloud Content Management  | 42427 |
| IBM Content Manager CM8       | 42429 |
| IBM Forms Server              | 42430 |
| Microsoft SharePoint          | 42431 |
| Generic Web Services          | 42432 |


[title] TRex Utilities
[path] l4i/Configuration/Connections/

The TRex Utilites connection requires no additional configuration information.

[title] CSV Write Row
[path] l4i/Configuration/Transformations/Methods/FileSystem Connection/

The CSV Write Row allows for writing of data to Comma Separated Value (CSV) files. CSV files are text documents, resembling the format of a spreadsheet, where columns of data values are typically separated by a comma delimiter.

**Input Parameters**

- Parent Folder: The path/folder location, relative to the mount point of the connector, where the file will be created
- File Name: The filename to be used when writing the CSV (i.e. output.csv)
- Quote Values: If selected, all values written to the CSV will be wrapped in quotes. This allows commas to be safely used within the data elements.
- Custom Values: These are the 'columns' that will be used in the output CSV
  - Click on the pencil icon in the top right to edit the definition of custom Values (columns)
  - Drag a 'Column Value' step from the Available Parameters to the middle section called 'Defined Parameters'
  - Parameter Definition:
    - Name: This will determine which value is used for the column header
    - Data Type: String (CSV files are plain text files)


[title] Read
[path] Agnostic Guides/Developers Guide/S3 Endpoints/

Link Enterprise provides a web service endpoint that will allow you to retrieve a file metadata.

Included below are example of reading a files metadata.

:::ApiMethodV2
```json
{
  "tab": "examples",
  "url": "https://localhost:82/scrud/read",
  "name": "Read (metadata)",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [],
    "bodyDataParameters": [
      {
        "kind": "required",
        "name": "cmsName",
        "type": "string",
        "description": "Name of the s3 system configured in Link Enterprise ."
      },
      {
        "kind": "required",
        "name": "id",
        "type": "string",
        "description": "Unique id of s3 file or folder."
      },
      {
        "kind": "required",
        "name": "selectedCMS",
        "type": "string",
        "description": "Value should always be set to \"s3\" to let Link Enterprise know which configured content system to search."
      },
      {
        "name": "location",
        "kind": "optional",
        "type": "string",
        "description": " If no repository value is present middleware considers the location as bucket Name configured in ini File.",
        "children": []
      },
      {
        "name": "getContent",
        "kind": "optional",
        "type": "string",
        "description": "If true, Returns binary content of the Document. If false, returns metadata properties.",
        "children": []
      }
    ],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "ymgovs5m1fdI32-gkqqCH",
        "code": "\t{\n\t\t\"compid\": \"data24\",\n\t\t\"content-length\": \"3000\",\n\t\t\"contrep\": \"K2456\",\n\t\t\"docid\": \"1234\",\n\t\t\"scanperformed\": \"true\"\n\t}",
        "language": "200"
      },
      {
        "id": "guaZg_Kjaci06qaXI6hoD",
        "code": "",
        "language": "500"
      }
    ],
    "selectedLanguageId": "ymgovs5m1fdI32-gkqqCH"
  },
  "examples": {
    "languages": [
      {
        "id": "yA6PAHJgLMNa-NjR8XpmC",
        "code": "{\n   \"cmsName\":\"insertProductionSystemName (located in Link Enterprise gui)\",\n   \"id\":\"unique s3 id specfic to folder/id\",\n\t\"selectedCMS\":\"s3\",\n\t   \"location\":\"S3 Bucket Name\"\n\t\n}\n",
        "language": "json"
      }
    ],
    "selectedLanguageId": "yA6PAHJgLMNa-NjR8XpmC"
  },
  "description": "Retrieve a file metadata by using s3 unique Id.",
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "autoGeneratedAnchorSlug": "read-metadata",
  "legacyHash": "RTkIuAhig8f9DkChR6cM4"
}
```
:::

:::ApiMethodV2
```json
{
  "tab": "examples",
  "url": "https://localhost:82/scrud/read",
  "name": "Read (content)",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [],
    "bodyDataParameters": [
      {
        "kind": "required",
        "name": "cmsName",
        "type": "string",
        "description": "Name of the s3 system configured in Link Enterprise ."
      },
      {
        "kind": "required",
        "name": "id",
        "type": "string",
        "description": "Unique id of s3 file or folder."
      },
      {
        "kind": "required",
        "name": "selectedCMS",
        "type": "string",
        "description": "Value should always be set to \"s3\" to let Link Enterprise know which configured content system to search."
      },
      {
        "name": "location",
        "kind": "optional",
        "type": "string",
        "description": "S3 Bucket name where you want to read the document. If no location value is present middleware considers the location as bucket Name configured in ini File.",
        "children": []
      },
      {
        "name": "getContent",
        "kind": "required",
        "type": "string",
        "description": "If true, Returns binary content of the Document. If false, returns metadata properties.",
        "children": []
      }
    ],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "ymgovs5m1fdI32-gkqqCH",
        "code": "\t{\n\t\t\"compid\": \"data24\",\n\t\t\"content-length\": \"3000\",\n\t\t\"contrep\": \"K2456\",\n\t\t\"docid\": \"1234\",\n\t\t\"scanperformed\": \"true\"\n\t}",
        "language": "200"
      },
      {
        "id": "guaZg_Kjaci06qaXI6hoD",
        "code": "",
        "language": "500"
      }
    ],
    "selectedLanguageId": "ymgovs5m1fdI32-gkqqCH"
  },
  "examples": {
    "languages": [
      {
        "id": "yA6PAHJgLMNa-NjR8XpmC",
        "code": "{\n   \"cmsName\":\"insertProductionSystemName (located in Link Enterprise gui)\",\n   \"id\":\"unique s3 id specfic to folder/id\",\n\t\"selectedCMS\":\"s3\",\n\t   \"location\":\"S3 Bucket Name\",\n\t   \"getContent\":true\n\t\n}\n",
        "language": "json"
      }
    ],
    "selectedLanguageId": "yA6PAHJgLMNa-NjR8XpmC"
  },
  "description": "Retrieve a file metadata by using s3 unique Id.",
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "autoGeneratedAnchorSlug": "read-content",
  "legacyHash": "M0geQ_vj6PJYXDeg9AgeG"
}
```
:::


[title] BTP Command Line Interface (CLI)
[path] SuccessFactors/BTP Configuration/HTML5 Application Registrations/

This section has information on how to install the BTP CLI if it does not alreay exist in your environment.

The CLI can be downloaded from: [https://tools.hana.ondemand.co[m/#cloud](https://tools.hana.ondemand.com/#cloud)](https://tools.hana.ondemand.com/#cloud)

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/Xv2RG_BoJzG8x0zFSVFEJ_image.png)

**NOTE:** The above tools will require a Java Runtime Environment (JRE). If you do not have one scroll down on the page to the SAP JVM section and download a version appropriate for your Operating System

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/-DYdzTHRb441SxEJdv3Y4_image.png)

Download the above tools and unpack to a system directory. Install the JRE if required.

If you just installed a JRE, the tools require **‘JAVA\_HOME’** be defined.  This will be the path where the JRE was downloaded to.

**set JAVA\_HOME=C:\\\*your directory path\* \JVM\sapjvm\_8\jre**


[title] Search
[path] l4i/Configuration/Transformations/Methods/Box Connection/Search/

The Search method performs the same search as the Box UI. It will query against the Box search index.

Box keeps a search index for any files or folders stored in Box. Every time a file or folder is changed, those words are added to the index. When a search is performed, the API looks in the search index for files and folders that match the query. When content is added, updated, or deleted in Box, the search index is updated accordingly.

**A FEW NOTES:&#x20;**

- It can take time between uploading or modifying a file for it to be fully indexed and ready to be searched. In most cases, newly added or changed files can be expected to be available via Box search in 10 minutes. The current service load determines the index time and it may take more than 10 minutes in some cases
- Only content that the authenticated user has access to (items they can preview and/or view) will be returned in the search results
- The Box search index stores up to 10,000 bytes (\~10,000 characters in English) per document for accounts from Business level and above. This amount can vary from document to document because of language, Box’s indexing method, and document type
- Search only indexes content from the current version of a document, so that you do not have to sift through hundreds of irrelevant search results of outdated documents. You cannot use search to query non-current versions of a document

**Input Parameters:**

- Item Type: Allows filtering of result set to specific Box Item types
  - All (all item types included)
  - File (only Files)
  - Folder (only Folders)
  - Web Link (only Web Links)
- Search In Folder(s): (Optional) One or more Folders to constrain the search against. Otherwise it will search against all content the configured connection has access to
- Limit: Maximum number of search results to return
- Query Text: Free form text field that works the same was as the 'Search files and folders' UI element in the Box client. All of the same rules (query operators/formatting) that can be used in the UI will work.

**Output Entity:**

This section allows for configuration any metadata fields that should be returned into the pipeline for processing. Click on the pencil icon in the ***Output Entity*** section.

- Once in the Entity Attributes screen, drag an ***Enterprise Metadata Value*** from the left into the center secion
- Name: what you would like it to display as in the attribute list
- Binding: the exact value of the Box metadata template value (i.e. claimNumber)
- Click '***Convert Data Type***' and choose the converted data type value of the Box metadata template


[title] Upload File
[path] l4i/Configuration/Transformations/Methods/Box Connection/File Operations/

This method will Upload a File to Box and optionally set an Enterprise Metadata Template and Metadata Values.

**Input Parameters:**

- Folder ID: ID of the folder to create the file in (required). NOTE: ensure the connection being used has permissions to the folder specified
- File Name: The name to be used for the file. This will appear in the 'Name' column in Box. NOTE: Box determines the file type based on the extesion used with the File Name
- Conflict Behaviour: If a file with the same name already exists in the folder, this setting determines how TRex should handle reconciling this
  - Use Existing: Keep the existing file and continue normal processing (no error surfaced)
  - Use Existing - Overwrite Metadata: Keep the existing file but update any Metadata values (if provided)
  - Append Unique ID: This will append a uniquely generated ID string to the filename
  - Replace: This will delete the existing file and replace it with the file being uploaded
  - Version: This will version the existing file
  - Fail: The upload will fail and the Box error will be returned
- File Content: Reference to the Binary File Object

**Setting Metadata Values:**

**NOTE:** TRex only supports setting a single Enterprise Metadata Template and values during creation. To add additional metadata templates and values to the document, use the 'Update File' method after the 'Upload File' method.

- Metadata Values: These are the values for either Enterprise Metadata (defined in a metadata template) or Global Metadata (string value pairs directly attributed to a document)
  - Click on the pencil icon in the top right to edit the definition of metadata
  - Drag an 'Available Parameter' from the Available Parameters to the middle section called 'Defined Parameters'
  - There are three types of Parameters
    - Description: This allows the setting of the description on the document. No additional configuration/naming is required. The name should be left as 'Description' and the datatype left as 'String'
    - Enterprise Metadata Value: This allows setting of Enterprise Metadata that is defined on a pre-defined Metadata Template.&#x20;
      - Name: This is required to be the name of the metadata value defined in Box. It will include the Metadata Template name that it is assoicated with. (e.g. trexMetadata.trexTextField)
      - Data Type: The type value assigned in the Box metadata definition
    - Global Metadata Value: This allows the setting of key/value pair strings to be added to a document
      - Name: This should match the metadata value of a Custom Attribute already defined on the document. it will always be prefixed with the value 'document' followed by the name of the box value (e.g. document.trexMyCustomString)


[title] IBM FileNet P8 CE
[path] l4i/Configuration/Connectors/

To Create a new IBM FileNet P8 Content Engine Connector in the L4i Configuration UI:

1. Click on the 'Connectors' Tab
2. Click on the + icon&#x20;
3. Enter the Connector URL (**https\://localhost:42422**)

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/CL8RKDqofBJ7t2ZcabRmx_image.png" size="50" width="630" height="340" position="flex-start" showCaption="false"}

### Connector Description

The IBM FileNet P8 Content Engine connector provides access to P8 object stores and the documents and folders contained within it.

IBM FileNet P8 CE v5.3x and later are supported

### Methods Included:

**Annotation Operations**

- Delete Annotation

**Document Creation**

- \<Each Document Class found in Object Store>

**Document Operations**

- Delete Document
- Fetch Document
- Update Document Properties

**Folder Creation**

- \<Each Folder Class found in Object Store>

**Folder Operations**

- Add Document To Folder
- Delete Folder
- Update Folder Properties

**Query**

- Annotation Query
- Document Query
- Document Query Information
- Folder Query
- Folder Query Information


[title] Search
[path] l4i/Configuration/Transformations/Methods/Box Connection/


[title] Metadata Search
[path] l4i/Configuration/Transformations/Methods/Box Connection/Search/

This method will perform a Box search against one or more Enterprise metadata fields.

**NOTE:&#x20;**&#x4F;nly content that the authenticated user has access to (items they can preview and/or view) will be returned in the search results.

**Input Parameters:**

- Parent Folder ID: (Optional) A folder(s) to constrain the search against. Otherwise it will search against all content the configured connection has access to
- Item Type: Allows for return of Files, Folders or Both
- Limit: Maximum number of files returned in the query
- Metadata Template Key: The Box API metadata template key to search against
- Query Expression: This is the Box API Query that will be run.&#x20;
  - For this example the value is: ***claimNumber = \:claimNumberVal***
  - ***claimNumber&#x20;***&#x69;s the metadata field that is part of the Metadata Template Key defined previously
  - **=&#x20;**&#x69;s the operator (equals) - see the online Box API documentation for additional operators supported for each data type
  - ***:claimNumberVal*** - The colon is required and the claimNumberVal is a user created parameter that will be passed in at run time
- To supply any user created run time parameters, click on the pencil in the top right of the Input Parameters section and create a new 'Query Parameter'. In this example the ***claimNumberVal&#x20;***&#x77;as created to match the value used in the Query Expression box.
  - Optionally a Sort By Field and Sort Direction can be included - ***NOTE the values are not changed on this screen but back in the main method screen***
  - Sort By Field: use the metadata template value to sort by
  - Sort Direction: choose Ascending or Descending in the dropdown

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/A5eKf9A1jo4FRmepx65cz_image.png)

**Output Entity:**

This section allows for configuration any metadata fields that should be returned into the pipeline for processing. Click on the pencil icon in the ***Output Entity*** section.

- Once in the Entity Attributes screen, drag an ***Enterprise Metadata Value*** from the left into the center secion
- Name: what you would like it to display as in the attribute list
- Binding: the exact value of the Box metadata template value (i.e. claimNumber)
- Click '***Convert Data Type***' and choose the converted data type value of the Box metadata template

The following screenshot shows an example of a configured Metadata Search method:

This will search Box for all documents where the metadata template 'claim' field 'claimStatus' has a string value of Complete. It will then sort on claimStatus and the resulting set of documents will also include the metadata values for 'claimNumber'

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/rp22DfiiKbhuPMxKWwPOn_image.png)


[title] Link Card Type 1
[path] SuccessFactors/SuccessFactors Configuration/SuccessFactors Objects/

Navigate to 'Create New' -> 'Object Definition and fill in the following values into the header section:

| Property         | Value            | Notes |
| ---------------- | ---------------- | ----- |
| Code             | d4i\_LinkCard\_1 |       |
| Effective Dating | None             |       |
| API Visibility   | Editable         |       |
| Status           | Active           |       |
| Label            | Link Card Type 1 |       |

Add the following fields to the d4i\_LinkCard\_1 object:

| Name            | Length | Data Type      | More                                               |
| --------------- | ------ | -------------- | -------------------------------------------------- |
| user            | 100    | user           | Under details, set 'Required' to 'Yes'             |
| Category        | 100    | Generic Object | Valid Values Source: cust\_Category\_LinkCard3     |
| DocumentType    | 100    | Generic Object | Valid Values Source: cust\_DocumentType\_LinkCard3 |
| Title           | 256    | String         |                                                    |
| UserID          | 38     | String         |                                                    |
| EmployeeName    | 256    | String         |                                                    |
| Country         | 128    | String         |                                                    |
| d4i\_URL        | 256    | String         |                                                    |
| d4iUploadStatus | 64     | String         |                                                    |
| CreatedDateTime | 35     | DateTime       |                                                    |
| ownerId         | 38     | String         |                                                    |
| d4i\_Status     | 64     | String         |                                                    |

Update the Security section with the following values:

| Property                        | Value                     | Notes |
| ------------------------------- | ------------------------- | ----- |
| Secured                         | Yes                       |       |
| Permission Category             | Miscellaneous Permissions |       |
| RBP Subject User Field          | cust\_user                |       |
| CREATE Respects Target Criteria | No                        |       |
| Base Date Field For Blocking    | mdfSystemEffectiveEndDate |       |






[title] API User
[path] SuccessFactors/SuccessFactors Configuration/

An API user is required for the docuflow for SuccessFactors middleware server.

Create a new user in SuccessFactors. This should be easily identifiable as an API user (i.e. apidflow)

Create a permision role for this user (i.e. apidflow\_access)

The following permissions are required for the permission role:

Employee Data:
(Employee Profile)

- Country
- Email
- Employee Id
- Manager
- User ID
  (User Information)
- Hire Date
  (Employement Details)
- Employment Details MSS
- Hire Date

General User Permission:

- SFAPI User Login
- User Login
  SAP System Configuration:
- View

Miscellaneous Permissions:

- Category Link Card 1 (view / edit)
- Category Link Card 3 (view / edit)
- Document Type Link Card 1 (view / edit)
- Document Type Link Card3 (view / edit)
- Employee Documents ( view / view history / create / insert / correct / delete)
- Employee Documents.EmployeeDocumentChild (view / correct / create / adjust order / delete)
- HR Employee Documents ( view / view history / create / insert / correct / delete)
- HR Employee Documents.HREmployeeDocumentChild (view / correct / create / adjust order / delete)
- Link Card Type 1 (View / Edit)
- Link Card Type 2 (View / Edit)
- Link Card Type 3 (View / Edit)
- Link Card Type 4 (View / Edit)
- cust\_d4iFolderLink (View / Edit)
- SAP System Configuration (View)

Manage User

- User Account oData entity

Metadata Framework

- Admin access to MDF OData API

Manage Integration Tools

- oData API Attachment Export
- Allow Admin to Access OData API through Basic Authentication

Manage System Properties

-  Picklist Management and Picklists Mappings Set Up


[title] Link Card Type 2
[path] SuccessFactors/SuccessFactors Configuration/SuccessFactors Objects/

Navigate to 'Create New' -> 'Object Definition and fill in the following values into the header section:

| Property         | Value            | Notes |
| ---------------- | ---------------- | ----- |
| Code             | d4i\_LinkCard\_2 |       |
| Effective Dating | None             |       |
| API Visibility   | Editable         |       |
| Status           | Active           |       |
| Label            | Link Card Type 2 |       |

Add the following fields to the d4i\_LinkCard\_2 object:

| Name            | Length | Data Type      | More                                               |
| --------------- | ------ | -------------- | -------------------------------------------------- |
| user            | 100    | user           | Under details, set 'Required' to 'Yes'             |
| Category        | 100    | Generic Object | Valid Values Source: cust\_Category\_LinkCard3     |
| DocumentType    | 100    | Generic Object | Valid Values Source: cust\_DocumentType\_LinkCard3 |
| Title           | 256    | String         |                                                    |
| UserID          | 38     | String         |                                                    |
| EmployeeName    | 256    | String         |                                                    |
| Country         | 128    | String         |                                                    |
| d4i\_URL        | 256    | String         |                                                    |
| d4iUploadStatus | 64     | String         |                                                    |
| CreatedDateTime | 35     | DateTime       |                                                    |
| ownerId         | 38     | String         |                                                    |
| d4i\_Status     | 64     | String         |                                                    |

Update the Security section with the following values:

| Property                        | Value                     | Notes |
| ------------------------------- | ------------------------- | ----- |
| Secured                         | Yes                       |       |
| Permission Category             | Miscellaneous Permissions |       |
| RBP Subject User Field          | cust\_user                |       |
| CREATE Respects Target Criteria | No                        |       |
| Base Date Field For Blocking    | mdfSystemEffectiveEndDate |       |






[title] Initial Configuration
[path] l4i/Installation Guide/

The base L4i installation will come pre-configured with the core system and a test filesystem connector. Additional connectors and connections will need to be configured. The main task to complete for initial setup is the configuration of certificates for these connectors.&#x20;

The L4i connectors and core components communicate through HTTPS/TLS encrypted connections. To enable these secure connections, x.509 certificates must be supplied. L4i provides mechanisms to generate these certificates.

Options when generating certificates include:

- Configuration of which connector certificates to create
- Configuration of the server IP address/DNS entry when remote connectors are required
- Creation of passwords for certificates generated

Settings are configured in the file ***\<install location>\conifg\trex-certmgr-application.json***

The ***trex-certmgr-application.json*** file contains the following sections:

## "defaults"

**&#x20;"defaults"** : this section allows settings that will be used for all certificates generated. This can be overridden in the specifics of each individual certificate section

## "master"

**"master"**: This is the section for the master keystore for all configured connectors on the system. The default settings will be sufficient for a one box installation.&#x20;

For each connector, the value for **"disabled"&#x20;**&#x73;hould be set t&#x6F;**&#x20;'false'&#x20;**&#x74;o have a certificate generated.&#x20;

If distributing a connector on a remote server, the **"san"** section can be used to define the remote server name and/or ip address.

An example snippet for the file system connector is shown below, including a "san" section.

```javascript
{
    "disabled": false,
	"alias": "trex.cnn-trex-fs.server",
		"dn": {
			"commonName": "Gimmal TRex File System Connector"
		},
        "san": {
            "dns": ["fully.qualified.name"],
            "ip": ["127.0.0.1"]
        }
}
```

## "keystores"

***"keystores":&#x20;***&#x54;he keystores section is where L4i configuration for the p12 keystore certificates is done. Each connector must have an alias entry in the section "keystore": ***"trex.cnn.keystore.p12"***. The ***"storepass"*** entry is where a password for the keystore can be configured.

The section that will need configuration is the trex.cnn.keystore.p12. This contains references to each of the connectors being used. An example of this section is shown below, with 5 connectors being setup:

```javascript
{
		"keystore": "trex.cnn.keystore.p12",
		"storepass": "<password>",
		"aliases": [ 
			"trex.cnn-trex-fs.server", 
			"trex.cnn-cm8.server",
			"trex.cnn-elst.server",
			"trex.cnn-trex-util.server",
			"trex.cnn-ibm-p8ce.server"
		]
	}
```

## "truststores"

***"truststores":*** The truststores section is where L4i configuration for the p12 truststore certificates is done. These trusts allow the connectors and core TRex components to exchange their certificates.&#x20;

Th&#x65;***&#x20;"storepass"*** entry allows for configuration of the password for the truststore.

There are two sections that will need configuration:

- trex.ngin.truststore.p12 (allows connections to the core TRex transformation engine)
- trex.cfgmgr.truststore.p12 (allows connections to the TRex configuration UI engine)

&#x20;Both of these sections contain references to each of the connectors being used. **Note**: this should match the list from the keystore section.

An example of this section is shown below, with 5 connectors being setup:

```javascript
"truststores": [
		{
			"keystore": "trex.dao.truststore.p12",
			"storepass": "<password>",
			"aliases": [ "trex.cfgmgr.server", "trex.ngin.server" ]
		},
		{
			"keystore": "trex.ngin.truststore.p12",
			"storepass": "<password>",
			"aliases": [ 
				"trex.dao.server", 
				"trex.cfgmgr.server", 
				"trex.cnn-trex-fs.server", 
				"trex.cnn-cm8.server",
				"trex.cnn-elst.server",
				"trex.cnn-trex-util.server",
				"trex.cnn-ibm-p8ce.server"
			]
		},
		{
			"keystore": "trex.cfgmgr.truststore.p12",
			"storepass": "<password>",
			"aliases": [ 
				"trex.cfgmgr.client", 
				"trex.dao.server", 
				"trex.ngin.server", 
				"trex.cnn-trex-fs.server", 
				"trex.cnn-cm8.server",
				"trex.cnn-elst.server",
				"trex.cnn-trex-util.server",
				"trex.cnn-ibm-p8ce.server"
			]
		},
		{
			"keystore": "trex.cnn.truststore.p12",
			"storepass": "<password>",
			"aliases": [ "trex.cfgmgr.server","trex.ngin.server" ]
		}
	],
```

## "exports"

***"exports":&#x20;***&#x54;he exports section configures the exported certificates for the system. Of note is the ***"privatekeys"&#x20;***&#x73;ection. This will generte a .p12 certificate that can be imported into a web browser to allow connectivity to the d4i configuration service. Set a storepass that will be used. NOTE: Here you can configurate a separate certificate/password for different environments (DEV vs PROD etc).

## start-cert-mgr.ps1

Once configuration is complete, the powershell script ***'\<install location>\start-cert-mgr.ps1***' should be run. This script will start a java application that will generate (or re-generate) the application certificates.

[title] Delete File
[path] l4i/Configuration/Transformations/Methods/Box Connection/File Operations/

This method will delete a document in Box.

**Input Parameters:**

- File ID: ID of the document in Box to delete


[title] Methods
[path] l4i/Configuration/Transformations/

The following sections describe the methods available in the listed connectors.

[title] Update File
[path] l4i/Configuration/Transformations/Methods/Box Connection/File Operations/

This method will Update an existing file in box. The method allows for either a file update, which versions the document, or an update to the Box metadata, which does not version the document.

**Input Parameters:**

- File ID: ID of the document to update
- File Content: (Optional - when provided versions the document)&#x20;
- Metadata Values: These are the values for either Enterprise Metadata (defined in a metadata template) or Global Metadata (string value pairs directly attributed to a document)
  - Click on the pencil icon in the top right to edit the definition of metadata
  - Drag an 'Available Parameter' from the Available Parameters to the middle section called 'Defined Parameters'
  - There are three types of Parameters
    - Description: This allows the setting of the description on the document. No additional configuration/naming is required. The name should be left as 'Description' and the datatype left as 'String'
    - Enterprise Metadata Value: This allows setting of Enterprise Metadata that is defined on a pre-defined Metadata Template.&#x20;
      - Name: This is required to be the name of the metadata value defined in Box. It will include the Metadata Template name that it is assoicated with. (e.g. trexMetadata.trexTextField)
      - Data Type: The type value assigned in the Box metadata definition
    - Global Metadata Value: This allows the setting of key/value pair strings to be added to a document
      - Name: This should match the metadata value of a Custom Attribute already defined on the document. it will always be prefixed with the value 'document' followed by the name of the box value (e.g. document.trexMyCustomString)


[title] Transformations
[path] l4i/Configuration/

Transformations allow for configuration and sequencing of the methods provided by the connectors/connections used in the solution.

[title] SuccessFactors App Setup
[path] SuccessFactors/BTP Configuration/

In this section, the HTML5 applications will be configured in SuccessFactors.

Log into SuccessFactors with an Administrative account and navigate to the **Extension Center**

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/yg_Xw9MgEggO24JHcGw0o_image.png" size="80" width="1300" height="250" position="flex-start" showCaption="false"}

Navigate to the **'Extensions on SAP BTP'** tab and click on the **'link'** under **'SAP Cloud Portal URL'**

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/-8VFPzuvkY-zyerpLOZ8v_image.png)

The SuccessFactors **Extension Directory** will open. Click on the giant plus button.

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/GFyERi75AKMNBPevjz8Kj_image.png" size="48" width="1300" height="578" position="flex-start" showCaption="false"}

Set the following values for the new Extension and click the **'Create'** button

- Extension Name: **Document Search**
- Template Source: **SuccessFactors Extensions**
- Choose **Single App Extension**

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/iSkOXaLl-bW6LnPPG9ZYL_image.png)

Once the Extension has been created, navigate to **Content Management -> Apps** and click the ***Edit&#x20;***&#x62;utton

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/j7nGdExFBns--_bEm3hVr_image.png)

Choose the registered application from the BTP Platform (sfdocumentsearch)

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/YwFIxVpBZCq_aMbPNh7ZU_image.png" size="80" width="1300" height="379" position="flex-start" showCaption="false"}

After selection the BTP Application click **SAVE**

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/XPgvwkojM7iQlD-hv-Lsk_image.png" size="90" width="1300" height="856" position="flex-start" showCaption="false"}

Next, navigate to **'Menu Editor'** and click the **edit&#x20;**&#x70;encil icon

![](https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/G5KSyu5VbP-YOsb5ufCas_image.png)

Set the display name to 'Document Search' and click the 'Save' button

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/YiM6vdwf8eG-wm3RhZYBG_image.png" size="30" width="1300" height="1865" position="flex-start" showCaption="false"}

After updating the menu display name, click the **'Save'** button in the lower right. You can now close the 'Menu Editor' browser tab and return to the **'Extension Directory'**

Select your new Extension, click the **'Edit'** button and select **'Publish'**

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/379E0zciDvn1OfP_5DhKE_image.png" size="90" width="1300" height="770" position="flex-start" showCaption="false"}

### Custom Navigation Menu Setup

Next, register the Extension with the Custom Navigation in SuccessFactors

Navigate to the '**Configure Custom Navigation**' in SuccessFactors admin tools

Add a new line with the following values:

- Menu Item Label: Document Search
- ID: \<next unused value>
- Link Type: External Link - New Tab/Window
- URL: Copy from the Extension Published&#x20;

::Image[]{src="https://archbee-image-uploads.s3.amazonaws.com/1hH4CNQG9tP4YS-TB-TC6/l9UxiWeNBsRFdxTC41KK0_image.png" size="30" width="1300" height="1049" position="flex-start" showCaption="false"}

- Menu Location: \<select where the menu should appear>
- Permissions: \<select groups to see menu option>

<u>**NEXT Complete all of the Above Steps for the 'My Documents' application**</u>


[title] Import Category and Document Types
[path] SuccessFactors/SuccessFactors Configuration/

Use these instructions to use a set of CSV files to use to import the Categories and Document types into the system

### For Employee Document Upload Rules/Categories:

Go to **'Import and Export Data'**

For Categories:

- Select the action to perform: Import Data
- Select Generic Object: Category
- File: CSV with your Category Data
- Purge Type: Incremental Load
- Click 'Import'

To check the imported data:

Go to '**Manage Data**'

- Under '**Search**' select Category
- Under the selection dropdown, the values should be shown

Complete the above steps for:

- Category Link Card 1.csv
- Category Link Card 3.csv
- Document Type Link Card 1.csv
- Document Type Link Card 3.csv
- Document Type Link Card 1-category.csv
- Document Type Link Card3-CategoryLinkCard3.csv


[title] Permission Provisioning
[path] SuccessFactors/SuccessFactors Configuration/

Navigate to the Admin tool '**Manage Permission Roles**'

### Employee Self Service Permissions to Objects

Apply Document Upload to People Profile

- Select 'ESS' Role
- Select 'Permission...'
- Select 'Employee Views'
- Check 'Document Upload'

Apply Permissions to Objects

- Select 'ESS'
- Select 'Permission...'
- Select 'Miscellaneous Permissions'
- Set the following Values:

| Name                                      | Setting               | Notes                                                                                  |
| ----------------------------------------- | --------------------- | -------------------------------------------------------------------------------------- |
| Category Link Card 1                      | View                  |                                                                                        |
| Document Type Link Card1                  | View                  |                                                                                        |
| Employee Documents                        | View / Create         |                                                                                        |
| Employee Documents.EmployeeDocument Child | View Current / Create | Field Overrides<br />Collection Type Value : No Access<br />d4iUploadStatus: No Access |
| Link Card Type 1                          | View                  |                                                                                        |
| Link Card Type 4                          | View                  |                                                                                        |

### Manager Self Service Permissions to Objects

- Select 'MSS'
- Select 'Permission...'
- Select 'Miscellaneous Permissions'
- Set the following Values:

| Name                     | Setting | Notes |
| ------------------------ | ------- | ----- |
| Category Link Card 3     | View    |       |
| Document Type Link Card3 | View    |       |
| Link Card Type 1         | View    |       |
| Link Card Type 2         | View    |       |

### HRBP Permissions to Objects

- Select 'HRBP Role'
- Select 'Permission...'
- Select 'Miscellaneous Permissions'
- Set the following Values:

| Name                                          | Setting                                                 | Notes                                                                                      |
| --------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------------------------------------------ |
| Category Link Card 1                          | View                                                    |                                                                                            |
| Category Link Card 3                          | View                                                    |                                                                                            |
| Document Type Link Card 1                     | View                                                    |                                                                                            |
| Document Type Link Card 3                     | View                                                    |                                                                                            |
| HR Employee Documents                         | View Current / View History / Create / Correct / Delete |                                                                                            |
| HR Employee Documents.HREmployeeDocumentChild | View / Correct / Create / Delete                        | **Field Overrides**<br />Collection Type Value : No Access<br />d4iUploadStatus: No Access |
| Link Card Type 1                              | View / Edit                                             |                                                                                            |
| Link Card Type 2                              | View / Edit                                             |                                                                                            |
| Link Card Type 3                              | View / Edit                                             |                                                                                            |
| Link Card Type 4                              | View / Edit                                             |                                                                                            |



### Client Administrator Permissions to Objects

- Select 'Client Administrators Role'
- Select 'Permission...'
- Select 'Miscellaneous Permissions'
- Set the following Values:

| Name                                          | Setting                                                 | Notes                                                                                      |
| --------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------------------------------------------ |
| Category Link Card 1                          | View                                                    |                                                                                            |
| Category Link Card 3                          | View                                                    |                                                                                            |
| Document Type Link Card 1                     | View                                                    |                                                                                            |
| Document Type Link Card 3                     | View                                                    |                                                                                            |
| HR Employee Documents                         | View Current / View History / Create / Correct / Delete |                                                                                            |
| HR Employee Documents.HREmployeeDocumentChild | View / Correct / Create / Delete                        | **Field Overrides**<br />Collection Type Value : No Access<br />d4iUploadStatus: No Access |
| Link Card Type 1                              | View / Edit                                             |                                                                                            |
| Link Card Type 2                              | View / Edit                                             |                                                                                            |
| Link Card Type 3                              | View / Edit                                             |                                                                                            |
| Link Card Type 4                              | View / Edit                                             |                                                                                            |


[title] UI Configuration
[path] SuccessFactors/SuccessFactors Configuration/

This step will place the 'Upload Documents' portal option for the Workflow approval in the Employee File UI interface

### Configure UI Element

Navigate to the admin tool '**Manage Configuration UI**'

### Employee Documents

Create **Employee Documents**

- Click on 'Create New'
- Select '**Employee Documents**' in the Select Base Object
- Set the ID to '**Employee Documents Parent**'
- Click SAVE

Complete the following configuration:

- Employee Documents Header Element : Title Type User Defined = Employee Documents: (NOTE Set Translations as well)
- externalCode : Visible = No
- externalName : Visible = No
- effectiveStartDate : Visible = No
- In the Child Documents Header Section
  - Document Header : Title Type User Defined = Document (NOTE Set Translations as well)
  - Visible Fields Count = 8
  - Set Order of Properties: Document Category, Document Type, attachment
    - Hide the other fields

### HR Employee Documents

Create **HR Employee Documents**

- Click on 'Create New'
- Select '**HR Employee Documents**' in the Select Base Object
- Set the ID to '**HR Employee Documents Parent**'
- Click SAVE

Complete the following configuration:

- HR Employee Documents Header Element : Title Type User Defined = HR Employee Documents: (NOTE Set Translations as well)
- externalCode : Visible = No
- externalName : Visible = No
- effectiveStartDate : Visible = No
- In the Child Documents Header Section
  - Document Header : Title Type User Defined = Document (NOTE Set Translations as well)
  - Visible Fields Count = 8
  - Set Order of Properties: Document Category, Document Type, attachment
    - Hide the other fields

### Configure People Profile

Navigate to the admin tool '**Configure People Profile**'

Click on '**Add New Section**' to insert a new UI section into the Employee Profile Screen

- Name the Section ***Document Upload***'&#x20;
- Name the Sub-Section: ***Documents***

Click on the Left side area&#x20;

- Drop a 'Live Profile MDF Information' block
- Set the **MDF Screen ID** to '***Employee Document Parent***'

Click on the Right side area&#x20;

- Drop a 'Live Profile MDF Information' block
- Set the **MDF Screen ID** to '***HR Employee Document Parent***'
- Save


[title] Export Category and Document Type
[path] SuccessFactors/SuccessFactors Configuration/

Use these instructions to get a set of CSV files to use to import the Categories and Document types into the system

### For Employee Document Upload Rules/Categories:

Go to **'Import and Export Data'**

For Categories:

- Select the action to perform: Download Template
- Select Generic Object: Category LInk Card 1
- Include dependencies: No
- Click 'Download'

For Document Type LinkCard1:

- Select the action to perform: Download Template
- Select Generic Object: Document Type LinkCard 1
- Include dependencies: No
- Click 'Download'

For the Relationship between Category and Document Types for Link Card 1

- Select the action to perform: Download Template
- Select Generic Object: Document Type LinkCard 1 - Category
- Include dependencies: No
- Click 'Download'

### For HR Document Upload Rules/Categories:

Go to **'Import and Export Data'**

For Categories:

- Select the action to perform: Download Template
- Select Generic Object: Category
- Include dependencies: No
- Click 'Download'

For Document Type LinkCard3:

- Select the action to perform: Download Template
- Select Generic Object: Document Type LinkCard 3
- Include dependencies: No
- Click 'Download'

For the Relationship between Category and Document Types for Link Card 3

- Select the action to perform: Download Template
- Select Generic Object: Document Type LinkCard 3 - Category
- Include dependencies: No
- Click 'Download'

