안녕하세요.
새로운 한 주가 시작되었습니다. 활기찬 주 보내세요. ^^
BDC 프로그램이 있습니다.
BCD 데이타를 만들고 다음과 같이 BDC를 수행합니다.
CALL TRANSACTION 'va01' USING gt_bdcdata
OPTIONS FROM g_ctu_params
MESSAGES INTO gt_messtab.
처리해야 할 데이타가 1000건이상입니다.(이것은 예입니다.)
사용자가 BCD 프로그램을 실행하면 1000건의 데이타를 처리 할 때 그저 모래시계만 바라보고 있습니다.
세월아~~내월아~~
혹시..위의 코드(BDC 실행)를 실행할 때 전체 진행되는 과정을 표시해 줄 수도 있는지요?
표시되는 곳은 아무데나 상관 없고 그저 몇%, 혹은 몇건, 혹은..암튼 얼마나 진행되었는 지 알수 있는방법이 있을 까요?
ProgressBar 관련 클래스가 있던데.당최 사용할 줄 알아야 말이죠..^^;
고수님들 고맙습니다.
=> 추가..
gt_bdcdata에는 1000개의 sales order를 만들 데이타가 들어있습니다.(이것은 예입니다.)
펠릭스님이 알려주신 코드는 do문으로 하게되면 percent에 값을 넣을 수 있으니
현재 몇 %는 알수가 있겠지만 call transaction이므로 얼마나 실행되었는 지, 알수가 없지요.. 휴~~
댓글 4
-
펠릭스
2007.06.18 17:51
-
펠릭스
2007.06.18 21:50
percent부분은 살짝 응용하시면 될거에요~
전체 데이터의 건수는 알 수 있겠죠...테이블에 담겨있으면 sy-dbcnt에 값이 담겨 있을테고요.
어차피 bdc 진행이 테이블 데이터의 라인별로 진행될 테니깐, LOOP문에서 돌때 몇개가 진행됐는지 정도는 파악할 수 있을거에요.
그럼 당연히 퍼센트 값이 도출되겠지요...
저도 DO문을 사용안하고, BDC태울때, LOOP문에서 살짝 응용해서 사용했었습니다~^^
-
김지성
2007.06.18 22:03
펠릭스님 답변 고맙습니다. 먼저 소스를 약간 올려야 하는 뎅...
저같은 경우는 header 하나에 item이 약1000건 이상입니다.
살짝 코드는 보면
form create_bdc_data.
"header data
...
"Item data
loop at itab. "itab에 1000건의 데이타
" bcd data 생성
perform dynpro~~~~
...
endloop.
"bdc data 저장이 완료되었으며 bdc 실행
CALL TRANSACTION 'va01' USING gt_bdcdata
OPTIONS FROM g_ctu_params
MESSAGES INTO gt_messtab.
if sy-bubrc ne 0.
endif.
endform.
대략 이렇답니다. 즉 loop 문 밖에 call transaction 문이 있습죠...
-
별이고픈구름
2008.06.02 05:33
1000번 call transaction 하는 방법이 있겠죠.
아래 구문 참조해보세요...진행률 표시해주는 펑션입니다...사용법은 코딩해보면 아실겁니다~^^
DATA: PERCENT(3) TYPE N,
MSG(5).
DO 100 TIMES.
MOVE: SY-INDEX TO PERCENT.
WRITE: PERCENT TO MSG(3) NO-ZERO,
'%' TO MSG+3.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
PERCENTAGE = PERCENT
TEXT = MSG
EXCEPTIONS
OTHERS = 1.
ENDDO.