diff --git a/Sources/pyOpenRPA/Agent/A2O.py b/Sources/pyOpenRPA/Agent/A2O.py
index c01209ae..f16cdf1d 100644
--- a/Sources/pyOpenRPA/Agent/A2O.py
+++ b/Sources/pyOpenRPA/Agent/A2O.py
@@ -24,4 +24,10 @@ def _A2ODataSend(inGSettings, inDataDict):
# Send some logs to orchestrator
def LogListSend(inGSettings, inLogList):
lDataDict = { "HostNameUpperStr": inGSettings["AgentDict"]["HostNameUpperStr"], "UserUpperStr": inGSettings["AgentDict"]["UserUpperStr"], "LogList": inLogList}
+ _A2ODataSend(inGSettings=inGSettings, inDataDict=lDataDict)
+
+# Send some def result to the orchestrator by the Activity Item GUID str
+def ActivityReturnDictSend(inGSettings, inActivityItemGUIDStr, inReturn):
+ lDataDict = {"HostNameUpperStr": inGSettings["AgentDict"]["HostNameUpperStr"],
+ "UserUpperStr": inGSettings["AgentDict"]["UserUpperStr"], "ActivityReturnDict": {inActivityItemGUIDStr:inReturn}}
_A2ODataSend(inGSettings=inGSettings, inDataDict=lDataDict)
\ No newline at end of file
diff --git a/Sources/pyOpenRPA/Agent/Processor.py b/Sources/pyOpenRPA/Agent/Processor.py
index 302552b2..9413235f 100644
--- a/Sources/pyOpenRPA/Agent/Processor.py
+++ b/Sources/pyOpenRPA/Agent/Processor.py
@@ -1,5 +1,6 @@
# 1.2.0 - general processor - contains old orchestrator processor + RDPActive processor
import time, copy, threading
+from . import A2O
# Run processor synchronious
def ProcessorRunSync(inGSettings):
"""
@@ -10,7 +11,8 @@ def ProcessorRunSync(inGSettings):
# "ArgList":[1,2,3], # Args list
# "ArgDict":{"ttt":1,"222":2,"dsd":3}, # Args dictionary
# "ArgGSettings": None # Name of GSettings attribute: str (ArgDict) or index (for ArgList)
- # "ArgLogger": None # Name of GSettings attribute: str (ArgDict) or index (for ArgList)
+ # "ArgLogger": None, # Name of GSettings attribute: str (ArgDict) or index (for ArgList)
+ # "GUIDStr": "sadasd-asdas-d-asdasd", # ActivityItem GUID which identify the Activity
# },
],
"AliasDefDict": {}, # Storage for def with Str alias. To use it see pyOpenRPA.Orchestrator.ControlPanel
@@ -24,7 +26,13 @@ def ProcessorRunSync(inGSettings):
if len(lActivityList)>0:
if lL: lL.debug(f'Processor ActivityList len: {len(lActivityList)}')
lActivityItem = inGSettings["ProcessorDict"]["ActivityList"].pop(0) # Extract the first item from processor queue
- ActivityListExecute(inGSettings = inGSettings, inActivityList = [lActivityItem]) # execute the activity item
+ lResultList = ActivityListExecute(inGSettings = inGSettings, inActivityList = [lActivityItem]) # execute the activity item
+ #Some help code
+ if len(lResultList) == 0: lResultList= [None]
+ # Send result to Orc if we have GUIDStr
+ if "GUIDStr" in lActivityItem:
+ # Def to send to Orc
+ A2O.ActivityReturnDictSend(inGSettings=inGSettings, inActivityItemGUIDStr=lActivityItem["GUIDStr"],inReturn=lResultList[0])
else:
time.sleep(inGSettings["ProcessorDict"]["CheckIntervalSecFloat"]) # Sleep when list is empty
diff --git a/Sources/pyOpenRPA/Orchestrator/ServerSettings.py b/Sources/pyOpenRPA/Orchestrator/ServerSettings.py
index fef2460e..10e29ff5 100644
--- a/Sources/pyOpenRPA/Orchestrator/ServerSettings.py
+++ b/Sources/pyOpenRPA/Orchestrator/ServerSettings.py
@@ -400,6 +400,7 @@ def pyOpenRPA_Agent_O2A(inRequest, inGSettings):
lThisAgentDict["ConnectionCountInt"] -= 1 # Connection go to be closed - decrement the connection count
# See docs in Agent (pyOpenRPA.Agent.A2O)
def pyOpenRPA_Agent_A2O(inRequest, inGSettings):
+ lL = inGSettings["Logger"]
# Recieve the data
lValueStr = None
if inRequest.headers.get('Content-Length') is not None:
@@ -410,6 +411,12 @@ def pyOpenRPA_Agent_A2O(inRequest, inGSettings):
if "LogList" in lInput:
for lLogItemStr in lInput["LogList"]:
inGSettings["Logger"].info(lLogItemStr)
+ if "ActivityReturnDict" in lInput:
+ for lActivityReturnItemKeyStr in lInput["ActivityReturnDict"]:
+ lActivityReturnItemValue = lInput["ActivityReturnDict"][lActivityReturnItemKeyStr]
+ # Create item in gSettings
+ inGSettings["AgentActivityReturnDict"][lActivityReturnItemKeyStr]=SettingsTemplate.__AgentActivityReturnDictItemCreate__(inReturn=lActivityReturnItemValue)
+ if lL: lL.debug(f"SERVER: pyOpenRPA_Agent_A2O:: Has recieved result of the activity items from agent! ActivityItem GUID Str: {lActivityReturnItemKeyStr}; Return value: {lActivityReturnItemValue}")
def SettingsUpdate(inGlobalConfiguration):
import os
diff --git a/Sources/pyOpenRPA/Orchestrator/SettingsTemplate.py b/Sources/pyOpenRPA/Orchestrator/SettingsTemplate.py
index 224b383a..fa08048d 100644
--- a/Sources/pyOpenRPA/Orchestrator/SettingsTemplate.py
+++ b/Sources/pyOpenRPA/Orchestrator/SettingsTemplate.py
@@ -7,6 +7,7 @@ def __Create__():
"Autocleaner": {
# Some gurbage is collecting in g settings. So you can configure autocleaner to periodically clear gSettings
"IntervalSecFloat": 3600.0, # Sec float to periodically clear gsettings
+ "AgentActivityReturnLifetimeSecFloat": 300.0 # Time in seconds to life for activity result recieved from the agent
},
"Client": { # Settings about client web orchestrator
"Session": {
@@ -266,12 +267,21 @@ def __Create__():
},
"AgentDict": { # Will be filled when program runs
#("HostNameUpperStr", "UserUpperStr"): { "IsListenBool": True, "QueueList": [] }
+ },
+ "AgentActivityReturnDict": { # Will be filled when programs run - fill result of the Activity execution on the agent
+ # Key - Activity Item GUID str, Value {"Return": ..., "ReturnedByDatetime": datetime.datetime}
+ # If key exists - def has been completed
}
}
# Create full configuration for
def __AgentDictItemCreate__():
return {"IsListenBool":False, "ConnectionCountInt":0, "ConnectionFirstQueueItemCountInt":0, "ActivityList":[]}
+
+# Create full configuration for AgentActivityReturnDict
+def __AgentActivityReturnDictItemCreate__(inReturn):
+ return {"Return": inReturn, "ReturnedByDatetime": datetime.datetime.now()}
+
# Create full configuration for
def __UACClientAdminCreate__():
lResultDict = {
diff --git a/Sources/pyOpenRPA/Orchestrator/__Orchestrator__.py b/Sources/pyOpenRPA/Orchestrator/__Orchestrator__.py
index 5383fe52..4505684e 100644
--- a/Sources/pyOpenRPA/Orchestrator/__Orchestrator__.py
+++ b/Sources/pyOpenRPA/Orchestrator/__Orchestrator__.py
@@ -35,13 +35,15 @@ def AgentActivityItemAdd(inGSettings, inHostNameStr, inUserStr, inActivityItemDi
:param inHostNameStr: Agent host name
:param inUserStr: User login, where agent is based
:param inActivityItemDict: ActivityItem
- :return: None
+ :return: GUID String of the ActivityItem - you can wait (sync or async) result by this guid!
"""
lActivityItemDict = copy.deepcopy(inActivityItemDict)
# Add GUIDStr if not exist
+ lGUIDStr = None
if "GUIDStr" not in lActivityItemDict:
lGUIDStr = str(uuid.uuid4()) # generate new GUID
lActivityItemDict["GUIDStr"] = lGUIDStr
+ else: lGUIDStr = lActivityItemDict["GUIDStr"]
# Add CreatedByDatetime
lActivityItemDict["CreatedByDatetime"] = datetime.datetime.now()
# Main alg
@@ -50,7 +52,35 @@ def AgentActivityItemAdd(inGSettings, inHostNameStr, inUserStr, inActivityItemDi
inGSettings["AgentDict"][lAgentDictItemKeyTurple] = SettingsTemplate.__AgentDictItemCreate__()
lThisAgentDict = inGSettings["AgentDict"][lAgentDictItemKeyTurple]
lThisAgentDict["ActivityList"].append(lActivityItemDict)
+ # Return the result
+ return lGUIDStr
+def AgentActivityItemReturnExists(inGSettings, inGUIDStr):
+ """
+ Check by GUID if ActivityItem has been executed and result has come to the Orchestrator
+
+ :param inGSettings: Global settings dict (singleton)
+ :param inGUIDStr: GUID String of the ActivityItem - you can wait (sync or async) result by this guid!
+ :return: True - result has been received from the Agent to orc; False - else case
+ """
+ # Check if GUID is exists in dict - has been recieved
+ return inGUIDStr in inGSettings["AgentActivityReturnDict"]
+
+
+def AgentActivityItemReturnGet(inGSettings, inGUIDStr, inCheckIntervalSecFloat = 0.5):
+ """
+ Work synchroniously! Wait while result will be recieved. Get the result of the ActivityItem execution on the Agent side. Before this please check by the def AgentActivityItemReturnExists that result has come to the Orchestrator
+
+ :param inGSettings: Global settings dict (singleton)
+ :param inGUIDStr: GUID String of the ActivityItem - you can wait (sync or async) result by this guid!
+ :param inCheckIntervalSecFloat: Interval in sec of the check Activity Item result
+ :return: Result of the ActivityItem executed on the Agent side anr transmitted to the Orchestrator. IMPORTANT! ONLY JSON ENABLED Types CAN BE TRANSMITTED TO ORCHESTRATOR!
+ """
+ # Wait while result will not come here
+ while not AgentActivityItemReturnExists(inGSettings=inGSettings, inGUIDStr=inGUIDStr):
+ time.sleep(inCheckIntervalSecFloat)
+ # Return the result
+ return inGSettings["AgentActivityReturnDict"][inGUIDStr]
def AgentOSCMD(inGSettings, inHostNameStr, inUserStr, inCMDStr, inRunAsyncBool=True, inSendOutputToOrchestratorLogsBool=True, inCMDEncodingStr="cp1251"):
"""
@@ -63,7 +93,7 @@ def AgentOSCMD(inGSettings, inHostNameStr, inUserStr, inCMDStr, inRunAsyncBool=T
:param inRunAsyncBool: True - Agent processor don't wait execution; False - Agent processor wait cmd execution
:param inSendOutputToOrchestratorLogsBool: True - catch cmd execution output and send it to the Orchestrator logs; Flase - else case; Default True
:param inCMDEncodingStr: Set the encoding of the DOS window on the Agent server session. Windows is beautiful :) . Default is "cp1251" early was "cp866" - need test
-
+ :return: GUID String of the ActivityItem - you can wait (sync or async) result by this guid!
"""
lActivityItemDict = {
@@ -74,7 +104,7 @@ def AgentOSCMD(inGSettings, inHostNameStr, inUserStr, inCMDStr, inRunAsyncBool=T
"ArgLogger": None # Name of GSettings attribute: str (ArgDict) or index (for ArgList)
}
#Send item in AgentDict for the futher data transmition
- AgentActivityItemAdd(inGSettings=inGSettings, inHostNameStr=inHostNameStr, inUserStr=inUserStr, inActivityItemDict=lActivityItemDict)
+ return AgentActivityItemAdd(inGSettings=inGSettings, inHostNameStr=inHostNameStr, inUserStr=inUserStr, inActivityItemDict=lActivityItemDict)
def AgentOSFileBinaryDataBytesCreate(inGSettings, inHostNameStr, inUserStr, inFilePathStr, inFileDataBytes):
"""
@@ -85,6 +115,7 @@ def AgentOSFileBinaryDataBytesCreate(inGSettings, inHostNameStr, inUserStr, inFi
:param inUserStr:
:param inFilePathStr:
:param inFileDataBytes:
+ :return: GUID String of the ActivityItem - you can wait (sync or async) result by this guid!
"""
lFileDataBase64Str = base64.b64encode(inFileDataBytes).decode("utf-8")
@@ -96,7 +127,7 @@ def AgentOSFileBinaryDataBytesCreate(inGSettings, inHostNameStr, inUserStr, inFi
"ArgLogger": None # Name of GSettings attribute: str (ArgDict) or index (for ArgList)
}
#Send item in AgentDict for the futher data transmition
- AgentActivityItemAdd(inGSettings=inGSettings, inHostNameStr=inHostNameStr, inUserStr=inUserStr, inActivityItemDict=lActivityItemDict)
+ return AgentActivityItemAdd(inGSettings=inGSettings, inHostNameStr=inHostNameStr, inUserStr=inUserStr, inActivityItemDict=lActivityItemDict)
def AgentOSFileBinaryDataBase64StrCreate(inGSettings, inHostNameStr, inUserStr, inFilePathStr, inFileDataBase64Str):
@@ -108,6 +139,7 @@ def AgentOSFileBinaryDataBase64StrCreate(inGSettings, inHostNameStr, inUserStr,
:param inUserStr:
:param inFilePathStr:
:param inFileDataBase64Str:
+ :return: GUID String of the ActivityItem - you can wait (sync or async) result by this guid!
"""
lActivityItemDict = {
@@ -118,7 +150,7 @@ def AgentOSFileBinaryDataBase64StrCreate(inGSettings, inHostNameStr, inUserStr,
"ArgLogger": None # Name of GSettings attribute: str (ArgDict) or index (for ArgList)
}
#Send item in AgentDict for the futher data transmition
- AgentActivityItemAdd(inGSettings=inGSettings, inHostNameStr=inHostNameStr, inUserStr=inUserStr, inActivityItemDict=lActivityItemDict)
+ return AgentActivityItemAdd(inGSettings=inGSettings, inHostNameStr=inHostNameStr, inUserStr=inUserStr, inActivityItemDict=lActivityItemDict)
# Send text file to Agent (string)
def AgentOSFileTextDataStrCreate(inGSettings, inHostNameStr, inUserStr, inFilePathStr, inFileDataStr, inEncodingStr = "utf-8"):
@@ -131,6 +163,7 @@ def AgentOSFileTextDataStrCreate(inGSettings, inHostNameStr, inUserStr, inFilePa
:param inFilePathStr:
:param inFileDataStr:
:param inEncodingStr:
+ :return: GUID String of the ActivityItem - you can wait (sync or async) result by this guid!
"""
lActivityItemDict = {
@@ -141,7 +174,7 @@ def AgentOSFileTextDataStrCreate(inGSettings, inHostNameStr, inUserStr, inFilePa
"ArgLogger": None # Name of GSettings attribute: str (ArgDict) or index (for ArgList)
}
#Send item in AgentDict for the futher data transmition
- AgentActivityItemAdd(inGSettings=inGSettings, inHostNameStr=inHostNameStr, inUserStr=inUserStr, inActivityItemDict=lActivityItemDict)
+ return AgentActivityItemAdd(inGSettings=inGSettings, inHostNameStr=inHostNameStr, inUserStr=inUserStr, inActivityItemDict=lActivityItemDict)
# OS DEFS
def OSCredentialsVerify(inUserStr, inPasswordStr, inDomainStr=""): ##
@@ -1614,6 +1647,15 @@ def GSettingsAutocleaner(inGSettings):
else:
if lL: lL.debug(f"Client > Session > TechnicalSessionGUIDCache > lItemKeyStr: Lifetime is expired. Remove from gSettings") # Info
inGSettings["Client"]["Session"]["TechnicalSessionGUIDCache"] = lTechnicalSessionGUIDCacheNew # Set updated Cache
+ # Clean old items in AgentActivityReturnDict > GUIDStr > ReturnedByDatetime
+ lTechnicalAgentActivityReturnDictNew = {}
+ for lItemKeyStr in inGSettings["AgentActivityReturnDict"]:
+ lItemValue = inGSettings["AgentActivityReturnDict"][lItemKeyStr]
+ if (lNowDatetime - lItemValue["ReturnedByDatetime"]).total_seconds() < inGSettings["Autocleaner"]["AgentActivityReturnLifetimeSecFloat"]: # Add if lifetime is ok
+ lTechnicalAgentActivityReturnDictNew[lItemKeyStr]=lItemValue # Lifetime is ok - set
+ else:
+ if lL: lL.debug(f"AgentActivityReturnDict lItemKeyStr: Lifetime is expired. Remove from gSettings") # Info
+ inGSettings["AgentActivityReturnDict"] = lTechnicalAgentActivityReturnDictNew # Set updated Cache
# # # # # # # # # # # # # # # # # # # # # # # # # #
from .. import __version__ # Get version from the package
diff --git a/Wiki/ENG_Guide/html/Orchestrator/02_Defs.html b/Wiki/ENG_Guide/html/Orchestrator/02_Defs.html
index 92b818ae..f8486dcf 100644
--- a/Wiki/ENG_Guide/html/Orchestrator/02_Defs.html
+++ b/Wiki/ENG_Guide/html/Orchestrator/02_Defs.html
@@ -256,6 +256,12 @@
AgentActivityItemAdd (inGSettings, …)
|
Add activity in AgentDict. |
+AgentActivityItemReturnExists (inGSettings, …)
|
+Check by GUID if ActivityItem has been executed and result has come to the Orchestrator |
+
+AgentActivityItemReturnGet (inGSettings, …)
|
+Work synchroniously! Wait while result will be recieved. |
+
AgentOSCMD (inGSettings, inHostNameStr, …)
|
Send CMD to OS thought the pyOpenRPA.Agent daemon. |
@@ -410,7 +416,42 @@
Returns
-None
+GUID String of the ActivityItem - you can wait (sync or async) result by this guid!
+
+
+
+
+
+-
+
pyOpenRPA.Orchestrator.__Orchestrator__.
AgentActivityItemReturnExists
(inGSettings, inGUIDStr)[source]
+Check by GUID if ActivityItem has been executed and result has come to the Orchestrator
+
+- Parameters
+-
+
+- Returns
+True - result has been received from the Agent to orc; False - else case
+
+
+
+
+
+-
+
pyOpenRPA.Orchestrator.__Orchestrator__.
AgentActivityItemReturnGet
(inGSettings, inGUIDStr, inCheckIntervalSecFloat=0.5)[source]
+Work synchroniously! Wait while result will be recieved. Get the result of the ActivityItem execution on the Agent side. Before this please check by the def AgentActivityItemReturnExists that result has come to the Orchestrator
+
+- Parameters
+
+inGSettings – Global settings dict (singleton)
+inGUIDStr – GUID String of the ActivityItem - you can wait (sync or async) result by this guid!
+inCheckIntervalSecFloat – Interval in sec of the check Activity Item result
+
+
+- Returns
+Result of the ActivityItem executed on the Agent side anr transmitted to the Orchestrator. IMPORTANT! ONLY JSON ENABLED Types CAN BE TRANSMITTED TO ORCHESTRATOR!
@@ -431,6 +472,9 @@
inCMDEncodingStr – Set the encoding of the DOS window on the Agent server session. Windows is beautiful :) . Default is “cp1251” early was “cp866” - need test
+Returns
+GUID String of the ActivityItem - you can wait (sync or async) result by this guid!
+
@@ -448,6 +492,9 @@
inFileDataBase64Str –
+Returns
+GUID String of the ActivityItem - you can wait (sync or async) result by this guid!
+
@@ -465,6 +512,9 @@
inFileDataBytes –
+Returns
+GUID String of the ActivityItem - you can wait (sync or async) result by this guid!
+
@@ -483,6 +533,9 @@
inEncodingStr –
+Returns
+GUID String of the ActivityItem - you can wait (sync or async) result by this guid!
+
diff --git a/Wiki/ENG_Guide/html/Orchestrator/03_gSettingsTemplate.html b/Wiki/ENG_Guide/html/Orchestrator/03_gSettingsTemplate.html
index 1c11aa2c..7b929720 100644
--- a/Wiki/ENG_Guide/html/Orchestrator/03_gSettingsTemplate.html
+++ b/Wiki/ENG_Guide/html/Orchestrator/03_gSettingsTemplate.html
@@ -190,6 +190,7 @@
"Autocleaner": {
# Some gurbage is collecting in g settings. So you can configure autocleaner to periodically clear gSettings
"IntervalSecFloat": 3600.0, # Sec float to periodically clear gsettings
+ "AgentActivityReturnLifetimeSecFloat": 300.0 # Time in seconds to life for activity result recieved from the agent
},
"Client": { # Settings about client web orchestrator
"Session": {
@@ -449,12 +450,21 @@
},
"AgentDict": { # Will be filled when program runs
#("HostNameUpperStr", "UserUpperStr"): { "IsListenBool": True, "QueueList": [] }
+ },
+ "AgentActivityReturnDict": { # Will be filled when programs run - fill result of the Activity execution on the agent
+ # Key - Activity Item GUID str, Value {"Return": ..., "ReturnedByDatetime": datetime.datetime}
+ # If key exists - def has been completed
}
}
# Create full configuration for
def __AgentDictItemCreate__():
return {"IsListenBool":False, "ConnectionCountInt":0, "ConnectionFirstQueueItemCountInt":0, "ActivityList":[]}
+
+# Create full configuration for AgentActivityReturnDict
+def __AgentActivityReturnDictItemCreate__(inReturn):
+ return {"Return": inReturn, "ReturnedByDatetime": datetime.datetime.now()}
+
# Create full configuration for
def __UACClientAdminCreate__():
lResultDict = {
diff --git a/Wiki/ENG_Guide/html/_modules/pyOpenRPA/Orchestrator/__Orchestrator__.html b/Wiki/ENG_Guide/html/_modules/pyOpenRPA/Orchestrator/__Orchestrator__.html
index 1601c265..7cb60d63 100644
--- a/Wiki/ENG_Guide/html/_modules/pyOpenRPA/Orchestrator/__Orchestrator__.html
+++ b/Wiki/ENG_Guide/html/_modules/pyOpenRPA/Orchestrator/__Orchestrator__.html
@@ -212,13 +212,15 @@
:param inHostNameStr: Agent host name
:param inUserStr: User login, where agent is based
:param inActivityItemDict: ActivityItem
- :return: None
+ :return: GUID String of the ActivityItem - you can wait (sync or async) result by this guid!
"""
lActivityItemDict = copy.deepcopy(inActivityItemDict)
# Add GUIDStr if not exist
+ lGUIDStr = None
if "GUIDStr" not in lActivityItemDict:
lGUIDStr = str(uuid.uuid4()) # generate new GUID
lActivityItemDict["GUIDStr"] = lGUIDStr
+ else: lGUIDStr = lActivityItemDict["GUIDStr"]
# Add CreatedByDatetime
lActivityItemDict["CreatedByDatetime"] = datetime.datetime.now()
# Main alg
@@ -226,8 +228,36 @@
if lAgentDictItemKeyTurple not in inGSettings["AgentDict"]:
inGSettings["AgentDict"][lAgentDictItemKeyTurple] = SettingsTemplate.__AgentDictItemCreate__()
lThisAgentDict = inGSettings["AgentDict"][lAgentDictItemKeyTurple]
- lThisAgentDict["ActivityList"].append(lActivityItemDict)
+ lThisAgentDict["ActivityList"].append(lActivityItemDict)
+ # Return the result
+ return lGUIDStr
+[docs]def AgentActivityItemReturnExists(inGSettings, inGUIDStr):
+
"""
+
Check by GUID if ActivityItem has been executed and result has come to the Orchestrator
+
+
:param inGSettings: Global settings dict (singleton)
+
:param inGUIDStr: GUID String of the ActivityItem - you can wait (sync or async) result by this guid!
+
:return: True - result has been received from the Agent to orc; False - else case
+
"""
+
# Check if GUID is exists in dict - has been recieved
+
return inGUIDStr in inGSettings["AgentActivityReturnDict"]
+
+
+[docs]def AgentActivityItemReturnGet(inGSettings, inGUIDStr, inCheckIntervalSecFloat = 0.5):
+
"""
+
Work synchroniously! Wait while result will be recieved. Get the result of the ActivityItem execution on the Agent side. Before this please check by the def AgentActivityItemReturnExists that result has come to the Orchestrator
+
+
:param inGSettings: Global settings dict (singleton)
+
:param inGUIDStr: GUID String of the ActivityItem - you can wait (sync or async) result by this guid!
+
:param inCheckIntervalSecFloat: Interval in sec of the check Activity Item result
+
:return: Result of the ActivityItem executed on the Agent side anr transmitted to the Orchestrator. IMPORTANT! ONLY JSON ENABLED Types CAN BE TRANSMITTED TO ORCHESTRATOR!
+
"""
+
# Wait while result will not come here
+
while not AgentActivityItemReturnExists(inGSettings=inGSettings, inGUIDStr=inGUIDStr):
+
time.sleep(inCheckIntervalSecFloat)
+
# Return the result
+
return inGSettings["AgentActivityReturnDict"][inGUIDStr]
[docs]def AgentOSCMD(inGSettings, inHostNameStr, inUserStr, inCMDStr, inRunAsyncBool=True, inSendOutputToOrchestratorLogsBool=True, inCMDEncodingStr="cp1251"):
"""
@@ -240,7 +270,7 @@
:param inRunAsyncBool: True - Agent processor don't wait execution; False - Agent processor wait cmd execution
:param inSendOutputToOrchestratorLogsBool: True - catch cmd execution output and send it to the Orchestrator logs; Flase - else case; Default True
:param inCMDEncodingStr: Set the encoding of the DOS window on the Agent server session. Windows is beautiful :) . Default is "cp1251" early was "cp866" - need test
-
+
:return: GUID String of the ActivityItem - you can wait (sync or async) result by this guid!
"""
lActivityItemDict = {
@@ -251,7 +281,7 @@
"ArgLogger": None # Name of GSettings attribute: str (ArgDict) or index (for ArgList)
}
#Send item in AgentDict for the futher data transmition
-
AgentActivityItemAdd(inGSettings=inGSettings, inHostNameStr=inHostNameStr, inUserStr=inUserStr, inActivityItemDict=lActivityItemDict)
+ return AgentActivityItemAdd(inGSettings=inGSettings, inHostNameStr=inHostNameStr, inUserStr=inUserStr, inActivityItemDict=lActivityItemDict)
[docs]def AgentOSFileBinaryDataBytesCreate(inGSettings, inHostNameStr, inUserStr, inFilePathStr, inFileDataBytes):
"""
@@ -262,6 +292,7 @@
:param inUserStr:
:param inFilePathStr:
:param inFileDataBytes:
+
:return: GUID String of the ActivityItem - you can wait (sync or async) result by this guid!
"""
lFileDataBase64Str = base64.b64encode(inFileDataBytes).decode("utf-8")
@@ -273,7 +304,7 @@
"ArgLogger": None # Name of GSettings attribute: str (ArgDict) or index (for ArgList)
}
#Send item in AgentDict for the futher data transmition
-
AgentActivityItemAdd(inGSettings=inGSettings, inHostNameStr=inHostNameStr, inUserStr=inUserStr, inActivityItemDict=lActivityItemDict)
+ return AgentActivityItemAdd(inGSettings=inGSettings, inHostNameStr=inHostNameStr, inUserStr=inUserStr, inActivityItemDict=lActivityItemDict)
[docs]def AgentOSFileBinaryDataBase64StrCreate(inGSettings, inHostNameStr, inUserStr, inFilePathStr, inFileDataBase64Str):
@@ -285,6 +316,7 @@
:param inUserStr:
:param inFilePathStr:
:param inFileDataBase64Str:
+
:return: GUID String of the ActivityItem - you can wait (sync or async) result by this guid!
"""
lActivityItemDict = {
@@ -295,7 +327,7 @@
"ArgLogger": None # Name of GSettings attribute: str (ArgDict) or index (for ArgList)
}
#Send item in AgentDict for the futher data transmition
-
AgentActivityItemAdd(inGSettings=inGSettings, inHostNameStr=inHostNameStr, inUserStr=inUserStr, inActivityItemDict=lActivityItemDict)
+ return AgentActivityItemAdd(inGSettings=inGSettings, inHostNameStr=inHostNameStr, inUserStr=inUserStr, inActivityItemDict=lActivityItemDict)
# Send text file to Agent (string)
[docs]def AgentOSFileTextDataStrCreate(inGSettings, inHostNameStr, inUserStr, inFilePathStr, inFileDataStr, inEncodingStr = "utf-8"):
@@ -308,6 +340,7 @@
:param inFilePathStr:
:param inFileDataStr:
:param inEncodingStr:
+
:return: GUID String of the ActivityItem - you can wait (sync or async) result by this guid!
"""
lActivityItemDict = {
@@ -318,7 +351,7 @@
"ArgLogger": None # Name of GSettings attribute: str (ArgDict) or index (for ArgList)
}
#Send item in AgentDict for the futher data transmition
-
AgentActivityItemAdd(inGSettings=inGSettings, inHostNameStr=inHostNameStr, inUserStr=inUserStr, inActivityItemDict=lActivityItemDict)
+ return AgentActivityItemAdd(inGSettings=inGSettings, inHostNameStr=inHostNameStr, inUserStr=inUserStr, inActivityItemDict=lActivityItemDict)
# OS DEFS
[docs]def OSCredentialsVerify(inUserStr, inPasswordStr, inDomainStr=""): ##
@@ -1790,7 +1823,16 @@
lTechnicalSessionGUIDCacheNew[lItemKeyStr]=lItemValue # Lifetime is ok - set
else:
if lL: lL.debug(f"Client > Session > TechnicalSessionGUIDCache > lItemKeyStr: Lifetime is expired. Remove from gSettings") # Info
-
inGSettings["Client"]["Session"]["TechnicalSessionGUIDCache"] = lTechnicalSessionGUIDCacheNew # Set updated Cache
+ inGSettings["Client"]["Session"]["TechnicalSessionGUIDCache"] = lTechnicalSessionGUIDCacheNew # Set updated Cache
+ # Clean old items in AgentActivityReturnDict > GUIDStr > ReturnedByDatetime
+ lTechnicalAgentActivityReturnDictNew = {}
+ for lItemKeyStr in inGSettings["AgentActivityReturnDict"]:
+ lItemValue = inGSettings["AgentActivityReturnDict"][lItemKeyStr]
+ if (lNowDatetime - lItemValue["ReturnedByDatetime"]).total_seconds() < inGSettings["Autocleaner"]["AgentActivityReturnLifetimeSecFloat"]: # Add if lifetime is ok
+ lTechnicalAgentActivityReturnDictNew[lItemKeyStr]=lItemValue # Lifetime is ok - set
+ else:
+ if lL: lL.debug(f"AgentActivityReturnDict lItemKeyStr: Lifetime is expired. Remove from gSettings") # Info
+ inGSettings["AgentActivityReturnDict"] = lTechnicalAgentActivityReturnDictNew # Set updated Cache
# # # # # # # # # # # # # # # # # # # # # # # # # #
from .. import __version__ # Get version from the package
diff --git a/Wiki/ENG_Guide/html/genindex.html b/Wiki/ENG_Guide/html/genindex.html
index 7af9a565..b898b740 100644
--- a/Wiki/ENG_Guide/html/genindex.html
+++ b/Wiki/ENG_Guide/html/genindex.html
@@ -194,10 +194,14 @@
|
+ - AgentOSCMD() (in module pyOpenRPA.Orchestrator.__Orchestrator__)
+
- AgentOSFileBinaryDataBase64StrCreate() (in module pyOpenRPA.Orchestrator.__Orchestrator__)
- AgentOSFileBinaryDataBytesCreate() (in module pyOpenRPA.Orchestrator.__Orchestrator__)
diff --git a/Wiki/ENG_Guide/html/objects.inv b/Wiki/ENG_Guide/html/objects.inv
index 17d1623d..bb085cd8 100644
Binary files a/Wiki/ENG_Guide/html/objects.inv and b/Wiki/ENG_Guide/html/objects.inv differ
diff --git a/Wiki/ENG_Guide/html/searchindex.js b/Wiki/ENG_Guide/html/searchindex.js
index 0cb5a76c..2f9f7781 100644
--- a/Wiki/ENG_Guide/html/searchindex.js
+++ b/Wiki/ENG_Guide/html/searchindex.js
@@ -1 +1 @@
-Search.setIndex({docnames:["01_HowToInstall","02_RoadMap","03_Copyrights_Contacts","Orchestrator/01_Orchestrator","Orchestrator/02_Defs","Orchestrator/03_gSettingsTemplate","Orchestrator/04_HowToUse","Orchestrator/05_UAC","Robot/01_Robot","Robot/02_Defs","Robot/03_HowToUse","Robot/04_Dependencies","Studio/01_Studio","Studio/02_HowToUse","index"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,"sphinx.ext.todo":2,"sphinx.ext.viewcode":1,sphinx:56},filenames:["01_HowToInstall.rst","02_RoadMap.rst","03_Copyrights_Contacts.rst","Orchestrator\\01_Orchestrator.rst","Orchestrator\\02_Defs.rst","Orchestrator\\03_gSettingsTemplate.rst","Orchestrator\\04_HowToUse.rst","Orchestrator\\05_UAC.rst","Robot\\01_Robot.rst","Robot\\02_Defs.rst","Robot\\03_HowToUse.rst","Robot\\04_Dependencies.rst","Studio\\01_Studio.rst","Studio\\02_HowToUse.rst","index.rst"],objects:{"pyOpenRPA.Orchestrator":{__Orchestrator__:[4,0,0,"-"]},"pyOpenRPA.Orchestrator.__Orchestrator__":{AgentActivityItemAdd:[4,1,1,""],AgentOSCMD:[4,1,1,""],AgentOSFileBinaryDataBase64StrCreate:[4,1,1,""],AgentOSFileBinaryDataBytesCreate:[4,1,1,""],AgentOSFileTextDataStrCreate:[4,1,1,""],GSettingsAutocleaner:[4,1,1,""],GSettingsKeyListValueAppend:[4,1,1,""],GSettingsKeyListValueGet:[4,1,1,""],GSettingsKeyListValueOperatorPlus:[4,1,1,""],GSettingsKeyListValueSet:[4,1,1,""],OSCMD:[4,1,1,""],OSCredentialsVerify:[4,1,1,""],OrchestratorRestart:[4,1,1,""],OrchestratorSessionSave:[4,1,1,""],ProcessIsStarted:[4,1,1,""],ProcessListGet:[4,1,1,""],ProcessStart:[4,1,1,""],ProcessStop:[4,1,1,""],ProcessorActivityItemAppend:[4,1,1,""],ProcessorActivityItemCreate:[4,1,1,""],ProcessorAliasDefCreate:[4,1,1,""],ProcessorAliasDefUpdate:[4,1,1,""],PythonStart:[4,1,1,""],RDPSessionCMDRun:[4,1,1,""],RDPSessionConnect:[4,1,1,""],RDPSessionDisconnect:[4,1,1,""],RDPSessionDublicatesResolve:[4,1,1,""],RDPSessionFileStoredRecieve:[4,1,1,""],RDPSessionFileStoredSend:[4,1,1,""],RDPSessionLogoff:[4,1,1,""],RDPSessionMonitorStop:[4,1,1,""],RDPSessionProcessStartIfNotRunning:[4,1,1,""],RDPSessionProcessStop:[4,1,1,""],RDPSessionReconnect:[4,1,1,""],RDPSessionResponsibilityCheck:[4,1,1,""],RDPTemplateCreate:[4,1,1,""],SchedulerActivityTimeAddWeekly:[4,1,1,""],UACKeyListCheck:[4,1,1,""],UACSuperTokenUpdate:[4,1,1,""],UACUpdate:[4,1,1,""],WebCPUpdate:[4,1,1,""],WebURLConnectDef:[4,1,1,""],WebURLConnectFile:[4,1,1,""],WebURLConnectFolder:[4,1,1,""],WebUserInfoGet:[4,1,1,""],WebUserIsSuperToken:[4,1,1,""],WebUserUACHierarchyGet:[4,1,1,""]},"pyOpenRPA.Robot":{UIDesktop:[9,0,0,"-"]},"pyOpenRPA.Robot.UIDesktop":{Get_OSBitnessInt:[9,1,1,""],PWASpecification_Get_PWAApplication:[9,1,1,""],PWASpecification_Get_UIO:[9,1,1,""],UIOSelectorSecs_WaitAppear_Bool:[9,1,1,""],UIOSelectorSecs_WaitDisappear_Bool:[9,1,1,""],UIOSelectorUIOActivity_Run_Dict:[9,1,1,""],UIOSelector_Exist_Bool:[9,1,1,""],UIOSelector_FocusHighlight:[9,1,1,""],UIOSelector_GetChildList_UIOList:[9,1,1,""],UIOSelector_Get_BitnessInt:[9,1,1,""],UIOSelector_Get_BitnessStr:[9,1,1,""],UIOSelector_Get_UIO:[9,1,1,""],UIOSelector_Get_UIOActivityList:[9,1,1,""],UIOSelector_Get_UIOInfo:[9,1,1,""],UIOSelector_Get_UIOList:[9,1,1,""],UIOSelector_Highlight:[9,1,1,""],UIOSelector_SafeOtherGet_Process:[9,1,1,""],UIOSelector_SearchChildByMouse_UIO:[9,1,1,""],UIOSelector_SearchChildByMouse_UIOTree:[9,1,1,""],UIOSelector_TryRestore_Dict:[9,1,1,""],UIOSelectorsSecs_WaitAppear_List:[9,1,1,""],UIOSelectorsSecs_WaitDisappear_List:[9,1,1,""]}},objnames:{"0":["py","module","Python module"],"1":["py","function","Python function"]},objtypes:{"0":"py:module","1":"py:function"},terms:{"0643":6,"100":5,"1050":[4,5],"120":5,"127":4,"1680":[4,5],"1680x1050":[4,5],"1992":6,"2008":[0,14],"2012":0,"2019":14,"2021":1,"222":[3,5],"2999226":0,"300":5,"3389":[4,5],"3600":5,"3720":[0,9,10],"3720python":10,"3rd":14,"4100115560661986":14,"412":4,"600":5,"640x480":[4,5],"722":2,"77767775":4,"77777sdfsdf77777dsfdfsf77777777":4,"8081":5,"906":2,"\u0432":9,"\u0432\u0445\u043e\u0434\u043d\u043e\u0439":9,"\u0432\u044b\u043a\u0438\u043d\u0443\u0442\u044c":9,"\u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c":9,"\u0434\u0435\u043c\u043e\u043d\u0430":5,"\u0434\u0435\u043c\u043e\u043d\u0443":5,"\u043a":[5,9],"\u043a\u043e\u043d\u043d\u0435\u043a\u0442":9,"\u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443":5,"\u043b\u043e\u0433\u0433\u0435\u0440\u0430":5,"\u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f":5,"\u043c\u043e\u0436\u043d\u043e":5,"\u043d\u0435":9,"\u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u0438":9,"\u043e\u0448\u0438\u0431\u043a\u0443":9,"\u043f\u043e":5,"\u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430":5,"\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f":5,"\u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c":9,"\u043f\u043e\u0440\u0442":5,"\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0443":9,"\u043f\u0443\u0441\u0442\u043e\u0433\u043e":9,"\u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435":5,"\u0441\u0435\u0440\u0432\u0435\u0440\u0430":5,"\u0441\u0435\u0442\u0435\u0432\u043e\u0435":5,"\u0441\u043b\u0443\u0447\u0430\u0435":9,"\u0441\u043e\u0437\u0434\u0430\u0442\u044c":5,"\u0441\u043f\u0438\u0441\u043a\u0430":9,"\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f":9,"\u0444\u0430\u0439\u043b":5,"\u0444\u043b\u0430\u0433":9,"\u0447\u0442\u043e":9,"\u044d\u043b\u0435\u043c\u0435\u043d\u0442":9,"case":[3,4,5,9,10],"catch":4,"class":10,"default":[4,5,10,13],"float":[3,5,9],"function":[2,4,5,8,9,10],"import":[3,4,5,6,8,9,10],"int":[3,4,9,10],"long":2,"new":[2,3,4,5,6],"return":[4,5,9,10],"switch":11,"true":[4,5,6,7,8,9,10],"try":[4,6,9],"var":4,Abs:5,Are:0,DOS:4,For:[0,6,10,13],Has:5,NOT:4,RUS:[1,14],The:[0,3,8],USEFUL:4,USe:[5,7],Use:[2,4,6],Will:[4,5],__agentdictitemcreate__:5,__create__:5,__main__:6,__name__:6,__orchestrator__:14,__uacclientadmincreate__:[5,6],_sessionlast_rdplist:4,a2o:4,abil:10,abl:14,about:[2,3,4,5],abs:4,absolut:[2,4,5,6,14],abspath:6,access:[4,5,6,14],accessus:5,action:[10,14],activ:[3,4,5,7,9,10,13],activitydict:[5,7],activityitem:4,activityitemdict:4,activitylist:5,activitylistappendprocessorqueuebool:[5,7],activitylistexecut:4,activitylistexecutebool:[5,7],activitynam:10,activitytimelist:5,actual:[4,14],add:[4,5,6,10],addhandl:5,addit:14,address:[4,5],admin:[4,7],admindict:[5,7],administr:4,after:[3,5,6,9,13],agentactivityitemadd:4,agentdict:[4,5],agentkeydict:[5,7],agentkeystr:[5,7],agentoscmd:4,agentosfilebinarydatabase64strcr:4,agentosfilebinarydatabytescr:4,agentosfiletextdatastrcr:4,algorithm:[3,14],algorythm:[3,5,14],alia:[3,4,5],aliasdefdict:[3,4,5],all:[3,4,5,6,7,9,10,14],allow:[4,5,6,7,8,10,14],alreadi:[4,10],amd64:[0,9,10],analyz:14,ani:[0,3,4,10,13,14],anoth:[4,9,13],apach:2,app:[4,9,14],appear:9,append:[3,4,5,7,10],appli:[3,5],applic:[3,4,5,9,10],approach:10,architectur:14,archiv:[0,5],arg:[3,4,5],argdict:[3,4,5],arggset:[3,4,5],arglist:[3,4,5],arglogg:[3,4,5],argument:[4,5],argvaluestr:4,articl:[1,14],artifici:10,asctim:5,assert:10,associ:4,asweigart:2,async:3,asynchonu:3,attent:[3,4,6,7,10,13,14],attribut:[3,5,9,10],authent:5,authentif:4,authtoken:5,authtokensdict:5,auto:4,autoclean:[3,5],autom:[1,11,14],automat:[3,5,13],automationsearchmouseel:9,avail:[4,5,6,10],b4ff:6,backend:[9,10],backward:4,base64:4,base:[3,4,14],base_wrapp:10,basic:[3,4,5,6],beauti:4,becaus:[3,4,10],been:[0,4,5,10,14],befor:5,beginwith:[4,5],below:[3,6,13,14],best:[8,14],between:[3,4,5,6],big:[10,14],binari:4,bit:[2,4,9,10],block:5,bool:[3,4,5,10],boppreh:2,both:[4,9,10],box:6,branch:0,browser:[5,13],bsd:2,bug:2,build:[2,6,14],built:0,busi:[3,4,10,14],button:[5,7],cabinetwclass:10,cach:5,calcfram:10,call:[3,4,6,9],callabl:4,can:[2,3,4,5,6,7,8,9,10,14],cancel:9,cant:3,captur:14,central:3,chang:[5,14],check:[4,5,6,9,10,14],checkintervalsecfloat:5,checktasknam:5,child:[9,10],children:10,choos:9,chrome:10,class_nam:10,class_name_r:10,classif:10,claus:2,cleaner:4,clear:[4,5,10],click:[8,10],client:[4,5],clientrequesthandl:5,clipboard:4,close:[4,5,10],cmd:[4,5,7,13,14],cmdinputbool:[5,7],code:[3,10],collect:5,com:[0,2,10,11],come:14,comma:3,command:[4,5,10],commerci:14,common:10,commun:4,compact:2,compani:[2,14],compat:[4,10],compex:3,compil:14,complet:[0,5],complex:3,compon:14,comput:[10,14],concept:14,condit:[9,10],config:[6,9],configur:[4,5,6,9,14],congratul:14,connect:[4,5],connectioncountint:5,connectionfirstqueueitemcountint:5,consist:3,consol:[5,10,13,14],consolid:[3,14],contact:14,contain:[4,5,9,10,13],content:[4,5],continu:4,control:[3,4,5,6,14],control_typ:10,control_type_r:10,controlpanel:[5,6],controlpaneldict:5,controlpanelkeyallowedlist:5,controlpanelrefreshintervalsecfloat:5,convent:10,cooki:5,copi:10,copyright:14,core:[1,3,14],cost:[1,14],cp1251:4,cp866:4,cp_test:6,cp_versioncheck:6,cpdict:5,cpkei:5,cpkeydict:[5,7],cpkeystr:[5,7],creat:[2,3,4,5,6,8,14],credenti:4,crosscheck:4,css:11,ctrl_index:10,current:[3,4,5,6,7,10],custom:[3,7,10],cv2:10,daemon:4,dai:4,dashboard:4,data:5,datasetlast:5,datetim:[5,6],deadlin:2,dear:14,decentr:3,decid:14,def:[3,5,6,7,8,14],defaliastest:[3,5],defnamestr:5,defsettingsupdatepathlist:5,depend:14,deploi:4,deprec:5,depth:10,depth_end:10,depth_start:10,depth_stop:10,depthbit:[4,5],descipt:10,descript:[5,9,10,14],desktop:[1,3,4,5,9,14],desktopus:4,destin:[4,9],detail:3,detect:[5,9,10],determin:4,dev:4,develop:[4,10,14],dict:[4,5,9,10,14],dictionari:[3,5],differ:3,directori:[4,10],disappear:9,disc:4,disconnect:[4,5],distribut:14,divis:14,dll:14,doc:[10,14],document:[9,14],docutil:[4,9],doe:13,doen:4,doesn:9,domain:5,domainadstr:5,domainupperstr:4,don:[4,7],done:1,dont:[4,5,7],doubl:13,download:0,dp0:10,draw:9,drive:[4,5],driver:10,dsd:[3,5],dump:5,dumploglist:5,dumploglistcountint:5,dumploglisthashstr:5,dumploglistrefreshintervalsecfloat:5,duplic:4,durat:5,dynam:10,each:[4,10,14],earli:4,edit:14,editor:13,elem:10,element:[9,10],els:[4,5,6,9],empti:[5,7],enabl:10,encapsul:14,encod:4,end:3,eng:[1,14],enterpris:14,env:5,enviro:10,environ:4,equal:[4,5],equalcas:[4,5],everi:[4,5],everydai:4,exact:10,exampl:[3,4,5,7,8,9],except:[0,4,6],exe:[0,4,5,8,9,10],execut:[3,4,5,7,12,14],executebool:5,exist:[4,5,9,10],expens:14,expir:4,explor:[10,13],express:10,extens:[4,10],extra:4,extract:[10,14],facebook:2,fals:[4,5,9],fast:[2,14],featur:[3,4,5,7,14],feel:2,field:[4,5],file:[4,5],filehandl:5,filemanag:5,filemod:5,fileurl:5,fileurlfilepathdict:5,fileurlfilepathdict_help:5,fill:[4,5],find:[2,3,8,9,10],find_element_by_nam:10,find_window:[9,10],firefox:10,first:[10,14],flag:[4,5],flagaccess:5,flagaccessdefrequestglobalauthent:5,flagcredentialsask:5,flagdonotexpir:5,flagforc:5,flagsessionisact:[4,5],flaguseallmonitor:[4,5],flase:4,flexibl:3,focu:9,folder:[4,6,10,14],follow:[0,7,13,14],forc:[4,5,14],forget:5,formatt:5,found:10,founder:14,framework:[9,10,11,14],free:[2,14],fridai:4,friendly_class_nam:10,friendly_class_name_r:10,from:[0,3,4,5,6,8,9,14],full:[4,5],fulli:10,fullscreen:[4,5],fullscreenbool:[5,7],fullscreenrdpsessionkeystr:5,functional:6,further:4,garbag:4,gener:[4,5,14],get:[4,5,9,10,14],get_osbitnessint:9,getcontrol:9,getlogg:5,git:[0,4,5,7],github:2,gitlab:[0,1,2,10,14],give:[4,5,7],given:4,global:[4,14],goe:3,going:14,good:[3,14],graphic:[10,14],great:14,group:[7,14],gset:[3,6,14],gsettingsautoclean:4,gsettingsdict:4,gsettingskeylistvalueappend:4,gsettingskeylistvalueget:4,gsettingskeylistvalueoperatorplu:4,gsettingskeylistvalueset:4,gui:[3,4,9,10,11,14],guid:[1,5],gurbag:5,habr:[1,14],handl:5,handlebar:11,handler:5,hard:[4,5,7],has:[0,2,3,4,7,10],have:4,height:[4,5],help:[0,2,4,14],helpfulli:9,here:[6,8,9,10,14],hex:[4,5,10],hidden:4,hierarchi:[4,10,13],highlight:[9,10,13],hightlight:13,homepag:2,host:[4,5],hostnameupperstr:5,how:[9,14],html:[1,4,9,10,14],htmlrenderdef:5,http:[0,2,3,4,5,9,10,11,14],human:4,identif:[4,10],identifi:10,ignor:[4,5],ignorebool:[5,7],imag:14,imaslov:6,implement:10,inactionnam:9,inactivityitemdict:4,inactivitylist:4,inadisdefaultbool:[4,6],inadloginstr:[4,6],inadstr:[4,6],inaliasstr:4,inarg1str:4,inargdict:4,inarggset:4,inarggsettingsstr:4,inarglist:4,inargloggerstr:4,inargu:10,inargumentlist:9,inbackend:9,inbreaktriggerprocesswoexelist:4,incloseforcebool:4,includ:9,incmdencodingstr:4,incmdstr:4,incontenttypestr:4,incontrolspecificationarrai:9,incpkeystr:4,indef:4,indefnamestr:4,indepthbitint:4,index:[3,4,5,9,10],indict:5,indomainstr:4,inel:[8,9,10],inelementspecif:9,inencodingstr:4,infiledatabase64str:4,infiledatabyt:4,infiledatastr:4,infilepathstr:4,inflagforceclosebool:4,inflaggetabspathbool:4,inflagraiseexcept:[8,9,10],inflagwaitallinmo:9,info:[4,5,6,10],infolderpathstr:4,inform:[3,4],infrastructur:14,ingset:[3,4,6],ingsettingsclientdict:5,inhashkeystr:5,inheightpxint:4,inherit:10,inhostfilepathstr:4,inhostnamestr:4,inhoststr:[4,5],inhtmlrenderdef:4,init:[3,4,5,6,9],initdatetim:5,initi:4,injsinitgeneratordef:4,injsongeneratordef:4,inkeylist:4,inkeystr:5,inkwargumentobject:9,inlogg:[4,5],inloginstr:[4,5],inmatchtypestr:4,inmethodstr:4,inmodestr:[3,4,5,6],inmodulepathstr:4,inpasswordstr:[4,5],inpathstr:4,inportint:4,inportstr:[4,5],inprocessnamewexestr:4,inprocessnamewoexelist:4,inprocessnamewoexestr:4,input:5,inrdpfilepathstr:4,inrdpsessionkeystr:[4,5],inrdptemplatedict:4,inrequest:4,inrolehierarchyalloweddict:[4,6],inrolekeylist:4,inrowcountint:5,inrunasyncbool:4,insendoutputtoorchestratorlogsbool:4,insert:6,inshareddrivelist:4,inspecificationlist:[8,9,10],inspecificationlistlist:9,instal:14,instanc:[3,4,9,10],instopprocessnamewoexestr:4,insupertokenstr:[4,6],intellig:10,interact:[3,4,9],interest:4,interfac:[3,10,14],internet:13,interpret:3,interv:[4,5],intervalsecfloat:5,intimehhmmstr:4,inuioselector:9,inurllist:[4,6],inurlstr:4,inusebothmonitorbool:4,inusernamestr:4,inuserstr:4,invalu:4,inwaitsec:9,inweekdaylist:4,inwidthpxint:4,is_en:10,is_vis:10,islistenbool:5,isresponsiblebool:4,issu:2,it4busi:2,it4busin:2,item:[3,4,9,10],iter:5,ivan:14,ivanmaslov:2,join:6,jsinitgeneratordef:5,json:[3,4,5],jsongeneratordef:5,jsrender:11,jsview:11,just:10,kb2999226:0,keep:3,kei:[4,10],keyboard:[2,11,14],keystr:5,kill:4,killer:14,know:3,known:14,kwarg:3,lactivityitem:4,laliasstr:4,last:5,latest:10,launch:4,leaflet:[1,14],left:3,len:5,less:[1,14],let:14,level:[10,14],levelnam:5,lib:10,librari:10,licens:14,lifetim:5,lifetimerequestsecfloat:5,lifetimesecfloat:5,light:3,like:[3,14],line:10,link:[3,4,5,14],linkedin:2,list:[3,4,5,9,10,14],listen:4,listenport:5,listenport_:5,listenurllist:5,listread:5,litem:10,littl:7,lnotepadokbutton:8,load:5,local:[4,5],localhost:5,locat:4,log:[4,5,6,7,14],logger:[4,5,6],loggerdumploghandleradd:5,loggerhandlerdumploglist:5,login:[4,5,6],logoff:[4,5],logout:14,logviewerbool:[5,7],lol:13,look:[3,4,5,7,13,14],lookmachinescreenshot:5,loop:10,low:10,lowercas:5,lprocessisstartedbool:4,lprocesslist:4,lpyopenrpa_settingsdict:9,lpyopenrpasourcefolderpathstr:6,lrdpitemdict:4,lrdptemplatedict:4,lresult:5,lresultdict:[4,5],luacclientdict:6,lxml:11,mac:14,machin:[0,4,5,6,14],machina:5,mail:2,main:[3,4,5,6,10],maintain:14,make:10,makedir:5,manag:4,mani:[2,3,9,14],manipul:[4,7,14],markdown:[1,14],maslov:14,master:0,match:10,matchtyp:5,max:5,maxim:9,maximum:10,mayb:4,mechan:3,mega:[3,7],megafind:2,memori:4,menu:8,merg:4,messag:5,method:[5,10],methodmatchurl:5,methodmatchurlbeforelist:5,methodolog:2,mhandlerdumploglist:5,microsoft:[0,10],minim:9,miss:10,mit:[2,14],mmstr:5,mode:13,model:[2,10],modul:[3,4,5,6],moduletocal:4,mondai:4,monitor:4,more:[3,6,10],mous:14,mrobotlogg:5,mrobotloggerfh:5,mrobotloggerformatt:5,must:5,name:[3,4,5,6,9,10],namewoexestr:4,namewoexeupperstr:4,need:[0,2,3,4,5,6,7,9,10,14],nest:4,net:[4,9],never:4,newkeydict:4,newkeylist:4,newvalu:4,next:10,non:14,none:[3,4,5,8,9,10],notat:[9,10],notepad:[4,5,8,9,10],noth:4,nothingbool:[5,7],now:[4,5,9],nul:10,object:[3,4,5,9,10,14],occupi:4,ocr:10,octet:4,off:[5,7],old:[4,5,6,9],onc:9,one:[5,6,7],onli:[0,4,5,7,9,10,14],onlin:14,open:[1,13,14],opencv:[0,11,14],openrpa52zzz:6,openrpa:[0,5],openrpa_32:13,openrpa_64:13,openrpaorchestr:10,openrparesourceswpy32:10,openrparesourceswpy64:10,openrparobotdaemon:5,openrparobotguix32:9,opensourc:14,oper:[0,4,6,14],opera:10,option:[5,7,10],orc:[5,7],orchestr:[5,6],orchestratormain:10,orchestratorrestart:4,orchestratorsessionsav:4,orchestratorstart:5,order:[3,10,13],org:[2,10],oscmd:4,oscredentialsverifi:4,other:[9,10,14],our:10,out:4,outargu:10,outlin:9,output:[4,5],outstr:4,overwrit:5,own:[3,6,10,14],packag:[0,6,8,14],page:[4,5,7,8],page_sourc:10,pai:[3,6],paid:[1,14],panel:[4,5,6,7,13],paramet:[3,4,5,9],parent:[9,10,13],parti:14,pass:[4,5],password:[4,5],path:[4,5,6,10],paus:10,pdb:5,pdf:[1,14],per:6,perfom:[10,14],perform:14,period:5,phone:3,pid:4,pil:11,pipupgrad:5,pixel:[4,5],plan:4,platform:14,pleas:14,plu:4,port:[4,5],portabl:[0,10],possibl:14,post:[4,5],postfix:4,power:14,practic:[7,14],prefer:2,previou:4,print:[6,10],process:[3,5,6,9,10,12,14],processbit:9,processdetaillist:4,processisstart:4,processlistget:4,processnam:4,processor:[5,7,14],processoractivityitemappend:4,processoractivityitemcr:4,processoraliasdefcr:4,processoraliasdefupd:4,processordict:5,processstart:[4,5],processstartifturnedoff:5,processstop:[4,5],processwoexelist:4,processwoexeupperlist:4,product:10,program:[4,5,8],progress:1,project:[3,14],properti:[7,14],protocol:3,provid:[10,14],psutil:[6,11],pull:[5,7],purpos:2,pwa:10,pwaspecif:10,pwaspecification_get_pwaappl:9,pwaspecification_get_uio:9,pyautogui:[2,10,11,14],pycon:10,pymupdf:11,pyopenrpa:[0,1,2,3,5,6,7,8,9,10,12],pyopenrpa_uidesktopx32:9,pyopenrpa_uidesktopx64:9,pyopenrpadict:[5,7],pyrobot_cp:6,python32fullpath:9,python32processnam:9,python64fullpath:9,python64processnam:9,python:[0,3,5,8,9,11,13,14],pythonstart:4,pywin32:[2,11],pywinauto:[2,9,10,11],queue:[1,3,4,5,7],queuelist:5,r01:5,r01_integrationorderout:5,r01_orchestratortorobot:5,rais:4,rdp:[3,4,5,7],rdpactiv:5,rdpconfigurationdict:5,rdpkei:4,rdpkeydict:[5,7],rdpkeystr:[5,7],rdplist:[4,5],rdpsession:14,rdpsessioncmdrun:4,rdpsessionconnect:[4,5],rdpsessiondisconnect:[4,5],rdpsessiondublicatesresolv:4,rdpsessionfilereciev:5,rdpsessionfilesend:5,rdpsessionfilestoredreciev:4,rdpsessionfilestoredsend:4,rdpsessionkei:5,rdpsessionkeystr:5,rdpsessionlogoff:[4,5],rdpsessionmonitorstop:4,rdpsessionprocessstart:5,rdpsessionprocessstartifnotrun:4,rdpsessionprocessstop:4,rdpsessionreconnect:[4,5],rdpsessionresponsibilitycheck:4,rdptemplatecr:4,read:5,readi:0,readthedoc:10,reciev:[4,5],recognit:14,reconnect:4,reconnectbool:[5,7],recurs:10,reestr_otgruzok:5,refer:14,refresh:5,refreshsecond:5,regener:4,regular:10,rel:[4,5,6],reliabl:[2,14],rememb:[5,7],remot:[4,5,14],render:13,renderfunct:5,renderrobotr01:5,report:5,reqir:3,request:[4,5,11],requesttimeoutsecfloat:5,requir:[4,14],resolut:[4,5],resourc:[0,9,10,14],respons:[4,5],responsecontenttyp:5,responsedefrequestglob:5,responsefilepath:5,responsefolderpath:5,responsibilitycheckintervalsec:5,restart:[4,5,7],restartorchestr:5,restartorchestratorbool:[5,7],restartorchestratorgitpullbool:[5,7],restartpcbool:[5,7],restor:9,restrict:14,restructuredtext:[4,9],result:[4,5,7,9,10],returnbool:5,rich_text:10,rich_text_r:10,right:14,roadmap:14,robot:[3,4,5,6,7,8,9],robot_r01:5,robot_r01_help:5,robotlist:5,robotrdpact:[4,5],rolehierarchyalloweddict:5,root:[4,5],row:5,rpa01:4,rpa:[1,4,5,8,14],rpa_99:4,rpatestdirtest:4,rst:[4,9],ruledomainuserdict:5,rulemethodmatchurlbeforelist:5,run:[0,4,5,6,9,14],russia:[2,14],russian:14,safe:[4,9,14],same:9,save:4,schedul:[3,14],scheduleractivitytimeaddweekli:4,schedulerdict:5,scopesrcul:5,screen:[4,5,14],screenshot:[0,5,7,14],screenshotviewerbool:[5,7],script:[3,14],search:[4,14],sec:5,second:[4,5,9,10],section:[4,9],see:[0,4,5,6,8,9,14],select:9,selector:[9,10,13,14],selenium:[2,11,14],semant:[2,11],send:[4,5,7,14],send_kei:10,sent:4,sequenc:3,server:[0,3,4,5,7,13,14],serverdict:5,serverset:5,sesion:[4,5],session:[4,5,14],sessionguidstr:5,sessionhex:[4,5],sessionisignoredbool:[4,5],sessioniswindowexistbool:[4,5],sessioniswindowresponsiblebool:[4,5],set:[4,5,6,7,9,14],set_trac:5,setformatt:5,setlevel:5,settingsinit:9,settingstempl:[3,6],settingsupd:6,setup:5,sever:[3,10,14],share:4,shareddrivelist:[4,5],shell:[4,14],should:5,show:[5,7],side:[4,5,7],signal:4,simplifi:10,sinc:14,singl:3,singleton:4,skype:2,sleep:10,socket:3,softwar:2,solut:[0,10,14],some:[2,3,4,5,7,14],soon:[1,14],sorri:14,sort:4,sourc:[3,4,6,9,14],sourceforg:[4,9],space:3,special:5,specialist:2,specif:10,sphinx:[3,14],standart:5,start:[0,4,5,6,10,13,14],statu:4,stdout:[5,6],stop:[4,10,14],storag:[5,14],store:5,str:[3,4,5,9,10],stream:4,streamhandl:5,strftime:5,string:[4,9],struct:5,structur:[3,4,5],studio:[3,12,13],subprocess:10,success:4,successfulli:[0,4,10,14],sundai:4,supertoken:[4,6],superus:6,supetoken:4,supplement:10,support:[0,3,6,10,13,14],symbol:3,sync:3,sys:[5,6,10],system:14,tablet:3,task:2,technic:[3,5],technicalsessionguidcach:5,telegram:2,templat:[6,14],terminolog:10,tesseract:11,test2:5,test:[4,5,6],testcontrolpanelkei:5,testdef:4,testdefalia:4,testdir:4,testdirtest:4,testrdp:5,text:[4,10,13],than:[3,9],thank:[2,14],theori:14,thi:[4,5,7,10,14],thought:4,thread:[3,5,7],threadidint:5,thursdai:4,thx:10,time:[4,5,10,14],timehh:5,titl:[8,9,10],title_r:10,todo:4,token:4,tokendatetim:5,too:[4,5,7],tool:[3,10,13],top:9,tor:14,track:4,transmiss:4,transmit:[3,4],tree:14,trigger:[4,5],ttt:[3,5],turn:[5,7],turpl:3,tutori:[1,14],txt:4,type:[4,5,6],uac:14,uackeylistcheck:4,uacsupertokenupd:[4,6],uacupd:[4,6],uia:[9,10],uidesktop:[8,9],uio:[9,13,14],uioactiv:[9,10],uioei:10,uioinfo:10,uioselector:9,uioselector_exist_bool:9,uioselector_focushighlight:[9,10],uioselector_get_bitnessint:9,uioselector_get_bitnessstr:9,uioselector_get_uio:[8,9,10],uioselector_get_uioactivitylist:9,uioselector_get_uioinfo:9,uioselector_get_uiolist:9,uioselector_getchildlist_uiolist:9,uioselector_highlight:9,uioselector_safeotherget_process:9,uioselector_searchchildbymouse_uio:9,uioselector_searchchildbymouse_uiotre:9,uioselector_tryrestore_dict:9,uioselectorsecs_waitappear_bool:9,uioselectorsecs_waitdisappear_bool:9,uioselectorssecs_waitappear_list:9,uioselectorssecs_waitdisappear_list:9,uioselectoruioactivity_run_dict:9,uiotre:10,under:14,understand:7,unicodelab:[0,2,10],univers:3,unix:14,unzip:0,updat:[4,5],upper:[4,5],url:[4,5],url_:5,urllist:5,usag:[4,8,10],use:[0,3,4,5,7,9,14],used:4,useful:10,user:[3,4,5,6,9,10,14],user_99:4,user_pass_her:4,useradstr:5,usernam:[4,5],usernameupperstr:4,userrpa:4,userupperstr:5,using:[4,10,14],utf:4,util:[5,9,14],valu:[4,9],variant:4,ver:10,veri:2,verifi:4,version:[6,10,13],versionstr:5,via:2,video:10,viewer:[5,7,14],virtual:5,visibl:10,vision:[10,14],vista:0,visual:14,vms:4,wai:[4,6,10,14],wait:[4,9,10,13],want:[3,5,7,13,14],warn:6,web:[1,3,5,14],webcpupd:4,webdriv:10,weburlconnectdef:4,weburlconnectfil:4,weburlconnectfold:4,webuserinfoget:4,webuserissupertoken:4,webuseruachierarchyget:4,wednesdai:4,week:4,weekdai:[4,5],weekdaylist:5,well:14,were:14,whatsapp:2,when:[3,4,5,6,9,13],where:[4,10,13],which:[2,3,4,5,8,9,10,14],who:5,why:3,width:[4,5],wiki:10,win32:[9,14],win32api:11,win:4,window:[0,4,5,9,11,14],winpython:2,without:[0,4,5,14],wmi:11,work:[4,5,7,10,14],workingdirectorypathstr:5,world:14,wpy32:[0,9,10],wpy64:[0,9,10],wrapper:9,write:[2,3,10,14],www:[2,10,11],x32:[0,9,11,13,14],x64:[0,9,11,13,14],xlsx:5,yoomonei:14,you:[0,2,3,4,5,6,7,8,9,10,14],your:[0,2,9,10],zip:0},titles:["1. How to install","2. Roadmap","3. Copyrights & Contacts","1. Description","2. Defs","3. gSettings Template","4. How to use","5. UAC - User Access Control","1. Description","2. Defs","3. How to use","4. Dependencies","1. Description","2. How to use","Welcome to pyOpenRPA\u2019s wiki"],titleterms:{The:[10,13,14],Use:10,__orchestrator__:4,about:[7,10,14],access:[7,10],action:13,agent:[4,14],app:10,architectur:3,autom:10,button:13,captur:10,check:0,choos:13,click:13,cmd:10,compon:[2,3],concept:3,configur:3,contact:2,content:[13,14],control:7,copyright:2,creat:10,ctrl:13,def:[4,9],definit:10,depend:[2,11],descript:[3,8,12,13],desktop:10,dict:[3,7],dll:10,donat:14,exampl:10,execut:10,expand:13,extract:13,file:10,founder:2,from:10,global:3,group:4,gset:[4,5],gui:13,guid:14,has:14,hold:13,hover:13,how:[0,3,6,10,13],imag:10,instal:0,interest:13,ivan:2,kei:13,keyboard:10,licens:2,list:13,main:14,manipul:10,maslov:2,modul:10,mous:[10,13],object:13,openrpa:10,orchestr:[3,4,7,14],parti:2,practic:10,process:4,processor:[3,4],properti:13,pyopenrpa:[4,14],python:[4,10],rdpsession:4,recognit:10,refer:[3,4,9],repo:14,requir:0,result:13,right:7,roadmap:1,robot:[10,14],rpa:10,run:13,schedul:4,screen:10,screenshot:13,script:10,search:13,second:13,select:13,selenium:10,set:3,shown:13,structur:[10,14],studio:[10,14],system:0,templat:5,theori:10,tool:14,tree:13,turn:13,uac:[4,7],uidesktop:10,uio:10,uioselector:10,use:[6,10,13],user:7,viewer:13,web:[4,7,10],welcom:14,what:10,wiki:14,win32:10,x32:10,x64:10,you:13}})
\ No newline at end of file
+Search.setIndex({docnames:["01_HowToInstall","02_RoadMap","03_Copyrights_Contacts","Orchestrator/01_Orchestrator","Orchestrator/02_Defs","Orchestrator/03_gSettingsTemplate","Orchestrator/04_HowToUse","Orchestrator/05_UAC","Robot/01_Robot","Robot/02_Defs","Robot/03_HowToUse","Robot/04_Dependencies","Studio/01_Studio","Studio/02_HowToUse","index"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,"sphinx.ext.todo":2,"sphinx.ext.viewcode":1,sphinx:56},filenames:["01_HowToInstall.rst","02_RoadMap.rst","03_Copyrights_Contacts.rst","Orchestrator\\01_Orchestrator.rst","Orchestrator\\02_Defs.rst","Orchestrator\\03_gSettingsTemplate.rst","Orchestrator\\04_HowToUse.rst","Orchestrator\\05_UAC.rst","Robot\\01_Robot.rst","Robot\\02_Defs.rst","Robot\\03_HowToUse.rst","Robot\\04_Dependencies.rst","Studio\\01_Studio.rst","Studio\\02_HowToUse.rst","index.rst"],objects:{"pyOpenRPA.Orchestrator":{__Orchestrator__:[4,0,0,"-"]},"pyOpenRPA.Orchestrator.__Orchestrator__":{AgentActivityItemAdd:[4,1,1,""],AgentActivityItemReturnExists:[4,1,1,""],AgentActivityItemReturnGet:[4,1,1,""],AgentOSCMD:[4,1,1,""],AgentOSFileBinaryDataBase64StrCreate:[4,1,1,""],AgentOSFileBinaryDataBytesCreate:[4,1,1,""],AgentOSFileTextDataStrCreate:[4,1,1,""],GSettingsAutocleaner:[4,1,1,""],GSettingsKeyListValueAppend:[4,1,1,""],GSettingsKeyListValueGet:[4,1,1,""],GSettingsKeyListValueOperatorPlus:[4,1,1,""],GSettingsKeyListValueSet:[4,1,1,""],OSCMD:[4,1,1,""],OSCredentialsVerify:[4,1,1,""],OrchestratorRestart:[4,1,1,""],OrchestratorSessionSave:[4,1,1,""],ProcessIsStarted:[4,1,1,""],ProcessListGet:[4,1,1,""],ProcessStart:[4,1,1,""],ProcessStop:[4,1,1,""],ProcessorActivityItemAppend:[4,1,1,""],ProcessorActivityItemCreate:[4,1,1,""],ProcessorAliasDefCreate:[4,1,1,""],ProcessorAliasDefUpdate:[4,1,1,""],PythonStart:[4,1,1,""],RDPSessionCMDRun:[4,1,1,""],RDPSessionConnect:[4,1,1,""],RDPSessionDisconnect:[4,1,1,""],RDPSessionDublicatesResolve:[4,1,1,""],RDPSessionFileStoredRecieve:[4,1,1,""],RDPSessionFileStoredSend:[4,1,1,""],RDPSessionLogoff:[4,1,1,""],RDPSessionMonitorStop:[4,1,1,""],RDPSessionProcessStartIfNotRunning:[4,1,1,""],RDPSessionProcessStop:[4,1,1,""],RDPSessionReconnect:[4,1,1,""],RDPSessionResponsibilityCheck:[4,1,1,""],RDPTemplateCreate:[4,1,1,""],SchedulerActivityTimeAddWeekly:[4,1,1,""],UACKeyListCheck:[4,1,1,""],UACSuperTokenUpdate:[4,1,1,""],UACUpdate:[4,1,1,""],WebCPUpdate:[4,1,1,""],WebURLConnectDef:[4,1,1,""],WebURLConnectFile:[4,1,1,""],WebURLConnectFolder:[4,1,1,""],WebUserInfoGet:[4,1,1,""],WebUserIsSuperToken:[4,1,1,""],WebUserUACHierarchyGet:[4,1,1,""]},"pyOpenRPA.Robot":{UIDesktop:[9,0,0,"-"]},"pyOpenRPA.Robot.UIDesktop":{Get_OSBitnessInt:[9,1,1,""],PWASpecification_Get_PWAApplication:[9,1,1,""],PWASpecification_Get_UIO:[9,1,1,""],UIOSelectorSecs_WaitAppear_Bool:[9,1,1,""],UIOSelectorSecs_WaitDisappear_Bool:[9,1,1,""],UIOSelectorUIOActivity_Run_Dict:[9,1,1,""],UIOSelector_Exist_Bool:[9,1,1,""],UIOSelector_FocusHighlight:[9,1,1,""],UIOSelector_GetChildList_UIOList:[9,1,1,""],UIOSelector_Get_BitnessInt:[9,1,1,""],UIOSelector_Get_BitnessStr:[9,1,1,""],UIOSelector_Get_UIO:[9,1,1,""],UIOSelector_Get_UIOActivityList:[9,1,1,""],UIOSelector_Get_UIOInfo:[9,1,1,""],UIOSelector_Get_UIOList:[9,1,1,""],UIOSelector_Highlight:[9,1,1,""],UIOSelector_SafeOtherGet_Process:[9,1,1,""],UIOSelector_SearchChildByMouse_UIO:[9,1,1,""],UIOSelector_SearchChildByMouse_UIOTree:[9,1,1,""],UIOSelector_TryRestore_Dict:[9,1,1,""],UIOSelectorsSecs_WaitAppear_List:[9,1,1,""],UIOSelectorsSecs_WaitDisappear_List:[9,1,1,""]}},objnames:{"0":["py","module","Python module"],"1":["py","function","Python function"]},objtypes:{"0":"py:module","1":"py:function"},terms:{"0643":6,"100":5,"1050":[4,5],"120":5,"127":4,"1680":[4,5],"1680x1050":[4,5],"1992":6,"2008":[0,14],"2012":0,"2019":14,"2021":1,"222":[3,5],"2999226":0,"300":5,"3389":[4,5],"3600":5,"3720":[0,9,10],"3720python":10,"3rd":14,"4100115560661986":14,"412":4,"600":5,"640x480":[4,5],"722":2,"77767775":4,"77777sdfsdf77777dsfdfsf77777777":4,"8081":5,"906":2,"\u0432":9,"\u0432\u0445\u043e\u0434\u043d\u043e\u0439":9,"\u0432\u044b\u043a\u0438\u043d\u0443\u0442\u044c":9,"\u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c":9,"\u0434\u0435\u043c\u043e\u043d\u0430":5,"\u0434\u0435\u043c\u043e\u043d\u0443":5,"\u043a":[5,9],"\u043a\u043e\u043d\u043d\u0435\u043a\u0442":9,"\u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443":5,"\u043b\u043e\u0433\u0433\u0435\u0440\u0430":5,"\u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f":5,"\u043c\u043e\u0436\u043d\u043e":5,"\u043d\u0435":9,"\u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u0438":9,"\u043e\u0448\u0438\u0431\u043a\u0443":9,"\u043f\u043e":5,"\u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430":5,"\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f":5,"\u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c":9,"\u043f\u043e\u0440\u0442":5,"\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0443":9,"\u043f\u0443\u0441\u0442\u043e\u0433\u043e":9,"\u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435":5,"\u0441\u0435\u0440\u0432\u0435\u0440\u0430":5,"\u0441\u0435\u0442\u0435\u0432\u043e\u0435":5,"\u0441\u043b\u0443\u0447\u0430\u0435":9,"\u0441\u043e\u0437\u0434\u0430\u0442\u044c":5,"\u0441\u043f\u0438\u0441\u043a\u0430":9,"\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f":9,"\u0444\u0430\u0439\u043b":5,"\u0444\u043b\u0430\u0433":9,"\u0447\u0442\u043e":9,"\u044d\u043b\u0435\u043c\u0435\u043d\u0442":9,"case":[3,4,5,9,10],"catch":4,"class":10,"default":[4,5,10,13],"float":[3,5,9],"function":[2,4,5,8,9,10],"import":[3,4,5,6,8,9,10],"int":[3,4,9,10],"long":2,"new":[2,3,4,5,6],"return":[4,5,9,10],"switch":11,"true":[4,5,6,7,8,9,10],"try":[4,6,9],"var":4,"while":4,Abs:5,Are:0,DOS:4,For:[0,6,10,13],Has:5,NOT:4,RUS:[1,14],The:[0,3,8],USEFUL:4,USe:[5,7],Use:[2,4,6],Will:[4,5],__agentactivityreturndictitemcreate__:5,__agentdictitemcreate__:5,__create__:5,__main__:6,__name__:6,__orchestrator__:14,__uacclientadmincreate__:[5,6],_sessionlast_rdplist:4,a2o:4,abil:10,abl:14,about:[2,3,4,5],abs:4,absolut:[2,4,5,6,14],abspath:6,access:[4,5,6,14],accessus:5,action:[10,14],activ:[3,4,5,7,9,10,13],activitydict:[5,7],activityitem:4,activityitemdict:4,activitylist:5,activitylistappendprocessorqueuebool:[5,7],activitylistexecut:4,activitylistexecutebool:[5,7],activitynam:10,activitytimelist:5,actual:[4,14],add:[4,5,6,10],addhandl:5,addit:14,address:[4,5],admin:[4,7],admindict:[5,7],administr:4,after:[3,5,6,9,13],agent:5,agentactivityitemadd:4,agentactivityitemreturnexist:4,agentactivityitemreturnget:4,agentactivityreturndict:5,agentactivityreturnlifetimesecfloat:5,agentdict:[4,5],agentkeydict:[5,7],agentkeystr:[5,7],agentoscmd:4,agentosfilebinarydatabase64strcr:4,agentosfilebinarydatabytescr:4,agentosfiletextdatastrcr:4,algorithm:[3,14],algorythm:[3,5,14],alia:[3,4,5],aliasdefdict:[3,4,5],all:[3,4,5,6,7,9,10,14],allow:[4,5,6,7,8,10,14],alreadi:[4,10],amd64:[0,9,10],analyz:14,ani:[0,3,4,10,13,14],anoth:[4,9,13],anr:4,apach:2,app:[4,9,14],appear:9,append:[3,4,5,7,10],appli:[3,5],applic:[3,4,5,9,10],approach:10,architectur:14,archiv:[0,5],arg:[3,4,5],argdict:[3,4,5],arggset:[3,4,5],arglist:[3,4,5],arglogg:[3,4,5],argument:[4,5],argvaluestr:4,articl:[1,14],artifici:10,asctim:5,assert:10,associ:4,asweigart:2,async:[3,4],asynchonu:3,attent:[3,4,6,7,10,13,14],attribut:[3,5,9,10],authent:5,authentif:4,authtoken:5,authtokensdict:5,auto:4,autoclean:[3,5],autom:[1,11,14],automat:[3,5,13],automationsearchmouseel:9,avail:[4,5,6,10],b4ff:6,backend:[9,10],backward:4,base64:4,base:[3,4,14],base_wrapp:10,basic:[3,4,5,6],beauti:4,becaus:[3,4,10],been:[0,4,5,10,14],befor:[4,5],beginwith:[4,5],below:[3,6,13,14],best:[8,14],between:[3,4,5,6],big:[10,14],binari:4,bit:[2,4,9,10],block:5,bool:[3,4,5,10],boppreh:2,both:[4,9,10],box:6,branch:0,browser:[5,13],bsd:2,bug:2,build:[2,6,14],built:0,busi:[3,4,10,14],button:[5,7],cabinetwclass:10,cach:5,calcfram:10,call:[3,4,6,9],callabl:4,can:[2,3,4,5,6,7,8,9,10,14],cancel:9,cant:3,captur:14,central:3,chang:[5,14],check:[4,5,6,9,10,14],checkintervalsecfloat:5,checktasknam:5,child:[9,10],children:10,choos:9,chrome:10,class_nam:10,class_name_r:10,classif:10,claus:2,cleaner:4,clear:[4,5,10],click:[8,10],client:[4,5],clientrequesthandl:5,clipboard:4,close:[4,5,10],cmd:[4,5,7,13,14],cmdinputbool:[5,7],code:[3,10],collect:5,com:[0,2,10,11],come:[4,14],comma:3,command:[4,5,10],commerci:14,common:10,commun:4,compact:2,compani:[2,14],compat:[4,10],compex:3,compil:14,complet:[0,5],complex:3,compon:14,comput:[10,14],concept:14,condit:[9,10],config:[6,9],configur:[4,5,6,9,14],congratul:14,connect:[4,5],connectioncountint:5,connectionfirstqueueitemcountint:5,consist:3,consol:[5,10,13,14],consolid:[3,14],contact:14,contain:[4,5,9,10,13],content:[4,5],continu:4,control:[3,4,5,6,14],control_typ:10,control_type_r:10,controlpanel:[5,6],controlpaneldict:5,controlpanelkeyallowedlist:5,controlpanelrefreshintervalsecfloat:5,convent:10,cooki:5,copi:10,copyright:14,core:[1,3,14],cost:[1,14],cp1251:4,cp866:4,cp_test:6,cp_versioncheck:6,cpdict:5,cpkei:5,cpkeydict:[5,7],cpkeystr:[5,7],creat:[2,3,4,5,6,8,14],credenti:4,crosscheck:4,css:11,ctrl_index:10,current:[3,4,5,6,7,10],custom:[3,7,10],cv2:10,daemon:4,dai:4,dashboard:4,data:5,datasetlast:5,datetim:[5,6],deadlin:2,dear:14,decentr:3,decid:14,def:[3,5,6,7,8,14],defaliastest:[3,5],defnamestr:5,defsettingsupdatepathlist:5,depend:14,deploi:4,deprec:5,depth:10,depth_end:10,depth_start:10,depth_stop:10,depthbit:[4,5],descipt:10,descript:[5,9,10,14],desktop:[1,3,4,5,9,14],desktopus:4,destin:[4,9],detail:3,detect:[5,9,10],determin:4,dev:4,develop:[4,10,14],dict:[4,5,9,10,14],dictionari:[3,5],differ:3,directori:[4,10],disappear:9,disc:4,disconnect:[4,5],distribut:14,divis:14,dll:14,doc:[10,14],document:[9,14],docutil:[4,9],doe:13,doen:4,doesn:9,domain:5,domainadstr:5,domainupperstr:4,don:[4,7],done:1,dont:[4,5,7],doubl:13,download:0,dp0:10,draw:9,drive:[4,5],driver:10,dsd:[3,5],dump:5,dumploglist:5,dumploglistcountint:5,dumploglisthashstr:5,dumploglistrefreshintervalsecfloat:5,duplic:4,durat:5,dynam:10,each:[4,10,14],earli:4,edit:14,editor:13,elem:10,element:[9,10],els:[4,5,6,9],empti:[5,7],enabl:[4,10],encapsul:14,encod:4,end:3,eng:[1,14],enterpris:14,env:5,enviro:10,environ:4,equal:[4,5],equalcas:[4,5],everi:[4,5],everydai:4,exact:10,exampl:[3,4,5,7,8,9],except:[0,4,6],exe:[0,4,5,8,9,10],execut:[3,4,5,7,12,14],executebool:5,exist:[4,5,9,10],expens:14,expir:4,explor:[10,13],express:10,extens:[4,10],extra:4,extract:[10,14],facebook:2,fals:[4,5,9],fast:[2,14],featur:[3,4,5,7,14],feel:2,field:[4,5],file:[4,5],filehandl:5,filemanag:5,filemod:5,fileurl:5,fileurlfilepathdict:5,fileurlfilepathdict_help:5,fill:[4,5],find:[2,3,8,9,10],find_element_by_nam:10,find_window:[9,10],firefox:10,first:[10,14],flag:[4,5],flagaccess:5,flagaccessdefrequestglobalauthent:5,flagcredentialsask:5,flagdonotexpir:5,flagforc:5,flagsessionisact:[4,5],flaguseallmonitor:[4,5],flase:4,flexibl:3,focu:9,folder:[4,6,10,14],follow:[0,7,13,14],forc:[4,5,14],forget:5,formatt:5,found:10,founder:14,framework:[9,10,11,14],free:[2,14],fridai:4,friendly_class_nam:10,friendly_class_name_r:10,from:[0,3,4,5,6,8,9,14],full:[4,5],fulli:10,fullscreen:[4,5],fullscreenbool:[5,7],fullscreenrdpsessionkeystr:5,functional:6,further:4,garbag:4,gener:[4,5,14],get:[4,5,9,10,14],get_osbitnessint:9,getcontrol:9,getlogg:5,git:[0,4,5,7],github:2,gitlab:[0,1,2,10,14],give:[4,5,7],given:4,global:[4,14],goe:3,going:14,good:[3,14],graphic:[10,14],great:14,group:[7,14],gset:[3,6,14],gsettingsautoclean:4,gsettingsdict:4,gsettingskeylistvalueappend:4,gsettingskeylistvalueget:4,gsettingskeylistvalueoperatorplu:4,gsettingskeylistvalueset:4,gui:[3,4,9,10,11,14],guid:[1,4,5],gurbag:5,habr:[1,14],handl:5,handlebar:11,handler:5,hard:[4,5,7],has:[0,2,3,4,5,7,10],have:4,height:[4,5],help:[0,2,4,14],helpfulli:9,here:[6,8,9,10,14],hex:[4,5,10],hidden:4,hierarchi:[4,10,13],highlight:[9,10,13],hightlight:13,homepag:2,host:[4,5],hostnameupperstr:5,how:[9,14],html:[1,4,9,10,14],htmlrenderdef:5,http:[0,2,3,4,5,9,10,11,14],human:4,identif:[4,10],identifi:10,ignor:[4,5],ignorebool:[5,7],imag:14,imaslov:6,implement:10,inactionnam:9,inactivityitemdict:4,inactivitylist:4,inadisdefaultbool:[4,6],inadloginstr:[4,6],inadstr:[4,6],inaliasstr:4,inarg1str:4,inargdict:4,inarggset:4,inarggsettingsstr:4,inarglist:4,inargloggerstr:4,inargu:10,inargumentlist:9,inbackend:9,inbreaktriggerprocesswoexelist:4,incheckintervalsecfloat:4,incloseforcebool:4,includ:9,incmdencodingstr:4,incmdstr:4,incontenttypestr:4,incontrolspecificationarrai:9,incpkeystr:4,indef:4,indefnamestr:4,indepthbitint:4,index:[3,4,5,9,10],indict:5,indomainstr:4,inel:[8,9,10],inelementspecif:9,inencodingstr:4,infiledatabase64str:4,infiledatabyt:4,infiledatastr:4,infilepathstr:4,inflagforceclosebool:4,inflaggetabspathbool:4,inflagraiseexcept:[8,9,10],inflagwaitallinmo:9,info:[4,5,6,10],infolderpathstr:4,inform:[3,4],infrastructur:14,ingset:[3,4,6],ingsettingsclientdict:5,inguidstr:4,inhashkeystr:5,inheightpxint:4,inherit:10,inhostfilepathstr:4,inhostnamestr:4,inhoststr:[4,5],inhtmlrenderdef:4,init:[3,4,5,6,9],initdatetim:5,initi:4,injsinitgeneratordef:4,injsongeneratordef:4,inkeylist:4,inkeystr:5,inkwargumentobject:9,inlogg:[4,5],inloginstr:[4,5],inmatchtypestr:4,inmethodstr:4,inmodestr:[3,4,5,6],inmodulepathstr:4,inpasswordstr:[4,5],inpathstr:4,inportint:4,inportstr:[4,5],inprocessnamewexestr:4,inprocessnamewoexelist:4,inprocessnamewoexestr:4,input:5,inrdpfilepathstr:4,inrdpsessionkeystr:[4,5],inrdptemplatedict:4,inrequest:4,inreturn:5,inrolehierarchyalloweddict:[4,6],inrolekeylist:4,inrowcountint:5,inrunasyncbool:4,insendoutputtoorchestratorlogsbool:4,insert:6,inshareddrivelist:4,inspecificationlist:[8,9,10],inspecificationlistlist:9,instal:14,instanc:[3,4,9,10],instopprocessnamewoexestr:4,insupertokenstr:[4,6],intellig:10,interact:[3,4,9],interest:4,interfac:[3,10,14],internet:13,interpret:3,interv:[4,5],intervalsecfloat:5,intimehhmmstr:4,inuioselector:9,inurllist:[4,6],inurlstr:4,inusebothmonitorbool:4,inusernamestr:4,inuserstr:4,invalu:4,inwaitsec:9,inweekdaylist:4,inwidthpxint:4,is_en:10,is_vis:10,islistenbool:5,isresponsiblebool:4,issu:2,it4busi:2,it4busin:2,item:[3,4,5,9,10],iter:5,ivan:14,ivanmaslov:2,join:6,jsinitgeneratordef:5,json:[3,4,5],jsongeneratordef:5,jsrender:11,jsview:11,just:10,kb2999226:0,keep:3,kei:[4,5,10],keyboard:[2,11,14],keystr:5,kill:4,killer:14,know:3,known:14,kwarg:3,lactivityitem:4,laliasstr:4,last:5,latest:10,launch:4,leaflet:[1,14],left:3,len:5,less:[1,14],let:14,level:[10,14],levelnam:5,lib:10,librari:10,licens:14,life:5,lifetim:5,lifetimerequestsecfloat:5,lifetimesecfloat:5,light:3,like:[3,14],line:10,link:[3,4,5,14],linkedin:2,list:[3,4,5,9,10,14],listen:4,listenport:5,listenport_:5,listenurllist:5,listread:5,litem:10,littl:7,lnotepadokbutton:8,load:5,local:[4,5],localhost:5,locat:4,log:[4,5,6,7,14],logger:[4,5,6],loggerdumploghandleradd:5,loggerhandlerdumploglist:5,login:[4,5,6],logoff:[4,5],logout:14,logviewerbool:[5,7],lol:13,look:[3,4,5,7,13,14],lookmachinescreenshot:5,loop:10,low:10,lowercas:5,lprocessisstartedbool:4,lprocesslist:4,lpyopenrpa_settingsdict:9,lpyopenrpasourcefolderpathstr:6,lrdpitemdict:4,lrdptemplatedict:4,lresult:5,lresultdict:[4,5],luacclientdict:6,lxml:11,mac:14,machin:[0,4,5,6,14],machina:5,mail:2,main:[3,4,5,6,10],maintain:14,make:10,makedir:5,manag:4,mani:[2,3,9,14],manipul:[4,7,14],markdown:[1,14],maslov:14,master:0,match:10,matchtyp:5,max:5,maxim:9,maximum:10,mayb:4,mechan:3,mega:[3,7],megafind:2,memori:4,menu:8,merg:4,messag:5,method:[5,10],methodmatchurl:5,methodmatchurlbeforelist:5,methodolog:2,mhandlerdumploglist:5,microsoft:[0,10],minim:9,miss:10,mit:[2,14],mmstr:5,mode:13,model:[2,10],modul:[3,4,5,6],moduletocal:4,mondai:4,monitor:4,more:[3,6,10],mous:14,mrobotlogg:5,mrobotloggerfh:5,mrobotloggerformatt:5,must:5,name:[3,4,5,6,9,10],namewoexestr:4,namewoexeupperstr:4,need:[0,2,3,4,5,6,7,9,10,14],nest:4,net:[4,9],never:4,newkeydict:4,newkeylist:4,newvalu:4,next:10,non:14,none:[3,4,5,8,9,10],notat:[9,10],notepad:[4,5,8,9,10],noth:4,nothingbool:[5,7],now:[4,5,9],nul:10,object:[3,4,5,9,10,14],occupi:4,ocr:10,octet:4,off:[5,7],old:[4,5,6,9],onc:9,one:[5,6,7],onli:[0,4,5,7,9,10,14],onlin:14,open:[1,13,14],opencv:[0,11,14],openrpa52zzz:6,openrpa:[0,5],openrpa_32:13,openrpa_64:13,openrpaorchestr:10,openrparesourceswpy32:10,openrparesourceswpy64:10,openrparobotdaemon:5,openrparobotguix32:9,opensourc:14,oper:[0,4,6,14],opera:10,option:[5,7,10],orc:[4,5,7],orchestr:[5,6],orchestratormain:10,orchestratorrestart:4,orchestratorsessionsav:4,orchestratorstart:5,order:[3,10,13],org:[2,10],oscmd:4,oscredentialsverifi:4,other:[9,10,14],our:10,out:4,outargu:10,outlin:9,output:[4,5],outstr:4,overwrit:5,own:[3,6,10,14],packag:[0,6,8,14],page:[4,5,7,8],page_sourc:10,pai:[3,6],paid:[1,14],panel:[4,5,6,7,13],paramet:[3,4,5,9],parent:[9,10,13],parti:14,pass:[4,5],password:[4,5],path:[4,5,6,10],paus:10,pdb:5,pdf:[1,14],per:6,perfom:[10,14],perform:14,period:5,phone:3,pid:4,pil:11,pipupgrad:5,pixel:[4,5],plan:4,platform:14,pleas:[4,14],plu:4,port:[4,5],portabl:[0,10],possibl:14,post:[4,5],postfix:4,power:14,practic:[7,14],prefer:2,previou:4,print:[6,10],process:[3,5,6,9,10,12,14],processbit:9,processdetaillist:4,processisstart:4,processlistget:4,processnam:4,processor:[5,7,14],processoractivityitemappend:4,processoractivityitemcr:4,processoraliasdefcr:4,processoraliasdefupd:4,processordict:5,processstart:[4,5],processstartifturnedoff:5,processstop:[4,5],processwoexelist:4,processwoexeupperlist:4,product:10,program:[4,5,8],progress:1,project:[3,14],properti:[7,14],protocol:3,provid:[10,14],psutil:[6,11],pull:[5,7],purpos:2,pwa:10,pwaspecif:10,pwaspecification_get_pwaappl:9,pwaspecification_get_uio:9,pyautogui:[2,10,11,14],pycon:10,pymupdf:11,pyopenrpa:[0,1,2,3,5,6,7,8,9,10,12],pyopenrpa_uidesktopx32:9,pyopenrpa_uidesktopx64:9,pyopenrpadict:[5,7],pyrobot_cp:6,python32fullpath:9,python32processnam:9,python64fullpath:9,python64processnam:9,python:[0,3,5,8,9,11,13,14],pythonstart:4,pywin32:[2,11],pywinauto:[2,9,10,11],queue:[1,3,4,5,7],queuelist:5,r01:5,r01_integrationorderout:5,r01_orchestratortorobot:5,rais:4,rdp:[3,4,5,7],rdpactiv:5,rdpconfigurationdict:5,rdpkei:4,rdpkeydict:[5,7],rdpkeystr:[5,7],rdplist:[4,5],rdpsession:14,rdpsessioncmdrun:4,rdpsessionconnect:[4,5],rdpsessiondisconnect:[4,5],rdpsessiondublicatesresolv:4,rdpsessionfilereciev:5,rdpsessionfilesend:5,rdpsessionfilestoredreciev:4,rdpsessionfilestoredsend:4,rdpsessionkei:5,rdpsessionkeystr:5,rdpsessionlogoff:[4,5],rdpsessionmonitorstop:4,rdpsessionprocessstart:5,rdpsessionprocessstartifnotrun:4,rdpsessionprocessstop:4,rdpsessionreconnect:[4,5],rdpsessionresponsibilitycheck:4,rdptemplatecr:4,read:5,readi:0,readthedoc:10,receiv:4,reciev:[4,5],recognit:14,reconnect:4,reconnectbool:[5,7],recurs:10,reestr_otgruzok:5,refer:14,refresh:5,refreshsecond:5,regener:4,regular:10,rel:[4,5,6],reliabl:[2,14],rememb:[5,7],remot:[4,5,14],render:13,renderfunct:5,renderrobotr01:5,report:5,reqir:3,request:[4,5,11],requesttimeoutsecfloat:5,requir:[4,14],resolut:[4,5],resourc:[0,9,10,14],respons:[4,5],responsecontenttyp:5,responsedefrequestglob:5,responsefilepath:5,responsefolderpath:5,responsibilitycheckintervalsec:5,restart:[4,5,7],restartorchestr:5,restartorchestratorbool:[5,7],restartorchestratorgitpullbool:[5,7],restartpcbool:[5,7],restor:9,restrict:14,restructuredtext:[4,9],result:[4,5,7,9,10],returnbool:5,returnedbydatetim:5,rich_text:10,rich_text_r:10,right:14,roadmap:14,robot:[3,4,5,6,7,8,9],robot_r01:5,robot_r01_help:5,robotlist:5,robotrdpact:[4,5],rolehierarchyalloweddict:5,root:[4,5],row:5,rpa01:4,rpa:[1,4,5,8,14],rpa_99:4,rpatestdirtest:4,rst:[4,9],ruledomainuserdict:5,rulemethodmatchurlbeforelist:5,run:[0,4,5,6,9,14],russia:[2,14],russian:14,safe:[4,9,14],same:9,save:4,schedul:[3,14],scheduleractivitytimeaddweekli:4,schedulerdict:5,scopesrcul:5,screen:[4,5,14],screenshot:[0,5,7,14],screenshotviewerbool:[5,7],script:[3,14],search:[4,14],sec:[4,5],second:[4,5,9,10],section:[4,9],see:[0,4,5,6,8,9,14],select:9,selector:[9,10,13,14],selenium:[2,11,14],semant:[2,11],send:[4,5,7,14],send_kei:10,sent:4,sequenc:3,server:[0,3,4,5,7,13,14],serverdict:5,serverset:5,sesion:[4,5],session:[4,5,14],sessionguidstr:5,sessionhex:[4,5],sessionisignoredbool:[4,5],sessioniswindowexistbool:[4,5],sessioniswindowresponsiblebool:[4,5],set:[4,5,6,7,9,14],set_trac:5,setformatt:5,setlevel:5,settingsinit:9,settingstempl:[3,6],settingsupd:6,setup:5,sever:[3,10,14],share:4,shareddrivelist:[4,5],shell:[4,14],should:5,show:[5,7],side:[4,5,7],signal:4,simplifi:10,sinc:14,singl:3,singleton:4,skype:2,sleep:10,socket:3,softwar:2,solut:[0,10,14],some:[2,3,4,5,7,14],soon:[1,14],sorri:14,sort:4,sourc:[3,4,6,9,14],sourceforg:[4,9],space:3,special:5,specialist:2,specif:10,sphinx:[3,14],standart:5,start:[0,4,5,6,10,13,14],statu:4,stdout:[5,6],stop:[4,10,14],storag:[5,14],store:5,str:[3,4,5,9,10],stream:4,streamhandl:5,strftime:5,string:[4,9],struct:5,structur:[3,4,5],studio:[3,12,13],subprocess:10,success:4,successfulli:[0,4,10,14],sundai:4,supertoken:[4,6],superus:6,supetoken:4,supplement:10,support:[0,3,6,10,13,14],symbol:3,sync:[3,4],synchroni:4,sys:[5,6,10],system:14,tablet:3,task:2,technic:[3,5],technicalsessionguidcach:5,telegram:2,templat:[6,14],terminolog:10,tesseract:11,test2:5,test:[4,5,6],testcontrolpanelkei:5,testdef:4,testdefalia:4,testdir:4,testdirtest:4,testrdp:5,text:[4,10,13],than:[3,9],thank:[2,14],theori:14,thi:[4,5,7,10,14],thought:4,thread:[3,5,7],threadidint:5,thursdai:4,thx:10,time:[4,5,10,14],timehh:5,titl:[8,9,10],title_r:10,todo:4,token:4,tokendatetim:5,too:[4,5,7],tool:[3,10,13],top:9,tor:14,track:4,transmiss:4,transmit:[3,4],tree:14,trigger:[4,5],ttt:[3,5],turn:[5,7],turpl:3,tutori:[1,14],txt:4,type:[4,5,6],uac:14,uackeylistcheck:4,uacsupertokenupd:[4,6],uacupd:[4,6],uia:[9,10],uidesktop:[8,9],uio:[9,13,14],uioactiv:[9,10],uioei:10,uioinfo:10,uioselector:9,uioselector_exist_bool:9,uioselector_focushighlight:[9,10],uioselector_get_bitnessint:9,uioselector_get_bitnessstr:9,uioselector_get_uio:[8,9,10],uioselector_get_uioactivitylist:9,uioselector_get_uioinfo:9,uioselector_get_uiolist:9,uioselector_getchildlist_uiolist:9,uioselector_highlight:9,uioselector_safeotherget_process:9,uioselector_searchchildbymouse_uio:9,uioselector_searchchildbymouse_uiotre:9,uioselector_tryrestore_dict:9,uioselectorsecs_waitappear_bool:9,uioselectorsecs_waitdisappear_bool:9,uioselectorssecs_waitappear_list:9,uioselectorssecs_waitdisappear_list:9,uioselectoruioactivity_run_dict:9,uiotre:10,under:14,understand:7,unicodelab:[0,2,10],univers:3,unix:14,unzip:0,updat:[4,5],upper:[4,5],url:[4,5],url_:5,urllist:5,usag:[4,8,10],use:[0,3,4,5,7,9,14],used:4,useful:10,user:[3,4,5,6,9,10,14],user_99:4,user_pass_her:4,useradstr:5,usernam:[4,5],usernameupperstr:4,userrpa:4,userupperstr:5,using:[4,10,14],utf:4,util:[5,9,14],valu:[4,5,9],variant:4,ver:10,veri:2,verifi:4,version:[6,10,13],versionstr:5,via:2,video:10,viewer:[5,7,14],virtual:5,visibl:10,vision:[10,14],vista:0,visual:14,vms:4,wai:[4,6,10,14],wait:[4,9,10,13],want:[3,5,7,13,14],warn:6,web:[1,3,5,14],webcpupd:4,webdriv:10,weburlconnectdef:4,weburlconnectfil:4,weburlconnectfold:4,webuserinfoget:4,webuserissupertoken:4,webuseruachierarchyget:4,wednesdai:4,week:4,weekdai:[4,5],weekdaylist:5,well:14,were:14,whatsapp:2,when:[3,4,5,6,9,13],where:[4,10,13],which:[2,3,4,5,8,9,10,14],who:5,why:3,width:[4,5],wiki:10,win32:[9,14],win32api:11,win:4,window:[0,4,5,9,11,14],winpython:2,without:[0,4,5,14],wmi:11,work:[4,5,7,10,14],workingdirectorypathstr:5,world:14,wpy32:[0,9,10],wpy64:[0,9,10],wrapper:9,write:[2,3,10,14],www:[2,10,11],x32:[0,9,11,13,14],x64:[0,9,11,13,14],xlsx:5,yoomonei:14,you:[0,2,3,4,5,6,7,8,9,10,14],your:[0,2,9,10],zip:0},titles:["1. How to install","2. Roadmap","3. Copyrights & Contacts","1. Description","2. Defs","3. gSettings Template","4. How to use","5. UAC - User Access Control","1. Description","2. Defs","3. How to use","4. Dependencies","1. Description","2. How to use","Welcome to pyOpenRPA\u2019s wiki"],titleterms:{The:[10,13,14],Use:10,__orchestrator__:4,about:[7,10,14],access:[7,10],action:13,agent:[4,14],app:10,architectur:3,autom:10,button:13,captur:10,check:0,choos:13,click:13,cmd:10,compon:[2,3],concept:3,configur:3,contact:2,content:[13,14],control:7,copyright:2,creat:10,ctrl:13,def:[4,9],definit:10,depend:[2,11],descript:[3,8,12,13],desktop:10,dict:[3,7],dll:10,donat:14,exampl:10,execut:10,expand:13,extract:13,file:10,founder:2,from:10,global:3,group:4,gset:[4,5],gui:13,guid:14,has:14,hold:13,hover:13,how:[0,3,6,10,13],imag:10,instal:0,interest:13,ivan:2,kei:13,keyboard:10,licens:2,list:13,main:14,manipul:10,maslov:2,modul:10,mous:[10,13],object:13,openrpa:10,orchestr:[3,4,7,14],parti:2,practic:10,process:4,processor:[3,4],properti:13,pyopenrpa:[4,14],python:[4,10],rdpsession:4,recognit:10,refer:[3,4,9],repo:14,requir:0,result:13,right:7,roadmap:1,robot:[10,14],rpa:10,run:13,schedul:4,screen:10,screenshot:13,script:10,search:13,second:13,select:13,selenium:10,set:3,shown:13,structur:[10,14],studio:[10,14],system:0,templat:5,theori:10,tool:14,tree:13,turn:13,uac:[4,7],uidesktop:10,uio:10,uioselector:10,use:[6,10,13],user:7,viewer:13,web:[4,7,10],welcom:14,what:10,wiki:14,win32:10,x32:10,x64:10,you:13}})
\ No newline at end of file
diff --git a/Wiki/ENG_Guide/markdown/Orchestrator/02_Defs.md b/Wiki/ENG_Guide/markdown/Orchestrator/02_Defs.md
index 71c24e64..5c064640 100644
--- a/Wiki/ENG_Guide/markdown/Orchestrator/02_Defs.md
+++ b/Wiki/ENG_Guide/markdown/Orchestrator/02_Defs.md
@@ -59,29 +59,39 @@ Work with activity scheduling.
| Add activity in AgentDict.
|
-| `AgentOSCMD`(inGSettings, inHostNameStr, …)
+| `AgentActivityItemReturnExists`(inGSettings, …)
- | Send CMD to OS thought the pyOpenRPA.Agent daemon.
+ | Check by GUID if ActivityItem has been executed and result has come to the Orchestrator
|
+| `AgentActivityItemReturnGet`(inGSettings, …)
+
+ | Work synchroniously! Wait while result will be recieved.
+
+ |
+| `AgentOSCMD`(inGSettings, inHostNameStr, …)
+
+ | Send CMD to OS thought the pyOpenRPA.Agent daemon.
+
+ |
| `AgentOSFileBinaryDataBase64StrCreate`(…)
- | Create binary file by the base64 string by the pyOpenRPA.Agent daemon process (safe for JSON transmission)
+ | Create binary file by the base64 string by the pyOpenRPA.Agent daemon process (safe for JSON transmission)
|
| `AgentOSFileBinaryDataBytesCreate`(…)
- | Create binary file by the base64 string by the pyOpenRPA.Agent daemon process (safe for JSON transmition)
+ | Create binary file by the base64 string by the pyOpenRPA.Agent daemon process (safe for JSON transmition)
|
| `AgentOSFileTextDataStrCreate`(inGSettings, …)
- | Create text file by the string by the pyOpenRPA.Agent daemon process
+ | Create text file by the string by the pyOpenRPA.Agent daemon process
|
| `GSettingsAutocleaner`(inGSettings)
- | HIDDEN Interval gSettings auto cleaner def to clear some garbage.
+ | HIDDEN Interval gSettings auto cleaner def to clear some garbage.
|
| `GSettingsKeyListValueAppend`(inGSettings, inValue)
@@ -312,7 +322,50 @@ Add activity in AgentDict. Check if item is created
* **Returns**
- None
+ GUID String of the ActivityItem - you can wait (sync or async) result by this guid!
+
+
+
+### pyOpenRPA.Orchestrator.__Orchestrator__.AgentActivityItemReturnExists(inGSettings, inGUIDStr)
+Check by GUID if ActivityItem has been executed and result has come to the Orchestrator
+
+
+* **Parameters**
+
+
+ * **inGSettings** – Global settings dict (singleton)
+
+
+ * **inGUIDStr** – GUID String of the ActivityItem - you can wait (sync or async) result by this guid!
+
+
+
+* **Returns**
+
+ True - result has been received from the Agent to orc; False - else case
+
+
+
+### pyOpenRPA.Orchestrator.__Orchestrator__.AgentActivityItemReturnGet(inGSettings, inGUIDStr, inCheckIntervalSecFloat=0.5)
+Work synchroniously! Wait while result will be recieved. Get the result of the ActivityItem execution on the Agent side. Before this please check by the def AgentActivityItemReturnExists that result has come to the Orchestrator
+
+
+* **Parameters**
+
+
+ * **inGSettings** – Global settings dict (singleton)
+
+
+ * **inGUIDStr** – GUID String of the ActivityItem - you can wait (sync or async) result by this guid!
+
+
+ * **inCheckIntervalSecFloat** – Interval in sec of the check Activity Item result
+
+
+
+* **Returns**
+
+ Result of the ActivityItem executed on the Agent side anr transmitted to the Orchestrator. IMPORTANT! ONLY JSON ENABLED Types CAN BE TRANSMITTED TO ORCHESTRATOR!
@@ -345,6 +398,12 @@ Send CMD to OS thought the pyOpenRPA.Agent daemon. Result return to log + Orches
+* **Returns**
+
+ GUID String of the ActivityItem - you can wait (sync or async) result by this guid!
+
+
+
### pyOpenRPA.Orchestrator.__Orchestrator__.AgentOSFileBinaryDataBase64StrCreate(inGSettings, inHostNameStr, inUserStr, inFilePathStr, inFileDataBase64Str)
Create binary file by the base64 string by the pyOpenRPA.Agent daemon process (safe for JSON transmission)
@@ -368,6 +427,12 @@ Create binary file by the base64 string by the pyOpenRPA.Agent daemon process (s
+* **Returns**
+
+ GUID String of the ActivityItem - you can wait (sync or async) result by this guid!
+
+
+
### pyOpenRPA.Orchestrator.__Orchestrator__.AgentOSFileBinaryDataBytesCreate(inGSettings, inHostNameStr, inUserStr, inFilePathStr, inFileDataBytes)
Create binary file by the base64 string by the pyOpenRPA.Agent daemon process (safe for JSON transmition)
@@ -391,6 +456,12 @@ Create binary file by the base64 string by the pyOpenRPA.Agent daemon process (s
+* **Returns**
+
+ GUID String of the ActivityItem - you can wait (sync or async) result by this guid!
+
+
+
### pyOpenRPA.Orchestrator.__Orchestrator__.AgentOSFileTextDataStrCreate(inGSettings, inHostNameStr, inUserStr, inFilePathStr, inFileDataStr, inEncodingStr='utf-8')
Create text file by the string by the pyOpenRPA.Agent daemon process
@@ -417,6 +488,12 @@ Create text file by the string by the pyOpenRPA.Agent daemon process
+* **Returns**
+
+ GUID String of the ActivityItem - you can wait (sync or async) result by this guid!
+
+
+
### pyOpenRPA.Orchestrator.__Orchestrator__.GSettingsAutocleaner(inGSettings)
HIDDEN Interval gSettings auto cleaner def to clear some garbage.
diff --git a/Wiki/ENG_Guide/markdown/Orchestrator/03_gSettingsTemplate.md b/Wiki/ENG_Guide/markdown/Orchestrator/03_gSettingsTemplate.md
index ea0bd044..a59481ed 100644
--- a/Wiki/ENG_Guide/markdown/Orchestrator/03_gSettingsTemplate.md
+++ b/Wiki/ENG_Guide/markdown/Orchestrator/03_gSettingsTemplate.md
@@ -12,6 +12,7 @@ def __Create__():
"Autocleaner": {
# Some gurbage is collecting in g settings. So you can configure autocleaner to periodically clear gSettings
"IntervalSecFloat": 3600.0, # Sec float to periodically clear gsettings
+ "AgentActivityReturnLifetimeSecFloat": 300.0 # Time in seconds to life for activity result recieved from the agent
},
"Client": { # Settings about client web orchestrator
"Session": {
@@ -271,12 +272,21 @@ def __Create__():
},
"AgentDict": { # Will be filled when program runs
#("HostNameUpperStr", "UserUpperStr"): { "IsListenBool": True, "QueueList": [] }
+ },
+ "AgentActivityReturnDict": { # Will be filled when programs run - fill result of the Activity execution on the agent
+ # Key - Activity Item GUID str, Value {"Return": ..., "ReturnedByDatetime": datetime.datetime}
+ # If key exists - def has been completed
}
}
# Create full configuration for
def __AgentDictItemCreate__():
return {"IsListenBool":False, "ConnectionCountInt":0, "ConnectionFirstQueueItemCountInt":0, "ActivityList":[]}
+
+# Create full configuration for AgentActivityReturnDict
+def __AgentActivityReturnDictItemCreate__(inReturn):
+ return {"Return": inReturn, "ReturnedByDatetime": datetime.datetime.now()}
+
# Create full configuration for
def __UACClientAdminCreate__():
lResultDict = {
|