With this Hublify Flows Function you can ...

  • make outbound HTTP-Calls
  • Type POST / GET / PUT
  • Dynamically set data or values for ...
    • POST Vars
    • GET Vars
    • HTTP Header
  • Internally the standard curl library is used.
  • Retrieve response data and store it as Hublify Flow Variables to work with that data!

Configuration

Yet to come, ... but here a sneak preview:

  • [url] - string The url to call (is superReplaced)
  • [method] - string "POST|GET|PUT"
  • [datamapper_label] - string
  • [datamapper_map] - array/object
    • => [dataPOST] - array (is superReplaced)
    • => [dataGet] - array
    • => [dataHeader] - array (is superReplaced)
  • [connectionTimeOut] - optional, e.g. "5" sec.
  • [timeOut] - optional, e.g. "30" sec.
  • [logLvl] - optional, "0 | 1 | 2" for level logged details to action-log.
  • [result_type] - string "JSON" or "STRING"
  • [hpeTargetVar] - string Name of Flow Variable where to store the result-object of this call. If not given the result will be discarded.
    Write it in notation: <scope>::<var-name-path>.
    E.g.: local::my.path.to.Variable
  • [result_datamapper_map] - array|object Optional Hfy-Datamapper-Map applied to the result-data. Of course only, if the result-data-type is an array|object.


Result Handling

You can get the returned data / string of the web-call and store it in a Flow Variable. It is only stored, if you provide hpeTargetVar!

The stored result is always a result-object containing the following properties:

{
    'http_code' - integer The HTTP-Response-Code, e.g.: 200, 404, ...
    'error_code' - string Curl error code, 0 = OK
    'error_msg' - string Curl error message, if code != 0.
    
    'result' - string|array|object This is the actual result-data received!
    'result_type' - string|null Either  "JSON" or "STRING"
    
    'duration' - integer Duration of the web-hook-call
}



Examples

#1 - "datamapper_map"

In the following example config you can see, the mapped variables & values from data => dataHeader & dataPOST.

"datamapper_map"

{
    "map": [
        {
            "src": "data.pos_name",
            "trg": "url",
            "conversion": [
                {
                    "function": "mapValue",
                    "params": {
                        "mapping": {
                            "Demo Channel": "https://my.webhook-url.xy/",
                            "onDefault": null
                        }
                    }
                }
            ]
        },
        {
            "src": null,
            "trg": "dataHeader.X-A-REMOTE-TOKEN",
            "conversion": [
                {
                    "function": "set_value",
                    "params": "xy-aSuperSecuRe!cryptedTokenForYourHedda"
                }
            ]
        },
        {
            "src": "data.orderid",
            "trg": "dataPOST.data.orderid"
        },
        {
            "src": "data.o_orderid_external",
            "trg": "dataPOST.data.o_orderid_external"
        },
        {
            "src": "data.personid",
            "trg": "dataPOST.data.personid"
        },
        {
            "src": "data.order_state_code",
            "trg": "dataPOST.data.order_state_code"
        },
        {
            "src": "data.order_state_name",
            "trg": "dataPOST.data.order_state_name"
        },
        {
            "src": "data.delivery_list",
            "trg": "dataPOST.data.delivery_list"
        }
    ]
}