用于在Automation Anywhere v10.5上部署任务的Python包
automation-anywhere的Python项目详细描述
Automation Anywhere Python API集成
关于
这个python模块用于与automation Anywhere 10.5.x进行对话,并在选定的机器上启动任务。 它所做的基本上是将automation anywhere rest api调用2次:
- 登录
- 执行任务
Automation Anywhere确实有一个基本的检查任务是否“被要求部署” 成功,虽然很简单,但总比没有好。
安装
有一些最小的依赖关系:
pip install pyodbc>=4.0 sqlalchemy>=1.3 requests>=2.21
安装后,您可以继续安装:
pip install automation_anywhere
用法
同样,对于10.5.x版,api的用法基本上是:
from automation_anywhere import base
import logging
logging.basicConfig(level=logging.DEBUG)
try:
aa = base.Executor(host='localhost', protocol='http', port=8080, username='bot_user', password='bot_password')
aa.deploy_task(task='My Tasks\\Task1.atmx', client='BOTRUNNER01')
except Exception as error:
print(error)
raise
错误主要来自我们用json创建的requests()
,
尽管自动化在任何方面都有一些错误,但它们又回来了
主要是“内部错误”,除非是用户名/密码问题。
任务状态如何?
Automation Anywhere API(至少在版本10上)不返回任务状态,它只返回 返回deploy状态。我知道我在 数据库,并提出了一些可以检查任务状态的简单查询。
在使用之前,您应该知道一些注意事项和警告:
- 它将阻塞执行,使其成为同步执行,而不是异步执行
- 您需要直接为控制室数据库配置ODBC
- 将有很多查询来获得正确的任务ID和状态
- 这个简单的不适用于v11
- 这是可行的,但它没有经过很多测试,因此可能有一些错误
如果您愿意,这里有一个关于如何使用它的示例
from automation_anywhere import base
import logging
logging.basicConfig(level=logging.DEBUG)
try:
aa = base.Executor(host='localhost', protocol='http', port=8080, username='bot_user', password='bot_password')
aa.database_options = {
'DSN': 'CR_ODBC_LINK',
'username': 'username',
'password': 'password'
}
aa.set_check_status(True)
if aa.deploy_task(task='My Tasks\\Task1.atmx', client='BOTRUNNER01') is False:
logging.info('Task deploy or execution failed!')
logging.info('Task return information:')
logging.info('Status : {status}'.format(status=aa.task_status['status']))
logging.info('Complete: {complete}'.format(complete=aa.task_status['complete']))
logging.info('Error : {error}'.format(error=aa.task_status['error']))
except Exception as error:
print(error)
raise
已知问题
总有一件大事需要考虑:控制室 必须打开凭证保管库。如果没有,则控制室API无法 部署任务。不过,automation anywhere api将简单地返回 作为一个“内部错误”,所以当这种情况发生时,你需要去控制室 审核日志并检查错误。
根据我们的经验,90%的错误是“凭证保管库未打开”。为了 修复这个用户只需在“控制室”上作为管理员登录,所以如果你 使用管理员用户检查所有这些,恭喜,通过检查 已经修好了。
但是,有一个api调用用于检查凭证保管库是否打开, 但事实证明这是非常不可靠的,而且没有官方文件 为了它,所以我没有在这里添加它。可能在自动化的v11上 执行得更好。
关于自动化的v11 Anywhere
当我开发这个简单的python模块时,automation anywhere发布了 它的v11软件。它有很多新的和闪亮的东西,但是我没有 到目前为止还可以测试。这基本上意味着这个应该可以工作,但是我会 在我测试之前,千万别保证。
待办事项
虽然我没有时间表(记住我是pro-bono这里),但有一些事情 我想做(没有特定的顺序):
- v11测试
- 提高此模块的易用性