Visual Cobol을 호출하는 모델 개발하기

개요

Visual Cobol을 호출하는 모델을 개발하기 위해선 Visual Cobol Invoke를 이용하여 개발합니다.

본 장에서는 X-UP 빌더를 이용하여 Visual Cobol을 호출하는 모델을 생성하고 X-UP 서버로 배포 한 뒤 Nexacro-Studio에서 해당 모델을 사용하는 방법에 대해 설명합니다.

본 문서는 동영상을 기반으로 작성되었습니다.

필요사항

Visual Cobol을 호출하는 모델 개발하기

Visual Cobol 리소스를 조회하여 X-UP도메인을 개발(모델개발)하고 Nexacro 어플리케이션에서 X-UP 도메인을 호출하는 방법에 대해 알아봅니다.

도메인 개발하기

Visual Cobol 호출을 위한 도메인 개발은 다음과 같은 절차로 이루어집니다.

1도메인 생성하기

2Visual Cobol 데이터소스 생성하기

3Visual Cobol 호출 모델 개발하기

4서버에 배포하기 (Jetty Server)

Visual Cobol Invoke를 이용한 도메인 개발하기

Nexacro 어플리케이션에서 X-UP 도메인 호출하기

X-UP에서 만들어진 도메인을 사용하기 위해서 Nexacro 어플리케이션에서는 다음과 같은 순서로 진행됩니다.

1TypeDefinition Service 등록하기

2모델 리스트와 인터페이스 가져오기

3모델 호출 스크립트 작성하기

4테스트 하기

Nexacro 어플리케이션에서 X-UP 모델 호출하기

Review

도메인 개발하기

X-UP에서 모델을 개발하기 위해 Java의 Project와 같은 도메인을 생성합니다.

도메인 생성하기

'NexawebInc' 라는 도메인을 생성합니다.

Visual Cobol 데이터소스 생성하기

Visual Cobol 리소스와 연결하기 위한 데이터소스를 생성합니다.

데이터소스는 도메인 별 생성되며, 모델내의 Invoke에서 사용하게 됩니다.

데이터소스 명칭은 'Cobol'을 입력하고 환경에 맞는 데이터소스 설정 정보를 입력합니다.

도메인의 mashup.msh 파일내의 DataSources 탭에서 생성합니다.

Visual Cobol 데이터 조회 모델 개발하기

'Cobol' 데이터소스정의된 설정정보를 토대로 Visual Cobol Invoke를 이용해 'EchoLinkagedStructure' Method를 호출하는 'Cobol' 모델을 개발한다.

'Cobol' 모델을 생성하고 EchoLinkagedStructure Method를 호출하기위해 Visual Cobol Invoke를 생성합니다.

'EchoLinkagedStructure' Method의 input / output 정보를 확인하고 'Test' 버튼을 클릭하여 결과 데이터를 확인합니다.

1'Cobol' Visual Cobol Invoke : EchoLinkagedStructure Method를 호출하여 데이터를 획득

2Class : 선택한 Class 명

3Method : 선택한 Method 명

Jetty Web Server 실행

Start 버튼을 누르면 Jetty Web Server가 동작합니다.

X-UP Explorer에 보이는 모든 X-UP Project가 Jetty Web Server에 올라가게 됩니다.

Jetty Web Server에 올라간 모델 테스트하기

Jetty Web Server에 올라간 모델을 테스트하기 위해 브라우저에서 모델을 호출합니다.

Editor에서 오른쪽 마우스 버튼을 클릭하면 'Copy Service URL to Clipboard' 버튼을 클릭하면 호출 URL을 클립보드에 복사하게 됩니다.

호출 URL은 다음과 같습니다.

http://localhost:8080/xup/FrontControllerServlet.do?service=xupservice&format=xml&version=nexacro&domain=NexawebInc&model=Cobol

Nexacro 어플리케이션에서 X-UP 모델 호출하기

Nexacro 어플리케이션을 개발하기 위해 Nexacro-Studio에서 X-UP 모델을 사용하기 위한 개발 단계는 다음과 같습니다.

1TypeDefinition Service 등록하기

2모델 리스트와 인터페이스 가져오기

3모델 호출 스크립트 작성하기

4테스트 하기

TypeDefinition Service 등록하기

TypeDefinition에서 다음과 같이 Service로 등록합니다.

Field Name

Field Value

Prefix

'XUP_SERVER'

모델 호출 스크립트 코드에서 사용되는 Prefix를

입력합니다.

Type

'bs'

X-UP 모델을 호출하기 위해서는 반드시 bs 타입을 선택해야

합니다.

URL

'http://localhost:8080/xup/'

X-UP 서버 URL을 입력합니다.

ServiceList

'ServiceInfoServiceServlet.do?service=serviceInfo&target=modelList'

서비스 리스트 호출 url을 입력합니다.

DatasetLayout

'ServiceInfoServiceServlet.do?service=serviceInfo&target=modelLayout'

입출력 정보를 획득하기 위한 url을 입력합니다.

모델 리스트와 인터페이스 가져오기

모델 리스트와 인터페이스를 가져오기 위해 생성 된 Service ('XUP_SERVER') 를 Refresh 하고 모델을 Refresh 하여 모델의 인터페이스 정보를 가져옵니다.

모델 호출 스크립트 작성하기

모델을 호출하기 위해 Form을 하나 생성합니다.

X-UP 모델을 사용하기 위해 조회 된 모델의 인터페이스 정보에서 입출력 데이터셋을 Invisible Object 에디터로 Drag & Drop 합니다.

아래와 같이 Form을 구성하고 Script 에디터에서 호출코드를 작성합니다.

this.btnSearch_onclick = function(obj:Button,  e:nexacro.ClickEventInfo)
{
  var svcparam     = "domain="     + "NexawebInc"      // Domain name
                    + "&model="     + "Cobol" // Model name
                    + "&format="     + "xml"
                    + "&version="     + "nexacro";
    var svcUrl = "XUP_SERVER::FrontControllerServlet.do?service=xupservice&" + svcparam;
    
    // Model Input parameters
    var strInDatasets = "";
    var strOutDatasets = "lnk_structure1=lnk_structure1";
    var strArgument = "";

    this.transaction("Cobol", svcUrl, strInDatasets, strOutDatasets, strArgument, "fn_Transaction_Callback");
}

this.fn_Transaction_Callback = function(strSvcID, nErrorCode, strErrorMag)
{
    if(nErrorCode < 0) {
        this.alert(strErrorMag);
        return;
    }
    
    if(strSvcID == "Cobol") {
        trace(this.lnk_structure1.saveXML());
    } 
}

테스트하기

테스트를 수행하기 위해 어플리케이션을 실행하고 실행 된 어플리케이션에서 Visual Cobol Method를 호출합니다.