Tutorial: Working with Whomiboo

Content under development

This tutorial shows you how to build a simple service with Boomi that shows the current time, import that service in ManyWho, and use it in a flow to display the current time to end-users.

What we need:

  • ManyWho username/password. If you do not have a ManyWho login, please click here to get one.
  • Boomi – A working atom with the API exposed to public. If you do not have a Boomi account, please click here to get one.

Building a service with Boomi
  1. Log in to your Boomi AtomSphere Dashboard.
  2. On the Build page in the Component Explorer, create a new folder or navigate to the folder in which you will create a new component.
  3. Click New Component.

    The Create Component dialog opens with the folder selected.
  4. Select API as the Type option.
  5. Enter a name for the component (Example: Time) and click Create.

    The component appears on a tab with the name you entered.
  6. Type Time API in the Title field.
  7. Copy-paste 1.1.0 in the Version Number field.
  8. Type time in the Base API Path field.
  9. Click Save.
  10. Click REST and click Help Me Create An Endpoint.
  11. Select Create a new process and click Next.
  12. Type metatadata in the Process Name field.
  13. Select REST as the option for Add To.
  14. The Input Type field should be set to None.
  15. Select Single Data as Output Type.
  16. Select application/json for the Result Content Type.
  17. Under the REST section, type metadata for Object.
  18. Leave the URL Path empty and select POST as the HTTP Method.
  19. Click Finish.
  20. Click Save and Close.
  21. Click to expand the Processes options on the left, and select metadata.
  22. Click Shapes and from the Execute group, drag a Message from the palette to the canvas.

    This opens the Message Shape panel.
  23. Click OK. This is what the canvas looks like now:
  24. Click Shapes and from the Logic group, drag a Return Documents shape from the palette to the canvas.

    This opens the Return Documents Shape panel.
  25. Click OK. This is what the canvas looks like now:
  26. Connect the components and arrows. This is what the canvas looks like now:

Getting the metadata from Whomiboo
  1. Open this URL in your browser.
  2. Click Add a Message Action.
  3. Type get-current-time in the Action URI field.
  4. Type Get Current Time in the Action Name and Action Summary fields.
  5. Under the Outputs option, select Is required.
  6. Type Current Time in the Property Name field.
  7. Select ContentDateTime as Content Type.
  8. Click Create Output. This adds an output under the Outputs list.
  9. Click Create Action. This adds the action under List of actions.
  10. Click Copy to Clipboard Metadata Response. This copies the JSON in your clipboard.
  11. Click Message Action Request.
  12. This opens MessageActionRequestProfile.json.
  13. Check the Save File option and click OK

    This saves the JSON file in your local machine.
  14. Click Message Action Response.
  15. This opens MessageActionResponseProfile.json.
  16. Check the Save File option and click OK. This save the JSON file in your local machine.

Using the metadata in Boomi
  1. Open your Boomi AtomSphere canvas.
  2. Click the Message shape.

    This opens the Message Shape panel.
  3. Paste the contents of the clipboard in the Message field.
  4. Add single quotes before and after the code you’ve just pasted – essentially, wrapping the code block in single quotes.
  5. Click OK.
  6. Click Save and Close.
  7. Click Deploy, and select the metadata process by clicking on it.
  8. Click Attachments.

    This is what the Dashboard looks like now:
  9. Select ManyWho Test and click the first directional box to move it from Unattached Environments to Attached Environments.
  10. Tick the checkbox next to the metadata process.
  11. Click Save and Deploy.

    This opens the Deployment Confirmation dialog box.
  12. Click OK.

    This deploys the process. You can see the Version, Actions, Deployed By, Deployment ID, and any Notes you may have added.
  13. Click Deploy and select APIs from the dropdown menu.
  14. Click Time API. You do not need to check the box next to it.
  15. Click Attachments. This is what the Dashboard looks like now:
  16. Select ManyWho Test and click the first directional box to move it from Unattached Environments to Attached Environments.

    This is what the dashboard looks like now:
  17. Check the box next to Time API.
  18. Click Save and Deploy.
  19. Click OK.

    This deploys the Time API.
  20. In the Build options, select the Time API again.
  21. Click REST.
  22. Click Add an Endpoint.
  23. In the Resource Path field type get-current-time.
  24. Scroll down to Request Handled by Process and click the green plus icon in the Choose field.

    This opens the Start Shape configuration panel.
  25. The Connector field should be set to Web Services Server.
  26. Click the green plus icon in the Choose field in Operation.

    This opens the New Web Services Server Connector Operation screen.
  27. Set Operation Type to CREATE.
  28. Set the Input Type to Single JSON Object.
  29. Click the black plus icon in the Request Profile field.

    This opens the New JSON Profile screen.
  30. Change the profile name to Message Action Request.
  31. Click Import. This opens the JSON Import Wizard.
  32. Click Choose File and upload the MessageActionRequestProfile.json file you had downloaded to your local machine earlier.
  33. Click Next and click Finish. This is what the dashboard looks like now:
  34. Click Save and Close.
  35. Set the Output Type to Single JSON Object.
  36. Click the black plus icon in the Response Profile field. This opens the New JSON Profile screen.
  37. Change the profile name to Message Action Response.
  38. Click Import. This opens the JSON Import Wizard.
  39. Click Choose File and upload the MessageActionResponseProfile.json file you had downloaded to your local machine earlier.
  40. Click Next and click Finish.
  41. Expand the Root element by clicking the + sign next to it. This is what the dashboard looks like now:
  42. Expand Array by clicking the + sign next to it.
  43. Click the blue arrow next to ArrayElement1.
  44. Click Add Identifier Instance.

    This opens the Add/Edit Instance pop up.

  45. Check the Identify By Occurrence box and click OK.
  46. Click Save and Close.
  47. Click Make the recommended changes for me.
  48. Click OK.
  49. Click Shapes and from the Execute group, drag a Map from the palette to the canvas. This opens the Map Shape panel.
  50. In the Display Name field type Request to Response.
  51. Click the green plus icon in the Choose field for Map. This opens the New Map screen.
  52. Change the name of the Map to Request to Response Map.
  53. Click Choose in the Map Source panel. This opens the Choose a Profile dialog box.
  54. Select JSON as the Profile Type.
  55. Select Message Action Request.
  56. Click OK.
  57. Click Choose in the Map Destination panel. This opens the Choose a Profile dialog box.
  58. Select JSON as the Profile Type.
  59. Select Message Action Response.
  60. Click OK.
  61. In the Message Action Request, click the plus sign to expand the Object folder.
  62. In the Message Action Response, click the plus sign to expand the Object folder. This is what the dashboard looks like now:
  63. Click token in the Message Action Request panel to select it, and drop it on token under the Message Action Response panel. This connects the two items.
  64. Click tenantId in the Message Action Request panel to select it, and drop it on tenantId under the Message Action Response panel. This connects the two items.
  65. Click the blue arrow next to invokeType to open the default value option.
  66. Click Set Default Value.

    This opens a Set Default dialog box.
  67. Type FORWARD in the Value field and click OK.
  68. Expand outputs by clicking the + sign next to it.
  69. Expand Array and then expand ArrayElement1 [occurrence = 1] and Object.
  70. Click the blue arrow next to developerName to open the default value option. This opens the Set Default Value dialog box.
  71. Click Set Default Value.
  72. Type Current Time in the Value field and click OK.
  73. Click the blue arrow next to contentType to open the default value option. This opens the Set Default Value dialog box.
  74. Click Set Default Value.
  75. Type ContentDateTime in the Value field and click OK.
  76. Click the blue plus sign in the Function panel. This opens the Add a Function dialog box.
  77. Click Create New Function. This opens the New Map Function screen.
  78. Change the name of the map function to ManyWhoDate from New Map Function.
  79. Click the blue plus icon in the Step panel. This opens the Add a Function dialog box.
  80. Change the Category to Date.
  81. Select Get Current Date.
  82. Click OK.
  83. Click the blue plus icon in the Outputs panel. This opens the New Output dialog box.
  84. Type Current Date in the Name field and click OK. This creates a Current Date output.
  85. Create a new function step by clicking the blue plus icon in the Step panel.
  86. Select Date from the Category options.
  87. Select Date Format from Functions and click OK.
  88. In the Configure Defaults dialog box, copy-paste yyyyMMdd HHmmss.SSS
    in the Input Mask and copy-paste yyyy-MM-dd’T’HH:mm:ss.SSS in the Output Mask.
  89. Click OK.

    This is what the function looks like now:
  90. Select the Date Format component and move it to the right of the Get Current Date component. This is what the function looks like now:
  91. Connect Result in the Get Current Date function and Date String by clicking Result and dropping a connection from Result to Date String.
  92. Connect Result in the Date Format function and Current Date in Outputs by clicking Result and dropping a connection from Result to Current Date.
  93. Click Save and Close.
  94. Connect Current Date with contentValue.
  95. Click Logic to expand the palette, select the Return Documents shape and drag it to the canvas.

    This opens the Return Documents Shape panel.
  96. Click OK. This is what the process looks like now:
  97. Drag the red arrow from Current Time Process to Request to Response to connect the two components.
  98. Drag the red arrow from Request to Response to Return Documents to connect the two components.
  99. In the Display Name field delete New Process and type Current Time Process.
  100. Click Save and Close to save the process.
  101. Click Deploy.
  102. Click Current Time Process (Do not check the box).
  103. Click Attachments.

    This is what the dashboard looks like now:
  104. Select ManyWho Test and click the first directional box to move it from Unattached Environments to Attached Environments.
  105. Check the boxes next to Current Time Process and metadata.
  106.  Click Save and Deploy. This opens a Deployment Confirmation dialog box.
  107. Click OK.
  108. Click the blue arrow next to Processes and select APIs.

    This is what the dashboard looks like now:
  109. Check the box next to Time API.
  110. Click Save and Deploy.

    This opens a Deployment Confirmation dialog box.
  111. Click OK.
ManyWho Pro Tip: If you like, you can also check to make sure the API has been deployed. For example, you can use Postman to make a POST request with the URL of your server – http://URL and port/ws/rest/time/metadata POST

Note: If your Boomi account has locking enabled, you will need to click Lock and Edit to get the Save and Close option.

Creating the flow in ManyWho
  1. Click LOG IN to login to the ManyWho Drawing Tool.
  2. Click Services and click New Service.
  3. Enter a name for the service in the Name field. Example: Boomi – ManyWho.
  4. Enter http://URL:port/ws/rest/time/ in the URL for the Service field, replacing the word ‘URL’ with the URL of your atom, and the word ‘port’ with the port of your server. For example: http://41.99.55.75:9090/ws/rest/time.
  5. Click Continue.
  6. Click Save Service.
  7. Click Flows and click New Flow.
  8. Select the ManyWho Identity Service.
  9. Click Continue.
  10. Enter a name for the flow. Example: Boomi – ManyWho demo.
  11. Select Anyone can run this flow for Access.
  12. Select None as the Social feed for collaboration.
  13. Click Start Building.
  14. Click Shared Elements.
  15. Click Services.
  16. Click Import Existing.
  17. Click the Import button next to the Boomi-ManyWho service to import the service to the flow.
  18. Click Close.
  19. Drag a Message element from the sidebar to the canvas.

    This opens the Message configuration panel.
  20. Enter a name for the Message in the Name field. Example: Show Time.
  21. Click New Message Action.
  22. Select Boomi-ManyWho as the service to send the message.
  23. Click the Select button next to Get Current Time.
  24. In the Outputs section, click Select or create a new value in the Value field for Current Time.
  25. Click Create a new Value.
  26. The Current Time value is already created by the ManyWho Engine for you. Click Save.
  27. Click Apply Message Action.
  28. Click Save Message.

    This is what the canvas looks like now:
  29. Hover your mouse on Start. The mouse pointer changes from a crossbar to a hand.
  30. Drag an arrow from Start to Show Time. This opens the configuration panel for the outcome.
  31. Type Go in the Name field and click Save Outcome. This is what the canvas looks like now:
  32. Drag a Step element from the sidebar to the canvas. This opens a configuration panel on the right.
  33. Copy-paste Show Time in the Name field.
  34. In the content-editor, copy-paste the text The current time now is: 
  35. Click Insert Value.
  36. Click Please select a Value, select Current Time and click OK.

    This inserts a placeholder for the value in the content editor. When the flow executes, the placeholder will be replaced by the actual current time.
  37. Click Save Step.
  38. Hover your mouse on Show Time. The mouse pointer changes from a crossbar to a hand.
  39. Drag an arrow from Show Time (the message element) to Show Time (the Step element). This opens the configuration panel for the outcome.
  40. Type Remove in the Name field and click Save Outcome.

That was fast!

And… we are done building. This is what the canvas looks like now:

Let’s run the flow now.


Appchievement!

It took us about an hour to build a service with Boomi, and use that service in ManyWho to display the current time in a flow: