相信每个从事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 ...

  10. 【转】终于解决了Apache乱码问题

    之前开放了一个空间,给网友提供电台节目音频下载.由于多年节目的文件数量甚多,且分类没有特定格式,图省事,没有制作网页提供分类下载,而是直接利用Apache的目录浏览功能,简单直观. 不过,所在的美国服 ...

随机推荐

  1. 报表软件FineReport如何连接SAP HANA

    1. 环境搭建 1.1 环境准备 首先确认HANA Studio的环境是否允许工程进行NewFile的操作,不行的话要考虑更新Studio的版本. HANAStudio需要依赖Java jdk1.6或 ...

  2. Response.Flush()

    Response.Buffer=True就是在缓存网页 访问网站一般是程序直接输出网页结果,或从缓存中读取网页结果2种方式.两种方式在速度上是有差异的 设置 Response.Buffer = Tru ...

  3. bzoj:1661 [Usaco2006 Nov]Big Square 巨大正方形

    Description 农民 John 的牛参加了一次和农民 Bob 的牛的竞赛.他们在区域中画了一个N*N 的正方形点阵,两个农场的牛各自占据了一些点.当然不能有两头牛处于同一个点.农场的目标是用自 ...

  4. Axios插件和loading的实现

    axios插件就是一个ajax插件 axios具有ajax的所有方法如 get post delete put等等的方法 使用时只需要引入即可 如import Axios form 'axios' 不 ...

  5. Bootstrap3基础 img-responsive 响应式图片

      内容 参数   OS   Windows 10 x64   browser   Firefox 65.0.2   framework     Bootstrap 3.3.7   editor    ...

  6. Spring-JDBC依赖

    <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</a ...

  7. Linux进程ID号--Linux进程的管理与调度(三)

    转自:http://blog.csdn.net/gatieme/article/category/6225543 日期 内核版本 架构 作者 GitHub CSDN 2016-05-12 Linux- ...

  8. LaTeX如何设置段落层次结构

    Latex的文档层次结构大约有5层,分别是: section — subsection — subsubsection — paragraph — subparagraph 具体使用可以参考下面的例子 ...

  9. redis改密码

    一. 如何初始化redis的密码? 总共2个步骤: a.在配置文件中有个参数: requirepass  这个就是配置redis访问密码的参数. 比如 requirepass test123 b.配置 ...

  10. leetcode8

    public class Solution { public int MyAtoi(string str) { , sign = , total = ; //1. Empty string ) { ; ...