GoPlant API: Get Responses after a Response ID for an External Tag Source Code
  • Description / Endpoint Version: 1.0
    This endpoint will return a list of responses that were created after a Response ID and are associated with an external tag source code. This endpoint was designed to work with a historian or logbook system.
  • Deprecated Endpoint:
    Please use endpoint version 1.1 or greater.
  • Change Log:
    • 1.0: Initial build.
    • API 2.0: For any of the endpoints that require a start and end date / time, you can now pass a storage group date / time with "StartDatetimeSG" and "EndDatetimeSG" instead of "StartDatetimeUTC" and "EndDatetimeUTC". Include "StorageGroupID" to tell the system which storage group date / time you are sending.

  • Authentication Type:
    Tag Source
  • Accepts:
    URL: http://skf.goplant.mobi/api/svc/Historian/HistorianAfterResponseID
    Method: Post
    Authorization: Basic
    • Username: [Contact The GoPlant Administrator]
    • Password: [Contact The GoPlant Administrator]
    Headers:
    • Content-Type: application/json
    Body:
    • RowStart and RowCount are used for paging thru large record sets. The maximum number of rows that can be returned at any one time is 1000.
    • RowStart: This is a zero based row number of the row to start with.
    • RowCount: The number of rows to return starting from the RowStart.
    • ReturnType: How you would like to receive the response. JSON and XML are supported.
    • ResponseID: The Last Response ID you received. This endpoint will return records after this Response ID.
    • TagSourceCodeName: The external tag source code you would like to request.
    • TagDataValue: (Optional) The external tag data value you would like to request.
    • EndpointVersion: The endpoint version that you want to call. Leaving this blank will call the most recent 1.x version.
    • Note: For endpoints that allow a date parameter, you can now use "StartDatetimeSG" or "EndDatetimeSG" to pass storage group timestamps. See the home page for more details.
    Accept Body Example:
    {
    	"RowStart": 0,
    	"RowCount": 3,
    	"ReturnType": "json",
    	"ResponseID": 26,
    	"TagSourceCodeName": "UNITECH",
    	"TagDataValue": "",
    	"EndpointVersion": null (null = latest 1.x)
    }
    
  • Response:
    Status: 200
    Type: JSON
    Body:
    • Status Object: Holds status information about your request.
      • HTTPStatusCode: HTTP Status ID of the request.
      • HTTPStatus: HTTP Status string representation. EX. 'OK'
      • RowStart: The zero based first row that was returned.
      • RowsReturned: The actual number of rows returned in the Data object.
      • LastIdReturned: The Last Response ID Returned by this request. This is useful for the next call when you want new records.
      • RequestBegin: The UTC timestamp API received the request.
      • StopWatch: The elapsed time the API call.
      • APIversion: GoPlant internal API version.
      • EndpointVersionReturned: The endpoint version that was returned based on the request. ex. If no endpoint version was requested, this will show the latest 1.x version.
      • ExternalRequest: The request object that was passed. Includes the endpoint version that was requested and the actual endpoint version that was returned.
        • "EndpointVersion": null
        • "EndpointVersionReturned": 1.1
    • Data Object: Holds the actual data that you are requesting.
      • responseID: Unique Response ID
      • responseType: A string representing our possible response types, which may be Short text, Scan barcode, Drawing, Previous, Show message, Calculation, Multi-line text, Take picture, Lookup, Location, Signature, List, Date, Yes/No, Number
      • responseValue: The string value of the response.
      • responseDate: The UTC date / timestamp the questions step was answered.
      • stepComments: Administrator comments when the step was added to the form.
      • stepWasVisible: Indicates whether the step was visible on the form at the time it was committed. May be null for responses committed before 6/13/2018.
      • formName: Name of the form.
      • assetTag: Name of the Asset. May be null if the response was on a Form Only round.
      • assetDescription: Description of the Asset. May be null if the response was on a Form Only round.
      • assetStatus: String representation of the Assets status. May be null, Nominal, NonNominal or Disabled.
      • roundName: Name of the Round
      • roundVariantName: Name of the variant in the round.
      • elementLabel: Name of the element in the variant in the round.
      • taskName: Name of the task. May be null if the response was in a round and not a task.
      • taskEventStatus: String representation of the tasks status at the time the response was recorded which may be Revoked, CompleteLate, Late, Expired, On Time, Void, Not Started, Completed
      • tagSourceCode: External tag source code.
      • tagSourceDisplayName: People friendly display of the external tag source code. May be null.
      • tagDataValue: Value of the external tag.
      • tagDataDescription: People friendly display of the external tag. May be null.
    Response Example:
    {
        "status": {
            "HTTPStatusCode": 200,
            "HTTPStatus": "OK",
            "RowStart": 0,
            "RowsReturned": 3,
            "LastIdReturned": 259978,
            "RequestBegin": "2018-06-13T20:33:21.2734861Z",
            "StopWatch": {
                "IsRunning": true,
                "Elapsed": "00:00:00.0173712",
                "ElapsedMilliseconds": 19,
                "ElapsedTicks": 50277
            },
            "APIversion": "3.25.0.0",
            "EndpointVersionReturned": 1.0
            "ExternalRequest": {
                "RowStart": 0,
                "RowCount": 3,
                "StartDatetimeUTC": "0001-01-01T00:00:00",
                "EndDatetimeUTC": "9999-12-31T23:59:59.9999999",
                "ResponseID": 26,
                "TagSourceCodeName": "UNITECH",
                "ReturnType": 1,
                "EndpointVersion": null,
                "EndpointVersionReturned": 1.0
            }
        },
        "data": [
            {
                "responseID": 259688,
                "responseType": "Short text",
                "responseValue": "2342",
                "responseDate": "2018-05-23T13:03:57",
                "stepComments": "PT - 1476",
                "stepWasVisible": null,
                "formName": "Form 1649 - External Tags",
                "assetTag": null,
                "assetDescription": null,
                "assetStatus": null,
                "roundName": "Round 1649 - External Tags",
                "roundVariantName": "v1",
                "elementLabel": "Form 1649 - External Tags",
                "taskName": "",
                "taskEventStatus": "",
                "tagSourceCode": "UNITECH",
                "tagSourceDisplayName": "Unitech",
                "tagDataValue": "UT 0556",
                "tagDataDescription": "UT 0556"
            },
            {
                "responseID": 259715,
                "responseType": "Number",
                "responseValue": "222.00",
                "responseDate": "2018-05-24T13:47:11",
                "stepComments": "",
                "stepWasVisible": null,
                "formName": "Form 1649 - Final Dev Test",
                "assetTag": "Asset 1649 - External Tags - final dev test",
                "assetDescription": null,
                "assetStatus": "Nominal",
                "roundName": "Round 1649 - external tags - final test",
                "roundVariantName": "v1",
                "elementLabel": "Asset 1649 - External Tags - final dev test / Form 1649 - Final Dev Test",
                "taskName": "Task 1649 B",
                "taskEventStatus": "Completed",
                "tagSourceCode": "UNITECH",
                "tagSourceDisplayName": "Unitech",
                "tagDataValue": "UT 02345",
                "tagDataDescription": "UT 02345"
            },
            {
                "responseID": 259978,
                "responseType": "Number",
                "responseValue": "777.00",
                "responseDate": "2018-05-25T21:32:45",
                "stepComments": "",
                "stepWasVisible": null,
                "formName": "Form 1670",
                "assetTag": null,
                "assetDescription": null,
                "assetStatus": null,
                "roundName": "Round 1670",
                "roundVariantName": "V1",
                "elementLabel": "Form 1670",
                "taskName": "Task 1643 test A",
                "taskEventStatus": "Completed",
                "tagSourceCode": "UNITECH",
                "tagSourceDisplayName": "Unitech",
                "tagDataValue": "UT 1233",
                "tagDataDescription": "UT 1233  - pump pressure"
            }
        ]
    }
    
  • On Failure:
    • If you do not provide a basic authorization header you will get an empty body with a status of 401 Unauthorized.
    • If your basic authorization header Username or Password is incorrect, you will get this message with a status of 401 Unauthorized.
      {"message": "Unauthorized API access"}
    • If you do not supply a json object in your body, you will get this message with a status of 500 Internal Server Error.
      {"message": "Missing body in post."}
    • If you pass a RowStart less than zero, you will get this message with a status of 500 Internal Server Error.
      {"message": "RowStart cannot be less than 0."}
    • If you pass a RowCount less than zero, you will get this message with a status of 500 Internal Server Error.
      {"message": "RowCount cannot be less than 0."}
    • If TagSourceCodeName is required and you do not pass it, you will get this message with a status of 500 Internal Server Error.
      {"message": "You must pass a source code name."}
    • If a Start, End or last update date / time is required but not passed, you will get this message with a status of 500 Internal Server Error.
      {"message": "StartDatetimeUTC cannot be null"}
      OR
      {"message": "EndDatetimeUTC cannot be null"}
      OR
      {"message": "LastUpdateUTC cannot be null"}
    • If you pass an invalid version number, you will get this type of response.
      {"message": "ResponsesBetweenResponseDate Error: Invalid Version Requested [1.1].   at ...
    • If you do not pass a TagSourceCodeName you will get this message and a status of 500 - Internal Server Error.
       {"message":"You must pass a source code name."}
  • curl Example:
                            
    curl -X POST \
      http://localhost:9080/api/svc/Historian/HistorianAfterResponseID \
      -H 'Authorization: Basic R29QbGFudEV4dGVybmFsQWNjZXNzOjc3NjRFRDE3Q0QyODRGNzhBNDYy' \
      -H 'Cache-Control: no-cache' \
      -H 'Content-Type: application/json' \
      -d '{
    	"RowStart": 0,
    	"RowCount": 4,
    	"ReturnType": "json",
    	"ResponseID": 1000,
    	"TagSourceCodeName": "MAXIMO"
    }'
                        
  • C# Example:
                            
    var client = new RestClient("http://localhost:9080/api/svc/Historian/HistorianAfterResponseID");
    var request = new RestRequest(Method.POST);
    request.AddHeader("Cache-Control", "no-cache");
    request.AddHeader("Authorization", "Basic R29QbGFudEV4dGVybmFsQWNjZXNzOjc3NjRFRDE3Q0QyODRGNzhBNDYy");
    request.AddHeader("Content-Type", "application/json");
    request.AddParameter("undefined", "{\n\t\"RowStart\": 0,\n\t\"RowCount\": 4,\n\t\"ReturnType\": \"json\",\n\t\"ResponseID\": 1000,\n\t\"TagSourceCodeName\": \"MAXIMO\"\n}", ParameterType.RequestBody);
    IRestResponse response = client.Execute(request);
                        
  • Jquery Example:
                            
    var settings = {
      "async": true,
      "crossDomain": true,
      "url": "http://localhost:9080/api/svc/Historian/HistorianAfterResponseID",
      "method": "POST",
      "headers": {
        "Content-Type": "application/json",
        "Authorization": "Basic R29QbGFudEV4dGVybmFsQWNjZXNzOjc3NjRFRDE3Q0QyODRGNzhBNDYy",
        "Cache-Control": "no-cache"
      },
      "processData": false,
      "data": "{\n\t\"RowStart\": 0,\n\t\"RowCount\": 4,\n\t\"ReturnType\": \"json\",\n\t\"ResponseID\": 1000,\n\t\"TagSourceCodeName\": \"MAXIMO\"\n}"
    }
    
    $.ajax(settings).done(function (response) {
      console.log(response);
    });