Fiori 데이터 연결 및 바인딩

Updated:

1. 데이터 연결 및 모델 등록

1) URL 데이터 추가

  • manifest.json 파일 > Data source > 추가 버튼 + > 데이터 정보 입력

manifest.json 파일의 Data source 탭으로 이동해서 추가 버튼을 눌러주면 팝업 창이 뜬다.

image

지금은 URL 주소를 활용해서 데이터를 가져올 것이기 때문에 Service URL을 선택해주고, create a new data source를 클릭한다.

image
create a new data source를 클릭하면 다음과 같은 팝업창이 뜬다. 이용자 메일과 비밀번호를 입력해주고, oData 이름 설정 및 바인드 하고자 하는 데이터의 URL을 입력해준다. URL을 통해 데이터를 가져올 것이기 떄문에 Procy Type은 Internet 그대로 둔다.

image

아래와 같은 화면이 나오면 등록이 완료되었다.

image

2) 데이터 연결 확인

  • SAP Cockpit neo 평가판 화면 > 연결 > 대상 > 적합한지 확인

URL 데이터 연결이 잘 되었는지 확인을 위해서는 SAP Cockpit neo 평가판 초기화면 > 연결 > 대상으로 들어가서 확인 가능하다. 해당 연결 대상 옆에 보이는 아이콘 중 네번째 아이콘을 누르면 된다.
image

연결이 정상적으로 되었다면 다음과 같이 확인 가능하다.

image


3) 데이터 모델 확인

  • manifest.json > Models

연결이 성공적으로 되었으면, 아까 create a new data source 클릭한 창으로 다시 돌아가보자. 아까 연결시킨 oData가 뜨면, relative URL에 다음의 주소(/V2/Northwind/Northwind.svc/)를 추가한 후, 다수의 entity set이 들어있는 oData임을 확인할 수 있다면 next를 눌러 저장한다.


image image
manifest.json 파일의 models 탭을 들어가보면, 데이터 모델이 default 이름으로 등록이 된 것을 확인할 수 있다. 이제 해당 프로젝트에서 데이터를 바인드할 수 있다.

image image

2. 데이터 바인딩

1) List bind

  • List > Entity Set > 선택

프로젝트를 하다보면 리스트 control을 가장 많이 쓰게 될 것이다. List control에 데이터를 바인드해보도록한다. 우선, View1 화면에 control list 중 일반 List를 선택해서 가져온다. 단, 위에서 선행한 데이터 추가 과정이 완료된 상태여야 한다.
image


리스트를 바인딩하는 방법은 다양하게 존재한다. 지금은 우선 한 가지 방법을 살펴본다. 우측 Entity set이 데이터를 바인딩하는 부분이다. 클릭하면 모델에 등록된 데이터 entity들이 쭉 뜨고, 원하는 데이터 entity를 찾아 bind 해주면 된다.

image
모델에 등록된 데이터 entity 중 employee 누르고 bind를 해주었다.

image-20201006123942571
여기까지 저장하고 실행하면 View1 화면에서 다음을 확인할 수 있다.

image-20201006124009324

2) Bind format 설정

employees 데이터를 바인드 해주었지만, 실제 row별로 어떤 데이터가 뜨는지 원하는 포멧으 확인하고자 한다. View1에서 List 클릭시 뜨는 우측 설정 중 Title을 클릭하면 다음과 같은 창이 뜬다.

image-20201006124042093

바인드 하려는 영역이 Title이며, First 이름과 Last 이름으로 합쳐 띄우고 싶어 다음과 같이 설정했다.

image-20201006124108333

마찬가지로 Description 부분도 employee ID와 주소를 합쳐 띄우게 설정했다.

image-20201006124128413

보여지는 아이콘 또한 연관성 있어 보이는 것으로 설정해주었다.

image-20201006124143063

3) 다른 view로 데이터 넘기기

지금까지는 View1 리스트에 데이터를 바인드했다. 그러나 View1 뿐 아니라 View2에서도 해당 데이터를 확인하고 싶다. View1에 뜨는 데이터 리스트 중 하나를 클릭했을 때, 그 정보를 View2에서 확인할 수 있도록 이 동 및 데이터 바인드를 설정하고자 한다.

기존에는 Navigate to 를 통해 경로만 적어주면 됬지만, 데이터 바인딩이 되어있는 부분을 navigate to 하면 이제 이 데이터 정보도 넘길 것인지에 대한 설정도 해줘야 한다.

데이터 바인드가 되어 있는 List의 Event로 가서 Press > Navigate to 설정을 한다.

image

가장 상단의 Data Binding 설정을 none이 아닌 Propagate current context 로 설정해준다.

image

실행 결과 다음과 같이 View2에서 View1에서 클릭한 데이터의 상세 정보를 확인할 수 있게 되었다.

image-20201006124314195

4) 뒤로가기 버튼 생성

  • 페이지 > Properties > Show Nav Button True 설정 > ID 확인 > Event > Press > Navigate To 설정

화면 이동 및 데이터 바인드를 완료했지만, View2 페이지에서 뒤로가기 기능이 없어 불편한 상태이다. 뒤로가기 버튼을 만들기 위해, 대상 페이지 View2 > 우측 설정 > Properties > Show Nav Button 설정을 True로 해준다. 여기까지 저장하고 실행하면 버튼은 보이지만 뒤로가기가 정상적으로 작동하지는 않을 것이다.

image

그 이유는 버튼 생성과 동시에 해당 값에 default로 생성되는 View ID와 script code에 생성되는 ID가 다르기 때문이다. 따라서 manifest.json 파일의 Routing 탭 하단 Routes 설정에서 View ID로 떠있는 값을 지워준다. 스크립트 값과 ID 값을 동일하게 맞추거나 하나를 지워주면 문제가 해결되는 것이다. 이 부분을 하지 않으면 아래 Navigate To 연결을 하려 해도 정상적인 Target Control이 뜨지 않는다.

image

그 다음 View2의 Event > Press > Navigate To를 이전 페이지인 View1으로 설정해준다.

image

그 결과 View1에서 원하는 형태로 포맷된 데이터를 확인하고, 클릭 시 해당 데이터 description을 원하는 형태로 포맷된 상태로 View2에서 확인할 수 있으며, 뒤로가기 버튼 또한 정상적으로 작동한다.

image