Abap 对于自定义表,通过转换出口转换MATNR失败

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

我试图从MSEG中选择物料移动的最新日期,但物料需要库存,并且来自使用未转换物料名称的定制表格

我尝试过使用调用函数“CONVERSION\u EXIT\u MATN1\u OUTPUT”和INPUT,但我不确定如何在select语句中正确使用它

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标准。