본문 바로가기
ERP-SAP/SAP기초사용법

<ABAP> 쉽고 간단하게 배우는 기초 ABAP 06편 (INPUT 화면 만들기, 데이터 입력 스크린 만들기)

by 행복한워니의 기록 2024. 12. 24.
728x90
반응형

비밀댓글로 6편을 바라시는 초보 ABAP 개발자분들이 계셨다...

고맙다. ..
뻘짓하나 했는데.... 그래도 이글을 보고 공부하시는 분들이 계셔서 .. 보람있고 나중에 강좌를 한번 소수정예로 열어보고싶다.^^


암튼 5강에 막 loop if 돌고 별짓을 다했는데....
갑자기 이런생각이 들었다면 미래의 ABAP고수다.

야~ 그럼 데이터 가져오는건 알겠어...
근데 조건값은 어떻게 넣어???
예를들어 5강까지 했던 DB에서 AA항공사만 가져온다 하면 유저들이 입력을 해야할거 아냐~~
그럼 그 화면이 필요할꺼아냐... 그거 HTML로 그려??

아니다.... SAP는 솔루션이기에 코딩만 하면 인풋창이 짠 하고 이쁘게 나온다...

오늘은 그걸 배울꺼다..

놀라지마시라... 너무쉬우니까...

시작.
SAP는 회사코드를 기본적으로 많이 쓴다.
너무많이 쓴다..
그래서 회사코드 Input을 만들어보겠다.

PARAMETERS : P_BUKRS TYPE BUKRS OBLIGATORY DEFAULT '1000'.

이렇게 코딩하고 CTRL+F3 을 해서 ACTIVE 해보자.


실행 F8 하면



만들어졌다.

쉽다.

자 그럼 코드분석해보자.

Parameters : <- 1개짜리 값 넣은거 만들래

그 값 넣는 바구니는 "p_bukrs" 로 이름지을거다?

근데 그 바구니의 속성 type은 bukrs야..
(회사코드 관련 element.. SAP에서 만들어둔 타입이다)

그런데 OBLIGATORY 즉 필수로 무조건 넣게해줘. 안넣으면 진행안되게...

그런데 다들 각자 자기회사에서 쓰는거니 기본값
Default '1000' 을 넣어줘... 1000번 회사코드를 거진 회사에 다니고있는거지.... 각자 자기회사코드 넣음 되...


이런 의미다 ... 저 많은 의미가 1줄로...

자... 그럼 두번째
범위값은 어떻게 넣어??
예를들어 아이폰1부터 아이폰16까지 있는데
조건입력창에 아이폰1~아이폰16까지 다 가져오게해.. 라고 넣을수도 있잖아...
혹은 아이폰1 아이폰4 아이폰8 만 가져와 할수도있고...
아이폰1 / 갤럭시24 할수도있고..

이런 범위(레인지값) 나 여러값을 넣고싶을땐

다른코딩이필요하다.

아래캡쳐의 select-options : 를 따라 코딩해보자



그리고 active(ctrl +f3 앞으로는 active만 쓰겠다.) 하면 에러가난다..

위 캡쳐 맨 아래 빨간라인....
"MARA-MATNR 을 알 수 없다 ...."

무슨말이냐 ..
SELECT-OPTIONS 은 그냥 TYPE 선언이 안되고.
저렇게 FOR를 써야하는데 저 FOR는 어떤 DB에서 어떤필드인지를 알려줘야한다.

지금 코딩창에 MARA 라는 DB가 뭔지 모르니  에러나는거다.

상단에 이걸 써넣어보자.
REPORT ZXXX~~~~ .밑에다가..

TABLES : MARA.

쓰고 ACTIVE.

잘될것이다.

즉, MARA DB에서 MATNR 필드명의 속성값을 가질 입력창이 완성되었다.




우측에 => 요 화살표를 누르면 sigle 값들도 넣을 수 있고. 아이폰 3 아이폰 7 아이폰 15 이렇게..
범위값부터 제외값 등등 모든기능이 다 자동으로 붙는다...

겨우 select options 코딩하나 했는데.....


그럼 parameter와 select option 차이는???

이미 아는거 같다고???
아니.. db조회시 엄청난 차이가 있다.

만약 parameter 값이던 p_bukrs 에 값을 안넣고

db의 where절에 던지면? db는 bukrs필드가 비어있는걸 찾아 가져온다....

select options 값이던 s_matnr에 값을 안넣고
db의 where절에 던지면??
matnr  모든값들을 가져온다.....

엄청난 차이다.. 이 원리를 이용해서

select options를 parameter 모양 같이 쓰기도 한다...  왜? 비어있으면 다가져오고 싶어서....

select options에 코딩을 추가해보자.



No-extention   + no intervals.

확장넣지말고 범위값도 만들지마!!!!!

라고 넣으니...
결과는? paramers와 모양이 같아졌다.


아니 그러면..... 전부다 저렇게 만들면 되자나요..
왜 회사코드는 parameter로 만들어요?


회사코드는 언제 어디서든 필수니까.....
회사코드가 없는 경우는 없으니까.....
그리고 1개값만 쓰니까...
내 기준으로 내 회사꺼만 보니까....


겨우 2가지  코딩 명령어가지고 이만큼 썰을 풀었다.

재미있지???
사실 아직 갈길이 엄청멀다....ㅎㅎㅎ

재미있게 읽었길 바라며...


728x90
반응형