3 Replies Latest reply on Aug 8, 2019 2:58 AM by Matt Laurenceau

    Integrating BMC Digital Workplace with remote servers

    Stephan Gasterstaedt
      Share This:

      Hi BMC-Community .

       

      I try to define a remote connector server based on the following tutorial:

      Developing Remote Connector Servers and Connectors - Documentation for BMC Digital Workplace Advanced 19.05 - BMC Docume…

       

      So far it worked out well... I was able to obtain services from another server but as soon as I want to define a fullfillment and questionairies it fails (I have no idea why, because dwpc only states that there was an error but as always hides the reason from me):

       

       

      Here is the service response I return from getService (please note, as soon as I set the fullfillment field to null, it works again, therefore it has to do something about the fullfillment definition):

      {

      "response": {

         "services": [

        {

         "id": "a130254a-57ac-e911-9410-005056bf1d91",

         "displayId": "1",

         "name": "NextCloud Account",

         "logoUri": "images/blueprint/c0c62f1e-4b91-4962-8579-bf6d88b3a4a9_Nextcloud_square.png",

         "modifiedDate": null,

         "excerpt": "This will provision a new NextCloud account",

         "description": "This will provision a new NextCloud account",

         "cost": {

         "amount": 0,

         "currency": "EUR"

        },

         "categoryIds": [],

         "tags": [],

         "fulfillment": {

         "type": "CONNECTOR_ACTION",

         "action": "OrderAutomation",

         "questionnaireId": "questionaire_serverCfg",

         "inputs": [

        {

         "id": "parameters",

         "name": "parameters",

         "required": false,

         "dynamic": false,

         "inputType": "Object",

         "inputAssignment": "DYNAMIC_INPUTS",

         "datasetId": null

        },

        {

         "id": "item_cpu",

         "name": "CPU",

         "required": true,

         "inputType": "Integer"

        },

        {

         "id": "item_memory",

         "name": "Memory",

         "required": true,

         "dynamic": true,

         "inputType": "Integer"

        },

        {

         "id": "item_disk",

         "name": "Disk",

         "required": true,

         "dynamic": true,

         "inputType": "Integer"

        }

        ]

        },

         "createDate": null,

         "quantityEnabled": null,

         "locale": null

        }

        ]

        }

      }

       

       

       

      And here is the corresponding action defintion from the /rcf/descriptor call

      {

         "connectors": [

        {

         "name": "DEVELOPMENT - Automation Connector",

         "version": "0.1",

         "type": "DevAutomationConnector",

         "path": "com.vipcon.automation.DevAutomationConnector",

         "capabilities": [

         "com.bmc.dsm.catalog:catalogProvider"

        ],

         "activeConnectionInstances": [

        {

         "id": "DEV",

         "name": "Development"

        }

        ],

         "actions": [

        {

         "name": "OrderAutomation",

         "displayName": "order",

         "path": "order_automation,

         "inputs": [

        {

         "name": "parameters",

         "type": "Object",

         "required": true

        }

        ],

         "outputs": [

        {

         "name": "result",

         "type": "Object"

        }

        ]

        }

        ]

        }

        ]

      }

       

       

       

       

       

       

       

      If I only try to use EXTERNAL_URL fullfillment option instead of CONNECTOR_ACTION is starts to work out. So I am really sure that it is something about the action definition in combination with the fullfillment definition but I can't figure out what I am missing here :/. I am really sure that it isn't something about the questionaire definition itself, because the find questionaire method in my connector is never called from dwpc (I log every call in my connector for debugging purposes).

       

      Has anyone of you any suggestions?

       

      Thanks in advance

      Stephan Gasterstädt

      VIPCON GmbH

      Germany

        • 1. Re: Integrating BMC Digital Workplace with remote servers
          Stephan Gasterstaedt

          Hugh Fairfield, Maybe you have an idea?

           

          Greetings

          Stephan Gasterstädt

          • 2. Re: Integrating BMC Digital Workplace with remote servers
            Stephan Gasterstaedt

            Thanks to Philippe Vosges I was able to solve the problem.

             

            A few tutorials later it is about the activity Service Provider Interface. It seems that both, the workflow generation and the activity SPI work hand in hand as Philippe Vosges states. So by defining the following into the action the import just worked out.

             

             

             

              "com.bmc.dsm.catalog": {

             

              "externalActivityFactory": true,

              "externalActivityType": "com.example.Order",

              "actionOutputCaptures": []

              }

             

             

            At least I want to criticize 2 things:

             

            First how difficult it is to get error messages in digital workplace. If you do not have access to the server it is nearly impossible. For this a good feature would be just to display the error messages directly to admin who tried to import the service.

             

            Secondly: the tutorial itself. The code and examples inside should give the user directly a complete overview what to do and how to achieve. After each step inside the tutorial the code should be runnable. Missing important information or displaying it a few steps later seems to be typical for bmc tutorials. I had similar problems when I started with the innovation Studio tutorial. Maybe somebody that have no idea about the product should test the tutorial to get an idea about the common problems and misunderstandings. Don't let the customer do that for you, because it will force him to be unsatisfied with your products.

             

             

            Hope somebody takes the critic serious. This would be really an improvement in your applications.

            4 of 4 people found this helpful
            • 3. Re: Integrating BMC Digital Workplace with remote servers
              Matt Laurenceau

              Thanks a bunch Stephan for sharing these steps! (and honest feedback on improvement areas)

              Kudos to Philippe Vosges for great work here for the Digital Workplace community members