CN106293764B - 一种通过abap语法解析获取引用自定义对象的方法 - Google Patents
一种通过abap语法解析获取引用自定义对象的方法 Download PDFInfo
- Publication number
- CN106293764B CN106293764B CN201610705961.1A CN201610705961A CN106293764B CN 106293764 B CN106293764 B CN 106293764B CN 201610705961 A CN201610705961 A CN 201610705961A CN 106293764 B CN106293764 B CN 106293764B
- Authority
- CN
- China
- Prior art keywords
- name
- type
- program
- internal processes
- program object
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/75—Structural analysis for program understanding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/253—Grammatical analysis; Style critique
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/73—Program documentation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Library & Information Science (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种通过ABAP语法解析获取引用自定义对象的方法,该方法应用在SAP平台中,利用对ABAP语法关键词的解析,来获取一个源码对象对其他程序对象的引用,解决SAP平台程序对象关系的管理措施。
Description
技术领域
本发明涉及一种程序对象关联关系的解析方法,具体地说是一种通过ABAP语法解析获取引用自定义对象的方法。
背景技术
在软件开发领域Java平台有Ant等工具提供程序对象的引用关系管理,如类、接口等。这些工具可以帮助程序员管理程序对象,管理程序版本,但是在SAP平台没有一个工具、程序提供这种功能,如查询一个可执行程序包含哪些表、数据元素、函数、类等。SAP平台只提供反查功能,可以查询一个程序对象被哪些程序对象引用,如一个透明表,被哪些程序引用了,一个数据元素被哪些程序引用了。SAP:德国一家软件公司名称,其开发的管理软件命名为SAP,广泛在世界范围内使用。其本身提供二次开发平台。
ABAP:SAP软件的开发语言,也是SAP软件提供的开发平台。ABAP开发语言是一种高级开发语言,其开发依赖于SAP提供的平台,其语法格式是一种解释语言。对于ABAP源代码,知道其各种用法,但如何从各种关键词的语法中总结出其可能引用的程序对象,并不知道。如数据库查询语句:
SELECT*FROM ZSFLIGHT WHERE…
此源代码语句中包含了一个对ZSFLIGHT自定义透明表对象的引用。说明本程序对象引用了ZSFLIGHT透明表。所以当对一个程序对象的所有源代码语句解析后,就能获得这个对象所有引用的自定义对象。但是ABAP语法关键词很多,上面例子中的SELECT*FROM…只是其中的一种语法,如何制定每个语法的解析方法?目前还没有方法解决。
发明内容
本发明的目的是提供一种通过ABAP语法解析获取引用自定义对象的方法,该方法应用在SAP平台中,利用对ABAP语法关键词的解析,来获取一个源码对象对其他程序对象的引用,解决SAP平台程序对象关系的管理措施。
本发明的目的通过以下技术方案实现:
一种通过ABAP语法解析获取引用自定义对象的方法,其特征在于:该方法应用在SAP平台中,利用对ABAP语法关键词的解析,来获取一个源码对象对其他程序对象的引用,解决SAP平台程序对象关系的管理措施,具体如下:
1)输入一个程序对象的名称,这个程序对象的对象类型是CLAS、INTF、FUGR、PROG由源代码构成的程序对象;2)对于CLAS类型,首先使用cl_oo_classname_service=>get_pubsec_name得到程序对象的一个内部程序名;
3)对于CLAS类型,再使用cl_oo_classname_service=>get_paksec_name得到程序对象的一个内部程序名;
4)对于CLAS类型,再使用cl_oo_classname_service=>get_prisec_name得到程序对象的一个内部程序名;
5)对于CLAS类型,再使用cl_oo_classname_service=>get_prosec_name得到程序对象的一个内部程序名;
6)对于CLAS类型,再使用cl_oo_classname_service=>get_ccimp_name得到程序对象的一个内部程序名;
7)对于CLAS类型,再使用cl_oo_classname_service=>get_ccdef_name得到程序对象的一个内部程序名;
8)对于CLAS类型,再使用cl_oo_classname_service=>get_ccmac_name得到程序对象的一个内部程序名;
9)对于CLAS类型,再使用cl_oo_classname_service=>get_cl_name得到程序对象的一个内部程序名;
10)对于CLAS类型,再使用
cl_oo_classname_service=>get_all_method_includes得到程序对象的所有的类方法的程序名称;
11)以上是OBJECT为CLAS类型的程序对象获取程序名称方法;
12)对于INTF类型,使用
cl_oo_classname_service=>get_intfsec_name得到程序对象的一个内部程序名;
13)对于FUGR类型,使用函数'FUNCTION_INCLUDE_INFO'得到函数组所有的包含的程序名;
14)对于PROG类型,直接使用程序对象名作为内部程序名;
15)对于TYPE类型,再使用'%_C'+程序对象名得到函数组所包含的程序名;
16)对于CINC类型,直接使用程序对象名作为内部程序名;
17)对于CPRI类型,cl_oo_classname_service=>get_prisec_name得到程序对象的一个内部程序名;
18)对于CPRO类型,cl_oo_classname_service=>get_prosec_name得到程序对象的一个内部程序名;
19)对于CPUB类型,cl_oo_classname_service=>get_pubsec_name得到程序对象的一个内部程序名;
20)对于METH类型,直接使用程序对象名作为内部程序名;
21)对于FUNC类型,使用函数'FUNCTION_INCLUDE_INFO'得到函数所包含的所有内部程序名;
22)对于REPS类型,直接使用程序对象名作为内部程序名;
23)对于REPT类型,直接使用程序对象名作为内部程序名;
24)针对以上方法得到的内部程序名使用READ REPORT方法获取内部程序名的源代码内表;
25)对大部分常用语法作梳理,给出引用到自定义程序对象的语法关键词;
26)对源代码内中的每一句源代码利用关键词进行分析,得到包含的自定义关联对象。
本发明中,所有语法解析后得到的关键词如果不是自定义的程序对象,SAP规定自定义对象以“Z”或者“Y”开头,最终都通过此规则来过滤。
对象类型:SAP平台中区分不同类型的程序对象关键词,以四位字符标示。本发明将根据不同的语法关键字解析不同语法如何解析引用对象。程序对象:各种类型的程序的一种抽象叫法,主要是程序开发内容的一种载体,如类、可执行程序、接口等。语法关键词:ABAP语法是一种解释性语法,其通过不同的关键词、变量、修饰语来组成一个代码语句。
本发明是针对SAP平台中的程序对象所引用的其他关联对象的一种解析方法,解决在不同程序对象之间的引用关系。可用于解决SAP程序开发过程中的对象关系管理、版本关联关系管理等。
附图说明
图1本发明中获取一个源码程序对象引用的对象集合的示例图。
具体实施方式
一种通过ABAP语法解析获取引用自定义对象的方法,应用在SAP平台中,利用对ABAP语法关键词的解析,来获取一个源码对象对其他程序对象的引用,解决SAP平台程序对象关系的管理措施,具体如下:
1、输入一个程序对象的名称,这个程序对象的对象类型(OBJECT)可以是CLAS、INTF、FUGR、PROG等由源代码构成的程序对象。
2、对于CLAS类型,首先使用cl_oo_classname_service=>get_pubsec_name得到程序对象的一个内部程序名。
3、对于CLAS类型,再使用cl_oo_classname_service=>get_paksec_name得到程序对象的一个内部程序名。
4、对于CLAS类型,再使用cl_oo_classname_service=>get_prisec_name得到程序对象的一个内部程序名。
5、对于CLAS类型,再使用cl_oo_classname_service=>get_prosec_name得到程序对象的一个内部程序名。
6、对于CLAS类型,再使用cl_oo_classname_service=>get_ccimp_name得到程序对象的一个内部程序名。
7、对于CLAS类型,再使用cl_oo_classname_service=>get_ccdef_name得到程序对象的一个内部程序名。
8、对于CLAS类型,再使用cl_oo_classname_service=>get_ccmac_name得到程序对象的一个内部程序名。
9、对于CLAS类型,再使用cl_oo_classname_service=>get_cl_name得到程序对象的一个内部程序名。
10、对于CLAS类型,再使用cl_oo_classname_service=>get_all_method_includes得到程序对象的所有的类方法的程序名称。
11、以上是OBJECT为CLAS类型的程序对象获取程序名称方法。
12、对于INTF类型,使用cl_oo_classname_service=>get_intfsec_name得到程序对象的一个内部程序名。
13、对于FUGR类型,使用函数'FUNCTION_INCLUDE_INFO'得到函数组所有的包含的程序名。
14、对于PROG类型,直接使用程序对象名作为内部程序名。
15、对于TYPE类型,再使用'%_C'+程序对象名得到函数组所包含的程序名。
16、对于CINC类型,直接使用程序对象名作为内部程序名。
17、对于CPRI类型,cl_oo_classname_service=>get_prisec_name得到程序对象的一个内部程序名。
18、对于CPRO类型,cl_oo_classname_service=>get_prosec_name得到程序对象的一个内部程序名。
19、对于CPUB类型,cl_oo_classname_service=>get_pubsec_name得到程序对象的一个内部程序名。
20、对于METH类型,直接使用程序对象名作为内部程序名。
21、对于FUNC类型,使用函数'FUNCTION_INCLUDE_INFO'得到函数所包含的所有内部程序名。
22、对于REPS类型,直接使用程序对象名作为内部程序名。
23、对于REPT类型,直接使用程序对象名作为内部程序名。
24、针对以上方法得到的内部程序名使用READ REPORT方法获取内部程序名的源代码内表。
25、本发明对大部分常用语法做了梳理,以下给出可能引用到自定义程序对象的语法关键词:
26、对源代码内表中的每一句源代码利用关键词进行分析,分析其可能包含的自定义关联对象。
以上为每个关键词的解析方法流程,所有语法解析后得到的关键词可能不是自定义的程序对象,而SAP规定自定义对象以“Z”或者“Y”开头,因此以上方法中最终都通过此规则来过滤。本发明同样可以不利用此规则,来获得任何的程序对象,包括SAP公司自己开发的程序对象。
Claims (1)
1.一种通过ABAP语法解析获取引用自定义对象的方法,其特征在于:该方法应用在SAP平台中,利用对ABAP语法关键词的解析,来获取一个源码对象对其他程序对象的引用,解决SAP平台程序对象关系的管理措施,具体如下:
1)输入一个程序对象的名称,这个程序对象的对象类型是由源代码构成的CLAS、INTF、FUGR、PROG、 TYPE、CINC、CPRI、CPRO、CPUB、METH、FUNC、REPS、REPT中的一种;
2)对于CLAS类型,首先使用cl_oo_classname_service=>get_pubsec_name得到程序对象的一个内部程序名;
3)对于CLAS类型,再使用cl_oo_classname_service=>get_paksec_name得到程序对象的一个内部程序名;
4)对于CLAS类型,再使用cl_oo_classname_service=>get_prisec_name得到程序对象的一个内部程序名;
5)对于CLAS类型,再使用cl_oo_classname_service=>get_prosec_name得到程序对象的一个内部程序名;
6)对于CLAS类型,再使用cl_oo_classname_service=>get_ccimp_name得到程序对象的一个内部程序名;
7)对于CLAS类型,再使用cl_oo_classname_service=>get_ccdef_name得到程序对象的一个内部程序名;
8)对于CLAS类型,再使用cl_oo_classname_service=>get_ccmac_name得到程序对象的一个内部程序名;
9)对于CLAS类型,再使用cl_oo_classname_service=>get_cl_name得到程序对象的一个内部程序名;
10)对于CLAS类型,再使用cl_oo_classname_service=>get_all_method_includes得到程序对象的所有的类方法的程序名称;
11)以上是OBJECT为CLAS类型的程序对象获取程序名称方法;
12)对于INTF类型,使用cl_oo_classname_service=>get_intfsec_name得到程序对象的一个内部程序名;
13)对于FUGR类型,使用函数 'FUNCTION_INCLUDE_INFO'得到函数组所有的包含的程序名;
14)对于PROG类型,直接使用程序对象名作为内部程序名;
15)对于TYPE类型,再使用'%_C'+程序对象名得到函数组所包含的程序名;
16)对于CINC类型,直接使用程序对象名作为内部程序名;
17)对于CPRI类型,cl_oo_classname_service=>get_prisec_name得到程序对象的一个内部程序名;
18)对于CPRO类型,cl_oo_classname_service=>get_prosec_name得到程序对象的一个内部程序名;
19)对于CPUB类型,cl_oo_classname_service=>get_pubsec_name得到程序对象的一个内部程序名;
20)对于METH类型,直接使用程序对象名作为内部程序名;
21)对于FUNC类型,使用函数 'FUNCTION_INCLUDE_INFO'得到函数所包含的所有内部程序名;
22)对于REPS类型,直接使用程序对象名作为内部程序名;
23)对于REPT类型,直接使用程序对象名作为内部程序名;
24)针对以上方法得到的内部程序名使用READ REPORT方法获取内部程序名的源代码内表;
25)对常用语法作梳理,给出引用到自定义程序对象的语法关键词;
26)对源代码内中的每一句源代码利用关键词进行分析,得到包含的自定义关联对象。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610705961.1A CN106293764B (zh) | 2016-08-22 | 2016-08-22 | 一种通过abap语法解析获取引用自定义对象的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610705961.1A CN106293764B (zh) | 2016-08-22 | 2016-08-22 | 一种通过abap语法解析获取引用自定义对象的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106293764A CN106293764A (zh) | 2017-01-04 |
CN106293764B true CN106293764B (zh) | 2019-05-07 |
Family
ID=57615455
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610705961.1A Active CN106293764B (zh) | 2016-08-22 | 2016-08-22 | 一种通过abap语法解析获取引用自定义对象的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106293764B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109117182B (zh) * | 2018-08-29 | 2022-03-08 | 赛尔网络有限公司 | 基于源码支持IPv6程度的检测方法、设备、系统及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1989489A (zh) * | 2004-05-20 | 2007-06-27 | Sap股份公司 | 在运行时系统中共享对象 |
US7702649B1 (en) * | 2004-06-08 | 2010-04-20 | Sap Ag | Object-relational mapping system and method for generic relationships |
CN101753378A (zh) * | 2008-11-25 | 2010-06-23 | Sap股份公司 | 实现并发分析器的系统和方法 |
CN102804147A (zh) * | 2010-03-29 | 2012-11-28 | 株式会社软4软 | 执行abap源代码的代码检查的代码检查执行系统 |
CN103914304A (zh) * | 2014-04-10 | 2014-07-09 | 国家电网公司 | 一种基于sap平台的不同结构类型参数转换方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7536673B2 (en) * | 2003-07-22 | 2009-05-19 | Sap Ag | Application business object processing |
US8402547B2 (en) * | 2010-03-14 | 2013-03-19 | Virtual Forge GmbH | Apparatus and method for detecting, prioritizing and fixing security defects and compliance violations in SAP® ABAP™ code |
-
2016
- 2016-08-22 CN CN201610705961.1A patent/CN106293764B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1989489A (zh) * | 2004-05-20 | 2007-06-27 | Sap股份公司 | 在运行时系统中共享对象 |
US7702649B1 (en) * | 2004-06-08 | 2010-04-20 | Sap Ag | Object-relational mapping system and method for generic relationships |
CN101753378A (zh) * | 2008-11-25 | 2010-06-23 | Sap股份公司 | 实现并发分析器的系统和方法 |
CN102804147A (zh) * | 2010-03-29 | 2012-11-28 | 株式会社软4软 | 执行abap源代码的代码检查的代码检查执行系统 |
CN103914304A (zh) * | 2014-04-10 | 2014-07-09 | 国家电网公司 | 一种基于sap平台的不同结构类型参数转换方法 |
Non-Patent Citations (1)
Title |
---|
VRML (Virtual Reality Modeling Language) Programming in SAP technologies;M.Osaci等;《6th IEEE International Symposium on Applied Computational Intelligence and Informatics》;20110521;第223-226页 |
Also Published As
Publication number | Publication date |
---|---|
CN106293764A (zh) | 2017-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106843840B (zh) | 一种基于相似度分析的源代码版本演化注释复用方法 | |
Krahn et al. | Roles in software development using domain specific modeling languages | |
CN102708142B (zh) | 一种通过sql定制模板获取后台数据的方法和系统 | |
SG135201A1 (en) | System and method for executing wireless applications using common ui components from a ui repository | |
CN115016793A (zh) | 基于语法树的代码生成方法和装置、电子设备、存储介质 | |
CN107153535A (zh) | 一种操作ElasticSearch的方法及装置 | |
CN106293764B (zh) | 一种通过abap语法解析获取引用自定义对象的方法 | |
Aman et al. | Empirical analysis of change-proneness in methods having local variables with long names and comments | |
US20150193213A1 (en) | Computer Implemented System and Method for Checking a Program Code | |
CN111427784B (zh) | 一种数据获取方法、装置、设备及存储介质 | |
CN107833013B (zh) | 软件开发的工作量预估准确性的自动化统计方法及装置 | |
CN106569868B (zh) | 一种基于Gradle的编译优化方法及装置 | |
KR20150124530A (ko) | 어플리케이션 빌드 시스템 및 그 제어방법과, 그 제어방법을 실행하기 위한 프로그램을 기록한 기록 매체 | |
CN106250390B (zh) | 一种分步自动生成sql语言的方法及装置 | |
Ramachandran | Guidelines based software engineering for developing software components | |
CN108376071B (zh) | 一种app识别方法及系统 | |
US20130104104A1 (en) | System and method for refactoring a block of software | |
CN114064601B (zh) | 存储过程转换方法、装置、设备和存储介质 | |
CN111752980B (zh) | 一种执法监管智能预警系统及方法 | |
CN105335163A (zh) | 软件代码解读方法与系统 | |
Rakhmetova et al. | Conceptual modelling of log files: From a UML-based design to JSON files | |
EP3798760A3 (en) | System and method for industrial automation project code analysis | |
CN106325968B (zh) | 一种分析sap开发对象类型之间关联关系的方法 | |
Klatt et al. | Developing stop word lists for natural language program analysis | |
Rautenberg et al. | LDWPO A Lightweight Ontology for Linked Data Management. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |