안녕하세요. BDC관련 프로그램을 수정하다가 해결되지 않은 것이 있어 이렇게 글을 올립니다.
다름이 아니라... MM 모듈의 T-CODE MB1B에서 타 사업장 이체를 하는 프로세스를 BDC로 하는 프로그램을
수정하고 있습니다. MB1B에서 타사업장 이체 프로세스를 흘리게 되면 항상 WARNING 메시지가 뜨는데
그 이후에 BDC를 타지 않아서 문제가 되고 있습니다. 제가 지금 수정하려고 하는 부분은 받는쪽 배치는 보내는쪽
배치가 자동으로 설정되지 않고 임의의 입력 받은 배치로 진행 되도록 하고 있습니다.
스크린 순서되로 보면 421 스크린에서 엔터를 치고 나면 410으로 넘어가면서 WARNING이 발생합니다.
그리고 410번 스크린에서 받는쪽 배치를 수정하는 부분이 있습니다. (MSEG-UMCHA)
그 이후 받는쪽 배치를 설정하는 소스(소스 중 빨간색 부분)가 있지만 그것이 먹히지 않고 자동으로 설정된
배치로 posting이 됩니다. BDC모드를 'A'로 돌리면 BDC가 중간에 끊어지고 'N' 모두로 돌리면
'No batch input data for screen SAPLKACB 0002' 이런 에러메시지가 뜨네요.
답변 부탁 드립니다. 감사 합니다.
REFRESH: bdcdata.
PERFORM dynpro USING:
'X' 'SAPMM07M' '0400',
' ' 'BDC_OKCODE' '=LVS0', "'/00', "ENTER
' ' 'MKPF-BLDAT' sy-datum, "
' ' 'MKPF-BUDAT' sy-datum,
' ' 'RM07M-BWARTWA' i_bwart,
' ' 'RM07M-WERKS' i_werks,
' ' 'RM07M-LGORT' i_lgort,
' ' 'RM07M-SOBKZ' i_sobkz.
PERFORM dynpro USING :
'X' 'SAPMM07M' '1422',
' ' 'BDC_OKCODE' '=OK',
' ' 'RM07M-TBFKZ' 'X',
' ' 'RM07M-BSSKZ' ' '. " Document Date
READ TABLE l_tab INDEX 1.
lv_menge = l_tab-menge. "ITAB - 펑션 TABLE 값으로 받음
TRANSLATE lv_menge USING ', '.
CONDENSE lv_menge NO-GAPS.
PERFORM dynpro USING:
'X' 'SAPMM07M' '0421',
' ' 'MSEGK-WEMPF' i_wempf,
' ' 'MSEGK-UMWRK' i_werks_r,
' ' 'MSEGK-UMLGO' i_lgort_r,
' ' 'MSEG-MATNR(01)' l_tab-matnr,
' ' 'MSEG-ERFMG(01)' lv_menge,
' ' 'MSEG-ERFME(01)' l_tab-meins,
' ' 'MSEG-CHARG(01)' l_tab-charg.
PERFORM dynpro USING:
'X' 'SAPLKACB' '0002',
' ' 'BDC_OKCODE' '=ENTE'. "
---> 이거 이후 WARNING 메시지 발생
PERFORM dynpro USING: "이체받는쪽 배치 입력
'X' 'SAPMM07M' '0410',
' ' 'BDC_CURSOR' 'MSEG-UMCHA(01)',
' ' 'MSEG-UMCHA(01)' i_umcha.
PERFORM dynpro USING:
'X' 'SAPMM07M' '0421',
' ' 'BDC_CURSOR' 'MSEG-ERFMG(01)',
' ' 'BDC_OKCODE' '=BU'. " SAVE
ctu_params-dismode = i_mode.
ctu_params-updmode = 'S'.
ctu_params-racommit = 'X'.
REFRESH messtab.
CALL TRANSACTION 'MB1B' USING bdcdata
OPTIONS FROM ctu_params
MESSAGES INTO messtab.
-------------*-------------------------
SHDB에서 레코딩한 하고 프로그램으로 만들어서 소스 비교해봐도 차이 없네요. 이상하게 빨간색을 표시한 부분의 소스가
안먹히고 자동으로 세팅되는 배치로 POSTING이 되는지 감이 잡히지 않네요.
댓글 7
-
activeman
2008.04.28 07:47
-
초보아밥퍼
2008.04.28 22:15
역시나 bdc는 레코딩을 잘해야 돌아간다는... ^^ -
bd
2008.04.28 22:38
관련 화면 t-code를 살펴 보심이 어떻까 하는 생각이 문득 드네요 @@
일전에 upgrade 프로젝트에서경험했던 일인대요. t_code가 변경된 경우가 있더라고요 ^^
-
푸~
2008.04.29 00:42
program을짜서 테스트 해보세요..RFC에서는 확인하기 어렵습니다.
program에서 debug를 걸면 알수있습니다.
-
Delight
2008.04.29 18:32
activeman님이 말씀하신되로 다시 레코딩해서 비교 해보시는게 제일 빠를것 같습니다 -
아밥초짜
2008.06.12 02:37
답변 감사합니다~` -
대지꿀꾸링
2008.07.17 22:33
님 저도 이에러가 나네요ㅠ
MM초보^^
이거 해결 되셨나요?
warning이 나온다고 해서 화면이 멈추거나 하지는 않습니다. warning은 경고의 의미일뿐 그냥 화면이 넘어 갈텐데요.
레코딩하는 프로그램(sm35)에서 다시 레코딩하셔서 프로그램의 소스와 비교를 해보시는게 제일 빠를것 같습니다.
즐밥하세요..