设为首页收藏本站

SAP Best Business Solution

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2121|回复: 0

read text from memory

[复制链接]

20

主题

21

帖子

164

积分

注册会员

Rank: 2

积分
164
发表于 2016-9-19 17:26:40 | 显示全部楼层 |阅读模式
FORM GET_NEXT_LOT_NUMBER USING    WA_SEQNO LIKE ZSD_LOT_SEQNO
                                  p_seqno
                                  P_CNT
                         CHANGING P_LOT.
  DATA: L_LETTER(26) VALUE 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'.
  DATA: L_SPLIT TYPE C.

* The 6th digit is always Alphabetic starting with
*    the alphabet #A# followed by #B, C, D, E##
* For example: A000# A990, B000-B990# to Z000 # Z990.

  L_SPLIT = L_LETTER+P_CNT(1).
  CONCATENATE 'Z' WA_SEQNO-YEAR1+3(1) WA_SEQNO-WEEK+4(2)
    'R' 'A' p_seqno+1(2) L_SPLIT INTO P_LOT.
ENDFORM.

FORM CHECK_MAXIM_DOCUMENT_REV TABLES PT_VBAP STRUCTURE VBAPVB
                              USING  P_VBAK TYPE VBAK.
  DATA: L_DOCUMENT_REV(50).
  DATA: L_BUILD_SHEET_REV(50).
  DATA: L_TDNAME(20).
  DATA BEGIN OF THEADER.
       INCLUDE STRUCTURE THEAD.
  DATA END OF THEADER.
  DATA: LINES LIKE STANDARD TABLE OF TLINE WITH HEADER LINE.
  DATA: LMEMORY_ID(30) VALUE 'SAPLSTXD'. "do not change
  data: CATALOG LIKE TCATALOG OCCURS 0 WITH HEADER LINE.

  IF P_VBAK-KUNNR = '0000010152' AND
    ( P_VBAK-AUART = 'PROD' OR P_VBAK-AUART = 'SAMP' OR
      P_VBAK-AUART = 'PROT' OR P_VBAK-AUART = 'ENG' OR
      P_VBAK-AUART = 'RUSH' OR P_VBAK-AUART = 'QUAL' OR
      P_VBAK-AUART = 'PREP') AND
    ( SY-TCODE = 'VA01' OR SY-TCODE = 'ZISD100' ).

    LOOP AT PT_VBAP.
      IMPORT CATALOG from MEMORY ID 'SAPLSTXD'.

      CLEAR_BUILD_SHEET_REV, L_DOCUMENT_REV.
      CONCATENATE 'XXXXXXXXXX' PT_VBAP-POSNR INTO L_TDNAME.
      "Special Instructions
      READ TABLE CATALOG WITH KEY TDID = 'Z004'
                                  TDOBJECT = 'VBBP'
                                  TDNAME = L_TDNAME.
      if SY-SUBRC = 0.
        CONCATENATE 'SAPLSTXD' CATALOG-ID INTO LMEMORY_ID.

        REFRESHINES.
        CLEARINES,THEADER.
        IMPORT THEAD TO THEADER
               TLINE TO LINES
               FROM MEMORY ID LMEMORY_ID.
        LOOP AT LINES.
          TRANSLATE LINES-TDLINE TO UPPER CASE.
          SEARCH LINES-TDLINE FOR 'BUILDSHEET AND REV:'.
          IF SY-SUBRC = 0.
             SPLIT LINES-TDLINE  AT ':'
               INTO LINES-TDLINE L_DOCUMENT_REV.
            EXIT.
          ENDIF.
        ENDLOOP.
      endif.
      IF L_DOCUMENT_REV IS NOT INITIAL.
        PERFORM GET_REV_FROM_BUILD_SHEET USING    PT_VBAP-MATNR
                                                  PT_VBAP-WERKS
                                         CHANGING L_BUILD_SHEET_REV.

        IF L_BUILD_SHEET_REV <> L_DOCUMENT_REV.
          MESSAGE E398(00) WITH 'Doc no and revision is different'
                                'between SO and build sheet from Bom'
                                'for SO item' PT_VBAP-POSNR.
        ENDIF.
      ELSE.
        MESSAGE E398(00) WITH 'Please maintain Doc no and revision'
                              'in the SO text Special instructions'
                              'for SO item' PT_VBAP-POSNR.
      ENDIF.
    ENDLOOP.
  ENDIF.
ENDFORM.

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



QQ|Archiver|手机版|小黑屋|www.sapbbs.com    

GMT+8, 2019-4-23 14:50 , Processed in 3.474263 second(s), 27 queries .

声明:本站严禁任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论!

本站内容由网友原创或转载,如果侵犯了您的合法权益,请及时联系处理!© admin@sapbbs.com

快速回复 返回顶部 返回列表