일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- css
- html
- IPO
- 주식 청약
- Stock
- SQL
- JavaScript
- 공모주
- 맥
- codeigniter
- 자바
- php
- 7월 공모주 청약 일정
- 자바스크립트
- 리눅스
- 공모주 청약
- Stock ipo
- 코드이그나이터
- Oracle
- MYSQL
- 제이쿼리
- 주식 청약 일정
- linux
- 오라클
- 주식
- 6월 공모주 청약 일정
- java
- 공모주 청약 일정
- Eclipse
- jquery
- Today
- Total
개발자의 끄적끄적
[java] 자바(java)에서 SAP 연계하여 데이터 조회 [펌] 본문
[java] 자바(java)에서 SAP 연계하여 데이터 조회 [펌]
자바(java)에서 SAP에 연결하여 데이터를 조회하는 간단한 소스임..
사실 SAP에대해선 아무것도 모름...
주변에 SAP에 대해 아는 사람도 없고 내가아는 정보라고는 연결에 필요한 라이브러리 파일과
접속 정보만 알고 있었음. 시간도 짧고 해서 우선 실행되는게 우선이라서 구글질로 일단 데이터 조회해서 가져오는
부분만 짰음. 더 좋은방법이라던지 효율적인 방법등이 많을것으로 예상함.
이소스는 웹어플리케이션에도 동일하게 적용하여 사용할 수 있음...
sap에 접속하여 테이블을 가져와 java의 list객체에 담아서 사용.
우선 sap 담당자에게 제공받은 파일을 확인한다.
sapjco3.jar 는 라이브러리로 등록.
sapjco3.dll 은 C:\Windows\System32 <=여기에 복사.
소스는 아래와 같음.
package sapTest;
import java.util.concurrent.CountDownLatch;
import java.io.File;
import java.io.FileOutputStream;
import java.util.Properties;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.sap.conn.jco.AbapException;
import com.sap.conn.jco.JCoContext;
import com.sap.conn.jco.JCoDestination;
import com.sap.conn.jco.JCoDestinationManager;
import com.sap.conn.jco.JCoException;
import com.sap.conn.jco.JCoField;
import com.sap.conn.jco.JCoFunction;
import com.sap.conn.jco.JCoFunctionTemplate;
import com.sap.conn.jco.JCoStructure;
import com.sap.conn.jco.JCoTable;
import com.sap.conn.jco.ext.*;
public class main {
List<Map<String, Object>> list =null; //조회된 데이터를 담을 리스트
static String ABAP_AS = "ABAP_AS_WITHOUT_POOL"; //sap 연결명(연결파일명으로 사용됨)
//sap 연결파일 생성
static void createDestinationDataFile(String destinationName, Properties connectProperties)
{
File destCfg = new File(destinationName+".jcoDestination");
if(!destCfg.exists()){
try
{
FileOutputStream fos = new FileOutputStream(destCfg, false);
connectProperties.store(fos, "for tests only !");
fos.close();
}
catch (Exception e)
{
throw new RuntimeException("Unable to create the destination files", e);
}
}
}
public static void getTableTest() throws JCoException
{
System.out.println("테이블가져오기 실행");
JCoDestination destination = JCoDestinationManager.getDestination(ABAP_AS);
//연결정보확인.
System.out.println("Attributes:");
System.out.println(destination.getAttributes());
System.out.println();
//리모트 펑션(?) 암튼 펑션명으로 호출
JCoFunction function = destination.getRepository().getFunction("SAP_DATA");
if(function == null)
throw new RuntimeException("SAP_DATA not found in SAP.");
try
{
function.execute(destination);
System.out.println("실행완료::!!");
}
catch(AbapException e)
{
System.out.println(e.toString());
return;
}
//펑션에서 테이블 호출
JCoTable codes = function.getTableParameterList().getTable("테이블명");
list = new ArrayList<Map<String, Object>>();
//루프돌면서 데이터 조회
for (int i = 0; i < codes.getNumRows(); i++)
{
codes.setRow(i);
Map<String, Object> map = new HashMap<String, Object>();
map.put("컬럼1", codes.getString("컬럼1"));
map.put("컬럼2", codes.getString("컬럼2"));
map.put("컬럼3", codes.getString("컬럼3"));
//리스트에 담아서 사용
list.add(map);
}
}
public static void main(String[] args) throws JCoException {
// TODO Auto-generated method stub
System.out.println("시작");
//연결프로퍼티 생성
Properties connectProperties = new Properties();
connectProperties.setProperty(DestinationDataProvider.JCO_ASHOST, "SAP IP정보"); //SAP 호스트 정보
connectProperties.setProperty(DestinationDataProvider.JCO_SYSNR, "00"); //인스턴스번호
connectProperties.setProperty(DestinationDataProvider.JCO_CLIENT, "100"); //SAP 클라이언트
connectProperties.setProperty(DestinationDataProvider.JCO_USER, "USER"); //SAP유저명
connectProperties.setProperty(DestinationDataProvider.JCO_PASSWD, "PASS"); //SAP 패스워드
connectProperties.setProperty(DestinationDataProvider.JCO_LANG, "EN"); //언어
//프로퍼티를 이용하여 연결파일을 생성.
//실행되고 있는 응용시스템 경로에 생성됨.
createDestinationDataFile(ABAP_AS, connectProperties);
getTableTest();
}
}
출처: https://nicebury.tistory.com/117 [나이스버리]
'개발 > java & jsp' 카테고리의 다른 글
[java] [Eclipse]java프로젝트에 jar파일 추가하기, jar파일 상대경로로 넣기 [펌] (0) | 2020.02.27 |
---|---|
[java] eclipse Could not create the Java virtual machine 에러 해결방법 (0) | 2020.02.25 |
[java] 비밀번호 패턴(동일 문자, 연속 문자, 특수문자, 숫자, 영문) 체크[펌] (0) | 2020.02.02 |
[java & spring] jsch 이용해서 sftp 파일 업로드 예제(인증서 체크 무시)[펌] (0) | 2020.01.22 |
[spring] SPRING을 이용한 SFTP 파일 업로드[펌] (0) | 2020.01.22 |