첨부된 그림 처럼 검사 계획을 등록하는 BDC를 작성 중입니다.
근데 그림 처럼 리스트에는 130 , 즉 13개만 리스트가 나와 있는데 저희는 16개 이상의 검사 계획도 올려야
하거던요.
증상은 13개만 등록이 되고 14개째는 "~~140이 없습니다." 라는 경고 문구가 나옵니다.
관련 게시글들을 찾아 보니 P+ 등,,을 사용을 해보라고 되어 있는데
안먹히더라구요.
이틀째 고민 중입니다.
고수님들의 조언을 기다립니다.
댓글 6
-
열공아밥
2008.10.22 00:19
-
궁그미
2008.10.22 02:04
흠....안되는데요...
제가 잘못 한건가요?
-
보나
2008.10.22 02:19
BDC 프로그램중 오더,검수 등과 같이 위화면처럼 라인아템을 N건 이상 넣어야 하는 경우에는,
한번에 N건을 좌악~ 넣는 것이 아니라,
(말씀처럼 16건 이상의 데이터가 들어가기 힘드니까요)
1건씩을 N번 만큼 반복되게 BDC 를 떠야 합니다.
지금 금융권사이트플젝이라 자재마스터등이 없어 QP01 트랜잭션화면을 수행할 수는 없지만,
화면으로 예상컨데 -_-;;;
2번쨰 줄에 (BDC 코드로는 'xxxx(02)' 같은 값일듯;;) 1번째 데이터를 넣은 후,
화면에서 3번째버튼( 신규엔트리?) 을 누릅니다 (OK_CODE 값 기억)
그리고 다시
2번째 줄에 2번째 데이터를 넣은후....화면에서 3번째버튼( 신규엔트리?) 을 누릅니다 (OK_CODE 값 기억)
3번째.... 이런식으로 한 후 마지막 데이터를 넣은 다음 SAVE~
이런식으로 BDC를 구성해보세요;;;;
-
궁그미
2008.10.22 03:47
답변 감사합니다.
근데 보나 님의 말씀대로 했는데 "+" 버튼을 눌러 추가를 하니까 010 다음에 새로운 Row 가 추가 되는 것이 아니라
010전에 "2" , "4" ," 6" ...이렇게 생깁니다.
그리고 "8"까지 추가를 하고 나니
"삽입간격이 0002 보다 작아야 합니다." 라고만 나옵니다...
흠......이건 안되는 건가요?
-
열공아밥
2008.10.22 04:10
저희쪽 검사계획 생성하는 bdc 입니다.
FORM make_bdc_data.
DATA: l_verwe_f, "용도
l_VORNR_f, "작업번호
l_group_cnt(2) TYPE n,
l_act_cnt(1) TYPE n.
MOVE sy-datum TO g_sysdate.
LOOP AT it_data.
if it_data-objdt is initial or it_data-objdt eq ' '.
it_data-objdt = sy-datum.
endif.
MOVE-CORRESPONDING it_data TO it_work.
APPEND it_work.
AT END OF werks.
CLEAR: l_group_cnt.
LOOP AT it_work.
CLEAR: l_verwe_f, l_VORNR_f.
* < 용도 >
AT NEW verwe.
l_verwe_f = 'X'.
ENDAT.
IF l_verwe_f EQ 'X'.
PERFORM store_bdcdata USING:
'X' 'SAPLCPDI' '8010',
' ' 'BDC_OKCODE' '=ALUE',
' ' 'RC27M-MATNR' it_work-matnr,
' ' 'RC27M-WERKS' it_work-werks,
' ' 'RC271-STTAG' it_work-objdt.
* l_group_cnt = l_group_cnt + 1.
PERFORM store_bdcdata USING:
'X' 'SAPLCPDI' '1200',
' ' 'BDC_OKCODE' '=ANLG'. "신규엔트리
PERFORM store_bdcdata USING:
'X' 'SAPLCPDA' '1200',
' ' 'BDC_OKCODE' '=VOUE',
* ' ' 'PLKOD-PLNAL' l_group_cnt, "그룹카운터
' ' 'PLKOD-KTEXT' it_work-ktext, "내역
' ' 'PLKOD-VERWE' it_work-verwe, "용도
' ' 'PLKOD-STATU' it_work-statu, "상태
' ' 'PLKOD-LOSVN' it_work-losvn, "최소로트크기
' ' 'PLKOD-SLWBEZ' it_work-slwbez, "검사포인트
' ' 'PLKOD-QDYNHEAD' it_work-qdynhead, "동적수정레벨
' ' 'PLKOD-QDYNREGEL' it_work-qdynregel. "동적수정규칙
* < 작업번호 >
CLEAR: l_act_cnt.
PERFORM store_bdcdata USING:
'X' 'SAPLCPDI' '1400',
' ' 'BDC_OKCODE' '=QMUE',
' ' 'RC27X-FLG_SEL(01)' 'X',
' ' 'PLPOD-VORNR(01)' it_work-VORNR, "작업번호
' ' 'PLPOD-ARBPL(01)' it_work-arbpl, "작업장
' ' 'PLPOD-STEUS(01)' it_work-steus,
' ' 'PLPOD-LTXA1(01)' it_work-ltxa1,
' ' 'PLPOD-VGW02(01)' it_work-vgw02, "기계시간
' ' 'PLPOD-VGW03(01)' it_work-vgw03. "노동시간
ENDIF.
AT NEW VORNR.
l_VORNR_f = 'X'.
ENDAT.
* < 작업번호 >
IF l_verwe_f IS INITIAL AND
l_VORNR_f EQ 'X'.
l_act_cnt = l_act_cnt + 1.
PERFORM store_bdcdata USING:
'X' 'SAPLCPDI' '1400',
' ' 'BDC_OKCODE' '/00',
' ' 'RC27X-ENTRY_ACT' l_act_cnt.
PERFORM store_bdcdata USING:
'X' 'SAPLCPDI' '1400',
' ' 'BDC_OKCODE' '=QMUE',
' ' 'RC27X-FLG_SEL(01)' '',
' ' 'RC27X-FLG_SEL(02)' 'X',
' ' 'PLPOD-VORNR(02)' it_work-VORNR, "작업번호
' ' 'PLPOD-ARBPL(02)' it_work-arbpl, "작업장
' ' 'PLPOD-STEUS(02)' it_work-steus,
' ' 'PLPOD-LTXA1(02)' it_work-ltxa1,
' ' 'PLPOD-VGW02(02)' it_work-vgw02, "기계시간
' ' 'PLPOD-VGW03(02)' it_work-vgw03. "노동시간
ENDIF.
* < 검사특성 >
PERFORM store_bdcdata USING:
'X' 'SAPLQPAA' '0150',
' ' 'BDC_OKCODE' '=QMEF',
' ' 'RQPAS-ENTRY_ACT' '1'.
PERFORM store_bdcdata USING:
'X' 'SAPLQPAA' '0150',
' ' 'BDC_CURSOR' 'PLMKB-SPCKRIT(01)',
' ' 'BDC_OKCODE' '=QMUW',
' ' 'PLMKB-MERKNR(01)' it_work-merknr, "특성번호
* 마스터검사
' ' 'PLMKB-VERWMERKM(01)' it_work-verwmerkm, "특성
' ' 'PLMKB-QPMK_WERKS(01)' it_work-qpmk_werks, "플랜트
' ' 'PLMKB-MKVERSION(01)' it_work-mkversion, "버젼
* 검사방법
' ' 'PLMKB-PMETHODE(01)' it_work-pmethode, "번호
' ' 'PLMKB-QMTB_WERKS(01)' it_work-qmtb_werks, "플랜트
' ' 'PLMKB-PMTVERSION(01)' it_work-pmtversion, "버젼
*
' ' 'PLMKB-STICHPRVER(01)' it_work-stichprver, "표본추출절차
' ' 'PLMKB-PROBEMGEH(01)' it_work-probemgeh, "표본단위
' ' 'PLMKB-PRUEFEINH(01)' it_work-pruefeinh, "기준표본수량
' ' 'PLMKB-SPCKRIT(01)' it_work-spckrit, "SPC기준
' ' 'PLMKB-QDYNREGEL(01)' it_work-qdynregel2. "수정규칙
PERFORM store_bdcdata USING:
'X' 'SAPLQPAA' '1501',
' ' 'BDC_OKCODE' '=ENT1'.
IF NOT it_work-formel1 IS INITIAL.
PERFORM store_bdcdata USING:
'X' 'SAPLQPAA' '1522',
' ' 'BDC_OKCODE' 'ENT1',
' ' 'PLMKB-FORMELSL' 'X',
' ' 'PLMKB-FORMEL1' it_work-formel1. "계산식
ENDIF.
* 작업번호별 검사특성 종료
AT END OF arbpl.
PERFORM store_bdcdata USING:
'X' 'SAPLQPAA' '0150',
' ' 'BDC_OKCODE' '=QMBW'.
ENDAT.
* 용도별 작업번호 종료
AT END OF verwe.
PERFORM store_bdcdata USING:
'X' 'SAPLCPDI' '1400',
' ' 'BDC_OKCODE' '=BACK'.
PERFORM store_bdcdata USING:
'X' 'SAPLCPDA' '1200',
' ' 'BDC_OKCODE' '=BACK'.
PERFORM store_bdcdata USING:
'X' 'SAPLCPDI' '1200',
' ' 'BDC_OKCODE' '=BU'.
PERFORM bdc_transaction USING 'QP01'
CHANGING g_subrc.
* BDC 처리상태 확인
PERFORM check_bdc_state USING it_work-matnr "자재번호
it_work-werks "플랜트
it_work-verwe "용도
g_subrc.
ENDAT.
ENDLOOP.
REFRESH: it_work.
ENDAT.
ENDLOOP.
ENDFORM. " MAKE_BDC_DATA -
궁그미
2008.10.22 05:05
헛!!!
소스까지....대단히 감사합니다.
열심히 분석해서 성공토록 하겠습니다.
밑에 엔트리에 라인 번호를 입력하면 됩니다.
해당 ok_code는 =QMBW 입니다.