我正在开发SAP程序以从物料表(MARA
)中获取有关参考的信息。
首先,我获取某些参考,然后使用循环,我需要为每次迭代进行其他查询:
SELECT
MARA~BISMT
FROM mara
WHERE mara~matnr = @ref
INTO @var.
[我知道问题是类型冲突(mara~matnr
是字符,ref
是字符串),如何将它们都转换为相同类型并查看结果?
提前感谢!
您可以将字段符号用于动态类型,将CONVERSION_EXIT_ALPHA_INPUT
功能模块用于格式化db的值。
TABLES: mara.
DATA: ref TYPE string,
var TYPE string.
FIELD-SYMBOLS: <fs_ref> TYPE any.
ref = '11'.
ASSIGN ('mara-matnr') TO <fs_ref>.
CHECK sy-subrc IS INITIAL.
<fs_ref> = ref.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = <fs_ref>
IMPORTING
output = <fs_ref>.
SELECT SINGLE mara~bismt
FROM mara
INTO @var
WHERE mara~matnr = @<fs_ref>.
您也可以使用ABAP string templates代替mkysoft建议的转换退出:
DATA: ref TYPE string VALUE '2'.
ref = |{ CONV matnr( ref ) ALPHA = in }|.
SELECT SINGLE bismt
FROM mara
WHERE matnr = @ref
INTO @DATA(var).