用于在Automation Anywhere v10.5上部署任务的Python包

automation-anywhere的Python项目详细描述


Automation Anywhere Python API集成

关于

这个python模块用于与automation Anywhere 10.5.x进行对话,并在选定的机器上启动任务。 它所做的基本上是将automation anywhere rest api调用2次:

  1. 登录
  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状态。我知道我在 数据库,并提出了一些可以检查任务状态的简单查询。

在使用之前,您应该知道一些注意事项和警告:

  1. 它将阻塞执行,使其成为同步执行,而不是异步执行
  2. 您需要直接为控制室数据库配置ODBC
  3. 将有很多查询来获得正确的任务ID和状态
  4. 这个简单的不适用于v11
  5. 这是可行的,但它没有经过很多测试,因此可能有一些错误

如果您愿意,这里有一个关于如何使用它的示例

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测试
  • 提高此模块的易用性

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
库伯内特斯的爪哇普罗米修斯jmx_出口商   在Java中使用通配符(仅限最后一个索引)验证ip地址的正则表达式   对象类的java equals()方法   java spring boot(webflux)rest控制器获取远程IP地址   crc Java在同一字符串上返回不同的CRC32结果   包含数字和字母的java排序数组列表   java更改一个类变量的值,然后在另一个类中调用它   java Do While循环终止,不执行scanner函数   作为cron作业运行的linux Java控制台应用程序存在相对路径问题   安卓如何使用HttpUrlConnect使用java查询Github graphql API   视频在java中如何将字节缓冲区写入一半?   安卓如何通过java将RadioButton添加到RadioGroup?   具有TARGET_类代理模式的java请求_作用域bean在注入到其他组件(如@Service或@Repository)中时只能看到空参数