HTTP POST

Basic URL (POST):

https://customer.ultimo.com/webservices/connector.ashx

Parameters:

Parameter

Description

username

Username that has the rights to use the IoT-connector

password

Password of the user

action

Fixed value “import”

importName

Fixed value “IOT-MEASUREMENT”

Note: escape a character when using special characters in the URL.

Example:

https://customer.ultimo.com/webservices/connector.ashx?userName=user1&password=Passw0rd%21&action=import&importName=IOT-MEASUREMENT

The body can contain multiple measurements:

<?xml version="1.0" encoding="utf-8"?>
<Measurements>
    <Measurement>
        <EquipmentId>00001</EquipmentId>
        <MeasurementPointId>TEMP</MeasurementPointId>
        <Value>22</Value>
        <Date>2018-08-20T15:17:59Z</Date>
        <Text>Some remarks for measurement</Text>
    </Measurement>
    <Measurement>
        <ProcessFunctionId>0001</ProcessFunctionId>
        <MeasurementPointId>RUNHOURS</MeasurementPointId>
        <Value>22</Value>
        <Date>2018-08-21 15:17:59</Date>
        <Text>Some remarks for measurement</Text>
    </Measurement>
</Measurements>

The response will contain the imported measurements in the internal Ultimo data structure, including the generated IDs. When a measurement is imported successfully, the attribute Action is “Insert”. Example response:

Status: 200 OK

<?xml version="1.0" encoding="utf-8"?>
<Data>
    <Object Type="EquipmentMeasurementPointValue" Action="Insert">
        <Property Name="Id.EquipmentMeasurementPoint.Id.Equipment.Id" Value="00001" />
        <Property Name="Id.EquipmentMeasurementPoint.Id.Id" Value="TEMP" />
        <Property Name="Id.LineId" Value="00000000000001" />
    </Object>
    <Object Type="ProcessFunctionMeasurementPointValue" Action="Insert">
        <Property Name="Id.ProcessFunctionMeasurementPoint.Id.Id" Value="RUNHOURS" />
        <Property Name="Id.ProcessFunctionMeasurementPoint.Id.ProcessFunction.Id" Value="0001" />
        <Property Name="Id.LineId" Value="00000000000001" />
    </Object>
</Data>

When the measurement is not accepted by the Ultimo business rules or an error occurs during the processing of the measurement, the Action attribute will have the value “Error”. Example of a response that contains errors:

Status: 200 OK

<?xml version="1.0" encoding="utf-8"?>
<Data>
    <Object Type="EquipmentMeasurementPointValue" Action="Error">
        <Property Name="ErrorMessage" Value="Cannot import entity 'EquipmentMeasurementPointValue' 'ExternalId': '00001-DEFAULT-2018-08-20T15:17:59Z-232' 'Id.EquipmentMeasurementPoint.Id.Equipment.Id': '00001' 'Id.EquipmentMeasurementPoint.Id.Id': 'DEFAULT' 'Date': '2018-08-20T15:17:59Z' 'Value': '232' 'Text': 'Some remarks for measurement' 'Status': 'EquipmentMeasurementPointValueStatus.ToProcess' . Error while executing workflow 'EquipmentMeasurementPointValue_PostImport'. Message: EquipmentMeasurementPointValue_CheckIfAnotherValueExistsForDateTime Measurement value for measurementpoint DEFAULT of equipment Heftruck 1 type 35  cannot be processed.&#xD;&#xA; Cause: measurement value '(22)' has already been specified for 08/21/2018 03:17." />
        <Property Name="ShortErrorMessage" Value="Error while executing workflow 'EquipmentMeasurementPointValue_PostImport'. Message: EquipmentMeasurementPointValue_CheckIfAnotherValueExistsForDateTime Measurement value for measurementpoint DEFAULT of equipment Heftruck 1 type 35  cannot be processed.&#xD;&#xA;Cause: measurement value '(22)' has already been specified for 08/21/2018 03:17." />
    </Object>
</Data>

When the connector cannot be reached at all (i.e. when username or password is incorrect), the format of the error message will be as follows:

Status: 500 Internal Server Error

Ultimo.Framework.Core.Tools.GeneralException: Username or password not correct, login failed. 
    at Ultimo.Web.Core.Authentication.ConnectorLogOn(String userName, String password) 
    at Ultimo.Web.SiteRoot.WebServices.Connector.System.Web.IHttpNandler.ProcessRequest(HttpContext context)

Last updated