Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Expand
titleHow to switch to classic D365 viewer

Click SolutionsAPSD...Switch to classic

Expand
titleResetting an environment (Clean slate)
Note

Recommend having the owner of each custom connector delete them in the environment before resetting. In order to do this, will need to delete the flows, canvas app, & any other dependencies.

  1. Go to the https://admin.powerplatform.microsoft.com/environments.

  2. Select the environment you wish to reset.

  3. Click on Reset in the top menu bar.

  4. Ensure that the Name and URL are correct (this is the time to change it if required).

  5. Change the Currency to CAD ($).

  6. Click Reset. It will take 15-20 minutes for the refresh to finish.

  7. Once complete, click on the environment name to view its details.

  8. Click on Edit in the top right corner of the Details section.

  9. Ensure that Administration mode is disabled (otherwise, only system admins will have access).

  10. Grant system administrator access to other developers as needed (see next section).

Expand
titleGranting system administrator access to other developerssecurity roles to users
  1. Go to https://admin.powerplatform.microsoft.com/environments/d4af4054-dad9-431a-8a39-527b4b690886/securityroles/d875496e-3318-ec11-b6e5-000d3a09d85b/members and select the desired environment.

  2. In the Access section, click See all under Security roles.

  3. Scroll down to System Administrator desired role and click on it.

  4. Click + Add people, search for the user then click Add.

Expand
titleAzure Portal Set Upsetup

App Registration

Must be added as an application user in the PowerApps environment in order to access NAPA API (security controls). Also required for pipelines and as a service principal account in APSD (Dataverse connection).

APSD-PAPS-USERS Group

Used as a security group for the Canvas app as well as for the SharePoint translation list.

Key vault

Used for NAPA-SNAPA API secrets and MTOA JWT token.

...

Expand
titleCreating Connections for Do Not Reply APSD / Ne Pas Répondre PAPS
Note

Perform the steps in this section in a FireFox browser. For some reason, Chrome auto-signs in to your personal account.

  1. Go to https://myaccount.microsoft.com/, click on your profile icon in the top right corner and select Sign in with a different account.

  2. Click + Use another account.

  3. Log in to DoNotReplyAPSD-NePasRepondrePAPS@tc.gc.ca (info in RDIMS 17999814).

  4. In the same browser, go to Power Apps Studio and login as your own account.

  5. Click on Data/Dataverse > Connections in the side menu.

  6. Click on + New connection and select Office 365 Outlook.

  7. Click Create and select the Do Not Reply APSD account that you signed into in Step 3.

  8. Repeat Steps 6-7 for the Office 365 Groups and Excel Online (Business) connections.

You should now have the following connections set up

Expand
titleCreating custom connectors in new environment - DEV ONLY
Note

Only for the DEV environment

  1. Clone the APSD-PAPS repository to your local computer.

  2. On the left hand menu, navigate to DataCustom Connectors.

  3. Click on + New custom connectorImport an OpenAPI file.

  4. In the Connector name field, type “NAPA-SNAPA”.

  5. Click Import and go to \repos\APSD-PAPS\Custom Connectors\JSON and select the NAPA-SNAPA.json file.

  6. Click Continue.

  7. Verify that the Host and Base URL point to the correct location for the environment you are in (refer to chart below).

  8. For NAPA API only: Set up OAuth security

  9. Click Create connector.

  10. Click on the Test tab, then + New connection.

  11. Enter the API Key (RDIMS 17999814) and click Create connection.

  12. Repeat steps 3-10 to create the rest of the connectors using their json files (SIAPI, SPAPI, MTAPI & TMAPI). *Note: SIAPI doesn’t require an API Key.

  13. On the left hand menu, navigate to DataConnections.

  14. For each connection, share them with the organization.

    • Click ...Share+ Add everyone in my orgSave.

    • This must be done so that any changes to the API Key get shared to all users. The update should be instant, if users are not receiving the updated key, they will need to clear their browser’s cache.

    • Give edit access to TC-CivAv Azure group.

Migrating the Application Between Environments

Name: Timesheet rejected - Send email notification

Description: This Power Automate Flow triggers when the “ap_timesheetstatus” field is modified to “Rejected”. The flow sends an email to the submitter.

Name: Expense rejected - Send email notification

Description: This Power Automate Flow triggers when the “ap_expensestatus” field is modified to “Rejected”. The flow sends an email to the submitter.

Name: Invoice rejected - Send email notification

Description: This Power Automate Flow triggers when the “ap_invoicestatus” field is modified to “Rejected”. The flow sends an email to the submitter.

Name: Flow - Push Approved Time Entries To CRSM

Description: This Power Automate Flow triggers when the “ap_timsheetstatus” field is modified to “Approved”. The flow uses the “TMAPI” custom connector, specifically the following end points: 

Add a time entry

To add a time entry, the flow gets all the rows where the current timesheet is approved from the “Time Entries” table filtered via a FetchXML query to only get the rows where “Added to CRSM” is false and hours are not empty or null. Here’s the query:

Expand
Expand
titleRejected Email Notifications
Expand
titleTimesheet Approval – Add to CRSM 
Code Block
languagexml
<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false">
  <entity name="ap_timeentry">
    <attribute name="ap_timeentryid" />
    <attribute name="ap_timeid" />
    <attribute name="createdon" />
    <order attribute="ap_timeid" descending="false" />
    <filter type="and">
      <condition attribute="ap_addedtocrsm" operator="eq" value="0" />
      <condition attribute="ap_timesheet" operator="eq" uitype="ap_timesheet" value="{@{triggerOutputs()?['body/ap_timesheetid']}}" />
      <condition attribute="ap_employeelogin" operator="eq" value="@{triggerOutputs()?['body/ap_employeelogin']}" />
      <condition attribute="ap_timecard" operator="eq" value="@{triggerOutputs()?['body/ap_reportingperiod']}" />
      <condition attribute="ap_timeentryhours" operator="not-null" />
    </filter>
  </entity>
</fetch>
  • Create a time entry record in the CRSM database.

    Image Removed
  • Add hours to time entry

    This endpoint is used to create a record for adding hours for the time entry that was created in the previous step. Depending upon the “ap_timeentrytype” i.e.
    titleMicrosoft Bug: Cannot share custom connectors contained within a solution (Workaround - FAILED)
    Warning

    Not an issue anymore as custom connectors do not need to be shared explicitly if included in a solution.

    There is a bug with D365 that doesn’t allow sharing of custom connectors if they are included in a solution. This means that other developers cannot edit the custom connector.

    Workaround: https://youtu.be/ROKO589RBnQ

    1. Go to DataTablesConnector table → Data tab.

    2. Select the connector and click on Edit Record.

    3. Click SHAREAdd User/Team → Select Team in the Look for dropdown.

    4. Check off the team that is named after the environment.

    5. Click SelectAdd.

    6. Ensure that they only have Read access (for other users, refer to chart below).

      Image Removed
    7. Click Share.

      Image Removed

    Migrating the Application Between Environments

    Expand
    titleExport the solution

    Data will not be migrated between environments through the solution. You will need to perform data migration separately following the steps below.

    1. Open the Power Apps Studio and select the environment you are migrating from.

    2. Click on Solutions in the side menu, then click Publish all customizations in the top menu bar.

    3. Select the APSD solution.

    4. Click ExportNext.

    5. Increase version number as applicable, and select Managed, then click on Export.

    6. Repeat steps 3-5 with the APSD-PAPS Env Variables, APSD-PAPS Flows and APSD-PAPS Custom Connectors solutions but export them as Unmanaged.

      • Any future deployments will only require the APSD and Flows solutions to be migrated.

      • EXCEPTION: Custom Connectors solution must only be migrated if there are any changes to the existing custom connectors or a new custom connector is added.

      • EXCEPTION: Env Variables solution must only be migrated if new environment variables are added.

    Info

    The Canvas apps are inside the APSD-PAPS Flows solution.

    Expand
    titleImport the solution
    Info

    Solution Import Order Must be followed or else will break dependencies
    APSD-PAPS Env Variables > APSD-PAPS Custom Connectors > APSD > APSD-PAPS Flows

    Env Variables & Custom Connectors solutions only have to be imported if there are changes.

    1. Click on Solutions on the left-hand menu and then Import in the top menu bar.

    2. Select Browse and point to the zip file, e.g. APSD_PAPS_EnvVariables_1_0_0_X.zip, created in the export solution steps. "X" will be the current iteration number at the time of deployment.

      • Only import the exported solutions from the previous section.

    3. New environments only, once Custom Connectors solution is imported:

      • Clone the APSD-PAPS repository to your local computer.

      • Go into the APSD-PAPS Custom Connector solution.

      • Click on + New > Automation > Custom connector

        Image Removed
      • Enter in the info as follows:

        • Connector Name: NAPA-SNAPA

        • Host: www

      • Click Create connector

      • On the left-hand menu, click on Data/Dataverse > Custom connectors

      • Beside the NAPA-SNAPA connector, click ... > Update from OpenAPI file.

        Image Removed
      • Click Import and go to \repos\APSD-PAPS\Custom Connectors\JSON and select the NAPA-SNAPA.json file.

      • Click Continue.

      • Toggle the Swagger Editor ON > OFF.

      • Go to the Security tab and enter in the information as per RDIMS 17999814.

      • Click Update connector.

      • Click on the Test tab, then + New connection.

      • Click X Close.

      • For the rest of the connectors, edit them and go to the Test tab, then click + New connection (API key are in RDIMS 17999814).

      • On the left-hand menu, click on Data/Dataverse > Connections.

      • For the MTAPI, SPAPI & TMAPI connections, share them with the organization.

        • Click ...Share+ Add everyone in my orgSave.

        • This must be done so that any changes to the API Key get shared to all users. The update should be instant, if users are not receiving the updated key, they will need to clear their browser’s cache.

        • Give edit access to TC-CivAv Azure group.

          Image Removed
    4. New environments (when importing the Flows solution):

      • Make sure the CivAv APSD Service Principal Dataverse connection has been created (see steps above).

      • Click Next twice then select the CivAv APSD Service Principal connection for Dataverse and the shared connections for the APIs.

      • For the Office 365 and Excel Online connections, select the Do Not Reply APSD / Ne Pas Répondre PAPS connection created earlier.

        Image Removed
    5. Click Import and wait for the process to finish.

    6. Import the rest of the solutions as needed.

    7. Click on Publish all customizations.

    8. New environments: Share the APSD-PAPS Canvas App with Everyone in TC. Uncheck the box at the bottom “Send an email invitation to new users”.

      Image Removed
    9. New environments: Assign a security role to yourself in order to test the application through Advanced Settings.

      Image Removed

    If importing the APSD Custom Connectors solution:
    Even if there are no edits to make, you must still click on Update Connector for it to connect properly.

    Expand
    titleUpdate connectors and dropdowns in the Canvas app - NO LONGER REQUIRED
    Warning

    IGNORE THIS SECTION
    Not necessary anymore now that the custom connectors are inside solutions.

    1. Edit the APSD-PAPS Canvas app.

    2. When prompted, select Don't Allow.

    3. Image Removed

      Remove all connections that are showing as not connected - 5 connections (APSR, MTAPI, SIAPI, SPAPI, TMAPI), Office365Users and APSD_Translations.

      Image Removed
    4. Add all of them back.

      Image Removed
    5. SharePoint data connector: for APSD_Translation file. In the box enter the following URL: https://034gc.sharepoint.com/sites/DSD-CivilAviation/Lists/APSD_Translations/AllItems.aspx

      Image Removed
    6. Check off the APSD_Translations list & click Connect.

      Image Removed
    7. Run the App Checker and ensure no errors are reported.

      Image Removed
    8. Turn on “Allow searching” in the properties for the following elements:

      • New Service Request Step One Screen - cboNapaProject element

        Image Removed
      • New Service Request Step Three Contact Info Screen - cboFindOrganizationAlt element

        Image Removed
      • Service Request Review Screen - ddSRRChangeReAssignment element

        Image Removed
      • New Invoice Step One Screen - cboInvoiceCustomer and cboCustomerAddress elements

        Image Removed
      • Weekly Time Entry Normalized Screen - cmbProject

        Image Removed
    9. Save and Publish the app.

    Importing/Migrating Data

    When setting up a new environment, all lookup data must be brought into the environment. This can be done either through creating a dataflow to migrate data between environments or by importing the data from an Excel spreadsheet.

    Expand
    titleImporting SCRAM task data
    Info

    Alternative solution: Follow https://docs.microsoft.com/en-us/powerapps/developer/data-platform/dataverse-odata-dataflows-migration to create a dataflow to migrate the data between environments. This currently exists for QA → ACC.

    1. Go to the environment that has the master set of data for the SCRAM tasks. Currently, this is QA.

    2. On the left menu, go to DataTables, then open the Scram Tasks table.

    3. On the top menu, click on DataExport data. Once the export has been successfully completed, click on Download exported data.

    4. Unzip the csv file.

    5. Switch to the environment you are deploying to.

    6. On the left menu, go to DataTables, then open the Scram Tasks table.

    7. On the top menu, click on Data> beside Get dataGet data from Excel.

      Image Removed
    8. Upload the csv file from step 4. If there are any mapping issues, fix them.

      Image Removed
    9. Click Import. Wait for the process to complete, then verify that the data was imported.

    Expand
    titleImporting AP task data 

    Follow the same steps for Importing SCRAM task data using the AP Task table instead.

    Flows

    The service principal account should be used for all connections to the DataVerse.

    Export the solution

    Data will not be migrated between environments through the solution. You will need to perform data migration separately following the steps below.

    1. Open the Power Apps Studio and select the environment you are migrating from.

    2. Click on Solutions in the side menu, then click Publish all customizations in the top menu bar.

    3. Select the APSD solution.

    4. Click ExportNext.

    5. Increase version number as applicable, and select Managed, then click on Export.

    6. Repeat steps 3-5 with the APSD-PAPS Env Variables, APSD-PAPS Flows and APSD-PAPS Custom Connectors solutions but export them as Unmanaged.

      • Any future deployments will only require the APSD and Flows solutions to be migrated.

      • EXCEPTION: Custom Connectors solution must only be migrated if there are any changes to the existing custom connectors or a new custom connector is added.

      • EXCEPTION: Env Variables solution must only be migrated if new environment variables are added.

    Info

    The Canvas apps are inside the APSD-PAPS Flows solution.

    Expand
    titleImport the solution
    Info

    Solution Import Order Must be followed or else will break dependencies
    APSD-PAPS Env Variables > APSD-PAPS Custom Connectors > APSD > APSD-PAPS Flows

    Env Variables & Custom Connectors solutions only have to be imported if there are changes.

    1. Click on Solutions on the left-hand menu and then Import in the top menu bar.

    2. Select Browse and point to the zip file, e.g. APSD_PAPS_EnvVariables_1_0_0_X.zip, created in the export solution steps. "X" will be the current iteration number at the time of deployment.

      • Only import the exported solutions from the previous section.

    3. New environments only, once Custom Connectors solution is imported:

      • Clone the APSD-PAPS repository to your local computer.

      • Go into the APSD-PAPS Custom Connector solution.

      • Click on + New > Automation > Custom connector

        Image Added
      • Enter in the info as follows:

        • Connector Name: NAPA-SNAPA

        • Host: www

      • Click Create connector

      • On the left-hand menu, click on Data/Dataverse > Custom connectors

      • Beside the NAPA-SNAPA connector, click ... > Update from OpenAPI file.

        Image Added
      • Click Import and go to \repos\APSD-PAPS\Custom Connectors\JSON and select the NAPA-SNAPA.json file.

      • Click Continue.

      • Toggle the Swagger Editor ON > OFF.

      • Go to the Security tab and enter in the information as per RDIMS 17999814.

      • Click Update connector.

      • Click on the Test tab, then + New connection.

      • Click X Close.

      • For the rest of the connectors, edit them and go to the Test tab, then click + New connection (API key are in RDIMS 17999814).

      • On the left-hand menu, click on Data/Dataverse > Connections.

      • For the MTAPI, SPAPI & TMAPI connections, share them with the organization.

        • Click ...Share+ Add everyone in my orgSave.

        • This must be done so that any changes to the API Key get shared to all users. The update should be instant, if users are not receiving the updated key, they will need to clear their browser’s cache.

        • Give edit access to TC-CivAv Azure group.

          Image Added
    4. New environments (when importing the Flows solution):

      • Make sure the CivAv APSD Service Principal Dataverse connection has been created (see steps above).

      • Click Next twice then select the CivAv APSD Service Principal connection for Dataverse and the shared connections for the APIs.

      • For the Office 365 and Excel Online connections, select the Do Not Reply APSD / Ne Pas Répondre PAPS connection created earlier.

        Image Added
    5. Click Import and wait for the process to finish.

    6. Import the rest of the solutions as needed.

    7. Click on Publish all customizations.

    8. New environments: Share the APSD-PAPS Canvas App with Everyone in TC. Uncheck the box at the bottom “Send an email invitation to new users”.

      Image Added
    9. New environments: Assign a security role to yourself in order to test the application through Advanced Settings.

      Image Added

    If importing the APSD Custom Connectors solution:
    Even if there are no edits to make, you must still click on Update Connector for it to connect properly.

    Expand
    titleUpdate connectors and dropdowns in the Canvas app - NO LONGER REQUIRED
    Warning

    IGNORE THIS SECTION
    Not necessary anymore now that the custom connectors are inside solutions.

    1. Edit the APSD-PAPS Canvas app.

    2. When prompted, select Don't Allow.

    3. Image Added

      Remove all connections that are showing as not connected - 5 connections (APSR, MTAPI, SIAPI, SPAPI, TMAPI), Office365Users and APSD_Translations.

      Image Added
    4. Add all of them back.

      Image Added
    5. SharePoint data connector: for APSD_Translation file. In the box enter the following URL: https://034gc.sharepoint.com/sites/DSD-CivilAviation/Lists/APSD_Translations/AllItems.aspx

      Image Added
    6. Check off the APSD_Translations list & click Connect.

      Image Added
    7. Run the App Checker and ensure no errors are reported.

      Image Added
    8. Turn on “Allow searching” in the properties for the following elements:

      • New Service Request Step One Screen - cboNapaProject element

        Image Added
      • New Service Request Step Three Contact Info Screen - cboFindOrganizationAlt element

        Image Added
      • Service Request Review Screen - ddSRRChangeReAssignment element

        Image Added
      • New Invoice Step One Screen - cboInvoiceCustomer and cboCustomerAddress elements

        Image Added
      • Weekly Time Entry Normalized Screen - cmbProject

        Image Added
    9. Save and Publish the app.

    Importing/Migrating Data

    When setting up a new environment, all lookup data must be brought into the environment. This can be done either through creating a dataflow to migrate data between environments or by importing the data from an Excel spreadsheet.

    Expand
    titleImporting SCRAM task data
    Info

    Alternative solution: Follow https://docs.microsoft.com/en-us/powerapps/developer/data-platform/dataverse-odata-dataflows-migration to create a dataflow to migrate the data between environments. This currently exists for QA → ACC.

    1. Go to the environment that has the master set of data for the SCRAM tasks. Currently, this is QA.

    2. On the left menu, go to DataTables, then open the Scram Tasks table.

    3. On the top menu, click on DataExport data. Once the export has been successfully completed, click on Download exported data.

    4. Unzip the csv file.

    5. Switch to the environment you are deploying to.

    6. On the left menu, go to DataTables, then open the Scram Tasks table.

    7. On the top menu, click on Data> beside Get dataGet data from Excel.

      Image Added
    8. Upload the csv file from step 4. If there are any mapping issues, fix them.

      Image Added
    9. Click Import. Wait for the process to complete, then verify that the data was imported.

    Expand
    titleImporting AP task data 

    Follow the same steps for Importing SCRAM task data using the AP Task table instead.

    Flows

    The service principal account should be used for all connections to the DataVerse.

    Expand
    titleRejected Email Notifications

    Name: Timesheet rejected - Send email notification

    Description: This Power Automate Flow triggers when the “ap_timesheetstatus” field is modified to “Rejected”. The flow sends an email to the submitter.

    Name: Expense rejected - Send email notification

    Description: This Power Automate Flow triggers when the “ap_expensestatus” field is modified to “Rejected”. The flow sends an email to the submitter.

    Name: Invoice rejected - Send email notification

    Description: This Power Automate Flow triggers when the “ap_invoicestatus” field is modified to “Rejected”. The flow sends an email to the submitter.

    Expand
    titleTimesheet Approval – Add to CRSM 

    Name: Flow - Push Approved Time Entries To CRSM

    Description: This Power Automate Flow triggers when the “ap_timsheetstatus” field is modified to “Approved”. The flow uses the “TMAPI” custom connector, specifically the following end points: 

    1. Add a time entry

      1. To add a time entry, the flow gets all the rows where the current timesheet is approved from the “Time Entries” table filtered via a FetchXML query to only get the rows where “Added to CRSM” is false and hours are not empty or null. Here’s the query:

        Code Block
        languagexml
        <fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false">
          <entity name="ap_timeentry">
            <attribute name="ap_timeentryid" />
            <attribute name="ap_timeid" />
            <attribute name="createdon" />
            <order attribute="ap_timeid" descending="false" />
            <filter type="and">
              <condition attribute="ap_addedtocrsm" operator="eq" value="0" />
              <condition attribute="ap_timesheet" operator="eq" uitype="ap_timesheet" value="{@{triggerOutputs()?['body/ap_timesheetid']}}" />
              <condition attribute="ap_employeelogin" operator="eq" value="@{triggerOutputs()?['body/ap_employeelogin']}" />
              <condition attribute="ap_timecard" operator="eq" value="@{triggerOutputs()?['body/ap_reportingperiod']}" />
              <condition attribute="ap_timeentryhours" operator="not-null" />
            </filter>
          </entity>
        </fetch>

      2. Create a time entry record in the CRSM database.

        Image Added
    2. Add hours to time entry

      1. This endpoint is used to create a record for adding hours for the time entry that was created in the previous step. Depending upon the “ap_timeentrytype” i.e. “Regular”, “Travel” or “Other”, corresponding action is called. 

    3. At the end of the flow, the flag “Added to CRSM” is set to true in the Time Entries table. 

    Push Time Entry to CRSM Step inside flow

    TypeCode: Regular (REG), Travel (TH), Other (DH)

    Code Block
    [
      {
        "ServiceRequestId": @{int(variables('ServiceRequestID'))},
        "ServiceId": @{outputs('Get_a_row_by_ID')?['body/ap_serviceid']},
      {     "ServiceRequestIdApproverNetworkId": @{int(variables('ServiceRequestID'))triggerOutputs()?['body/ap_approvedby']},
        "ServiceIdComment": @{outputsitems('Get_a_row_by_IDApply_to_each_-_Push_to_CRSM')?['body/ap_serviceidcomments']},
        "ApproverNetworkIdSubmitterNetworkId": @{triggerOutputs(items('Apply_to_each_-_Push_to_CRSM')?['body/ap_approvedbyemployeelogin']},
        "CommentDateTime": @{items('Apply_to_each_-_Push_to_CRSM')?['ap_commentstimeentrydate']},
        "Hours": [
       "SubmitterNetworkId   {
            "Quantity": @{items('Apply_to_each_-_Push_to_CRSM')?['ap_employeelogintimeentryhours']},
        "DateTime    "TypeCode": "REG",
            "IsBillable": @{items('Apply_to_each_-_Push_to_CRSM')?['ap_timeentrydatebillable']},},
            "HoursStatusCode": [2
          {}
        ]
       "Quantity": @{items('Apply_to_each_-_Push_to_CRSM')?['ap_timeentryhours']},
            "TypeCode": "REG",
            "IsBillable": @{items('Apply_to_each_-_Push_to_CRSM')?['ap_billable']},
            "StatusCode": 2
          }
        ]
      }
    ]
    Expand
    titleImporting Users and Setting Roles
    Name:Flow – Import Users and Roles

    Description: This Power Automate Flow can be manually triggered to import users from an Excel file (see screenshot below) into the Dynamics 365 “Users” table in the target environment. The Flow also associates users with their managers as listed in the Excel file and assigns them the roles as per the Excel file. This Excel file can be stored on the executing user’s OneDrive.  

    Image RemovedImage Removed
    }
    ]
    Expand
    titleImporting Users and Setting Roles

    Name:Flow – Import Users and Roles

    Description: This Power Automate Flow can be manually triggered to import users from an Excel file (see screenshot below) into the Dynamics 365 “Users” table in the target environment. The Flow also associates users with their managers as listed in the Excel file and assigns them the roles as per the Excel file. This Excel file can be stored on the executing user’s OneDrive.  

    Image AddedImage Added

    Archived Sections

    Expand
    titleMicrosoft Bug: Cannot share custom connectors contained within a solution (Workaround - FAILED)
    Warning

    Not an issue anymore as custom connectors do not need to be shared explicitly if included in a solution.

    There is a bug with D365 that doesn’t allow sharing of custom connectors if they are included in a solution. This means that other developers cannot edit the custom connector.

    Workaround: https://youtu.be/ROKO589RBnQ

    1. Go to DataTablesConnector table → Data tab.

    2. Select the connector and click on Edit Record.

    3. Click SHAREAdd User/Team → Select Team in the Look for dropdown.

    4. Check off the team that is named after the environment.

    5. Click SelectAdd.

    6. Ensure that they only have Read access (for other users, refer to chart below).

      Image Added
    7. Click Share.

      Image Added