Friday, 16 September 2016

Azure Logic with AX–callable endpoint

There are lots of ways to work with Azure Logic. This will be my first of many hopefully to show you how you can use Azure Logic with AX.

Have a read of this post from the Azure Logic team first. It explains how you can create a callable endpoint in Azure Logic.

Logic apps as callable endpoints

In my post I will show you how you can use AX to call an Azure Logic endpoint.

SNAGHTML2b98aec (I am not a graphics guy but the little fire on the end of the rocket is my addition)

First start by writing a job that sends a post message to request bin. Request bin is a good site which you can use to send a message to it and it displays the results in a readable way.

Navigate to request bin and copy the URL into the job. Then run the job to see the result.

static void _jsonJob(Args _args)
{
    RetailWebRequest    request;
    RetailWebResponse   response;
    str                 rawResponse;
    Map                 data;
    RetailCommonWebAPI  webApi = RetailCommonWebAPI::construct();

    str _requestUrl = @'http://requestb.in/1a07xyj1';
    //str _requestUrl = @'https://prod-02.northcentralus.logic.azure.com:443/workflows/bb7f4b0c834f418cbf7d2fa969c4bcea/triggers/manual/run?api-version=2016-06-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=AAAAAAAAAAAAAAAAAAAAA;
    str _postData =
    @'
    {
            "email": "munib@fakeemail.com",
            "name": "Munib A Ahmed"
    }
    ';
    str _header = '';
    str _contentType = 'application/json';

    response = webApi.makePostRequest(_requestUrl, _postData, _header, _contentType);

    rawResponse = response.parmData();
    data = RetailCommonWebAPI::getMapFromJsonString(rawResponse);
    info(rawResponse);
}

Below is what you should see in request bin.

image

Now, lets do it via Azure Logic.

1) In Azure Logic create a new app

image

 

 

3) Create a HTTP request. This will give you a URL which you can call.

image

Use http://jsonschema.net/ to copy your message and get a schema. This schema can be pasted into the HTTP request.

image

I create an action to send an custom response. I added parts of my request and some additional elements.

Run the job in AX and have a look at the response.

image

This is just a quick test but think of similar examples. You can possibly create a framework in AX where you send a message after an invoice is posted. That message could be json, string, xml or filestream. Then you can have Azure Logic send an SMS, email, integrate with SalesForce/CRM or all other connectors.

No comments: