This guide provides step by step instructions on how to call a Dynamics CRM custom action via SOAP UI. The complete process can be broken down into the following three overarching sub-steps:

  • Creating the custom action in CRM
  • Extracting the SOAP request message and applicable SOAP headers
  • Calling the custom action using SOAP UI

Let’s begin!

Step 1: Create the custom action

We will be creating a simple custom action that takes in a single parameter (InArgument) and returns the same value as an output value (OutArgument).

  1. In Dynamics CRM, create a new process with a category of “Action” with the following attributes:
    • Process name: Custom Action
    • Category: Action
    • Entity: None (global)

Call a Dynamics CRM 2016 Custom Action Using SOAP UI

  1. Press OK
  2. Create both an input and output argument as follows:
    1. Name: InArgument
      1. Type: String
      2. Required: Required
      3. Direction: Input
    2. Name: OutArgument
      1. Type: String
      2. Required: Required
      3. Direction: Output
  3. Create an “Assign Value” workflow step and populate the OutArgument with the InArgument as follows:

create-assign-value

  1. Activate the action

 

Step 2: Extract the SOAP request message and applicable SOAP headers

Pre-step: Ensure you have downloaded the Dynamics CRM SDK as there is a tool (project) included in it that will generate the SOAP request.

  1. In the CRM SDK extract folder, there is a solution named “SOAPLogger”. The exact location (assuming you have extracted the SDK to the folder “C:\CRM 2016 SDK”) is:

extract-solution

  1. Open the solution file, then go to the file “SOAPLogger.cs” and make a call to the custom action using the SoapLoggerOrganizationService as shown highlighted below:

  1. Run the project in debug mode.
  2. Go to the Debug folder and you will see a new file has been created named “output.txt”:

debug-folder

  1. Open the file and you will find the relevant SOAP headers and the request and response message for the action you have called. The highlighted text below shows the SOAP headers you will need to include in your SOAP UI request in the next stage.

HTTP REQUEST

————————————————–



————————————————–

HTTP RESPONSE

————————————————–

————————————————–

 

Step 3: Call the custom action using SOAP UI

  1. Open SOAP UI and create a new project based on the following wsdl (replace <> with the name of your server, port and organisation)

http://:://XRMServices/2011/Organization.svc?wsdl=wsdl0&sdkversion=7.1

  1. Right click on the “Execute” service operation and create a new request. Replace the request contents with that created in Stage 2.
  2. Add the request headers and set the endpoint as shown below (SOAPAction & Content-Type were output in Stage 2. Accept will need to be entered as shown in the screenshot below):

add-request-headers

  1. Ensure you set the authentication type to: NTLM and have configured your proxy accordingly.
  2. You can now press the green play button and will see the output of your request.

This concludes the blog post on calling custom actions using SOAP UI. I hope you find it useful for your future integrations. Please provide any comments or suggestions below and good luck!