将 ServiceNow 的数据映射到表单
- Updated: 2025/04/30
以下示例可用于在开发 iFrame widget 时建模代码,以便在 ServiceNow 中传输和使用主机数据。
开始之前
以下示例使用 ServiceNow 作为主机应用程序,演示如何使用 HTML 和 JavaScript 实现从主机到 Automation Co-Pilot (iFrame widget) 的数据传输。 引用的代码将主页 (ServiceNow) 中的现有值映射到 Automation Co-Pilot 流程初始表单元素。 该示例中的代码是通用的,可以在类似应用程序中使用,以便为根据您特定业务需求对元素所做的修改建模。 iFrame widget 的开发和设置是针对 ServiceNow 参数的。
确保您已完成以下步骤。
- 为最终用户提供系统创建的 AAE_Robotic_Interface 用户角色。
- 拥有网页界面上的 Automation Co-Pilot for Business Users 的访问权限。
- 拥有支持 iFrame 技术的所选主机网页应用程序的访问权限。
- 您已经设置了 iFrame 小部件。 有关更多详细信息,请参阅 在网页应用程序中配置 iFrame 小部件。
过程
- 在 ServiceNow 中,单击开始构建。 这将引导您跳转到相应的开发人员账户。 ServiceNow 开发人员账户
- 浏览以下路径: 。
- 在创建小部件时启用创建测试页面,以便在开发过程中查看 HTML 模板和客户端脚本。
- 单击启用预览,然后单击眼睛图标以显示用于测试代码更改的预览选项卡。
- 使用以下示例来建模您将用于业务需求的代码。
- 将相应的代码添加到客户端脚本中。
- 将 Automation Co-Pilot iFrame 元素添加到 HTML 模板中。
- 确保参数
referrerpolicy=”origin”
在您的 HTML 模板中,以避免跨源问题。
- 保存您的小部件。 将加载预览。
- 查看预览,并对 HTML 模板和客户端脚本进行必要的编辑。
- 保存您的更改。
HTML 示例
<div> <!-- your widget template --> <label for="fname"> 名字:</label> <input type="text" id="fname" name="fname" value="sikha"><br><br> <label for="lname">姓氏:</label> <input type="text" id="lname" name="lname" value="poyyil"><br><br> <iframe src='https://aa-pet-us-17.my.automationanywhere.digital/copilot?tags=%5B%5D' name="aari-embedded-app" width="100%" height="500px" style="border: none;" referrerpolicy="origin"> </iframe> </div>
客户端脚本示例
api.controller=function() { /* widget controller */ var c = this; console.log(c) console.log(window) var getLatestData = function() { return { 167 : { TextBox0: document.getElementById("fname").value, TextBox1: document.getElementById("lname").value, hiddenVariable0: document.getElementById("id").value } }; } console.log("Data" + JSON.stringify(getLatestData())); console.log(event) setTimeout(function() { window.addEventListener('message', function(event) { if(event.data.aariDataRequest === 'aari-data-request') { var mappedHostData = getLatestData(); var id = event.data.processId ||event.data.botId; console.log("Event data: " + JSON.stringify(event.data)); console.log("Data passed: " + JSON.stringify(mappedHostData[id])); var iframeElement = document.getElementsByName("aari-embedded-app")[0]; iframeElement.contentWindow.postMessage({data: mappedHostData[id] }, iframeElement.getAttribute("src")); } }); }, 100); };