• SAP UI5里Batch操作和Read操作的区别


    I would like to share with you my story today about fighting with one customer incident.
    We can make changes on Appointment and click save button:

    There is a batch operation observed in Chrome network tab to update appointment as expected. However, why every time there are three subsequent appointment read roundtrips?

    The callstack clearly shows that the three roundtrips are NOT issued by customer extension, or else the customer js file could be observed in the callstack.

    Set a breakpoint on the top most callstack, h function. Check the content of e.target.data:

    This is actually the batch request payload which could be observed in Chrome network tab:

    This finding gives me more confidence that these roundtrips are issued by framework, not standard or customer application code.
    So I just continue debugging until I reach this suspicious stack:

    in line 1957, this.bRefreshAfterChange = true.

    However, in our internal system ( where everything works fine, there is no duplicate read operations ), this.bRefreshAfterChange = false, which has suppressed the refresh operation. This is the reason why the read operation could not be found in my internal system, since they are not executed at all. But in customer system, _isRefreshNeeded returns true, which leads to the execution of all subsequent read operations.

    So why is this difference between two systems? In Chrome development tool, search the boolean variable name and we found one function setRefreshAfterChange defined for ODataModel. Just set a breakpoint in this method and re-launch the application in my internal system from beginning:

    Breakpoint is triggered:

    However, this line in customer system is missing, which is the root cause – our latest standard code didn’t reach customer system.
    After I found the root cause, I search in SCN to check whether there are other poor guy which had encountered the same issue with me, and actually I found one:http://scn.sap.com/thread/3724174

    If I read this thread several months earlier, I would save my hours’ debugging today.

    要获取更多Jerry的原创文章,请关注公众号"汪子熙":

  • 相关阅读:
    unity远程修改游戏配置
    object与byte[]的相互转换、文件与byte数组相互转换
    c#实现gzip压缩解压缩算法:byte[]字节数组,文件,字符串,数据流的压缩解压缩
    Unity5.x在mac下的破解
    unity Socket TCP连接案例(一)
    Codeforces Edu Round 60 A-E
    Codeforces Edu Round 59 A-D
    Codeforces Edu Round 58 A-E
    Codeforces Edu Round 57 A-D
    Codeforces Edu Round 56 A-D
  • 原文地址:https://www.cnblogs.com/sap-jerry/p/13631111.html
Copyright © 2020-2023  润新知