🕑 10분
👥 Eclipse 사용법을 알고, JCo Library를 다운 받아 Project에 적용한 학습자
⭐ JCo 는 JDK 1.8 버전에서 버그 없이 작동된다.
** 필자는 JavaSE-17 사용하다가 오류가 발생하여 1.8로 변경함
⭐ SAP 접근제어 관리 등으로 막히는 부분이 있을 수 있다.
0. 개요
Java의 JCo Server를 실행시켜서 SAP의 Gateway에 등록되게 하고,
RFC 연결테스트가 성공으로 나오는 것까지 확인한다.
아직 Function Handler를 설정하지 않았으므로 Function Module 호출은 불가하다.
1. JCo 설치 폴더에서, 공식 소스코드 예제 가져오기
1) ABAP_AS1.jcoDestination 파일 : Java Project 에 복사하기
- 예제파일 경로 : \sapjco3-ntamd64-3.1.11\examples\
※ src 폴더 아래가 아닌, Java Project 바로 밑(root)에 넣어야 한다.
2) EXT_SERVER.jcoServer 파일 : Java Project 에 복사하기
- 예제파일 경로 : \sapjco3-ntamd64-3.1.11\examples\
※ src 폴더 아래가 아닌, Java Project 바로 밑(root)에 넣어야 한다.
3) ServerListener.java , ServerNameConcept.java , SimpleFunctionHandling.java 파일 : src 폴더 안에 복사하기
- 예제파일 경로 : \sapjco3-ntamd64-3.1.11\javadoc\ 의 intro.html > Examples > Beginner server examples
※ 맨 윗줄의 package ..; 단은 제외하고 복사
- 예시 화면
2. jcoDestination 파일에 SAP 접속정보 입력하기
1) ABAP_AS1.jcoDestination 파일 : SAP 접속정보 입력


jco.client 파라미터 | 설명 |
ashost | 어플리케이션 서버 |
sysnr | 인스턴스 번호 |
client | 접속할 클라이언트 |
user | SAP 로그인하는 ID |
passwd | SAP 로그인하는 PW |
lang | 로그인 언어 |
3. jcoServer 파일에 RFC 와 Gateway 접속정보 입력하기
jco.server 파라미터 | 설명 |
connection_count | 연결 개수 |
gwhost | 게이트웨이 호스트 IP (어플리케이션 서버) |
progid | Java 서비스명 → 본인이 작명하여 신규로 넣으면 됨 |
gwserv | 게이트웨이 서비스명 (or 게이트웨이 포트) |
repository_destination | .jcoDestination 파일명 |
1) connection_count : 연결 개수
이때 작성한 숫자만큼 SMGW 에서 서비스 개수가 생긴다.
2) gwhost : 게이트웨이 호스트 IP
SAP 접속정보의 어플리케이션 서버 IP를 입력하면 된다.
3) progid : Java Server 서비스명
본인이 작명하여 신규로 작성하면 된다.
이때 작성한 서비스명은 T-Code: SMGW 에서 확인이 가능하다.
RFC 생성 시 Program ID에도 동일하게 사용된다.
4. gwserv : 게이트웨이 서비스명 or 게이트웨이 포트
게이트웨이 서비스명 또는 게이트웨이 포트를 입력한다.
- 서비스명 : 'sapgw' + SAP 접속정보의 인스턴스 번호 (ex. sapgw01)
- 포트 : '33' + SAP 접속정보의 인스턴스 번호 (ex. 3301)
💡Tip. 게이트웨이 서비스명과 Port가 동일한 것처럼 파라미터에 넣어도 되는 이유
C:\Windows\System32\drivers\etc 에서 services 파일을 확인해보면,
게이트웨이 서비스명과 포트가 Mapping 되어 있다.
결국 게이트웨이 서비스명은 Port를 향하여 가기 때문에
파라미터에는 서비스명을 넣든, Port를 넣든 동일하게 동작한다.
5) repository_destination
SAP 접속정보가 담겨있는 .jcoDestination 의 파일명을 작성한다. (ex. ABAP_AS1)
- 예시 사진자료
4. SAP에서 RFC 생성하기
1) T-Code: SM59 > 생성 아이콘 > RFC 명 입력 후, TYPE은 'T'
- RFC 명은 Y/Z 로 시작할 필요는 없다.
2) Description 및 Program ID 입력
- Program ID는 반드시 .jcoServer에 입력했던 서비스명과 동일하게 입력해야함 (대소문자 구분)
3) 연결 테스트 --> 실패
- 현재 단계에서는 '실패'가 정상적인 결과이다. 이제 Java 서버를 실행하여 '성공' 결과로 만들어줄 예정이다.
5. AS Java 서버 실행 후, RFC 연결 확인하기
1) ServerListener.java 실행

2) SAP의 T-Code : SMGW > Goto > Logged on Clients 에서 등록한 서비스명이 갯수대로 생성되었는지 확인

3) 성공 결과 확인
※ Java의 .jcoServer 와 RFC에 등록한 Program ID가 동일한데도 Connection Test 결과가 '실패'라면
SAP에서 외부 서비스 접근을 제어하고 있지는 않은지 BC분께 문의드려 보세요.
접근제어가 되고 있다면, Program ID를 보내드리며 접근 허용해달라고 요청 드리시면 됩니다.

-
수고하셨습니다.
'JCo' 카테고리의 다른 글
4-2. SAP에서 Java 호출하여 값 받아오기 (0) | 2025.04.03 |
---|---|
3-4. Java 에서 SAP Function Module 호출하여 Table 값 조회하기 (0) | 2025.04.03 |
3-3. Java 에서 SAP Function Module 호출하여 Structure 값 조회하기 (0) | 2025.04.03 |
3-2. Java 에서 SAP Function Module 호출하여 단일 값 조회하기 (0) | 2025.04.03 |
3-1. Java에서 SAP System 연결하기 (Ping 테스트) (0) | 2025.04.02 |