요르딩딩
sapJco를 활용한 sap 호출 예제 본문
728x90
반응형
웹어플리케이션(was)와 SAP간의 연결 예제입니다.
이는 sapJco3라이브러리를 활용한 예제이며, 공부하기 위한 소스입니다.
SAP JCO란?
- Java에서 SAP을 연동하여 시스템을 구축할 때 사용되는 SAP JAVA Connector.
- Java에서 SAP의 데이터를 가져오기 위해 SAP Jco 사용
- 필요파일 : sapjco.jar, sapjco.dll
추가로 설정값이 담긴 연결파일( jcoDestination파일)을 WAS내에 생성하여, 사용하기도 합니다.
예시) ABAP_AS_WITHOUT_POOL, ABAP_AS_WITH_POOL
[포인트]
1. 연결 설정 불러오기 (SAP 시스템에 연결)
JCoDestination destination = JCoDestinationManager.getDestination(DESTINATION_NAME);
2. 호출할 RFC 함수 가져오기
JCoRepository repository = destination.getRepository();
3. 입력 매개변수 설정
JCoParameterList importParams = function.getImportParameterList();
4. RFC 함수 호출
function.execute(destination);
5. 출력 매개변수 처리
JCoParameterList exportParams = function.getExportParameterList();
String userName = exportParams.getString("USERNAME");
[프로퍼티값]
# sapjco3.cfg
MY_SAP_DESTINATION {
ASHOST=sap.example.com
SYSNR=00
CLIENT=100
USER=my_sap_user
PASSWD=my_sap_password
LANG=en
}
[비지니스 로직]
import com.sap.conn.jco.JCoDestination;
import com.sap.conn.jco.JCoDestinationManager;
import com.sap.conn.jco.JCoException;
import com.sap.conn.jco.JCoFunction;
import com.sap.conn.jco.JCoParameterList;
import com.sap.conn.jco.JCoRepository;
public class SAPJCoExample {
public static void main(String[] args) {
String DESTINATION_NAME = "MY_SAP_DESTINATION";
try {
// 연결 설정 불러오기
JCoDestination destination = JCoDestinationManager.getDestination(DESTINATION_NAME);
System.out.println("Destination is valid: " + destination.isValid());
// 호출할 RFC 함수 가져오기
JCoRepository repository = destination.getRepository();
JCoFunction function = repository.getFunction("BAPI_USER_GET_DETAIL");
if (function == null) {
throw new RuntimeException("BAPI_USER_GET_DETAIL not found in SAP.");
}
// 입력 매개변수 설정
JCoParameterList importParams = function.getImportParameterList();
importParams.setValue("USERNAME", "SAP_USER_ID");
// RFC 함수 호출
function.execute(destination);
// 출력 매개변수 처리
JCoParameterList exportParams = function.getExportParameterList();
String userName = exportParams.getString("USERNAME");
String lastName = exportParams.getString("LASTNAME");
String firstName = exportParams.getString("FIRSTNAME");
System.out.println("User Name: " + userName);
System.out.println("Last Name: " + lastName);
System.out.println("First Name: " + firstName);
} catch (JCoException e) {
e.printStackTrace();
}
}
}
728x90
반응형
'[Java]' 카테고리의 다른 글
Static 이란 (0) | 2022.01.26 |
---|---|
String to Array, Array to String (0) | 2022.01.17 |
날짜 함수 사용하는 법 (0) | 2021.12.27 |
String(문자열)을 Object(객체)로 변환하는 법 (0) | 2021.12.02 |
param( "A,B,C" ) -> array ( [A,B,C] )으로 변경 (0) | 2021.11.23 |
Comments