요르딩딩

sapJco를 활용한 sap 호출 예제 본문

[Java]

sapJco를 활용한 sap 호출 예제

요르딩딩 2024. 5. 29. 22:58
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