簡體   English   中英

對於自定義表,通過轉換出口轉換 MATNR 失敗

[英]Converting MATNR via conversion exit fails for custom table

我正在嘗試從 MSEG 中選擇材料移動的最新日期,但材料需要有庫存,並且來自使用未轉換材料名稱的定制表。

我試過使用CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' (和INPUT ),但我不確定如何在選擇語句中正確使用它。

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 中提取數據。

你不應該在這里使用轉換出口。 SAP 表中的物料編號采用內部 (INPUT) 格式,您將其轉換為可讀格式 (OUTPUT) 以查詢表。 很明顯你不會找到任何東西。

樣本:

MATNR 內部格式(用於 OUT 出口)

000000000000025567

MATNR 外部格式(用於 IN 出口)

25567

轉換案例:

000000000000025567 -> CONVERSION_EXIT_MATN1_OUTPUT -> 25567 ✔️

25567 -> CONVERSION_EXIT_MATN1_OUTPUT -> 25567 ❌ 沒有任何變化

25567 -> CONVERSION_EXIT_MATN1_INPUT -> 000000000000025567 ✔️

000000000000025567 -> CONVERSION_EXIT_MATN1_INPUT -> 000000000000025567 ❌ nng 變化

最有可能的是,您的定制表包含錯誤的材料編號,因此退出不會返回任何內容。 或退出不期望格式的材料編號,例如 19 個字符而不是 18 個等等。

聚苯乙烯

僅供您參考,您可以使用模板進行轉換。 與調用轉換FM相同

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 不會返回任何內容,但是如果您注釋掉模板行,它會返回。

除非您在該函數的用戶出口中添加了代碼,否則它不會執行您想要的操作。 該函數的標准用途是格式化材料編號以顯示在屏幕上。

執行所需操作的最快方法是從自定義表中進行選擇以進行查找。

也就是說,該函數中有一個用戶出口,您可以在其中編寫選擇代碼以進行查找。 這樣做的額外好處是您的用戶將能夠輸入舊物料編號,系統會將其切換為新編號。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM