如何使用java客户机读取ABAP代码
我有一个要求,我需要阅读SAP开发人员编写的ABAP代码。我想用Java/Python编写我自己的客户机,它可以与SAP系统集成,并获得ABAP代码如何使用java客户机读取ABAP代码,abap,Abap,我有一个要求,我需要阅读SAP开发人员编写的ABAP代码。我想用Java/Python编写我自己的客户机,它可以与SAP系统集成,并获得ABAP代码 据我所知,ABAP代码存储在SAP数据库中,如HANA、mysql等。因此,SAP是否提供了一种方法,我们可以像在Git/SVN等中一样读取代码。您可以使用以下技术访问表: 通过RFC使用(RFC\U READ\U表格) 使用具有相同功能的SOAP Web服务(RFC\U READ\U表) 将自定义web服务与读取报表、函数等现有函数一起使用
据我所知,ABAP代码存储在SAP数据库中,如HANA、mysql等。因此,SAP是否提供了一种方法,我们可以像在Git/SVN等中一样读取代码。您可以使用以下技术访问表:
- 通过RFC使用(RFC\U READ\U表格)
- 使用具有相同功能的SOAP Web服务(RFC\U READ\U表)
- 将自定义web服务与读取报表、函数等现有函数一起使用
注意:请记住,报表和数据元素(变量、表格、类型)保存在单独的表格中。Dynpro对象(屏幕等)、报表(Smartforms)难以反编译 您可以使用以下技术访问表:
- 通过RFC使用(RFC\U READ\U表格)
- 使用具有相同功能的SOAP Web服务(RFC\U READ\U表)
- 将自定义web服务与读取报表、函数等现有函数一起使用
注意:请记住,报表和数据元素(变量、表格、类型)保存在单独的表格中。Dynpro对象(屏幕等)、报表(Smartforms)难以反编译 我通过perl NWRFC包装器/库使用RFC调用
RPY\u FUNCTIONMODULE\u READ
和RPY\u FUNCTIONMODULE\u READ\u NEW
,来检索ABAP代码 我通过perl NWRFC包装器/库使用RFC调用RPY\u FUNCTIONMODULE\u READ
和RPY\u FUNCTIONMODULE\u READ\u NEW
,来检索ABAP代码 在重新发明车轮之前,请先看看:
- 阿巴吉特李>
- 或者旧的SAPLink
该服务只需读取原始代码并以纯文本形式返回。 每个人都可以为你创造这个。 但这只是原始来源。一个完整的开发还有很多 以及为什么像ABAPGIT这样的工具存在 在SICF中,创建一个新的端点/服务。 例如,ZCODE_MONKEY以下面的类为例 现在激活服务 调用端点 示例实现
CLASS zcode_monkey DEFINITION
PUBLIC
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES: if_http_extension.
ENDCLASS.
CLASS zcode_monkey IMPLEMENTATION.
METHOD if_http_extension~handle_request.
DATA: lo_src type ref to CL_OO_SOURCE,
l_name TYPE string,
l_repname type c length 30,
l_clskey type seoclskey ,
l_source type rswsourcet,
resultcode TYPE string.
FIELD-SYMBOLS: <line> TYPE LINE OF rswsourcet.
l_name = server->request->get_form_field( name = 'NAME' ).
l_clskey = l_name.
l_repname = l_name.
create OBJECT lo_src
EXPORTING
clskey = l_clskey
EXCEPTIONS
class_not_existing = 1
others = 2 .
IF sy-subrc <> 0.
read REPORT l_repname into l_source.
else.
lo_src->read( ).
lo_src->if_oo_clif_source~get_source( IMPORTING source = l_source ).
ENDIF.
LOOP AT l_source ASSIGNING <line>.
CONCATENATE resultCode
cl_abap_char_utilities=>cr_lf
<line>
INTO resultCode RESPECTING BLANKS. " always show respect ;)
ENDLOOP.
SErver->response->set_content_type( content_type = 'text/plain' ).
server->response->set_cdata( EXPORTING data = resultcode ).
server->response->set_status(
EXPORTING
code = 200
reason = 'this is a 3.50 piece of code. Dont ask...its a demo ' ).
ENDMETHOD.
ENDCLASS.
CLASS zcode\u猴子定义
平民的
创建公共文件。
公共部分。
接口:if_http_扩展。
末级。
类zcode_monkey实现。
方法,如果\u http\u扩展名~handle\u请求。
数据:lo_src类型参考至CL_OO_源,
l_名称类型字符串,
l_repname类型c长度30,
l_clskey类型seoclskey,
l_源类型rswsourcet,
结果代码类型字符串。
字段符号:rswsourcet的类型行。
l_name=server->request->get_form_字段(name='name')。
l_clskey=l_名称。
l_repname=l_name。
创建对象lo_src
出口
clskey=l_clskey
例外情况
类\不\存在=1
其他=2。
如果sy subrc为0。
将报告l_repname读入l_源。
其他的
lo_src->read()。
lo_src->if_oo_clif_source~get_source(导入source=l_source)。
恩迪夫。
在l_源分配时循环。
连接结果代码
cl\u abap\u char\u实用程序=>cr\u lf
输入与空格相关的结果代码。“始终表示尊重;”
结束循环。
服务器->响应->设置内容类型(内容类型='text/plain')。
服务器->响应->设置cdata(导出数据=结果代码)。
服务器->响应->设置\u状态(
出口
代码=200
原因='这是一段3.50的代码。不要问…这是一个演示'。
ENDMETHOD。
末级。
在重新发明车轮之前,请先看看:
- 阿巴吉特
- 或者旧的SAPLink
该服务只需读取原始代码并以纯文本形式返回。 每个人都可以为你创造这个。 但这只是原始的来源。要完成开发,还有很多 以及为什么像ABAPGIT这样的工具存在 在SICF中,创建一个新的端点/服务。 例如,ZCODE_MONKEY以下面的类为例 现在激活服务 调用端点 示例实现
CLASS zcode_monkey DEFINITION
PUBLIC
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES: if_http_extension.
ENDCLASS.
CLASS zcode_monkey IMPLEMENTATION.
METHOD if_http_extension~handle_request.
DATA: lo_src type ref to CL_OO_SOURCE,
l_name TYPE string,
l_repname type c length 30,
l_clskey type seoclskey ,
l_source type rswsourcet,
resultcode TYPE string.
FIELD-SYMBOLS: <line> TYPE LINE OF rswsourcet.
l_name = server->request->get_form_field( name = 'NAME' ).
l_clskey = l_name.
l_repname = l_name.
create OBJECT lo_src
EXPORTING
clskey = l_clskey
EXCEPTIONS
class_not_existing = 1
others = 2 .
IF sy-subrc <> 0.
read REPORT l_repname into l_source.
else.
lo_src->read( ).
lo_src->if_oo_clif_source~get_source( IMPORTING source = l_source ).
ENDIF.
LOOP AT l_source ASSIGNING <line>.
CONCATENATE resultCode
cl_abap_char_utilities=>cr_lf
<line>
INTO resultCode RESPECTING BLANKS. " always show respect ;)
ENDLOOP.
SErver->response->set_content_type( content_type = 'text/plain' ).
server->response->set_cdata( EXPORTING data = resultcode ).
server->response->set_status(
EXPORTING
code = 200
reason = 'this is a 3.50 piece of code. Dont ask...its a demo ' ).
ENDMETHOD.
ENDCLASS.
CLASS zcode\u猴子定义
平民的
创建公共文件。
公共部分。
接口:if_http_扩展。
末级。
类zcode_monkey实现。
如果\u http\u扩展名~handle\u请求