EAS调试技巧分享

栏目:eas cloud知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

EAS调试技巧分享

在调试跟踪EAS问题的过程中,经常会遇到一些问题不知道从何跟起,这里分享一下常见问题的调试方法,如有问题欢迎大家指正【emoji】。


问题一:知道后台执行的地方,但是想定位前台哪里发送的rpc请求

调试方法:

  1. 断点后台代码

  2. 后台线程暂挂时,找到客户端的AWT-EventQueue-2线程

  3. 点击suspend(暂挂),即可查看客户端调用发起的地方


问题二:前台有弹窗提示,需要定位是哪里给出的提示

调试方法:

GUI弹窗类为com.kingdee.eas.util.client.MsgBox,

代码中基本都是调用此类中的方法给出弹框提示 例如:showInfo(), showWarning()…

如不知弹框的具体类型, 可直接在com.kingdee.bos.ctrl.swing.KDDialog.show()方法断点 ,即可根据堆栈跟踪到弹框的代码位置。


问题三:控件值发生改变,想要定位到是哪个地方改变了控件值

调试方法:

直接在控件的设值方法中打条件断点跟踪。

以F7为例: 可直接在 com.kingdee.bos.ctrl.extendcontrols.KDBizPromptBox.setData(Object, boolean, boolean) 方法打断点。因为所有F7设值都会进入此方法,我们需要设置断点条件跟踪具体某个F7在哪里设置。

可以通过通过快捷键alt+shift+d调出客户端调试界面,获得控件的名称,通过名称设置过滤条件

例如:”bizPromptSupplier”. equals(this.getName())。即可只跟踪bizPromptSupplier这个F7的设值。其他控件如文本,下拉框,日期控件等都可使用类似的方法跟踪值变的调用。

特殊说一下表格控件,表格设值的方法为:com.kingdee.bos.ctrl.kdf.table.KDTable.XCell.setValue(Object),可以使用用行和列的索引值作为断点条件跟踪指定行列的值变, 例如:3==index.getColIndex()&&2==index.getRowIndex(),跟踪第4列,第3行的值改变(行列的索引值从0开始)。


问题四:通过RPC日志发现一条耗时的sql,想定位到执行sql的代码位置

调试方法:

  1. 通过ctrl+alt+]录制工具,录制后找到此sql

  2. 对应在com.kingdee.bos.sql.shell.KDStatement.execute(String) com.kingdee.bos.sql.shell.KDPreparedStatement.executeBatch() 等方法中断点,通过ksql等内部变量过滤sql内容,例如: ksql.contains("Fqty")。



EAS调试技巧分享

在调试跟踪EAS问题的过程中,经常会遇到一些问题不知道从何跟起,这里分享一下常见问题的调试方法,如有问题欢迎大家指正【emoji】。问题一...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息