Dynamics AX에서 Display method에 Database query를 사용하여 Field를 표시하는 경우가 종종 있습니다. 아주 유용하긴 하지만 과도하게 많이 사용할 경우 Display 필드의 표시 특성상 화면을 움직이거나 스크롤바 이동, 커서 이동등을 사용한 레코드 이동시에 속도를 따라가지 못하여 화면이 물결 치는(?) 현상이 나타나게 됩니다. 이는 해당 필드를 표시해야 할 필요성이 있을 때마다 DB에 Query를 보내기 때문인데 이를 조금이나마 줄여주면 성능이 개선 될 수 있습니다.

아래 소스는 Form의 Datasource에 Display Method를 만들어야 합니다.

1. classDeclaration 에 Map 선언

public class FormRun extends ObjectRun
{
    Map localMap;
}


2. 조회 버튼 클릭시 Map 초기화

void clicked()
{
    boolean ret = true;

    super();

    localMap = new Map(Types::Record, Types::Real);  // Unique Key 값을 사용

}


3. Form Datasource의 Display Method 

display InventQty getQty(FormDataSource _view)
{
    InventQty _returnQty;

    if (localMap.exists(_view))

    {
        _returnQty = localMap.lookup(_view);
    }
    else
    {
        select query 구문;

        _returnQty = Query 결과값;

        localMap.insert(_view, _returnQty);
    }

    return _returnQty;
}


Happy Daxing!!

Posted by Isaac Lee

어느정도 AX 개발에 익숙하신 분들은 굳이 ERD가 없어도 큰 불편함을 느끼지 못하지만 Microsoft DynamicsAX 2012 R2 의 ERD가 필요하신 분은 아래 사이트를 참조하시기 바랍니다.

 

Happy DAXing!!

 

http://www.microsoft.com/dynamics/ax/erd/ax2012r2/

 

 

Posted by Isaac Lee

DynamicsAX 2012에서 재고이동분개장 (Invent Transfer Journal)을 생성 > 포스팅 > 분개장 화면 오픈 하는 소스입니다.

ItemId나 Qty 등 적절히 수정하여 사용하세요.

 

// 선언부

InventJournalTable      journalTable;
InventJournalTableData  journalTableData;
InventJournalTrans inventJournalTrans;
InventDim          toInventDim;
    
Args args = new Args();    
JournalCheckPost        journalCheckPost;

 

// 분개장 헤더 생성
journalTable.clear();
journalTable.JournalNameId  = InventParameters::find().TransferJournalNameId;
journalTableData            = JournalTableData::newTable(journalTable);
journalTable.JournalId      = journalTableData.nextJournalId();
journalTable.Reservation    = ItemReservation::Automatic;
journalTable.JournalType    = InventJournalType::Transfer;

journalTableData.initFromJournalName(journalTableData.JournalStatic().findJournalName(journalTable.jourNameId));
journalTable.Description    = "분개장 생성";
journalTable.insert();
    
// 분개장 라인 생성
inventJournalTrans.JournalId      = journalTable.JournalId;
inventJournalTrans.JournalType    = InventJournalType::Transfer;
inventJournalTrans.TransDate      = systemdateget();
inventJournalTrans.ItemId         = ItemId;
inventJournalTrans.Qty            = Qty;

inventJournalTrans.InventDimId    = FromInventDimId;
inventJournalTrans.initFromInventTable(InventTable::find(ItemId), False, False);

toInventDim.inventSiteId         = toInventDim.InventSiteId;
toInventDim.InventLocationId     = toInventDim.InventLocationId;
inventJournalTrans.ToInventDimId = InventDim::findOrCreate(toInventDim).inventDimId;
inventJournalTrans.insert();
    
// 분개장 Posting
journalCheckPost = InventJournalCheckPost::newPostJournal(journalTable);

if(journalCheckPost.validate())
{
    try
    {
        journalCheckPost.run();
    }
    catch
    {
        journalTable.delete();
    }
}
    
// 분개장 화면 Open
args.record(inventJournalTable);
new MenuFunction(MenuItemDisplayStr(InventJournalTableTransfer),MenuItemType::Display).run(Args);

 

Posted by Isaac Lee

AX 2012 공인 매뉴얼 제본판입니다. 책상에 올려두었는데 다른 책들에 밀려 더이상 보관할 공간이 없네요. ㅜㅜ

혹 필요하신 분이 있을라나요~ 책상태는 부끄럽게도 아~주 깨끗하답니다.

 

Posted by Isaac Lee

 

Dynamics AX 2012 커스터마이징을 위한 Best Practice 문서 입니다. Dynamics AX 개발자시라면 꼭 한번 쯤 쓰윽 훑어 보시는 것도 좋을듯 합니다.

 

 

Best practices for developing customizations_AX2012.pdf

 

 

 

 

Posted by Isaac Lee

Microsoft Dynamics AX 2012는 BI를 위해 분석서비스에 기본 큐브를 제공합니다. 이 기본 큐브는 Dynamics AX 2012 Setup에서는 분석서비스에 배포해 주지 않기 때문에 Business Intelligence Components를 설치한 이후 수작업으로 배포작업을 해 주어야 합니다. 이 배포작업을 진행하지 않으면 분석서비스를 이용하는 BI 보고서나 KPI등은 사용할 수 없습니다.

 

Microsoft Dynamics AX 2012의 기본 큐브는 다음 순서에 따라 배포할 수 있습니다.

1. Microsoft Dynamics AX 2012 Client 실행

2. 파일 > 도구 > 비즈니스 인텔리전스(BI)툴  > SQL 서버 분석 서비스 프로젝트 마법사 실행 

 

3.  다음 클릭

 

4. 배포 선택 후 다음 클릭 

 

5. AOT에서 프로젝트 선택을 클릭하고 Dynamics AX 프로젝트 선택 

 

6. 프로젝트 배포 선택

7. 최초 배포 작업이므로 새 데이터베이스 생성을 선택하고 Dynamics AX 입력(여기에 입력한 이름으로 분석서비스의 데이터베이스가 생성됩니다.)

8. 성공적으로 배포된 이후 프로젝트 처리 선택

    - 큐브를 처리해 주지 않으면 DB 데이터가 분석 서비스에 집계되지 않음. 

 

9. 배포 진행중 

 

10. 처리 진행 

 

11. 완료. 

 

Happy Daxing!!

Posted by Isaac Lee

 

AOT

 

Command

 

Shortcut key

Open the AOT

CTRL+D

Open a new Development Workspace

CTRL+SHIFT+W

Open a new Application Workspace

CTRL+W

Save all

CTRL+SHIFT+S

Select all application objects in a node

Select one or more application objects under a top-level node, and then press CTRL+A

Open the editor for an application object

CTRL+SHIFT+F2

Open the editor for a query or table

CTRL+O

Open the Comparison tool

Select one or more application objects, and then press CTRL+G

Compile an application object

F7

Go to the previous node

UP ARROW

Go to the next node

DOWN ARROW

Move the node up

ALT+UP ARROW

Move the node down

ALT+DOWN ARROW

Expand the current node

RIGHT ARROW

Collapse the current node

LEFT ARROW

Select multiple items

CTRL

Cancel the selection of an additional item

CTRL+SPACEBAR

Open the Properties sheet

ALT+ENTER

Open the Import dialog box

Select one or more application objects, and then press CTRL+SHIFT+I

Open the Find dialog box to find an element in the AOT

CTRL+F

Open the Help documentation for an element in the AOT

F1

 

Breakpoints


Command

Shortcut key

Remove all breakpoints.

CTRL+SHIFT+F9

Insert or remove a breakpoint.

F9

Enable or disable a breakpoint.

CTRL+F9

Open the Breakpoints dialog.

SHIFT+F9

Command

Shortcut key

Open the Scripts menu.

Scripts icon

Open Help.

F1

Show method parameter help.

CTRL+SHIFT+SPACEBAR

Execute the current job.

F5

Compile.

F7

Compile and close a method.

F8

Stop method execution (break).

CTRL+BREAK

Insert a file.

CTRL+ALT+H

Command

Shortcut key

Delete from the cursor to the end of the line.

Use SHIFT+END to select to end of line and then DELETE

Delete word to the right of the cursor.

CTRL+DELETE

Delete the word to the left of the cursor.

CTRL+BACKSPACE

Delete the current line.

CTRL+X (with cursor in line, no selection)

Command

Shortcut key

Insert script.

<SCRIPT NAME>

Insert document header.

///

Comment selection.

CTRL+E, C

Uncomment selection.

CTRL+E, U

Convert selection to lowercase.

CTRL+SHIFT+U

Convert selection to uppercase.

CTRL+U

Display all methods and properties for a selected class.

CTRL+SPACEBAR

Copy selection.

CTRL+C (with text selected)

Copy line.

CTRL+C (with cursor in line, no selection

Command

Shortcut key

Open the Find dialog.

CTRL+F

Open the Replace dialog.

CTRL+R

Start incremental search..

CTRL+I

Move to next incremental search match in method.

CTRL+I

Reverse the incremental search direction.

CTRL+Shift+I

Remove a character from the incremental search string.

BACKSPACE

Stop the incremental search.

ESC

Command

Shortcut key

Go to a specific line.

CTRL+G

Go to the next page.

PAGE UP

Go to the previous page.

PAGE DOWN

Go to the top of the code.

CTRL+HOME

Go to the bottom of the code.

CTRL+END

Go to the start of line.

HOME

Go to the end of line.

END

Move one word to the left.

CTRL+LEFT ARROW

Move one word to the right.

CTRL+RIGHT ARROW

Go to the method definition.

F12

Go to the next error message.

F4

Command

Shortcut key

Look up a label.

CTRL+ALT+SPACEBAR

Show label text.

CTRL+L

Look up a definition.

F12

Show the syntax of a method or property.

CTRL+SPACEBAR

Command

Shortcut key

Save the selected text to a separate file.

ALT+S

Close the current TAB, discarding all changes since the last save.

F6

Close and save the current code editor window.

F8

Close the current window.

CTRL+F4

Command

Shortcut key

Select all.

CTRL+A

Cancel a selection.

ESC

Select columns.

ALT+MOUSE SELECT

Select a line.

ALT+L

Select one word to the left.

CTRL+SHIFT+LEFT ARROW

Select one word to the right.

CTRL+SHIFT+RIGHT ARROW

Select text from the cursor to the start of the line.

SHIFT+HOME

Select text from the cursor to the end of the line.

SHIFT+END

Select the previous page.

SHIFT+PAGE UP

Select the next page.

SHIFT+PAGE DOWN

Select text from the cursor to the top of the code.

CTRL+SHIFT+HOME

Select text from the cursor to the bottom of the code.

CTRL+SHIFT+END

Indent the selected text.

TAB

Remove indentation.

SHIFT+TAB

Select area/column/block

ALT+MOUSE SELECT

Cancel selection

ESC

Show white space

CTRL+SHIFT+S

Command

Shortcut key

Undo the last action.

CTRL+Z (previous ten actions)

Redo the last action after an Undo.

CTRL+Y (previous ten actions)

Posted by Isaac Lee

Help viewer shortcut keys


To do this

Press

Display the Help window.

F1

Close the Help window.

ALT+F4

Print the current Help topic.

CTRL+P

Refresh the help topic.

F5

Search for words in a help topic.

CTRL+F

Select all contents of a topic.

CTRL+A

Move the cursor to the search box.

CTRL+E

Display the default help topic.

ALT+HOME

Copy selected content.

CTRL+C

In a table of contents, select the next and previous item, respectively.

DOWN ARROW and UP ARROW

In a table of contents, expand and collapse the selected item, respectively.

RIGHT ARROW and LEFT ARROW

Move the cursor to the next hidden text or hyperlink, or Expand All or Collapse All at the top of a topic.

TAB

Move the cursor to the previous hidden text or hyperlink.

SHIFT+TAB

Perform the action for the selected Expand All, Collapse All, hidden text, or hyperlink.

ENTER

Move back to the previous Help topic.

ALT+LEFT ARROW

Move forward to the next Help topic.

ALT+RIGHT ARROW

Scroll small amounts up and down, respectively, in the currently displayed Help topic.

UP ARROW and RIGHT ARROW

Scroll larger amounts up and down, respectively, in the currently displayed Help topic.

PAGE UP and PAGE DOWN

Display the Options menu.

ALT+O

To do this

Press

Display the Navigation Pane if it is collapsed.

ALT+F1

Display key tips for the File menu.

ALT

Display the View menu.

ALT+V

Display the Windows menu.

ALT+W

Display the Help menu.

ALT+H

Turn the auto-hide mode for the Navigation Pane on an off.

SHIFT+ALT+F1

Move between modules.

CTRL+TAB

In the Navigation Pane tree view, select the next and previous item, respectively.

UP ARROW or DOWN ARROW

In the Navigation Pane, expand and collapse the selected item, respectively.

RIGHT ARROW and LEFT ARROW

Move the cursor to the address bar.

F11

Use the Back function on the address bar.

ALT+LEFT ARROW

Use the Forward function on the address bar.

ALT+RIGHT ARROW

Display the shortcut menu for the Presence indicator.

CTRL+SHIFT+M

To do this

Press

Display key tips for the File menu and for Action Pane tabs and groups on the currently displayed tab.

ALT

Display key tips for groups in an Action Pane tab.

ALT+Key for the tab, and then ALT

NoteNote

If the same key is used for multiple controls, press the key again until the focus is on the control that you want, and then press ENTER.

Display key tips for actions within groups in an Action Pane tab.

ALT+Key for the tab, and then ALT+Key for the group

NoteNote

If the same key is used for multiple controls, press the key again until the focus is on the control that you want and then press ENTER.

Hide key tips.

ESC

To do this

Press

Use the value in the current field as a filter.

CTRL+F (clears existing filters)

Use the value in the current field as a filter.

CTRL+K (adds to existing filters)

Filter data by the current field value.

ALT+F3

Create filters across all columns that you can filter on in a grid.

CTRL+G

Add query criteria to filter on (Query dialog).

CTRL+F3

Clear all filters.

CTRL+SHIFT+F3

Move to the filter field of the column that the cursor is in.

CTRL+UP ARROW

To do this

Press

Move to the record above the currently selected record.

UP ARROW

Move to the record below the currently selected record.

DOWN ARROW

Move to the first record.

CTRL+HOME

Move to the last record.

CTRL+END

Move to previous page of records.

PAGE UP

Move to next page of records.

PAGE DOWN

Open the selection list for a drop-down list.

ALT+DOWN ARROW

Select records in a list from the selected record to the first record in the list.

CTRL+SHIFT+HOME

Select records in a list from the first selected record to the last record in the list.

CTRL+SHIFT+END

Select all records in a list.

CTRL+A

To do this

Press

Close the current form without saving changes.

ESC or CTRL+Q

Create a record.

CTRL+N

Delete a record.

ALT+F9

If a grid control does not have focus, this keyboard combination selects the first field on the form. If a grid control has focus, this keyboard combination selects multiple records in the grid.

CTRL+SHIFT+HOME

If a grid control does not have focus, this keyboard combination selects the last field on the form. If a grid control has focus, this keyboard combination selects multiple records in the grid.

CTRL+SHIFT+END

Move to the next control on a non-dialog form.

TAB

ENTER (skips buttons; includes fields on all tabs)

Move to the previous control on a non-dialog form.

SHIFT+TAB (includes buttons; includes fields only on the current tab)

SHIFT+ENTER (skips buttons; includes fields on all tabs)

Move to the first record.

CTRL+HOME

Move to the last record.

CTRL+END

Move to the previous record.

CTRL+PAGE UP

Move to the next record.

CTRL+PAGE DOWN

Move to the next page of records.

PAGE DOWN

Move to the previous page of records.

PAGE UP

Open a context menu (right-click menu) for the current field.

SHIFT+F10

Display the form where the values for the current field are maintained.

CTRL+ALT+F4

Print a report of the contents of the current form (auto report).

CTRL+P

Refresh the information displayed in the form.

F5

Cancel changes and restore the active record.

CTRL+F5

Select the button with focus.

SPACE

Save changes and close the current form.

CTRL+F4

Save changes to a form.

CTRL+S

Move to the next tab (when a control on a tab has focus).

CTRL+TAB

Move to the previous tab when a control on a tab has focus).

CTRL+SHIFT+TAB

Expand all FastTabs.

CTRL+SHIFT and then press +

Collapse all FastTabs.

CTRL+SHIFT and then press -

Expand the FastTab that has focus.

CTRL and then press +

Collapse the FastTab that has focus.

CTRL and then press -

Move focus to a specific tab.

CTRL + the FastTab number

If a FastTab is the second FastTab on a form, then the number of that FastTab is 2.

Select the default button on a dialog form.

ENTER

To do this

Press

Move to the previous page or scroll to the top of the current page.

PAGE UP

Move to the next page or scroll to the bottom of the current page.

PAGE DOWN

To do this

Press

Paste contents from your clipboard into the current field.

CTRL+V

Enter the session date in a date field.

D+TAB

For a date time field, press D+TAB, enter a time and then press TAB again.

Enter the current date in a date field.

T+TAB

For a date time field, press T+TAB, enter a time and then press TAB again.

Enter a date from the current month in a date field.

[Day]+TAB

For example, if you enter 12+TAB, the full date for the twelfth of the current month will be displayed.

Enter a date from the current year in a date field.

[MonthDay]+TAB

For example, if you enter 0325+TAB, the full date for March 25 of the current year will be displayed.

Calculate an amount in an amount field.

[Equation]+TAB

For example, if you enter 4*16+TAB, 64 will be displayed in the field.

To do this

Press

Select the parent of the currently selected node.

UP ARROW

Select the child node that is directly under the currently selected node.

DOWN ARROW

Select the node that is to the left of the currently selected node.

LEFT ARROW

Select the node that is to the right of the currently selected node.

RIGHT ARROW

Make the selected node the focus.

SPACE

Open the details page related to the selected node.

ENTER

Cut the selected node or branch (must be in Edit mode).

CTRL+X

Paste cut nodes as children of the selected node.

CTRL+V

Open the right-click menu for the selected node.

CTRL+N

Remove the selected node and all of its child nodes from the hierarchy.

DELETE

Posted by Isaac Lee

롤센터의 웹파트중에는 Cue가 있습니다. Cue는 조건에 맞는 데이터의 수치를 아이콘화 하여 표시하며 설정에 따라 경고표시(!)를 할 수 있으며 아이콘을 클릭하면 관련 화면으로 이동시켜 줍니다.


기본으로 제공되어지는 Cue 이외에 새로운 Cue를 만들고 롤센터에 표시하는 것도 손쉽게 할 수 있습니다. 백견이 불여일행! 다음 예제를 참조하셔서 직접 추가해 보시기 바랍니다.

1. Accounts receivable > Common > Customer invoices > Open customer invoices 리스트 페이지 실행
2. Advanced filter 클릭
3. 이전 필터링된 조건이 있을 경우 초기화를 위해 Reset 클릭
4. Range 탭의 그리드에 라인 추가(Ctrl-N)
5. Open customer transactions 테이블 선택
6. Amount 필드 선택
7. criteria 에 >50000 입력
8. Modify 버튼을 클릭하고 Save as cue 선택

9. Cue 이름 입력 : Large open invoices
10. Show sum of field에 CustTransOpen::AmountMST 선택
11. Show alert when count is 선택하고 Greater than에 5입력

 

12. 롤센터의 추가하고자 하는 웹파트에서 Add Cue 클릭
13. Cue to add 에 위에서 생성한 Cue(Large open invoices) 선택


Posted by Isaac Lee
SQL Server 2012를 공식지원하는 Dynamics AX 2012 Hotfix가 나왔습니다. 지난번 설치기 포스팅과 같은 삽질(ㅜㅜ)은 이제 안하셔도 되겠네요.


설치를 위해서는 Dynamics AX 2012의 설치 프로그램에 Hotfix를 적용시켜야 합니다.

설치 프로그램을 패치하는 방법은 아주 간단합니다. 설치 DVD를 로컬 폴더에 복사하고 Update 폴더에 DynamicsAX2012-KB2680186 폴더를 만들고 그 안에 Hotfix를 압축해제하거나 Ultra ISO 같은 CD/DVD 이미지 관리 프로그램을 사용하여 동일 작업 수행해 주기만 하면 됩니다. 이 방법은 Dynamics AX 2012의 다른 Hotfix도 동일하게 적용가능합니다.


설치 프로그램의 패치가 완료되면 이후 과정은 기존 설치과정과 동일하게 진행하시면 됩니다.


최종 버전번호는 아래 화면과 같습니다.

Posted by Isaac Lee