如何在 blueprism 中使用调用 js return 来自 javascript 函数的输出

How to return an output from javascript function using invoke js in blueprism

我想从网页中读取多个键值对,并使用 blueprism 将其写入集合。 我想使用 javascript。 我能够从网页中读取文本,但无法理解如何将该数据写入 blueprism 数据项或集合。

Blue Prism 不提供直接从 JavaScript 回调到调用对象的 return 数据的便利。你最好的选择是使用一个脚本,在 DOM 中生成一个隐藏的 input 元素并附加你想要泄露的数据:

var hiddenElement = document.querySelector('#bp-output');
if (typeof hiddenElement === 'undefined') {
    hiddenElement = document.createElement('input');
    hiddenElement.type = 'hidden';
    hiddenElement.id = 'bp-output';
    document.body.appendChild(hiddenElement);
}
hiddenElement.value = /* some functionality to set the value of the newly-created hidden element */;

您需要在对象的应用程序建模器中对此元素进行建模,但这相当简单 - 除了“ID”或“Web ID”之外,您不需要匹配任何属性,而且它是仅匹配字符串 bp-output.

从那里,您可以使用典型的读取阶段从元素的 value 属性中读取值。

对于像集合这样的更复杂的数据结构,您将不得不利用一些序列化技巧来到达您想要的位置。例如,如果您尝试通过 JavaScript 将 table 读入集合,则上例中的 /* functionality to set the value of the newly-created hidden element */ 可能需要利用 this SO thread 中的一些代码来序列化table 本身转换为 CSV 字符串。从隐藏元素的 value 读取字符串后,您可以使用供应商提供的 Utility - Strings VBO 中的 CSV 相关操作将其序列化为适当的集合,供您在 Objects/Processes.