자바/코딩
SAP JCO 연동
베어그릴스
2023. 1. 10. 14:22
반응형
1. SAP Jco란?
- Java와 SAP을 연동하여 시스템을 구축할 때 사용되는 SAP JAVA Connector.
- Java에서 SAP의 데이터를 가져오기 위해 SAP Jco 사용
2. 중요 파일
- sapjco.jar
- sapjco.dll
여기서 dll은 윈도용이고 help.sap.com 에 들어가서 운영체제에 맞는 버전을 제공합니다.
sapjco.jar는 SAP에서 제공하는 자바와 SAP을 sapjco.dll과 연결해주는 기능을 합니다.
3. 환경 세팅
(1) sapjco.dll 파일을 C 드라이브 > Windows > System32 아래로 넣어준다.
(2) sapjco3.jar 파일은 C:\tomcat-7.0.90\lib 폴더로 복사
환경세팅이 끝났다면 이제 ERP 업체와 협업한다.
ERP 업체는 업무에 맞는 펑션을 개발한다.
개발이 완료되면 문서를 줄 텐데 아래와 같이 해당 펑션 기능의 프로그램 아이디와 테이블 구조 및 칼럼의 속성
조회 또는 PUT 인지 검색조건은 어떠한지 등등 테스트까지 한 문서를 보내온다.
이제 개발자는 이 문서를 보고 프로그램 아이디를 대입하고 검색조건이 있음 검색조건을 넣어주고 개발을 진행하면 된다.
자바 소스
@Override
public List<Map<String, Object>> doTask(Map<String, Object> params) throws Exception
{
JCoFunction function = SapRfcUtil.getFunction("프로그램ID");
JCoParameterList iParams = function.getImportParameterList();
// params1.getFieldIterator(); 파라미터 알아 보기
//아래는 파라미터 조회조건
String iKunnr = null;
String iFudate = DateUtil.getMoveDate(-7).replace("-", ""); //일주일전
String iLudate = DateUtil.getCurrentDate("yyyyMMdd");
iParams.setValue("I_KUNNR" , iKunnr );
iParams.setValue("I_FUDATE", iFudate); // 조회시작일
iParams.setValue("I_LUDATE", iLudate); // 조회종료일
SapRfcUtil.runFunction(function); // Remote Function Call 실행
// 조회 결과를 얻어 온다.
JCoParameterList exparams = function.getExportParameterList();
String eRcode = exparams.getString("E_RCODE");
String eMesEn = exparams.getString("E_MES_EN");
String eMesKo = exparams.getString("E_MES_KO");
if ("E".equals(eRcode))
{
CommonUtil.printErr(eRcode, eMesEn, eMesKo); // 결과를 얻어 온다.
return null;
}
// 조회된 내용을 얻어 온다.
JCoParameterList results = function.getTableParameterList();
JCoTable table = results.getTable("테이블아이디");
return SapRfcUtil.tableToRows(table); // 조회된 내용을 얻어 온다.
}
조회된 내용을 얻어온 후 Map에 담아 정재및 테이블에 적재하는 과정을 거치면 된다.
데이터가 많은 경우 돌리다가 커넥션이 끊어질 수 있으니 예외처리를 해주는것도 잊지 말자.
오늘도 보람찬 생존 ^.^
반응형