我需要调出记录,因为档案表中没有历史记录。档案中需要检查1条记录的两个字段。
在技术上,我的要求是左联接,其中右侧为'null‘(即。a)。一个排除连接),它在abap openSQL中通常是这样实现的(无论如何,对于我的场景):
Select * from xxxx //xxxx is a result for a multiple table join
where xxxx~key not in (select key from archive_table where [conditions] )
and xxxx~foreign_key
我有一个关于ABAP中所有条目的语句的问题。我知道它的功能类似于,选择不同的,并删除重复的条目。
在我的例子中,我想为表输入编写一个验证。由于您可以输入多行,所以我必须检查其中的每一行。循环与选择不是一个选项。另一种方法是所有条目的()。可悲的是如果f.e。同样的公司代码需要验证,FoE只需返回一个条目。因此,我没有机会确定错误在哪里(如果有错误的话)。
以下是验证代码:
LOOP AT extract.
IF <xact> NE empty.
READ TABLE total WITH KEY <vim_xextract_key>.
我的计算机的D:驱动器中有一个文件,我想将此文件复制到SAP应用程序服务器,以便能够使用transaction AL11查看我的文件。我知道我可以用AL11创建一个文件,但我想用ABAP来做这件事。
当然,在我的搜索中,我找到了这段代码,但我不能用它解决我的问题。
data: unixcom like rlgrap-filename.
data: begin of tabl occurs 500,
line(400),
end of tabl.
dir =
unixcom = 'mkdir mydir'. "command to create
我想向动态内部表中添加一个动态表行。
DATA: lo_structdescr TYPE REF TO cl_abap_structdescr,
lo_tabledescr TYPE REF TO cl_abap_tabledescr,
lt_components TYPE abap_component_tab,
ls_component TYPE LINE OF abap_component_tab,
lt_keys TYPE abap_keydescr_tab,
lt_table
我目前正在进行一个项目,将数据提取到几个itabs中,并将它们全部保存到本地pc上的单个excel文件中。
为了将数据移动到excel文件中,我必须遍历表中的字段,这些字段似乎可以用cl_abap_structdescr=>describe_by_data和cl_abap_tabledescr=>create函数存档。在我阅读的中,作者将它们与ABAP字典表一起使用,我的目标是将它与任意内部表一起使用。
我在测试报告中尝试了它,并使用T005进行测试:
data:
lt_t005 type standard table of t005,
我的递归方法中有一个传入的深结构,它包含结构和表,所以我使用RTTI检查类型、循环并执行操作,以防我找到了特定的组件。
如果当前组件是一个结构或表,那么方法会调用它自己。
问题:我导入结构时输入了any类型。到目前一切尚好。我也想把它作为A型出口。
我在这里挣扎。
如何将已编辑的深结构分配给导出参数?
METHOD process_input.
DATA: lo_type_descr TYPE REF TO cl_abap_typedescr,
lo_struct_descr TYPE REF TO cl_abap_structdescr,
lv_comp_fo
假设我有一个表quants,希望找出是否存在任何行,其中字段lenum不是初始值。表是使用select语句内联声明的,因此我没有可用的键。
由于我没有密钥,下面的解决方案不起作用:
line_exists( VALUE #( FOR wa IN quants WHERE ( lenum IS NOT INITIAL ) ( wa ) ) )
由于我想检查不平等,所以表表达式不起作用:
line_exists( quants[ lenum NE '' ] )
到目前为止,我提出的唯一解决办法是:
abap_true EQ REDUCE abap_bool( INIT bool =
在下面的字符串中,我需要为'(any day)‘使用re.findall,然后将其打印到分隔符',’之前
rr='PU3lserver1^server2|ABAP|Revisions|true|null|Weekend
only,ATN|server3|ABAP|Revisions|true|null|1:00 AM to 3:00 AM CET (any
day),B4P|server4^server5|ABAP|Revisions|true|Generic AFL|8:00 PM to 3:00 AM
CET (any day),C8B|server6|ABA
我使用cl_abap_structdescr->get_components获取结构中字段的列表。当我在本地声明的结构类型上使用它时,它工作得很好,但是当我在DDIC结构上使用它时,它并没有给出我期望的结果。
可复制示例:
TYPES: BEGIN OF gty_outtab,
infty TYPE infty,
uname TYPE uname,
bdate TYPE datum,
btime TYPE uzeit,
pernr TYPE pernr_d,
opera TYPE hr_opera,
begda TYPE begda,
endda TYPE
我需要在字段符号<itab>中获取字段名,这样我就可以使用ALV的字段目录的名称。
所以我使用了cl_abap_structdescr,但是它总是给我带来一个错误。我尝试了一个内部表,并得到了预期的结果,但我必须使用字段符号,而不是内部表。
ASSIGN lo_itab->* TO <itab>
data: go_struct type ref to cl_abap_structdescr,
gt_comp type abap_component_tab,
gs_comp type abap_componentdescr.
我尝试编译ABAP提供的声明变量、类型和类似内容的所有方法,包括过时的语法变体和acrane语法变体。因此,例如,我会在列表中包括字段组,但不包括类的声明。我目前的列表如下。我错过什么了吗?
语句声明变量
- DATA-like declarative statements数据(不包括公共部分的数据开头)、静态、参数、参数、常量
- FIELD-SYMBOLS -内联声明
-程序的实际参数
表单(子例程)、函数、方法
-其他变量声明语句
范围,SELECT-OPTIONS:还有更多?
语句声明类型
- TYPES
other statements
- DATA BEGIN OF COM
我使用下面的ABAP代码通过正则表达式查找文本:
DATA: regex TYPE REF TO cl_abap_regex,
match TYPE REF TO cl_abap_matcher,
match_result_tab TYPE match_result_tab.
TRY.
CREATE OBJECT regex
EXPORTING
pattern = '01|012345'.
CATCH cx_sy_regex .
ENDTRY.
TRY.
CRE
我的程序可以通过两种方式启动:
从我的一个本地类调用MAIN函数的START OF SELECTION事件。调用同一方法的ZAVGTTA4事务。
在PAI,对于BACK事件,当调用LEAVE TO SCREEN '0'.时,我的程序根据它的启动方式有两种行为方式。我想回到选择屏幕(1000)。
我想过查询堆栈,在那里我肯定能找到我的程序是如何调用的。我可以看到堆栈跟踪是不同的,但我不知道如何从程序访问我的堆栈。我听说过RTTI,我认为它可能对我有帮助。