如何使用微信开发者工具调试在微信端访问的网页

举报
汪子熙 发表于 2022/02/18 21:00:21 2022/02/18
【摘要】 假设我用vue开发了一个web应用,需要在手机微信里访问并调试, 可以按照本文介绍的步骤,使用微信开发者工具来调试.假设我的web应用的访问入口是如下公众号菜单的"预约"按钮:那么为了能够在微信开发者工具里调试,需要首先进入该公众号的后台,在web开发者工具里,将我本人的微信号添加进去:点击"绑定开发者账号":输入待绑定的微信账号:点击绑定,该微信号会收到一条消息,询问是否绑定:点击同意操作...

假设我用vue开发了一个web应用,需要在手机微信里访问并调试, 可以按照本文介绍的步骤,使用微信开发者工具来调试.

假设我的web应用的访问入口是如下公众号菜单的"预约"按钮:

那么为了能够在微信开发者工具里调试,需要首先进入该公众号的后台,在web开发者工具里,将我本人的微信号添加进去:

点击"绑定开发者账号":

输入待绑定的微信账号:

点击绑定,该微信号会收到一条消息,询问是否绑定:

点击同意操作完成绑定.

接下来,把要调试的web应用的url放到微信开发者工具地址栏里,回车之后,微信开发者工具就会弹出一个询问窗口,点击Allow之后,就可以在微信开发者工具提供的类似Chrome开发者工具调试器一样的界面里进行单步调试了.

这个粘贴到地址栏的url很有讲究。

https://open.weixin.qq.com/connect/oauth2/authorize?appid=yyyy&redirect_uri=https%3A%2F%2F%2Fsmart&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect
其中appid=后面的值,是从微信公众号控制台里拷贝出来的appid:

redirect_uri, 即为我们开发的web应用,部署到服务器之后生成的url,需要经过url encode处理:https:/…/smart

这个url准备好之后,将其粘贴到微信开发者工具地址栏里,回车,即可看到一个对话窗口,要求获得我们公开信息的许可:

点击Allow之后,就可以像使用Chrome开发者工具的调试器一样,在微信开发者工具里进行单步调试了:

AG9 Service order创建好之后,要自动通过middleware传其他系统去,这个behavior我们现在记录下来了么?知道怎么disable不?

Transaction的status profile上可以配这么一个东西:

但是我们现在的ZSRV上没有配任何status profile…

line 325的function module会负责通过outbound queue往外发,

只有当line 321的IF里的三个条件同时满足才会进入:


条件1: IV_NO_BDOC_SEND = FALSE, AG9上这个参数用的默认参数false,满足

条件2: LV_SEND_BDOC = TRUE
读这个global的internal table,如果读不到,置为TRUE,AG9上读不到,所以为true,这个条件也满足了。

条件3: LV_SKIP_ASYNCRONOUS_FUNCTION = INITIAL
如果该order的状态置为POST PROCESSING, 则该变量值为true,但是AG9上我们的status是open,所以这个条件也满足

三个条件同时满足,所以通过middleware里往outbound queue发数据。

如何避免这个行为?根据代码分析,破坏IF里三个条件任意一个即可。通过debug可知破坏第二个条件最容易,我正在看相关的配置。

条件2少截一张图:

条件2: LV_SEND_BDOC = TRUE
读这个global的internal table,如果读不到,置为TRUE,AG9上读不到,所以为true,这个条件也满足了。

有两种solution disable这个行为:

(1) CRM_ORDER_SAVE call line 56行的CRM_ORDER_SAVE_OW时,IV_NO_BDOC_SEND没有指定value,所以传进来的是默认值ABAP_FALSE,
这里我们强制改成TRUE, 就会破坏要上传的那三个条件的第一个,导致不会进入上传的分支。

(2) 如果只是想disable 某种特定transaction type的document,call 这个function module:
CRM_ORDER_SET_NO_BDOC_SEND_OW, 输入order的guid,会添加一行entry到GT_NO_BDOC_SEND里,
这样会破坏IF判断里中间那个条件,也能实现不上传的目的。

这两种技术上都行。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。