如何查找并删除SAP数据库自定义表内包含的特殊字符

本文介绍了一种处理SAP数据库中自定义表内包含特殊字符(如制表符、回车换行、0x0000等不可见字符)的方法。通过编写特定程序,实现显示可见字符ASCII码、自动创建日志表以及带更改日志的自定义更新功能。
摘要由CSDN通过智能技术生成

通过接口或者Excel上载创建的主数据描述,凭证数据的文本字段等,偶尔会有包含特殊字符的情况,且大部分时候是不可见字符,比如制表符,回车换行,0x0000等等。如果没有工具程序,只用SE16等查找或者更改非常困难,所以特意做了一个程序来干这个事情。

辅助功能1、显示可见字符的ASCII码

辅助功能2、自动创建日志表

辅助功能3、自定义的更新功能(有更改日志)


*&---------------------------------------------------------------------*
*& Report  ZCHECKSPECIALHEX
*& 检查/修正表内的CNDT类型字段值包含的特殊字符
*&---------------------------------------------------------------------*
*& Baitianzhen
*& 2022.04.16
*&---------------------------------------------------------------------*
REPORT zcheckspecialhex NO STANDARD PAGE HEADING .

TYPE-POOLS: sscr,slis.
TABLES: dd02v,dd03l,tadir,sscrfields.
DATA: fldct  TYPE lvc_t_fcat WITH HEADER LINE,
slayt  TYPE lvc_s_layo,
repid  TYPE sy-repid,
subrc  TYPE sy-subrc,
char45 TYPE char45,
tabix  TYPE sy-tabix,
fmname TYPE funcname,
whstr  TYPE string,
tmpstr TYPE string,
numstr TYPE string,
keystr TYPE string,
cspace TYPE char4,
tmpint TYPE i,
percnt TYPE i,
cflag.
DATA: set_str TYPE string,
con_str TYPE string.
DATA: cxroot  TYPE REF TO cx_root,
excmsg  TYPE char255.
DATA: paraname  TYPE char40,
stru_type TYPE REF TO cl_abap_structdescr,
itab_type TYPE REF TO cl_abap_tabledescr,
comp_des  TYPE abap_componentdescr,
comp_tab  TYPE abap_component_tab WITH HEADER LINE.
DATA: logtname TYPE tablename VALUE 'ZCSL'.
DATA: BEGIN OF wa_value ,
fldname  TYPE string,
fldtype  TYPE string,
fldvalue TYPE string,
hexvalue TYPE string,
END OF wa_value.
DATA: BEGIN OF it_flds OCCURS 0 ,
fldname TYPE fieldname,
ref_tab TYPE tabname,
ref_fld TYPE fieldname,
convext TYPE convexit,
inttype TYPE inttype,
END OF it_flds.
DATA: BEGIN OF wa_log,
mandt     TYPE mandt  ,
tabname   TYPE tabname,
objectid  TYPE cdobjectv,
fieldname TYPE fieldname,
erdat     TYPE erdat    ,
erzet     TYPE erzet    ,
ernam     TYPE ernam    ,
value_old TYPE cdfldvalo,
value_new TYPE cdfldvaln,
END OF wa_log.
DATA: it_fkey LIKE TABLE OF it_flds WITH HEADER LINE.
DATA: it_fnok LIKE TABLE OF it_flds WITH HEADER LINE.
DATA: it_dd03 TYPE TABLE OF dd03p   WITH HEADER LINE.
DATA: rf_tabl TYPE REF TO data,
rf_twa  TYPE REF TO data,
rf_out  TYPE REF TO data,
rf_owa  TYPE REF TO data.
FIELD-SYMBOLS: <fs_out>  TYPE STANDARD TABLE,
<fs_tabl> TYPE STANDARD TABLE,
<fsx> TYPE x, <fs_owa>, <fs_twa>, <fs_fld>, <fs>.

SELECTION-SCREEN FUNCTION KEY 1.
SELECTION-SCREEN FUNCTION KEY 2.
SELECTION-SCREEN FUNCTION KEY 3.
SELECTION-SCREEN FUNCTION KEY 4.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE t01.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT (31) ctxt0 FOR FIELD p_tname .
PARAMETERS: p_tname TYPE tabname16 MEMORY ID dtb .
SELECTION-SCREEN COMMENT 52(31) ctxtl  .
SELECTION-SCREEN END OF LINE.
SELECT-OPTIONS s_type FOR cflag NO INTERVALS.
SELECT-OPTIONS s_flds FOR dd03l-fieldname NO INTERVALS MATCHCODE OBJECT dd_fieldname.
SELECT-OPTIONS s_conl FOR char45 NO INTERVALS LOWER CASE.
SELECT-OPTIONS s_sfld FOR d
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小啊曼

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值