获取序列号_根据物料+序列号 获取对应的 仓位信息

FUNCTION zfm_get_show_data.*"----------------------------------------------------------------------*"*"Local Interface:*" TABLES*" IT_DATA STRUCTURE 自己定义*" ET_DATA STRUCTURE 自己定义*"---------------------------------------------------------------------- DATA:lt_tmp LIKE TABLE OF 自己定义 DATA:ls_tmp LIKE 自己定义 DATA:lt_equi TYPE TABLE OF equi. DATA:ls_equi LIKE LINE OF lt_equi. DATA:lt_lein TYPE TABLE OF lein. DATA:ls_lein TYPE lein. DATA:lv_objnr LIKE jest-objnr. DATA:lt_eq LIKE TABLE OF 自己定义 DATA:lt_eq_tmp LIKE TABLE OF 自己定义 DATA:lt_156 TYPE TABLE OF t156c. DATA:ls_156 TYPE t156c. DATA:ls_eq LIKE LINE OF lt_eq. DATA:gt_type TYPE TABLE OF 自己定义 DATA:ls_type LIKE LINE OF gt_type. DATA:lt_table LIKE TABLE OF dntab. DATA:lv_txt TYPE dd07v-ddtext. DATA:lv_value TYPE dd07v-domvalue_l. DATA:lv_line LIKE bsvx-sttxt. DATA:lt_eqbs TYPE TABLE OF eqbs. DATA:ls_eqbs LIKE LINE OF lt_eqbs. DATA:ls_data LIKE LINE OF it_data. DATA:ls_etdata LIKE LINE OF et_data. DATA:lt_kna1 TYPE TABLE OF kna1. DATA:ls_kna1 TYPE kna1. DATA:lt_db TYPE TABLE OF zatj_gbox_status. DATA:ls_db LIKE LINE OF lt_db. FIELD-SYMBOLS  LIKE LINE OF it_data. CHECK it_data[] IS NOT INITIAL. CLEAR et_data[].*&直接取库表数据(前台操作后,刷新显示时会用到) SELECT * FROM zatj_gbox_status INTO TABLE lt_db FOR ALL ENTRIES IN it_data WHERE upload_no = it_data-upload_no AND matnr = it_data-matnr AND sernr = it_data-sernr. LOOP AT it_data ASSIGNING . READ TABLE lt_db INTO ls_data WITH KEY upload_no = -upload_no matnr = -matnr sernr = -sernr. CHECK sy-subrc = 0.  = ls_data. CLEAR ls_data. ENDLOOP.*更新HU CALL FUNCTION 'ZATJ_GX_BLOCK_GET_EXIDV' TABLES ct_data = it_data. SELECT * FROM t156c INTO TABLE lt_156. SELECT * FROM zatj_block_type INTO TABLE gt_type. SELECT * FROM equi INTO TABLE lt_equi FOR ALL ENTRIES IN it_data WHERE equi~matnr = it_data-matnr AND equi~sernr = it_data-sernr. IF lt_equi IS NOT INITIAL. SELECT * FROM eqbs INTO TABLE lt_eqbs FOR ALL ENTRIES IN lt_equi[] WHERE equnr = lt_equi-equnr. ENDIF.* 633 数据 SELECT ser03~obknr ser03~kunde objk~sernr objk~matnr kna1~name1 kna1~name2 FROM ser03 INNER JOIN objk ON ( objk~obknr = ser03~obknr ) INNER JOIN kna1 ON ( kna1~kunnr = ser03~kunde ) INTO CORRESPONDING FIELDS OF TABLE lt_tmp FOR ALL ENTRIES IN it_data WHERE objk~matnr = it_data-matnr AND objk~sernr = it_data-sernr AND objk~taser = 'SER03' AND ser03~bwart = '633' . SORT lt_tmp BY matnr sernr obknr kunde. SELECT * FROM lein INTO TABLE lt_lein FOR ALL ENTRIES IN it_data WHERE lenum = it_data-exidv . SELECT equi~equnr equi~matnr equi~sernr eqbs~lbbsa eqbs~sobkz eqbs~kunnr INTO CORRESPONDING FIELDS OF TABLE lt_eq FROM equi INNER JOIN eqbs ON ( equi~equnr = eqbs~equnr ) FOR ALL entries IN it_data[] WHERE equi~matnr = it_data-matnr AND equi~sernr = it_data-sernr. lt_eq_tmp = lt_eq[]. SORT lt_eq_tmp BY kunnr. DELETE lt_eq_tmp WHERE kunnr IS INITIAL. IF lt_eq_tmp IS NOT INITIAL. SELECT kunnr name1 name2 FROM kna1 INTO CORRESPONDING FIELDS OF TABLE lt_kna1 FOR ALL ENTRIES IN lt_eq_tmp WHERE kunnr = lt_eq_tmp-kunnr. ENDIF.*取出表结构的字段目录 CALL FUNCTION 'NAMETAB_GET' EXPORTING langu = sy-langu tabname = 'T156C' TABLES nametab = lt_table EXCEPTIONS no_texts_found = 1. LOOP AT it_data INTO ls_data. CLEAR ls_etdata. MOVE-CORRESPONDING ls_data TO ls_etdata. CLEAR ls_equi. READ TABLE lt_equi INTO ls_equi WITH KEY matnr = ls_data-matnr sernr = ls_data-sernr . ls_etdata-equnr = ls_equi-equnr. ls_etdata-objnr = ls_equi-objnr. CLEAR ls_eqbs. READ TABLE lt_eqbs INTO ls_eqbs WITH KEY equnr = ls_equi-equnr. IF sy-subrc = 0. ls_etdata-b_werk = ls_eqbs-b_werk. ls_etdata-b_lager = ls_eqbs-b_lager. ENDIF.*&status CLEAR lv_line. CALL FUNCTION 'STATUS_TEXT_EDIT' EXPORTING objnr = ls_etdata-objnr spras = 'E' IMPORTING line = lv_line EXCEPTIONS object_not_found = 1 OTHERS = 2. IF sy-subrc <> 0.* MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno* WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. CLEAR lv_line. ENDIF.*&序列号的状态时ECUS,则获取序列号的客户信息,从SER03中找移动类型为633的最后一条记录对应的客户 IF lv_line = 'ECUS'. CLEAR ls_tmp. LOOP AT lt_tmp INTO ls_tmp WHERE matnr = ls_data-matnr AND sernr = ls_data-sernr . ls_etdata-kunde = ls_tmp-kunde. ls_etdata-name1 = ls_tmp-name1. ls_etdata-name2 = ls_tmp-name2. CLEAR ls_tmp. ENDLOOP. ENDIF.*&hu CLEAR ls_lein. READ TABLE lt_lein INTO ls_lein WITH KEY lenum = ls_data-exidv . IF sy-subrc = 0. ls_etdata-lgnum = ls_lein-lgnum. ls_etdata-lgtyp = ls_lein-lgtyp. ls_etdata-lgpla = ls_lein-lgpla. ENDIF. CLEAR ls_type. READ TABLE gt_type INTO ls_type WITH KEY zblocktype = ls_data-zblocktype. IF sy-subrc = 0. ls_etdata-blocktype_txt = ls_type-ztype_des. ENDIF. CLEAR ls_eq. READ TABLE lt_eq INTO ls_eq WITH KEY matnr = ls_data-matnr sernr = ls_data-sernr . IF sy-subrc = 0. ls_etdata-lbbsa = ls_eq-lbbsa. ls_etdata-sobkz = ls_eq-sobkz.*&如果 633 没取到 客户,直接取eqbs表里的客户 IF ls_etdata-kunde IS INITIAL AND ls_eq-kunnr IS NOT INITIAL. ls_etdata-kunde = ls_eq-kunnr. CLEAR ls_kna1. READ TABLE lt_kna1 INTO ls_kna1 WITH KEY kunnr = ls_eq-kunnr. IF sy-subrc = 0. ls_etdata-name1 = ls_kna1-name1. ls_etdata-name2 = ls_kna1-name2. ENDIF. CLEAR ls_kna1. ENDIF. CLEAR ls_156. READ TABLE lt_156 INTO ls_156 WITH KEY lbbsa = ls_etdata-lbbsa sobkz = ls_etdata-sobkz. "表T156C中有对应的库存状态的描述,但是它是用字段描述来分辨 CALL FUNCTION 'ZATJ_GX_GET_SOBKZ_TXT' EXPORTING is_data = ls_156 IMPORTING ev_txt = ls_etdata-sobkz_txt TABLES it_table = lt_table. ENDIF. CLEAR lv_txt. lv_value = ls_etdata-zblock. CALL FUNCTION 'DOMAIN_VALUE_GET' EXPORTING i_domname = 'ZD_BLOCK' i_domvalue = lv_value IMPORTING e_ddtext = lv_txt. ls_etdata-status_txt = lv_txt. CALL FUNCTION 'ZATJ_STATUS_MSG_SET' EXPORTING is_data = ls_data IMPORTING ev_msg = ls_etdata-msg. APPEND ls_etdata TO et_data. CLEAR ls_etdata. CLEAR ls_data. ENDLOOP.ENDFUNCTION. 
465b27d3e28749c1016b97cd5b482f9e.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值