Abap 对于自定义表,通过转换出口转换MATNR失败
我试图从MSEG中选择物料移动的最新日期,但物料需要库存,并且来自使用未转换物料名称的定制表格 我尝试过使用调用函数“CONVERSION\u EXIT\u MATN1\u OUTPUT”和INPUT,但我不确定如何在select语句中正确使用它Abap 对于自定义表,通过转换出口转换MATNR失败,abap,sap-query,Abap,Sap Query,我试图从MSEG中选择物料移动的最新日期,但物料需要库存,并且来自使用未转换物料名称的定制表格 我尝试过使用调用函数“CONVERSION\u EXIT\u MATN1\u OUTPUT”和INPUT,但我不确定如何在select语句中正确使用它 IF MSEG-BWART = '101'. CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' EXPORTING INPUT = ZBJSTOCK-ZMAT10 IMPORT
IF MSEG-BWART = '101'.
CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT'
EXPORTING
INPUT = ZBJSTOCK-ZMAT10
IMPORTING
OUTPUT = WA2-MATNR.
SELECT MAX( BUDAT_MKPF )
FROM MSEG
INTO GRDT
WHERE MATNR = WA2-MATNR.
ENDIF.
目前,WA2-MATNR看起来是空白的,因此不会从MSEG中提取数据。除非您在该函数的用户出口中添加了代码,否则它不会执行您想要的操作。该功能的标准用途是格式化物料编号,以便在屏幕上显示 执行所需操作的最快方法是从自定义表中选择进行查找
这就是说,在该函数中有一个用户出口,您可以在其中对select进行编码以执行查找。这样做的额外好处是,您的用户将能够键入旧材料编号,系统将使用新材料编号进行切换。您不应该在此处使用转换退出。SAP表格中的物料编号采用内部输入格式,您可以将其转换为可读格式输出,以便查询表格。很明显你什么也找不到 样本: 出口的MATNR内部格式 0000000000000 25567 输入出口的MATNR外部格式 25567 转换案例: 0000000000000 25567->转换\u退出\u材料1\u输出->25567✔️ 25567->转换\u退出\u材料1\u输出->25567❌ 没有什么变化 25567->转换\u退出\u材料1\u输入->0000000000000 25567✔️ 0000000000000 25567->转换\u退出\u材料1\u输入->0000000000000 25567❌ nng变化 最有可能的情况是,您的定制表包含错误的物料编号,因此exit不会返回任何内容。或材料编号的格式为exit不期望的格式,例如19个字符,而不是18个字符,依此类推 附言 仅为您提供信息,您可以使用模板进行转换。这与调用转换FMs相同
SELECT SINGLE matnr FROM mara INTO @DATA(l_matnr) WHERE EXISTS ( SELECT * FROM mseg WHERE matnr = mara~matnr ).
l_matnr = | { l_matnr ALPHA = OUT } |. <<-- templating
SELECT SINGLE matnr, budat_mkpf
FROM mseg
INTO @DATA(l_mkpf)
WHERE matnr = @l_matnr.
在上面的示例中,SELECT不会返回任何内容,但如果您注释掉模板行,它会返回任何内容。什么是定制?ERP中没有这样的表Bespoke只是指其公司特定的表,而不是SAP标准。