GoPlant API: Get External Tag Source Codes
  • Description / Endpoint Version: 1.0
    This endpoint returns a list of available External Tag Source Codes to be used in endpoints that require a external tag source code.
  • 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:
    GoPlant - Historian
  • Accepts:
    URL: http://demo.goplant.mobi/api/svc/Historian/GetExternalTagSourceCodes
    Method: Post
    Authorization: Basic
    • Username: [Contact The GoPlant Administrator]
    • Password: [Contact The GoPlant Administrator]
    Headers:
    • Content-Type: application/json
    Body:
    • 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:
    { }
    
  • 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.
      • TagSourceCodes: A list of available External Tag Source Codes.
    Response Example:
    {
        "status": {
            "HTTPStatusCode": 200,
            "HTTPStatus": "OK",
            "RowStart": 0,
            "RowsReturned": 19,
            "LastIdReturned": -1,
            "RequestBegin": "2018-06-13T14:48:01.3184888Z",
            "StopWatch": {
                "IsRunning": true,
                "Elapsed": "00:00:00.0052261",
                "ElapsedMilliseconds": 5,
                "ElapsedTicks": 14952
            },
            "APIversion": "3.25.0.0",
            "EndpointVersionReturned": 1.0
            "ExternalRequest": {
                "RowStart": 0,
                "RowCount": 1000,
                "StartDatetimeUTC": "2018-05-01T15:00:00",
                "EndDatetimeUTC": "2018-06-01T15:00:00",
                "ResponseID": 150000,
                "TagSourceCodeName": "",
                "ReturnType": 1,
                "EndpointVersion": null,
                "EndpointVersionReturned": 1.0
            }
        },
        "data": [
            {
                "TagSourceCode": "MyTagSource1",
                "TagSourceDisplayName": "My Tag Source"
            },
            {
                "TagSourceCode": "MAXIMO",
                "TagSourceDisplayName": "Maximo"
            },
            {
                "TagSourceCode": "Test 21dgg",
                "TagSourceDisplayName": "Test 21"
            },
            {
                "TagSourceCode": "UNITECH",
                "TagSourceDisplayName": "Unitech"
            },
            {
                "TagSourceCode": "MYTAGSOURCE56",
                "TagSourceDisplayName": "Another Tag Source"
            },
            {
                "TagSourceCode": "KEVINTAGSOURCE",
                "TagSourceDisplayName": "KevintestTagSource"
            },
            {
                "TagSourceCode": "TAGFASQA",
                "TagSourceDisplayName": "tag fasqa"
            },
            {
                "TagSourceCode": "PHD",
                "TagSourceDisplayName": "PHD"
            },
            {
                "TagSourceCode": "DISPLAYNAME",
                "TagSourceDisplayName": "Display Name"
            },
            {
                "TagSourceCode": "N-SOURCE",
                "TagSourceDisplayName": "N-Source"
            },
            {
                "TagSourceCode": "DISPLAY",
                "TagSourceDisplayName": "Display Tag Name"
            },
            {
                "TagSourceCode": "DYNAMO",
                "TagSourceDisplayName": "Honeywell DynAMo"
            },
            {
                "TagSourceCode": "HACHWIMS",
                "TagSourceDisplayName": "Hach WIMS"
            },
            {
                "TagSourceCode": "IP21",
                "TagSourceDisplayName": "Aspen InfoPlus.21"
            },
            {
                "TagSourceCode": "MAINSAVER",
                "TagSourceDisplayName": "JB Systems Mainsaver"
            },
            {
                "TagSourceCode": "QUALITYSOURCE",
                "TagSourceDisplayName": "Quality Source"
            },
            {
                "TagSourceCode": "QATAG",
                "TagSourceDisplayName": "QA Tag"
            },
            {
                "TagSourceCode": "FORMAUTOMATIONSOLUTIONSTAGSOURCE",
                "TagSourceDisplayName": "Form Automation Solution TAG Source"
            },
            {
                "TagSourceCode": "OSIPI",
                "TagSourceDisplayName": "OSIsoft PI system"
            }
        ]
    }
    
  • 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 ...
  • curl Example:
                            
    curl -X POST \
      http://localhost:9080/api/svc/Historian/GetExternalTagSourceCodes \
      -H 'Authorization: Basic R29QbGFudEV4dGVybmFsQWNjZXNzOkRBRTRGQzVENUIyMTQxRkJBMzgw' \
      -H 'Cache-Control: no-cache' \
      -H 'Content-Type: application/json' \
      -H 'Postman-Token: a7a055f3-314d-4baf-a0ba-a5f22c14577b' \
      -d '{
    	"RowStart": 0,
    	"RowCount": 1000,
    	"ReturnType": "json",
    	"StartDatetimeUTC":"5/1/2018 15:00",
    	"EndDatetimeUTC": "6/1/2018 15:00",
    	"ResponseID": 150000,
    	"TagSourceCodeName": ""
    }'
                        
  • C# Example:
                            
    var client = new RestClient("http://localhost:9080/api/svc/Historian/GetExternalTagSourceCodes");
    var request = new RestRequest(Method.POST);
    request.AddHeader("Postman-Token", "a659bd13-c6dd-4183-8e57-952798e18ac9");
    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\": 1000,\n\t\"ReturnType\": \"json\",\n\t\"StartDatetimeUTC\":\"5/1/2018 15:00\",\n\t\"EndDatetimeUTC\": \"6/1/2018 15:00\",\n\t\"ResponseID\": 150000,\n\t\"TagSourceCodeName\": \"\"\n}", ParameterType.RequestBody);
    IRestResponse response = client.Execute(request);
                        
  • Jquery Example:
                            
    var settings = {
      "async": true,
      "crossDomain": true,
      "url": "http://localhost:9080/api/svc/Historian/GetExternalTagSourceCodes",
      "method": "POST",
      "headers": {
        "Content-Type": "application/json",
        "Authorization": "Basic R29QbGFudEV4dGVybmFsQWNjZXNzOjc3NjRFRDE3Q0QyODRGNzhBNDYy",
        "Cache-Control": "no-cache",
        "Postman-Token": "b610249d-7700-4718-86a8-178766c742de"
      },
      "processData": false,
      "data": "{\n\t\"RowStart\": 0,\n\t\"RowCount\": 1000,\n\t\"ReturnType\": \"json\",\n\t\"StartDatetimeUTC\":\"5/1/2018 15:00\",\n\t\"EndDatetimeUTC\": \"6/1/2018 15:00\",\n\t\"ResponseID\": 150000,\n\t\"TagSourceCodeName\": \"\"\n}"
    }
    
    $.ajax(settings).done(function (response) {
      console.log(response);
    });