메뉴 건너뛰기


Developer > DW,DM,BI

QlikView Document Layout Import & Export

2014.02.06 00:29

푸우 조회 수:7571


QlikView 에서 File 메뉴에 보면 분명이 "Export Document Layout..."과 "Import Document Layout"이란게 있다.

export.png


import.png

그런데 이상하게 Export 시에는 Output이 특정 폴더인데 반해 Import 시에는 Layout.xml 이라는 특정한 파일을 요구한다.

하물며 Export 한 폴더 안에는 Layout.xml이라느 파일도 존재하지 않는다.


도대체 어떻게 Export 하고 Import하라는 것인지 도무지 알 수가 없다.

그래서 이를 마스터 하기 위해 이것 저것 찾아보고 테스트 해보려 한다.


1. 메뉴 Import Document Layout 에서 Layout.xml 파일을 요구하는 이유


이것 저것 찾다보니 이유가 있었다. QV9에서는 "Export Document Layout"을 할 경우 하나의 xml파일을 생성했다고 한다. 이것을 Import 시키는 메뉴가 바로 "Import Document Layout" 이란다.

QV10이후에서도 하나의 xml 파일로 Export 시킬 수 있는데 다음과 같은 형태의 macro API를 호출하면 된단다. (테스트는 해 보지 않았다.)


ActiveDocument.ExportLayoutFile("myfile.xml")


QV10 이후에는 "Export Document Layout"은 각 오브젝트들의 xml파일 집합들 출 Export 된다. "Import Document Layout"은 하위 호환성을 위해 존재하는 메뉴이다.

이것 때문에 한참을 고생했었다. 참 불친절한 QlikView다.



2. QV10 이후에서 Export 된 Document Layout Import 시키는 방법


QV10 이후에는 다음과 같은 순서로 Document Layout을 Export 하고 Import 시킬 수 있다.


  1) "Export Document Layout"을 사용하여 "myapp-prj"라는 이름의 폴더에 export한다.

  2) "myapp-prj" 폴더 상위 폴더에 아무 qvw파일이나 복사한다.

  3) 복사된 qvw파일을 "myapp.qvw" 이라고 이름을 바꾼다. (여기서 중요한 점은 qvw이름은 폴더이름에 "-prj"를 제외한 것과 같아야 한다.) 

      대소문자는 구분하지 않는다.

  4) "myapp.qvw"파일을 QlikView로 열면 자동으로 Document Layout이 Import 된다.


물론 2)와 3)번을 한번에 하기 위해 QlikView에서 해당 폴더에 "myapp.qvw"파일을 저장해도 된다.

누가 QlikView의 이런 기능을 만들었는지 몰라도 참 복잡스럽게도 해 놨다.


아래의 동영상을 참조하시라.




3. Document Layout을 Import 시키는 규칙


그런데 이런식으로 하는 Import 방법도 어떤 때는 정상적으로 동작하는 것 같은데 어떤때는 잘되질 않는다. (적어도 나는 그랬다.)

그래서 다양한 방법으로 테스트를 해 보고 몇가지 규칙을 찾았다.


 

1) QlikView로 qvw파일을 열때

qvw파일을 열때 같은 폴더에 qvw와 같은 이름의 *-prj 폴더가 있다면 *-prj 에 있는 내용을 자동 Import 시킨다.


2) QlikView로 qvw파일을 저장할때

qvw파일을 저장할 때 같은 폴더에 qvw와 같은 이름의 *-prj 폴더가 있다면 여기에 자신의 변경 사항들을 xml형태로 기록한다.


내가 테스트 시 잘 됐다 안됐다 했던 것의 원인은 다음과 같았다.

*-prj가 있는 폴더에 마우스 오른쪽 클릭해서 나오는 "새로 만들기"로 0바이트 짜리 같은이름의 qvw를 만들고 작업한 경우이다.

createqvw.png

 

이 경우 0바이트 qvw파일을 더블 클릭해서 QlikView 로 열었을때 정상적인 QlikView파일이 아니라서 인지 *-prj 폴더의 내용을 읽어들이지 않는다.

이런 다음 정상적인 qvw를 만들기 위해 저장버튼을 누르면 이때 *-prj 폴더에 현재의 qvw파일의 내용이 저장되게 되어 export된 Document Layout 자체가 손상되게 되므로 이후 어떤 동작도 정상적인 Document Layout을 읽어 들이지 못 했던 것이다.

ㅠㅠ 이것 때문에 수십번의 삽질을 했었다.

정말 불친절한 QlikView다.



4. Document Layout Import 시 문제점


Document Layout Import 시 QlikView 커뮤니티 사람들은 다음과 같은 이슈가 있다고 리포팅 하고 있다.


- 시트의 순서가 바뀐다.

- 암호 걸린 module 코드가 사라진다.

- 변수의 값이 사라진다.


참고로 Document Layout 에 대한 Export / Import 기 때문에 데이터가 사라지는 것은 정상이다. 이를 리로드를 통해 데이터를 메모리에 올려야 한다.

그런 관점에서 본다면 변수의 값이 사라지는 것은 정상적인 것 같은데 내가 테스해 본 바로는 변수 값은 그대로 가져올 수 있었다.

시트의 순서 또한 바뀌는 경우는 보질 못 했다. 버그 패치가 된 것인지 내가 테스트 한 범위에서만 나타나지 않은 것인지는 잘 모르겠다.

암호가 걸리 module 코드는 실제로 사라졌다. 히든 스크립트는 그대로 살아 있는데 module만 왜 이렇게 해 놨는지 모르겠다.

내가 테스트 한 버전은 11.20.12018.0 SR3 이다.




참고: http://qliktech.hosted.jivesoftware.com/thread/59014