Migrate from classic-mode to claims-based authentication

Posted by Alvin You
2013. 9. 24. 22:50 Dynamics AX

$wa = Get-SPWebApplication -Identity "http://alvin"
$wa.Properties["portalsuperuseraccount"] = "rainbowcorp\Administrator"
$wa.Properties["portalsuperreaderaccount"] = "rainbowcorp\Administrator"
$wa.Update()

$wa = Get-SPWebApplication -Identity "http://alvin"
$wa.Properties.Remove("portalsuperuseraccount")
$wa.Properties.Remove("portalsuperreaderaccount")
$wa.Update()

$WebAppName = "http://alvin"
$wa = get-SPWebApplication $WebAppName
$wa.UseClaimsAuthentication = $true
$wa.Update()

$account = "rainbowcorp\Administrator"
$account = (New-SPClaimsPrincipal -identity $account -identitytype 1).ToEncodedString()
$wa = get-SPWebApplication $WebAppName
$zp = $wa.ZonePolicies("Default")
$p = $zp.Add($account,"PSPolicy")
$fc=$wa.PolicyRoles.GetSpecialRole("FullControl")
$p.PolicyRoleBindings.Add($fc)
$wa.Update()

$wa.MigrateUsers($true)

$wa.ProvisionGlobally()

Listpage와 Formpart간의 데이터 전송 이슈ㅜ.ㅜ

Posted by Alvin You
2013. 9. 24. 22:48 Dynamics AX

프로젝트 구축사의 요구사항 중 하나인 Vendor Portal의 추가 페이지를 개발하면서, 맞딱트리고 있는 이슈중에 하나인 아래 내용을 일주일이 넘게 고민하다가 결국엔 MS Technical Support팀에 도움을 요청한 상태입니다.

이슈 : Enterprise Portal의 Listpage의 특정 칼럼의 Total을 좌측의 Formpart에 표시

단순한 칼럼레벨의 Detail의 내용을 보여주는것은 쉽게 구현이 가능하지만, Listpage에 보여지는 값들의 총 합계 내용을 보여주는 방법은 쉽지가 않음을 절실하게 깨달았습니다.

아래 이미지는 MS에 이해력을 돕고자 만든 내용이랍니다. 혹시 이와 비슷한 고민을 해 보시거나 해결 방법을 아시는 고수님들이 계신다면 도움 부탁 드릴께요…ㅜ.ㅜ

image

SQL Server db lock 확인 방법

Posted by Alvin You
2013. 9. 24. 22:47 SQL Server

AX Client에서 해당 프로그램을 실행시켰는데, 해당 프로그램이 아무런 응답없이 멈춰있다면 SQL Server DB Lock을 의심해 볼 수도 있습니다.

현재 진행중인 프로젝트가 DB Transaction이 많아, Stored Procedure를 호출해서 구성되는 화면이 많다보니 종종 화면이 멈춘듯한 느낌이 받을때가 많습니다.

이럴 경우 확인 방법은 sp_who2 라는 SQL 명령어를 통해서 blkBy 칼럼을 통해 확인할 수 있습니다.

image

실행중인 SQL문장을 보고 싶다면 아래 내용을 통해 확인이 가능합니다.

DECLARE @sqltext VARBINARY(128)
SELECT @sqltext = sql_handle
FROM sys.sysprocesses
WHERE spid = 70

SELECT TEXT
FROM sys.dm_exec_sql_text(@sqltext)
GO

image

당연히 Lock 이 걸린 프로세스를 Kill 명령어를 통해서 종료시키면, 해당 lock은 풀립니다.

Create Dynamic Table in the X++

Posted by Alvin You
2013. 9. 24. 00:08 Dynamics AX/Development

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;
}

Query Object의 내용을 문자열로 Export

Posted by Alvin You
2013. 9. 24. 00:07 Dynamics AX/Development

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());

}

AX 2012 Resource Pages

Posted by Alvin You
2013. 9. 24. 00:06 Dynamics AX

AX 2012 Data Tables & Table Groups

Posted by Alvin You
2013. 9. 24. 00:05 Dynamics AX

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

AX 2012 Enterprise Portal

Posted by Alvin You
2013. 9. 24. 00:03 Dynamics AX

아래 화면은 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에 남기도록 하겠습니다.

AX 2012 Database Entity Relationship Diagrams

Posted by Alvin You
2013. 9. 23. 23:18 Dynamics AX

You can get the AX 2012 ERD from MS AxERD Home.

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

TiStory에 둥지를 틀며...

Posted by Alvin You
2013. 9. 23. 16:15 분류없음

오랫동안 티스토리에 둥지를 트기 위해 초대장 신청을 여러번 신청했지만,

매번 낙방을 하다가 지난 추석 연휴가 끝나가는 일요일 아침... 전혀 기대하지 않았던 XX님으로부터 초대장 메일을 받았답니다.

기쁜 마음을 누르지 못하고, 바로 Blog 개설과 함께 관리자 메뉴를 눌러 보며 기능을 파악 후 오늘에서야 이렇게 첫 글을 게시하고 있네요.

힘들게 얻은 티스토리인만큼 살아가는 이야기와 제가 몸 담고 있는 IT 생태계 이야기, 구체적으로 말씀 드리면 Microsoft Dynamics AX라는 ERP 이야기를 할려고 합니다.

많은 분들께 유익한 정보를 제공하는 Blog가 되길 바라며...

Blog 개설을 할 수 있도록 초대 메일 주신 권님 감사합니다.

-- 유봉섭 드림