LOOP AT s_spec.
update ztqm15
set vcode = s_spec-vcode
user1 = ITAB-USER1
value1 = s_spec-value1
value5 = s_spec-value5
where matnr = itab-plnbez
and aufnr = itab-aufnr
and hogi = s_spec-hogi.
commit work.
ENDLOOP.
위와 같이 주면 s_spec의 레코드가 2건이면 update를 두건 돌아야 하는 것이지요?
그리고 우측의 값이 있는데 위와 같이 하면 테이블에 있던 데이터가 삭제됩니다.
abap에서 update를 잘 해보지 않아 그런데 제가 잘못 처리한게 있나요?
지금 보시면 s_spec-vcode,
s_spec-value1,
s_spec-value5 의 값은 루프를 돌리면서 넣어주셨구요.
ITAB-USER1 는 ITAB 인터널 테이블 헤더의 값을 가져와서 넣으시네요.<-- 고정값
다음으로~
itab-plnbez,
itab-aufnr 또한 고정값으로 되어있고요.
s_spec-hogi <- 요것만 루프를 돌면서 바뀌겠네요.
현재로 제가 드릴수 있는것은 구문이 잘못됐다고 할순 없고요.
테이블의 키값을 잘 염두해보시는게 좋을듯하네요.