본문 바로가기

개발일지

SAP JCO RFC 테스트

728x90

SAP RFC 펑션을 호출하는 작업을 진행중입니다.

본인은 자바로 개발 테스트를 진행하였습니다.

우선 자바 라이브러리를 다운 받아야 합니다.

https://support.sap.com/en/product/connectors/jco.html

 

SAP Java Connector

 

support.sap.com

 

자바 개발을 하기 위한 샘플소스를 공부하기 좋은 사이트 참고하세요.

https://shyunk.info/SAP_JCO/1/

 

JCo 간단 소개&정보

SAP JCo(SAP Java Connector) 공식 홈페이지 JCo 는 SAP 이용하는 고객들만 다운로드 가능(로그인 ID, Password 필요) JCo란? JAVA <-> SAP 데이터 연동을 위해 SAP 에서 제공하는 라이브러리 공홈 소개글 The SAP Java C

shyunk.info

 

우선 테스트 할 수 있는 샘플 SAP 펑션이 있어야 합니다.  그래서 SAP 확인을 먼저 합니다.

SAP 에서 실행 결과 확인

 

SAP 접속을 하기 위한 소스 영역 부분 

	/**
	 * 부족자재 조회 관련 인터페이스 테스트
	 * @throws JCoException
	 */
	public static void step3SimpleCall() throws JCoException {
		try {
			JCoDestination destination = JCoDestinationManager.getDestination(ABAP_AS_POOLED);
			JCoFunction function = destination.getRepository().getFunction("ZMMC_LACK_MAT_WC");
			if (function == null) {
				System.out.println("function is null");
			}
			JCoParameterList listParam = function.getImportParameterList();

			listParam.setValue("IV_STD_DT", "20220317"); 
			listParam.setValue("IV_WERKS", "1011");
			listParam.setValue("IV_LIFNR", "101201");

			function.execute(destination);

			String RESTAT = (String) function.getExportParameterList().getValue("EV_RESTAT");
			System.out.println(RESTAT);

			String REMSG = (String) function.getExportParameterList().getValue("EV_REMSG");
			System.out.println(REMSG);
			
			JCoTable codes = function.getExportParameterList().getTable("ET_LIST");

			//JCoTable tables = function.getTableParameterList().getTable("ZTMMC5030S");
			for (int i = 0; i < codes.getNumRows(); i++) {
	            // 테이블 로우 커서 세팅
	            codes.setRow(i);
	            // 테이블 로우 별 값 프린트
	            System.out.println("STD_DT => " + codes.getString("STD_DT") );
	            System.out.println("WERKS => "  + codes.getString("WERKS") );
	            System.out.println("LIFNR => "  + codes.getString("LIFNR") );
	            System.out.println("MATNR => "  + codes.getString("MATNR") );
	            System.out.println("REVLV => "  + codes.getString("REVLV") );
	            System.out.println("STD_TM => " + codes.getString("STD_TM") );
	            System.out.println("WC_CHECK => " + codes.getString("WC_CHECK") );
	            System.out.println("REQ_TY => " + codes.getString("REQ_TY") );
	            System.out.println("ARBPL => "  + codes.getString("ARBPL") );
	            System.out.println("MEINS => "  + codes.getString("MEINS") );
	            System.out.println("PLAN_STOCK_QTY => " + codes.getString("PLAN_STOCK_QTY") );
	            System.out.println("PLAN_VMI_STOCK_QTY => " + codes.getString("PLAN_VMI_STOCK_QTY") );
	            for(int index = 1; index < 15; index++ ) {
	            	
		            System.out.println(String.format("D%02d_QTY1", index) + " => " + codes.getString(String.format("D%02d_QTY1", index)) );
		            System.out.println(String.format("D%02d_QTY2", index) + " => " + codes.getString(String.format("D%02d_QTY2", index)) );
		            System.out.println(String.format("D%02d_QTY3", index) + " => " + codes.getString(String.format("D%02d_QTY3", index)) );
	            }
	             
	        }
			System.out.println(codes);

		} catch (

		JCoException e) {
			System.out.println(e.toString());
			return;
		}
	}

	public static void main(String[] args) throws JCoException {
		// step1Connect();
		// step2ConnectUsingPool();
		step3SimpleCall();
	}

프로그램 실행 결과 

728x90