General Technical Discussions for Service

Get Involved. Join the Conversation.

Topic

    Alanna Larson
    Creating an Add-In Installer / WizardAnswered
    Topic posted July 2, 2018 by Alanna LarsonBlue Ribbon: 750+ Points 
    42 Views, 1 Comment
    Title:
    Creating an Add-In Installer / Wizard
    Content:

    My company produces four desktop add-ins which provide related, but different, functionality. There are three workspace add-ins (one each for chat, incident, and answer workspaces) and one report command add-in. Our clients can have any (or all) of the four add-ins.

    The installation process for new clients can be very involved:

    • All add-ins require multiple Profile permissions.
    • Two of the add-ins share a custom object, and have 1-2 shared custom field(s).
    • Each of the three workspace add-ins has a workspace control, and two of them have multiple elements (i.e. the workspace add-in, displaying an OSC field, displaying a custom field, and a rule or two associated with the control and fields).
    • Each add-in has 3-8 Server Configuration Properties. Some Server Configuration Properties are used by all of our products and are repeated between each add-in. For example, one of the Server Configuration Properties is the server URL for our server. This is generally the same between all Profiles and add-ins, but we can't use a custom field because multinational corporations may have agents in multiple countries and want to hit different servers for performance reasons.

    Many clients have multiple add-ins installed for a large number of profiles. This means a lot of manual work setting the appropriate profile permissions, server configuration properties, and adding workspace elements.

    I want to automate/perform programmatically (for example through SOAP) as much of this process as I can. Ideally I would like to create an setup/installer wizard (this could be another add-in or a standalone program) that:
        1. Automatically creates the custom field(s) and custom object.
        2. Allows the client to select a list of profiles and automatically enables the add-ins for them, sets certain profile permissions, and sets the Server Configuration Properties to whatever values the client chooses. It would be preferable to be able to set the Server Configuration Properties for a subset of interfaces on each profile because there is a Server Configuration Property that usually dependent on interface.
        3. Allows simpler addition of the workspace add-ins to the appropriate workspace. For example being able to export/import a tab with multiple fields and the add-in control within it (plus the associated rule(s)) would be nice.
        

    For 1, I see how you can create/update an instance of a custom object or update a custom field (here) but it sounds like I cannot actually define them initially through SOAP (here). Is there a way to initially create a custom object definition or custom field programmatically?

    For 2, I see how you can use SOAP with accounts (here) but all of the permissions I need to alter are Profile level, not Account level. For profiles I only see how to get a list of Profiles (here). From that list I would be able to display a multi-select list but I could not find a way to access the add-ins, Server Configuration Properties, or profile permissions at all. Using the built-in "Apply this configuration to all profiles and interfaces" setting from the add-in manager ribbon is better than nothing but sub-optimal because different interfaces often have different settings and this is an all or nothing approach. The correct Server Configuration Properties can't be hardcoded into my add-in due to client variations, security policies, etc.

    As for 3, I see how to export rules in the workspace but could not figure out how to import rules. I could not find any way to copy, save, or export a collection of controls/fields (ex. copy a whole tab on a workspace).

    Are there ways to automate or at least partially automate any of these installation steps?

    Version:
    Oracle Service Cloud May '15 - Current, C#.Net Desktop Add-Ins, Connect Web Services

    Best Comment

    Anuj Behl

    Hi Alanna,



    That's a very valid requirement that most of the customers want. Unfortunately, everything you observed is true, there is no true automation available at this time with the product. I will share what I think might help you,



    1. Custom Fields - no automation possible, you will have to manually create them.



    2. Custom Objects/ attributes - you can export them and import them as packages



    3. Server Configs/ Profile permissions - Since add-ins are completely custom and not associated to the core, the server configs and profile permissions cannot be available through any API. I don't know if that'd be possible in future. For now, this would be all manual process.



    4. Workspace edits - Workspace can only be imported as whole currently. You cannot move/copy individual components/rules within workspaces. You could export the whole workspace and import it on different environment with all components and rules attached. There's already an idea for allowing copy/paste components within workspace, which is under consideration. You should give support to the idea and add your inputs.



    5. Check if you can move some of your add-in server configs to configuration settings. They will be interface/site specific but you could make it profile specific with some code in the add-in. You can export and import configuration settings between sites.



    Hope that helps.

    Comment

     

    • Anuj Behl

      Hi Alanna,



      That's a very valid requirement that most of the customers want. Unfortunately, everything you observed is true, there is no true automation available at this time with the product. I will share what I think might help you,



      1. Custom Fields - no automation possible, you will have to manually create them.



      2. Custom Objects/ attributes - you can export them and import them as packages



      3. Server Configs/ Profile permissions - Since add-ins are completely custom and not associated to the core, the server configs and profile permissions cannot be available through any API. I don't know if that'd be possible in future. For now, this would be all manual process.



      4. Workspace edits - Workspace can only be imported as whole currently. You cannot move/copy individual components/rules within workspaces. You could export the whole workspace and import it on different environment with all components and rules attached. There's already an idea for allowing copy/paste components within workspace, which is under consideration. You should give support to the idea and add your inputs.



      5. Check if you can move some of your add-in server configs to configuration settings. They will be interface/site specific but you could make it profile specific with some code in the add-in. You can export and import configuration settings between sites.



      Hope that helps.