--- title: "system.secsgem.getResponse" description: "Attempts to retrieve a response message from the Gateway." --- # system.secsgem.getResponse > Attempts to retrieve a response message from the Gateway. This function is used in **Python Scripting**. ## Description Attempts to retrieve a response message from the Gateway. The transaction id from the sent message is used to retrieve the response. ## Client Permission Restrictions This scripting function has no [Client Permission](projects\project-properties\project-properties.md#client---permissions) restrictions. ## Syntax `system.secsgem.deleteToolProgram(ppid)` ### Parameters Type | Parameter | Description ------- | ------- | ------ Integer| `transactionID` | The transactionID of the request and response. The transactionID is used to retrieve the response. Typically used in conjunction with [system.secsgem.sendRequest](appendix\scripting-functions\system-secsgem\system-secsgem-sendRequest.md) to generate a transactionID. String| `equipment` | Name of equipment connection. Integer| `timeout` | Specifies in seconds how long to wait for a response before returning None. If omitted the timeout will be 5 seconds. Integer| `poll` | Specifies in milliseconds how often to poll the system for a response. If omitted the poll will be 150 milliseconds. ### Returns **Object** - A Python Object representing a SECS response message. ### Scope Gateway, Designer, Client ## Code Examples ```python title="Code Snippet 1" # Replace the string below with the equipment name you want to send the request to. myEquipment = "EquipmentOne" # Define the contents of the body. We're using an empty string, since S1F1 doesn't expect a body, and we need to define something (Python's None will result in an exception). body = "" # Store the returned transactionID in a variable. transactionID = system.secsgem.sendRequest("S1F1", True, body, myEquipment) # Use the transactionID to lookup the response. response = system.secsgem.getResponse(transactionID, myEquipment, 2) # We're printing out the response here, but you could do something more useful instead. print response ``` ```python title="Code Snippet 2" # This example demonstrates how to retrieve the value of a Status Variable via S1F3. # If using the simulator that comes with the SECS/GEM module, this example will return the current time from the Clock Status Variable. # Replace the string below with the equipment name you want to send the request to. myEquipment = "EquipmentOne" # Define the contents of the body. The Clock Status Variable has an SVID of 1. body = [{"format":"U4", "value":1}] # Store the returned transactionID in a variable. transactionID = system.secsgem.sendRequest("S1F3", True, body, myEquipment) # Retrieve the response. response = system.secsgem.getResponse(transactionID, myEquipment, 2) ## We need to do some digging to get the value of the Clock: ## -The response is a Dictionary. ## -Inside of the response is the key "body". ## -The value of "body" is a Python List containing another Dictionary (which has our Clock value) ## Thus we use [0] to access the Dictionary. ## -The Dictionary contains a key named "value", which is the value of our clock. theDatetime = response["body"][0]["value"] # We parse the date into something more human readable, and print it out. print system.date.parse(theDatetime, "yyMMddHHmmss") ```