위의 파일과 같이 A~H 필드까지는 항상 값을 가져야되지만 노란색 필드는 값 유무가 변합니다.
예를 들어 A~H 필드는 값을 가지고 있어서(엑셀파일의 인터널 테이블 : GT_DISP )
LOOP AT GT_DISP.
BDC 실행
ENDLOOP.
으로 끝날 수 있지만 노란색 필드는 ( 발주로트 발주금액 ) (발주로트1 발주금액 1) ......
으로 이루어져 있어 발주로트3이 있으면 이전의 발주로트 발주금액 ..... 발주로트2 발주금액2 가 반드시 있어야 합니다.
이 부분의 레코딩 부분을 보여드리면 다음과 같습니다.
SAPMV13A 0303 X
BDC_CURSOR KONM-KBETR(03)
BDC_OKCODE /00
RV13A-DATAB 2008/11/03
RV13A-DATBI 9999/12/31
KONM-KSTBM(01) 0 " 발주로트1(반드시 0 이어야 한다)
KONM-KSTBM(02) 501 "발주 로트2
KONM-KSTBM(03) 1001 "발주로트3
KONM-KBETR(02) 15000 "발주금액2 (발주금액1은 다른 screen에서처리)
KONM-KBETR(03) 10000 "발주금액3
입니다.
그리고 A,B 필드 는 키값입니다. 어떻게 해결할 지 몰라 질문드립니다.
그럼 수고하세요.꾸벅~~
댓글 5
-
無念군
2008.11.07 04:02
SHDB 로 레코딩을 떠 보시길.. +_+ 추천 드려요 .. -
열심히
2008.11.07 17:37
레코디을 못떠서가 아닌데요 ㅜㅜ 제가 설명을 장황하게 해서 ...
-
띵호아빠
2008.11.07 18:02
"발주로트3이 있으면 이전의 발주로트 발주금액 ..... 발주로트2 발주금액2 가 반드시 있어야 합니다." 이부분에서
데이타를 읽거나, 이미 가진게 있다면 Logic 처리가 필요할것 같은데요??
-
열심히
2008.11.07 19:13
그런데 이 부분의 처리를 잘 몰라서여.
1 레코드는 a~h 발주로트1 발주금액1
2 레코드는 a~h 발주로트1 발주금액1 발주로트2 발주금액2 발주로트3 발주금액3
3 레코드는 a~h 발주로트1 발주금액1 발주로트2 발주금액2
..
..
이렇게 변할 수 있습니다.
발주로트1 발주금액1 발주로트2 발주금액2 발주로트3 발주금액3 까지 입력하여 레코딩을 떠 보면 위의 질문과 같이 떠 집니다.
어떻게 고정필드 값을 가지는 부분과 필드 값 유무가 변화는 부분을 같이 bdc 처리할 수 있는 방법이 없을가요...
-
無念군
2008.11.08 06:10
A~H 까지는 고정 ..
H~이후 랜덤..
전혀 문제가 없는 데이터란 가정하에서 1-2-3, 1-2, 1, 1-2-3-4, 1-2 머 이런 순으로
단순 무식하게 막고 한번 품어 드리겠습니다..
무식한 방법이 때론 최선책일때도 있습니다 ..물론, Logic 엉망이고 performance 떨어 질수 있습니다..
하지만 그런거 보다 문제를 이해 하고 어떻게 풀것이냐가 먼저라 생각합니다..
---시작합니다. 문제의 BDC.
loop at GT_DISP .
A~H 까지는 고정이니 순차로 내려 가면 되실듯 하고 ..
SAPMV13A 0303 X
BDC_CURSOR KONM-KBETR(03)
BDC_OKCODE /00
RV13A-DATAB 2008/11/03
RV13A-DATBI 9999/12/31
문제는 몇번 반복을 해야 되느냐??
그건 저두 모르죠 .. 들어온 데이터에 따라서 틀릴수 있으니 ..
if 1 is not initial.
if 2 is not initial.
if 3 is not initial.
if 4 is not initial .
.
.
. " EXCEL 필드수가 100개면 100번 하시면 됩니다 +_+ㅋ
.
else.
"----------- 반복 횟수 3회 ..
KONM-KSTBM(03)
KONM-KBETR(03)
endif.
else.
"----------- 반복 횟수 2회 ..
KONM-KSTBM(02)
KONM-KBETR(02)
endif
else.
"----------- 반복 횟수 1회 ..
KONM-KSTBM(01)
KONM-KBETR(01)
endif.
else.
"----------------------DATA ERROR--1번 데이터 없음..
" 발주금액,발주로트 없이 이런경우 BDC를 타야할 이유가 없죠?? "
endif.
end loop.
삽질이 싫으시면 field-symble을 이용해서 해보시길.. 가능할거 같은데요 ..
필드 명도.. 추천 드립니다..
http://e-abap.servebbs.net/zb/bbs/zboard.php?id=ONEPAPER&no=162
.