In the integration layer we offer configurability when it comes to which entities are synchronized with the DMS (through ODIL). The setup of the entity actions that can be enabled or disabled through the dedicated page OneDealer offers.

Prerequisites

  1. Setup key EnableTRIntegrationLayer has to be enabled
  2. By default, we synchronize all entity actions to the DMS, ie. only the explicitly defined disabled actions will be prevented from accessing ODIL.

Page URL

~/SetupEntities/SyncEntityActionsGridList


Configuration

In the DMS Sync Entity Action Page the user can view, add or edit the configured entity actions as shown below.

DMS Synced Entity Actions GridList page



  • New entity actions can be added by the Page action (top-right) which will prompt the user the the "AddSyncEntityActions" popup.
  • For existing actions in the list the user can either delete or edit them using the respective grid list page actions.



New Entity Action Popup Form

 

The form contains 3 fields:

  • DMS Synced Entity Action (mandatory). Here the user can select from a dropdown list the actions he wants to configure (enable/disable)
  • Description (optional). Here the user can add a plain text description for the respective action
  • DMS Sync Enabled (optional). A toggle switch to enable or disable the DMS synchronization accordingly.


Edit entity action


Similarly the "UpdateSyncEntityActions" form contains the same 3 fields as above:

  • DMS Synced Entity Action (read-only). Here the user can select from a dropdown list the actions he wants to configure (enable/disable)
  • Description. Here the user can add a plain text description for the respective action
  • DMS Sync Enabled. A toggle switch to enable or disable the DMS synchronization accordingly.


Technical Details

  • The GridListPage contains data that reflect the data contained in DB Table "@IDMS_IL_SYNCENTACT".
  • The Entity Actions allowed to be configured are defined in the Enum type ODILEntityAction.
  • The management of the DMS Synchronization is undertaken by the IIntegrationLayerDmsSyncManager.



IDMS_Il_EntityAction
namespace One.Dealer.Models.Entities
{
    [Table("@IDMS_IL_SYNCENTACT")]
    public partial class IDMS_Il_SyncEntityAction : BusinessData
    {
        [Column(DataType = DataType.NVarChar, Length = 50),  PrimaryKey, NotNull ] public string Code { get; set; }  // NVARCHAR(50)

        [Column(DataType = DataType.NVarChar, Length = 100),             NotNull ] public string Name { get; set; }  // NVARCHAR(100)

        [Column(DataType = DataType.NVarChar, Length = 100),              NotNull ] public string U_IDMS_Action { get; set; }  // NVARCHAR(100)

        [Column(DataType = DataType.Int32, Length = 10),                 NotNull ] public  int U_IDMS_SyncEnabled { get; set; } // INT(50)

        [Column(DataType = DataType.NVarChar, Length = 100),              Nullable] public string U_IDMS_Description { get; set; } // NVARCHAR(100)

    }
}

ODILEntityAction
 public enum  ODILEntityAction : Byte
    {
        BusinessPartnerCreate,
        BusinessPartnerUpdate,
        BusinessPartnerDelete,
        VehicleCreate,
        VehicleUpdate,
        VehicleDelete,
        InquiryQualify,
        InquiryDisqualify
    }
IIntegrationLayerDmsSyncManager
namespace OneCore.Core.Interfaces.IntegrationLayer
{
    /// <summary>
    /// Class <c>IntegrationLayerDmsSyncManager</c> manages DMS Synchronized operations.
    /// </summary>
    ///
    public interface IIntegrationLayerDmsSyncManager : IBusinessCaseBaseManager
    {
        /// <summary>
        /// Checks whether Entity Action DMS Synchronization is enabled
        /// </summary>
        /// <param name="actionName"></param>
        /// <returns></returns>

        bool IsEntityActionSyncEnabled(ODILEntityAction actionName);

        /// <summary>
        /// Gets all DMS-Synchronized Entity Actions configurations
        /// </summary>
        /// <returns>A list of IDMS_Il_SyncEntityAction objects</returns>
        List<IDMS_Il_SyncEntityAction> GetAllSyncEntityActions();

        /// <summary>
        /// Gets a DMS-Synchronized entity action by name
        /// </summary>
        /// <param name="actionName"></param>
        /// <returns>The entity action object</returns>
        IDMS_Il_SyncEntityAction GetSyncEntityActionByName(string actionName);

        /// <summary>
        /// Adds or updates an entity action DMS-sync configuration
        /// </summary>
        /// <param name="action">Entity Action</param>
        /// <returns></returns>
        IDMS_Il_SyncEntityAction CreateOrUpdateSyncEntityAction(IDMS_Il_SyncEntityAction action);

        /// <summary>
        /// Deletes a DMS Sync entity action config
        /// </summary>
        /// <param name="entityActionName"></param>
        /// <returns></returns>
        bool DeleteSyncEntityAction(string entityActionName);
    }
}
Write a comment…