深入了解SAP note的技术细节

简介: 深入了解SAP note的技术细节

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:


image.pngIn 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.




image.pngPlease 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.



image.png

image.png

Note building blocks

The decompressed content of note is actually a xml file and could be parsed by function module SCWN_NOTE_UNPACK_XML:image.pnget_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.



image.png

image.png

et_cwbntstxt

Note tilte in multi language.

image.png

et_htmltext

Contains note body in html format in multi language. Content for each language is stored in a single line.

image.png

et_cwbntdata

Contains note body in multiple language. Content of each language is stored in a separate internal table.image.pnget_cwbntvalid

Contains note validity information. In this information, component key: 16929, we can find its description from table CWBCMPNT. And 63 for BBPCRM.



image.pngAnd how to understand DEALEID_V 244 for BBPCRM?

From this table we can know “244” represents 713.image.png

et_cwbntci

Contains correction instruction header information.image.png

et_cwbntfixed

Support Packages & Patches information.image.png

et_cwbntgattr

Note attribute like status and error category:image.png

et_cwbcidpndc

contains dependencies of correction instructions information.image.png

et_cwbciobj

Object List of correction instructions with TADIR key:image.png

et_cwbcmtext

You can also obtain description for 63 and 16929 from this internal table.

image.pngetailed 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.


image.pngPackage SCWN

Once you download a note to a system, you can review the detail of downloaded note from transparent tables belonging to package SCWN.


image.pngDifference 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.



image.pngOf 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.



image.png(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.


相关文章
|
5月前
|
BI
123. SAP ABAP 显式增强技术之 New BAdI 的技术原理介绍
123. SAP ABAP 显式增强技术之 New BAdI 的技术原理介绍
|
5月前
|
XML 数据处理 数据格式
什么是 SAP UI5 XML Templating 技术
什么是 SAP UI5 XML Templating 技术
|
5月前
|
BI
SAP ABAP 显式增强技术之 New BAdI 的技术原理介绍试读版
SAP ABAP 显式增强技术之 New BAdI 的技术原理介绍试读版
|
前端开发
SAP UI5 sap.m.ObjectStatus 控件的技术介绍
SAP UI5 sap.m.ObjectStatus 控件的技术介绍
SAP ABAP 各种增强技术(Enhancement)概述 - 所谓第一代,第二代,第三代增强技术的出处试读版
SAP ABAP 各种增强技术(Enhancement)概述 - 所谓第一代,第二代,第三代增强技术的出处试读版
|
数据建模 数据库
什么是 SAP CDS view 中的 Exposed Association with filter 技术
什么是 SAP CDS view 中的 Exposed Association with filter 技术
|
数据库
什么是 SAP CDS view 的 join on demand 技术
什么是 SAP CDS view 的 join on demand 技术
|
BI 数据安全/隐私保护
SAP ABAP 生成 PDF 的几种技术综述
SAP ABAP 生成 PDF 的几种技术综述
|
5月前
|
存储 对象存储 开发者
SAP CRM attachment 存储模型的技术属性详解
SAP CRM attachment 存储模型的技术属性详解
SAP CRM attachment 存储模型的技术属性详解
SAP ABAP ALV 的分组显示和 Subtotal 显示实现的技术步骤试读版
SAP ABAP ALV 的分组显示和 Subtotal 显示实现的技术步骤试读版