'JCO'에 해당되는 글 3건

  1. 2008.06.27 SAP<->Java<->Flex 개발시 알아둘 사항들
  2. 2008.01.02 JCO를 이용한 SAP 연결 테스트 2
  3. 2007.12.21 표준
주의사항)
SAP 용어를 그대로 쓴다, 이런 용어마저 익숙하지 않다면 SAP 에대한 기본서를 먼저 본다.
더불어 FM(Function Module)을 디버깅할때쓰이는 SAPGui 에 관련된 내용도 SAP 용어를 그대로 쓴다.

1)JCO vs JCA
현재 참여하고 잇는 프로젝트는 위 두 환경이 공존하고 있다.
    
    1-1)로컬 테스트는 JCO
    1-2)실제 Deploy는 JCA 환경

    이유 : JCO 로 했을때, SSO(Single Sign On) 정보를 SAP의 ECC 정보가져올때(Landscape) 유지할수가 없었다.(정말 안되는지는 미 검증)
        JCA로 했을때는 SSO 문제가 해결되어있고, JCA 자체가 표준 아키텍처 이므로 이 방식으로 개발하고 있다.



2)WebService vs FDS
    SAP 쪽 데이타를 WebService 이용해서 가져오는 방식, SAP<->Flex
    SAP 쪽 데이타를 Remote Object를 이용해서 가져오는 방식, SAP<->JAVA<->Flex


3)XML용 파서, FDS용 파서

    3-1)WebService를 이용할때 : XML(텍스트) 대량의 데이타를 주고 받는 환경에서는 부적합(속도,용량)

    3-2)FDS를 이용할때 : AMF(Binary)    대량의 데이타를 주고 받을때 적합

    3-3)XML
        DataType : XML

    3-4)FDS
        DataType : AMF(Binary)
        SAP FM(RRW3_GET_QUERY_VIEW_DATA)을 이용

4)SAP GUI 디버깅
    이 게시물을 참고


5)SAP 데이타구조에 대한 Online Help
Default Variables for Web Applications
                
Datasets


6)SAPGui 사용법을 알아야 한다, 가장 기본적인 서버세팅부터, TCode 같은것들 등등

7)기본적인 Bex Query Designer 사용법을 익혀야 한다.

8)파서를 직접 제작 혹은, 업그레이드 하고 싶다면 FM 자체를 디버깅하는 방법과, SAP 데이타의 구조를 파악해야한다

9)위험요소
현재 쓰이고 있는 RRW3_GET_QUERY_VIEW_DATA이 표준 FM이 아니다.SAP 쪽에서 Max Attention 방식의 별도 관리가 필요한 부분이기도 하다.

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

SAP Web Dynpro + Adobe Flex/Flash  (0) 2008.08.06
The Mythical Man-Month  (0) 2008.07.09
Mate Framework  (0) 2008.06.19
Creating a Flash container component  (0) 2008.06.03
대규모 프로젝트에서의 개발 그리고 플렉스  (0) 2008.05.07
Posted by iamyhs
,
개발환경은 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
,

표준

취미 2007. 12. 21. 19:20
현재 SAP 프로젝트에 쓰고 있는 RRW3_GET_QUERY_VIEW_DATA FM이(Function Module) 스탠다드가 아니란다.

SAP 쪽 전문가가 아니어서 뭐라고 말할수가 없지만, 왜 이걸 이제 알았을까.

그 적지않은 관계자들은 무슨 생각을 한걸까.

이 참에 동료 개발자들과 "초난감 프로젝트의 조건"을 집필할까 한다.

여러가지 면에서볼때 책나오면, 벌써 대박 예감이다.

규모가 큰 프로젝트의 전형적인 문제점이 수면위로 그 몸통를 보여주기 시작한다.

이건 빙산의 일각일꺼란 생각이든다.

자,본격적으로 프로젝트 시작인거다.

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

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