Friday, July 26, 2013

Create Dynamic Table in the X++

AX상에서 테이블 생성을 Manual로 일일이 작업하는 동료를 보며, SQL처럼 스크립트 같은걸 만들어 놓고 동일 작업이 필요할 경우 작업할 수 있는 방법은 없을지 찾다가 발견한 솔루션입니다.

이 내용을 통해서, 많은 X++ Developer들의 개발 생산성이 향상되길 빌며…

static void newTableCreate(Args _args)
{
    TreeNode treeNode;
    AOTTableFieldList fieldList;
    #AOT
    ;
    treeNode = TreeNode::findNode(#TablesPath);

    treeNode.AOTadd("KOR_SalesTable");
    SqlDataDictionary::synchronize();

    fieldList = treeNode.AOTfindChild('KOR_Table').AOTfindChild('fields');
    fieldList.addString('KOR_Field1');
    fieldList.addString('KOR_Field2);

    SqlDataDictionary::synchronize();
    print "Table Created";
    pause;
}

Thursday, July 25, 2013

Query Object의 내용을 문자열로 Export

AX 개발시에 Query Object를 만든 후 해당 내용을 다시 문자열로 Export 받아 코드 레벨의 Query Object 생성시 재사용할 수 있는 방법은 없을까 방법을 찾다가 아래와 같은 방법이 있음을 알아냈다.

◈ Query Object

image

◈위 내용을 문자열로 Export 받은 내용

Query Proc_PurchSummary object 2320c548: SELECT * FROM VendPurchOrderJour(VendPurchOrderJour_1) JOIN * FROM PurchLineAllVersions(PurchLineAllVersions_1) ON VendPurchOrderJour.RecId = PurchLineAllVersions.PurchTableVersionRecId JOIN * FROM VendTable(VendTable_1) ON PurchLineAllVersions.VendAccount = VendTable.AccountNum JOIN * FROM DirPartyTable(DirPartyTable_1) ON VendTable.Party = DirPartyTable.RecId JOIN * FROM InventDim(InventDim_1) ON PurchLineAllVersions.InventDimId = InventDim.inventDimId JOIN * FROM InventLocation(InventLocation_1) ON InventDim.InventLocationId = InventLocation.InventLocationId JOIN * FROM PurchTable(PurchTable_1) ON VendPurchOrderJour.PurchId = PurchTable.PurchId AND ((DocumentState=40)) JOIN * FROM HcmWorker(HcmWorker_1) ON PurchTable.WorkerPurchPlacer = HcmWorker.RecId JOIN * FROM DirPerson(DirPerson_1) ON HcmWorker.Person = DirPerson.RecId

◈Export 받는 방법

static void Job1(Args _args)  // X++ job.
{
    Query q = new Query(queryStr(Proc_PurchSummary));
    QueryRun qr = new QueryRun(q);
    info(q.toString());

}

Monday, July 8, 2013

AX 2012 Resource Pages

Microsoft Dynamics AX Resource Pages

http://community.dynamics.com/ax/b/axresources/default.aspx

AX 2012 Data Tables & Table Groups

MS Dynamics AX 2012 Standard에서 사용중인 Tables과 Table Groups 목록을 볼 수 있는 Excel Sheet 파일입니다.

총 4584개의 테이블이 있는데, R2에는 더 추가가 되었겠죠.

http://www.microsoft.com/en-us/download/details.aspx?id=17093

 

Table type (All)
System table (All)
Visible (All)
Shared? (SaveDataPerCompany = No) (All)
   
Row Labels Count of Table name
Framework 199
Group 778
Main 836
Miscellaneous 1148
Parameter 205
Reference 242
Transaction 654
TransactionHeader 24
TransactionLine 41
Worksheet 111
WorksheetHeader 112
WorksheetLine 234
Grand Total 4584

Friday, July 5, 2013

AX 2012 Enterprise Portal

아래 화면은 Sharepoint 2010 기반의 AX 2012 R2 Enterprise Portal 화면입니다.

image

상단의 Top Navigation 메뉴들은 아래와 같이 AX 모듈별로 나누어져 있습니다.

- HOME

- Procurement Sales

- Compliance

- Project management

- Service management

- Vendor portal

- Customer self-service

- Budgeting

- Retail

AX 전 모듈에서 웹상으로 봐야 할 리포트나 기본적인 트랜잭션이 필요한 화면들이 기본적으로 제공이 되지만, 매력적인건 이런 기능을 추가하거나 커스터마이징이 가능하는 것이죠.

아직은 프로젝트에 적용하기 위해 스터디 중이지만, 조만간 담당하고 있는 모듈의 EDD(Enterprise Design Document) 작성이 마무리 되면, 프로젝트에서 나온 요구사항을 반영하는 Vendor portal 개발 작업에 들어간답니다.

작업하면서 깨우치거나 느끼는 부분에 대해서는 Blog에 남기도록 하겠습니다.

Wednesday, July 3, 2013

Tuesday, May 7, 2013

Product Item Master Upload 프로그램 설치 가이드

    1. Create ProductItemManagement inbound Service
    AX2012 > System administrator > Setup > Services and Application Integration Framework > Inbound ports 의 New 버튼을 통해서 ProductItemManagement inbound Service 생성
    clip_image001
    Port name : ProductItemManagement
    Description : Product Item Management
    Service operations :
    clip_image002
    • EcoRes*
    • InventInventItemLocation*
    • InventItemBarcodeService*
    • InventItemService*
    1. Activate Button을 통해서 ProductItemManagement inbound Service 실행
    *** Item Upload 프로그램에서 사용하기 위해 WSDL URI 에 들어가 있는 URI 정보를 notepad등에 복사해 둠
    1. Import Custom inbound Service from XPO file
      • AX2012 Client에서 Ctrl + D 를 눌러 New Development Workspace를 실행
      • New Development Workspace의 Mainmenu > Command > Import를 실행시켜 PrivateProject_TKRProductItemUploadProject.xpo 를 Import
      • 아래와 같이 AOT(Application Object Tree)가 화면에 보이지 않는다면 Ctrl + D를 눌러 AOT 실행
    clip_image003
    AOT > Service Groups > SGCusAddDetailInfo 선택 한 후 오른쪽 마우스 버튼을 눌러 Deploy Service Group 실행
    • AX2012 > System administrator > Setup > Services and Application Integration Framework > Inbound ports에서 SGCusAddDetailInfo inbound Service가 있는지 확인 및 Activate 시킴
    • Item Upload 프로그램에서 사용하기 위해 WSDL URI 에 들어가 있는 URI 정보를 notepad등에 복사해 둠