相信每个从事SAP的顾问都会遇到这样的场景:听着歌,录着SAP数据,写着ABAP代码,突然一切都消失了。

是的,SAP GUI又崩溃闪退了。

可能你还一脸懵逼不知道发生什么事情,当你重新登录系统的时候却发现自己的账号卡在系统里面,甚至锁定部分单据,辛辛苦苦码的代码都来不及的保存。

(查看权限数据,退出关闭窗口,闪退)

SAP GUI闪退现象缠绕着每个使用SAP的人,IT每天都要忍着用户的吐槽、开发人员早已习惯写一行代码就按一次Ctrl+S、用户在批导单据的时候默默祈祷一切顺利不闪退。

久而久之,闪退现象导致用SAP的用户都产生了一种不安全感,慢慢地就以为ERP系统也许就是这样子吧。甚至面对闪退已经心不惊眼不跳,就当是系统产生了人工智能,知道用户辛苦,就自我退出强制用户休息。

不过作为“兼职”Basis的我,对这闪退现象已经忍无可忍,每天一千多次的闪退记录极大摧毁了用户的好感,被用户在群里艾特到怀疑人生。

每天特别害怕用户说道:

以前旧系统都不会闪退,为何现在这么频繁?
以前也出现闪退现象,后来调了一个参数就解决了。
作为Basis,你要解决这个问题啊!

--好吧,那就来解决这个问题吧--

经过大量的系统崩溃闪退日志分析,反复试验,重装系统N次,卸载重启安装各种输入法N次,终于确定了SAP GUI闪退的原因来源于一些中文输入法。

6月份我在SAP官网提交了一个Incidents,说明了这个问题、所使用的版本和记录到的系统日志:

同时在微博上也跟输入法官方取得了联系:

SAP官方支持顾问安装输入法之后也重现了这个现象,之后他们技术部门给我一个捕获闪退事件的工具ADPlus,让我上传跟踪trace文件:

发过去之后,SAP技术部一阵猛如虎地分析——暂时也没发现问题在哪里。几天之后他们将问题提交给了美国微软总部:

另一边,输入法工程师也暂时找不到问题在哪里,毕竟闪退的不是输入法程序:

几天之后微软总部回复说需要安装Windows11最新系统和补丁,关闭输入法的“兼容旧时功能”,但这根本解决不了问题:

一来二去扯了接近一个月,最后美国微软总部工程师丢给我一个抓崩溃闪退代码的工具PartnerTTDRecorder和捕获命令:

按照指示,我成功抓取到了闪退代码文件,提交给了SAP和微软总部:

又等了足足半个月,微软终于回复并明确了是输入法在执行初始化组件CoCreateInstance时导致的问题,最后给出了具体导致闪退的BUG Note。

有了这个信息,我再次找到输入法工程师,他们根据微软提供的Bug信息很快找到了发生闪退的那段代码,很容易就修复了:

他们快速编译了一个内部测试的版本,经过安装试用,原来100%会崩溃闪退的操作画面都已经不发生了!

由此折腾了两个月,持续多年并困扰了所有SAP顾问和用户的崩溃闪退问题彻底找到原因并得到了解决!

(更新输入法之后,已经不闪退了)

发现和解决疑难杂症是一个非常艰辛的过程,你永远都不知道目标和方向在哪里,辛苦花费时间和精力是否会有结果。

但只有坚持不懈,持之以恒,总能遇见曙光。

现在,我终于可以说我总算为这个行业做了一丢丢的贡献了~

注:输入法最新更新版本预计会在8月底发布...

困扰所有SAP顾问多年的问题终于解决了的更多相关文章

  1. 困扰了2天的问题,终于解决了。VB6的MSComCtl.ocx在32位Win7显示对象库未注册

    解决方案在这里,中文的资料真的挺垃圾的.(重启几次之后又不行了....怎么回事???) 安装.net framework4.0以上版本, C:\Windows\System32, C:\Windows ...

  2. 一个SAP顾问在美国的这些年

    今天的文章来自我的老乡宋浩,之前作为SAP顾问在美国工作多年.如今即将加入SAP成都研究院S4CRM开发团队.我们都是大邑人. 大邑县隶属于四川省成都市,位于成都平原西部,与邛崃山脉接壤.东与崇州市交 ...

  3. SAP顾问发展

    关于SAP顾问发展的话题也不仅仅是一次的谈起,但是我想对于自己的规划很多人是否有没有深刻的考虑过.这对于你我来说都非常的重要,那么作为我来说,我仅仅把自己的观点阐述以供大家思考,希望对大家能有所帮助. ...

  4. 从SAP顾问猝死事件谈顾问加班

    今天朋友圈盛传一则消息,说是南瑞集团的一名名为牛耕耘的SAP顾问因为工作强度大,连续不分昼夜加班而猝死在工作岗位上,遗留下年迈的父母.体弱的妻子.刚满周岁的孩子和巨额的债务.我无法证实该消息的真伪,但 ...

  5. 终于解决了一个Win7 下 VS 编译的问题,困扰了我好几个月

    用 Win7 一年多了,一直在这个环境下编程,其他都挺好,就是有个问题非常恶心,在VS下编译经常出现进程正在使用,无法覆盖的错误,这个问题我记得博问中以前也有其他人遇到过,也没有解决掉.此问题困扰了我 ...

  6. 非常的奇葩,终于解决了硬盘从盘盘符消失的问题 http://bbs.gamersky.com/thread-1712710-1-1.html (出处: 游民星空论坛)

    本人用电脑也十多年了,硬盘的问题也碰到过不少.但最近却碰到了一个很奇葩的问题.就是安装了一块全新的SSD硬盘当从盘,但在装上之后,在我的电脑中却不显示,没有盘符.不过打开系统磁盘管理却能显示硬盘信息. ...

  7. mysql 去除重复 Select中DISTINCT关键字的用法 在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供 有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是 distinct只能返回它的目标字段,而无法返回其它字段,这个问题让我困扰了很久,用distinct不能解决的话,

      在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供 有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记 ...

  8. PhpStorm 2016.3 For Mac 重大里程碑更新 -- 终于解决了不能输入中文标点符号的重大bug

    PhpStorm 2016.3 For Mac 重大里程碑更新 1.[终于解决了]不能输入中文标点符号的重大bug,如 逗号“,”.“.”: 2.可以在一个窗体中,同时打开多个项目: 3.其他... ...

  9. 终于解决了IE8不支持数组的indexOf方法,array的IndexOf方法

    /* 终于解决了IE8不支持数组的indexOf方法 */ if (!Array.prototype.indexOf) { Array.prototype.indexOf = function (el ...

随机推荐

  1. sqlserver2008 数据库中查询存储过程的的创建修改和执行时间,以及比较常见的系统视图和存储过程

    因为各种原因数据库中存在大量无用的存储过程,想查询存储过程的最后执行情况,处理长期不使用的存储过程 下面这条语句可以查询存储过程创建 修改和执行的最后时间: SELECT a.name AS 存储过程 ...

  2. jenkins 流水线自动化部署 手动下载安装插件包

    如果有些插件不能通过可选插件安装,可以进行选择高级并上传插件包,插件包链接地址为:http://updates.jenkins-ci.org/download/plugins/ 同时在高级中可以更换下 ...

  3. 使用pip安装库或执行pip命令时报错解决方案

    初次安装pip后执行安装升级一般不会有问题,但是国外的镜像源下载升级由于网速过慢会进行报错,提示需要升级 pip 或者下载速度很慢最后直接报了错如下图: 这个时候只需要修改镜像源即可,建议修改为永久镜 ...

  4. Python装饰器Decorators

    def hi(name="yasoob"): return "hi " + name print(hi()) # 我们甚至可以将一个函数赋值给一个变量,比如 g ...

  5. 【python】tile函数简单介绍

    转:https://blog.csdn.net/april_newnew/article/details/44176059格式:tile(A,reps)* A:array_like* 输入的array ...

  6. Dev C++编写C/C++程序 出现[Error] ld returned 1 exit status报错分析及解决

    debug系列第一弹,不知道大家写程序的时候是不是都遇到过如题的报错. 我本人是经常遇到这行熟悉的令人不知所措的报错,可能是我太笨了 有时候百度无果也差不到原因,那就汇总一下目前我遇到的情况吧--持续 ...

  7. ExtJS配置TabPanel的鼠标右键菜单(ContextMenu)功能

    更新记录 2022年6月14日 发布. 2022年6月13日 初稿. TabPanel的鼠标右键菜单(ContextMenu)功能介绍 开源的TabPanel组件很少做到拖拽调整tab顺序功能的,支持 ...

  8. 南京大学 静态软件分析(static program analyzes)-- introduction 学习笔记

    一.Programming Languages体系 静态程序分析是编程语言中应用层面下的一个细分领域,它是一个非常重要的核心内容. 在理论部分,考虑的是如何设计一个语言的语法和语义,如何设计语言的类型 ...

  9. BUUCTF-你竟然赶我走

    你竟然赶我走 首先看到这个图片没啥感觉,直接用16进制打开了.拖到最下面果然有flag flag{stego_is_s0_bor1ing}

  10. 不同的子序列问题I

    不同的子序列问题I 作者:Grey 原文地址: 不同的子序列问题I 题目链接 LeetCode 115. 不同的子序列 暴力解法 定义递归函数 int process(char[] str, char ...