前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Apriso开发葵花宝典之二Process Builder调试篇

Apriso开发葵花宝典之二Process Builder调试篇

作者头像
李英杰同学
发布2023-09-02 08:31:00
5290
发布2023-09-02 08:31:00
举报
文章被收录于专栏:智能制造社区智能制造社区

本文作者陈捌华,感谢捌老师倾情奉献。

概述

Process builder是Delmia Apriso中主要的业务流程管理工具,也是DELMIA更广泛的Apriso制造运营管理解决方案的核心应用程序,Process Builder允许使用屏幕流管理设计方法和实体(如项目、屏幕、布局、视图和操作(函数))创作用户界面和业务逻辑。该应用程序能够快速方便地管理和修改开发的设计,使您能够根据需要随时更改业务流程。由于增强了对可重用性的支持,以前开发的逻辑可以在新的设计中快速重用。

本文介绍几个在常规培训学习中容易被忽略,但又能有效提升开发效率的Process builder调试技巧。

页面执行流程

在开始代码调试前,每个开发者首先需要了解和熟悉Process builder页面处理流程:

Action链(Next Action):

当需要多步骤的后台验证或处理时,请确保将验证和处理操作划分为专用的(更细粒度的)标准操作。接下来必须使用Next Action特性来确定如何以及何时执行每个验证或处理操作。

使用Next Action特性将确保您的业务逻辑中使用的标准操作具有更好的可重用性。

Action优先级:

Process builder中有多个不同的Action源,在选择要执行的Action之前(按顺序)对所有这些源进行分析。提交Screen后,按照以下顺序确定下一步处理:

  • Header中的导航浏览路径
  • 来自界面视图(包括弹出视图)的操作
  • Go To Screen外部输出
  • Header视图的的Action动作
  • Header视图中的搜索框事件
  • 从界面中设置的默认Action
  • 如果以上都不是,则刷新界面

调试视图介绍

Process builder中提供了server mode和client mode两种页面运行模式,两种模式页面渲染模式不同,同样调试视图、debug tree等也存在差异(详细差异可能在其他文档中进行介绍)。

  • Step:只有在执行process或者Operation时出现,包含所有执行过程的步骤,在调试时可以选中其中一个step作为运行起点
  • Style context: 允许查看正在测试的实体将如何在一个可用上下文中来呈现的
  • Enable Remote Debugging:只在client mode出现,允许进行remote debugg远程调试。

会话变量Tab页:

会话变量选项卡包含一个Grid清单,其中列出了正在执行的步骤或屏幕使用的所有会话变量。它包含例如,列-名称和值。变量颜色的含义:

  • 蓝色 - 系统变量
  • 黑色 - 会话变量
  • 灰色 - 不可编辑的变量
  • 粉红色 - 变量的修改值。在执行Step时,用户可以通过在变量的value字段中输入一个新值来修改可编辑变量的值。修改后的值将以粉红色显示,直到用户单击“更新会话变量”。

如果输入的任何值是不可接受的,则单击“更新会话变量值”按钮时将显示错误消息。更新的会话变量保存为用户个性化。每个用户、操作和步骤的个性化设置是不同的。

在Client mode下,还允许进行变量的导出、导出和新增、删除。

搜索框:

可以通过选择适当的复选框按名称和/或值进行搜索。选中复选框后,搜索算法将遍历所有树节点,只标记与输入值匹配的节点。第一个匹配节点的父节点会自动展开,节点本身也会被标记。

右/左箭头按钮可用于导航到下一个/上一个匹配节点。导航到下一个匹配节点总是影响所有父节点的展开(然后只标记匹配节点)。使用这个搜索功能,可以方便地跟踪会话变量在整个运行周期中的输入输出和值变化。

调试树:

  • 如果实体执行正确,则节点显示为绿色;如果出现错误,则节点变为红色
  • 双击任何节点都会自动将您转移到所选实体
  • 执行特定函数所需的时间显示在实体名称旁边
  • “操作名称”旁边显示“操作”和“子操作”的修订号
  • 当选择树上的输入/输出时,它的属性(主要是它的值)将显示在树下面的properties窗口中

而在client mode运行时:

调试树显示在屏幕流(屏幕、视图和操作)期间计算的所有实体的屏幕。客户端模式下可以出现的条目:

  • 初始化-连接到屏幕的初始化操作
  • 加载-连接到屏幕的加载操作
  • Display—显示视图时执行的操作部分
  • 调用——异步调用的操作(详细信息请参见使用AJAX)。
  • 计算——提交视图时执行的部分操作
  • 操作-如果操作链接到操作,则可能包含操作
  • 屏幕名称旁边显示的时间信息如下:
  • 客户端时间-屏幕显示所需的完整时间
  • 服务器时间——在屏幕显示期间执行的操作次数的总和(例如,初始化、加载和显示操作)

User fomula函数快速设置输入参数

1、在调试树中选中对应函数节点,右键点击“Copy Input values”即可以获取当前函数在运行时的输入参数值;

2、打开Function编辑框后,选中“从剪贴板粘贴”即可完成输入参数的赋值

AJAX调试

▶第一步,通过浏览器调试工具,定位到Ajax调用的请求

▶第二步,选中inputs参数,右键选中“复制object”

▶第三步,Process builder中打开Operation,并选择“高级测试运行”运行,点击“从剪贴板粘贴测试值”,点击“可以”进行测试运行

获取GRID/SQL Query函数运行时SQL语句

在调试树中选中Grid或者SQL Query函数节点,右键点击“复制SQL”即可以获取当前Grid中使用的SQL语句:

Ctrl+V复制结果,复制结果可以粘贴到相应的SQL开发工具中进一步进行调试和问题排查。

Developer Tools视图

Process builder中内置了Developer Tools视图视图,在测试运行模式下,可以通过菜单视图—>“HTML 源”来打开,这个和Chrome浏览器的开发者工具是一样的,可以用于页面调试。

Javascript调试

一般浏览器都内置了调试工具,内置的调试工具可以开始或关闭,严重的错误信息会发送给用户。我们就可以设置断点 (代码停止执行的位置), 且可以在代码执行时检测变量。

浏览器启用调试工具一般是按下 F12 键,并在调试菜单中选择 "Console" 。主要的几个调试方法有:

1、浏览器控制台console调试

  • 使用 console.log() 方法在调试窗口上打印 JavaScript 值

console.log ('普通信息'),可以输出文本、指定id的DOM对象、指定对象

console.info ('提示性信息')

console.warn ('警示信息')

console.error ('错误信息')

  • console.dir(),输出打印对象的详细键值对信息,若该对象为HTML元素,则该元素的DOM的表达式会按DOM树输出。这个方法是我经常使用的,比for in方便了很多,可以详细查对象的方法
  • console.assert(),对输入的表达式进行断言,只有表达式为false时,才输出相应的信息到控制台。当你想代码满足某些条件时才输出信息到控制台,那么你大可不必写if或者三元表达式来达到目的,那console.assert()就是最好的选择。
  • console.time(),console.timeEnd(),可以查看一段代码执行的耗时情况。在使用的时候这两个方法需要传递同一个参数,若不传,则为“default”
  • ,Chrome 控制台中原生支持类jQuery的选择器,也就是说你可以用加上熟悉的css选择器来选择DOM节点。

(selector)是对ocument.querySelectorAll() 的封装。返回的是所有满足选择条件的元素的一个集合。

  • Copy,可以将在控制台获取到的内容复制到剪贴板。注意:他不依附于任何全局变量比如window,所以其实在JS代码里是访问不了这个copy方法的,所以从代码层面来调用复制功能也就无从谈起。但愿有天浏览器会提供相应的JS实现吧~这样我们就可以通过js代码进行复制操作而不用再依赖Flash插件了。
  • keys,values,keys:返回传入对象所有属性名组成的数组,values:返回所有属性值组成的数组
  • monitor,unmonitor,monitor(function),它接收一个函数名作为参数,比如function a,每次a被执行了,都会在控制台输出一条信息,里面包含了函数的名称a及执行时所传入的参数。而unmonitor(function)便是用来停止这一监听。
  • debug,undebug,接收一个函数名作为参数。当该函数执行时自动断下来以供调试,类似于在该函数的入口处打了个断点,可以通过debugger来做到,同时也可以通过在Chrome开发者工具里找到相应源码然后手动打断点。而undebug 则是解除该断点

2、设置断点:

在调试窗口中,你可以设置 JavaScript 代码的断点。在每个断点上,都会停止执行 JavaScript 代码,以便于我们检查 JavaScript 变量的值。在检查完毕后,可以重新执行代码(如播放按钮)。

3、debugger 关键字

debugger 关键字用于停止执行 JavaScript,并调用调试函数。这个关键字与在调试工具中设置断点的效果是一样的。可以在需要断点的语句前加入debugger关键字设置断点,如果没有调试没有打开,debugger 语句就不会起效。

远程调试

远程调试只有在Client 模式下可以使用,此功能允许在Process Builder之外运行屏幕时进行调试,即在浏览器中(通过在DELMIA Apriso Portal中启动的FlexPart)或在移动设备上(通过在DELMIA Apriso移动应用程序中启动的FlexPart)。使用方法如下:

1、开始一个屏幕的测试运行。

2、登录Portal或移动设备,并运行同一个Screen的实例。

3、选中“启用远程调试”框。

4、从下拉菜单中选择要显示结果的远程会话(由员工姓名(时间)、主机名、用户平台、浏览器版本标识,例如System Administrator(10:57:42)、hostname.com、Windows 10、Chrome 76.0)。

调试树将实时显示远程会话的结果,其他信息和错误显示在Debug Results选项卡的Properties部分中。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-05-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 智能制造社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
远程调试
远程调试(Remote Debugging,RD)在云端为用户提供上千台真实手机/定制机/模拟器设备,快速实现随时随地测试。运用云测技术对测试方式、操作体验进行了优化,具备多样性的测试能力,包括随时截图和记录调试日志,稳定的支持自动化测试, 设备灵活调度,用例高效执行, 快速定位产品功能和兼容性问题。云手机帮助应用、移动游戏快速发现和解决问题,节省百万硬件费用,加速敏捷研发流程。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档