Overview
SAPGUI Scripting은 SAPGUI와 Script Language를 이용한 일종의 매크로이다.
Script Language를 이용해서 사용자 action의 자동화된 처리를 가능하게 한다.
엑셀 매크로의 SAPGUI 버전이라고 생각하면 되며, 간단한 테스트용 스크립트 작성으로 쓸만함.
SAPGUI Scripting은 Window 환경에선 COM 인터페이스를 사용하므로 VB Script를
이용해서 구현 가능. 상세한 내용은 SAP Notes : 527737 을 참고할것.
1. SAPGUI Scripting을 사용하기 위한 Client PC 환경
- 최신버전의 SAPGUI가 설치되어 있어야 함(6.20이상)
- SAP System이 Uncode 환경이라면 SAPGUI 환경설정에서 가급적 Unicode Off로
설정하고 사용할것.
SAP Logon Pad 설정
2. SAPGUI Scripting을 사용하기 위한 SAP Application Server 환경
- SAP WAS 버전이 6.20 이상(R/3 Enterprise 이상)
- 아래와 같이 시스템 파라미터가 설정되어 있어야 함.
- sapgui/user_scripting : true
- sapgui/user_scripting_disable_recording : false
- sapgui/user_scripting_force_notification : false
- sapgui/user_scripting_set_readonly : false
RZ10 - System Parameter
위 파라미터 중에서 가장 중요한것은 sapgui/user_scripting 이다.
Example
실제로 SAPGUI Scripting을 사용한 예제임. MM01을 이용함.
1. SAPGUI에서 스크립트 기록 및 재생을 선택.
스크립트 기록 및 재생
2. 기록 및 재생 창에서 '자세히' 버튼을 클릭 후 기록 결과 파일을 저장할곳을 선택.
저장위치 및 파일명 선택
3. 적색의 '기록' 버튼을 눌러서 기록을 시작한다.
MM01 Transaction을 실행시켜서 실제로 자재코드를 생성한다. 생성이 완료되면
노란색 버튼을 눌러서 기록을 멈춘다.
MM01
뷰 선택
데이터 입력 후 저장완료, 기록종료
4. 기록결과는 VB Script File(.vbs)로 저장된다. 기록결과를 메모장,UltraEditor 등의
에디터를 사용해서 열어보면 아래와 같은 스크립트 코드가 생성된것을 알 수 있다.
SAPGUI Scripting 결과
5. 위 스크립트 코드를 더블클릭해서 실행시킨다. 아래와 같은 메시지가 표시된다.
SAPGUI Scripting 실행
6. 조금전에 직접 실행했던 작업들이 화면에서 자동으로 실행된다.
Summary
1. SAPGUI Scripting의 장점
- BDC에서는 처리가 곤란했던 SAPGUI 화면상의 Enjoy Control (Tree,TextEditor,
HTML Viewer 등)도 모두 처리가 가능하다(레코딩 가능). 단 아래와 같은것은
기록 및 재생이 불가능 하다.- Drag & Drop
- Context Menu
- Non-modal, control based version of F4 selection Dialog - ABAP을 전혀 몰라도 개발이 가능하다.
- 레코딩이 쉽고 결과가 VB Script로 저장된다.
- VB Script에 대한 간단한 지식만 있으면 되므로 엑셀 매크로를 사용해본
사람이면 쉽게 수정이 가능하다.
- 따라서 컨설턴트, 또는 현업의 직접 작성이 비교적 쉽다.
- 프로그램의 동작이 Foreground로만 되므로(Background 실행 불가능)
사용자가 그동안 다른 작업을 하기 불편하다. - 대량의 데이터를 처리하기엔 속도가 느리다
- 오류발생시 처리가 곤란하므로 BDC 대용으로 사용시 원본 데이터가 정확해야 한다.
BDC의 대안으로 쓰는것 보다는 현업의 수작업을 줄여주고, BDC로
처리가 안되는 부분에만 사용하면 상당히 유용하다.
SAP에서도 BDC를 완전히 대체하는것으로 사용하는것은 추천하지 않음.
("SAPGUI Scripting is not about business applications" )
실제로 D모 사에서 2000건 정도 되는 데이타 Migration시 사용해봤는데 BDC 개발보다
만드는 시간이 훨씬 적게 되고 작업도 비교적 간편함. 단, 속도는 생각보다 느림.