ABAP 批次特性中的供应商关联MCHA表取数

1、根据供应商号从AUSP表读取对象值 

复制代码
 DATA : lv_atinn TYPE ausp-atinn.
  CALL FUNCTION 'CONVERSION_EXIT_ATINN_INPUT'
    EXPORTING
      input  = 'Z_BATCH_VENDOR1'
    IMPORTING
      output = lv_atinn.
  DATA: BEGIN OF ls_ausp,
          objek    TYPE inob-objek,
          cuobj_bm TYPE inob-cuobj,
          atinn    TYPE ausp-atinn,
          atwrt    TYPE ausp-atwrt,
        END OF ls_ausp,
        lt_ausp LIKE TABLE OF ls_ausp.

  REFRESH: lt_ausp.
  SELECT inob~objek
         inob~cuobj AS cuobj_bm
         ausp~atinn
         ausp~atwrt
    INTO CORRESPONDING FIELDS OF TABLE lt_ausp
    FROM ausp
    JOIN inob ON inob~cuobj = ausp~objek
    WHERE inob~klart = '022'
    AND inob~obtab = 'MCHA'
    AND ausp~atwrt IN s_lifnr
    AND ausp~atinn = lv_atinn.
  SORT lt_ausp BY objek atinn.
  DELETE ADJACENT DUPLICATES FROM lt_ausp COMPARING objek atinn.
复制代码

2、使用内表进行内连接查询需要的数据

复制代码
SELECT a~matnr,
       a~werks,
       CASE a~lifnr
       WHEN ' '
       THEN p~atwrt
       ELSE a~lifnr
       END AS lifnr,
*       a~lifnr,
       b~lgort,
       b~charg,
       b~clabs,
       b~clabs AS menge,
       m~meins,
       k~maktx
*       l~name1
FROM mcha AS a
INNER JOIN mara AS m ON a~matnr = m~matnr
INNER JOIN makt AS k ON a~matnr = k~matnr
INNER JOIN @lt_ausp AS p ON p~cuobj_bm = a~cuobj_bm
LEFT  JOIN mchb AS b ON a~matnr = b~matnr
               AND a~werks = b~werks
               AND a~charg = b~charg
*LEFT JOIN lfa1 AS l ON a~lifnr = l~lifnr           "因为MCHA表中LIFNR字段为空,所以此处没有查询供应商名称
WHERE a~matnr IN @s_matnr
AND a~werks IN @s_werks
AND b~lgort IN @s_lgort
AND b~charg IN @s_charg
AND ( a~lifnr IS NOT INITIAL OR p~atwrt IS NOT INITIAL )
AND b~clabs > 0
AND k~spras = @sy-langu
INTO CORRESPONDING FIELDS OF TABLE @gt_out.
复制代码

3、查询供应商名称

  LOOP AT gt_out ASSIGNING <fs_out>.
    READ TABLE lt_lfa1 INTO DATA(ls_lfa1) WITH KEY lifnr = <fs_out>-lifnr BINARY SEARCH.
    IF sy-subrc = 0.
      <fs_out>-name1 = ls_lfa1-name1.
    ENDIF.
  ENDLOOP.

 

posted @   Delaine  阅读(380)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示