Create getProductionOrder RESTful Consumer

Create getProductionOrder RESTful Consumer

Note that:

  • getProductionOrders is a RESTful Provider in the Providers → RESTful Endpoints → InstructorTools folder.

  • getProductionOrder is a RESTful Consumer in the Consumers → RESTful Configurations → Tutorial folder.



getProductionOrders RESTful Provider Endpoint

This is already built for you, but the code is provided below, for review.


RESTful Provider Response Message script

Python
req_path = request['path']
req_query = request['query']
req_headers = request['headers']
req_metadata = request['remote']
req_body = request['body']
res_headers = {}

eqPath = str(request['query']['path'])
line = eqPath.split('\\')[3:][0]

opsList = system.mes.getAvailableOperations(eqPath, '', False, False)
if opsList.size() == 0:
res_code = 400
res_content = {'error': "No Operations Configured on Line"}
return {'code': res_code, 'headers': res_headers, 'content': res_content}

matList = []
for item in opsList:
matList.append(item.getName().split('-')[0])

import random

firstStart = system.date.addHours(system.date.now(), 4)
firstEnd = system.date.addHours(firstStart, 1)
secondStart = system.date.addMinutes(firstEnd, 5)
secondEnd = system.date.addHours(secondStart, 2)



#generating some wo numbers
firstId = system.date.toMillis(system.date.now())
secondId = firstId + 1

res_content = {"Data":
{
"lines": [
{
"line": line,
"scheduled_items": [
{
"duration": 2.1171843383,
"end_dtm": firstEnd,
"id": system.date.toMillis(firstStart),
"item_type": "WORK_ORDER",
"newDuration": 0.0,
"overflow": False,
"related_data": [{
"ct_units": 0,
"id": firstId,
"item_code": random.choice(matList),
"item_desc1": "Product Description",
"item_desc2": "",
"item_net_weight": 0.0,
"item_size": random.random(),
"order_qty": 1200.0,
"remarks": "",
"routing_code": "Y901C721F8",
"site": "11",
"status_code": "C",
"type_code": "S"
}],
"sequence": 2,
"start_dtm": firstStart
},
{
"duration": 2.1171843383,
"end_dtm": secondEnd,
"id": system.date.toMillis(secondStart),
"item_type": "WORK_ORDER",
"newDuration": 0.0,
"overflow": False,
"related_data": [{
"ct_units": 0,
"id": secondId,
"item_code": random.choice(matList),
"item_desc1": "Great Product",
"item_desc2": "",
"item_net_weight": 0.0,
"item_size": 0.0,
"order_qty": 3600,
"remarks": "",
"routing_code": "Y901C721F8",
"site": "11",
"status_code": "C",
"type_code": "S"
}],
"sequence": 2,
"start_dtm": secondStart
}
]
}
]
}
}

res_code = 200




return {'code': res_code, 'headers': res_headers, 'content': res_content}

Configure getProductionOrder RESTful Consumer

  • Paste in the Endpoint URL:
    http://localhost:8088/system/ws/rest/InstructorTools/getProductionOrders

  • Create one URL Query String element named path as Data type = simple, Simple type = String. Set to the string value below:
    New Enterprise\Site 1\Packaging Area\Packaging Line 1

  • Create the Response Message by pressing  to populate the fields automatically.