2020년 3월 27일 금요일

[ABAP] Field Catalog 항목

[출처 : http://blog.daum.net/rightvoice/791 ]


FieldName
소속
설명
ROW_POS
ALV 제어: 출력라인 (INTERNAL USE)
COL_POS Display Display되는 Column의 순서
생략시 입력순서대로 표시된다
TABNAME Control ALV의 Output Table의 Name을 넣어준다.
그런데 없어도 상관은 없다.
왜? 어차피 1개의 ALV는 1개의 FieldCatalog를 취하니까.
FIELDNAME Control(필수) ALV의 Output Table의 FieldName을 넣어준다.
여기가 Output Table 과 Catalog가 Match되는 방법이다
F4AVAILABL   필드에 출력도움말 유무점검 오류 : "No input help is available" 발생시
ref_table / ref_field를 Clear하면 된다.
REF_TABLE ABAP Dic(활용) ABAP Dic으로 부터 모든 데이타를 활용하게 설정할경우
(DOMAIN값을 참조할때도 반드시 설정되어 있어야 한다.)
ABAP Dic 참조하기위한 [테이블명]을 넣어준다.
REF_FIELD ABAP Dic(활용) ABAP Dic으로 부터 모든 데이타를 활용하게 설정할경우
(DOMAIN값을 참조할때도 반드시 설정되어 있어야 한다.)
ABAP Dic 참조하기위한 테이블의 [Field명]을 넣어준다.
DOMNAME ABAP Dic(활용) 윗 4개가 일치하지 않는경우,
DOMNAME이 어뚱한 놈을 바라보면 POPUP은 뜨는데 유효성 검사가 어뚱하게 걸리는 현상이 나타난다.
CURRENCY ABAP Dic(참조) 보여주려는 [숫자]의 소속이 [통화금액]인 경우
[고정통화]를 쓰는 경우 통화단위를 넣어준다. ex) [KRW]
CFIELDNAME ABAP Dic(참조) 보여주려는 [숫자]의 소속이 [통화금액]인 경우
[통화]를 가지고 있는 [FieldName]을 넣어준다.
=> [FieldName]이 FieldCatalog의 Member로 등록되어있어야 함.
(만약에 없는경우, [Data]수정시 오류가 발생함. )
QUANTITY ABAP Dic(참조) 보여주려는 [숫자]의 소속이 [단위수량]인 경우
[고정단위]를 쓰는 경우 수량단위를 넣어준다. ex) [Kg]
QFIELDNAME ABAP Dic(참조) 보여주려는 [숫자]의 소속이 [단위수량]인 경우
[단위]를 가지고 있는 [FieldName]을 넣어준다.
=> [FieldName]이 FieldCatalog의 Member로 등록되어있어야 함.
(만약에 없는경우, [Data]수정시 오류가 발생함. )
INTTYPE Control(필수) ABAP 데이타유형 (C,D,N,...)
JUST Display(추천) 화면표시 정렬 ( Left , Center , Right )
OUTPUTLEN Display(추천) 화면표시 문자의 열 너비
Layout-cwidth_opt = 'X' 설정시 무력화 된다.
COLTEXT (40) Display(필수) Column Header의 텍스트(오직 1개의 종류만 표시할때)
   SCRTEXT_L  (40) Display(선택)    Column Header의 텍스트(폭이 넓은경우 표시)
   SCRTEXT_M (20) Display(선택)    Column Header의 텍스트(폭이 중간인 경우 표시)
   SCRTEXT_S (10) Display(선택)    Column Header의 텍스트(폭이 좁은경우 표시)
   TOOLTIP(40) Display(선택) Column의 말풍선
NO_OUT Display(Variant설정) 초기화면 조회시에는 보이지 않도록
Variant설정시에는 Layout설정에 나타난다.
  TECH Display(Variant설정) 화면에서 아예 보이지 않는다.
HOTSPOT Display(선택)/Event연동 웹브라우저의 HyperLink처럼 동작하게 한다. Click Event처리
EDIT
(가장 중요한 설정항목중 하나임)
Display(편집) 해당 Field에 대해서 편집설정을 나타낸다.
Layout-edit = 'X' 설정시 무력화 된다.(하위개념임)
그밑에 Cell-Style의 Enable/Disable이 있음
CHECKBOX Display(편집) 체크박스로 보여준다.
DRDN_HNDL Display(편집) Dropdown List Handle/ 정수값을 입력해 주어야 한다
1개의 Field는 1개의 Dropdown List만을 보여줄때 사용
   DRDN_FIELD Display(편집) Dropdown List Field/ FieldName을 입력해 주어야 한다
1개의 Field는 다수의 Dropdown List를 보여줄수 있다.
   DRDN_ALIAS Display(편집) Dropdown List Handle( X 설정요망 )
User에게 코드를 보여주면 가독성이 떨어진다.
따라서 [코드:설명]이렇게 보여주기 원할때 사용한다
CHECKTABLE Display(편집) ABAP Dic에 의해 CheckTable이 설정되면 자동으로 F4활성
유효성 검사등이 수행된다.
이때 이값에 "!"을 넣어주면 임의편집을 가능하게할수있다
KEY Control(선택) 키필드로 선택(배경색이 자동으로 파랑색, Key역활을 시작함)
1. 필수 입력사항이다.
2. 한번 입력된 내용은 수정될 수 없다.
3. Key Value는 Unique해야 한다.
   KEY_SEL Control(선택) KEY로 설정한후 화면상의 Display하지않음, Variant에도 안나옴
FIX_COLUMN Control(선택) Column고정.  Hsplit 기능을 사용할 때 사용한다.
ROUND Display(숫자) 보여주려는 [숫자]의 소수점을 주어진 round 수만큼
좌측이로 이동한다.
결과숫치 =  기존숫자 / (10^(round) ) 의 역활을 한다.
숫치입력시 자동으로 나누기가 시행되므로 사용에 주의할것
Ex) 100.00 [Round = 2] => 1.00
NO_SIGN Display(숫자) 보여주려는 [숫자]의 부호를 표시하지 않는다.
NO_ZERO Display(숫자) 보여주려는 [숫자]가 0인경우 표시하지 않는다 [숫자]의 소속이 [통화금액][단위수량]인경우 자동으로 설정
DECIMALS_O Display(숫자) 보여주려는 [숫자]의 소숫점 자리수 설정. Decimals 설정을 같이 늘려주지 않으면 입력오류가 발생됨
   DECIMALS Display(숫자) 입력되는 [숫자]의 소숫점 자리수 설정.
LZERO Display(숫자) Data Type : N , ABAP Type : Numeric
문자형 숫자이므로 앞쪽에 빈공간에 "0"을 채워준다.
DO_SUM Display(숫자)/Sort연동 set_table_for_first_display
의 Sort설정이 되었을경우 중간합을 보여준다.
'X' 설정시 [총합]
'C' 설정시 [평균]을 보여준다.
EXPONENT
ALV 제어: 부동표현에 대한 지수
ICON Display(문자) 아이콘으로 출력할때
SYMBOL Display(문자) ALV 제어: 기호로 출력
EDIT_MASK Display(문자) 화면 Display시 편집마스크. Ex) "____/__/__"
EMPHASIZE Display(강조) Column(Field)를 시스템이 지정한 색상으로 강조한다
= 'C600' (개발자가 색상지정), = 'X' (시스템이 색상지정)
NO_SUM
ALV 제어: 열값에 관한 집합처리없음
TECH
ALV 컨트롤: 기술적 필드
CONVEXIT   변환루틴( Domain에 Exit가 걸린경우 해당정보를 제공한다 )
SELTEXT
ALV 제어: 다이얼로그 기능에 대한 열식별자
NO_CONVEXT
ALV 제어: 화면 Display시 변환종료를 고려하지 마십시오
ROLLNAME   ALV 제어: F1 도움말의 데이터 요소
Elment의 이름을 넣어주면된다. [Dynamic itab]이 설정기준이 된다.
DATATYPE   ABAP Dictionary 데이타유형
INTLEN   내부길이 (바이트단위)
LOWERCASE
소문자 사용/금지
REPTEXT
헤딩
HIER_LEVEL
ALV 컨트롤: 내부 사용
REPREP
ALV 컨트롤: 값은 rep./rep.intf에 대한 선택 기준입니다.
DOMNAME
도메인이름
SP_GROUP
그룹 키
DFIELDNAME
ALV 제어: 데이터베이스의 열 그룹에 대한 필드 이름
COL_ID
ALV 제어: 열 ID
AUTO_VALUE
ALV 제어: 자동값복사
VALEXI
고정값 존재
WEB_FIELD
ALV 제어: 내부 테이블 필드의 필드 이름
HREF_HNDL
정수
STYLE
ALV 제어: 스타일
STYLE2
ALV 제어: 스타일
STYLE3
ALV 제어: 스타일
STYLE4
ALV 제어: 스타일
DRDN_FIELD
ALV 제어: 내부 테이블 필드의 필드 이름
NO_MERGING
문자 필드 길이 1
H_FTYPE
ALV 트리 제어: 기능유형 (합계, 평균, 최대, 최소, ...)
COL_OPT
선택 열 최적화 엔트리
NO_INIT_CH
문자 필드 길이 1
TXT_FIELD
ALV 제어: 내부 테이블 필드의 필드 이름
ROUNDFIELD
ALV 제어: ROUND 사양을 가진 필드이름
DECMLFIELD
ALV 제어: DECIMALS 사양을 가진 필드이름
DD_OUTLEN
ALV 제어: 문자의 출력길이
COLDDICTXT
ALV 제어: DDIC 텍스트 참조 결정
SELDDICTXT
ALV 제어: DDIC 텍스트 참조 결정
TIPDDICTXT
ALV 제어: DDIC 텍스트 참조 결정



TECH_COL
ALV 컨트롤: 내부 사용
TECH_FORM
ALV 컨트롤: 내부 사용
TECH_COMP
ALV 컨트롤: 내부 사용
HIER_CPOS
ALV 제어: 계층구조적 열위치
H_COL_KEY
트리 컨트롤: 열 이름/항목 이름
H_SELECT
트리제어의 열을 선택할 수 있는지의 여부 지시
DD_ROLL
Data element (의미도메인)
DRAGDROPID
ALV 제어: 끌어옮기기 오브젝트에 대한 끌어옮기기 조정
MAC
문자 필드 길이 1
INDX_FIELD
정수
INDX_CFIEL
정수
INDX_QFIEL
정수
INDX_IFIEL
정수
INDX_ROUND
정수
INDX_DECML
정수
GET_STYLE
문자 필드 길이 1
MARK
문자 필드 길이 1

2019년 10월 23일 수요일

[ABAP] Smartforms 출력 옵션 및 PDF 출력 및 이메일 첨부 발송하기

  DATA : TAB_OTF_FINAL      TYPE ITCOO OCCURS 0 WITH HEADER LINE,
         CONTORL_PARAMETERS TYPE SSFCTRLOP,
         OUTPUT_OPTIONS     TYPE SSFCOMPOP,
         TAB_OTF_DATA       TYPE SSFCRESCL,
         LV_CNT             TYPE I,
         FILE_SIZE          TYPE I,
         ARC_IDX            LIKE TOA_DARA,
         FILE_NAME          TYPE STRING VALUE 'TEST',
         DOCTAB             LIKE DOCS OCCURS 1 WITH HEADER LINE,
         PDF_TAB            LIKE TLINE OCCURS 0 WITH HEADER LINE.

  data : GT_OBJBIN   LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE,
       
        L_TXT(1000),
               I TYPE I.

    DESCRIBE TABLE ITAB LINES LV_CNT.

  LOOP AT ITAB.
    CONTORL_PARAMETERS-NO_DIALOG = 'X'.  "인쇄출력팝업 표시여부
    CONTORL_PARAMETERS-PREVIEW   = SPACE."미리보기 기능
    CONTORL_PARAMETERS-GETOTF    = 'X'.  "PDF출력시 X
    CONTORL_PARAMETERS-LANGU     = 'D'.  "Language key
* "복수 페이지 출력시 조정 옵션
* "첫페이지 NO_OPEN   = ' ' / NO_CLOSE  = 'X'
* "중간페이지 NO_OPEN   = 'X' / NO_CLOSE  = 'X'
* "마지막페이지  NO_OPEN   = 'X' / NO_CLOSE  = ' '   
* "한페이지일 경우 NO_OPEN   = ' ' / NO_CLOSE  = ' '
    CONTORL_PARAMETERS-NO_OPEN   = ' '.  
    CONTORL_PARAMETERS-NO_CLOSE  = ' '.    
   
    OUTPUT_OPTIONS-TDNOPREV      = 'X'.  "미리보기버튼 비활성
    OUTPUT_OPTIONS-TDIMMED       = 'X'.  "Print Immediately (Print Parameters)
    OUTPUT_OPTIONS-TDDEST        = 'LOCL'. "Spool: Output device
    ...
   
    IF LV_CNT NE 1.
      CONTORL_PARAMETERS-NO_OPEN   = 'X'.
      CONTORL_PARAMETERS-NO_CLOSE  = 'X'.
      AT FIRST.
        CONTORL_PARAMETERS-NO_OPEN   = SPACE.
        CONTORL_PARAMETERS-NO_CLOSE  = 'X'.
      ENDAT.
      AT LAST.
        CONTORL_PARAMETERS-NO_OPEN   = 'X'.
        CONTORL_PARAMETERS-NO_CLOSE  = SPACE.
      ENDAT.      
    ENDIF.
   
    CALL FUNCTION FUNCTION
      EXPORTING
        CONTROL_PARAMETERS = CONTORL_PARAMETERS
        OUTPUT_OPTIONS     = OUTPUT_OPTIONS
        GS_HEAD            = LS_HEAD
      IMPORTING
        JOB_OUTPUT_INFO    = TAB_OTF_DATA
      TABLES
        ITEM               = LT_ITEM
        TEXT               = LT_TEXT
      EXCEPTIONS
        FORMATTING_ERROR   = 1
        INTERNAL_ERROR     = 2
        SEND_ERROR         = 3
        USER_CANCELED      = 4.
   ...
   ENDLOOP.
  
*  "PDF 전환시 TAB_OTF_DATA를 받아 포맷 변경한다.
    CLEAR: TAB_OTF_FINAL[], FILE_SIZE, PDF_TAB[].
    TAB_OTF_FINAL[] = TAB_OTF_DATA-OTFDATA[].
   
    CALL FUNCTION 'CONVERT_OTF_2_PDF'
     EXPORTING
*       USE_OTF_MC_CMD               = 'X'
       ARCHIVE_INDEX                 = ARC_IDX
     IMPORTING
       BIN_FILESIZE                  =  FILE_SIZE
      TABLES
        OTF                          = TAB_OTF_DATA-OTFDATA
        DOCTAB_ARCHIVE               = DOCTAB
        LINES                        = PDF_TAB
     EXCEPTIONS
       ERR_CONV_NOT_POSSIBLE        = 1
       ERR_OTF_MC_NOENDMARKER       = 2
       OTHERS                       = 3.

    DATA: I TYPE I,
          N TYPE I,
          L_TXT(1000),
          LV_LINES LIKE SY-TABIX,
          S_MAIL_H   LIKE SODOCCHGI1,
          T_OBJBIN   LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE,
          T_OBJCON   LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE,
          T_OBJPACK  LIKE SOPCKLSTI1 OCCURS 2 WITH HEADER LINE,
          T_RECEIVER LIKE SOMLRECI1 OCCURS 0 WITH HEADER LINE,
          V_DOC_SIZE LIKE SY-TABIX..

* Convert pdf(134) to binary(255) file.
    LOOP AT PDF_TAB.
      L_TXT+I = PDF_TAB.
      ADD 134 TO I.
      IF I >= 255.
        GT_OBJBIN = L_TXT.
        APPEND GT_OBJBIN.
        SUBTRACT 255 FROM I.
        L_TXT = L_TXT+255.
      ENDIF.
    ENDLOOP.
    IF I <> 0.
      GT_OBJBIN = L_TXT.
      APPEND GT_OBJBIN.
    ENDIF.

* "PDF 파일 출력시    
    CALL FUNCTION 'GUI_DOWNLOAD'
        EXPORTING
          BIN_FILESIZE                    = FILE_SIZE
          FILENAME                        = FILE_NAME
          FILETYPE                        = 'BIN'
        TABLES
          DATA_TAB                        = PDF_TAB
       EXCEPTIONS
         FILE_WRITE_ERROR                = 1
         NO_BATCH                        = 2
         GUI_REFUSE_FILETRANSFER         = 3
         INVALID_TYPE                    = 4
         NO_AUTHORITY                    = 5
         UNKNOWN_ERROR                   = 6
         HEADER_NOT_ALLOWED              = 7
         SEPARATOR_NOT_ALLOWED           = 8
         FILESIZE_NOT_ALLOWED            = 9
         HEADER_TOO_LONG                 = 10
         DP_ERROR_CREATE                 = 11
         DP_ERROR_SEND                   = 12
         DP_ERROR_WRITE                  = 13
         UNKNOWN_DP_ERROR                = 14
         ACCESS_DENIED                   = 15
         DP_OUT_OF_MEMORY                = 16
         DISK_FULL                       = 17
         DP_TIMEOUT                      = 18
         FILE_NOT_FOUND                  = 19
         DATAPROVIDER_EXCEPTION          = 20
         CONTROL_FLUSH_ERROR             = 21
         OTHERS                          = 22.
   
* "PDF 파일을 첨부한 이메일로 보내기
 
    DATA : T_RECEIVER LIKE SOMLRECI1 OCCURS 0 WITH HEADER LINE,
           T_OBJCON   LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE.

*  "수신자 정보(발신자는 SAP ID 설정값임)
    T_RECEIVER-RECEIVER   =  'abc@xxx.com'. 
    T_RECEIVER-REC_TYPE   =  'U'.
    T_RECEIVER-EXPRESS    =  'X'.
    APPEND T_RECEIVER. CLEAR T_RECEIVER.
   
*   "메일 본문 내용
    T_OBJCON-LINE = '메일 본문입니다.'.
    APPEND T_OBJCON. CLEAR T_OBJCON.
    APPEND T_OBJCON.
    GT_OBJCON-LINE = '메일 본문 2라인입니다.'.
    APPEND T_OBJCON. CLEAR T_OBJCON.
   
    DESCRIBE TABLE T_OBJCON LINES LV_LINES.
   
*& 메일 HEADER
    CLEAR : L_TXT.

    L_txt = '제목'.
    S_MAIL_H-OBJ_NAME     =  'MESSAGE'.
    S_MAIL_H-OBJ_DESCR    =  L_TXT.
    S_MAIL_H-OBJ_LANGU    =  'E'.
    S_MAIL_H-SENSITIVTY   =  'O'.
    "'O' : Standard 'P': Confidential
    S_MAIL_H-OBJ_PRIO     =  '1'.
    S_MAIL_H-NO_CHANGE    =  'X'.
    S_MAIL_H-PRIORITY     =  '1'.
*  gs_head-doc_size = gv_lines * 255.

    T_OBJPACK-HEAD_START = 1.
    T_OBJPACK-HEAD_NUM = 0.
    T_OBJPACK-BODY_START = 1.
    T_OBJPACK-BODY_NUM = LV_LINES.
    T_OBJPACK-DOC_TYPE = 'RAW'.

    APPEND T_OBJPACK. CLEAR T_OBJPACK.

*& 메일 첨부파일에 관련된 사항을 내용을 추가
    DESCRIBE TABLE GT_OBJBIN LINES LV_LINES.
    T_OBJPACK-TRANSF_BIN = 'X'.
    T_OBJPACK-HEAD_START = 1.
    T_OBJPACK-HEAD_NUM = 1.
    T_OBJPACK-BODY_START = 1.
    T_OBJPACK-BODY_NUM = LV_LINES.
    T_OBJPACK-DOC_TYPE = 'PDF'.
    T_OBJPACK-OBJ_NAME = 'Attachment'.
*    GT_OBJPACK-OBJ_DESCR = 'ATT_SMART'.
    T_OBJPACK-OBJ_DESCR = FILE_NAME .   "첨부파일 제목

    READ TABLE T_OBJBIN INDEX LV_LINES.

    V_DOC_SIZE = LV_LINES * 255.

*  "SIZE = ( LINES - 1 ) * 255 + STRLEN( T_OBJBIN ).
    T_OBJPACK-DOC_SIZE = V_DOC_SIZE.

    APPEND T_OBJPACK. CLEAR T_OBJPACK.

*  "메일을 전송
    CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
      EXPORTING
        DOCUMENT_DATA              = S_MAIL_H     
        PUT_IN_OUTBOX              = 'X'
        COMMIT_WORK                = 'X'
      TABLES
        PACKING_LIST               = T_OBJPACK
        CONTENTS_BIN               = T_OBJBIN  
        CONTENTS_TXT               = T_OBJCON  
        RECEIVERS                  = T_RECEIVER
      EXCEPTIONS
        TOO_MANY_RECEIVERS         = 1
        DOCUMENT_NOT_SENT          = 2
        DOCUMENT_TYPE_NOT_EXIST    = 3
        OPERATION_NO_AUTHORIZATION = 4
        PARAMETER_ERROR            = 5
        X_ERROR                    = 6
        ENQUEUE_ERROR              = 7
        OTHERS                     = 8.

 
     SUBMIT RSCONN01 WITH MODE = 'INT'
                     AND RETURN.
 

2019년 10월 16일 수요일

SAP상의 화면 레이아웃 변경 방법

[ 참조 : https://answers.sap.com/ ]

* MIRO상의 Invoice item의 필드 순서 변경하기
* Tcode OLMRLIST 실행 후 아래와 같이 입력한 후 생성
 MIRO가 실행되면 일자를 등록하고 아래 Invoice item 필드 순서를 조정하고 엔터를 입력






















팝업이 나오고 이때 Adopt colum sequence를 체크 처리함(필수)















Description을 입력하고 저장을 하면 MIRO 해당 Layout을 사용할 수 있음.

2019년 9월 23일 월요일

[Linux] awk와 sed 사용법

[ 출처 :  https://www.thinkit.or.kr/ ]

* awk : 일정한 형식의 문서의 데이터를 추출함.
 # cat /var/log/maillog | grep LOGIN | awk '{print $1,$2,$3,$7,$9}'
 - 원본의 $?번째 문자열을 골라 추출
Sep 22 14:38:27 ns1 postfix/submission/smtpd[389]: 69D87174012A: client=unknown[xx.xx.xx.xx], sasl_method=LOGIN, sasl_username=xx@xx.xx
 - 결과
Sep 22 14:38:27 client=unknown[xx.xx.xx.xx] sasl_username=xx@xx.xx

 # cat /var/log/maillog | grep LOGIN | awk '{print $9}'| awk '{arr[$1]+=1} END {for (i in arr) {print i "\t" ":" arr[i]}}'
  - 결과
 sasl_username=xx@xx.xx : 1

* sed : 입력 문자열을 변경 처리한다.
 - 이메일 로그상의 이메일 주소만 추출
 # cat /var/log/maillog | grep LOGIN | awk '{print $9}' | sed 's/sasl_username=//g'
 - 결과
  xx@xx.xx

두개를 합산하여 이메일 계정별 로그인 횟수 계산
# cat /var/log/maillog | grep LOGIN | awk '{print $9}'| sed 's/sasl_username=//g' | awk '{print $5}'| awk '{arr[$1]+=1} END {for (i in arr) {print i "\t" ":" arr[i]}}'
 - 결과
  xx@xx.xx : 5
  xx@xx.xx : 1

 

** 이메일 로그상의 특정 문자 추출하여 비교대상 비교하기(처리번호추출)

May  9 03:22:45 ns1 postfix/qmgr[8151]: 763721740172: from=<xx@xx.com>

# /var/log/maillog* | grep "postfix/qmgr" |grep "from=<xx@xxx.com" | awk '{print $6}' | sed 's/.$//'  > 1.txt

값 비교하여 거부(reject)된 대상만 보기

# grep  -f 1.txt /var/log/maillog | grep "reject" 


** 특정일에 SSHD 로그인 시도 IP별로 횟수 확인 하기

# cat /var/log/secure | grep "Feb 24"| grep "rhost=" | awk '{print $14}'|tr -d "rhost=" |sort |uniq -c

 

2019년 9월 18일 수요일

[ABAP] MRP 소요량 구하기 함수

DATA : LT_LINES LIKE BAPI_MRP_IND_LINES OCCURS 0 WITH HEADER LINE,
        LV_REQTY TYPE MENGE_D.

REFRESH LT_LINES.  

CALL FUNCTION 'BAPI_MATERIAL_STOCK_REQ_LIST'
  EXPORTING
    MATERIAL      = LV_MATNR
    PLANT         = LV_WERKS
    MRP_AREA      = LV_BERID
  TABLES
    MRP_IND_LINES = LT_LINES.

CLEAR LV_QTY.
LOOP AT LT_LINES WHERE FINISH_DATE IN S_BDTER
                   AND FINISH_DATE IS NOT INITIAL
                   AND PLNGSEGNO IS INITIAL.
  LV_QTY = LV_QTY + LT_LINES-REC_REQD_QTY.
ENDLOOP.