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的原创文章,请关注公众号"汪子熙":
相关推荐
在这个教程中,我们将深入探讨如何使用SAP Note Assistant,并理解其SIM(SAP Installation Media)格式。 SIM格式是一种特殊的数据文件,用于存储SAP安装介质的相关信息。这些文件通常以`.sim`为扩展名,如压缩包...
SAP Note 973227 for SAP@AIX 優化
SAP Note & OSS introduction
通过阅读此SAP Note,我们可以了解到如何解决在使用这两个事务代码过程中遇到的一些问题,以及如何更好地管理和更新大量用户的密码。 #### 知识点详述 ##### 问题描述 在使用SU10事务代码进行批量用户管理时,...
You can no longer reverse goods movements that were created from the transactions of the usage decision.
通过阅读2736609_E_20181219.pdf和0002736609_00.SAR这两个文件,用户可以深入了解这些知识点,并按照NOTE的指引进行必要的系统调整,确保个人所得税的计算与新政策保持一致。这份NOTE对于财务、人力资源和IT部门的...
sap note 192041 If large data sets cannot be sorted in the roll area, the operating system sort routine is called prior to Release 4.0. This requires additional files for sorting.
### SAP Note 1557506:Linux分页改进详解 #### 核心问题与症状 在处理大量业务数据时,SAP应用程序通常需要消耗大量的内存资源。然而,在某些场景下,即使SAP应用已被调整至适合系统主存大小,用户仍可能遇到高...
首先,让我们详细了解一下Note 74638。这个SAP note通常涉及更改或优化系统中的某些业务流程。在这里,可能是指导用户如何在货物冲销(Reverse Goods Movement)中处理移动类型为322的情况。移动类型322用于表示退货...
同时,提到的SAP Note,比如SAPNote123456,是SAP提供的客户支持文档,它包含了技术指导、问题解决步骤等内容,是SAP用户和技术顾问常用的参考资源。 在技术术语方面,手册中涉及了数据库管理、操作系统、SAP系统的...
sap note 831333 关于日期格式
都存在着一定的程序BUG,都将会涉及到需要修复程序错误Note,一般是从SAP for me中下载Note,但是通过SNOTE事务手工上传(一般是没有按时交MA的客户,又想要修复程序)直接下载的Note时,SAP服务器将会提示:...
搜索SAP Notes,知识库文章等等 搜索SAP Notes,知识库文章等等。 支持语言:English
### SAP Note 176336: Flat and Deep Structures in ABAP #### 概述 SAP Note 176336 主要关注 ABAP 编程语言中的扁平(flat)结构与深层(deep)结构的概念。在 ABAP 中,结构是一种复杂的数据类型,用于组织和...
内容概要:本文档详细解释了关于交易代码Co09的所有要点...阅读建议:建议读者先熟悉基本的概念,再逐步深入了解各个部分的具体实施步骤,同时参照文中提及的多个SAP注释进一步深入研究可能遇到的技术问题和解决方案。
SAP Note是一种官方文档,用于提供SAP系统相关的技术信息、补丁、解决方案和最佳实践。这些文档由SAP公司发布,目的是帮助SAP系统管理员、开发者和用户解决特定问题或了解新的功能更新。SAP Note通常会有一个编号,...
使用场景及目标:帮助用户深入了解并正确配置CCK,确保在实际业务流程中能够准确地进行采购订单和库存运输订单的确认管理。适用于SAP系统配置、采购管理和库存管理等相关岗位的工作人员。 其他说明:文章还提及了SAP...
《SAP R3技术与实现》是一本深入探讨企业资源规划系统SAP R3的专著,它详尽地阐述了SAP R3的核心技术、实施策略以及在实际业务中的应用。SAP R3,全称SAP Real-Time Enterprise,是德国SAP公司开发的一套全面的企业...
SAP 技术架构演变 SAP 技术架构的演变是 SAP 公司发展趋势的重要组成部分,本文将从技术角度对 SAP 技术架构的演变进行阐述。 1. R/2 时代(1972-1989) 在 R/2 时代,SAP 的技术架构主要基于 IBM 大型机,采用...