gpt4 book ai didi

directory - 如何以编程方式从 abap 中的目录参数获取文件路径?

转载 作者:行者123 更新时间:2023-12-02 22:32:25 24 4
gpt4 key购买 nike

事务 AL11 返回“目录参数”到应用程序服务器 AFAIK 上文件路径的映射。事务 AL11 的问题在于它的程序只调用 c 模块,几乎没有 select 语句或函数调用的踪迹来分析那里。

我希望能够在我的代码中动态执行此操作,例如将“DATA_DIR”作为输入并将“E:\usr\sap\IDS\DVEBMGS00\data”作为输出的功能模块。

This线程是关于类似的主题,但它没有帮助。

其他人有同样的问题,他解释得很好here .

最佳答案

我强烈怀疑获取这些值的唯一方法是直接通过内核。其中一些可能因应用程序服务器而异,因此您可能无法在数据库中找到它们。你可以试试这个:

TYPE-POOLS abap.

TYPES: BEGIN OF t_directory,
log_name TYPE dirprofilenames,
phys_path TYPE dirname_al11,
END OF t_directory.

DATA: lt_int_list TYPE TABLE OF abaplist,
lt_string_list TYPE list_string_table,
lt_directories TYPE TABLE OF t_directory,
ls_directory TYPE t_directory.

FIELD-SYMBOLS: <l_line> TYPE string.

START-OF-SELECTION-OR-FORM-OR-METHOD-OR-WHATEVER.
* get the output of the program as string table
SUBMIT rswatch0 EXPORTING LIST TO MEMORY AND RETURN.
CALL FUNCTION 'LIST_FROM_MEMORY'
TABLES
listobject = lt_int_list.
CALL FUNCTION 'LIST_TO_ASCI'
EXPORTING
with_line_break = abap_true
IMPORTING
list_string_ascii = lt_string_list
TABLES
listobject = lt_int_list.

* remove the separators and the two header lines
DELETE lt_string_list WHERE table_line CO '-'.
DELETE lt_string_list INDEX 1.
DELETE lt_string_list INDEX 1.

* parse the individual lines
LOOP AT lt_string_list ASSIGNING <l_line>.
* If you're on a newer system, you can do this in a more elegant way using regular expressions
CONDENSE <l_line>.
SHIFT <l_line> LEFT DELETING LEADING '|'.
SHIFT <l_line> RIGHT DELETING TRAILING '|'.
SPLIT <l_line>+1 AT '|' INTO ls_directory-log_name ls_directory-phys_path.
APPEND ls_directory TO lt_directories.
ENDLOOP.

关于directory - 如何以编程方式从 abap 中的目录参数获取文件路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12007034/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com