费用报销单上传发票,发票导入单据后,页面卡住问题分析原创
金蝶云社区-云社区用户911g2278
云社区用户911g2278
8人赞赏了该文章 174次浏览 未经作者许可,禁止转载编辑于2023年12月14日 20:08:55

1、问题描述

    费用报销单打开发票助手上传发票后,点击”发票导入单据“后,页面卡住不动,如下图。


上传图片

2、问题分析

    出现该现象是因为打开单据,页面加载时没有和发票云成功建立socket连接,导致用户点击“发票导入单据”后页面没有监听到事件,所以一直停留在此页面,无法进行构建发票信息逻辑处理。

3、前端socket建立连接过程

    a、单据加载时,在fieldOnLoadAfter方法加载调用websocket_eas#createWS函数获取创建socket连接的pwy-socketio-v2.js文件。

image.png

image.png

    b、建立socket连接

        在pwySocketIo函数初始化变量并在init函数建立socket连接

        发票云根地址,用于发票云请求接口的根url。

        发票云socket连接地址,用于eas和发票云建立socket连接。

image.png

image.png

4、遇到过的问题原因以及解决方法

    a、环境连错了,eas测试环境连上了发票云正式环境或者eas的正式环境连上了发票云的测试环境,到环境eas\Server\server\properties目录下,检查发票配置文件cpbc_invoice_config.xml,env节点的配置。prod代表正式环境,test代表测试环境,如果发现不对修改完配置文件后重启服务再试下导票。

image.png

    b、客户端和服务端中间存在代理,例如nginx

        代理服务器配置,参考https://www.yuque.com/piaozone/implement/he969n?

        配置完之后,修改环境\eas\Server\server\deploy\easweb.ear\eas_web.war\webviews\cp\bc\js目录下的websocket_eas.js,把链接改为代理的域名和端口号覆盖原js文件,然后在线打包下js文件,再试下导票。

image.png

    c、可能存在二开,在导票回调后onMessage进行二开逻辑处理出现报错,导致发票助手页面无法正常关闭。

image.png

    

赞 8