MDX의 이해와 활용

Posted by Alvin You
2015. 3. 25. 00:38 Dynamics AX/Business Intelligence

Dynamics AX 에서 기본 제공되는 Initial Cube 데이터 조회를 위해서는 MDX(Multi Dimension eXpression) 구문 이해가 먼저 선행 학습되어야 합니다. 또한, 많은 SSRS Report에서 Cube 데이터를 조회하고 있으며, 새롭게 개발될 리포트가 Cube에서 데이터를 가져와야 한다면 MDX에 대한 학습은 필수라고 생각됩니다.

 

 

 

BI PowerPivot "어떻게 할까요?" 비디오

Posted by Alvin You
2015. 3. 16. 01:59 Dynamics AX/Business Intelligence

BI PowerPivot "어떻게 할까요?" 비디오

 

 

실전 TFS Online을 이용한 X++ 소스 버전관리

Posted by Alvin You
2015. 3. 7. 01:54 Dynamics AX

이번 시간에는 TFS Online을 통해 실질적으로 Version Control을 어떻게 진행 할 수 있는지 과정을 설명 드리도록 하겠습니다.

생성된 AOT Object를 Version Control 시스템에 추가하기 위해서는 추가하고자 하는 Object를 선택 후 오른쪽 마우스를 눌러 Add to Version Control 메뉴를 실행시켜 주시면 됩니다.

실행시키면 아래와 같이 Pending add on 되어 있다는 Infolog 창이 뜹니다.

다시 오른쪽 마우스를 누르게 되면 Check In, Undo Check Out, History와 같은 Version Control 팝업메뉴를 볼 수 있습니다. 또한, Version Control중인 Object의 이름이 검은색에서 파란색으로 변경되어 있는 것을 볼 수 있습니다. Object 이름이 파란색인 경우는 Check out 상태로 편집이 가능하며, 검은색일 경우에는 Check in 상태로 편집이 불가능한 상태로 바뀝니다.

다시 Check In을 누르면 아래와 같이 Pending Object 목록이 뜸과 동시에 버전에 대한 Description을 기록하고 Check in 할 수 있는 창이 뜨는 것을 볼 수 있습니다.

OK 버튼을 통해 다시 한 번 확인 후 Check in 이 진행됩니다.

위 창에서 "예"를 누르면 아래와 같이 Check in이 되었다는 확인 창을 볼 수 있습니다.

 

Version Control 팝업 메뉴 중 History 메뉴를 통해서 변경 이력을 확인해 볼 수 있습니다.

TFS Online상에서도 AOT Object들이 관리되는 것을 확인 할 수 있습니다.

Version Control을 통해 개발자에겐 개발외적으로 Check in, Check out과 Description 입력 같은 작업들이 늘었다고 볼 수 있겠지만, 버젼 관리를 통해 진행하고 있는 프로젝트의 품질과 안정성을 높일 수 있다고 봅니다.

[Book Review]Inside Dynamics AX 2012

Posted by Alvin You
2015. 3. 6. 02:30 Dynamics AX

Dynamics AX에 대해서 알고부터 지금까지 읽고 있는 Inside Dynamics AX 2012 책에 대해서 리뷰하려고 합니다. AX 개발자라면 처음부터 끝까지 정독을 권하고 싶을 정도로 정리가 잘 되어 있는 책입니다.

대신 깊은 지식보다는 Dynamics AX 개발에 대한 전체 그림(숲)을 볼 수 있는 책입니다. AX개발과 관련된 내용을 750페이지라는 제한된 페이지로 다 설명은 불가능 할 것 같습니다. 대신 이 책으로 전체 숲에 대한 큰 개념을 머릿속에 넣고 각각의 깊은 지식에 대해서는 개인의 노력으로 채워가면 어떨까 싶습니다.

혼자 하기 힘들고 버거우시다면 저와 함께 해 보는 건 어떨까요? 혹시나 관심 있으시다면 저에게 메일(zexous@gmail.com) 주셔도 됩니다.

책 내용에 대한 목차입니다. 저는 10장 BI and Analytics와 13장 Performance 내용이 유익했습니다. Dynamics AX의 BI와 Performance 영역이 아직 국내에서 많이 발전된 분야가 아니기 때문에 언젠가는 저의 얕은 지식이 큰 도움이 되리라는 생각을 가지고 열심히 봤던 챕터입니다.

Contents at a glance

PART I A TOUR OF THE DEVELOPMENT ENVIRONMENT

CHAPTER 1 Architectural overview 3

CHAPTER 2 The MorphX development environment and tools 19

CHAPTER 3 Microsoft Dynamics AX and .NET 73

CHAPTER 4 The X++ programming language 87

PART II DEVELOPING WITH MICROSOFT DYNAMICS AX

CHAPTER 5 Designing the user experience 137

CHAPTER 6 The Microsoft Dynamics AX client 159

CHAPTER 7 Enterprise Portal 195

CHAPTER 8 Workflow in Microsoft Dynamics AX 245

CHAPTER 9 Reporting in Microsoft Dynamics AX 275

CHAPTER 10 BI and analytics 299

CHAPTER 11 Security, licensing, and configuration 351

CHAPTER 12 Microsoft Dynamics AX services and integration 385

CHAPTER 13 Performance 417

CHAPTER 14 Extending Microsoft Dynamics AX 493

CHAPTER 15 Testing 527

CHAPTER 16 Customizing and adding help 545

PART III UNDER THE HOOD

CHAPTER 17 The database layer 577

CHAPTER 18 The Batch framework 613

CHAPTER 19 Application domain frameworks 633

TFS Online을 이용한 Dynamics AX 버전 관리

Posted by Alvin You
2015. 3. 6. 02:07 Dynamics AX

안녕하세요.

준영 아빠입니다. 오늘은 Dynamics AX의 Version Control을 무료로 제공되는 Visual Studio Online 서비스의 Team Foundation Server를 이용하는 방법에 대해서 설명하려고 합니다.

먼저 https://www.visualstudio.com/ 에 접속해 Free unlimited private repos에 Sign up을 진행합니다.

 

그리고, Create a Visual Studio Online Account를 통해 Dynamics AX에서 사용할 버전 관리 접속 URL을 생성합니다.

다음 단계에서는 버전관리 프로젝트를 생성합니다. 저는 VAT LocalPack에 대한 버전관리와 Process Template은 Agile 개발 방법을 선택했습니다.

측면의 Need help deciding을 통해서 Agile, Scrum, Git, Team Foundation Version Control에 대한 설명을 확인할 수 있습니다.

이제는 AOT 에 들어가 Version Control Parameters에 AX 개발에 사용할 버전관리에 대해서 설정하는 단계입니다.

 

Team Foundation Server URL의 접속 Port는 SSL Port인 443를 꼭 적어 주셔야 합니다. 제가 생성한 프로젝트의 접속 URL은 아래와 같습니다.

https://axmvp.visualstudio.com:443/DefaultCollection

OK 버튼을 누르면 아래와 같이 Pending add on이 있다는 Infolog창이 뜨면서 설정이 완료됩니다.

TFS Online에서 VAT LocalPack 프로젝트가 생성된 것을 확인 할 수 있습니다.

Dynamics AX 2012에서 Legal Entity 삭제 방법

Posted by Alvin You
2015. 1. 19. 01:11 Dynamics AX/Development

Dynamics AX 2012에서 Legal Entity(법인 코드)를 지운 다는 것은 무슨 의미 일까요? 해당 법인 코드에 생성된 모든 트랜잭션 데이터는 삭제하고 시스템에 셋팅된 값들만 남겨 놓는다는 의미로 저는 해석이 됩니다.

어떤 상황에서 이런일이 발생 할 수 있을까요?

1) 프로젝트 중반에 고객사가 인수 합병되어, Legal Entity 변경을 해야 되는 상황

2) 프로젝트를 새롭게 다시 진행해야 될 상황

 

그렇다면, 이미 트랜잭션이 발생된 Legal Entity를 AX 화면에서 삭제가 가능 할까요?

위 화면의 Delete 버튼을 눌러 Legal Entity 삭제를 시도하면, 아래와 같이 트랜잭션 데이터가 없을 경우 아래 메시지 창을 통해 삭제 할 수 있습니다.

하지만, 트랜잭션 데이터가 있는 Legal Entity 삭제의 경우는 아래와 같은 오류 메시지가 뜹니다.

이런 상황에서도 Legal Entity를 삭제하고 재 생성을 해야만 한다면 어떻게 할 수 있을까요?

아래 방법을 통해서 생성된 트랜잭션 데이터를 삭제하고, Legal Entity를 삭제할 수 있습니다.

1. 삭제하고자 하는 Legal Entity를 선택합니다. AX Client의 작업 중인 Legal Entity가 삭제 대상이면 됩니다..

2. AOT(Ctrl + D)에 들어가 "SysDatabaseTransDelete" Class에 있는 Run Method를 실행합니다.

위 클래스를 통해 선택된 회사 코드로 생성된 모든 트랜잭션 데이터를 삭제할 수 있습니다.

3. 예(Y)/아니오(N) 버튼 중 예(Y)를 누르면, 모든 트랜잭션 데이터가 삭제되기 시작합니다.

4. Organization Administration > Setup > Organization > legal entities 화면에 들어가 다시 Legal Entity를 삭제하면 오류 없이 삭제되는 것을 확인 할 수 있습니다.

X++에서 AX 2012 Table에 이미지 저장하기

Posted by Alvin You
2015. 1. 16. 01:09 Dynamics AX/Development

ERP 시스템은 기업내의 많은 업무 영역의 표준 데이터들을 관리 하기 때문에 사진, 문서, 동영상 자료와 같은 비정형 데이터의 저장 및 해당 자료가 어떤 업무와 연관되어지는지에 대한 연동이 필요하게 됩니다.

아래 코드는 사용자의 컴퓨터(Client Side)의 비정형 데이터 중 샘플로 이미지를 AX 테이블에 저장하는 코드 샘플입니다.

  • UserProfile Table

Dynamics AX 2012 Analysis Services Configuration – Part2

Posted by Alvin You
2015. 1. 12. 00:54 Dynamics AX
  • Deploy Default Cubes of the Dynamics AX to the installed analysis service

1. Dynamics AX Client의 File > Tools > Business Intelligence (BI) tools > SQL Server Analysis Services project wizard 메뉴를 실행합니다.

2. SQL Server Analysis Services project wizard 화면입니다.

3. Deploy를 선택해 기본적으로 제공되는 Default Cubes 설치를 진행합니다.

3. AOT 내의 Dynamics AX를 선택합니다.

4. Deploy에 사용될 데이터 베이스 및 Partition Key를 확인합니다. Process the project after it is successfully deployed 옵션은 설치가 성공적으로 끝나면 Cubes에 데이터를 넣는 과정을 진행하라는 옵션입니다. 기본적으로 체크되어 있지 않지만, 여기에서 체크를 했습니다.

 

5. 설치 진행 과정 중 기본적으로 셋팅되어 있어야 할

- Legal Entity의 Fiscal Calendar

- System Currency

- System Exchange Rate

에 대해서 설정되어 있지 않다는 내용입니다. 새삼 Dynamics AX가 Global ERP라는게 느껴지는 대목입니다. 설정되어 있지 않은 3가지의 내용으로 유추해 볼 수 있는 것은 재무 데이터 분석시 통화간 변환이 가능하다는 뜻이 아닐까 싶습니다.

여기에서는 설치 과정을 보여 주기 위한 과정이기 때문에 확인 버튼을 눌러 설치를 진행하겠습니다. 설치 후 위 3가지 항목을 셋팅 후에 3번과정의 Deploy 대신에 Update를 해 주시면 됩니다.

6. Deploy가 완료 되고 Processing까지 끝났다는 화면입니다.

7.설치 완료 화면입니다.

8 설치 완료 후 SQL Server Analysis Service에 들어가면 아래와 같이 Default Cubes들이 정상적으로 만들어진 것을 확인 할 수 있습니다.

Dynamics AX 2012 Analysis Services Configuration – Part1

Posted by Alvin You
2015. 1. 12. 00:54 Dynamics AX

오늘은 Dynamics AX 2012 R2의 설치 컴포넌트 중 하나인 Analysis Services Configuration 설치 및 Deploy 그리고, SQL Server Analysis Service에 들어가 Default Cube들이 정상적으로 설치되었는지 확인하는 과정을 설명 드리겠습니다.

아직 제가 셋업한 환경에는 Analysis Services Configuration가 설치되어 있지 않아 설치하는 단계부터 들어가겠습니다.

 

  • Install the Analysis Service Configuration Component

1. Dynamics AX 2012 R2 설치 CD를 넣고 setup.exe 실행시킵니다.

2. Add or modify components를 선택 후 Next를 누릅니다.

3. 설치 Components 중 Analysis Services Configuration을 선택합니다.

4. 사전 설치 항목 검사 화면에서 필요한 항목들이 설치되어 있는 확인합니다.

 

5. Business Connector Proxy 인증 계정 비밀 번호 입력 후 확인합니다.

 

6. 설치를 진행 할 MS SQL Analysis Service Instance를 선택합니다.

7. Analysis Service에서 Cube에 사용될 데이터가 있는 Database 서버와 Database Name을 확인합니다.

8. Process Cubes에 사용될 계정을 지정합니다. 이 계정은 Dynamics AX Database에 접근 할 수 있는 권한이 있어야 됩니다.

9. 다시 한 번 사전 설치 항목에 대한 확인을 합니다.

10. 아래 화면의 Install 버튼을 눌러 설치를 진행합니다.

11. 설치 진행 화면입니다.

12. 설치 완료 화면입니다.

Dynamics AX 2012의 Data Partition 기능

Posted by Alvin You
2015. 1. 10. 03:03 Dynamics AX

Dynamics AX 2012 R2에서 볼 수 있는 강력한 기능 중에 Data Partition이라는 기능이 있습니다. 대부분 설치 후 Configuration 단계에서 스쳐 지나가듯 잊었을 기능일 텐데요. 오늘은 이 기능의 특징에 대해서 살펴볼까 합니다.

  • System Administration > Setup > Partitions

 

Partition은 Application Data를 분리하기 위한 기능이라고 보시면 됩니다. 갑자기 Application Data를 분리하면 어떤 장단점이 있을까라는 질문이 저의 뇌를 자극하는군요. 이 내용에 대해서는 제가 Googling한 내용을 마지막에 공유해 드리겠습니다.

Partition과 관련된 특징은 아래 내용을 참고하시면 됩니다.

  • 데이터에 대한 관리는 Table의 "SaveDataPerPartition" 속성을 통해 관리됩니다.
  • 파티션 단위로 여러 개의 회사 코드를 관리할 수 있습니다. 즉, Partition이 틀리다면 다른 파티션의 회사 코드도 중복해서 등록이 가능합니다.
  • Intercompany 는 동일 partition 내에서만 작동되며, Partition이 틀리다면 작동하지 않습니다.
  • 공유 System Data(Batch Job, AIF port 등)는 Partition 전 영역에 사용됩니다.
  • 공유 Application Data( User, Product, Location, Parties 등)는 해당 Partition내에서만 사용이 됩니다.

*)Partition을 분리하면 어떤 장단점이 있을까요?

제가 찾은 내용은 아래와 같습니다. 테스트 목적으로 Live 환경과 동일한 테스트 환경을 구축해서 사용할 수 있다는 내용입니다. QA, DEV 환경 구축을 위해서 Multiple AOS 환경이 아닌,Single AOS 환경에서 Data Partition 단위의 QA, DEV 환경을 만들어 프로젝트를 진행할 수 있다라는 의미로 저는 해석되어집니다.

http://www.axug.com/communities/alldiscussions/viewthread/?GroupId=205&MID=1852

I've used partitions mainly for testing purposes. It's a great way to quickly create a brand new environment without having to create a separate database. It's similar to creating a new DAT company, but it's more than that. It's a new environment but still using the same database. Theoretically, you can have a totally different suite of companies. In fact, a whole different set of data between partitions. However, there are a few things to consider when creating a partition:

1. Once a partition is created, there is no way to delete it.

2. You cannot navigate from one partition to another in a single client session. Therefore, you will need to create AX configuration files for each partition. You can have multiple client instances each in a different partition, but once a client comes up in a particular partition, it must stay in that partition until you close the session (i.e., close the client).

3. The idea behind the concept of partitions is to have a clean environment really for testing purposes. Therefore, it is not recommended to use partitions on production environments. Remember, creating a new partition still uses the same underlying database. If something goes wrong and a partition gets trashed, you're stuck with that partition since it can't be deleted.