Although I have been working on ABAP for several years, I am not well aware of the technical design of SAP note, since most of the time as an application developer, I am responsible for the bug fixing, putting the correction instruction into the note and release it, then our customer can apply it in their system.
However recently my team has encountered some technical issue that is our customer have some trouble to apply our note in their system, which pushes me to know something more detail about SAP note design. I use this note 2184333 which I am responsible for as an example:
In order to research the technical design of SAP note, I write a simple tool for analysis.
How to use this tool
Just run the report whose source code could be found from this link and execute the report and specify note number: 2184333
Once executed, the report will download the note as a compressed binary stream, display the size of this compressed stream and then uncompress it, allow you to view the building block of the note in detail. In the end the size of uncompressed data is displayed as well. Take note 2184333 for example, around 137 KB is downloaded and after it is decompressed, the size inflates to around 742 KB.
Please note that this tool just gives you a draft estimation about the static size of note. The runtime overhead for memory management against deep data object such as internal table and string are not considered.
Note building blocks
The decompressed content of note is actually a xml file and could be parsed by function module SCWN_NOTE_UNPACK_XML:
et_cwbnthead
Note header data. See below picture to find how the note header information is maintained in exporting parameter et_cwbnthead of FM SCWN_NOTE_UNPACK_XML.
et_cwbntstxt
Note tilte in multi language.
et_htmltext
Contains note body in html format in multi language. Content for each language is stored in a single line.
et_cwbntdata
Contains note body in multiple language. Content of each language is stored in a separate internal table.
et_cwbntvalid
Contains note validity information. In this information, component key: 16929, we can find its description from table CWBCMPNT. And 63 for BBPCRM.
And how to understand DEALEID_V 244 for BBPCRM? From this table we can know “244” represents 713.
et_cwbntci
Contains correction instruction header information.
et_cwbntfixed
Support Packages & Patches information.
et_cwbntgattr
Note attribute like status and error category:
et_cwbcidpndc
contains dependencies of correction instructions information.
et_cwbciobj
Object List of correction instructions with TADIR key:
et_cwbcmtext
You can also obtain description for 63 and 16929 from this internal table.
detailed code delta change contained in variable LV_CODE_DELTA_BIN The area below marked with blue rectangle is the code delta change our customer could see in the note browser, and the red area is part of variable lv_code_delta_bin inspected via XML Browser. The delta code change consists of two parts:
- deletion of keyword “IMPORTING”;
- insertion of two lines “it_customer_h = it_customer_h” and “IMPORTING”. From the picture we can see clearly that the code fragment for insertion or deletion has corresponding XML tag ( I prefer to call it as “directive” ) maintained so that the node tool can know WHAT operation should be performed on these fragment. Meanwhile the context ( line number 38 ) is also known so that node tool can also know WHERE the delta change should be applied.
Package SCWN
Once you download a note to a system, you can review the detail of downloaded note from transparent tables belonging to package SCWN.
Difference between this tool and tcode SNOTE – why I wrote it?
As you see most of the source code of this tool comes from tcode SNOTE, in my opinion, there are two points which make it worthy to spend some effort to write the tool:
(1) One of my favorite way to investigate a topic / issue is: to write a report to deal with the topic / issue, and run the report under trace mode using tcode SAT. With the great power of SAT, there is a tab “Processing Blocks” which gives me a very clear big picture of method / function call in a tree hierarchy view.
Of course SAT also enables to directly measure tcode SNOTE, however this approach is not efficient since lots of other stuff which I am not interested ( such as transaction processing, SAPGUI related handling etc ) are also measured and contained in SAT trace file.
In a word, since I would like to only focus on download and parse functionality in tcode SNOTE, so I extract the code for these two logics into a custom report with all other stuff excluded and then concentrate on these core stuff, that’s it.
(2) SNOTE does not provide the function to give user a draft estimation on the size of downloaded note. And since I have written the report, I have the full ownership on it and so I can add any feature to the report which I want to add. As a developer sometimes we will see the need to write some tool by ourselves to achieve automation to improve our daily work efficiency. If we frequently practice to extract code of standard tcode into our own custom report on purpose, our ability of code adaption will grow up in the long run.
要获取更多Jerry的原创文章,请关注公众号"汪子熙":
相关推荐
内容概要:本文档详细解释了关于交易代码Co09的所有要点...阅读建议:建议读者先熟悉基本的概念,再逐步深入了解各个部分的具体实施步骤,同时参照文中提及的多个SAP注释进一步深入研究可能遇到的技术问题和解决方案。
例如,SAPnote0735050、SAPnote0085318、SAPnote0779319和SAPnote0808116可能分别涵盖了关于BC480课程(可能是报表开发相关的课程)的特定内容,如错误修复、新功能介绍或最佳实践。 通过学习和理解上述知识点,SAP...
内容概要:本文档详细介绍了SAP财务关账驾驶舱(FCC)系统的配置方法,涵盖了权限管理、组织层次结构...对于具体的应用程序集成部分,推荐参照官方的技术支持注释(SAP Note),从而确保系统稳定运行并充分利用现有资源。
在本文中,我们将深入探讨SAP NetWeaver的安装过程,了解如何配置环境,以及安装过程中可能遇到的关键问题及其解决方法。 1. **系统需求** 在开始SAP NetWeaver的安装之前,首先要确保硬件和软件满足最低要求。这...
通过上述详细介绍,可以看出SAP系统的物理表覆盖了从销售、采购、库存管理到财务管理等多个方面,对于深入了解SAP业务流程以及进行高效的数据分析具有重要意义。掌握这些物理表的结构和功能,可以帮助SAP顾问和技术...
根据提供的SAP Note 62077的信息,“Internal number assignment ...通过上述分析,我们可以更深入地理解“Internal number assignment is not continuous”这一问题及其背后的技术细节,从而为解决类似问题提供指导。
根据提供的文档信息,我们可以深入探讨IDoc ...通过以上对文档的分析,我们不仅了解了IDoc Interface在EDI应用中的重要作用,还掌握了其实现的技术细节和应用场景,这对于从事相关工作的技术人员来说是非常宝贵的资源。
- **全面性**:涵盖了从高层次的流程建模到低层次的技术细节。 #### 五、版权与许可 BPMN 2.0规范的提交者(包括Axway、BizAgi、Bruce Silver Associates等)提供了对规范本身的复制、展示、修改和分发的权利,...