У меня есть внутренняя таблица, которая записывается в файл, а затем вставляется в BW в качестве источника данных. Иногда непечатаемый символ превращает его в вывод файла и прерывает процесс импорта в BW. Ниже приведен образец моего кода. Поскольку itab не является типом c или string, я не могу использовать регулярное выражение find/replace. Кто-нибудь еще должен был решить этот тип проблемы раньше?Искание символов без печати внутри внутренней таблицы ABAP
FORM eliminate_non_print_char TABLES p_shiptab STRUCTURE shiptab.
LOOP AT p_shiptab INTO wa_shiptab.
FIND REGEX '[^[:print:]]+(?!$)'
IN wa_shiptab
IGNORING CASE.
"RESULTS result.
IF sy-subrc = 0.
REPLACE REGEX '[^[:print:]]+(?!$)'
IN wa_shiptab WITH ''
IGNORING CASE.
ENDIF.
ENDLOOP.
DATA: BEGIN OF shiptab OCCURS 2000.
INCLUDE STRUCTURE ship1.
INCLUDE STRUCTURE ship2.
DATA: landtx LIKE vbrk-landtx,
bl_konwa LIKE vbak-waerk.
INCLUDE STRUCTURE ship3.
INCLUDE STRUCTURE ship4.
DATA: frght_amnt_usd LIKE konv-kwert,
revenue_amnt_usd LIKE vbap-netwr,
unit_price_usd LIKE vbap-netpr,
pgi_posting_date LIKE mkpf-budat,
ord_line_item_qty LIKE lips-lfimg,
asm_no LIKE kna1-kunnr,
asm_username LIKE adrc-sort1,
va_augru_t LIKE tvaut-bezei,
ship_to_name LIKE adrc-name1,
bill_to_name LIKE adrc-name1,
forward_to_name LIKE adrc-name1,
fmv_amnt LIKE konv-kbetr,
va_butxt LIKE t001-butxt,
sold_to_search_term LIKE adrc-sort1,
bill_to_search_term LIKE adrc-sort1,
va_prctr LIKE vbap-prctr,
va_bezei LIKE tvrot-bezei.
INCLUDE STRUCTURE zorder_attr.
DATA: extended_bits_count(20),
va_bstkd_hdr LIKE char32.
DATA: gsm_bp_katr6 LIKE kna1-katr6,
gsm_bp_vtext6 LIKE tvk6t-vtext,
asm_ze_katr7 LIKE kna1-katr7,
asm_ze_vtext7 LIKE tvk7t-vtext,
gsm_ze_katr6 LIKE kna1-katr6,
gsm_ze_vtext6 LIKE tvk7t-vtext.
DATA: END OF shiptab
.
Ошибка, которую я получаю: «WA_SHIPTAB» должен быть объектом данных типа символа (тип данных C, N, D, T или STRING). У меня нет типов символов в itab shiptab. Я знаю, что я могу делать этот поиск по каждому полю отдельно, но itab имеет 235 полей, и это не кажется эффективным.
Может у ou, пожалуйста, добавьте определение типа 'shiptab'? – vwegert
Готово, я также могу добавить структуры внутри shiptab, но они довольно большие и сделают сообщение труднее читать. Дайте мне знать, если вы хотите их увидеть. – CodeMonkey
Будет ли возможность переместить все несимвольные поля в отдельную подструктуру? – vwegert