개발환경은 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
디버깅 FM  (0) 2007.12.21
표준  (0) 2007.12.21
유지 보수성.  (3) 2007.09.13
Posted by iamyhs
,