개발환경은 Flex,Java,SAP 이다

JCO를 이용해서 SAP 쪽 연결은 아래 여섯 단계를 거친다.

Step 1: Initialize the RFC Connection


Step 2: Create a JCo Repository


Step 3: Retrieve a Specific Function from the Repository


Step 4: Populate the Metadata Structures


Step 5: Execute the Call to SAP


Step 6: Read the SAP Return Structure


package com.sec.global.mysap;
import com.sap.mw.jco.*;
public class SAPJCOTest {
    public static void main(String[] args) {
        
        final String SAP_CLIENT ="100";
        final String USER_ID ="username";
        final String PASSWORD = "password";
        final String LANGUAGE = "en";        
        final String IP_ADDRESS = " xxx.xxx.xxx.xxx";
        final String SYSTEM_NUMBER = "00";
        
        JCO.Client aConnection;
        IRepository aRepository;

        System.out.println("JCO를 이용한 SAP 연결 테스트");
        try {
            
            aConnection = JCO.createClient(SAP_CLIENT,
                    USER_ID,
                    PASSWORD,
                    LANGUAGE,
                    IP_ADDRESS,
                    SYSTEM_NUMBER);

            aConnection.connect();
            aRepository = new JCO.Repository("SAP", aConnection);
            IFunctionTemplate functionTemplate = aRepository.getFunctionTemplate("RRW3_GET_QUERY_VIEW_DATA");
            
            JCO.Function function = functionTemplate.getFunction();            
            
            //I_INFOPROVIDER,I_QUERY,I_VIEW_ID,I_T_PARAMETER
            function.getImportParameterList().setValue("xxxxx", "I_INFOPROVIDER");
            function.getImportParameterList().setValue("xxxxx_Qxxxx", "I_QUERY");
            function.getImportParameterList().setValue("", "I_VIEW_ID");
            function.getImportParameterList().setValue("", "I_T_PARAMETER");
            
            aConnection.execute(function);
            
            System.out.println("연결 성공");            
        }
        catch (Exception ex) {
            System.out.println("연결 실패");
        }
    }
}


I_INFOPROVIDER,I_QUERY,I_VIEW_ID,I_T_PARAMETER 에 대한 세부 사항은 SAP 개발자가 명세서를 보내준다.

프로바이더 테크 네임, 쿼리 테크 네임 이런식으로 표현하고,Vairiable에 대한 세부사항은, I_T_PARAMETER(일종의 테이블 형태) 변수의 내용이다.
소스에서 I_VIEW_ID와 I_T_PARAMETER 값은 빈값인대,
이 값들은 쿼리테크 별로 다르다 I_T_PARAMETER 값은 보통 테이블 형태로 주어지고, I_VIEW_ID 는 공백인 경우가 많다.

이 예제는 연결 테스트 만이다. 실제로 Step 6 처럼 결과값을 가지고 가공을 해야한다.

이 과정에서 해당 리턴값을 어디에서 파싱할지가 아키텍처상 중요하다.

현재는,View(Flex) 단에서 파싱(다차원 구조이므로)하는 파서를 제작했지만, View단에서 파싱하는 것보다 Java 단에서 파싱하는 구조가 더 적절해 보인다.


'취미' 카테고리의 다른 글

아키텍처에 관한 세가지 질문  (0) 2008.01.25
How to solve it  (0) 2008.01.18
JCO를 이용한 SAP 연결 테스트  (2) 2008.01.02
디버깅 FM  (0) 2007.12.21
표준  (0) 2007.12.21
유지 보수성.  (3) 2007.09.13
Posted by iamyhs