일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- sap
- 자바 클래스
- html
- ABAP
- FPM
- 클래스
- visual studio code
- 파이썬
- module
- BOBF
- ui5
- 알고리즘
- BOPF
- python
- 자바
- tm
- java
- SAP 번역
- 이클립스
- udemy
- 맥북
- Deep Learning
- 백준 알고리즘
- 개발
- Eclipse
- S/4HANA
- Algorithm
- Fiori
- mac
- BTP
Archives
- Today
- Total
z2soo's Blog
배치 특성 값으로 배치 조회 본문
반응형
1. 기본 설정값과 특성값
배치는 기본 설정값(Basic)과 특성값(Classification)을 가진다.
- T-Code : MSC1~3N
- 기본 설정값 : 배치를 생성할 때 입력하는 기본적인 설정값(생성일, 유효기간, 원산지 등)
- 배치 특성값 : 기본적인 설정값과 외, 배치 클래스를 추가적으로 설정한 경우 해당 클래스의 특성값
Basic Data
기본 값은 해당 배치의 생산일, 유효기간, 상태, 원산지 등에 대한 정보로 테이블 MCH1에서 조회 가능하다.
Classification of Batch
Classification 정보는 해당 배치에 배치 클래스가 지정/생성된 경우에만 설정 가능하다. 즉, 필수 값은 아니다.
배치에 Classification을 위한 Class를 생성하려면 T-code: CL01~4에서 관리되는 Class 값을 넣고 생성 버튼을 눌러준다.해당 배치에 Classification을 위한 Class가 생성되면, MCH1-CUOBJ_BM 값이 not initial 이 된다.
( MCHA에도 CUOBJ_BM 값이 있지만 이 값은 Class 생성되어도 is initial )
배치 클래스를 입력해주면 Classification 값을 입력할 수 있는 파트가 보이며, 이 값들은 Class 관리에서 설정 가능하다.
- T-Code : CL01~4
2. 배치 특성으로 배치 조회
Batch classification에 설정된 값인, 배치 특성으로 배치(charg) 값을 찾기 위해서 아래 사항을 참고하여 MCH1, MCHA, AUSP 테이블을 사용한다.
- Basic data(공급업체, 제조일, 만료일, 원산지 등)에 해당하는 정보는 MCH1에 저장됨
- Batch Classification Class 생성된 경우 MCH1-CUOBJ_BM 값이 not initial
- 특성값 중 숫자, 날짜, 시간 타입은 AUSP-ATFLV 에 해당
- 특성값 중 문자 타입은 AUSP-ATWRT 에 해당
- 특성 이름은 AUSP-ATINN에 해당되며, conversion 필요
- 특성값 중 initial 값이 있는 항목 유의
DATA: BEGIN OF lt_cuobj OCCURS 0, #배치번호로 찾은 배치특성번호
matnr TYPE matnr,
cuobj_bm TYPE cuobj,
charg TYPE charg_d,
END OF lt_cuobj.
DATA: BEGIN OF ls_conv_char, #특성필드명 변환
zatinn TYPE atinn,
zch_val TYPE c LENGTH 70,
END OF ls_conv_char.
DATA: lt_conv_char LIKE TABLE OF ls_conv_char.
# 입력받은 배치 특성명은 아래 conversion 하여 lt_conv_char로 넣어줌
CALL FUNCTION 'CONVERSION_EXIT_ATINN_INPUT'
EXPORTING
input = #입력받은 배치특성명
IMPORTING
output = ls_conv_char-zatinn.
# 주어진 조건(특성)에 해당하는 배치, cuobj_bm 조회
SELECT matnr, cuobj_bm, charg
FROM mch1
WHERE #조건: 자재, basic data, 플랜트 등 필요시 mcha와 join하여 활용
AND cuobj_bm IS NOT INITIAL #배치 클래스가 생성된 것만
INTO CORRESPONDING FIELDS OF TABLE @lt_cuobj.
LOOP AT lt_cuobj INTO DATA(ls_cuobj).
lv_idx = sy-tabix.
LOOP AT lt_conv_char INTO ls_conv_char.
SELECT SINGLE atfor #배치특성의 타입 조회
FROM cabn
WHERE atinn = @ls_conv_char-zatinn
INTO @DATA(lv_atfor).
CLEAR: lv_objek.
CASE lv_atfor.
WHEN 'CHAR' OR 'UDEF'.
SELECT SINGLE objek
FROM ausp
WHERE objek = @ls_cuobj-cuobj_bm
AND atinn = @ls_conv_char-zatinn
AND atwrt = @ls_conv_char-zch_val
INTO @lv_objek.
IF sy-subrc <> 0 OR lv_objek IS INITIAL.
DELETE lt_cuobj INDEX lv_idx.
exit.
ENDIF.
WHEN 'NUM' OR 'DATE' OR 'TIME'.
#문자열이 아닌 경우 온점을 비롯한 특수문자 제거.
REPLACE ALL OCCURRENCES OF REGEX '[[:punct:]]'
IN ls_conv_char-zch_val WITH ''.
CALL FUNCTION 'CTCV_CONVERT_DATE_TO_FLOAT'
EXPORTING
date = ls_conv_char-zch_val
IMPORTING
float = lv_float.
SELECT SINGLE objek
FROM ausp
WHERE objek = @ls_cuobj-cuobj_bm
AND atinn = @ls_conv_char-zatinn
#AND atflv = @ls_conv_char-zch_val
AND atflv = @lv_float
INTO @lv_objek.
IF sy-subrc <> 0 OR lv_objek IS INITIAL.
DELETE lt_cuobj INDEX lv_idx.
exit.
ENDIF.
ENDCASE.
ENDLOOP.
ENDLOOP.
# 남은 lt_cuobj의 cuobj_bm 값으로 charg 조회
SELECT matnr, werks, lgort, charg, clabs
FROM mchb #배치별 재고 조회도 원하는 경우
FOR ALL ENTRIES IN @lt_cuobj[]
WHERE charg = @lt_cuobj-charg
INTO CORRESPONDING FIELDS OF TABLE @t_batch[].
SELECT matnr, werks, charg
FROM mcha
FOR ALL ENTRIES IN @lt_cuobj[]
WHERE charg = @lt_cuobj-charg
INTO CORRESPONDING FIELDS OF TABLE @t_batch[].
반응형
'SAP > ABAP' 카테고리의 다른 글
오더의 첨부파일을 메일로 발송 (4) | 2022.12.26 |
---|---|
Batch Classification (배치 특성) 조회 (0) | 2022.04.04 |
자재의 배치 클래스 조회 (0) | 2022.04.01 |
ALV Toolbar 메뉴 타입 버튼 생성 (Drop List) (0) | 2022.03.30 |
Purchase Order 화면 호출 (조회/변경 모드) (0) | 2022.03.30 |
Comments