<?xml version="1.0" encoding="UTF-8"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
	<channel>
		<title>AXForum - Блоги - Заметки по Dynamics Ax от Poleax. Автор Poleax</title>
		<link>//axforum.info/forums/blog.php?u=4016</link>
		<description>Microsoft Dynamics: Axapta, CRM, Navision. Форум, Вопросы и помощь специалистов.</description>
		<language>ru</language>
		<lastBuildDate>Fri, 24 Apr 2026 17:17:16 GMT</lastBuildDate>
		<generator>vBulletin</generator>
		<ttl>15</ttl>
		<image>
			<url>http://axforum.info//img.axforum.info/misc/rss.jpg</url>
			<title>AXForum - Блоги - Заметки по Dynamics Ax от Poleax. Автор Poleax</title>
			<link>//axforum.info/forums/blog.php?u=4016</link>
		</image>
		<item>
			<title>Падение AOS-ов рабочих приложений при операции сравнения объектов AOT</title>
			<link>//axforum.info/forums/blog.php?b=8243</link>
			<pubDate>Fri, 31 Mar 2017 15:08:03 GMT</pubDate>
			<description>Избежать падение AOS-а рабочего приложения при операции сравнения объектов AOT,
можно сняв галку «Выполнить бизнес-операции в CIL» в настройках пользователя:
Вложение 392 (//axforum.info/forums/attachment.php?attachmentid=392)
 
По какой причине, выполнение операций в CIL не возможно, следует еще установить. 
Одно можно сказать точно, что это не связано с правами учетных записей пользователя и AOS.</description>
			<content:encoded><![CDATA[<div>Избежать падение AOS-а рабочего приложения при операции сравнения объектов AOT,<br />
можно сняв галку «Выполнить бизнес-операции в CIL» в настройках пользователя:<br />
<a href="//axforum.info/forums/blog_attachment.php?attachmentid=392&amp;d=1490972849" rel="Lightbox" id="attachment392" ><img src="//axforum.info/forums/blog_attachment.php?attachmentid=392&amp;thumb=1&amp;d=1490972849" class="thumbnail" border="0" alt="Нажмите на изображение для увеличения
Название: crashAOS.png
Просмотров: 1960
Размер:	13.5 Кб
ID:	392" style="margin: 2px" /></a><br />
 <br />
По какой причине, выполнение операций в CIL не возможно, следует еще установить. <br />
Одно можно сказать точно, что это не связано с правами учетных записей пользователя и AOS.</div>

]]></content:encoded>
			<dc:creator>Poleax</dc:creator>
			<guid isPermaLink="true">//axforum.info/forums/blog.php?b=8243</guid>
		</item>
		<item>
			<title>Подключение сразу к нескольким регистрам не было включено в службе Transacton Service</title>
			<link>//axforum.info/forums/blog.php?b=3709</link>
			<pubDate>Wed, 13 Nov 2013 13:32:42 GMT</pubDate>
			<description>При запуске POS появляется ошибка : *Подключение сразу к нескольким регистрам не было включено в службе Transacton Service*
Вложение 345 (//axforum.info/forums/attachment.php?attachmentid=345)

В нашем случае помогла перезагрузка IIS там крутиться Real Time Service (RTS).</description>
			<content:encoded><![CDATA[<div>При запуске POS появляется ошибка : <b>Подключение сразу к нескольким регистрам не было включено в службе Transacton Service</b><br />
<a href="//axforum.info/forums/blog_attachment.php?attachmentid=345&amp;d=1384349321" rel="Lightbox" id="attachment345" ><img src="//axforum.info/forums/blog_attachment.php?attachmentid=345&amp;thumb=1&amp;d=1384349321" class="thumbnail" border="0" alt="Нажмите на изображение для увеличения
Название: errRTS.png
Просмотров: 1539
Размер:	8.5 Кб
ID:	345" style="margin: 2px" /></a><br />
<br />
В нашем случае помогла перезагрузка IIS там крутиться Real Time Service (RTS).</div>

]]></content:encoded>
			<dc:creator>Poleax</dc:creator>
			<guid isPermaLink="true">//axforum.info/forums/blog.php?b=3709</guid>
		</item>
		<item>
			<title>Excel цвет шрифта и фона ячейки (заметочка)</title>
			<link>//axforum.info/forums/blog.php?b=424</link>
			<pubDate>Tue, 10 Sep 2013 13:54:54 GMT</pubDate>
			<description>Цвет шрифта  из Как можно изменить цвет шрифта в Excel? (http://axforum.info/forums/showthread.php?p=63775#post63775)
void setFontColor(MSOfficeBookMark_RU  _bookMark, int  _color) 
{ 
   COM     comRange, comFont, comBorder; 
    ; 
    comRange = this.findRange(_bookMark); 

    if (comRange) 
    { 
        comFont = comRange.font(); 
        comFont.color(_color); 
    } 
}  
Список цветов ColorFillCells в Excel документе (http://axforum.info/forums/showthread.php?p=168652#post168652)

Цвет фона ячейки.
void setBackgroundColor(MSOfficeBookMark_RU  _bookMark, int  _color, int _workSheet = 1)
{
   COM     comRange, comInterior;
    ;
    comRange = this.findRange(_bookMark, _workSheet);

    if (comRange)
    {
        comInterior = comRange.Interior();
        comInterior.colorindex (_color);
    }
}</description>
			<content:encoded><![CDATA[<div>Цвет шрифта  из <a href="http://axforum.info/forums/showthread.php?p=63775#post63775" target="_blank">Как можно изменить цвет шрифта в Excel?</a><br />
<div class="xpp"><div class="smallfont xpp_title">X++:</div><pre class="alt2 xpp_code"><span style="color: blue">void</span> setFontColor(MSOfficeBookMark_RU  _bookMark, <span style="color: blue">int</span>  _color) 
{ 
   COM     comRange, comFont, comBorder; 
    ; 
    comRange = this.findRange(_bookMark); 

    <span style="color: blue">if</span> (comRange) 
    { 
        comFont = comRange.font(); 
        comFont.color(_color); 
    } 
}</pre></div><br />
Список цветов <a href="http://axforum.info/forums/showthread.php?p=168652#post168652" target="_blank">ColorFillCells в Excel документе</a><br />
<br />
Цвет фона ячейки.<br />
<div class="xpp"><div class="smallfont xpp_title">X++:</div><pre class="alt2 xpp_code"><span style="color: blue">void</span> setBackgroundColor(MSOfficeBookMark_RU  _bookMark, <span style="color: blue">int</span>  _color, <span style="color: blue">int</span> _workSheet = 1)
{
   COM     comRange, comInterior;
    ;
    comRange = this.findRange(_bookMark, _workSheet);

    <span style="color: blue">if</span> (comRange)
    {
        comInterior = comRange.Interior();
        comInterior.colorindex (_color);
    }
}</pre></div></div>

]]></content:encoded>
			<dc:creator>Poleax</dc:creator>
			<guid isPermaLink="true">//axforum.info/forums/blog.php?b=424</guid>
		</item>
		<item>
			<title>Копировать права доступа на БД из вкладки Securables (SQL Server)</title>
			<link>//axforum.info/forums/blog.php?b=359</link>
			<pubDate>Fri, 07 Dec 2012 05:55:49 GMT</pubDate>
			<description><![CDATA[После восстановления БД Ax , AOS не подключается к БД. У БД другой логин, не такой под которым стартует AOS.
Ошибка: 

---Цитата---
The Microsoft Dynamics AX Object Server 6.2$01-MicrosoftDynamicsAX2012R2 service terminated unexpectedly.  It has done this 2 time(s).

Windows detected your registry file is still in use by other applications or services. The file will be unloaded now. The applications or services that hold your registry file may not function properly afterwards.  

 DETAIL - 
 2 user registry handles leaked from \Registry\User\S-1-5-21-3493872076-3631449775-1555872641-12685:
Process 5144 (\Device\HarddiskVolume2\Windows\System32\WerFault.exe) has opened key \REGISTRY\USER\S-1-5-21-3493872076-3631449775-1555872641-12685
Process 5144 (\Device\HarddiskVolume2\Windows\System32\WerFault.exe) has opened key \REGISTRY\USER\S-1-5-21-3493872076-3631449775-1555872641-12685\Control Panel\International


Faulting application name: Ax32Serv.exe, version: 6.2.158.0, time stamp: 0x50a65c76
Faulting module name: Ax32Serv.exe, version: 6.2.158.0, time stamp: 0x50a65c76
Exception code: 0xc0000005
Fault offset: 0x0000000000667fbc
Faulting process id: 0x804
Faulting application start time: 0x01cdd43caa5d6aab
Faulting application path: C:\Program Files\Microsoft Dynamics AX\60\Server\MicrosoftDynamicsAX2012R2\Bin\Ax32Serv.exe
Faulting module path: C:\Program Files\Microsoft Dynamics AX\60\Server\MicrosoftDynamicsAX2012R2\Bin\Ax32Serv.exe
Report Id: e88ab5b8-402f-11e2-bd5e-0050568c0067

Object Server 01:  The database reported (session 1 (-AOS-)): [Microsoft][SQL Server Native Client 10.0][SQL Server]The EXECUTE permission was denied on the 
object 'XU_GetSchemaVersion', database 'MicrosoftDynamicsAX_model', schema 'dbo'.. The SQL statement was: "{ ? = CALL [MicrosoftDynamicsAX_model].[dbo].[XU_GetSchemaVersion](?, ?) }"
---Конец цитаты---
Надо перенести настройки от OldUser --> NewUser
http://social.msdn.microsoft.com/Forums/en-US/sqlsecurity/thread/90636205-34f7-4d30-91e9-530a73a0814d
http://vyaskn.tripod.com/scripting_permissions_in_sql_server_2005.htm


PHP:
---------
SET NOCOUNT ON


DECLARE	@OldUser sysname, @NewUser sysname


SET	@OldUser = 'HRUser'
SET	@NewUser = 'PersonnelAdmin'


SELECT	'USE' + SPACE(1) + QUOTENAME(DB_NAME()) AS '--Database Context'


SELECT	'--Cloning permissions from' + SPACE(1) + QUOTENAME(@OldUser) + SPACE(1) + 'to' + SPACE(1) + QUOTENAME(@NewUser) AS '--Comment'


SELECT	'EXEC sp_addrolemember @rolename =' 
	+ SPACE(1) + QUOTENAME(USER_NAME(rm.role_principal_id), '''') + ', @membername =' + SPACE(1) + QUOTENAME(@NewUser, '''') AS '--Role Memberships'
FROM	sys.database_role_members AS rm
WHERE	USER_NAME(rm.member_principal_id) = @OldUser
ORDER BY rm.role_principal_id ASC


SELECT	CASE WHEN perm.state <> 'W' THEN perm.state_desc ELSE 'GRANT' END
	+ SPACE(1) + perm.permission_name + SPACE(1) + 'ON ' + QUOTENAME(USER_NAME(obj.schema_id)) + '.' + QUOTENAME(obj.name) 
	+ CASE WHEN cl.column_id IS NULL THEN SPACE(0) ELSE '(' + QUOTENAME(cl.name) + ')' END
	+ SPACE(1) + 'TO' + SPACE(1) + QUOTENAME(@NewUser) COLLATE database_default
	+ CASE WHEN perm.state <> 'W' THEN SPACE(0) ELSE SPACE(1) + 'WITH GRANT OPTION' END AS '--Object Level Permissions'
FROM	sys.database_permissions AS perm
	INNER JOIN
	sys.objects AS obj
	ON perm.major_id = obj.[object_id]
	INNER JOIN
	sys.database_principals AS usr
	ON perm.grantee_principal_id = usr.principal_id
	LEFT JOIN
	sys.columns AS cl
	ON cl.column_id = perm.minor_id AND cl.[object_id] = perm.major_id
WHERE	usr.name = @OldUser
ORDER BY perm.permission_name ASC, perm.state_desc ASC


SELECT	CASE WHEN perm.state <> 'W' THEN perm.state_desc ELSE 'GRANT' END
	+ SPACE(1) + perm.permission_name + SPACE(1)
	+ SPACE(1) + 'TO' + SPACE(1) + QUOTENAME(@NewUser) COLLATE database_default
	+ CASE WHEN perm.state <> 'W' THEN SPACE(0) ELSE SPACE(1) + 'WITH GRANT OPTION' END AS '--Database Level Permissions'
FROM	sys.database_permissions AS perm
	INNER JOIN
	sys.database_principals AS usr
	ON perm.grantee_principal_id = usr.principal_id
WHERE	usr.name = @OldUser
AND	perm.major_id = 0
ORDER BY perm.permission_name ASC, perm.state_desc ASC
---------
]]></description>
			<content:encoded><![CDATA[<div>После восстановления БД Ax , AOS не подключается к БД. У БД другой логин, не такой под которым стартует AOS.<br />
Ошибка: <br />
<div class="q">
	<div class="smallfont q_title">Цитата:</div>
	<div class="alt2 q_body">
		
			The Microsoft Dynamics AX Object Server 6.2$01-MicrosoftDynamicsAX2012R2 service terminated unexpectedly.  It has done this 2 time(s).<br />
<br />
Windows detected your registry file is still in use by other applications or services. The file will be unloaded now. The applications or services that hold your registry file may not function properly afterwards.  <br />
<br />
 DETAIL - <br />
 2 user registry handles leaked from \Registry\User\S-1-5-21-3493872076-3631449775-1555872641-12685:<br />
Process 5144 (\Device\HarddiskVolume2\Windows\System32\WerFault.exe) has opened key \REGISTRY\USER\S-1-5-21-3493872076-3631449775-1555872641-12685<br />
Process 5144 (\Device\HarddiskVolume2\Windows\System32\WerFault.exe) has opened key \REGISTRY\USER\S-1-5-21-3493872076-3631449775-1555872641-12685\Control Panel\International<br />
<br />
<br />
Faulting application name: Ax32Serv.exe, version: 6.2.158.0, time stamp: 0x50a65c76<br />
Faulting module name: Ax32Serv.exe, version: 6.2.158.0, time stamp: 0x50a65c76<br />
Exception code: 0xc0000005<br />
Fault offset: 0x0000000000667fbc<br />
Faulting process id: 0x804<br />
Faulting application start time: 0x01cdd43caa5d6aab<br />
Faulting application path: C:\Program Files\Microsoft Dynamics AX\60\Server\MicrosoftDynamicsAX2012R2\Bin\Ax32Serv.exe<br />
Faulting module path: C:\Program Files\Microsoft Dynamics AX\60\Server\MicrosoftDynamicsAX2012R2\Bin\Ax32Serv.exe<br />
Report Id: e88ab5b8-402f-11e2-bd5e-0050568c0067<br />
<br />
<font color="Red">Object Server 01:  The database reported (session 1 (-AOS-)): [Microsoft][SQL Server Native Client 10.0][SQL Server]The EXECUTE permission was denied on the <br />
object 'XU_GetSchemaVersion', database 'MicrosoftDynamicsAX_model', schema 'dbo'.. The SQL statement was: &quot;{ ? = CALL [MicrosoftDynamicsAX_model].[dbo].[XU_GetSchemaVersion](?, ?) }&quot;</font><br />
		
	</div>
</div>Надо перенести настройки от OldUser --&gt; NewUser<br />
<a href="http://social.msdn.microsoft.com/Forums/en-US/sqlsecurity/thread/90636205-34f7-4d30-91e9-530a73a0814d" target="_blank">http://social.msdn.microsoft.com/For...9-530a73a0814d</a><br />
<a href="http://vyaskn.tripod.com/scripting_permissions_in_sql_server_2005.htm" target="_blank">http://vyaskn.tripod.com/scripting_p...erver_2005.htm</a><br />
<br />
<div style="margin:20px; margin-top:5px">
	<div class="smallfont" style="margin-bottom:2px">PHP код:</div>
	<div class="alt2" dir="ltr" style="
		margin: 0px;
		padding: 6px;
		border: 1px inset;
		width: 640px;
		height: 498px;
		text-align: left;
		overflow: auto">
		<code style="white-space:nowrap">
			<!-- php buffer start --><code><span style="color: #000000">
<span style="color: #0000BB">SET&nbsp;NOCOUNT&nbsp;ON<br /><br /><br /></span><span style="color: #007700">DECLARE&nbsp;&nbsp;&nbsp;&nbsp;@</span><span style="color: #0000BB">OldUser&nbsp;sysname</span><span style="color: #007700">,&nbsp;@</span><span style="color: #0000BB">NewUser&nbsp;sysname<br /><br /><br />SET&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">@</span><span style="color: #0000BB">OldUser&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'HRUser'<br /></span><span style="color: #0000BB">SET&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">@</span><span style="color: #0000BB">NewUser&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'PersonnelAdmin'<br /><br /><br /></span><span style="color: #0000BB">SELECT&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'USE'&nbsp;</span><span style="color: #007700">+&nbsp;</span><span style="color: #0000BB">SPACE</span><span style="color: #007700">(</span><span style="color: #0000BB">1</span><span style="color: #007700">)&nbsp;+&nbsp;</span><span style="color: #0000BB">QUOTENAME</span><span style="color: #007700">(</span><span style="color: #0000BB">DB_NAME</span><span style="color: #007700">())&nbsp;AS&nbsp;</span><span style="color: #DD0000">'--Database&nbsp;Context'<br /><br /><br /></span><span style="color: #0000BB">SELECT&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'--Cloning&nbsp;permissions&nbsp;from'&nbsp;</span><span style="color: #007700">+&nbsp;</span><span style="color: #0000BB">SPACE</span><span style="color: #007700">(</span><span style="color: #0000BB">1</span><span style="color: #007700">)&nbsp;+&nbsp;</span><span style="color: #0000BB">QUOTENAME</span><span style="color: #007700">(@</span><span style="color: #0000BB">OldUser</span><span style="color: #007700">)&nbsp;+&nbsp;</span><span style="color: #0000BB">SPACE</span><span style="color: #007700">(</span><span style="color: #0000BB">1</span><span style="color: #007700">)&nbsp;+&nbsp;</span><span style="color: #DD0000">'to'&nbsp;</span><span style="color: #007700">+&nbsp;</span><span style="color: #0000BB">SPACE</span><span style="color: #007700">(</span><span style="color: #0000BB">1</span><span style="color: #007700">)&nbsp;+&nbsp;</span><span style="color: #0000BB">QUOTENAME</span><span style="color: #007700">(@</span><span style="color: #0000BB">NewUser</span><span style="color: #007700">)&nbsp;AS&nbsp;</span><span style="color: #DD0000">'--Comment'<br /><br /><br /></span><span style="color: #0000BB">SELECT&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'EXEC&nbsp;sp_addrolemember&nbsp;@rolename&nbsp;='&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">+&nbsp;</span><span style="color: #0000BB">SPACE</span><span style="color: #007700">(</span><span style="color: #0000BB">1</span><span style="color: #007700">)&nbsp;+&nbsp;</span><span style="color: #0000BB">QUOTENAME</span><span style="color: #007700">(</span><span style="color: #0000BB">USER_NAME</span><span style="color: #007700">(</span><span style="color: #0000BB">rm</span><span style="color: #007700">.</span><span style="color: #0000BB">role_principal_id</span><span style="color: #007700">),&nbsp;</span><span style="color: #DD0000">''''</span><span style="color: #007700">)&nbsp;+&nbsp;</span><span style="color: #DD0000">',&nbsp;@membername&nbsp;='&nbsp;</span><span style="color: #007700">+&nbsp;</span><span style="color: #0000BB">SPACE</span><span style="color: #007700">(</span><span style="color: #0000BB">1</span><span style="color: #007700">)&nbsp;+&nbsp;</span><span style="color: #0000BB">QUOTENAME</span><span style="color: #007700">(@</span><span style="color: #0000BB">NewUser</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">''''</span><span style="color: #007700">)&nbsp;AS&nbsp;</span><span style="color: #DD0000">'--Role&nbsp;Memberships'<br /></span><span style="color: #0000BB">FROM&nbsp;&nbsp;&nbsp;&nbsp;sys</span><span style="color: #007700">.</span><span style="color: #0000BB">database_role_members&nbsp;</span><span style="color: #007700">AS&nbsp;</span><span style="color: #0000BB">rm<br />WHERE&nbsp;&nbsp;&nbsp;&nbsp;USER_NAME</span><span style="color: #007700">(</span><span style="color: #0000BB">rm</span><span style="color: #007700">.</span><span style="color: #0000BB">member_principal_id</span><span style="color: #007700">)&nbsp;=&nbsp;@</span><span style="color: #0000BB">OldUser<br />ORDER&nbsp;BY&nbsp;rm</span><span style="color: #007700">.</span><span style="color: #0000BB">role_principal_id&nbsp;ASC<br /><br /><br />SELECT&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">CASE&nbsp;</span><span style="color: #0000BB">WHEN&nbsp;perm</span><span style="color: #007700">.</span><span style="color: #0000BB">state&nbsp;</span><span style="color: #007700">&lt;&gt;&nbsp;</span><span style="color: #DD0000">'W'&nbsp;</span><span style="color: #0000BB">THEN&nbsp;perm</span><span style="color: #007700">.</span><span style="color: #0000BB">state_desc&nbsp;</span><span style="color: #007700">ELSE&nbsp;</span><span style="color: #DD0000">'GRANT'&nbsp;</span><span style="color: #0000BB">END<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">+&nbsp;</span><span style="color: #0000BB">SPACE</span><span style="color: #007700">(</span><span style="color: #0000BB">1</span><span style="color: #007700">)&nbsp;+&nbsp;</span><span style="color: #0000BB">perm</span><span style="color: #007700">.</span><span style="color: #0000BB">permission_name&nbsp;</span><span style="color: #007700">+&nbsp;</span><span style="color: #0000BB">SPACE</span><span style="color: #007700">(</span><span style="color: #0000BB">1</span><span style="color: #007700">)&nbsp;+&nbsp;</span><span style="color: #DD0000">'ON&nbsp;'&nbsp;</span><span style="color: #007700">+&nbsp;</span><span style="color: #0000BB">QUOTENAME</span><span style="color: #007700">(</span><span style="color: #0000BB">USER_NAME</span><span style="color: #007700">(</span><span style="color: #0000BB">obj</span><span style="color: #007700">.</span><span style="color: #0000BB">schema_id</span><span style="color: #007700">))&nbsp;+&nbsp;</span><span style="color: #DD0000">'.'&nbsp;</span><span style="color: #007700">+&nbsp;</span><span style="color: #0000BB">QUOTENAME</span><span style="color: #007700">(</span><span style="color: #0000BB">obj</span><span style="color: #007700">.</span><span style="color: #0000BB">name</span><span style="color: #007700">)&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;CASE&nbsp;</span><span style="color: #0000BB">WHEN&nbsp;cl</span><span style="color: #007700">.</span><span style="color: #0000BB">column_id&nbsp;IS&nbsp;NULL&nbsp;THEN&nbsp;SPACE</span><span style="color: #007700">(</span><span style="color: #0000BB">0</span><span style="color: #007700">)&nbsp;ELSE&nbsp;</span><span style="color: #DD0000">'('&nbsp;</span><span style="color: #007700">+&nbsp;</span><span style="color: #0000BB">QUOTENAME</span><span style="color: #007700">(</span><span style="color: #0000BB">cl</span><span style="color: #007700">.</span><span style="color: #0000BB">name</span><span style="color: #007700">)&nbsp;+&nbsp;</span><span style="color: #DD0000">')'&nbsp;</span><span style="color: #0000BB">END<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">+&nbsp;</span><span style="color: #0000BB">SPACE</span><span style="color: #007700">(</span><span style="color: #0000BB">1</span><span style="color: #007700">)&nbsp;+&nbsp;</span><span style="color: #DD0000">'TO'&nbsp;</span><span style="color: #007700">+&nbsp;</span><span style="color: #0000BB">SPACE</span><span style="color: #007700">(</span><span style="color: #0000BB">1</span><span style="color: #007700">)&nbsp;+&nbsp;</span><span style="color: #0000BB">QUOTENAME</span><span style="color: #007700">(@</span><span style="color: #0000BB">NewUser</span><span style="color: #007700">)&nbsp;</span><span style="color: #0000BB">COLLATE&nbsp;database_default<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">+&nbsp;CASE&nbsp;</span><span style="color: #0000BB">WHEN&nbsp;perm</span><span style="color: #007700">.</span><span style="color: #0000BB">state&nbsp;</span><span style="color: #007700">&lt;&gt;&nbsp;</span><span style="color: #DD0000">'W'&nbsp;</span><span style="color: #0000BB">THEN&nbsp;SPACE</span><span style="color: #007700">(</span><span style="color: #0000BB">0</span><span style="color: #007700">)&nbsp;ELSE&nbsp;</span><span style="color: #0000BB">SPACE</span><span style="color: #007700">(</span><span style="color: #0000BB">1</span><span style="color: #007700">)&nbsp;+&nbsp;</span><span style="color: #DD0000">'WITH&nbsp;GRANT&nbsp;OPTION'&nbsp;</span><span style="color: #0000BB">END&nbsp;</span><span style="color: #007700">AS&nbsp;</span><span style="color: #DD0000">'--Object&nbsp;Level&nbsp;Permissions'<br /></span><span style="color: #0000BB">FROM&nbsp;&nbsp;&nbsp;&nbsp;sys</span><span style="color: #007700">.</span><span style="color: #0000BB">database_permissions&nbsp;</span><span style="color: #007700">AS&nbsp;</span><span style="color: #0000BB">perm<br />&nbsp;&nbsp;&nbsp;&nbsp;INNER&nbsp;JOIN<br />&nbsp;&nbsp;&nbsp;&nbsp;sys</span><span style="color: #007700">.</span><span style="color: #0000BB">objects&nbsp;</span><span style="color: #007700">AS&nbsp;</span><span style="color: #0000BB">obj<br />&nbsp;&nbsp;&nbsp;&nbsp;ON&nbsp;perm</span><span style="color: #007700">.</span><span style="color: #0000BB">major_id&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">obj</span><span style="color: #007700">.&#91;</span><span style="color: #0000BB">object_id</span><span style="color: #007700">&#93;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">INNER&nbsp;JOIN<br />&nbsp;&nbsp;&nbsp;&nbsp;sys</span><span style="color: #007700">.</span><span style="color: #0000BB">database_principals&nbsp;</span><span style="color: #007700">AS&nbsp;</span><span style="color: #0000BB">usr<br />&nbsp;&nbsp;&nbsp;&nbsp;ON&nbsp;perm</span><span style="color: #007700">.</span><span style="color: #0000BB">grantee_principal_id&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">usr</span><span style="color: #007700">.</span><span style="color: #0000BB">principal_id<br />&nbsp;&nbsp;&nbsp;&nbsp;LEFT&nbsp;JOIN<br />&nbsp;&nbsp;&nbsp;&nbsp;sys</span><span style="color: #007700">.</span><span style="color: #0000BB">columns&nbsp;</span><span style="color: #007700">AS&nbsp;</span><span style="color: #0000BB">cl<br />&nbsp;&nbsp;&nbsp;&nbsp;ON&nbsp;cl</span><span style="color: #007700">.</span><span style="color: #0000BB">column_id&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">perm</span><span style="color: #007700">.</span><span style="color: #0000BB">minor_id&nbsp;</span><span style="color: #007700">AND&nbsp;</span><span style="color: #0000BB">cl</span><span style="color: #007700">.&#91;</span><span style="color: #0000BB">object_id</span><span style="color: #007700">&#93;&nbsp;=&nbsp;</span><span style="color: #0000BB">perm</span><span style="color: #007700">.</span><span style="color: #0000BB">major_id<br />WHERE&nbsp;&nbsp;&nbsp;&nbsp;usr</span><span style="color: #007700">.</span><span style="color: #0000BB">name&nbsp;</span><span style="color: #007700">=&nbsp;@</span><span style="color: #0000BB">OldUser<br />ORDER&nbsp;BY&nbsp;perm</span><span style="color: #007700">.</span><span style="color: #0000BB">permission_name&nbsp;ASC</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">perm</span><span style="color: #007700">.</span><span style="color: #0000BB">state_desc&nbsp;ASC<br /><br /><br />SELECT&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">CASE&nbsp;</span><span style="color: #0000BB">WHEN&nbsp;perm</span><span style="color: #007700">.</span><span style="color: #0000BB">state&nbsp;</span><span style="color: #007700">&lt;&gt;&nbsp;</span><span style="color: #DD0000">'W'&nbsp;</span><span style="color: #0000BB">THEN&nbsp;perm</span><span style="color: #007700">.</span><span style="color: #0000BB">state_desc&nbsp;</span><span style="color: #007700">ELSE&nbsp;</span><span style="color: #DD0000">'GRANT'&nbsp;</span><span style="color: #0000BB">END<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">+&nbsp;</span><span style="color: #0000BB">SPACE</span><span style="color: #007700">(</span><span style="color: #0000BB">1</span><span style="color: #007700">)&nbsp;+&nbsp;</span><span style="color: #0000BB">perm</span><span style="color: #007700">.</span><span style="color: #0000BB">permission_name&nbsp;</span><span style="color: #007700">+&nbsp;</span><span style="color: #0000BB">SPACE</span><span style="color: #007700">(</span><span style="color: #0000BB">1</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;</span><span style="color: #0000BB">SPACE</span><span style="color: #007700">(</span><span style="color: #0000BB">1</span><span style="color: #007700">)&nbsp;+&nbsp;</span><span style="color: #DD0000">'TO'&nbsp;</span><span style="color: #007700">+&nbsp;</span><span style="color: #0000BB">SPACE</span><span style="color: #007700">(</span><span style="color: #0000BB">1</span><span style="color: #007700">)&nbsp;+&nbsp;</span><span style="color: #0000BB">QUOTENAME</span><span style="color: #007700">(@</span><span style="color: #0000BB">NewUser</span><span style="color: #007700">)&nbsp;</span><span style="color: #0000BB">COLLATE&nbsp;database_default<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">+&nbsp;CASE&nbsp;</span><span style="color: #0000BB">WHEN&nbsp;perm</span><span style="color: #007700">.</span><span style="color: #0000BB">state&nbsp;</span><span style="color: #007700">&lt;&gt;&nbsp;</span><span style="color: #DD0000">'W'&nbsp;</span><span style="color: #0000BB">THEN&nbsp;SPACE</span><span style="color: #007700">(</span><span style="color: #0000BB">0</span><span style="color: #007700">)&nbsp;ELSE&nbsp;</span><span style="color: #0000BB">SPACE</span><span style="color: #007700">(</span><span style="color: #0000BB">1</span><span style="color: #007700">)&nbsp;+&nbsp;</span><span style="color: #DD0000">'WITH&nbsp;GRANT&nbsp;OPTION'&nbsp;</span><span style="color: #0000BB">END&nbsp;</span><span style="color: #007700">AS&nbsp;</span><span style="color: #DD0000">'--Database&nbsp;Level&nbsp;Permissions'<br /></span><span style="color: #0000BB">FROM&nbsp;&nbsp;&nbsp;&nbsp;sys</span><span style="color: #007700">.</span><span style="color: #0000BB">database_permissions&nbsp;</span><span style="color: #007700">AS&nbsp;</span><span style="color: #0000BB">perm<br />&nbsp;&nbsp;&nbsp;&nbsp;INNER&nbsp;JOIN<br />&nbsp;&nbsp;&nbsp;&nbsp;sys</span><span style="color: #007700">.</span><span style="color: #0000BB">database_principals&nbsp;</span><span style="color: #007700">AS&nbsp;</span><span style="color: #0000BB">usr<br />&nbsp;&nbsp;&nbsp;&nbsp;ON&nbsp;perm</span><span style="color: #007700">.</span><span style="color: #0000BB">grantee_principal_id&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">usr</span><span style="color: #007700">.</span><span style="color: #0000BB">principal_id<br />WHERE&nbsp;&nbsp;&nbsp;&nbsp;usr</span><span style="color: #007700">.</span><span style="color: #0000BB">name&nbsp;</span><span style="color: #007700">=&nbsp;@</span><span style="color: #0000BB">OldUser<br /></span><span style="color: #007700">AND&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">perm</span><span style="color: #007700">.</span><span style="color: #0000BB">major_id&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">0<br />ORDER&nbsp;BY&nbsp;perm</span><span style="color: #007700">.</span><span style="color: #0000BB">permission_name&nbsp;ASC</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">perm</span><span style="color: #007700">.</span><span style="color: #0000BB">state_desc&nbsp;ASC&nbsp;<br /></span>
</span>
</code><!-- php buffer end -->
		</code>
	</div>
</div></div>

]]></content:encoded>
			<dc:creator>Poleax</dc:creator>
			<guid isPermaLink="true">//axforum.info/forums/blog.php?b=359</guid>
		</item>
		<item>
			<title>Месяц прописью</title>
			<link>//axforum.info/forums/blog.php?b=350</link>
			<pubDate>Mon, 01 Oct 2012 12:13:08 GMT</pubDate>
			<description>Вариант
static void Job26(Args _args)
{
    ;

    info( new RNumDateInWordConverter_RU().date2strMonth(systemDateGet()));      //октября
    info( mthName( mthOfYr( systemDateGet())));                                  //Октябрь
}
Код:
---------
Сообщение (11:48:42)
октябр*я*
*О*ктябр*ь*
---------
</description>
			<content:encoded><![CDATA[<div>Вариант<br />
<div class="xpp"><div class="smallfont xpp_title">X++:</div><pre class="alt2 xpp_code"><span style="color: blue">static</span> <span style="color: blue">void</span> Job26(Args _args)
{
    ;

    info( <span style="color: blue">new</span> RNumDateInWordConverter_RU().date2strMonth(systemDateGet()));      <span style="color: green">//октября
</span>    info( mthName( mthOfYr( systemDateGet())));                                  <span style="color: green">//Октябрь
</span>}</pre></div><div class="xpp"><div class="smallfont xpp_title">Код:</div><pre class="alt2 xpp_code">Сообщение (11:48:42)
октябр<b>я</b>
<b>О</b>ктябр<b>ь</b></pre></div></div>

]]></content:encoded>
			<dc:creator>Poleax</dc:creator>
			<guid isPermaLink="true">//axforum.info/forums/blog.php?b=350</guid>
		</item>
		<item>
			<title>Настройка БД (Tune database Dynamics Ax)</title>
			<link>//axforum.info/forums/blog.php?b=318</link>
			<pubDate>Tue, 21 Feb 2012 09:46:41 GMT</pubDate>
			<description><![CDATA[
1. Шикарная статья: http://sqlcat.com/sqlcat/b/top10lists/archive/2010/05/20/top-tips-for-maximizing-the-performance-amp-scalability-of-dynamics-ax-2009-systems-on-sql-server-2008.aspx
2. 
   *  Tune database settings Dynamics Ax 2009 (http://technet.microsoft.com/en-us/library/aa569634%28v=ax.50%29.aspx)
   * Tune database settings Dynamics Ax 4.0 (http://msdn.microsoft.com/en-us/library/aa569634%28v=ax.10%29.aspx)
3. Microsoft Dynamics AX 2009 White Paper: Planning Database Configuration (http://axforum.info/forums/showthread.php?t=32426)
4. +  Нужная сборка документации по:
   * Microsoft Dynamics AX  2012 Resources Quick Reference (http://www.narisa.com/kb/102-microsoft-dynamics/204-dynamics-ax-2012.html)
   * Microsoft Dynamics AX Resources Quick Reference (Ax2009 & Ax 4.0) (http://www.narisa.com/kb/102-microsoft-dynamics/108-microsoft-dynamics-ax.html)

]]></description>
			<content:encoded><![CDATA[<div><ol style="list-style-type: decimal"><li>Шикарная статья: <a href="http://sqlcat.com/sqlcat/b/top10lists/archive/2010/05/20/top-tips-for-maximizing-the-performance-amp-scalability-of-dynamics-ax-2009-systems-on-sql-server-2008.aspx" target="_blank">http://sqlcat.com/sqlcat/b/top10list...rver-2008.aspx</a></li>
<li><ul><li><a href="http://technet.microsoft.com/en-us/library/aa569634%28v=ax.50%29.aspx" target="_blank"> Tune database settings Dynamics Ax 2009</a></li>
<li><a href="http://msdn.microsoft.com/en-us/library/aa569634%28v=ax.10%29.aspx" target="_blank">Tune database settings Dynamics Ax 4.0</a></li>
</ul></li>
<li><a href="http://axforum.info/forums/showthread.php?t=32426" target="_blank">Microsoft Dynamics AX 2009 White Paper: Planning Database Configuration</a></li>
<li>+  Нужная сборка документации по:<ul><li><a href="http://www.narisa.com/kb/102-microsoft-dynamics/204-dynamics-ax-2012.html" target="_blank">Microsoft Dynamics AX  2012 Resources Quick Reference</a></li>
<li><a href="http://www.narisa.com/kb/102-microsoft-dynamics/108-microsoft-dynamics-ax.html" target="_blank">Microsoft Dynamics AX Resources Quick Reference (Ax2009 &amp; Ax 4.0)</a></li>
</ul></li>
</ol></div>

]]></content:encoded>
			<dc:creator>Poleax</dc:creator>
			<guid isPermaLink="true">//axforum.info/forums/blog.php?b=318</guid>
		</item>
		<item>
			<title>Нюансы установки Sure Step 2012</title>
			<link>//axforum.info/forums/blog.php?b=295</link>
			<pubDate>Tue, 15 Nov 2011 12:24:14 GMT</pubDate>
			<description><![CDATA[Скачал ukax: Microsoft Dynamics Sure Step 2012 has landed (http://axforum.info/forums/showthread.php?t=40655&highlight=Step+2012)

Изображение: https://mbs.microsoft.com/downloads/public/lib/homepage_images/hero/PS_SureStep2012Launched_hro.jpg 

Имеем файлы (порядок установки):
1. SureStep_Client3.3.4.0_Content4.0.0.0_en-US.exe
2. SureStep_Content4.0.0.0_ru-RU.exe


* После установки запустив ярлык  Microsoft Dynamics Sure Step 2010 ( ;) в ярлыке год 2010, хотя это должен быть 2012 )
Переходим на вкладку *Preferences*, но установленный локализованный русский пакет не видно. 
Надо нажать кнопку "Check for Updates"
Вложение 180 (//axforum.info/forums/attachment.php?attachmentid=180)
* Может появится ошибка вида: *"Unable to check for updates - server could not be contacted. Please try again later."*
Это или интернета нет или (к примеру как у меня) админы через proxy закрыли доступ к серверу :)
Вложение 182 (//axforum.info/forums/attachment.php?attachmentid=182)
* После удачного запроса списка обновлений. Просто выбираем *Russian * и кнопку* "Save"*. Перезапускаем  Sure Step.
Вложение 183 (//axforum.info/forums/attachment.php?attachmentid=183)


P.S. Рекомендую ознакомится с Sure Step Training Course:  Introduction to Microsoft Dynamics Sure Step Russian (http://go.microsoft.com/fwlink/?LinkId=190791)]]></description>
			<content:encoded><![CDATA[<div>Скачал <a href="http://axforum.info/forums/showthread.php?t=40655&amp;highlight=Step+2012" target="_blank">ukax: Microsoft Dynamics Sure Step 2012 has landed</a><br />
<br />
<img src="https://mbs.microsoft.com/downloads/public/lib/homepage_images/hero/PS_SureStep2012Launched_hro.jpg" border="0" alt="" /><br />
<br />
Имеем файлы (порядок установки):<ol style="list-style-type: decimal"><li>SureStep_Client3.3.4.0_Content4.0.0.0_en-US.exe</li>
<li>SureStep_Content4.0.0.0_ru-RU.exe</li>
</ol><ul><li>После установки запустив ярлык  Microsoft Dynamics Sure Step 2010 ( ;) в ярлыке год 2010, хотя это должен быть 2012 )<br />
Переходим на вкладку <b>Preferences</b>, но установленный локализованный русский пакет не видно. <br />
Надо нажать кнопку &quot;Check for Updates&quot;<br />
<a href="//axforum.info/forums/blog_attachment.php?attachmentid=180&amp;d=1321358358" rel="Lightbox" id="attachment180" ><img src="//axforum.info/forums/blog_attachment.php?attachmentid=180&amp;thumb=1&amp;d=1321358358" class="thumbnail" border="0" alt="Нажмите на изображение для увеличения
Название: SureStep1.png
Просмотров: 1096
Размер:	134.4 Кб
ID:	180" style="margin: 2px" /></a><br /></li>
<li>Может появится ошибка вида: <b>&quot;Unable to check for updates - server could not be contacted. Please try again later.&quot;</b><br />
Это или интернета нет или (к примеру как у меня) админы через proxy закрыли доступ к серверу :)<br />
<a href="//axforum.info/forums/blog_attachment.php?attachmentid=182&amp;d=1321358535" rel="Lightbox" id="attachment182" ><img src="//axforum.info/forums/blog_attachment.php?attachmentid=182&amp;thumb=1&amp;d=1321358535" class="thumbnail" border="0" alt="Нажмите на изображение для увеличения
Название: SureStep3.png
Просмотров: 1129
Размер:	63.4 Кб
ID:	182" style="margin: 2px" /></a><br /></li>
<li>После удачного запроса списка обновлений. Просто выбираем <b>Russian </b> и кнопку<b> &quot;Save&quot;</b>. Перезапускаем  Sure Step.<br />
<a href="//axforum.info/forums/blog_attachment.php?attachmentid=183&amp;d=1321360109" rel="Lightbox" id="attachment183" ><img src="//axforum.info/forums/blog_attachment.php?attachmentid=183&amp;thumb=1&amp;d=1321360109" class="thumbnail" border="0" alt="Нажмите на изображение для увеличения
Название: SureStep2.png
Просмотров: 1140
Размер:	169.5 Кб
ID:	183" style="margin: 2px" /></a></li>
</ul><br />
P.S. Рекомендую ознакомится с Sure Step Training Course: <a href="http://go.microsoft.com/fwlink/?LinkId=190791" target="_blank"> Introduction to Microsoft Dynamics Sure Step Russian</a></div>

]]></content:encoded>
			<dc:creator>Poleax</dc:creator>
			<guid isPermaLink="true">//axforum.info/forums/blog.php?b=295</guid>
		</item>
		<item>
			<title>Разворачиваем Demo для Dynamics Ax 2012 RTM под доменным пользователем</title>
			<link>//axforum.info/forums/blog.php?b=287</link>
			<pubDate>Wed, 26 Oct 2011 12:28:00 GMT</pubDate>
			<description><![CDATA[Захотелось посмотреть Demo Dynamics Ax 2012 RTM ;) и тут началось:
1. Установил Dynamics Ax 2012 RTM CU1
Ну это отдельная история, много мата радостей и т.д. 
Два дня "удовольствия", в итоге AOS 2012 на новом виртуальном сервере Windows Server 2008 R2 SP1.
2.  Зашел на страницу к примеру для *СustomerSource*: Demo Data for Microsoft Dynamics AX 2012 SYS layer ZIP (1,093,390 KB) (https://mbs.microsoft.com/Cms/Templates/document/General.aspx?NRMODE=Published&NRNODEGUID={9293CD5A-CA33-4160-8E94-09FA934ABFE9}&NRORIGINALURL=/customersource/downloads/servicepacks/microsoftdynamicsax2012.htm?printpage=false&NRCACHEHINT=Guest&printpage=false&wa=wsignin1.0)  (Закрытый доступ)
скачал Demo БД *6.0.947.0-contoso-SYS-RTM.zip*
В документе Вложение 166 (//axforum.info/forums/attachment.php?attachmentid=166) все просто ;) Ну, ну...


Создал новую пустую БД, Restore из 6.0.947.0-contoso-SYS-RTM.bak (по инструкции)
Мой AOS 2012 работал *под логином доменного юзера* с коннектом к БД SQL Server на другом сервере.
Поэтому, конечно AOS не смог сразу подключится к БД и выдал кучу ошибок вида:
* Имя журнала: Application
Source: Dynamics Server 01
Event ID: 117
Object Server 01:  The database reported (session 1 (-AOS-)): [Microsoft][SQL Server Native Client 10.0][SQL Server]The EXECUTE permission was denied on the 
object 'XU_GetSchemaVersion', database 'AXDB_2012Demo', schema 'dbo'.. The SQL statement was: "{ ? = CALL [dbo].[XU_GetSchemaVersion](?, ?) }"
* Имя журнала: Application
Source: Dynamics Server 01
Event ID: 3000
Object Server 01 : An error situation occurred during synchronization of label files in the model store and the local label files.
 The error reported is: System.Data.SqlClient.SqlException (0x80131904): The EXECUTE permission was denied on the object 'XU_GetSchemaVersion', database 'AXDB_2012Demo', schema 'dbo'.
   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
   at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
   at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
   at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
   at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
   at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
   at Microsoft.Dynamics.MorphX.LabelSynchronizer.CheckSchemaVersion_Store()
   at Microsoft.Dynamics.MorphX.LabelSynchronizer.Load()
   at LabelSynchronizerImpl.Load(LabelSynchronizerImpl* , SqlLogin* modelLogin).


Для* DOMAIN\axaos* дал права на БД * db_datareader, db_datawriter, db_ddladmin*
Но нюанс заключался в том, что надо было настроить права доступа на *Stored procedure, Table и View*  Общим кол-вом *122 шт*. :eek:

Хм, в Demo БД было преднастроено два таких пользователя *NT AUTHORITY\NETWORK SERVICE* и *REDMOND\DCSRDCONTOSODB1$* 
Но меня интересовал мой юзер * DOMAIN\axaos*

Решил перекинуть права доступа от *NT AUTHORITY\NETWORK SERVICE* к *DOMAIN\axaos* http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=890622&msg=11502846

*Запрос генерирует код для выдачи прав доступа.* (Запускать в контексте Demo БД 2012)

PHP:
---------
SELECT 'GRANT ' + permission_name + ' ON ' + OBJECT_NAME(major_id) + ' TO [' + 'DOMAIN\axaos' +']'
FROM  sys.database_permissions
where class = 1 AND
	USER_NAME(grantee_principal_id) = 'NT AUTHORITY\NETWORK SERVICE'
---------
Получился код (122 строки):

PHP:
---------
..............
GRANT EXECUTE ON XU_GetSchemaVersion TO [DOMAIN\axaos]
GRANT EXECUTE ON XU_AllocateHandle TO [DOMAIN\axaos]
GRANT EXECUTE ON XU_Insert TO [DOMAIN\axaos]
GRANT EXECUTE ON XU_Update TO [DOMAIN\axaos]
..............
---------
Выполнил 122 команды :) И наш юзер *DOMAIN\axaos* теперь ПОЛНОЦЕННЫЙ.
AOS нормально запустился.

А дальше по инструкции Вложение 166 (//axforum.info/forums/attachment.php?attachmentid=166) даем себе админский доступ в UserInfo  :)

PHP:
---------
update userinfo 
set
	networkdomain = 'YourDomain',
	networkalias = 'YourAlias',
	SID = 'YourSID'
where ID = 'Admin'
---------
P.S. Свой SID *узнать очень просто*, взять Аксапту где у вас уже есть доступ и выполнить запрос

PHP:
---------
select SID, NETWORKDOMAIN, NETWORKALIAS
from USERINFO
where NETWORKALIAS = 'ваш доменный логин'
---------
]]></description>
			<content:encoded><![CDATA[<div>Захотелось посмотреть Demo Dynamics Ax 2012 RTM ;) <strike>и тут началось</strike>:<ol style="list-style-type: decimal"><li>Установил Dynamics Ax 2012 RTM CU1<br />
Ну это отдельная история, много <strike>мата</strike> радостей и т.д. <br />
Два дня &quot;удовольствия&quot;, в итоге AOS 2012 на новом виртуальном сервере Windows Server 2008 R2 SP1. <br />
<br /></li>
<li> Зашел на страницу к примеру для <b>СustomerSource</b>: <a href="https://mbs.microsoft.com/Cms/Templates/document/General.aspx?NRMODE=Published&amp;NRNODEGUID={9293CD5A-CA33-4160-8E94-09FA934ABFE9}&amp;NRORIGINALURL=/customersource/downloads/servicepacks/microsoftdynamicsax2012.htm?printpage=false&amp;NRCACHEHINT=Guest&amp;printpage=false&amp;wa=wsignin1.0" target="_blank">Demo Data for Microsoft Dynamics AX 2012 SYS layer ZIP (1,093,390 KB)</a>  (Закрытый доступ)<br />
скачал Demo БД <b>6.0.947.0-contoso-SYS-RTM.zip</b><br />
В документе <a href="//axforum.info/forums/blog_attachment.php?attachmentid=166&amp;d=1319625729" >Restoring RTM 6.0.947.0 Contoso SYS data for Microsoft Dynamics AX.docx</a> все просто ;) Ну, ну...</li>
</ol><br />
Создал новую пустую БД, Restore из 6.0.947.0-contoso-SYS-RTM.bak (по инструкции)<br />
Мой AOS 2012 работал <b>под логином доменного юзера</b> с коннектом к БД SQL Server на другом сервере.<br />
Поэтому, конечно AOS не смог сразу подключится к БД и выдал кучу <font color="Red">ошибок </font>вида:<ul><li>Имя журнала: Application<br />
Source: Dynamics Server 01<br />
Event ID: 117<br />
<font color="Red">Object Server 01:  The database reported (session 1 (-AOS-)): [Microsoft][SQL Server Native Client 10.0][SQL Server]The EXECUTE permission was denied on the <br />
object 'XU_GetSchemaVersion', database 'AXDB_2012Demo', schema 'dbo'.. The SQL statement was: &quot;{ ? = CALL [dbo].[XU_GetSchemaVersion](?, ?) }&quot;</font><br /></li>
<li>Имя журнала: Application<br />
Source: Dynamics Server 01<br />
Event ID: 3000<br />
<font color="Red">Object Server 01 : An error situation occurred during synchronization of label files in the model store and the local label files.<br />
 The error reported is: System.Data.SqlClient.SqlException (0x80131904): The EXECUTE permission was denied on the object 'XU_GetSchemaVersion', database 'AXDB_2012Demo', schema 'dbo'.<br />
   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)<br />
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()<br />
   at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)<br />
   at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)<br />
   at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)<br />
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)<br />
   at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)<br />
   at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()<br />
   at Microsoft.Dynamics.MorphX.LabelSynchronizer.CheckSchemaVersion_Store()<br />
   at Microsoft.Dynamics.MorphX.LabelSynchronizer.Load()<br />
   at LabelSynchronizerImpl.Load(LabelSynchronizerImpl* , SqlLogin* modelLogin).</font></li>
</ul><br />
Для<b> DOMAIN\axaos</b> дал права на БД <b> db_datareader, db_datawriter, db_ddladmin</b><br />
Но нюанс заключался в том, что надо было настроить права доступа на <b>Stored procedure, Table и View</b>  Общим кол-вом <b>122 шт</b>. :eek:<br />
<br />
Хм, в Demo БД было преднастроено два таких пользователя <b>NT AUTHORITY\NETWORK SERVICE</b> и <b>REDMOND\DCSRDCONTOSODB1$</b> <br />
Но меня интересовал мой юзер <b> DOMAIN\axaos</b><br />
<br />
Решил перекинуть права доступа от <b>NT AUTHORITY\NETWORK SERVICE</b> к <b>DOMAIN\axaos</b> <a href="http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&amp;tid=890622&amp;msg=11502846" target="_blank">http://www.sql.ru/forum/actualutils....2&amp;msg=11502846</a><br />
<br />
<b>Запрос генерирует код для выдачи прав доступа.</b> (Запускать в контексте Demo БД 2012)<br />
<div style="margin:20px; margin-top:5px">
	<div class="smallfont" style="margin-bottom:2px">PHP код:</div>
	<div class="alt2" dir="ltr" style="
		margin: 0px;
		padding: 6px;
		border: 1px inset;
		width: 640px;
		height: 82px;
		text-align: left;
		overflow: auto">
		<code style="white-space:nowrap">
			<!-- php buffer start --><code><span style="color: #000000">
<span style="color: #0000BB">SELECT&nbsp;</span><span style="color: #DD0000">'GRANT&nbsp;'&nbsp;</span><span style="color: #007700">+&nbsp;</span><span style="color: #0000BB">permission_name&nbsp;</span><span style="color: #007700">+&nbsp;</span><span style="color: #DD0000">'&nbsp;ON&nbsp;'&nbsp;</span><span style="color: #007700">+&nbsp;</span><span style="color: #0000BB">OBJECT_NAME</span><span style="color: #007700">(</span><span style="color: #0000BB">major_id</span><span style="color: #007700">)&nbsp;+&nbsp;</span><span style="color: #DD0000">'&nbsp;TO&nbsp;&#91;'&nbsp;</span><span style="color: #007700">+&nbsp;</span><span style="color: #DD0000">'DOMAIN\axaos'&nbsp;</span><span style="color: #007700">+</span><span style="color: #DD0000">'&#93;'<br /></span><span style="color: #0000BB">FROM&nbsp;&nbsp;sys</span><span style="color: #007700">.</span><span style="color: #0000BB">database_permissions<br />where&nbsp;</span><span style="color: #007700">class&nbsp;=&nbsp;</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #007700">AND<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">USER_NAME</span><span style="color: #007700">(</span><span style="color: #0000BB">grantee_principal_id</span><span style="color: #007700">)&nbsp;=&nbsp;</span><span style="color: #DD0000">'NT&nbsp;AUTHORITY\NETWORK&nbsp;SERVICE'&nbsp;<br /></span><span style="color: #0000BB"></span>
</span>
</code><!-- php buffer end -->
		</code>
	</div>
</div>Получился код (122 строки):<br />
<div style="margin:20px; margin-top:5px">
	<div class="smallfont" style="margin-bottom:2px">PHP код:</div>
	<div class="alt2" dir="ltr" style="
		margin: 0px;
		padding: 6px;
		border: 1px inset;
		width: 640px;
		height: 114px;
		text-align: left;
		overflow: auto">
		<code style="white-space:nowrap">
			<!-- php buffer start --><code><span style="color: #000000">
<span style="color: #0000BB"></span><span style="color: #007700">..............<br /></span><span style="color: #0000BB">GRANT&nbsp;EXECUTE&nbsp;ON&nbsp;XU_GetSchemaVersion&nbsp;TO&nbsp;</span><span style="color: #007700">&#91;</span><span style="color: #0000BB">DOMAIN</span><span style="color: #007700">\</span><span style="color: #0000BB">axaos</span><span style="color: #007700">&#93;<br /></span><span style="color: #0000BB">GRANT&nbsp;EXECUTE&nbsp;ON&nbsp;XU_AllocateHandle&nbsp;TO&nbsp;</span><span style="color: #007700">&#91;</span><span style="color: #0000BB">DOMAIN</span><span style="color: #007700">\</span><span style="color: #0000BB">axaos</span><span style="color: #007700">&#93;<br /></span><span style="color: #0000BB">GRANT&nbsp;EXECUTE&nbsp;ON&nbsp;XU_Insert&nbsp;TO&nbsp;</span><span style="color: #007700">&#91;</span><span style="color: #0000BB">DOMAIN</span><span style="color: #007700">\</span><span style="color: #0000BB">axaos</span><span style="color: #007700">&#93;<br /></span><span style="color: #0000BB">GRANT&nbsp;EXECUTE&nbsp;ON&nbsp;XU_Update&nbsp;TO&nbsp;</span><span style="color: #007700">&#91;</span><span style="color: #0000BB">DOMAIN</span><span style="color: #007700">\</span><span style="color: #0000BB">axaos</span><span style="color: #007700">&#93;<br />..............&nbsp;<br /></span><span style="color: #0000BB"></span>
</span>
</code><!-- php buffer end -->
		</code>
	</div>
</div>Выполнил 122 команды :) И наш юзер <b>DOMAIN\axaos</b> теперь ПОЛНОЦЕННЫЙ.<br />
AOS нормально запустился.<br />
<br />
А дальше по инструкции <a href="//axforum.info/forums/blog_attachment.php?attachmentid=166&amp;d=1319625729" >Restoring RTM 6.0.947.0 Contoso SYS data for Microsoft Dynamics AX.docx</a> даем себе админский доступ в UserInfo  :)<br />
<div style="margin:20px; margin-top:5px">
	<div class="smallfont" style="margin-bottom:2px">PHP код:</div>
	<div class="alt2" dir="ltr" style="
		margin: 0px;
		padding: 6px;
		border: 1px inset;
		width: 640px;
		height: 114px;
		text-align: left;
		overflow: auto">
		<code style="white-space:nowrap">
			<!-- php buffer start --><code><span style="color: #000000">
<span style="color: #0000BB">update&nbsp;userinfo&nbsp;<br />set<br />&nbsp;&nbsp;&nbsp;&nbsp;networkdomain&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'YourDomain'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">networkalias&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'YourAlias'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">SID&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'YourSID'<br /></span><span style="color: #0000BB">where&nbsp;ID&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'Admin'&nbsp;<br /></span><span style="color: #0000BB"></span>
</span>
</code><!-- php buffer end -->
		</code>
	</div>
</div>P.S. Свой SID <b>узнать очень просто</b>, взять Аксапту где у вас уже есть доступ и выполнить запрос<br />
<div style="margin:20px; margin-top:5px">
	<div class="smallfont" style="margin-bottom:2px">PHP код:</div>
	<div class="alt2" dir="ltr" style="
		margin: 0px;
		padding: 6px;
		border: 1px inset;
		width: 640px;
		height: 66px;
		text-align: left;
		overflow: auto">
		<code style="white-space:nowrap">
			<!-- php buffer start --><code><span style="color: #000000">
<span style="color: #0000BB">select&nbsp;SID</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">NETWORKDOMAIN</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">NETWORKALIAS<br />from&nbsp;USERINFO<br />where&nbsp;NETWORKALIAS&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'ваш&nbsp;доменный&nbsp;логин'&nbsp;<br /></span><span style="color: #0000BB"></span>
</span>
</code><!-- php buffer end -->
		</code>
	</div>
</div></div>

]]></content:encoded>
			<dc:creator>Poleax</dc:creator>
			<guid isPermaLink="true">//axforum.info/forums/blog.php?b=287</guid>
		</item>
		<item>
			<title>Квест: Workflow Dynamics Ax 2009 Sp1 RU7 c SharePoint Foundation 2010 - Этап 3</title>
			<link>//axforum.info/forums/blog.php?b=269</link>
			<pubDate>Wed, 13 Jul 2011 10:40:44 GMT</pubDate>
			<description><![CDATA[Для установки Workflow использовать пропатченный дистрибутив из Квест: Подружим Dynamics Ax 2009 Sp1 RU7 c SharePoint Foundation 2010 (http://axforum.info/forums/blog.php?b=264)

Установил Workflow, вроде бы все нормально ;), НО стали появятся ошибки вида:  Server was unable to process request. —> Access is denied
Вроде с ней разобрался в WorkFlow от DAX 2009 установленный на Sharepoint 2010 Foundation (http://axforum.info/forums/showthread.php?p=253930#post253930)

Но иногда она тоже появлялась. Сам процесс Workflow шел тяжко и наблюдались ошибки:

---Цитата---
Ошибка веб-службы: идентификатор потока работ 000066_213

Произошла непредвиденная ошибка веб-службы. Подробнее см. в журнале событий “Microsoft Dynamics AX Workflow".
---Конец цитаты---
Читал:
* Unable to Browse List Pages in EP when running SharePoint 2010 with Windows Server 2008 R2 (64 Bit) (http://blogs.technet.com/b/dynamicsaxse/archive/2010/12/28/unable-to-browse-list-pages-in-ep-when-running-sharepoint-2010-with-windows-server-2008-r2-64-bit.aspx)
* User cannot view Customers site List Pages on AX 2009 Enterprise Portal running on SharePoint 2010 (http://blogs.msdn.com/b/emeadaxsupport/archive/2010/12/22/user-cannot-view-customers-site-at-ep-on-sharepoint-2010.aspx)


Создал AXTMP or AXTEMP на %SystemRoot%\TEMP, дал доступ на папку. 
Но видимо участие учетке Workflow в группах WSS_ADMIN_WPG, IIS_IUSRS, WSS_RESTRICTED_WPG_V4, WSS_WPG не достаточно. 

Пересоздал AXTMP or AXTEMP на  %USERPROFILE%\AppData\Local\Temp
Можно или перезагрузил сервак или выполнить *iisreset /noforce*
Ошибки продолжались: 

---Цитата---
Изменение компании на:
Таблица: 0 не существует.

+

Произошла непредвиденная ошибка веб-службы. Подробнее см. в журнале событий “Microsoft Dynamics AX Workflow".
---Конец цитаты---
В итоге если добавить учетку Workflow,  в локальные админы, все ок. Хм.

P.S. Найти с помощью Process Monitor (http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx) событие с ACCESS DENIED для файла не удалось. 
Только полные локальные права админа исправили ситуацию.
Использовал User cannot view Customers site List Pages on AX 2009 Enterprise Portal running on SharePoint 2010 (http://blogs.msdn.com/b/emeadaxsupport/archive/2010/12/22/user-cannot-view-customers-site-at-ep-on-sharepoint-2010.aspx)]]></description>
			<content:encoded><![CDATA[<div>Для установки Workflow использовать пропатченный дистрибутив из <a href="http://axforum.info/forums/blog.php?b=264" target="_blank">Квест: Подружим Dynamics Ax 2009 Sp1 RU7 c SharePoint Foundation 2010</a><br />
<br />
Установил Workflow, вроде бы все нормально ;), НО стали появятся ошибки вида:  <font color="Red">Server was unable to process request. —&gt; Access is denied</font><br />
Вроде с ней разобрался в <a href="http://axforum.info/forums/showthread.php?p=253930#post253930" target="_blank">WorkFlow от DAX 2009 установленный на Sharepoint 2010 Foundation</a><br />
<br />
Но иногда она тоже появлялась. Сам процесс Workflow шел тяжко и наблюдались ошибки:<br />
<div class="q">
	<div class="smallfont q_title">Цитата:</div>
	<div class="alt2 q_body">
		
			Ошибка веб-службы: идентификатор потока работ 000066_213<br />
<br />
<font color="Red">Произошла непредвиденная ошибка веб-службы. Подробнее см. в журнале событий “Microsoft Dynamics AX Workflow&quot;.</font>
		
	</div>
</div>Читал:<ul><li><a href="http://blogs.technet.com/b/dynamicsaxse/archive/2010/12/28/unable-to-browse-list-pages-in-ep-when-running-sharepoint-2010-with-windows-server-2008-r2-64-bit.aspx" target="_blank">Unable to Browse List Pages in EP when running SharePoint 2010 with Windows Server 2008 R2 (64 Bit)</a></li>
<li><a href="http://blogs.msdn.com/b/emeadaxsupport/archive/2010/12/22/user-cannot-view-customers-site-at-ep-on-sharepoint-2010.aspx" target="_blank">User cannot view Customers site List Pages on AX 2009 Enterprise Portal running on SharePoint 2010</a></li>
</ul><br />
Создал AXTMP or AXTEMP на %SystemRoot%\TEMP, дал доступ на папку. <br />
Но видимо участие учетке Workflow в группах WSS_ADMIN_WPG, IIS_IUSRS, WSS_RESTRICTED_WPG_V4, WSS_WPG не достаточно. <br />
<br />
Пересоздал AXTMP or AXTEMP на  %USERPROFILE%\AppData\Local\Temp<br />
Можно или перезагрузил сервак или выполнить <b>iisreset /noforce</b><br />
Ошибки продолжались: <br />
<div class="q">
	<div class="smallfont q_title">Цитата:</div>
	<div class="alt2 q_body">
		
			<font color="red">Изменение компании на:<br />
Таблица: 0 не существует.</font><br />
<br />
+<br />
<br />
<font color="Red">Произошла непредвиденная ошибка веб-службы. Подробнее см. в журнале событий “Microsoft Dynamics AX Workflow&quot;.</font>
		
	</div>
</div>В итоге <font color="Green">если добавить учетку Workflow,  в локальные админы, все ок.</font> Хм.<br />
<br />
P.S. Найти с помощью <a href="http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx" target="_blank">Process Monitor</a> событие с <font color="Red">ACCESS DENIED</font> для файла не удалось. <br />
Только полные локальные права админа исправили ситуацию.<br />
Использовал <a href="http://blogs.msdn.com/b/emeadaxsupport/archive/2010/12/22/user-cannot-view-customers-site-at-ep-on-sharepoint-2010.aspx" target="_blank">User cannot view Customers site List Pages on AX 2009 Enterprise Portal running on SharePoint 2010</a></div>

]]></content:encoded>
			<dc:creator>Poleax</dc:creator>
			<guid isPermaLink="true">//axforum.info/forums/blog.php?b=269</guid>
		</item>
		<item>
			<title>Квест: Подружим Dynamics Ax 2009 Sp1 RU7 c SharePoint Foundation 2010 - Этап 2</title>
			<link>//axforum.info/forums/blog.php?b=266</link>
			<pubDate>Tue, 12 Jul 2011 09:45:36 GMT</pubDate>
			<description><![CDATA[Первый этап закончился Квест: Подружим Dynamics Ax 2009 Sp1 RU7 c SharePoint Foundation 2010 (http://axforum.info/forums/blog.php?b=264), на:
* AX 2009 Technical Journal: AX 2009 Rollup 6 and KB 2278963 (SharePoint 2010) (http://axforum.info/forums/showthread.php?t=35995) 
Отвергнут. Еще раз перестанавливать аксапту!? + RU5 + KB2278963 потом до нашего RU7!!!  :eek: Нет!
* emeadaxsupport: Resolving some issues you may experience when creating an AX 2009 Role Center and Enterprise Portal Site using SharePoint Server/Foundation 2010 after installing Microsoft Dynamics AX 2009 SP1 hotfix 2278963 (http://axforum.info/forums/showthread.php?t=34475)
Возможно пригодиться, но надеюсь, что нет.


Ценность документации ==> Вложение 137 (//axforum.info/forums/attachment.php?attachmentid=137)  из KB2278963 в том, что указан порядок действий про пропатчиванию дистрибутива аксапты (ручками копировать файлы их KB2278963). *Дистрибутив пропатчить обязательно.*
Нюанс:  XPO из KB2278963  для приложения *ТОЛЬКО * с Rollup 5. *У кого старше Rollup тому парится не надо.* ;)


*Был найден мануал :) * Sample steps on installing and configuring SharePoint 2010 and deploying AX 2009 Role Centers and Enterprise Portal (http://blogs.msdn.com/b/emeadaxsupport/archive/2011/02/14/sample-steps-on-installing-and-configuring-sharepoint-2010-and-deploying-ax-2009-role-centers-and-enterprise-portal.aspx)

Вот сей ценный документ ==> Вложение 136 (//axforum.info/forums/attachment.php?attachmentid=136) (PDF) 
В Microsoft Download Center (Dynamics AX 2009) (http://www.microsoft.com/downloads/ru-ru/results.aspx?freetext=Dynamics+AX+2009&displaylang=ru&includeen=on&stype=s_basic%3bs_ineng) этой документации нет. :( 
В нем сказано:
---Цитата---
If you have however installed the Kernel Rollup Hotfix AX 2009 SP1 Hotfix Rollup 6 and above then 
*you don’t need to install* this kernel update from KB2278963 (Rollup 6 already contains the update 
and the kernel build for RU6 is 5.0.1500.3781)
---Конец цитаты---
В списке *Customersource:*Hot Fixes Released For Microsoft Dynamics AX 2009 (https://mbs.microsoft.com/customersource/downloads/hotfixes/AX2009HotFixList.htm) найти KB2278963 в не удалось. :(

Запустил установку  пропатченный дистрибутива аксапты, ругательства на отсутствие SharePoint 3.0 исчезли. :)

*Далее работаем по инструкции* *Installing AX 2009 Role Centers and Enterprise Portal on SharePoint Foundation 2010 (2011-Feb-14)-(draft).pdf* (файл приложен приложен выше)

*Не забываем, что надо правильно скопировать файлы из KB2278963  в папку дистрибутива ISO.* см. Deployment of Microsoft SharePoint 2010 with Microsoft Dynamics AX 2009 SP1.docx страница 6.

Пару скриншотов установки:
Вложение 139 (//axforum.info/forums/attachment.php?attachmentid=139)    Вложение 140 (//axforum.info/forums/attachment.php?attachmentid=140)

В итоге все получилось. 
Результат: 
Вложение 141 (//axforum.info/forums/attachment.php?attachmentid=141) 

Вложение 143 (//axforum.info/forums/attachment.php?attachmentid=143)

P.S. Ура товарищи! :D
Подружить Dynamics Ax 2009 Sp1 RU7 c SharePoint Foundation 2010 *УДАЛОСЬ* :)]]></description>
			<content:encoded><![CDATA[<div>Первый этап закончился <a href="http://axforum.info/forums/blog.php?b=264" target="_blank">Квест: Подружим Dynamics Ax 2009 Sp1 RU7 c SharePoint Foundation 2010</a>, на:<ul><li><a href="http://axforum.info/forums/showthread.php?t=35995" target="_blank">AX 2009 Technical Journal: AX 2009 Rollup 6 and KB 2278963 (SharePoint 2010)</a> <br />
Отвергнут. Еще раз перестанавливать аксапту!? + RU5 + KB2278963 потом до нашего RU7!!!  :eek: Нет!</li>
<li><a href="http://axforum.info/forums/showthread.php?t=34475" target="_blank">emeadaxsupport: Resolving some issues you may experience when creating an AX 2009 Role Center and Enterprise Portal Site using SharePoint Server/Foundation 2010 after installing Microsoft Dynamics AX 2009 SP1 hotfix 2278963</a><br />
Возможно пригодиться, но надеюсь, что нет.</li>
</ul><br />
Ценность документации ==&gt; <a href="//axforum.info/forums/blog_attachment.php?attachmentid=137&amp;d=1310385699" >Deployment of Microsoft SharePoint 2010 with Microsoft Dynamics AX 2009 SP1.docx</a>  из KB2278963 в том, что указан порядок действий про пропатчиванию дистрибутива аксапты (ручками копировать файлы их KB2278963). <b>Дистрибутив пропатчить обязательно.</b><br />
Нюанс:  XPO из KB2278963  для приложения <b>ТОЛЬКО </b> с Rollup 5. <b>У кого старше Rollup тому парится не надо.</b> ;)<br />
<br />
<br />
<b>Был найден мануал :) </b> <a href="http://blogs.msdn.com/b/emeadaxsupport/archive/2011/02/14/sample-steps-on-installing-and-configuring-sharepoint-2010-and-deploying-ax-2009-role-centers-and-enterprise-portal.aspx" target="_blank">Sample steps on installing and configuring SharePoint 2010 and deploying AX 2009 Role Centers and Enterprise Portal</a><br />
<br />
<font color="Red">Вот сей ценный документ ==&gt; <a href="//axforum.info/forums/blog_attachment.php?attachmentid=136&amp;d=1310385293" >Installing AX 2009 Role Centers and Enterprise Portal on SharePoint Foundation 2010 (2011-Feb-14)-(d</a> (PDF)</font> <br />
В <a href="http://www.microsoft.com/downloads/ru-ru/results.aspx?freetext=Dynamics+AX+2009&amp;displaylang=ru&amp;includeen=on&amp;stype=s_basic%3bs_ineng" target="_blank">Microsoft Download Center (Dynamics AX 2009)</a> этой документации нет. :( <br />
В нем сказано:<div class="q">
	<div class="smallfont q_title">Цитата:</div>
	<div class="alt2 q_body">
		
			If you have however installed the Kernel Rollup Hotfix AX 2009 SP1 Hotfix Rollup 6 and above then <br />
<b>you don’t need to install</b> this kernel update from KB2278963 (Rollup 6 already contains the update <br />
and the kernel build for RU6 is 5.0.1500.3781)
		
	</div>
</div>В списке <b>Customersource:</b><a href="https://mbs.microsoft.com/customersource/downloads/hotfixes/AX2009HotFixList.htm" target="_blank">Hot Fixes Released For Microsoft Dynamics AX 2009</a> найти KB2278963 в не удалось. :(<br />
<br />
Запустил установку  пропатченный дистрибутива аксапты, ругательства на отсутствие SharePoint 3.0 исчезли. :)<br />
<br />
<b>Далее работаем по инструкции</b> <b>Installing AX 2009 Role Centers and Enterprise Portal on SharePoint Foundation 2010 (2011-Feb-14)-(draft).pdf</b> <font color="Red">(файл приложен приложен выше)</font><br />
<br />
<b>Не забываем, что надо правильно скопировать файлы из KB2278963  в папку дистрибутива ISO.</b> см. <i>Deployment of Microsoft SharePoint 2010 with Microsoft Dynamics AX 2009 SP1.docx</i> страница 6.<br />
<br />
Пару скриншотов установки:<br />
<a href="//axforum.info/forums/blog_attachment.php?attachmentid=139&amp;d=1310463083" rel="Lightbox" id="attachment139" ><img src="//axforum.info/forums/blog_attachment.php?attachmentid=139&amp;thumb=1&amp;d=1310463083" class="thumbnail" border="0" alt="Нажмите на изображение для увеличения
Название: sh_2.png
Просмотров: 1087
Размер:	10.8 Кб
ID:	139" style="margin: 2px" /></a>    <a href="//axforum.info/forums/blog_attachment.php?attachmentid=140&amp;d=1310463083" rel="Lightbox" id="attachment140" ><img src="//axforum.info/forums/blog_attachment.php?attachmentid=140&amp;thumb=1&amp;d=1310463083" class="thumbnail" border="0" alt="Нажмите на изображение для увеличения
Название: sh_3.png
Просмотров: 1118
Размер:	56.7 Кб
ID:	140" style="margin: 2px" /></a><br />
<br />
В итоге все получилось. <br />
Результат: <br />
<a href="//axforum.info/forums/blog_attachment.php?attachmentid=141&amp;d=1310463239" rel="Lightbox" id="attachment141" ><img src="//axforum.info/forums/blog_attachment.php?attachmentid=141&amp;thumb=1&amp;d=1310463239" class="thumbnail" border="0" alt="Нажмите на изображение для увеличения
Название: sh_4.png
Просмотров: 1279
Размер:	134.8 Кб
ID:	141" style="margin: 2px" /></a> <br />
<br />
<img src="//axforum.info/forums/blog_attachment.php?attachmentid=143&amp;d=1310463412" border="0" alt="Название: sh_5.jpg
Просмотров: 4646

Размер: 96.2 Кб" style="margin: 2px" /><br />
<br />
P.S. Ура товарищи! :D<br />
Подружить Dynamics Ax 2009 Sp1 RU7 c SharePoint Foundation 2010 <b>УДАЛОСЬ</b> :)</div>

]]></content:encoded>
			<dc:creator>Poleax</dc:creator>
			<guid isPermaLink="true">//axforum.info/forums/blog.php?b=266</guid>
		</item>
		<item>
			<title>Квест: Подружим Dynamics Ax 2009 Sp1 RU7 c SharePoint Foundation 2010</title>
			<link>//axforum.info/forums/blog.php?b=264</link>
			<pubDate>Fri, 08 Jul 2011 13:17:31 GMT</pubDate>
			<description><![CDATA[Ну чтож, захотелось подружить Dynamics Ax 2009 c SharePoint Foundation 2010 и началось...

:) Установленный  SharePoint Foundation 2010 аксапта не видит, и жаждет SharePoint Services 3.0 Sp1
Вложение 132 (//axforum.info/forums/attachment.php?attachmentid=132)

Далее читаем внимательно (информация в них дублируется, ставить  КВ 2278963 (https://mbs2.microsoft.com/Knowledgebase/kbdisplay.aspx?scid=kb,en-us,2278963)):
1. Dynamics AX 2009 и Sharepoint 2010 http://blogs.msdn.com/b/aeremenk/archive/2010/08/17/10050859.aspx
2. Compatibility Result for Microsoft SharePoint 2010 - August 2010 http://blogs.technet.com/b/dynamicsaxse/archive/2010/08/12/new-compatibility-testing-result-august-2010.aspx
3. И конечно Microsoft Dynamics AX 2009 System Requirements http://www.microsoft.com/en-us/dynamics/using/ax-system-requirements-2009.aspx


---Цитата---
Microsoft SharePoint 2010 is supported with Microsoft Dynamics AX 2009 Service Pack 1. If you plan to use SharePoint 2010, you must download and install the hotfix package available with Microsoft Knowledge Base article number *2278963 (https://mbs.microsoft.com/knowledgebase/KBDisplay.aspx?scid=kb;en-us;2278963).* For more information about installing and deploying Enterprise Portal on SharePoint 2010, see the related post (http://blogs.technet.com/b/dynamicsaxse/archive/2010/08/12/new-compatibility-testing-result-august-2010.aspx) on the Microsoft Dynamics AX Sustained Engineering blog.
---Конец цитаты---
А что там такого в KB 2278963 (~ 75Мб)? :) :
* Application\
* Kernel\
* Setup Assemblies\
* Deployment of Microsoft SharePoint 2010 with Microsoft Dynamics AX 2009 SP1.docx



---Цитата---
*3.	Clean Installation*
The following set of instructions iterates the installation steps for a clean installation of Enterprise Portal – Microsoft SharePoint 2010 on Microsoft Dynamics AX 2009 SP1.

Assumptions:
•	Windows Server 2008 with Microsoft Dynamics AX 2009 SP1 without Enterprise Portal Role Center deployed.
•	Install Microsoft SharePoint 2010
•	Create a new site in Microsoft SharePoint 2010 to ensure that Microsoft SharePoint 2010 is installed successfully.


Выкрутасы с чистой установкой KB 2278963, все описано в Deployment of Microsoft SharePoint 2010 with Microsoft Dynamics AX 2009 SP1.docx
*•	Step 1: Update setup*
To update the Setup application, follow these steps: 1.	Copy the contents of the CD folder from the Microsoft Dynamics AX 2009 DVD to a shared network folder. 

Because all later Microsoft Dynamics AX installations must be performed from this folder, make sure that all users who will install Microsoft Dynamics AX 2009 can access this folder. 
2.	Copy the Microsoft.Dynamics.Framework.Deployment.Portal.dll and Microsoft.Dynamics.Framework.Portal.dll files from the Setup directory of this hotfix package and paste them into the following locations by replacing the existing files:   	•	[SharedFolder]\CD\Msi\Components32\Program Files\Microsoft Dynamics AX\50\Client\Bin
•	[SharedFolder]\CD\Msi\Components64\Program Files (x86)\Microsoft Dynamics AX\50\Client\Bin
3.	Copy the Microsoft.Dynamics.Framework.Deployment.Portal.dll  to:•	[SharedFolder]\CD\Msi\Components64\Program Files\Microsoft Dynamics AX\50\Setup
•	[SharedFolder]\CD\Msi\Components32\Program Files\Microsoft Dynamics AX\50\Setup
4.	Copy the AxSetup.exe file from the Setup Assemblies directory of this hotfix package and paste the file into the following location by replacing the existing files:
•	[SharedFolder]\CD\Support

*•	Step 2: Install Binary Patch*1.	On any machine that has the Microsoft Dynamics AX 2009 client and AOS installed, run the AxUpdate.exe file from the Kernel directory of the hotfix package, and then follow the instructions that are provided by the Installation wizard.


NOTE: Application of this binary patch, will update files that are already installed:
•	AxUpdatePortal.exe
•	Microsoft.Dynamics.Framework.Deployment.Portal.dll
•	Microsoft.Dynamics.Framework.Portal.dll
*•	Step 3: Install Application Patch*1.	On any machine that has the Microsoft Dynamics AX 2009 client installed, run the AxUpdate.exe file from the Application directory of the hotfix package, and then follow the instructions that are provided by the Installation wizard.

o	Application of this  application patch will update the following AOT nodes•	SysEPDeployment
•	AxWebParts.cab

*•	Step 4 : Deploy Enterprise Portal Role Center by running Setup.exe from the CD folder*
---Конец цитаты---

Перед установкой *Application Patch* предлагается проверить через  Impact Analysis feature for Dynamics AX 2009 (Средство анализа влияния) KB974255 (https://mbs2.microsoft.com/Knowledgebase/KBDisplay.aspx?scid=kb$en-us$974255&wa=wsignin1.0), как повлияет kb2278963.xpo на приложение.
Учтите, что KB974255* "Это обновление применимо к версии Microsoft Dynamics AX 5.0.1000.52-5.0.1500.2093 файлов приложения."* ;) Время я только потратил, у меня Rollup 7.

О ужас,  KB 2278963 работает с "Это обновление применимо к версии 5.0.1000.52-5.0.1500.3560 файлов приложения."
Вложение 135 (//axforum.info/forums/attachment.php?attachmentid=135)
Т.е. 5.0.1500.3761	= 2009 SP1 Hotfix Rollup 6 (RU6) (http://www.axaptapedia.com/Build_numbers), Rollup 7 = 5.0.1500.4570
Встрял на:
---Цитата---
 === Запуск стадии выполнения === 
Запуск исполняемого файла клиента Microsoft Dynamics AX: C:\Program Files\Microsoft Dynamics AX\50\Client\bin\ax32.exe "-regconfig=Dev" "-logdir=C:\Documents and Settings\All Users\Application Data\Microsoft\Dynamics AX\Dynamics AX Setup Logs\2011-07-08 16-56-12" "-startupcmd=autorun_C:\Documents and Settings\All Users\Application Data\Microsoft\Dynamics AX\Dynamics AX Setup Logs\2011-07-08 16-56-12\GetVersionInformation.xml" 
Это обновление неприменимо к данной установке Microsoft Dynamics AX, поскольку установлены файлы приложения другой версии. Это обновление применимо к версии 5.0.1000.52-5.0.1500.3560 файлов приложения.
Программе установки не удалось завершить установку.

Это обновление неприменимо к данной установке Microsoft Dynamics AX.
---Конец цитаты---
Курю мануал: AX 2009 Technical Journal: AX 2009 Rollup 6 and KB 2278963 (SharePoint 2010) (http://axforum.info/forums/showthread.php?t=35995) и emeadaxsupport: Resolving some issues you may experience when creating an AX 2009 Role Center and Enterprise Portal Site using SharePoint Server/Foundation 2010 after installing Microsoft Dynamics AX 2009 SP1 hotfix 2278963 (http://axforum.info/forums/showthread.php?t=34475)


Продолжение следует ....

------------------------------------------------------------------------------------------------------------------------------------------------------------------

*Связанная информация по KB2278963 из Knowledgebase*:
* "Specified method is not supported" error when you try to install Enterprise Portal for Dynamics AX 2009 SP1 in SharePoint Server 2010 (https://mbs2.microsoft.com/Knowledgebase/kbdisplay.aspx?wtntzsmnwukntmmyxpvsklryklwntmmrtmkymrkwotnyrurw)
* 2278963  Hotfix 2278963 is available for compatibility of SharePoint 2010 with the "Role Centers and Enterprise Portal" for Microsoft Dynamics AX 2009 Service Pack 1 (https://mbs2.microsoft.com/Knowledgebase/kbdisplay.aspx?scid=kb,en-us,2278963)
* Microsoft Dynamics AX 2009 Setup will not recognise SharePoint 2010 during Role Center and Enterprise Portal Deployment even though the setup files have been patched with hotfix 2278963 (https://mbs2.microsoft.com/Knowledgebase/kbdisplay.aspx?wtntzsmnwukntmmyxpvsklryklwntmmronomsnklyxzuwmvq)



P.S. + 
* AX 2009 EP with Sharepoint 2010? (http://dynamicsuser.net/forums/p/33890/178274.aspx)
* Unable to deploy AX 2009 Enterprise Portal on SharePoint 2010 even after patching setup files with hotfix 2278963 (http://blogs.msdn.com/b/emeadaxsupport/archive/2010/12/07/unable-to-deploy-ax-2009-enterprise-portal-on-sharepoint-2010-even-after-patching-setup-files-with-hotfix-2278963.aspx)

Ключ реестра *HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\14.0\Version*
Изображение: http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-13-88/4135.procmon_5F00_14.0.png 

]]></description>
			<content:encoded><![CDATA[<div>Ну чтож, захотелось подружить Dynamics Ax 2009 c SharePoint Foundation 2010 и началось...<br />
<br />
:) Установленный  SharePoint Foundation 2010 аксапта не видит, и жаждет SharePoint Services 3.0 Sp1<br />
<a href="//axforum.info/forums/blog_attachment.php?attachmentid=132&amp;d=1310111577" rel="Lightbox" id="attachment132" ><img src="//axforum.info/forums/blog_attachment.php?attachmentid=132&amp;thumb=1&amp;d=1310111577" class="thumbnail" border="0" alt="Нажмите на изображение для увеличения
Название: sp2010.png
Просмотров: 266
Размер:	33.5 Кб
ID:	132" style="margin: 2px" /></a><br />
<br />
Далее читаем внимательно (информация в них дублируется, <font color="Green">ставить  </font><a href="https://mbs2.microsoft.com/Knowledgebase/kbdisplay.aspx?scid=kb,en-us,2278963" target="_blank">КВ 2278963</a>):<ol style="list-style-type: decimal"><li>Dynamics AX 2009 и Sharepoint 2010 <a href="http://blogs.msdn.com/b/aeremenk/archive/2010/08/17/10050859.aspx" target="_blank">http://blogs.msdn.com/b/aeremenk/arc.../10050859.aspx</a></li>
<li>Compatibility Result for Microsoft SharePoint 2010 - August 2010 <a href="http://blogs.technet.com/b/dynamicsaxse/archive/2010/08/12/new-compatibility-testing-result-august-2010.aspx" target="_blank">http://blogs.technet.com/b/dynamicsa...gust-2010.aspx</a></li>
<li>И конечно Microsoft Dynamics AX 2009 System Requirements <a href="http://www.microsoft.com/en-us/dynamics/using/ax-system-requirements-2009.aspx" target="_blank">http://www.microsoft.com/en-us/dynam...ents-2009.aspx</a></li>
</ol><div class="q">
	<div class="smallfont q_title">Цитата:</div>
	<div class="alt2 q_body">
		
			Microsoft SharePoint 2010 is supported with Microsoft Dynamics AX 2009 Service Pack 1. If you plan to use SharePoint 2010, you must download and install the hotfix package available with Microsoft Knowledge Base article number <b><a href="https://mbs.microsoft.com/knowledgebase/KBDisplay.aspx?scid=kb;en-us;2278963" target="_blank">2278963</a>.</b> For more information about installing and deploying Enterprise Portal on SharePoint 2010, see<a href="http://blogs.technet.com/b/dynamicsaxse/archive/2010/08/12/new-compatibility-testing-result-august-2010.aspx" target="_blank"> the related post</a> on the Microsoft Dynamics AX Sustained Engineering blog.
		
	</div>
</div>А что там такого в KB 2278963 (~ 75Мб)? :) :<ul><li>Application\</li>
<li>Kernel\</li>
<li>Setup Assemblies\</li>
<li>Deployment of Microsoft SharePoint 2010 with Microsoft Dynamics AX 2009 SP1.docx</li>
</ul><br />
<div class="q">
	<div class="smallfont q_title">Цитата:</div>
	<div class="alt2 q_body">
		
			<b>3.	Clean Installation</b><br />
The following set of instructions iterates the installation steps for a clean installation of Enterprise Portal – Microsoft SharePoint 2010 on Microsoft Dynamics AX 2009 SP1.<br />
<br />
Assumptions:<br />
•	Windows Server 2008 with Microsoft Dynamics AX 2009 SP1 without Enterprise Portal Role Center deployed.<br />
•	Install Microsoft SharePoint 2010<br />
•	Create a new site in Microsoft SharePoint 2010 to ensure that Microsoft SharePoint 2010 is installed successfully.<br />
<br />
<br />
Выкрутасы с чистой установкой KB 2278963, все описано в Deployment of Microsoft SharePoint 2010 with Microsoft Dynamics AX 2009 SP1.docx<br />
<b>•	Step 1: Update setup</b><br />
To update the Setup application, follow these steps: <blockquote>1.	Copy the contents of the CD folder from the Microsoft Dynamics AX 2009 DVD to a shared network folder. <br />
<br />
Because all later Microsoft Dynamics AX installations must be performed from this folder, make sure that all users who will install Microsoft Dynamics AX 2009 can access this folder. <br />
2.	Copy the Microsoft.Dynamics.Framework.Deployment.Portal.dll and Microsoft.Dynamics.Framework.Portal.dll files from the Setup directory of this hotfix package and paste them into the following locations by replacing the existing files:   <blockquote>	•	[SharedFolder]\CD\Msi\Components32\Program Files\Microsoft Dynamics AX\50\Client\Bin<br />
•	[SharedFolder]\CD\Msi\Components64\Program Files (x86)\Microsoft Dynamics AX\50\Client\Bin</blockquote>3.	Copy the Microsoft.Dynamics.Framework.Deployment.Portal.dll  to:<blockquote>•	[SharedFolder]\CD\Msi\Components64\Program Files\Microsoft Dynamics AX\50\Setup<br />
•	[SharedFolder]\CD\Msi\Components32\Program Files\Microsoft Dynamics AX\50\Setup</blockquote>4.	Copy the AxSetup.exe file from the Setup Assemblies directory of this hotfix package and paste the file into the following location by replacing the existing files:<br />
•	[SharedFolder]\CD\Support<br />
</blockquote><b>•	Step 2: Install Binary Patch</b><blockquote>1.	On any machine that has the Microsoft Dynamics AX 2009 client and AOS installed, run the AxUpdate.exe file from the Kernel directory of the hotfix package, and then follow the instructions that are provided by the Installation wizard.<br />
<br />
<br />
NOTE: Application of this binary patch, will update files that are already installed:<br />
•	AxUpdatePortal.exe<br />
•	Microsoft.Dynamics.Framework.Deployment.Portal.dll<br />
•	Microsoft.Dynamics.Framework.Portal.dll</blockquote><b>•	Step 3: Install Application Patch</b><blockquote>1.	On any machine that has the Microsoft Dynamics AX 2009 client installed, run the AxUpdate.exe file from the Application directory of the hotfix package, and then follow the instructions that are provided by the Installation wizard.<br />
<br />
o	Application of this  application patch will update the following AOT nodes<blockquote>•	SysEPDeployment<br />
•	AxWebParts.cab</blockquote></blockquote><b>•	Step 4 : Deploy Enterprise Portal Role Center by running Setup.exe from the CD folder</b>
		
	</div>
</div><br />
Перед установкой <b>Application Patch</b> предлагается проверить через  <a href="https://mbs2.microsoft.com/Knowledgebase/KBDisplay.aspx?scid=kb$en-us$974255&amp;wa=wsignin1.0" target="_blank">Impact Analysis feature for Dynamics AX 2009 (Средство анализа влияния) KB974255</a>, как повлияет kb2278963.xpo на приложение.<br />
Учтите, что KB974255<b> &quot;Это обновление применимо к версии Microsoft Dynamics AX 5.0.1000.52-5.0.1500.2093 файлов приложения.&quot;</b> ;) Время я только потратил, у меня Rollup 7.<br />
<br />
<font color="Red">О ужас,  KB 2278963 работает с &quot;Это обновление применимо к версии 5.0.1000.52-5.0.1500.3560 файлов приложения.&quot;</font><br />
<a href="//axforum.info/forums/blog_attachment.php?attachmentid=135&amp;d=1310130944" rel="Lightbox" id="attachment135" ><img src="//axforum.info/forums/blog_attachment.php?attachmentid=135&amp;thumb=1&amp;d=1310130944" class="thumbnail" border="0" alt="Нажмите на изображение для увеличения
Название: sp2010_2.png
Просмотров: 460
Размер:	16.6 Кб
ID:	135" style="margin: 2px" /></a><br />
Т.е. <a href="http://www.axaptapedia.com/Build_numbers" target="_blank">5.0.1500.3761	= 2009 SP1 Hotfix Rollup 6 (RU6)</a>, Rollup 7 = 5.0.1500.4570<br />
Встрял на:<div class="q">
	<div class="smallfont q_title">Цитата:</div>
	<div class="alt2 q_body">
		
			 <font color="Red">=== Запуск стадии выполнения === <br />
Запуск исполняемого файла клиента Microsoft Dynamics AX: C:\Program Files\Microsoft Dynamics AX\50\Client\bin\ax32.exe &quot;-regconfig=Dev&quot; &quot;-logdir=C:\Documents and Settings\All Users\Application Data\Microsoft\Dynamics AX\Dynamics AX Setup Logs\2011-07-08 16-56-12&quot; &quot;-startupcmd=autorun_C:\Documents and Settings\All Users\Application Data\Microsoft\Dynamics AX\Dynamics AX Setup Logs\2011-07-08 16-56-12\GetVersionInformation.xml&quot; <br />
Это обновление неприменимо к данной установке Microsoft Dynamics AX, поскольку установлены файлы приложения другой версии. Это обновление применимо к версии 5.0.1000.52-5.0.1500.3560 файлов приложения.<br />
Программе установки не удалось завершить установку.<br />
<br />
Это обновление неприменимо к данной установке Microsoft Dynamics AX.</font>
		
	</div>
</div>Курю мануал: <a href="http://axforum.info/forums/showthread.php?t=35995" target="_blank">AX 2009 Technical Journal: AX 2009 Rollup 6 and KB 2278963 (SharePoint 2010)</a> и <a href="http://axforum.info/forums/showthread.php?t=34475" target="_blank">emeadaxsupport: Resolving some issues you may experience when creating an AX 2009 Role Center and Enterprise Portal Site using SharePoint Server/Foundation 2010 after installing Microsoft Dynamics AX 2009 SP1 hotfix 2278963</a><br />
<br />
<font color="Blue"><br />
Продолжение следует ....</font><br />
<br />
------------------------------------------------------------------------------------------------------------------------------------------------------------------<br />
<br />
<b>Связанная информация по KB2278963 из Knowledgebase</b>:<ul><li><a href="https://mbs2.microsoft.com/Knowledgebase/kbdisplay.aspx?wtntzsmnwukntmmyxpvsklryklwntmmrtmkymrkwotnyrurw" target="_blank">&quot;Specified method is not supported&quot; error when you try to install Enterprise Portal for Dynamics AX 2009 SP1 in SharePoint Server 2010</a></li>
<li><a href="https://mbs2.microsoft.com/Knowledgebase/kbdisplay.aspx?scid=kb,en-us,2278963" target="_blank">2278963  Hotfix 2278963 is available for compatibility of SharePoint 2010 with the &quot;Role Centers and Enterprise Portal&quot; for Microsoft Dynamics AX 2009 Service Pack 1</a></li>
<li><a href="https://mbs2.microsoft.com/Knowledgebase/kbdisplay.aspx?wtntzsmnwukntmmyxpvsklryklwntmmronomsnklyxzuwmvq" target="_blank">Microsoft Dynamics AX 2009 Setup will not recognise SharePoint 2010 during Role Center and Enterprise Portal Deployment even though the setup files have been patched with hotfix 2278963</a></li>
</ul><br />
<br />
P.S. + <ul><li><a href="http://dynamicsuser.net/forums/p/33890/178274.aspx" target="_blank">AX 2009 EP with Sharepoint 2010?</a></li>
<li><a href="http://blogs.msdn.com/b/emeadaxsupport/archive/2010/12/07/unable-to-deploy-ax-2009-enterprise-portal-on-sharepoint-2010-even-after-patching-setup-files-with-hotfix-2278963.aspx" target="_blank">Unable to deploy AX 2009 Enterprise Portal on SharePoint 2010 even after patching setup files with hotfix 2278963</a><br />
<br />
Ключ реестра <b>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\14.0\Version</b><br />
<img src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-13-88/4135.procmon_5F00_14.0.png" border="0" alt="" /></li>
</ul></div>

]]></content:encoded>
			<dc:creator>Poleax</dc:creator>
			<guid isPermaLink="true">//axforum.info/forums/blog.php?b=264</guid>
		</item>
		<item>
			<title>Dynamics Ax 2009 Workflow</title>
			<link>//axforum.info/forums/blog.php?b=252</link>
			<pubDate>Mon, 06 Jun 2011 07:43:48 GMT</pubDate>
			<description><![CDATA[Напоминалка:

1. Running Multiple AOS on the same box all using workflow (http://workflowax.wordpress.com/2009/09/17/running-multiple-aos-on-the-same-box-all-using-workflow/)

---Цитата---
.......................
More details:
1) Install Hotfix 960801
2) Create a duplicate Workflow Website in IIS:
2.1) Duplicate the Workflow folder in your directory (typically C:\Program Files\Microsoft Dynamics AX\50)
2.2) Rename the folder to something logical for you to know which environment it will be pointing to e.g. WorkflowClientx
2.3) In IIS Manager, duplicate both your application pool and your virtual directory and name them accordingly e.g MicrosoftDynamicsAXWorkflow50Clientx
2.4) Link your New website to the folder that you duplicated in 2.1, and link it to your new application pool.
2.5) Edit the new website’s config file change: <appSettings /> to
<appSettings>
<add key=”BUSINESS_CONNECTOR_CONFIGURATION” value=”[BCPROXY CONFIG NAME]” />
</appSettings>

3) Restart IIS
4) Run the Workflow Infrastructure Configuration Wizard, in your new AOS and choose your new websites URL. e.g http://SERVER01:80/MicrosoftDynamicsAXWorkflow50Clientx
5) Enjoy your multiple AOS!
---Конец цитаты---
2. How to run multiple Dynamics AX workflow websites on IIS 7 (http://workflowax.wordpress.com/2010/12/10/how-to-run-multiple-dyanamics-ax-workflow-websites-on-iis-7/)

---Цитата---
.......................
The instructions are pretty IIS 6.0 specific, so here is an update on how to do this on IIS 7.

*Step 1 – Create a new business connector configuration*
1. Click start, control panel, administrative tools, Microsoft Dynamics AX 2009 Configuration.
2. Select Busines Connector from “Configuration Target”
3. Click Manage, Create Configuration.
4. Provide an intuitive name for the business connector configuration e.g. AX2009_DEV. You will need to use this in a few minutes again, so make a note of it.
5. Click ok.
6. Select Connection tab, select the AOS that is already there and click edit.
7.  Provide the correct server name, instance name and TCP/IP port, click ok.
8. Click apply to save your new configuration.
9. Select your previously selected configuration and click ok (this is so that your already existing website will still work).

*Step 2 – Duplicate the website files*
1. Open up My Computer and navigate to c:/Program Files/Microsoft Dynamics AX/50
2. Duplicate the Workflow folder  and rename the new folder to something intuative like “WorkflowDev”
3. Edit the web.config file inside the newly created folder using Notepad or similar text editor.
4. Replace the line “<appSettings/>” with

Код:
---------
<appSettings>
<add key="BUSINESS_CONNECTOR_CONFIGURATION" value="[BUSINESS CONNECTOR NAME FROM STEP 1.4]" />
</appSettings>
---------
5. Save and exit notepad

*Step 3 – Create your website application pool*
1. Open IIS Manager: Start, Control panel, Administrative Tools, Internet Information Services (IIS) Manager
2. Expand your server node, Click application pools.
3. Click add Application Pool (on the right)
4. Enter and Application pool name E.G. MicrosoftDynamicsAXWorkflow50Dev
5. Select .Net Framework v2.0.50727
6. Select Classic from the Managed pipeline mode.
7. Click ok to close.
8. Select your newly created application pool, click advanced settings.
9. Ensure that the managed Pipleine mode is set to classic.
10. Under Process Model -> Identity, click “…”, select custom account, click select, enter your bcproxy account details used for your previous workflow website. e.g. domain\bcproxy. Click ok to close, click ok to close the select window.
11.  Set the IdleTime-out (minutes) setting to 0.
12. Set Regular Time Inteval (minutes) (under Recycling section) to 0.
13. Click ok. Your application pool is now setup.

*Step 4 – Create Application*
1. In IIS Manager, expand the Sites node, expand “default website”
2. Right click on default website and click “Add Application”
3. Provide a name for your application e.g. MicrosoftDynamicsAXWorkflow50Dev
4. Select the application pool you created in step 3
5. Under the physical path node click … and browse to the folder you copied in step 2. e.g. C:/Program Files/Microsoft Dynamics AX/50/WorkflowDev, click ok
6. Ensure that your connect as settings are set to Pass-through authentication.
7. Click ok.

*Step 5 – Select your website with AX.*
1. In Dynamics AX 2009, naviagate to Administration -> Setup -> Workflow Infrastructure configuration wizard, under website select your new application that you created e.g. http://myserver:80/MicroftDynamicsAXWorkflow50Dev
2. Validate the website and complete the wizard.

You should now have multiple workflow websites running successfully in IIS 7.0
---Конец цитаты---
3. 
Dynamics Ax Workflow (IIS 7 64 bit - Http error 405 - Http error 404.17)  (http://blog.rahulsharma.in/2010/05/dynamics-ax-workflow-iis-7-64-bit-http.html)


P.S. + *Blog Dynamics AX Workflow *http://workflowax.wordpress.com/]]></description>
			<content:encoded><![CDATA[<div>Напоминалка:<br />
<ol style="list-style-type: decimal"><li><a href="http://workflowax.wordpress.com/2009/09/17/running-multiple-aos-on-the-same-box-all-using-workflow/" target="_blank">Running Multiple AOS on the same box all using workflow</a><br />
<div class="q">
	<div class="smallfont q_title">Цитата:</div>
	<div class="alt2 q_body">
		
			.......................<br />
More details:<blockquote><br />
1) Install Hotfix 960801<br />
2) Create a duplicate Workflow Website in IIS:<br />
2.1) Duplicate the Workflow folder in your directory (typically C:\Program Files\Microsoft Dynamics AX\50)<br />
2.2) Rename the folder to something logical for you to know which environment it will be pointing to e.g. WorkflowClientx<br />
2.3) In IIS Manager, duplicate both your application pool and your virtual directory and name them accordingly e.g MicrosoftDynamicsAXWorkflow50Clientx<br />
2.4) Link your New website to the folder that you duplicated in 2.1, and link it to your new application pool.<br />
2.5) Edit the new website’s config file change: &lt;appSettings /&gt; to<br />
&lt;appSettings&gt;<br />
&lt;add key=”BUSINESS_CONNECTOR_CONFIGURATION” value=”[BCPROXY CONFIG NAME]” /&gt;<br />
&lt;/appSettings&gt;<br />
<br />
3) Restart IIS<br />
4) Run the Workflow Infrastructure Configuration Wizard, in your new AOS and choose your new websites URL. e.g <a href="http://SERVER01:80/MicrosoftDynamicsAXWorkflow50Clientx" target="_blank">http://SERVER01:80/MicrosoftDynamicsAXWorkflow50Clientx</a><br />
5) Enjoy your multiple AOS!</blockquote>
		
	</div>
</div></li>
<li><a href="http://workflowax.wordpress.com/2010/12/10/how-to-run-multiple-dyanamics-ax-workflow-websites-on-iis-7/" target="_blank">How to run multiple Dynamics AX workflow websites on IIS 7</a><br />
<div class="q">
	<div class="smallfont q_title">Цитата:</div>
	<div class="alt2 q_body">
		
			.......................<br />
The instructions are pretty IIS 6.0 specific, so here is an update on how to do this on IIS 7.<br />
<br />
<b>Step 1 – Create a new business connector configuration</b><br />
1. Click start, control panel, administrative tools, Microsoft Dynamics AX 2009 Configuration.<br />
2. Select Busines Connector from “Configuration Target”<br />
3. Click Manage, Create Configuration.<br />
4. Provide an intuitive name for the business connector configuration e.g. AX2009_DEV. You will need to use this in a few minutes again, so make a note of it.<br />
5. Click ok.<br />
6. Select Connection tab, select the AOS that is already there and click edit.<br />
7.  Provide the correct server name, instance name and TCP/IP port, click ok.<br />
8. Click apply to save your new configuration.<br />
9. Select your previously selected configuration and click ok (this is so that your already existing website will still work).<br />
<br />
<b>Step 2 – Duplicate the website files</b><br />
1. Open up My Computer and navigate to c:/Program Files/Microsoft Dynamics AX/50<br />
2. Duplicate the Workflow folder  and rename the new folder to something intuative like “WorkflowDev”<br />
3. Edit the web.config file inside the newly created folder using Notepad or similar text editor.<br />
4. Replace the line “&lt;appSettings/&gt;” with<br />
<div class="xpp"><div class="smallfont xpp_title">Код:</div><pre class="alt2 xpp_code">&lt;appSettings&gt;
&lt;add key=&quot;BUSINESS_CONNECTOR_CONFIGURATION&quot; value=&quot;[BUSINESS CONNECTOR NAME FROM STEP 1.4]&quot; /&gt;
&lt;/appSettings&gt;</pre></div>5. Save and exit notepad<br />
<br />
<b>Step 3 – Create your website application pool</b><br />
1. Open IIS Manager: Start, Control panel, Administrative Tools, Internet Information Services (IIS) Manager<br />
2. Expand your server node, Click application pools.<br />
3. Click add Application Pool (on the right)<br />
4. Enter and Application pool name E.G. MicrosoftDynamicsAXWorkflow50Dev<br />
5. Select .Net Framework v2.0.50727<br />
6. Select Classic from the Managed pipeline mode.<br />
7. Click ok to close.<br />
8. Select your newly created application pool, click advanced settings.<br />
9. Ensure that the managed Pipleine mode is set to classic.<br />
10. Under Process Model -&gt; Identity, click “…”, select custom account, click select, enter your bcproxy account details used for your previous workflow website. e.g. domain\bcproxy. Click ok to close, click ok to close the select window.<br />
11.  Set the IdleTime-out (minutes) setting to 0.<br />
12. Set Regular Time Inteval (minutes) (under Recycling section) to 0.<br />
13. Click ok. Your application pool is now setup.<br />
<br />
<b>Step 4 – Create Application</b><br />
1. In IIS Manager, expand the Sites node, expand “default website”<br />
2. Right click on default website and click “Add Application”<br />
3. Provide a name for your application e.g. MicrosoftDynamicsAXWorkflow50Dev<br />
4. Select the application pool you created in step 3<br />
5. Under the physical path node click … and browse to the folder you copied in step 2. e.g. C:/Program Files/Microsoft Dynamics AX/50/WorkflowDev, click ok<br />
6. Ensure that your connect as settings are set to Pass-through authentication.<br />
7. Click ok.<br />
<br />
<b>Step 5 – Select your website with AX.</b><br />
1. In Dynamics AX 2009, naviagate to Administration -&gt; Setup -&gt; Workflow Infrastructure configuration wizard, under website select your new application that you created e.g. <a href="http://myserver:80/MicroftDynamicsAXWorkflow50Dev" target="_blank">http://myserver:80/MicroftDynamicsAXWorkflow50Dev</a><br />
2. Validate the website and complete the wizard.<br />
<br />
You should now have multiple workflow websites running successfully in IIS 7.0
		
	</div>
</div></li>
<li><a href="http://blog.rahulsharma.in/2010/05/dynamics-ax-workflow-iis-7-64-bit-http.html" target="_blank"><br />
Dynamics Ax Workflow (IIS 7 64 bit - Http error 405 - Http error 404.17) </a></li>
</ol><br />
P.S. + <b>Blog Dynamics AX Workflow </b><a href="http://workflowax.wordpress.com/" target="_blank">http://workflowax.wordpress.com/</a></div>

]]></content:encoded>
			<dc:creator>Poleax</dc:creator>
			<guid isPermaLink="true">//axforum.info/forums/blog.php?b=252</guid>
		</item>
		<item>
			<title>Переделываем RecId в таблицах</title>
			<link>//axforum.info/forums/blog.php?b=247</link>
			<pubDate>Fri, 06 May 2011 14:09:43 GMT</pubDate>
			<description><![CDATA[Для исправления проблемы Произошла ошибка при получении нового значения RecId для таблицы. (http://axforum.info/forums/showthread.php?t=37991)

---Цитата---
Не удается распределить номера номерной серии для TableId:%1, CurrentNextVal:%2, NewNextVal:%3
Произошла ошибка при получении нового значения RecId для таблицы.
---Конец цитаты---
Нюанс использования:
1. AOS надо выключить.
2. Не забыть сделать Full BackUP БД.
3.  Можно запускать скрипт

Скрипт работал ~ 5-10 сек.

Использовал скрипт Вложение 125 (//axforum.info/forums/attachment.php?attachmentid=125):

PHP:
---------
USE DynamicsAx2009;

DECLARE  @recid bigint
DECLARE  @recIdCustTable bigint
DECLARE  @recIdVendTable bigint
DECLARE  @recIdCustBankAccount bigint
DECLARE  @recIdVendBankAccount bigint
DECLARE  @DataAreaID nvarchar(4)
DECLARE	 @AccountNUM nvarchar(20)
DECLARE	 @ACCOUNTID nvarchar(10)
DECLARE  @CUSTACCOUNT  nvarchar(20)
DECLARE  @VENDACCOUNT  nvarchar(20)

SET @recIdCustTable = 7349605052;
SET @recIdCustBankAccount = 7173596050;
SET @recIdVendTable = 8709438849;
SET @recIdVendBankAccount = 6691633308;

DELETE FROM CUSTTABLE
WHERE DATAAREAID in ('BR', 'CB','L01','L02', 'DAT')

DELETE FROM VendTable
WHERE DATAAREAID in ('BR', 'CB','L01','L02', 'DAT')

DELETE FROM CustBankAccount
WHERE DATAAREAID in ('BR', 'CB','L01','L02', 'DAT')

DELETE FROM VendBankAccount
WHERE DATAAREAID in ('BR', 'CB','L01','L02', 'DAT')

-------------------------------CustTable  Start----------------------------------
DECLARE CustTable_Cursor CURSOR FOR
	SELECT  ACCOUNTNUM, DATAAREAID, RecID FROM dbo.CustTable
	WHERE DataAreaID in  ('j01','BSRF')
	ORDER BY DataAreaID;
OPEN CustTable_Cursor;

FETCH NEXT FROM CustTable_Cursor INTO @AccountNUM, @DataAreaID, @recid;
WHILE @@FETCH_STATUS = 0
BEGIN
	IF(@recid > @recIdCustTable OR @recid <0)
	BEGIN
		SET @recIdCustTable = @recIdCustTable +1;
		
		update CustTable
		SET RECID = @recIdCustTable
		WHERE DataAreaID = @DataAreaID AND AccountNUM = @AccountNUM;
		/*
		select RecID as [newRecId],@recid as [oldRecid], @AccountNUM, @DataAreaID
		from Custtable
		WHERE DataAreaID = @DataAreaID AND AccountNUM = @AccountNUM;
		*/
	END		
		
		
   FETCH NEXT FROM CustTable_Cursor INTO  @AccountNUM, @DataAreaID, @recid;
END;

CLOSE CustTable_Cursor;
DEALLOCATE CustTable_Cursor;

UPDATE [SYSTEMSEQUENCES]
SET	   NEXTVAL = @recIdCustTable + 1
Where  ID = -1	AND TABID = 77 --CUSTTABLE

-------------------------------CustTable  End----------------------------------

-------------------------------VendTable  Start----------------------------------
DECLARE VendTable_Cursor CURSOR FOR
	SELECT  ACCOUNTNUM, DATAAREAID, RecID FROM dbo.VendTable
	WHERE DataAreaID in  ('j01','BSRF')
	ORDER BY DataAreaID;
OPEN VendTable_Cursor;

FETCH NEXT FROM VendTable_Cursor INTO @AccountNUM, @DataAreaID, @recid;
WHILE @@FETCH_STATUS = 0
BEGIN
	IF(@recid > @recIdVendTable OR @recid <0)
	BEGIN
		SET @recIdVendTable = @recIdVendTable +1;
		
		update VendTable
		SET RECID = @recIdVendTable
		WHERE DataAreaID = @DataAreaID AND AccountNUM = @AccountNUM;
		/*
		select RecID as [newRecId],@recid as [oldRecid], @AccountNUM, @DataAreaID
		from VendTable
		WHERE DataAreaID = @DataAreaID AND AccountNUM = @AccountNUM;
		*/
	END		
		
		
   FETCH NEXT FROM VendTable_Cursor INTO  @AccountNUM, @DataAreaID, @recid;
END;

CLOSE VendTable_Cursor;
DEALLOCATE VendTable_Cursor;

UPDATE [SYSTEMSEQUENCES]
SET	   NEXTVAL = @recIdVendTable + 1
Where  ID = -1	AND TABID = 505	--VENDTABLE

-------------------------------VendTable  End----------------------------------

-------------------------------CustBankAccount  Start----------------------------------
DECLARE CustBankAccount_Cursor CURSOR FOR
	SELECT  DATAAREAID, CUSTACCOUNT, ACCOUNTID, RecID FROM dbo.CustBankAccount
	WHERE DataAreaID in  ('j01','BSRF')
	ORDER BY DataAreaID;
OPEN CustBankAccount_Cursor;

FETCH NEXT FROM CustBankAccount_Cursor INTO @DATAAREAID, @CUSTACCOUNT, @ACCOUNTID, @recid;
WHILE @@FETCH_STATUS = 0
BEGIN
	IF(@recid > @recIdCustBankAccount OR @recid <0)
	BEGIN
		SET @recIdCustBankAccount = ( CAST(@recIdCustBankAccount +1 AS bigint) );
		
		update CustBankAccount
		SET RECID = @recIdCustBankAccount
		WHERE DataAreaID = @DataAreaID AND CUSTACCOUNT=@CUSTACCOUNT AND @ACCOUNTID = @ACCOUNTID;

	END
		
   FETCH NEXT FROM CustBankAccount_Cursor INTO @DATAAREAID, @CUSTACCOUNT, @ACCOUNTID, @recid;
END;

CLOSE CustBankAccount_Cursor;
DEALLOCATE CustBankAccount_Cursor;

UPDATE [SYSTEMSEQUENCES]
SET	   NEXTVAL = @recIdCustBankAccount + 1
Where  ID = -1	AND TABID = 50	--CUSTBANKACCOUNT	

-------------------------------CustBankAccount  End----------------------------------

-------------------------------VendBankAccount  Start----------------------------------
DECLARE VendBankAccount_Cursor CURSOR FOR
	SELECT  DATAAREAID, VENDACCOUNT, ACCOUNTID, RecID FROM dbo.VendBankAccount
	WHERE DataAreaID in  ('j01','BSRF')
	ORDER BY DataAreaID;
OPEN VendBankAccount_Cursor;

FETCH NEXT FROM VendBankAccount_Cursor INTO @DATAAREAID, @VENDACCOUNT, @ACCOUNTID, @recid;
WHILE @@FETCH_STATUS = 0
BEGIN
	IF(@recid > @recIdVendBankAccount OR @recid <0)
	BEGIN
		SET @recIdVendBankAccount = ( CAST(@recIdVendBankAccount +1 AS bigint) );
		
		update VendBankAccount
		SET RECID = @recIdVendBankAccount
		WHERE DataAreaID = @DataAreaID AND VENDACCOUNT=@VENDACCOUNT AND @ACCOUNTID = @ACCOUNTID;
		
	END
		
   FETCH NEXT FROM VendBankAccount_Cursor INTO @DATAAREAID, @VENDACCOUNT, @ACCOUNTID, @recid;
END;

CLOSE VendBankAccount_Cursor;
DEALLOCATE VendBankAccount_Cursor;

UPDATE [SYSTEMSEQUENCES]
SET	   NEXTVAL = @recIdVendBankAccount + 1
Where  ID = -1	AND TABID = 489	--VENDBANKACCOUNT	

-------------------------------VendBankAccount  End----------------------------------

SELECT *
  FROM [SYSTEMSEQUENCES]
  where  ID = -1	AND TABID in (77, 505, 50, 489)
  order by tabid, NEXTVAL desc
  

select MAX(recid), 'CUSTBANKACCOUNT- 50 ' from CUSTBANKACCOUNT	-- 50  
select MAX(recid), 'custtable- 77' from custtable	-- 77
select MAX(recid), 'VENDBANKACCOUNT- 489' from VENDBANKACCOUNT	-- 489
select MAX(recid), 'vendtable- 505' from vendtable	-- 505
---------
P.S. Ax 2009 Sp1 RU5]]></description>
			<content:encoded><![CDATA[<div>Для исправления проблемы <a href="http://axforum.info/forums/showthread.php?t=37991" target="_blank">Произошла ошибка при получении нового значения RecId для таблицы.</a><br />
<div class="q">
	<div class="smallfont q_title">Цитата:</div>
	<div class="alt2 q_body">
		
			<font color="Red">Не удается распределить номера номерной серии для TableId:%1, CurrentNextVal:%2, NewNextVal:%3<br />
Произошла ошибка при получении нового значения RecId для таблицы.</font>
		
	</div>
</div>Нюанс использования:<ol style="list-style-type: decimal"><li>AOS надо выключить.</li>
<li>Не забыть сделать Full BackUP БД.</li>
<li> Можно запускать скрипт</li>
</ol>Скрипт работал ~ 5-10 сек.<br />
<br />
Использовал скрипт <a href="//axforum.info/forums/blog_attachment.php?attachmentid=125&amp;d=1304691051" >Upd_RecID.sql.txt</a>:<br />
<div style="margin:20px; margin-top:5px">
	<div class="smallfont" style="margin-bottom:2px">PHP код:</div>
	<div class="alt2" dir="ltr" style="
		margin: 0px;
		padding: 6px;
		border: 1px inset;
		width: 640px;
		height: 498px;
		text-align: left;
		overflow: auto">
		<code style="white-space:nowrap">
			<!-- php buffer start --><code><span style="color: #000000">
<span style="color: #0000BB"></span><span style="color: #007700">USE&nbsp;</span><span style="color: #0000BB">DynamicsAx2009</span><span style="color: #007700">;<br /><br />DECLARE&nbsp;&nbsp;@</span><span style="color: #0000BB">recid&nbsp;bigint<br /></span><span style="color: #007700">DECLARE&nbsp;&nbsp;@</span><span style="color: #0000BB">recIdCustTable&nbsp;bigint<br /></span><span style="color: #007700">DECLARE&nbsp;&nbsp;@</span><span style="color: #0000BB">recIdVendTable&nbsp;bigint<br /></span><span style="color: #007700">DECLARE&nbsp;&nbsp;@</span><span style="color: #0000BB">recIdCustBankAccount&nbsp;bigint<br /></span><span style="color: #007700">DECLARE&nbsp;&nbsp;@</span><span style="color: #0000BB">recIdVendBankAccount&nbsp;bigint<br /></span><span style="color: #007700">DECLARE&nbsp;&nbsp;@</span><span style="color: #0000BB">DataAreaID&nbsp;nvarchar</span><span style="color: #007700">(</span><span style="color: #0000BB">4</span><span style="color: #007700">)<br />DECLARE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@</span><span style="color: #0000BB">AccountNUM&nbsp;nvarchar</span><span style="color: #007700">(</span><span style="color: #0000BB">20</span><span style="color: #007700">)<br />DECLARE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@</span><span style="color: #0000BB">ACCOUNTID&nbsp;nvarchar</span><span style="color: #007700">(</span><span style="color: #0000BB">10</span><span style="color: #007700">)<br />DECLARE&nbsp;&nbsp;@</span><span style="color: #0000BB">CUSTACCOUNT&nbsp;&nbsp;nvarchar</span><span style="color: #007700">(</span><span style="color: #0000BB">20</span><span style="color: #007700">)<br />DECLARE&nbsp;&nbsp;@</span><span style="color: #0000BB">VENDACCOUNT&nbsp;&nbsp;nvarchar</span><span style="color: #007700">(</span><span style="color: #0000BB">20</span><span style="color: #007700">)<br /><br /></span><span style="color: #0000BB">SET&nbsp;</span><span style="color: #007700">@</span><span style="color: #0000BB">recIdCustTable&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">7349605052</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">SET&nbsp;</span><span style="color: #007700">@</span><span style="color: #0000BB">recIdCustBankAccount&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">7173596050</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">SET&nbsp;</span><span style="color: #007700">@</span><span style="color: #0000BB">recIdVendTable&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">8709438849</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">SET&nbsp;</span><span style="color: #007700">@</span><span style="color: #0000BB">recIdVendBankAccount&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">6691633308</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">DELETE&nbsp;FROM&nbsp;CUSTTABLE<br />WHERE&nbsp;DATAAREAID&nbsp;in&nbsp;</span><span style="color: #007700">(</span><span style="color: #DD0000">'BR'</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'CB'</span><span style="color: #007700">,</span><span style="color: #DD0000">'L01'</span><span style="color: #007700">,</span><span style="color: #DD0000">'L02'</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'DAT'</span><span style="color: #007700">)<br /><br /></span><span style="color: #0000BB">DELETE&nbsp;FROM&nbsp;VendTable<br />WHERE&nbsp;DATAAREAID&nbsp;in&nbsp;</span><span style="color: #007700">(</span><span style="color: #DD0000">'BR'</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'CB'</span><span style="color: #007700">,</span><span style="color: #DD0000">'L01'</span><span style="color: #007700">,</span><span style="color: #DD0000">'L02'</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'DAT'</span><span style="color: #007700">)<br /><br /></span><span style="color: #0000BB">DELETE&nbsp;FROM&nbsp;CustBankAccount<br />WHERE&nbsp;DATAAREAID&nbsp;in&nbsp;</span><span style="color: #007700">(</span><span style="color: #DD0000">'BR'</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'CB'</span><span style="color: #007700">,</span><span style="color: #DD0000">'L01'</span><span style="color: #007700">,</span><span style="color: #DD0000">'L02'</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'DAT'</span><span style="color: #007700">)<br /><br /></span><span style="color: #0000BB">DELETE&nbsp;FROM&nbsp;VendBankAccount<br />WHERE&nbsp;DATAAREAID&nbsp;in&nbsp;</span><span style="color: #007700">(</span><span style="color: #DD0000">'BR'</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'CB'</span><span style="color: #007700">,</span><span style="color: #DD0000">'L01'</span><span style="color: #007700">,</span><span style="color: #DD0000">'L02'</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'DAT'</span><span style="color: #007700">)<br /><br />-------------------------------</span><span style="color: #0000BB">CustTable&nbsp;&nbsp;Start</span><span style="color: #007700">----------------------------------<br />DECLARE&nbsp;</span><span style="color: #0000BB">CustTable_Cursor&nbsp;CURSOR&nbsp;</span><span style="color: #007700">FOR<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">SELECT&nbsp;&nbsp;ACCOUNTNUM</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">DATAAREAID</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">RecID&nbsp;FROM&nbsp;dbo</span><span style="color: #007700">.</span><span style="color: #0000BB">CustTable<br />&nbsp;&nbsp;&nbsp;&nbsp;WHERE&nbsp;DataAreaID&nbsp;in&nbsp;&nbsp;</span><span style="color: #007700">(</span><span style="color: #DD0000">'j01'</span><span style="color: #007700">,</span><span style="color: #DD0000">'BSRF'</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">ORDER&nbsp;BY&nbsp;DataAreaID</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">OPEN&nbsp;CustTable_Cursor</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">FETCH&nbsp;NEXT&nbsp;FROM&nbsp;CustTable_Cursor&nbsp;INTO&nbsp;</span><span style="color: #007700">@</span><span style="color: #0000BB">AccountNUM</span><span style="color: #007700">,&nbsp;@</span><span style="color: #0000BB">DataAreaID</span><span style="color: #007700">,&nbsp;@</span><span style="color: #0000BB">recid</span><span style="color: #007700">;<br />WHILE&nbsp;@@</span><span style="color: #0000BB">FETCH_STATUS&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">0<br />BEGIN<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">IF(@</span><span style="color: #0000BB">recid&nbsp;</span><span style="color: #007700">&gt;&nbsp;@</span><span style="color: #0000BB">recIdCustTable&nbsp;</span><span style="color: #007700">OR&nbsp;@</span><span style="color: #0000BB">recid&nbsp;</span><span style="color: #007700">&lt;</span><span style="color: #0000BB">0</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">BEGIN<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;</span><span style="color: #007700">@</span><span style="color: #0000BB">recIdCustTable&nbsp;</span><span style="color: #007700">=&nbsp;@</span><span style="color: #0000BB">recIdCustTable&nbsp;</span><span style="color: #007700">+</span><span style="color: #0000BB">1</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">update&nbsp;CustTable<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;RECID&nbsp;</span><span style="color: #007700">=&nbsp;@</span><span style="color: #0000BB">recIdCustTable<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WHERE&nbsp;DataAreaID&nbsp;</span><span style="color: #007700">=&nbsp;@</span><span style="color: #0000BB">DataAreaID&nbsp;</span><span style="color: #007700">AND&nbsp;</span><span style="color: #0000BB">AccountNUM&nbsp;</span><span style="color: #007700">=&nbsp;@</span><span style="color: #0000BB">AccountNUM</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">/*<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;select&nbsp;RecID&nbsp;as&nbsp;&#91;newRecId&#93;,@recid&nbsp;as&nbsp;&#91;oldRecid&#93;,&nbsp;@AccountNUM,&nbsp;@DataAreaID<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from&nbsp;Custtable<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WHERE&nbsp;DataAreaID&nbsp;=&nbsp;@DataAreaID&nbsp;AND&nbsp;AccountNUM&nbsp;=&nbsp;@AccountNUM;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">END&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;FETCH&nbsp;NEXT&nbsp;FROM&nbsp;CustTable_Cursor&nbsp;INTO&nbsp;&nbsp;</span><span style="color: #007700">@</span><span style="color: #0000BB">AccountNUM</span><span style="color: #007700">,&nbsp;@</span><span style="color: #0000BB">DataAreaID</span><span style="color: #007700">,&nbsp;@</span><span style="color: #0000BB">recid</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">END</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">CLOSE&nbsp;CustTable_Cursor</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">DEALLOCATE&nbsp;CustTable_Cursor</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">UPDATE&nbsp;</span><span style="color: #007700">&#91;</span><span style="color: #0000BB">SYSTEMSEQUENCES</span><span style="color: #007700">&#93;<br /></span><span style="color: #0000BB">SET&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NEXTVAL&nbsp;</span><span style="color: #007700">=&nbsp;@</span><span style="color: #0000BB">recIdCustTable&nbsp;</span><span style="color: #007700">+&nbsp;</span><span style="color: #0000BB">1<br />Where&nbsp;&nbsp;ID&nbsp;</span><span style="color: #007700">=&nbsp;-</span><span style="color: #0000BB">1&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">AND&nbsp;</span><span style="color: #0000BB">TABID&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">77&nbsp;</span><span style="color: #007700">--</span><span style="color: #0000BB">CUSTTABLE<br /><br /></span><span style="color: #007700">-------------------------------</span><span style="color: #0000BB">CustTable&nbsp;&nbsp;End</span><span style="color: #007700">----------------------------------<br /><br />-------------------------------</span><span style="color: #0000BB">VendTable&nbsp;&nbsp;Start</span><span style="color: #007700">----------------------------------<br />DECLARE&nbsp;</span><span style="color: #0000BB">VendTable_Cursor&nbsp;CURSOR&nbsp;</span><span style="color: #007700">FOR<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">SELECT&nbsp;&nbsp;ACCOUNTNUM</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">DATAAREAID</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">RecID&nbsp;FROM&nbsp;dbo</span><span style="color: #007700">.</span><span style="color: #0000BB">VendTable<br />&nbsp;&nbsp;&nbsp;&nbsp;WHERE&nbsp;DataAreaID&nbsp;in&nbsp;&nbsp;</span><span style="color: #007700">(</span><span style="color: #DD0000">'j01'</span><span style="color: #007700">,</span><span style="color: #DD0000">'BSRF'</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">ORDER&nbsp;BY&nbsp;DataAreaID</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">OPEN&nbsp;VendTable_Cursor</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">FETCH&nbsp;NEXT&nbsp;FROM&nbsp;VendTable_Cursor&nbsp;INTO&nbsp;</span><span style="color: #007700">@</span><span style="color: #0000BB">AccountNUM</span><span style="color: #007700">,&nbsp;@</span><span style="color: #0000BB">DataAreaID</span><span style="color: #007700">,&nbsp;@</span><span style="color: #0000BB">recid</span><span style="color: #007700">;<br />WHILE&nbsp;@@</span><span style="color: #0000BB">FETCH_STATUS&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">0<br />BEGIN<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">IF(@</span><span style="color: #0000BB">recid&nbsp;</span><span style="color: #007700">&gt;&nbsp;@</span><span style="color: #0000BB">recIdVendTable&nbsp;</span><span style="color: #007700">OR&nbsp;@</span><span style="color: #0000BB">recid&nbsp;</span><span style="color: #007700">&lt;</span><span style="color: #0000BB">0</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">BEGIN<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;</span><span style="color: #007700">@</span><span style="color: #0000BB">recIdVendTable&nbsp;</span><span style="color: #007700">=&nbsp;@</span><span style="color: #0000BB">recIdVendTable&nbsp;</span><span style="color: #007700">+</span><span style="color: #0000BB">1</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">update&nbsp;VendTable<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;RECID&nbsp;</span><span style="color: #007700">=&nbsp;@</span><span style="color: #0000BB">recIdVendTable<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WHERE&nbsp;DataAreaID&nbsp;</span><span style="color: #007700">=&nbsp;@</span><span style="color: #0000BB">DataAreaID&nbsp;</span><span style="color: #007700">AND&nbsp;</span><span style="color: #0000BB">AccountNUM&nbsp;</span><span style="color: #007700">=&nbsp;@</span><span style="color: #0000BB">AccountNUM</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">/*<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;select&nbsp;RecID&nbsp;as&nbsp;&#91;newRecId&#93;,@recid&nbsp;as&nbsp;&#91;oldRecid&#93;,&nbsp;@AccountNUM,&nbsp;@DataAreaID<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from&nbsp;VendTable<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WHERE&nbsp;DataAreaID&nbsp;=&nbsp;@DataAreaID&nbsp;AND&nbsp;AccountNUM&nbsp;=&nbsp;@AccountNUM;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">END&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;FETCH&nbsp;NEXT&nbsp;FROM&nbsp;VendTable_Cursor&nbsp;INTO&nbsp;&nbsp;</span><span style="color: #007700">@</span><span style="color: #0000BB">AccountNUM</span><span style="color: #007700">,&nbsp;@</span><span style="color: #0000BB">DataAreaID</span><span style="color: #007700">,&nbsp;@</span><span style="color: #0000BB">recid</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">END</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">CLOSE&nbsp;VendTable_Cursor</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">DEALLOCATE&nbsp;VendTable_Cursor</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">UPDATE&nbsp;</span><span style="color: #007700">&#91;</span><span style="color: #0000BB">SYSTEMSEQUENCES</span><span style="color: #007700">&#93;<br /></span><span style="color: #0000BB">SET&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NEXTVAL&nbsp;</span><span style="color: #007700">=&nbsp;@</span><span style="color: #0000BB">recIdVendTable&nbsp;</span><span style="color: #007700">+&nbsp;</span><span style="color: #0000BB">1<br />Where&nbsp;&nbsp;ID&nbsp;</span><span style="color: #007700">=&nbsp;-</span><span style="color: #0000BB">1&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">AND&nbsp;</span><span style="color: #0000BB">TABID&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">505&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">--</span><span style="color: #0000BB">VENDTABLE<br /><br /></span><span style="color: #007700">-------------------------------</span><span style="color: #0000BB">VendTable&nbsp;&nbsp;End</span><span style="color: #007700">----------------------------------<br /><br />-------------------------------</span><span style="color: #0000BB">CustBankAccount&nbsp;&nbsp;Start</span><span style="color: #007700">----------------------------------<br />DECLARE&nbsp;</span><span style="color: #0000BB">CustBankAccount_Cursor&nbsp;CURSOR&nbsp;</span><span style="color: #007700">FOR<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">SELECT&nbsp;&nbsp;DATAAREAID</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">CUSTACCOUNT</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">ACCOUNTID</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">RecID&nbsp;FROM&nbsp;dbo</span><span style="color: #007700">.</span><span style="color: #0000BB">CustBankAccount<br />&nbsp;&nbsp;&nbsp;&nbsp;WHERE&nbsp;DataAreaID&nbsp;in&nbsp;&nbsp;</span><span style="color: #007700">(</span><span style="color: #DD0000">'j01'</span><span style="color: #007700">,</span><span style="color: #DD0000">'BSRF'</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">ORDER&nbsp;BY&nbsp;DataAreaID</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">OPEN&nbsp;CustBankAccount_Cursor</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">FETCH&nbsp;NEXT&nbsp;FROM&nbsp;CustBankAccount_Cursor&nbsp;INTO&nbsp;</span><span style="color: #007700">@</span><span style="color: #0000BB">DATAAREAID</span><span style="color: #007700">,&nbsp;@</span><span style="color: #0000BB">CUSTACCOUNT</span><span style="color: #007700">,&nbsp;@</span><span style="color: #0000BB">ACCOUNTID</span><span style="color: #007700">,&nbsp;@</span><span style="color: #0000BB">recid</span><span style="color: #007700">;<br />WHILE&nbsp;@@</span><span style="color: #0000BB">FETCH_STATUS&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">0<br />BEGIN<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">IF(@</span><span style="color: #0000BB">recid&nbsp;</span><span style="color: #007700">&gt;&nbsp;@</span><span style="color: #0000BB">recIdCustBankAccount&nbsp;</span><span style="color: #007700">OR&nbsp;@</span><span style="color: #0000BB">recid&nbsp;</span><span style="color: #007700">&lt;</span><span style="color: #0000BB">0</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">BEGIN<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;</span><span style="color: #007700">@</span><span style="color: #0000BB">recIdCustBankAccount&nbsp;</span><span style="color: #007700">=&nbsp;(&nbsp;</span><span style="color: #0000BB">CAST</span><span style="color: #007700">(@</span><span style="color: #0000BB">recIdCustBankAccount&nbsp;</span><span style="color: #007700">+</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #007700">AS&nbsp;</span><span style="color: #0000BB">bigint</span><span style="color: #007700">)&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">update&nbsp;CustBankAccount<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;RECID&nbsp;</span><span style="color: #007700">=&nbsp;@</span><span style="color: #0000BB">recIdCustBankAccount<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WHERE&nbsp;DataAreaID&nbsp;</span><span style="color: #007700">=&nbsp;@</span><span style="color: #0000BB">DataAreaID&nbsp;</span><span style="color: #007700">AND&nbsp;</span><span style="color: #0000BB">CUSTACCOUNT</span><span style="color: #007700">=@</span><span style="color: #0000BB">CUSTACCOUNT&nbsp;</span><span style="color: #007700">AND&nbsp;@</span><span style="color: #0000BB">ACCOUNTID&nbsp;</span><span style="color: #007700">=&nbsp;@</span><span style="color: #0000BB">ACCOUNTID</span><span style="color: #007700">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">END<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;FETCH&nbsp;NEXT&nbsp;FROM&nbsp;CustBankAccount_Cursor&nbsp;INTO&nbsp;</span><span style="color: #007700">@</span><span style="color: #0000BB">DATAAREAID</span><span style="color: #007700">,&nbsp;@</span><span style="color: #0000BB">CUSTACCOUNT</span><span style="color: #007700">,&nbsp;@</span><span style="color: #0000BB">ACCOUNTID</span><span style="color: #007700">,&nbsp;@</span><span style="color: #0000BB">recid</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">END</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">CLOSE&nbsp;CustBankAccount_Cursor</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">DEALLOCATE&nbsp;CustBankAccount_Cursor</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">UPDATE&nbsp;</span><span style="color: #007700">&#91;</span><span style="color: #0000BB">SYSTEMSEQUENCES</span><span style="color: #007700">&#93;<br /></span><span style="color: #0000BB">SET&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NEXTVAL&nbsp;</span><span style="color: #007700">=&nbsp;@</span><span style="color: #0000BB">recIdCustBankAccount&nbsp;</span><span style="color: #007700">+&nbsp;</span><span style="color: #0000BB">1<br />Where&nbsp;&nbsp;ID&nbsp;</span><span style="color: #007700">=&nbsp;-</span><span style="color: #0000BB">1&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">AND&nbsp;</span><span style="color: #0000BB">TABID&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">50&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">--</span><span style="color: #0000BB">CUSTBANKACCOUNT&nbsp;&nbsp;&nbsp;&nbsp;<br /><br /></span><span style="color: #007700">-------------------------------</span><span style="color: #0000BB">CustBankAccount&nbsp;&nbsp;End</span><span style="color: #007700">----------------------------------<br /><br />-------------------------------</span><span style="color: #0000BB">VendBankAccount&nbsp;&nbsp;Start</span><span style="color: #007700">----------------------------------<br />DECLARE&nbsp;</span><span style="color: #0000BB">VendBankAccount_Cursor&nbsp;CURSOR&nbsp;</span><span style="color: #007700">FOR<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">SELECT&nbsp;&nbsp;DATAAREAID</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">VENDACCOUNT</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">ACCOUNTID</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">RecID&nbsp;FROM&nbsp;dbo</span><span style="color: #007700">.</span><span style="color: #0000BB">VendBankAccount<br />&nbsp;&nbsp;&nbsp;&nbsp;WHERE&nbsp;DataAreaID&nbsp;in&nbsp;&nbsp;</span><span style="color: #007700">(</span><span style="color: #DD0000">'j01'</span><span style="color: #007700">,</span><span style="color: #DD0000">'BSRF'</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">ORDER&nbsp;BY&nbsp;DataAreaID</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">OPEN&nbsp;VendBankAccount_Cursor</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">FETCH&nbsp;NEXT&nbsp;FROM&nbsp;VendBankAccount_Cursor&nbsp;INTO&nbsp;</span><span style="color: #007700">@</span><span style="color: #0000BB">DATAAREAID</span><span style="color: #007700">,&nbsp;@</span><span style="color: #0000BB">VENDACCOUNT</span><span style="color: #007700">,&nbsp;@</span><span style="color: #0000BB">ACCOUNTID</span><span style="color: #007700">,&nbsp;@</span><span style="color: #0000BB">recid</span><span style="color: #007700">;<br />WHILE&nbsp;@@</span><span style="color: #0000BB">FETCH_STATUS&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">0<br />BEGIN<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">IF(@</span><span style="color: #0000BB">recid&nbsp;</span><span style="color: #007700">&gt;&nbsp;@</span><span style="color: #0000BB">recIdVendBankAccount&nbsp;</span><span style="color: #007700">OR&nbsp;@</span><span style="color: #0000BB">recid&nbsp;</span><span style="color: #007700">&lt;</span><span style="color: #0000BB">0</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">BEGIN<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;</span><span style="color: #007700">@</span><span style="color: #0000BB">recIdVendBankAccount&nbsp;</span><span style="color: #007700">=&nbsp;(&nbsp;</span><span style="color: #0000BB">CAST</span><span style="color: #007700">(@</span><span style="color: #0000BB">recIdVendBankAccount&nbsp;</span><span style="color: #007700">+</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #007700">AS&nbsp;</span><span style="color: #0000BB">bigint</span><span style="color: #007700">)&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">update&nbsp;VendBankAccount<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;RECID&nbsp;</span><span style="color: #007700">=&nbsp;@</span><span style="color: #0000BB">recIdVendBankAccount<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WHERE&nbsp;DataAreaID&nbsp;</span><span style="color: #007700">=&nbsp;@</span><span style="color: #0000BB">DataAreaID&nbsp;</span><span style="color: #007700">AND&nbsp;</span><span style="color: #0000BB">VENDACCOUNT</span><span style="color: #007700">=@</span><span style="color: #0000BB">VENDACCOUNT&nbsp;</span><span style="color: #007700">AND&nbsp;@</span><span style="color: #0000BB">ACCOUNTID&nbsp;</span><span style="color: #007700">=&nbsp;@</span><span style="color: #0000BB">ACCOUNTID</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">END<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;FETCH&nbsp;NEXT&nbsp;FROM&nbsp;VendBankAccount_Cursor&nbsp;INTO&nbsp;</span><span style="color: #007700">@</span><span style="color: #0000BB">DATAAREAID</span><span style="color: #007700">,&nbsp;@</span><span style="color: #0000BB">VENDACCOUNT</span><span style="color: #007700">,&nbsp;@</span><span style="color: #0000BB">ACCOUNTID</span><span style="color: #007700">,&nbsp;@</span><span style="color: #0000BB">recid</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">END</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">CLOSE&nbsp;VendBankAccount_Cursor</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">DEALLOCATE&nbsp;VendBankAccount_Cursor</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">UPDATE&nbsp;</span><span style="color: #007700">&#91;</span><span style="color: #0000BB">SYSTEMSEQUENCES</span><span style="color: #007700">&#93;<br /></span><span style="color: #0000BB">SET&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NEXTVAL&nbsp;</span><span style="color: #007700">=&nbsp;@</span><span style="color: #0000BB">recIdVendBankAccount&nbsp;</span><span style="color: #007700">+&nbsp;</span><span style="color: #0000BB">1<br />Where&nbsp;&nbsp;ID&nbsp;</span><span style="color: #007700">=&nbsp;-</span><span style="color: #0000BB">1&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">AND&nbsp;</span><span style="color: #0000BB">TABID&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">489&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">--</span><span style="color: #0000BB">VENDBANKACCOUNT&nbsp;&nbsp;&nbsp;&nbsp;<br /><br /></span><span style="color: #007700">-------------------------------</span><span style="color: #0000BB">VendBankAccount&nbsp;&nbsp;End</span><span style="color: #007700">----------------------------------<br /><br /></span><span style="color: #0000BB">SELECT&nbsp;</span><span style="color: #007700">*<br />&nbsp;&nbsp;</span><span style="color: #0000BB">FROM&nbsp;</span><span style="color: #007700">&#91;</span><span style="color: #0000BB">SYSTEMSEQUENCES</span><span style="color: #007700">&#93;<br />&nbsp;&nbsp;</span><span style="color: #0000BB">where&nbsp;&nbsp;ID&nbsp;</span><span style="color: #007700">=&nbsp;-</span><span style="color: #0000BB">1&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">AND&nbsp;</span><span style="color: #0000BB">TABID&nbsp;in&nbsp;</span><span style="color: #007700">(</span><span style="color: #0000BB">77</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">505</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">50</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">489</span><span style="color: #007700">)<br />&nbsp;&nbsp;</span><span style="color: #0000BB">order&nbsp;by&nbsp;tabid</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">NEXTVAL&nbsp;desc<br />&nbsp;&nbsp;<br /><br />select&nbsp;MAX</span><span style="color: #007700">(</span><span style="color: #0000BB">recid</span><span style="color: #007700">),&nbsp;</span><span style="color: #DD0000">'CUSTBANKACCOUNT-&nbsp;50&nbsp;'&nbsp;</span><span style="color: #0000BB">from&nbsp;CUSTBANKACCOUNT&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">--&nbsp;</span><span style="color: #0000BB">50&nbsp;&nbsp;<br />select&nbsp;MAX</span><span style="color: #007700">(</span><span style="color: #0000BB">recid</span><span style="color: #007700">),&nbsp;</span><span style="color: #DD0000">'custtable-&nbsp;77'&nbsp;</span><span style="color: #0000BB">from&nbsp;custtable&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">--&nbsp;</span><span style="color: #0000BB">77<br />select&nbsp;MAX</span><span style="color: #007700">(</span><span style="color: #0000BB">recid</span><span style="color: #007700">),&nbsp;</span><span style="color: #DD0000">'VENDBANKACCOUNT-&nbsp;489'&nbsp;</span><span style="color: #0000BB">from&nbsp;VENDBANKACCOUNT&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">--&nbsp;</span><span style="color: #0000BB">489<br />select&nbsp;MAX</span><span style="color: #007700">(</span><span style="color: #0000BB">recid</span><span style="color: #007700">),&nbsp;</span><span style="color: #DD0000">'vendtable-&nbsp;505'&nbsp;</span><span style="color: #0000BB">from&nbsp;vendtable&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">--&nbsp;</span><span style="color: #0000BB">505&nbsp;<br /></span>
</span>
</code><!-- php buffer end -->
		</code>
	</div>
</div>P.S. Ax 2009 Sp1 RU5</div>

]]></content:encoded>
			<dc:creator>Poleax</dc:creator>
			<guid isPermaLink="true">//axforum.info/forums/blog.php?b=247</guid>
		</item>
		<item>
			<title><![CDATA[Вспомогательный документооборот. Поле  "Код конфигурации вспомогательного бизнес-правила" lookup ни чего не показывает.]]></title>
			<link>//axforum.info/forums/blog.php?b=240</link>
			<pubDate>Fri, 08 Apr 2011 06:00:36 GMT</pubDate>
			<description><![CDATA[На форме *РсП\Настройка\Конфигурация документооборота. Вкладка Разное --> кнопка Изменить*
 
Форма *"Бизнес-правило: Шаблон выплаты клиенту"*
Вкладка *Подробности*. Добавляем Вспомогательный документооборот. (Идентификатор вспомогательного документооборота)
Выбираем *"Вспомогательный документооборот 1"*
 
Поле  *"Код конфигурации вспомогательного бизнес-правила"* lookup ни чего не показывает.  :eek:  Почему? (исследуем)
Вложение 123 (//axforum.info/forums/attachment.php?attachmentid=123) 

*Выявляем причину:*
На форме "Конфигурация документооборота" выбран "Шаблон выплаты клиенту" это есть *\Workflow\Workflow Templates\CustPaymentTemplate*
 
Для него через свойство *Document *выбран класс *CustPaymentWFApprDoc *наследованный от класса *LedgerJournalWFApprovalDocument*
У *LedgerJournalWFApprovalDocument *есть метод *getQueryName *возвращающий *Query\LedgerJournalWFApprovals*.
У Query \LedgerJournalWFApprovals* DataSource = LedgerJournalTable*
 
Lookup вызывается из формы *"Конфигурация документооборота"* \Forms\WorkflowConfiguration\Data Sources\WorkflowSubWorkflowTable\Fields\ConfigurationSequenceNumber\Methods\lookup
 
Вызывается *\Classes\WorkflowConfigurationForm\subWorkflowConfiguration_lookup*, где видим   строку  formRunLookup.setTemplateFilterList(subWorkflowTemplateList); 
Переменная *subWorkflowTemplateList *содержит названия шаблонов документооборота, которые можно выбирать как вспомогательные. 
 
В методе \Classes\WorkflowConfigurationBase\loadSubWorkflowTemplates
как раз и собирается список *subWorkflowTemplateList*.
При добавлении в список шаблоны документооборота проходят фильтрацию:
1.  Шаблоны документооборота настроены на свои таблицы. Шаблон пройдет фильтрацию, если его таблица был замечена в связи у поля с таблицы LedgerJournalTable.  (Проверка через класс SysDictRelation метод loadFieldRelation)
Проверяются все не системные поля таблицы. В связанной таблице должно быть хотя бы одна запись. 
Список отобранных связанных таблиц содержится в *parentTableRelations*.
Не путать с \Data Dictionary\Tables\LedgerJournalTable\*Relations*
2.  во вспомогательные шаблоны могуть попать все кроме самого себя :) Т.е. Lookup не покажет  выборку со связкой на *CustPaymentTemplate *если мы настраиваем сам *CustPaymentTemplate*.
3. Ну и проверка на конфигурационные ключи у шаблонов документооборота.

В итоге отобранные шаблоны идут как фильтр для формы *WorkflowConfigurationLookup*
 
В Lookup выдим выборку по таблице *WorkflowConfigurationTable *с доп. условиями:
* должны быть активна *Конфигурации документооборота*
* Тип конфигурации = *Определение *(Тип конфигурации определяет, является ли конфигурация определением или она представляет собой конфигурацию обработки (времени выполнения).)


P.S. Если *subWorkflowTemplateList* пуст, то Lookup показывает все конфигурации документооборота. :)]]></description>
			<content:encoded><![CDATA[<div>На форме <b>РсП\Настройка\Конфигурация документооборота. Вкладка Разное --&gt; кнопка Изменить</b><br />
 <br />
Форма <b>&quot;Бизнес-правило: Шаблон выплаты клиенту&quot;</b><br />
Вкладка <b>Подробности</b>. Добавляем Вспомогательный документооборот. (Идентификатор вспомогательного документооборота)<br />
Выбираем <b>&quot;Вспомогательный документооборот 1&quot;</b><br />
 <br />
Поле  <b>&quot;Код конфигурации вспомогательного бизнес-правила&quot;</b> <font color="Red">lookup ни чего не показывает.</font>  :eek:  Почему? (исследуем)<br />
<a href="//axforum.info/forums/blog_attachment.php?attachmentid=123&amp;d=1302241389" rel="Lightbox" id="attachment123" ><img src="//axforum.info/forums/blog_attachment.php?attachmentid=123&amp;thumb=1&amp;d=1302241389" class="thumbnail" border="0" alt="Нажмите на изображение для увеличения
Название: wfTempDoc.png
Просмотров: 260
Размер:	87.0 Кб
ID:	123" style="margin: 2px" /></a> <br />
<br />
<b>Выявляем причину:</b><br />
На форме &quot;Конфигурация документооборота&quot; выбран &quot;Шаблон выплаты клиенту&quot; это есть <b>\Workflow\Workflow Templates\CustPaymentTemplate</b><br />
 <br />
Для него через свойство <b>Document </b>выбран класс <b>CustPaymentWFApprDoc </b>наследованный от класса <b>LedgerJournalWFApprovalDocument</b><br />
У <b>LedgerJournalWFApprovalDocument </b>есть метод <b>getQueryName </b>возвращающий <b>Query\LedgerJournalWFApprovals</b>.<br />
У Query \LedgerJournalWFApprovals<b> DataSource = <font color="Blue">LedgerJournalTable</font></b><br />
 <br />
Lookup вызывается из формы <b>&quot;Конфигурация документооборота&quot;</b> \Forms\WorkflowConfiguration\Data Sources\WorkflowSubWorkflowTable\Fields\ConfigurationSequenceNumber\Methods\lookup<br />
 <br />
Вызывается <b>\Classes\WorkflowConfigurationForm\subWorkflowConfiguration_lookup</b>, где видим   строку  <div class="xpp"><div class="smallfont xpp_title">X++:</div><pre class="alt2 xpp_code">formRunLookup.setTemplateFilterList(subWorkflowTemplateList);</pre></div>Переменная <b>subWorkflowTemplateList </b>содержит названия шаблонов документооборота, которые можно выбирать как вспомогательные. <br />
 <br />
В методе \Classes\WorkflowConfigurationBase\loadSubWorkflowTemplates<br />
как раз и собирается список <b>subWorkflowTemplateList</b>.<br />
При добавлении в список шаблоны документооборота проходят фильтрацию:<ol style="list-style-type: decimal"><li> Шаблоны документооборота настроены на свои таблицы. Шаблон пройдет фильтрацию, если его таблица был замечена в связи у поля с таблицы <font color="blue">LedgerJournalTable</font>.  (Проверка через класс SysDictRelation метод loadFieldRelation)<br />
Проверяются все не системные поля таблицы. В связанной таблице должно быть хотя бы одна запись. <br />
Список отобранных связанных таблиц содержится в <b>parentTableRelations</b>.<br />
Не путать с \Data Dictionary\Tables\LedgerJournalTable\<b>Relations</b><br /></li>
<li> во вспомогательные шаблоны могуть попать все кроме самого себя :) Т.е. Lookup не покажет  выборку со связкой на <b>CustPaymentTemplate </b>если мы настраиваем сам <b>CustPaymentTemplate</b>.<br /></li>
<li>Ну и проверка на конфигурационные ключи у шаблонов документооборота.</li>
</ol>В итоге отобранные шаблоны идут как фильтр для формы <b>WorkflowConfigurationLookup</b><br />
 <br />
В Lookup выдим выборку по таблице <b>WorkflowConfigurationTable </b>с доп. условиями:<ul><li>должны быть активна <b>Конфигурации документооборота</b></li>
<li>Тип конфигурации = <b>Определение </b>(Тип конфигурации определяет, является ли конфигурация определением или она представляет собой конфигурацию обработки (времени выполнения).)</li>
</ul><br />
P.S. Если <b>subWorkflowTemplateList</b> пуст, то Lookup показывает все конфигурации документооборота. :)</div>

]]></content:encoded>
			<dc:creator>Poleax</dc:creator>
			<guid isPermaLink="true">//axforum.info/forums/blog.php?b=240</guid>
		</item>
		<item>
			<title>Формат адресов. AddressMap_RU</title>
			<link>//axforum.info/forums/blog.php?b=225</link>
			<pubDate>Tue, 08 Feb 2011 08:35:17 GMT</pubDate>
			<description><![CDATA[В локализованной Dynamics Ax 2009 можно видеть разность отображения полей в зависимости от страны.
Для стран настраивается формат адреса*(Основное -> Настройка -> Формат адреса)* и тип адреса *(Основное -> Настройка -> Страна/регион)*.

К примеру на форме Банк: 
Изображение: http://s50.radikal.ru/i130/1102/75/64758c4e41d8.png      Изображение: http://s51.radikal.ru/i132/1102/0c/74bf6566a406.png 

Если есть потребность при создании новой формы вывести вкладку с Адресами, то приведу список объектов для модификации:

1. В Вашей таблице создаем поля для адреса. Список полей и их форматов можно скопировать с
   * \Data Dictionary\Maps\AddressMap\Fields
   * \Data Dictionary\Maps\AddressMap_RU\Fields

Сопоставим свою таблицу с полями в Map(ах) в Mappings.
2. В методе *\Classes\FormRunListener_Address_RU\addressInfo*
добавим код:
            case formstr(NewMyForm) :
                return [[#AddressGroup, tablenum(AddressMap)]];*#AddressGroup* стандартный макрос (\Macros\Address_RU), типичных названий групп для списка полей адресов.

*NewMyForm *- ваша форма. Где есть группа *\Forms\NewMyForm\Designs\Design\[Tab:Tab]\[TabPage:Address]\[Group:AddressGroup]* с выставленными свойствами *DataGroup = Address*, AutoDataGroup = Yes.

В вашей таблице есть группы полей: 
   * \Data Dictionary\Tables\NewMyTable\Field Groups\*Address *(список полей на примере Maps\AddressMap)
   *  \Data Dictionary\Tables\NewMyTable\Field Groups\Address_RU (список полей на примере Maps\AddressMap_RU )
3.  В таблице *NewMyTable* создаем методы
   * *\Data Dictionary\Tables\NewMyTable\Methods\modifiedField*
public void modifiedField(fieldId _fieldId)
{
    ;
    super(_fieldId);

    this.AddressMap::modifiedField(_fieldId);   
}
   * \*Data Dictionary\Tables\NewMyTable\Methods\validateField*

public boolean validateField(fieldId fieldId)
{
    boolean ret;
    ;

    if(!this.AddressMap::validatePostalCode(fieldId))
    {
        return false;
    }

    ret = super(fieldId);

    /*
    if (ret)
    {
        switch (fieldId)
        {

            case (fieldnum(NewMyTable, INN)):
                ret = CompanyInfo::checkInn_RU(this.INN);
                break;
        }
    }           
    */
    return ret;
}


При запуске формы ваши поля адреса сопоставятся с полями МАР(ов), что в результате позволит использовать стандартные методы lookup*, modified*, make* и т.д.

На ваше форме смена значения в поле *Страна/регион* динамически изменит поля адреса.]]></description>
			<content:encoded><![CDATA[<div>В локализованной Dynamics Ax 2009 можно видеть разность отображения полей в зависимости от страны.<br />
Для стран настраивается формат адреса<b>(Основное -&gt; Настройка -&gt; Формат адреса)</b> и тип адреса <b>(Основное -&gt; Настройка -&gt; Страна/регион)</b>.<br />
<br />
К примеру на форме Банк: <br />
<img src="http://s50.radikal.ru/i130/1102/75/64758c4e41d8.png" border="0" alt="" />     <img src="http://s51.radikal.ru/i132/1102/0c/74bf6566a406.png" border="0" alt="" /><br />
<br />
Если есть потребность при создании новой формы вывести вкладку с Адресами, то приведу список объектов для модификации:<br />
<ol style="list-style-type: decimal"><li>В Вашей таблице создаем поля для адреса. Список полей и их форматов можно скопировать с<ul><li>\Data Dictionary\Maps\AddressMap\Fields</li>
<li>\Data Dictionary\Maps\AddressMap_RU\Fields</li>
</ul>Сопоставим свою таблицу с полями в Map(ах) в Mappings.<br />
<br /></li>
<li>В методе <b>\Classes\FormRunListener_Address_RU\addressInfo</b><br />
добавим код:<br />
<div class="xpp"><div class="smallfont xpp_title">X++:</div><pre class="alt2 xpp_code">            <span style="color: blue">case</span> <span style="color: blue">formstr</span>(NewMyForm) :
                <span style="color: blue">return</span> [[#AddressGroup, <span style="color: blue">tablenum</span>(AddressMap)]];</pre></div><font color="Green"><b>#AddressGroup</b></font> стандартный макрос (\Macros\Address_RU), типичных названий групп для списка полей адресов.<br />
<br />
<b>NewMyForm </b>- ваша форма. Где есть группа <b>\Forms\NewMyForm\Designs\Design\[Tab:Tab]\[TabPage:Address]\[Group:<font color="Green">AddressGroup</font>]</b> с выставленными свойствами <b>DataGroup = <font color="Magenta">Address</font></b>, AutoDataGroup = Yes.<br />
<br />
В вашей таблице есть группы полей: <ul><li>\Data Dictionary\Tables\NewMyTable\Field Groups\<b><font color="Magenta">Address</font> </b>(список полей на примере Maps\AddressMap)</li>
<li> \Data Dictionary\Tables\NewMyTable\Field Groups\Address_RU (список полей на примере Maps\AddressMap_RU )</li>
</ul><br /></li>
<li> В таблице <b>NewMyTable</b> создаем методы<ul><li><b>\Data Dictionary\Tables\NewMyTable\Methods\modifiedField</b><br />
<div class="xpp"><div class="smallfont xpp_title">X++:</div><pre class="alt2 xpp_code"><span style="color: blue">public</span> <span style="color: blue">void</span> modifiedField(fieldId _fieldId)
{
    ;
    <span style="color: blue">super</span>(_fieldId);

    this.AddressMap::modifiedField(_fieldId);   
}</pre></div></li>
<li>\<b>Data Dictionary\Tables\NewMyTable\Methods\validateField</b><br />
<div class="xpp"><div class="smallfont xpp_title">X++:</div><pre class="alt2 xpp_code"><span style="color: blue">public</span> boolean validateField(fieldId fieldId)
{
    boolean ret;
    ;

    <span style="color: blue">if</span>(!this.AddressMap::validatePostalCode(fieldId))
    {
        <span style="color: blue">return</span> <span style="color: blue">false</span>;
    }

    ret = <span style="color: blue">super</span>(fieldId);

    <span style="color: green">/*
    if (ret)
    {
        switch (fieldId)
        {

            case (fieldnum(NewMyTable, INN)):
                ret = CompanyInfo::checkInn_RU(this.INN);
                break;
        }
    }           
    */</span>
    <span style="color: blue">return</span> ret;
}</pre></div></li>
</ul></li>
</ol><br />
При запуске формы ваши поля адреса сопоставятся с полями МАР(ов), что в результате позволит использовать стандартные методы lookup*, modified*, make* и т.д.<br />
<br />
На ваше форме смена значения в поле <b>Страна/регион</b> динамически изменит поля адреса.</div>

]]></content:encoded>
			<dc:creator>Poleax</dc:creator>
			<guid isPermaLink="true">//axforum.info/forums/blog.php?b=225</guid>
		</item>
		<item>
			<title>Запись и документирование действий пользователя.</title>
			<link>//axforum.info/forums/blog.php?b=226</link>
			<pubDate>Tue, 08 Feb 2011 07:54:47 GMT</pubDate>
			<description><![CDATA[Имеем к примеру потребность" заскриншотить", что там пользователь делает для последующего разбора.

1. *Microsoft Dynamics Ax 2009 *
Записывает действия пользователя. 

Предлагает сохранить данные в:
   * Microsoft Word (Документация со скриншотами форм.)
   * Microsoft Visio (блок-схема)
   * Microsoft PowerPoint (Презентация + скриншоты форм).


Microsoft Dynamics Ax -> Сервис -> Регистратор задач.
Вложение 102 (//axforum.info/forums/attachment.php?attachmentid=102)
2. *Быстрое решение проблем с Windows 7 и приложениями с помощью инструмента Problem Steps Recorder (PSR) (http://www.redline-software.com/rus/support/articles/networking/7/windows7-problems-steps-recorder.php)*

В ОС есть программа PSR.exe записи действий пользователя.
Изображение: http://www.redline-software.com/upload/articles/net/solving-windows-7-application-problems-quickly-using-problem-steps-recorder-psr/2.jpg 

Результат сохраняется в формате **.mht *, открываемого Internet Explorer.
PSR записывает информацию и делает скриншоты. Содержание файла:
   * Записанные шаги ошибки
   * Этапы проблемы
   * Дополнительные сведения
3. * Camtasia Studio for Windows  Запись (http://www.techsmith.com/camtasia/)* видео с экрана.
4. *Adobe Captivate 5 (http://www.adobe.com/products/captivate/)* Делает Flash ролик (swf или exe) о действиях пользователя.
5.  и д.р. *Презентация - программы для создания в разных форматах.  (http://forum.ru-board.com/topic.cgi?forum=5&topic=29705#1)*

]]></description>
			<content:encoded><![CDATA[<div>Имеем к примеру потребность&quot; заскриншотить&quot;, что там пользователь делает для последующего разбора.<br />
<ol style="list-style-type: decimal"><li><b>Microsoft Dynamics Ax 2009 </b><br />
Записывает действия пользователя. <br />
<br />
Предлагает сохранить данные в:<ul><li>Microsoft Word (Документация со скриншотами форм.)</li>
<li>Microsoft Visio (блок-схема)</li>
<li>Microsoft PowerPoint (Презентация + скриншоты форм).</li>
</ul><br />
Microsoft Dynamics Ax -&gt; Сервис -&gt; Регистратор задач.<br />
<a href="//axforum.info/forums/blog_attachment.php?attachmentid=102&amp;d=1297151040" rel="Lightbox" id="attachment102" ><img src="//axforum.info/forums/blog_attachment.php?attachmentid=102&amp;thumb=1&amp;d=1297151040" class="thumbnail" border="0" alt="Нажмите на изображение для увеличения
Название: rz.png
Просмотров: 141
Размер:	33.2 Кб
ID:	102" style="margin: 2px" /></a><br />
<br /></li>
<li><b><a href="http://www.redline-software.com/rus/support/articles/networking/7/windows7-problems-steps-recorder.php" target="_blank">Быстрое решение проблем с Windows 7 и приложениями с помощью инструмента Problem Steps Recorder (PSR)</a></b><br />
<br />
В ОС есть программа PSR.exe записи действий пользователя.<br />
<img src="http://www.redline-software.com/upload/articles/net/solving-windows-7-application-problems-quickly-using-problem-steps-recorder-psr/2.jpg" border="0" alt="" /><br />
<br />
Результат сохраняется в формате <b>*.mht </b>, открываемого Internet Explorer.<br />
PSR записывает информацию и делает скриншоты. Содержание файла:<ul><li>Записанные шаги ошибки</li>
<li>Этапы проблемы</li>
<li>Дополнительные сведения</li>
</ul><br /></li>
<li><b><a href="http://www.techsmith.com/camtasia/" target="_blank"> Camtasia Studio for Windows  Запись</a></b> видео с экрана.<br />
<br /></li>
<li><b><a href="http://www.adobe.com/products/captivate/" target="_blank">Adobe Captivate 5</a></b> Делает Flash ролик (swf или exe) о действиях пользователя.<br />
<br /></li>
<li> и д.р. <b><a href="http://forum.ru-board.com/topic.cgi?forum=5&amp;topic=29705#1" target="_blank">Презентация - программы для создания в разных форматах. </a></b><br />
</li>
</ol></div>

]]></content:encoded>
			<dc:creator>Poleax</dc:creator>
			<guid isPermaLink="true">//axforum.info/forums/blog.php?b=226</guid>
		</item>
		<item>
			<title>Как кодом узнать StringSize для тектового поля таблицы?</title>
			<link>//axforum.info/forums/blog.php?b=197</link>
			<pubDate>Wed, 08 Dec 2010 11:27:21 GMT</pubDate>
			<description><![CDATA[Заметка:

Ax 2009 *\System Documentation\Classes\DictField\stringLen*

DictField df;
;

df = new DictField(tablenum(Address), fieldnum(Address, Name));

if (df)
{
    print strfmt("The string length is %1.", df.stringLen());
}P.S.
* DictTable Class (http://msdn.microsoft.com/en-US/library/aa621040.aspx)
* DictField Class (http://msdn.microsoft.com/en-us/library/aa556779%28v=AX.50%29.aspx)

]]></description>
			<content:encoded><![CDATA[<div><font color="DimGray">Заметка:</font><br />
<br />
Ax 2009 <b>\System Documentation\Classes\DictField\stringLen</b><br />
<br />
<div class="xpp"><div class="smallfont xpp_title">X++:</div><pre class="alt2 xpp_code">DictField df;
;

df = <span style="color: blue">new</span> DictField(<span style="color: blue">tablenum</span>(Address), <span style="color: blue">fieldnum</span>(Address, Name));

<span style="color: blue">if</span> (df)
{
    <span style="color: blue">print</span> strfmt(<span style="color: red">&quot;The string length is %1.&quot;</span>, df.stringLen());
}</pre></div>P.S.<ul><li><a href="http://msdn.microsoft.com/en-US/library/aa621040.aspx" target="_blank">DictTable Class</a></li>
<li><a href="http://msdn.microsoft.com/en-us/library/aa556779%28v=AX.50%29.aspx" target="_blank">DictField Class</a></li>
</ul></div>

]]></content:encoded>
			<dc:creator>Poleax</dc:creator>
			<guid isPermaLink="true">//axforum.info/forums/blog.php?b=197</guid>
		</item>
		<item>
			<title>Вывод инфолога с возможностью перехода к записи</title>
			<link>//axforum.info/forums/blog.php?b=192</link>
			<pubDate>Tue, 26 Oct 2010 07:00:49 GMT</pubDate>
			<description><![CDATA[Напоминалка

Вывод инфолога с возможностью перехода к записи.

@GEE33803 = *Заказ на продажу '%1' создан.*

      
    SalesTable          newSalesTable;
;
//......
  info(strfmt("@GEE33803", newSalesTable.SalesId),'', SysInfoAction_TableField::newBuffer(newSalesTable));
//......
]]></description>
			<content:encoded><![CDATA[<div>Напоминалка<br />
<br />
Вывод инфолога с возможностью перехода к записи.<br />
<br />
<font color="Red">@GEE33803</font> = <b>Заказ на продажу '%1' создан.</b><br />
<br />
<div class="xpp"><div class="smallfont xpp_title">X++:</div><pre class="alt2 xpp_code">    SalesTable          newSalesTable;
;
<span style="color: green">//......
</span>  info(strfmt(<span style="color: red">&quot;@GEE33803&quot;</span>, newSalesTable.SalesId),<span style="color: red">''</span>, SysInfoAction_TableField::newBuffer(newSalesTable));
<span style="color: green">//......</span></pre></div></div>

]]></content:encoded>
			<dc:creator>Poleax</dc:creator>
			<guid isPermaLink="true">//axforum.info/forums/blog.php?b=192</guid>
		</item>
		<item>
			<title>Connecting to Databases through X++</title>
			<link>//axforum.info/forums/blog.php?b=189</link>
			<pubDate>Thu, 14 Oct 2010 13:31:13 GMT</pubDate>
			<description><![CDATA[Connecting to Databases through X++ (http://sumit-theaxfactor.spaces.live.com/Blog/cns!596957786228C73F!299.entry)

In this article, I am going to explain about different ways through which one can connect to different databases for data manipulation operations.
 
In AX, the methods that I know are following. Please feel free to add more methods that you feel are also available.
 
*  ODBC Connection
*  ADO Connection
*  OleDB Connection
*  Connection class


Let us go through each of these options one by one.

*ODBC Connection:*

ODBC stands for Open Data Base Connectivity. It is a connection that is created to define a connection between a computer and a database stored on another system. The ODBC connection contains information needed to allow a computer user to access the information stored in a database that is not local to that computer. In Dynamics AX, we have ODBCConnection class to carry out this type of database connection need. This class uses LoginProperty class for login information and uses Statement and ResultSet classes for carrying out DML operations. Below is an example of how to use this class.

    static void dbODBCConnection(Args _args)
    {
        LoginProperty   loginProp;
        ODBCConnection  conn;
        Resultset       resultSet, resultSetCount;
        Statement       statement1, statement2;
        ;

        loginProp = new LoginProperty();

        loginProp.setServer('SUMIT');
        loginProp.setDatabase('AX2009');

        conn = new ODBCConnection(loginProp);

        statement1  = conn.createStatement();
        resultSet   = statement1.executeQuery("SELECT * from CustTable where DATAAREAID = 'CEU'");

        while (resultSet.next())
        {
            info(resultSet.getString(1));
        }
     }The above sample code is a job. Note that you may have to use respective permission classes like SQLStatementExecutePermission etc. while using in classes and any other place. Note that if you need to invoke a stored procedure then just type exec <SPName> in the executeQuery instead of the select statement.

*ADO Connection:*

ADO is an abbreviation for ActiveX Data Objects. ADO is a set of COM objects for accessing databases or data stores. In AX we have following objects making a collection for implementing ADO concept.
*  CCADOConnection - Helps in establishing a connection to the target database.
*  CCADOCommand - Helps in executing a command (a Text type or a Stored procedure)
*  CCADORecordSet - Stores the data
*  CCADOFields - A collection of all fields in CCADORecordSet
*  CCADOField - A single field from the collection of fields
*  CCADOParameter - A class that helps in passing parameters that a command needs or demands

The example below demonstrates the working of some of these classes:

    static void dbCCADOConnection(Args _args)
    {
        CCADOConnection connection = new CCADOConnection();
        CCADOCommand    ccADOCommand;
        CCADORecordSet  record;
        str connectStr = "Provider=SQLNCLI.1;Integrated Security=SSPI;"+
                         "Persist Security Info=False;Initial Catalog=AX2009;Data Source=SUMIT";

        COM     recordSet;  /*This is required to call moveNext method to parse the record set. In AX 4.0 this method was there in the CCADORecordSet class but in AX 2009 this has been deleted*/
        ;

        // Executing a SQL Statement
        try
        {
            connection.open(connectStr);
            ccADOCommand = new CCADOCommand();
            ccADOCommand.commandText("Select * from CustTable where DataAreaId = 'CEU'");
            ccADOCommand.activeConnection(connection);
            record = ccADOCommand.execute();
            recordSet = record.recordSet();
            while (!record.EOF())
            {
                info(any2str(record.fields().itemIdx(0).value()));
                recordSet.moveNext();
            }
        }
        catch
        {
            error("An Exception has occurred");
        }

        connection.close();
    }The above sample code is a job. Note that you may have to use respective permission classes like SQLStatementExecutePermission etc. while using in classes and any other place.

*OLEDB Connection:*

OLEDB stands for Object Linking and Embedding, DataBase. It is a set of APIs designed by Microsoft and used for accessing different types of data stored in a uniform manner. Dynamics AX as such doesn't have any specific classes built for this purpose. But one can make use of .Net Framework's System.Data.OleDb namespace through AX's COM Interoperability feature and use it in AX.

Below is an example code that depicts this scenario:

    static void dbOLEDBConnection(Args _args)
    {
        System.Exception                    e;
        System.Data.OleDb.OleDbConnection   objConn;
        System.Data.OleDb.OleDbCommand      cmdSelect;
        System.Data.OleDb.OleDbDataReader   reader;
        InteropPermission                   perm;
        str connectStr = "Provider=SQLNCLI.1;Integrated Security=SSPI;"+
                         "Persist Security Info=False;Initial Catalog=AX2009;Data Source=SUMIT";
        str exceptionStr;
        ;

        try
        {
            perm = new InteropPermission(InteropKind::ClrInterop);
            if (perm == null)
            {
                throw error("Error with file permissions");
            }
            perm.assert();

            objConn = new System.Data.OleDb.OleDbConnection(connectStr);
            objConn.Open();

            cmdSelect   = objConn.CreateCommand();
            cmdSelect.set_CommandText("SELECT * FROM CustTable where DATAAREAID = 'CEU'");
            reader      = cmdSelect.ExecuteReader();

            while (reader.Read())
            {
                info(reader.GetString(0));
            }
        }
        catch(Exception::CLRError)
        {
            CodeAccessPermission::revertAssert();

            perm = new InteropPermission(InteropKind::ClrInterop);
            if (perm == null)
            {
                return;
            }
            perm.assert();

            e = ClrInterop::getLastException();

            CodeAccessPermission::revertAssert();

            while( e )
            {
                exceptionStr += e.get_Message();
                e = e.get_InnerException();
            }
            info(exceptionStr);
        }
        catch
        {
            error("An Exception has occurred");
        }

        if(objConn)
            objConn.Close();
    }*
Connection Class:*

Connection class is mainly used for accessing the database in which a user has logged into AX i.e. Current Database and carry out the operations. This class is exetensively used in ReleaseUpdateDB classes, the classes used in data upgrades. This class cannot be run on client and should always be run on server. One more unique thing that I noticed is that the statements that you want to execute should be asserted first for permissions and then passed on to other method where they are executed. Create a class with following methods and set its RunOn property to Server.

    class TestSQLExecuteClass
    {
    }

    //This method tests the permissions for statement and then calls the method that will execute the statement
    static void dbConnectionClass()
    {
        ResultSet   rs;
        SqlStatementExecutePermission perm;
        ;

        perm = new SQLStatementExecutePermission("select * from CustTable where DATAAREAID = 'CEU'");
        perm.assert();

        rs = TestSQLExecuteClass::statementExeQuery("select * from CustTable where DATAAREAID = 'CEU'");

        while (rs.next())
        {
            info(rs.getString(1));
        }
        CodeAccessPermission::revertAssert();
    }

    //Executes the passed statement
    private static ResultSet statementExeQuery(str _sql, Connection _con = null)
    {
        ResultSet   resultSet;
        Statement   statement;
        ;

        try
        {
            if(!_con)
            {
                _con = new Connection();
            }

            statement = _con.createStatement();

            // Do not call assert() here, do it in the caller
            // BP deviation documented
            resultSet = statement.executeQuery(_sql);
        }
        catch (Exception::Error)
        {
            throw error("@SYS99562");
        }

        return resultSet;
    }Now you can call the method in a job as shown below:

    static void dbConnectionClass(Args _args)
    {
        ;

        TestSQLExecuteClass::dbConnectionClass();
    }These examples shown here are pretty simple and easy to understand and start with. Hope it helps you in building 'connections' Tongue out.]]></description>
			<content:encoded><![CDATA[<div><a href="http://sumit-theaxfactor.spaces.live.com/Blog/cns!596957786228C73F!299.entry" target="_blank">Connecting to Databases through X++</a><br />
<br />
In this article, I am going to explain about different ways through which one can connect to different databases for data manipulation operations.<br />
 <br />
In AX, the methods that I know are following. Please feel free to add more methods that you feel are also available.<br />
 <ul><li> ODBC Connection</li>
<li> ADO Connection</li>
<li> OleDB Connection</li>
<li> Connection class</li>
</ul><br />
Let us go through each of these options one by one.<br />
<br />
<b>ODBC Connection:</b><br />
<br />
ODBC stands for Open Data Base Connectivity. It is a connection that is created to define a connection between a computer and a database stored on another system. The ODBC connection contains information needed to allow a computer user to access the information stored in a database that is not local to that computer. In Dynamics AX, we have ODBCConnection class to carry out this type of database connection need. This class uses LoginProperty class for login information and uses Statement and ResultSet classes for carrying out DML operations. Below is an example of how to use this class.<br />
<div class="xpp"><div class="smallfont xpp_title">X++:</div><pre class="alt2 xpp_code">    <span style="color: blue">static</span> <span style="color: blue">void</span> dbODBCConnection(Args _args)
    {
        LoginProperty   loginProp;
        ODBCConnection  conn;
        Resultset       resultSet, resultSetCount;
        Statement       statement1, statement2;
        ;

        loginProp = <span style="color: blue">new</span> LoginProperty();

        loginProp.setServer(<span style="color: red">'SUMIT'</span>);
        loginProp.setDatabase(<span style="color: red">'AX2009'</span>);

        conn = <span style="color: blue">new</span> ODBCConnection(loginProp);

        statement1  = conn.createStatement();
        resultSet   = statement1.executeQuery(<span style="color: red">&quot;SELECT * from CustTable where DATAAREAID = 'CEU'&quot;</span>);

        <span style="color: blue">while</span> (resultSet.<span style="color: blue">next</span>())
        {
            info(resultSet.getString(1));
        }
     }</pre></div>The above sample code is a job. Note that you may have to use respective permission classes like SQLStatementExecutePermission etc. while using in classes and any other place. <i>Note that if you need to invoke a stored procedure then just type exec &lt;SPName&gt; in the executeQuery instead of the select statement.</i><br />
<br />
<b>ADO Connection:</b><br />
<br />
ADO is an abbreviation for ActiveX Data Objects. ADO is a set of COM objects for accessing databases or data stores. In AX we have following objects making a collection for implementing ADO concept.<ul><li> CCADOConnection - Helps in establishing a connection to the target database.</li>
<li> CCADOCommand - Helps in executing a command (a Text type or a Stored procedure)</li>
<li> CCADORecordSet - Stores the data</li>
<li> CCADOFields - A collection of all fields in CCADORecordSet</li>
<li> CCADOField - A single field from the collection of fields</li>
<li> CCADOParameter - A class that helps in passing parameters that a command needs or demands</li>
</ul>The example below demonstrates the working of some of these classes:<br />
<br />
 <div class="xpp"><div class="smallfont xpp_title">X++:</div><pre class="alt2 xpp_code">   <span style="color: blue">static</span> <span style="color: blue">void</span> dbCCADOConnection(Args _args)
    {
        CCADOConnection connection = <span style="color: blue">new</span> CCADOConnection();
        CCADOCommand    ccADOCommand;
        CCADORecordSet  record;
        <span style="color: blue">str</span> connectStr = <span style="color: red">&quot;Provider=SQLNCLI.1;Integrated Security=SSPI;&quot;</span>+
                         <span style="color: red">&quot;Persist Security Info=False;Initial Catalog=AX2009;Data Source=SUMIT&quot;</span>;

        COM     recordSet;  <span style="color: green">/*This is required to call moveNext method to parse the record set. In AX 4.0 this method was there in the CCADORecordSet class but in AX 2009 this has been deleted*/</span>
        ;

        <span style="color: green">// Executing a SQL Statement
</span>        <span style="color: blue">try</span>
        {
            connection.open(connectStr);
            ccADOCommand = <span style="color: blue">new</span> CCADOCommand();
            ccADOCommand.commandText(<span style="color: red">&quot;Select * from CustTable where DataAreaId = 'CEU'&quot;</span>);
            ccADOCommand.activeConnection(connection);
            record = ccADOCommand.execute();
            recordSet = record.recordSet();
            <span style="color: blue">while</span> (!record.EOF())
            {
                info(any2str(record.fields().itemIdx(0).value()));
                recordSet.moveNext();
            }
        }
        <span style="color: blue">catch</span>
        {
            error(<span style="color: red">&quot;An Exception has occurred&quot;</span>);
        }

        connection.close();
    }</pre></div>The above sample code is a job. Note that you may have to use respective permission classes like SQLStatementExecutePermission etc. while using in classes and any other place.<br />
<br />
<b>OLEDB Connection:</b><br />
<br />
OLEDB stands for Object Linking and Embedding, DataBase. It is a set of APIs designed by Microsoft and used for accessing different types of data stored in a uniform manner. Dynamics AX as such doesn't have any specific classes built for this purpose. But one can make use of .Net Framework's System.Data.OleDb namespace through AX's COM Interoperability feature and use it in AX.<br />
<br />
Below is an example code that depicts this scenario:<br />
<div class="xpp"><div class="smallfont xpp_title">X++:</div><pre class="alt2 xpp_code">    <span style="color: blue">static</span> <span style="color: blue">void</span> dbOLEDBConnection(Args _args)
    {
        System.Exception                    e;
        System.Data.OleDb.OleDbConnection   objConn;
        System.Data.OleDb.OleDbCommand      cmdSelect;
        System.Data.OleDb.OleDbDataReader   reader;
        InteropPermission                   perm;
        <span style="color: blue">str</span> connectStr = <span style="color: red">&quot;Provider=SQLNCLI.1;Integrated Security=SSPI;&quot;</span>+
                         <span style="color: red">&quot;Persist Security Info=False;Initial Catalog=AX2009;Data Source=SUMIT&quot;</span>;
        <span style="color: blue">str</span> exceptionStr;
        ;

        <span style="color: blue">try</span>
        {
            perm = <span style="color: blue">new</span> InteropPermission(InteropKind::ClrInterop);
            <span style="color: blue">if</span> (perm == <span style="color: blue">null</span>)
            {
                <span style="color: blue">throw</span> error(<span style="color: red">&quot;Error with file permissions&quot;</span>);
            }
            perm.assert();

            objConn = <span style="color: blue">new</span> System.Data.OleDb.OleDbConnection(connectStr);
            objConn.Open();

            cmdSelect   = objConn.CreateCommand();
            cmdSelect.set_CommandText(<span style="color: red">&quot;SELECT * FROM CustTable where DATAAREAID = 'CEU'&quot;</span>);
            reader      = cmdSelect.ExecuteReader();

            <span style="color: blue">while</span> (reader.Read())
            {
                info(reader.GetString(0));
            }
        }
        <span style="color: blue">catch</span>(Exception::CLRError)
        {
            CodeAccessPermission::revertAssert();

            perm = <span style="color: blue">new</span> InteropPermission(InteropKind::ClrInterop);
            <span style="color: blue">if</span> (perm == <span style="color: blue">null</span>)
            {
                <span style="color: blue">return</span>;
            }
            perm.assert();

            e = ClrInterop::getLastException();

            CodeAccessPermission::revertAssert();

            <span style="color: blue">while</span>( e )
            {
                exceptionStr += e.get_Message();
                e = e.get_InnerException();
            }
            info(exceptionStr);
        }
        <span style="color: blue">catch</span>
        {
            error(<span style="color: red">&quot;An Exception has occurred&quot;</span>);
        }

        <span style="color: blue">if</span>(objConn)
            objConn.Close();
    }</pre></div><b><br />
Connection Class:</b><br />
<br />
Connection class is mainly used for accessing the database in which a user has logged into AX i.e. Current Database and carry out the operations. This class is exetensively used in ReleaseUpdateDB classes, the classes used in data upgrades. This class cannot be run on client and should always be run on server. One more unique thing that I noticed is that the statements that you want to execute should be asserted first for permissions and then passed on to other method where they are executed. Create a class with following methods and set its RunOn property to Server.<br />
<div class="xpp"><div class="smallfont xpp_title">X++:</div><pre class="alt2 xpp_code">    <span style="color: blue">class</span> TestSQLExecuteClass
    {
    }

    <span style="color: green">//This method tests the permissions for statement and then calls the method that will execute the statement
</span>    <span style="color: blue">static</span> <span style="color: blue">void</span> dbConnectionClass()
    {
        ResultSet   rs;
        SqlStatementExecutePermission perm;
        ;

        perm = <span style="color: blue">new</span> SQLStatementExecutePermission(<span style="color: red">&quot;select * from CustTable where DATAAREAID = 'CEU'&quot;</span>);
        perm.assert();

        rs = TestSQLExecuteClass::statementExeQuery(<span style="color: red">&quot;select * from CustTable where DATAAREAID = 'CEU'&quot;</span>);

        <span style="color: blue">while</span> (rs.<span style="color: blue">next</span>())
        {
            info(rs.getString(1));
        }
        CodeAccessPermission::revertAssert();
    }

    <span style="color: green">//Executes the passed statement
</span>    <span style="color: blue">private</span> <span style="color: blue">static</span> ResultSet statementExeQuery(<span style="color: blue">str</span> _sql, Connection _con = <span style="color: blue">null</span>)
    {
        ResultSet   resultSet;
        Statement   statement;
        ;

        <span style="color: blue">try</span>
        {
            <span style="color: blue">if</span>(!_con)
            {
                _con = <span style="color: blue">new</span> Connection();
            }

            statement = _con.createStatement();

            <span style="color: green">// Do not call assert() here, do it in the caller
</span>            <span style="color: green">// BP deviation documented
</span>            resultSet = statement.executeQuery(_sql);
        }
        <span style="color: blue">catch</span> (Exception::Error)
        {
            <span style="color: blue">throw</span> error(<span style="color: red">&quot;@SYS99562&quot;</span>);
        }

        <span style="color: blue">return</span> resultSet;
    }</pre></div>Now you can call the method in a job as shown below:<br />
<div class="xpp"><div class="smallfont xpp_title">X++:</div><pre class="alt2 xpp_code">    <span style="color: blue">static</span> <span style="color: blue">void</span> dbConnectionClass(Args _args)
    {
        ;

        TestSQLExecuteClass::dbConnectionClass();
    }</pre></div>These examples shown here are pretty simple and easy to understand and start with. Hope it helps you in building 'connections' Tongue out.</div>

]]></content:encoded>
			<dc:creator>Poleax</dc:creator>
			<guid isPermaLink="true">//axforum.info/forums/blog.php?b=189</guid>
		</item>
		<item>
			<title>Lookup пользовательских полей таблицы</title>
			<link>//axforum.info/forums/blog.php?b=177</link>
			<pubDate>Fri, 17 Sep 2010 13:48:14 GMT</pubDate>
			<description><![CDATA[По аналогии с выше приведенным постом (http://axforum.info/forums/showthread.php?p=207870#post207870) *tricky*, я сделал для _себя _выпадающий список (Lookup) для всех полей таблицы не являющимися системными:
Результат:Изображение: http://axforum.info/forums/attachment.php?attachmentid=6160&d=1284730388 

1. В *\Data Dictionary\Base Enums\SysPickListType*  добавить элемент, назовем его к примеру *FieldsUsersLabels *(Пользовательские поля с названием)
2. В классе создадим метод *\Classes\Global\pickFieldUserLabel*
static int pickFieldUserLabel(tableId tableId)
{
    Object  formRun;
    Args    args;
    ;
    args = new Args(formstr(SysPick));
    args.parm(strRFix(int2str(SysPickListType::FieldsUsersLabels),2)+int2str(tableId));
    formRun = classfactory.formRunClass(args);
    formRun.init();
    formRun.run();
    formRun.wait();
    if (formRun.selection())
        return formRun.selection();
    return 0;
}
3. В класс создадим метод *\Classes\sysPickList\fillFieldsUserLabesMap*:
public static client container fillFieldsUserLabesMap(str _argsParm)
{
    TmpSysTableField    tmpSysTableField;
    DictTable           dictTable       = new DictTable(str2int(_argsParm));
    Map                 map             = new Map(Types::Integer, Types::String);
    
    //Variables
    DictField               dictField;
    SysDimension            dim;
    str                     num = '';
    
    ;
    if (dictTable &&
        dictTable.rights() > AccessType::NoAccess)
    {
        tmpSysTableField = TmpSysTableField::findTableFields(tmpSysTableField, dictTable.id());

        while select tmpSysTableField
        {
            dictField  = new dictField(dictTable.id(), tmpSysTableField.ExtendedFieldId);
            
            if(!dictField.isSystem())
            {
                if(tmpSysTableField.FieldName LIKE "*Dimension*")
                    num = "[" + int2str(enum2int(str2Enum(dim, tmpSysTableField.FieldLabel)) + 1) + "]";
                else
                    num = "";
                    
                map.insert(tmpSysTableField.ExtendedFieldId, tmpSysTableField.FieldName + num + " (" + tmpSysTableField.FieldLabel + ")" );
            }
        }
    }
    return map.pack();
}
4.  В методе *init *этого же класса добавить примерно такие строки (в блоке *switch(sysPickListType))*:
        case SysPickListType::FieldsUsersLabels :
            imageRes    = #imageField;
            caption     = "Пользовательские поля с названием";
            designWidth = #designLargeWidth;
            if (!map)
            {
                map = Map::create(sysPickList::fillFieldsUserLabesMap(parmTxt));
            }
            break;
5. Вызываем метод:
Global::pickFieldUserLabel(tableNum(CustTable));


Для примера можно выбрать форму для изучения *\Forms\PBATreeTable*.

Пример Lookup метода:
void lookup()
{
    fieldId id;
//AnyUserTable  - таблица куда сохраняем поле (формат поля EDT = FieldName )
    ;

    id = pickFieldUserLabel(tableNum(CustTable));

    if (! id)
        return;

    AnyUserTable.FieldName = fieldid2name(tableNum(CustTable),id);

    AnyUserTable_ds.refresh();
}P.S. Спасибо *tricky* , за хороший пост.
P.S.S. Этот пост на форуме Лукап, отображающий список полей определённой таблицы (http://axforum.info/forums/showthread.php?p=232179#post232179)]]></description>
			<content:encoded><![CDATA[<div>По аналогии с <a href="http://axforum.info/forums/showthread.php?p=207870#post207870" target="_blank">выше приведенным постом</a> <b>tricky</b>, я сделал для <u>себя </u>выпадающий список (Lookup) для всех полей таблицы не являющимися системными:<br />
Результат:<blockquote><img src="http://axforum.info/forums/attachment.php?attachmentid=6160&amp;d=1284730388" border="0" alt="" /></blockquote><ol style="list-style-type: decimal"><li>В <b>\Data Dictionary\Base Enums\SysPickListType</b>  добавить элемент, назовем его к примеру <b>FieldsUsersLabels </b>(Пользовательские поля с названием)</li>
<li>В классе создадим метод <b>\Classes\Global\pickFieldUserLabel</b><br />
<div class="xpp"><div class="smallfont xpp_title">X++:</div><pre class="alt2 xpp_code"><span style="color: blue">static</span> <span style="color: blue">int</span> pickFieldUserLabel(tableId tableId)
{
    Object  formRun;
    Args    args;
    ;
    args = <span style="color: blue">new</span> Args(<span style="color: blue">formstr</span>(SysPick));
    args.parm(strRFix(int2str(SysPickListType::FieldsUsersLabels),2)+int2str(tableId));
    formRun = classfactory.formRunClass(args);
    formRun.init();
    formRun.run();
    formRun.wait();
    <span style="color: blue">if</span> (formRun.selection())
        <span style="color: blue">return</span> formRun.selection();
    <span style="color: blue">return</span> 0;
}</pre></div></li>
<li>В класс создадим метод <b>\Classes\sysPickList\fillFieldsUserLabesMap</b>:<br />
<div class="xpp"><div class="smallfont xpp_title">X++:</div><pre class="alt2 xpp_code"><span style="color: blue">public</span> <span style="color: blue">static</span> <span style="color: blue">client</span> <span style="color: blue">container</span> fillFieldsUserLabesMap(<span style="color: blue">str</span> _argsParm)
{
    TmpSysTableField    tmpSysTableField;
    DictTable           dictTable       = <span style="color: blue">new</span> DictTable(str2int(_argsParm));
    Map                 map             = <span style="color: blue">new</span> Map(Types::Integer, Types::String);
    
    <span style="color: green">//Variables
</span>    DictField               dictField;
    SysDimension            dim;
    <span style="color: blue">str</span>                     num = <span style="color: red">''</span>;
    
    ;
    <span style="color: blue">if</span> (dictTable &amp;&amp;
        dictTable.rights() &gt; AccessType::NoAccess)
    {
        tmpSysTableField = TmpSysTableField::findTableFields(tmpSysTableField, dictTable.id());

        <span style="color: blue">while</span> <span style="color: blue">select</span> tmpSysTableField
        {
            dictField  = <span style="color: blue">new</span> dictField(dictTable.id(), tmpSysTableField.ExtendedFieldId);
            
            <span style="color: blue">if</span>(!dictField.isSystem())
            {
                <span style="color: blue">if</span>(tmpSysTableField.FieldName <span style="color: blue">LIKE</span> <span style="color: red">&quot;*Dimension*&quot;</span>)
                    num = <span style="color: red">&quot;[&quot;</span> + int2str(enum2int(str2Enum(dim, tmpSysTableField.FieldLabel)) + 1) + <span style="color: red">&quot;]&quot;</span>;
                <span style="color: blue">else</span>
                    num = <span style="color: red">&quot;&quot;</span>;
                    
                map.insert(tmpSysTableField.ExtendedFieldId, tmpSysTableField.FieldName + num + <span style="color: red">&quot; (&quot;</span> + tmpSysTableField.FieldLabel + <span style="color: red">&quot;)&quot;</span> );
            }
        }
    }
    <span style="color: blue">return</span> map.pack();
}</pre></div></li>
<li> В методе <b>init </b>этого же класса добавить примерно такие строки (в блоке <b>switch(sysPickListType))</b>:<br />
<div class="xpp"><div class="smallfont xpp_title">X++:</div><pre class="alt2 xpp_code">        <span style="color: blue">case</span> SysPickListType::FieldsUsersLabels :
            imageRes    = #imageField;
            caption     = <span style="color: red">&quot;Пользовательские поля с названием&quot;</span>;
            designWidth = #designLargeWidth;
            <span style="color: blue">if</span> (!map)
            {
                map = Map::create(sysPickList::fillFieldsUserLabesMap(parmTxt));
            }
            <span style="color: blue">break</span>;</pre></div></li>
<li>Вызываем метод:<br />
<div class="xpp"><div class="smallfont xpp_title">X++:</div><pre class="alt2 xpp_code">Global::pickFieldUserLabel(<span style="color: blue">tableNum</span>(CustTable));</pre></div></li>
</ol><br />
Для примера можно выбрать форму для изучения <b>\Forms\PBATreeTable</b>.<br />
<br />
Пример Lookup метода:<br />
<div class="xpp"><div class="smallfont xpp_title">X++:</div><pre class="alt2 xpp_code"><span style="color: blue">void</span> lookup()
{
    fieldId id;
<span style="color: green">//AnyUserTable  - таблица куда сохраняем поле (формат поля EDT = FieldName )
</span>    ;

    id = pickFieldUserLabel(<span style="color: blue">tableNum</span>(CustTable));

    <span style="color: blue">if</span> (! id)
        <span style="color: blue">return</span>;

    AnyUserTable.FieldName = fieldid2name(<span style="color: blue">tableNum</span>(CustTable),id);

    AnyUserTable_ds.refresh();
}</pre></div>P.S. Спасибо <b>tricky</b> , за хороший пост.<br />
P.S.S. Этот пост на форуме <a href="http://axforum.info/forums/showthread.php?p=232179#post232179" target="_blank">Лукап, отображающий список полей определённой таблицы</a></div>

]]></content:encoded>
			<dc:creator>Poleax</dc:creator>
			<guid isPermaLink="true">//axforum.info/forums/blog.php?b=177</guid>
		</item>
		<item>
			<title>Цикл проверки обязательности заполнения полей.</title>
			<link>//axforum.info/forums/blog.php?b=174</link>
			<pubDate>Fri, 03 Sep 2010 10:18:08 GMT</pubDate>
			<description><![CDATA[Перебор пользовательских полей в таблице. Проверка на обязательное заполнение
*Код использовался на форме.*


    #macrolib.dictfield

    //Tables
    DictTable               dictTable = new DictTable(TABLE.tableId);

    //Variables
    DictField               dictField;
    int                     i = 0 ;
    int                     nFlags;
    fieldId                 fieldId   = dictTable.fieldNext(0);
;

    while select firstfast TABLE
    {//Ниже агресивно-насильственный цикл проверки обязательности заполнения полей.
     //К сожалению  метод TABLE_DS.write(); не помог в некоторых случаях.

        for (i = 1; i <= dictTable.fieldCnt(); i++)
        {
            dictField  = new dictField(TABLE.TableId, dictTable.fieldCnt2Id(i));

            if(!dictField.isSystem())
            {
                nFlags = dictField.flags();
                if (bitTest(nFlags,#DBF_MANDATORY))
                {
                    fieldId         = dictTable.fieldCnt2Id(i);
                    if(! TABLE.validateField(fieldId))
                        throw error("Заполните поля");
                }
            }
        }
    }Часть кода взята из Копирование строк таблицы с помощью DictTable (http://axforum.info/forums/showthread.php?p=117751#post117751)

Проверка на обязательность (MANDATORY) http://msdn.microsoft.com/en-us/library/aa556779.aspx]]></description>
			<content:encoded><![CDATA[<div>Перебор пользовательских полей в таблице. Проверка на обязательное заполнение<br />
<b>Код использовался на форме.</b><br />
<br />
<div class="xpp"><div class="smallfont xpp_title">X++:</div><pre class="alt2 xpp_code">    #macrolib.dictfield

    <span style="color: green">//Tables
</span>    DictTable               dictTable = <span style="color: blue">new</span> DictTable(TABLE.tableId);

    <span style="color: green">//Variables
</span>    DictField               dictField;
    <span style="color: blue">int</span>                     i = 0 ;
    <span style="color: blue">int</span>                     nFlags;
    fieldId                 fieldId   = dictTable.fieldNext(0);
;

    <span style="color: blue">while</span> <span style="color: blue">select</span> <span style="color: blue">firstfast</span> TABLE
    {<span style="color: green">//Ниже агресивно-насильственный цикл проверки обязательности заполнения полей.
</span>     <span style="color: green">//К сожалению  метод TABLE_DS.write(); не помог в некоторых случаях.
</span>
        <span style="color: blue">for</span> (i = 1; i &lt;= dictTable.fieldCnt(); i++)
        {
            dictField  = <span style="color: blue">new</span> dictField(TABLE.TableId, dictTable.fieldCnt2Id(i));

            <span style="color: blue">if</span>(!dictField.isSystem())
            {
                nFlags = dictField.flags();
                <span style="color: blue">if</span> (bitTest(nFlags,#DBF_MANDATORY))
                {
                    fieldId         = dictTable.fieldCnt2Id(i);
                    <span style="color: blue">if</span>(! TABLE.validateField(fieldId))
                        <span style="color: blue">throw</span> error(<span style="color: red">&quot;Заполните поля&quot;</span>);
                }
            }
        }
    }</pre></div>Часть кода взята из <a href="http://axforum.info/forums/showthread.php?p=117751#post117751" target="_blank">Копирование строк таблицы с помощью DictTable</a><br />
<br />
Проверка на обязательность (MANDATORY) <a href="http://msdn.microsoft.com/en-us/library/aa556779.aspx" target="_blank">http://msdn.microsoft.com/en-us/library/aa556779.aspx</a></div>

]]></content:encoded>
			<dc:creator>Poleax</dc:creator>
			<guid isPermaLink="true">//axforum.info/forums/blog.php?b=174</guid>
		</item>
		<item>
			<title>Любимая программка BgInfo v4</title>
			<link>//axforum.info/forums/blog.php?b=167</link>
			<pubDate>Fri, 06 Aug 2010 07:31:40 GMT</pubDate>
			<description>*BgInfo v4.16 (http://technet.microsoft.com/en-us/sysinternals/bb897557.aspx) :)*

By Bryce Cogswell
Published: October 1, 2009

Download BgInfo (387 KB) (http://download.sysinternals.com/Files/BgInfo.zip)

Изображение: http://i.technet.microsoft.com/bb897557.BgInfo(en-us,MSDN.10).jpg 

Изображение: http://i.technet.microsoft.com/bb897557.BGInfo-Dialog(en-us,MSDN.10).jpg </description>
			<content:encoded><![CDATA[<div><b><a href="http://technet.microsoft.com/en-us/sysinternals/bb897557.aspx" target="_blank">BgInfo v4.16</a> :)</b><br />
<br />
<font color="DimGray">By Bryce Cogswell<br />
Published: October 1, 2009<br />
</font><br />
<a href="http://download.sysinternals.com/Files/BgInfo.zip" target="_blank">Download BgInfo (387 KB)</a><br />
<br />
<img src="http://i.technet.microsoft.com/bb897557.BgInfo(en-us,MSDN.10).jpg" border="0" alt="" /><br />
<br />
<img src="http://i.technet.microsoft.com/bb897557.BGInfo-Dialog(en-us,MSDN.10).jpg" border="0" alt="" /></div>

]]></content:encoded>
			<dc:creator>Poleax</dc:creator>
			<guid isPermaLink="true">//axforum.info/forums/blog.php?b=167</guid>
		</item>
		<item>
			<title>Удаление индексных файлов и файлов приложения, отличных от языков EN-US и RU</title>
			<link>//axforum.info/forums/blog.php?b=160</link>
			<pubDate>Wed, 30 Jun 2010 08:39:24 GMT</pubDate>
			<description><![CDATA[Иногда возникает потребность ;) в приложении (к примеру \Program Files\Microsoft Dynamics AX\50\Application\Appl\DynamicsAx\) удалить лишние файлы, т.е. файлы других языков которые точно ни когда не будут использованы.

Мне нужны только файлы языков *EN-US и RU*.

К примеру, шаблон для выделения группы файлов в Total Commander (http://ru.wikipedia.org/wiki/Total_Commander):

PHP:
---------
*ar.al*;*cs.al*;*da.al*;*de.al*;*de-at.al*;*de-ch.al*;*en-au.al*;*en-ca.al*;*en-gb.al*;*en-ie.al*;*en-in.al*;*en-my.al*;*en-nz.al*;*en-sg.al*;*en-za.al*;*es.al*;*es-mx.al*;*et.al*;*fi.al*;*fr.al*;*fr-be.al*;*fr-ca.al*;*fr-ch.al*;*he.al*;*hu.al*;*is.al*;*it.al*;*it-ch.al*;*ja.al*;*lt.al*;*lv.al*;*nb-no.al*;*nl.al*;*nl-be.al*;*pl.al*;*pt-br.al*;*sv.al*;*th.al*;*tr.al*;*zh-hans.al*;*ar.ah*;*cs.ah*;*da.ah*;*de.ah*;*de-at.ah*;*de-ch.ah*;*en-au.ah*;*en-ca.ah*;*en-gb.ah*;*en-ie.ah*;*en-in.ah*;*en-my.ah*;*en-nz.ah*;*en-sg.ah*;*en-za.ah*;*es.ah*;*es-mx.ah*;*et.ah*;*fi.ah*;*fr.ah*;*fr-be.ah*;*fr-ca.ah*;*fr-ch.ah*;*he.ah*;*hu.ah*;*is.ah*;*it.ah*;*it-ch.ah*;*ja.ah*;*lt.ah*;*lv.ah*;*nb-no.ah*;*nl.ah*;*nl-be.ah*;*pl.ah*;*pt-br.ah*;*sv.ah*;*th.ah*;*tr.ah*;*zh-hans.ah*;
---------
СМОТРИ 2-й коммент :o
Удаляю их командный файлом с расширением cmd или bat : 

PHP:
---------
del *ar.al*
del *cs.al*
del *da.al*
del *de.al*
del *de-at.al*
del *de-ch.al*
del *en-au.al*
del *en-ca.al*
del *en-gb.al*
del *en-ie.al*
del *en-in.al*
del *en-my.al*
del *en-nz.al*
del *en-sg.al*
del *en-za.al*
del *es.al*
del *es-mx.al*
del *et.al*
del *fi.al*
del *fr.al*
del *fr-be.al*
del *fr-ca.al*
del *fr-ch.al*
del *he.al*
del *hu.al*
del *is.al*
del *it.al*
del *it-ch.al*
del *ja.al*
del *lt.al*
del *lv.al*
del *nb-no.al*
del *nl.al*
del *nl-be.al*
del *pl.al*
del *pt-br.al*
del *sv.al*
del *th.al*
del *tr.al*
del *zh-hans.al*

del *ar.ah*
del *cs.ah*
del *da.ah*
del *de.ah*
del *de-at.ah*
del *de-ch.ah*
del *en-au.ah*
del *en-ca.ah*
del *en-gb.ah*
del *en-ie.ah*
del *en-in.ah*
del *en-my.ah*
del *en-nz.ah*
del *en-sg.ah*
del *en-za.ah*
del *es.ah*
del *es-mx.ah*
del *et.ah*
del *fi.ah*
del *fr.ah*
del *fr-be.ah*
del *fr-ca.ah*
del *fr-ch.ah*
del *he.ah*
del *hu.ah*
del *is.ah*
del *it.ah*
del *it-ch.ah*
del *ja.ah*
del *lt.ah*
del *lv.ah*
del *nb-no.ah*
del *nl.ah*
del *nl-be.ah*
del *pl.ah*
del *pt-br.ah*
del *sv.ah*
del *th.ah*
del *tr.ah*
del *zh-hans.ah*
---------


Для удаления индексных файлов использую (Ошибка после закрытия клиента AX 2009 (http://axforum.info/forums/showthread.php?p=226890#post226890)):

PHP:
---------
del *.ali
del *.alc
del *.alt
rem del *.ahi - old Help
rem del *.khi - old Help
del *.aoi
del *.udb
del *.add
del *.adi
---------
Главное это делать при выключенных AOS

Перезапуск AOS выполняет переиндексацию, и все индексный файлы создаются заново. Файлы других языков создаются с размером 8 кб :) Дождитесь запуска службы AOS.

Мое приложение было чуть* > 4 Гб* (Ax 2009 + SP1 + EE + RU4)
Стало *1.3 Гб* , при чем оно полностью работоспособно и удобно для BackUp]]></description>
			<content:encoded><![CDATA[<div>Иногда возникает потребность ;) в приложении (к примеру \Program Files\Microsoft Dynamics AX\50\Application\Appl\DynamicsAx\) удалить лишние файлы, т.е. файлы других языков которые точно ни когда не будут использованы.<br />
<br />
Мне нужны только файлы языков <b>EN-US и RU</b>.<br />
<br />
К примеру, шаблон для выделения группы файлов в <a href="http://ru.wikipedia.org/wiki/Total_Commander" target="_blank">Total Commander</a>:<br />
<div style="margin:20px; margin-top:5px">
	<div class="smallfont" style="margin-bottom:2px">PHP код:</div>
	<div class="alt2" dir="ltr" style="
		margin: 0px;
		padding: 6px;
		border: 1px inset;
		width: 640px;
		height: 34px;
		text-align: left;
		overflow: auto">
		<code style="white-space:nowrap">
			<!-- php buffer start --><code><span style="color: #000000">
<span style="color: #0000BB"></span><span style="color: #007700">*</span><span style="color: #0000BB">ar</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*;*</span><span style="color: #0000BB">cs</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*;*</span><span style="color: #0000BB">da</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*;*</span><span style="color: #0000BB">de</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*;*</span><span style="color: #0000BB">de</span><span style="color: #007700">-</span><span style="color: #0000BB">at</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*;*</span><span style="color: #0000BB">de</span><span style="color: #007700">-</span><span style="color: #0000BB">ch</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*;*</span><span style="color: #0000BB">en</span><span style="color: #007700">-</span><span style="color: #0000BB">au</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*;*</span><span style="color: #0000BB">en</span><span style="color: #007700">-</span><span style="color: #0000BB">ca</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*;*</span><span style="color: #0000BB">en</span><span style="color: #007700">-</span><span style="color: #0000BB">gb</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*;*</span><span style="color: #0000BB">en</span><span style="color: #007700">-</span><span style="color: #0000BB">ie</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*;*</span><span style="color: #0000BB">en</span><span style="color: #007700">-</span><span style="color: #0000BB">in</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*;*</span><span style="color: #0000BB">en</span><span style="color: #007700">-</span><span style="color: #0000BB">my</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*;*</span><span style="color: #0000BB">en</span><span style="color: #007700">-</span><span style="color: #0000BB">nz</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*;*</span><span style="color: #0000BB">en</span><span style="color: #007700">-</span><span style="color: #0000BB">sg</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*;*</span><span style="color: #0000BB">en</span><span style="color: #007700">-</span><span style="color: #0000BB">za</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*;*</span><span style="color: #0000BB">es</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*;*</span><span style="color: #0000BB">es</span><span style="color: #007700">-</span><span style="color: #0000BB">mx</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*;*</span><span style="color: #0000BB">et</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*;*</span><span style="color: #0000BB">fi</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*;*</span><span style="color: #0000BB">fr</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*;*</span><span style="color: #0000BB">fr</span><span style="color: #007700">-</span><span style="color: #0000BB">be</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*;*</span><span style="color: #0000BB">fr</span><span style="color: #007700">-</span><span style="color: #0000BB">ca</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*;*</span><span style="color: #0000BB">fr</span><span style="color: #007700">-</span><span style="color: #0000BB">ch</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*;*</span><span style="color: #0000BB">he</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*;*</span><span style="color: #0000BB">hu</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*;*</span><span style="color: #0000BB">is</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*;*</span><span style="color: #0000BB">it</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*;*</span><span style="color: #0000BB">it</span><span style="color: #007700">-</span><span style="color: #0000BB">ch</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*;*</span><span style="color: #0000BB">ja</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*;*</span><span style="color: #0000BB">lt</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*;*</span><span style="color: #0000BB">lv</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*;*</span><span style="color: #0000BB">nb</span><span style="color: #007700">-</span><span style="color: #0000BB">no</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*;*</span><span style="color: #0000BB">nl</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*;*</span><span style="color: #0000BB">nl</span><span style="color: #007700">-</span><span style="color: #0000BB">be</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*;*</span><span style="color: #0000BB">pl</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*;*</span><span style="color: #0000BB">pt</span><span style="color: #007700">-</span><span style="color: #0000BB">br</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*;*</span><span style="color: #0000BB">sv</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*;*</span><span style="color: #0000BB">th</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*;*</span><span style="color: #0000BB">tr</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*;*</span><span style="color: #0000BB">zh</span><span style="color: #007700">-</span><span style="color: #0000BB">hans</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*;*</span><span style="color: #0000BB">ar</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*;*</span><span style="color: #0000BB">cs</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*;*</span><span style="color: #0000BB">da</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*;*</span><span style="color: #0000BB">de</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*;*</span><span style="color: #0000BB">de</span><span style="color: #007700">-</span><span style="color: #0000BB">at</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*;*</span><span style="color: #0000BB">de</span><span style="color: #007700">-</span><span style="color: #0000BB">ch</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*;*</span><span style="color: #0000BB">en</span><span style="color: #007700">-</span><span style="color: #0000BB">au</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*;*</span><span style="color: #0000BB">en</span><span style="color: #007700">-</span><span style="color: #0000BB">ca</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*;*</span><span style="color: #0000BB">en</span><span style="color: #007700">-</span><span style="color: #0000BB">gb</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*;*</span><span style="color: #0000BB">en</span><span style="color: #007700">-</span><span style="color: #0000BB">ie</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*;*</span><span style="color: #0000BB">en</span><span style="color: #007700">-</span><span style="color: #0000BB">in</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*;*</span><span style="color: #0000BB">en</span><span style="color: #007700">-</span><span style="color: #0000BB">my</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*;*</span><span style="color: #0000BB">en</span><span style="color: #007700">-</span><span style="color: #0000BB">nz</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*;*</span><span style="color: #0000BB">en</span><span style="color: #007700">-</span><span style="color: #0000BB">sg</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*;*</span><span style="color: #0000BB">en</span><span style="color: #007700">-</span><span style="color: #0000BB">za</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*;*</span><span style="color: #0000BB">es</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*;*</span><span style="color: #0000BB">es</span><span style="color: #007700">-</span><span style="color: #0000BB">mx</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*;*</span><span style="color: #0000BB">et</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*;*</span><span style="color: #0000BB">fi</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*;*</span><span style="color: #0000BB">fr</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*;*</span><span style="color: #0000BB">fr</span><span style="color: #007700">-</span><span style="color: #0000BB">be</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*;*</span><span style="color: #0000BB">fr</span><span style="color: #007700">-</span><span style="color: #0000BB">ca</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*;*</span><span style="color: #0000BB">fr</span><span style="color: #007700">-</span><span style="color: #0000BB">ch</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*;*</span><span style="color: #0000BB">he</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*;*</span><span style="color: #0000BB">hu</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*;*</span><span style="color: #0000BB">is</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*;*</span><span style="color: #0000BB">it</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*;*</span><span style="color: #0000BB">it</span><span style="color: #007700">-</span><span style="color: #0000BB">ch</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*;*</span><span style="color: #0000BB">ja</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*;*</span><span style="color: #0000BB">lt</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*;*</span><span style="color: #0000BB">lv</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*;*</span><span style="color: #0000BB">nb</span><span style="color: #007700">-</span><span style="color: #0000BB">no</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*;*</span><span style="color: #0000BB">nl</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*;*</span><span style="color: #0000BB">nl</span><span style="color: #007700">-</span><span style="color: #0000BB">be</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*;*</span><span style="color: #0000BB">pl</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*;*</span><span style="color: #0000BB">pt</span><span style="color: #007700">-</span><span style="color: #0000BB">br</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*;*</span><span style="color: #0000BB">sv</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*;*</span><span style="color: #0000BB">th</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*;*</span><span style="color: #0000BB">tr</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*;*</span><span style="color: #0000BB">zh</span><span style="color: #007700">-</span><span style="color: #0000BB">hans</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*;&nbsp;<br /></span><span style="color: #0000BB"></span>
</span>
</code><!-- php buffer end -->
		</code>
	</div>
</div>СМОТРИ 2-й коммент :o<br />
<strike>Удаляю их командный файлом с расширением cmd или bat : <br />
<div style="margin:20px; margin-top:5px">
	<div class="smallfont" style="margin-bottom:2px">PHP код:</div>
	<div class="alt2" dir="ltr" style="
		margin: 0px;
		padding: 6px;
		border: 1px inset;
		width: 640px;
		height: 498px;
		text-align: left;
		overflow: auto">
		<code style="white-space:nowrap">
			<!-- php buffer start --><code><span style="color: #000000">
<span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">ar</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">cs</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">da</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">de</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">de</span><span style="color: #007700">-</span><span style="color: #0000BB">at</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">de</span><span style="color: #007700">-</span><span style="color: #0000BB">ch</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">en</span><span style="color: #007700">-</span><span style="color: #0000BB">au</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">en</span><span style="color: #007700">-</span><span style="color: #0000BB">ca</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">en</span><span style="color: #007700">-</span><span style="color: #0000BB">gb</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">en</span><span style="color: #007700">-</span><span style="color: #0000BB">ie</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">en</span><span style="color: #007700">-</span><span style="color: #0000BB">in</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">en</span><span style="color: #007700">-</span><span style="color: #0000BB">my</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">en</span><span style="color: #007700">-</span><span style="color: #0000BB">nz</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">en</span><span style="color: #007700">-</span><span style="color: #0000BB">sg</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">en</span><span style="color: #007700">-</span><span style="color: #0000BB">za</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">es</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">es</span><span style="color: #007700">-</span><span style="color: #0000BB">mx</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">et</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">fi</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">fr</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">fr</span><span style="color: #007700">-</span><span style="color: #0000BB">be</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">fr</span><span style="color: #007700">-</span><span style="color: #0000BB">ca</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">fr</span><span style="color: #007700">-</span><span style="color: #0000BB">ch</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">he</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">hu</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">is</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">it</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">it</span><span style="color: #007700">-</span><span style="color: #0000BB">ch</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">ja</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">lt</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">lv</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">nb</span><span style="color: #007700">-</span><span style="color: #0000BB">no</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">nl</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">nl</span><span style="color: #007700">-</span><span style="color: #0000BB">be</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">pl</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">pt</span><span style="color: #007700">-</span><span style="color: #0000BB">br</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">sv</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">th</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">tr</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">zh</span><span style="color: #007700">-</span><span style="color: #0000BB">hans</span><span style="color: #007700">.</span><span style="color: #0000BB">al</span><span style="color: #007700">*<br /><br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">ar</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">cs</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">da</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">de</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">de</span><span style="color: #007700">-</span><span style="color: #0000BB">at</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">de</span><span style="color: #007700">-</span><span style="color: #0000BB">ch</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">en</span><span style="color: #007700">-</span><span style="color: #0000BB">au</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">en</span><span style="color: #007700">-</span><span style="color: #0000BB">ca</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">en</span><span style="color: #007700">-</span><span style="color: #0000BB">gb</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">en</span><span style="color: #007700">-</span><span style="color: #0000BB">ie</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">en</span><span style="color: #007700">-</span><span style="color: #0000BB">in</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">en</span><span style="color: #007700">-</span><span style="color: #0000BB">my</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">en</span><span style="color: #007700">-</span><span style="color: #0000BB">nz</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">en</span><span style="color: #007700">-</span><span style="color: #0000BB">sg</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">en</span><span style="color: #007700">-</span><span style="color: #0000BB">za</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">es</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">es</span><span style="color: #007700">-</span><span style="color: #0000BB">mx</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">et</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">fi</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">fr</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">fr</span><span style="color: #007700">-</span><span style="color: #0000BB">be</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">fr</span><span style="color: #007700">-</span><span style="color: #0000BB">ca</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">fr</span><span style="color: #007700">-</span><span style="color: #0000BB">ch</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">he</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">hu</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">is</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">it</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">it</span><span style="color: #007700">-</span><span style="color: #0000BB">ch</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">ja</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">lt</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">lv</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">nb</span><span style="color: #007700">-</span><span style="color: #0000BB">no</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">nl</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">nl</span><span style="color: #007700">-</span><span style="color: #0000BB">be</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">pl</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">pt</span><span style="color: #007700">-</span><span style="color: #0000BB">br</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">sv</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">th</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">tr</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*<br /></span><span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*</span><span style="color: #0000BB">zh</span><span style="color: #007700">-</span><span style="color: #0000BB">hans</span><span style="color: #007700">.</span><span style="color: #0000BB">ah</span><span style="color: #007700">*&nbsp;<br /></span><span style="color: #0000BB"></span>
</span>
</code><!-- php buffer end -->
		</code>
	</div>
</div></strike><br />
<br />
Для удаления индексных файлов использую (<a href="http://axforum.info/forums/showthread.php?p=226890#post226890" target="_blank">Ошибка после закрытия клиента AX 2009</a>):<br />
<div style="margin:20px; margin-top:5px">
	<div class="smallfont" style="margin-bottom:2px">PHP код:</div>
	<div class="alt2" dir="ltr" style="
		margin: 0px;
		padding: 6px;
		border: 1px inset;
		width: 640px;
		height: 162px;
		text-align: left;
		overflow: auto">
		<code style="white-space:nowrap">
			<!-- php buffer start --><code><span style="color: #000000">
<span style="color: #0000BB">del&nbsp;</span><span style="color: #007700">*.</span><span style="color: #0000BB">ali<br />del&nbsp;</span><span style="color: #007700">*.</span><span style="color: #0000BB">alc<br />del&nbsp;</span><span style="color: #007700">*.</span><span style="color: #0000BB">alt<br />rem&nbsp;del&nbsp;</span><span style="color: #007700">*.</span><span style="color: #0000BB">ahi&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #0000BB">old&nbsp;Help<br />rem&nbsp;del&nbsp;</span><span style="color: #007700">*.</span><span style="color: #0000BB">khi&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #0000BB">old&nbsp;Help<br />del&nbsp;</span><span style="color: #007700">*.</span><span style="color: #0000BB">aoi<br />del&nbsp;</span><span style="color: #007700">*.</span><span style="color: #0000BB">udb<br />del&nbsp;</span><span style="color: #007700">*.</span><span style="color: #0000BB">add<br />del&nbsp;</span><span style="color: #007700">*.</span><span style="color: #0000BB">adi&nbsp;<br /></span>
</span>
</code><!-- php buffer end -->
		</code>
	</div>
</div><font color="Red">Главное это делать при выключенных AOS</font><br />
<br />
Перезапуск AOS выполняет переиндексацию, и все индексный файлы создаются заново. Файлы других языков создаются с размером 8 кб :) <font color="Green">Дождитесь запуска службы AOS</font>.<br />
<br />
Мое приложение было чуть<b> &gt; 4 Гб</b> (Ax 2009 + SP1 + EE + RU4)<br />
Стало <b>1.3 Гб</b> , при чем оно полностью работоспособно и удобно для BackUp</div>

]]></content:encoded>
			<dc:creator>Poleax</dc:creator>
			<guid isPermaLink="true">//axforum.info/forums/blog.php?b=160</guid>
		</item>
		<item>
			<title>Отключить ненужные языки для отчетов в Dynamics Ax 2009</title>
			<link>//axforum.info/forums/blog.php?b=147</link>
			<pubDate>Thu, 17 Jun 2010 06:45:46 GMT</pubDate>
			<description><![CDATA[Основываясь на посте Проблема с выгрузкой отчетов Reporting Services в AX2009 (http://axforum.info/forums/showthread.php?p=226803#post226803)

И Dynamics AX 2009 - SSRS Report Deployment Issue  (http://dynamics-ax.blogspot.com/2009/10/dynamics-ax-2009-ssrs-report-deployment.html)


---Цитата---
 Dynamics AX 2009 - SSRS Report Deployment Issue

If you have deployed the SSRS Report Lib.'s from Dynamics AX 2009 before, you might have ran into some timeout issues.

Even with deploying the reports one ReportLib at a time. And if you have not seen this yet, most likely you will.

An error message, sometimes with great detail will show up during the Reports Deployment process, and that will reference something similar to the following.

[ThreadAbortException: Thread was being aborted.]


The ThreadAbortException is the key for this error. Basically the thread trying to do the deploy is timing out writing to the Report Server.

Most likely you cause is related to the amount of langauge files / cultures that are trying to be deployed for the given ReportLib.

A simple change can be done to help fix this issue.

Изображение: http://www.fluidunion.com/AXLangTbl.jpg 

The following is the steps to do, that relate to the above table inside Dynamics AX.:
1.  Open the AOT
2.  Expand Data Dictionary > Tables > LanguageTable > Fields
3.  Right click on the 'LabelFile' field and choose properties
4.  Change the Visible property to 'Yes'
5.  Save the change
6.  Right click on the LanguageTable and choose Open
7.  In the table, uncheck the Label file field for any languages that are not needed
8.  Deploy the ReportLibs again that were having issues


This may not be the fix all the time, but most likely it will be. Also this can be used to help clean up the Report Manager. The initial deploy can deploy a lot of reports in languages you just don't care about. So you can remove those, or clear the entire Report Manager and then deploy with only the language files / Cultures that matter to you.

Well that's call for now, check back soon, as I have more post coming! See you then!
---Конец цитаты---
]]></description>
			<content:encoded><![CDATA[<div>Основываясь на посте <a href="http://axforum.info/forums/showthread.php?p=226803#post226803" target="_blank">Проблема с выгрузкой отчетов Reporting Services в AX2009</a><br />
<br />
И <a href="http://dynamics-ax.blogspot.com/2009/10/dynamics-ax-2009-ssrs-report-deployment.html" target="_blank">Dynamics AX 2009 - SSRS Report Deployment Issue </a><br />
<br />
<div class="q">
	<div class="smallfont q_title">Цитата:</div>
	<div class="alt2 q_body">
		
			 Dynamics AX 2009 - SSRS Report Deployment Issue<br />
<br />
If you have deployed the SSRS Report Lib.'s from Dynamics AX 2009 before, you might have ran into some timeout issues.<br />
<br />
Even with deploying the reports one ReportLib at a time. And if you have not seen this yet, most likely you will.<br />
<br />
An error message, sometimes with great detail will show up during the Reports Deployment process, and that will reference something similar to the following.<br />
<br />
<font color="Red">[ThreadAbortException: Thread was being aborted.]</font><br />
<br />
<br />
The ThreadAbortException is the key for this error. Basically the thread trying to do the deploy is timing out writing to the Report Server.<br />
<br />
Most likely you cause is related to the amount of langauge files / cultures that are trying to be deployed for the given ReportLib.<br />
<br />
A simple change can be done to help fix this issue.<br />
<br />
<img src="http://www.fluidunion.com/AXLangTbl.jpg" border="0" alt="" /><br />
<br />
The following is the steps to do, that relate to the above table inside Dynamics AX.:<ol style="list-style-type: decimal"><li> Open the AOT</li>
<li> Expand Data Dictionary &gt; Tables &gt; LanguageTable &gt; Fields</li>
<li> Right click on the 'LabelFile' field and choose properties</li>
<li> Change the Visible property to 'Yes'</li>
<li> Save the change</li>
<li> Right click on the LanguageTable and choose Open</li>
<li> In the table, uncheck the Label file field for any languages that are not needed</li>
<li> Deploy the ReportLibs again that were having issues</li>
</ol><br />
This may not be the fix all the time, but most likely it will be. Also this can be used to help clean up the Report Manager. The initial deploy can deploy a lot of reports in languages you just don't care about. So you can remove those, or clear the entire Report Manager and then deploy with only the language files / Cultures that matter to you.<br />
<br />
Well that's call for now, check back soon, as I have more post coming! See you then!
		
	</div>
</div></div>

]]></content:encoded>
			<dc:creator>Poleax</dc:creator>
			<guid isPermaLink="true">//axforum.info/forums/blog.php?b=147</guid>
		</item>
		<item>
			<title>SQL Server 2005, 2008: Создание недостающих индексов</title>
			<link>//axforum.info/forums/blog.php?b=135</link>
			<pubDate>Fri, 04 Jun 2010 06:50:50 GMT</pubDate>
			<description><![CDATA[*SQL Server 2005, 2008: Создание недостающих индексов*
Оригинал статьи: http://itband.ru/2009/07/sql-server-2005-2008-index/#more-1872

Изображение: http://itband.ru/wp-content/uploads/2009/07/sqlmanage2.jpg 
В SQL Server начиная с версии 2005 есть функция отсутствующих индексов, которая использует объекты DMO и классы событий Showplan для получения сведений об отсутствующих индексах, благодаря которым можно повысить производительность обработки запросов в SQL Server.

А как получить эти сведения, обработать и принять решение о необходимости создания тех или иных индексов?

Интересная методика представлена в Учебном курсе Microsoft “SQL Server 2005 Реализация и обслуживание”.
Решение о эффективности индекса предлагается принять из расчета некоторого значения по формуле *user_seeks * avg_total_user_cost * (avg_user_impact * 0.01)*. Исходные данные для расчета берутся из представлений *sys.dm_db_missing_index*.*
Значение выше 5000 в промышленных системах означает, что следует рассмотреть возможность создания этих индексов.
Если же значение превышает 10000, это обычно означает, что индекс может обеспечить значительное повышение производительности для операций чтения.
Немного творчества и получаем вот такой скрипт:

PHP:
---------
--------------------------------------------------------------------------------------------

-- Создание недостающих индексов баз данных на SQL Server 2005, 2008

--

-- Скрипт анализирует статистику, собранную сервером баз данных об отсутствующих индексах в базах данных и

-- предлагает создать индексы, которые могут обеспечить значительное повышение производительности. 

SET NOCOUNT ON

DECLARE @dbid int

IF (object_id('tempdb..##IndexAdvantage') IS NOT NULL) DROP TABLE ##IndexAdvantage

CREATE TABLE ##IndexAdvantage ([Преимущество индекса] float, [База данных] varchar(128), [Transact SQL код для создания индекса] varchar(4000), 

[Число компиляций] int, [Количество операций поиска] int, [Количество операций просмотра] int,

[Средняя стоимость ] int, [Средний процент выигрыша] int );

DECLARE DBases CURSOR FOR

SELECT database_id FROM sys.master_files -- Получаем список ID баз данных

WHERE state = 0 AND -- ONLINE

has_dbaccess(db_name(database_id)) = 1 -- Only look at databases to which we have access

GROUP BY database_id

OPEN DBases

FETCH NEXT FROM DBases

INTO @dbid

WHILE @@FETCH_STATUS = 0

BEGIN -- Выполняем для каждой базы данных --------------------------------------------------

INSERT INTO ##IndexAdvantage

SELECT [Преимущество индекса] = user_seeks * avg_total_user_cost * (avg_user_impact * 0.01),

      [База данных] = DB_NAME(mid.database_id),

      [Transact SQL код для создания индекса] = 'CREATE INDEX [IX_' + OBJECT_NAME(mid.object_id,@dbid) + '_' + 

      CAST(mid.index_handle AS nvarchar) + '] ON ' + 

      mid.statement + ' (' + ISNULL(mid.equality_columns,'') + 

      (CASE WHEN mid.equality_columns IS NOT NULL AND mid.inequality_columns IS NOT NULL THEN ', ' 

ELSE '' END) + 

      (CASE WHEN mid.inequality_columns IS NOT NULL THEN + mid.inequality_columns ELSE '' END) + ')' + 

      (CASE WHEN mid.included_columns IS NOT NULL THEN ' INCLUDE (' + mid.included_columns + ')' 

ELSE '' END) +      ';', 

      [Число компиляций] = migs.unique_compiles,

      [Количество операций поиска] = migs.user_seeks,

      [Количество операций просмотра] = migs.user_scans,

      [Средняя стоимость ] = CAST(migs.avg_total_user_cost AS int),

      [Средний процент выигрыша] = CAST(migs.avg_user_impact AS int)

FROM  sys.dm_db_missing_index_groups mig

JOIN  sys.dm_db_missing_index_group_stats migs 

ON    migs.group_handle = mig.index_group_handle

JOIN  sys.dm_db_missing_index_details mid 

ON    mig.index_handle = mid.index_handle

AND   mid.database_id = @dbid

    FETCH NEXT FROM DBases

    INTO @dbid

END ----------------------------------------------------------------------------------------

CLOSE DBases

DEALLOCATE DBases

GO

SELECT * FROM ##IndexAdvantage ORDER BY 1 DESC

-- Значение ''Преимущество индекса'' выше 5000 в промышленных системах означает, что следует рассмотреть возможность создания этих индексов.

-- Если же значение превышает 10000, это обычно означает, что индекс может обеспечить значительное повышение производительности для операций чтения.

--------------------------------------------------------------------------------------------

-- Отправляем email с предложением создать индекс

IF (object_id('tempdb..##IndexAdvantage2') IS NOT NULL) DROP TABLE ##IndexAdvantage2

SELECT * INTO ##IndexAdvantage2 FROM ##IndexAdvantage WHERE [Преимущество индекса] >= 5000 ORDER BY 1 DESC

IF ((SELECT COUNT(*) FROM ##IndexAdvantage2) >= 1) BEGIN

DECLARE @subject_str varchar(255),

@message_str varchar(1024),

@separator_str varchar(1),

@email varchar(128)

SET @separator_str=CHAR(9) -- Символ табуляции

SET @email = 'email_address@webzavod.ru'

-- Подготовим текст сообщения

SET @subject_str = 'SQL Server '+@@SERVERNAME+': Предложение создать индексы в базе данных.'

SET @message_str = 'Сервер '+@@SERVERNAME + '. Выявлена необходимость создать индексы в базе данных!

Во вложении - таблица с кодом предлагаемых индексов.

Значение "Преимущество индекса" выше 5000 в промышленных системах означает, что следует рассмотреть возможность создания этих индексов.

Если же значение превышает 10000, это обычно означает, что индекс может обеспечить значительное повышение производительности для операций чтения.

Динамические административные представления, которые помогли нам получить информацию об отсутствующих индексах, не являются заменой помощника по настройке ядра СУБД, который также рассматривает индексированные представления и секции и обеспечивает более всесторонний анализ индексов, но они могут быть очень эффективны на начальном уровне анализа.'

-- Отправляем email

EXEC msdb.dbo.sp_send_dbmail

@recipients = @email,

@query = 'SELECT * FROM ##IndexAdvantage2',

@subject = @subject_str,

@body = @message_str,

@attach_query_result_as_file = 1,

@query_result_separator = @separator_str,

@query_result_width = 7000

END

-- Удаляем временную таблицу

IF (object_id('tempdb..##IndexAdvantage') IS NOT NULL) DROP TABLE ##IndexAdvantage

IF (object_id('tempdb..##IndexAdvantage2') IS NOT NULL) DROP TABLE ##IndexAdvantage2
--------------------------------------------------------------------------------------------
---------
Как использовать данный скрипт:

Можно создать JOB на основе этого скрипта и выполнять его периодически.

Если скрипт выявит необходимость создать какой либо индекс, то он сообщит Вам об этом, послав электронное письмо (компонент Database Mail должен быть включен и настроен).

Отмечу также, что если приложение само управляет объектами базы данных, то и индексы следует создавать через функционал данного приложения.

Пример такого приложения – Microsoft Dynamics AX.

*Илгиз Мамышев*

P.S.
SQL Server 2005, 2008: Создание недостающих индексов (http://axforum.info/forums/showthread.php?p=226036#post226036)]]></description>
			<content:encoded><![CDATA[<div><b>SQL Server 2005, 2008: Создание недостающих индексов</b><br />
Оригинал статьи: <a href="http://itband.ru/2009/07/sql-server-2005-2008-index/#more-1872" target="_blank">http://itband.ru/2009/07/sql-server-...dex/#more-1872</a><br />
<br />
<img src="http://itband.ru/wp-content/uploads/2009/07/sqlmanage2.jpg" border="0" alt="" /><br />
В SQL Server начиная с версии 2005 есть функция отсутствующих индексов, которая использует объекты DMO и классы событий Showplan для получения сведений об отсутствующих индексах, благодаря которым можно повысить производительность обработки запросов в SQL Server.<br />
<br />
А как получить эти сведения, обработать и принять решение о необходимости создания тех или иных индексов?<br />
<br />
Интересная методика представлена в Учебном курсе Microsoft “SQL Server 2005 Реализация и обслуживание”.<br />
Решение о эффективности индекса предлагается принять из расчета некоторого значения по формуле <b>user_seeks * avg_total_user_cost * (avg_user_impact * 0.01)</b>. Исходные данные для расчета берутся из представлений <b>sys.dm_db_missing_index*.</b><br />
Значение выше 5000 в промышленных системах означает, что следует рассмотреть возможность создания этих индексов.<br />
Если же значение превышает 10000, это обычно означает, что индекс может обеспечить значительное повышение производительности для операций чтения.<br />
Немного творчества и получаем вот такой скрипт:<br />
<div style="margin:20px; margin-top:5px">
	<div class="smallfont" style="margin-bottom:2px">PHP код:</div>
	<div class="alt2" dir="ltr" style="
		margin: 0px;
		padding: 6px;
		border: 1px inset;
		width: 640px;
		height: 498px;
		text-align: left;
		overflow: auto">
		<code style="white-space:nowrap">
			<!-- php buffer start --><code><span style="color: #000000">
<span style="color: #0000BB"></span><span style="color: #007700">--------------------------------------------------------------------------------------------<br /><br />--&nbsp;</span><span style="color: #0000BB">Создание&nbsp;недостающих&nbsp;индексов&nbsp;баз&nbsp;данных&nbsp;на&nbsp;SQL&nbsp;Server&nbsp;2005</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">2008<br /><br /></span><span style="color: #007700">--<br /><br />--&nbsp;</span><span style="color: #0000BB">Скрипт&nbsp;анализирует&nbsp;статистику</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">собранную&nbsp;сервером&nbsp;баз&nbsp;данных&nbsp;об&nbsp;отсутствующих&nbsp;индексах&nbsp;в&nbsp;базах&nbsp;данных&nbsp;и<br /><br /></span><span style="color: #007700">--&nbsp;</span><span style="color: #0000BB">предлагает&nbsp;создать&nbsp;индексы</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">которые&nbsp;могут&nbsp;обеспечить&nbsp;значительное&nbsp;повышение&nbsp;производительности</span><span style="color: #007700">.&nbsp;<br /><br /></span><span style="color: #0000BB">SET&nbsp;NOCOUNT&nbsp;ON<br /><br /></span><span style="color: #007700">DECLARE&nbsp;@</span><span style="color: #0000BB">dbid&nbsp;int<br /><br /></span><span style="color: #007700">IF&nbsp;(</span><span style="color: #0000BB">object_id</span><span style="color: #007700">(</span><span style="color: #DD0000">'tempdb..##IndexAdvantage'</span><span style="color: #007700">)&nbsp;</span><span style="color: #0000BB">IS&nbsp;NOT&nbsp;NULL</span><span style="color: #007700">)&nbsp;</span><span style="color: #0000BB">DROP&nbsp;TABLE&nbsp;</span><span style="color: #FF8000">##IndexAdvantage<br /><br /></span><span style="color: #0000BB">CREATE&nbsp;TABLE&nbsp;</span><span style="color: #FF8000">##IndexAdvantage&nbsp;(&#91;Преимущество&nbsp;индекса&#93;&nbsp;float,&nbsp;&#91;База&nbsp;данных&#93;&nbsp;varchar(128),&nbsp;&#91;Transact&nbsp;SQL&nbsp;код&nbsp;для&nbsp;создания&nbsp;индекса&#93;&nbsp;varchar(4000),&nbsp;<br /><br /></span><span style="color: #007700">&#91;</span><span style="color: #0000BB">Число&nbsp;компиляций</span><span style="color: #007700">&#93;&nbsp;</span><span style="color: #0000BB">int</span><span style="color: #007700">,&nbsp;&#91;</span><span style="color: #0000BB">Количество&nbsp;операций&nbsp;поиска</span><span style="color: #007700">&#93;&nbsp;</span><span style="color: #0000BB">int</span><span style="color: #007700">,&nbsp;&#91;</span><span style="color: #0000BB">Количество&nbsp;операций&nbsp;просмотра</span><span style="color: #007700">&#93;&nbsp;</span><span style="color: #0000BB">int</span><span style="color: #007700">,<br /><br />&#91;</span><span style="color: #0000BB">Средняя&nbsp;стоимость&nbsp;</span><span style="color: #007700">&#93;&nbsp;</span><span style="color: #0000BB">int</span><span style="color: #007700">,&nbsp;&#91;</span><span style="color: #0000BB">Средний&nbsp;процент&nbsp;выигрыша</span><span style="color: #007700">&#93;&nbsp;</span><span style="color: #0000BB">int&nbsp;</span><span style="color: #007700">);<br /><br />DECLARE&nbsp;</span><span style="color: #0000BB">DBases&nbsp;CURSOR&nbsp;</span><span style="color: #007700">FOR<br /><br /></span><span style="color: #0000BB">SELECT&nbsp;database_id&nbsp;FROM&nbsp;sys</span><span style="color: #007700">.</span><span style="color: #0000BB">master_files&nbsp;</span><span style="color: #007700">--&nbsp;</span><span style="color: #0000BB">Получаем&nbsp;список&nbsp;ID&nbsp;баз&nbsp;данных<br /><br />WHERE&nbsp;state&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #007700">AND&nbsp;--&nbsp;</span><span style="color: #0000BB">ONLINE<br /><br />has_dbaccess</span><span style="color: #007700">(</span><span style="color: #0000BB">db_name</span><span style="color: #007700">(</span><span style="color: #0000BB">database_id</span><span style="color: #007700">))&nbsp;=&nbsp;</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #007700">--&nbsp;</span><span style="color: #0000BB">Only&nbsp;look&nbsp;at&nbsp;databases&nbsp;to&nbsp;which&nbsp;we&nbsp;have&nbsp;access<br /><br />GROUP&nbsp;BY&nbsp;database_id<br /><br />OPEN&nbsp;DBases<br /><br />FETCH&nbsp;NEXT&nbsp;FROM&nbsp;DBases<br /><br />INTO&nbsp;</span><span style="color: #007700">@</span><span style="color: #0000BB">dbid<br /><br /></span><span style="color: #007700">WHILE&nbsp;@@</span><span style="color: #0000BB">FETCH_STATUS&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">0<br /><br />BEGIN&nbsp;</span><span style="color: #007700">--&nbsp;</span><span style="color: #0000BB">Выполняем&nbsp;для&nbsp;каждой&nbsp;базы&nbsp;данных&nbsp;</span><span style="color: #007700">--------------------------------------------------<br /><br /></span><span style="color: #0000BB">INSERT&nbsp;INTO&nbsp;</span><span style="color: #FF8000">##IndexAdvantage<br /><br /></span><span style="color: #0000BB">SELECT&nbsp;</span><span style="color: #007700">&#91;</span><span style="color: #0000BB">Преимущество&nbsp;индекса</span><span style="color: #007700">&#93;&nbsp;=&nbsp;</span><span style="color: #0000BB">user_seeks&nbsp;</span><span style="color: #007700">*&nbsp;</span><span style="color: #0000BB">avg_total_user_cost&nbsp;</span><span style="color: #007700">*&nbsp;(</span><span style="color: #0000BB">avg_user_impact&nbsp;</span><span style="color: #007700">*&nbsp;</span><span style="color: #0000BB">0.01</span><span style="color: #007700">),<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#91;</span><span style="color: #0000BB">База&nbsp;данных</span><span style="color: #007700">&#93;&nbsp;=&nbsp;</span><span style="color: #0000BB">DB_NAME</span><span style="color: #007700">(</span><span style="color: #0000BB">mid</span><span style="color: #007700">.</span><span style="color: #0000BB">database_id</span><span style="color: #007700">),<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#91;</span><span style="color: #0000BB">Transact&nbsp;SQL&nbsp;код&nbsp;для&nbsp;создания&nbsp;индекса</span><span style="color: #007700">&#93;&nbsp;=&nbsp;</span><span style="color: #DD0000">'CREATE&nbsp;INDEX&nbsp;&#91;IX_'&nbsp;</span><span style="color: #007700">+&nbsp;</span><span style="color: #0000BB">OBJECT_NAME</span><span style="color: #007700">(</span><span style="color: #0000BB">mid</span><span style="color: #007700">.</span><span style="color: #0000BB">object_id</span><span style="color: #007700">,@</span><span style="color: #0000BB">dbid</span><span style="color: #007700">)&nbsp;+&nbsp;</span><span style="color: #DD0000">'_'&nbsp;</span><span style="color: #007700">+&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">CAST</span><span style="color: #007700">(</span><span style="color: #0000BB">mid</span><span style="color: #007700">.</span><span style="color: #0000BB">index_handle&nbsp;</span><span style="color: #007700">AS&nbsp;</span><span style="color: #0000BB">nvarchar</span><span style="color: #007700">)&nbsp;+&nbsp;</span><span style="color: #DD0000">'&#93;&nbsp;ON&nbsp;'&nbsp;</span><span style="color: #007700">+&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">mid</span><span style="color: #007700">.</span><span style="color: #0000BB">statement&nbsp;</span><span style="color: #007700">+&nbsp;</span><span style="color: #DD0000">'&nbsp;('&nbsp;</span><span style="color: #007700">+&nbsp;</span><span style="color: #0000BB">ISNULL</span><span style="color: #007700">(</span><span style="color: #0000BB">mid</span><span style="color: #007700">.</span><span style="color: #0000BB">equality_columns</span><span style="color: #007700">,</span><span style="color: #DD0000">''</span><span style="color: #007700">)&nbsp;+&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(CASE&nbsp;</span><span style="color: #0000BB">WHEN&nbsp;mid</span><span style="color: #007700">.</span><span style="color: #0000BB">equality_columns&nbsp;IS&nbsp;NOT&nbsp;NULL&nbsp;</span><span style="color: #007700">AND&nbsp;</span><span style="color: #0000BB">mid</span><span style="color: #007700">.</span><span style="color: #0000BB">inequality_columns&nbsp;IS&nbsp;NOT&nbsp;NULL&nbsp;THEN&nbsp;</span><span style="color: #DD0000">',&nbsp;'&nbsp;<br /><br /></span><span style="color: #007700">ELSE&nbsp;</span><span style="color: #DD0000">''&nbsp;</span><span style="color: #0000BB">END</span><span style="color: #007700">)&nbsp;+&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(CASE&nbsp;</span><span style="color: #0000BB">WHEN&nbsp;mid</span><span style="color: #007700">.</span><span style="color: #0000BB">inequality_columns&nbsp;IS&nbsp;NOT&nbsp;NULL&nbsp;THEN&nbsp;</span><span style="color: #007700">+&nbsp;</span><span style="color: #0000BB">mid</span><span style="color: #007700">.</span><span style="color: #0000BB">inequality_columns&nbsp;</span><span style="color: #007700">ELSE&nbsp;</span><span style="color: #DD0000">''&nbsp;</span><span style="color: #0000BB">END</span><span style="color: #007700">)&nbsp;+&nbsp;</span><span style="color: #DD0000">')'&nbsp;</span><span style="color: #007700">+&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(CASE&nbsp;</span><span style="color: #0000BB">WHEN&nbsp;mid</span><span style="color: #007700">.</span><span style="color: #0000BB">included_columns&nbsp;IS&nbsp;NOT&nbsp;NULL&nbsp;THEN&nbsp;</span><span style="color: #DD0000">'&nbsp;INCLUDE&nbsp;('&nbsp;</span><span style="color: #007700">+&nbsp;</span><span style="color: #0000BB">mid</span><span style="color: #007700">.</span><span style="color: #0000BB">included_columns&nbsp;</span><span style="color: #007700">+&nbsp;</span><span style="color: #DD0000">')'&nbsp;<br /><br /></span><span style="color: #007700">ELSE&nbsp;</span><span style="color: #DD0000">''&nbsp;</span><span style="color: #0000BB">END</span><span style="color: #007700">)&nbsp;+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">';'</span><span style="color: #007700">,&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#91;</span><span style="color: #0000BB">Число&nbsp;компиляций</span><span style="color: #007700">&#93;&nbsp;=&nbsp;</span><span style="color: #0000BB">migs</span><span style="color: #007700">.</span><span style="color: #0000BB">unique_compiles</span><span style="color: #007700">,<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#91;</span><span style="color: #0000BB">Количество&nbsp;операций&nbsp;поиска</span><span style="color: #007700">&#93;&nbsp;=&nbsp;</span><span style="color: #0000BB">migs</span><span style="color: #007700">.</span><span style="color: #0000BB">user_seeks</span><span style="color: #007700">,<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#91;</span><span style="color: #0000BB">Количество&nbsp;операций&nbsp;просмотра</span><span style="color: #007700">&#93;&nbsp;=&nbsp;</span><span style="color: #0000BB">migs</span><span style="color: #007700">.</span><span style="color: #0000BB">user_scans</span><span style="color: #007700">,<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#91;</span><span style="color: #0000BB">Средняя&nbsp;стоимость&nbsp;</span><span style="color: #007700">&#93;&nbsp;=&nbsp;</span><span style="color: #0000BB">CAST</span><span style="color: #007700">(</span><span style="color: #0000BB">migs</span><span style="color: #007700">.</span><span style="color: #0000BB">avg_total_user_cost&nbsp;</span><span style="color: #007700">AS&nbsp;</span><span style="color: #0000BB">int</span><span style="color: #007700">),<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#91;</span><span style="color: #0000BB">Средний&nbsp;процент&nbsp;выигрыша</span><span style="color: #007700">&#93;&nbsp;=&nbsp;</span><span style="color: #0000BB">CAST</span><span style="color: #007700">(</span><span style="color: #0000BB">migs</span><span style="color: #007700">.</span><span style="color: #0000BB">avg_user_impact&nbsp;</span><span style="color: #007700">AS&nbsp;</span><span style="color: #0000BB">int</span><span style="color: #007700">)<br /><br /></span><span style="color: #0000BB">FROM&nbsp;&nbsp;sys</span><span style="color: #007700">.</span><span style="color: #0000BB">dm_db_missing_index_groups&nbsp;mig<br /><br />JOIN&nbsp;&nbsp;sys</span><span style="color: #007700">.</span><span style="color: #0000BB">dm_db_missing_index_group_stats&nbsp;migs&nbsp;<br /><br />ON&nbsp;&nbsp;&nbsp;&nbsp;migs</span><span style="color: #007700">.</span><span style="color: #0000BB">group_handle&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">mig</span><span style="color: #007700">.</span><span style="color: #0000BB">index_group_handle<br /><br />JOIN&nbsp;&nbsp;sys</span><span style="color: #007700">.</span><span style="color: #0000BB">dm_db_missing_index_details&nbsp;mid&nbsp;<br /><br />ON&nbsp;&nbsp;&nbsp;&nbsp;mig</span><span style="color: #007700">.</span><span style="color: #0000BB">index_handle&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">mid</span><span style="color: #007700">.</span><span style="color: #0000BB">index_handle<br /><br /></span><span style="color: #007700">AND&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">mid</span><span style="color: #007700">.</span><span style="color: #0000BB">database_id&nbsp;</span><span style="color: #007700">=&nbsp;@</span><span style="color: #0000BB">dbid<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;FETCH&nbsp;NEXT&nbsp;FROM&nbsp;DBases<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;INTO&nbsp;</span><span style="color: #007700">@</span><span style="color: #0000BB">dbid<br /><br />END&nbsp;</span><span style="color: #007700">----------------------------------------------------------------------------------------<br /><br /></span><span style="color: #0000BB">CLOSE&nbsp;DBases<br /><br />DEALLOCATE&nbsp;DBases<br /><br />GO<br /><br />SELECT&nbsp;</span><span style="color: #007700">*&nbsp;</span><span style="color: #0000BB">FROM&nbsp;</span><span style="color: #FF8000">##IndexAdvantage&nbsp;ORDER&nbsp;BY&nbsp;1&nbsp;DESC<br /><br /></span><span style="color: #007700">--&nbsp;</span><span style="color: #0000BB">Значение&nbsp;</span><span style="color: #DD0000">''</span><span style="color: #0000BB">Преимущество&nbsp;индекса</span><span style="color: #DD0000">''&nbsp;</span><span style="color: #0000BB">выше&nbsp;5000&nbsp;в&nbsp;промышленных&nbsp;системах&nbsp;означает</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">что&nbsp;следует&nbsp;рассмотреть&nbsp;возможность&nbsp;создания&nbsp;этих&nbsp;индексов</span><span style="color: #007700">.<br /><br />--&nbsp;</span><span style="color: #0000BB">Если&nbsp;же&nbsp;значение&nbsp;превышает&nbsp;10000</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">это&nbsp;обычно&nbsp;означает</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">что&nbsp;индекс&nbsp;может&nbsp;обеспечить&nbsp;значительное&nbsp;повышение&nbsp;производительности&nbsp;для&nbsp;операций&nbsp;чтения</span><span style="color: #007700">.<br /><br />--------------------------------------------------------------------------------------------<br /><br />--&nbsp;</span><span style="color: #0000BB">Отправляем&nbsp;email&nbsp;с&nbsp;предложением&nbsp;создать&nbsp;индекс<br /><br /></span><span style="color: #007700">IF&nbsp;(</span><span style="color: #0000BB">object_id</span><span style="color: #007700">(</span><span style="color: #DD0000">'tempdb..##IndexAdvantage2'</span><span style="color: #007700">)&nbsp;</span><span style="color: #0000BB">IS&nbsp;NOT&nbsp;NULL</span><span style="color: #007700">)&nbsp;</span><span style="color: #0000BB">DROP&nbsp;TABLE&nbsp;</span><span style="color: #FF8000">##IndexAdvantage2<br /><br /></span><span style="color: #0000BB">SELECT&nbsp;</span><span style="color: #007700">*&nbsp;</span><span style="color: #0000BB">INTO&nbsp;</span><span style="color: #FF8000">##IndexAdvantage2&nbsp;FROM&nbsp;##IndexAdvantage&nbsp;WHERE&nbsp;&#91;Преимущество&nbsp;индекса&#93;&nbsp;&gt;=&nbsp;5000&nbsp;ORDER&nbsp;BY&nbsp;1&nbsp;DESC<br /><br /></span><span style="color: #007700">IF&nbsp;((</span><span style="color: #0000BB">SELECT&nbsp;COUNT</span><span style="color: #007700">(*)&nbsp;</span><span style="color: #0000BB">FROM&nbsp;</span><span style="color: #FF8000">##IndexAdvantage2)&nbsp;&gt;=&nbsp;1)&nbsp;BEGIN<br /><br /></span><span style="color: #007700">DECLARE&nbsp;@</span><span style="color: #0000BB">subject_str&nbsp;varchar</span><span style="color: #007700">(</span><span style="color: #0000BB">255</span><span style="color: #007700">),<br /><br />@</span><span style="color: #0000BB">message_str&nbsp;varchar</span><span style="color: #007700">(</span><span style="color: #0000BB">1024</span><span style="color: #007700">),<br /><br />@</span><span style="color: #0000BB">separator_str&nbsp;varchar</span><span style="color: #007700">(</span><span style="color: #0000BB">1</span><span style="color: #007700">),<br /><br />@</span><span style="color: #0000BB">email&nbsp;varchar</span><span style="color: #007700">(</span><span style="color: #0000BB">128</span><span style="color: #007700">)<br /><br /></span><span style="color: #0000BB">SET&nbsp;</span><span style="color: #007700">@</span><span style="color: #0000BB">separator_str</span><span style="color: #007700">=</span><span style="color: #0000BB">CHAR</span><span style="color: #007700">(</span><span style="color: #0000BB">9</span><span style="color: #007700">)&nbsp;--&nbsp;</span><span style="color: #0000BB">Символ&nbsp;табуляции<br /><br />SET&nbsp;</span><span style="color: #007700">@</span><span style="color: #0000BB">email&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'email_address@webzavod.ru'<br /><br /></span><span style="color: #007700">--&nbsp;</span><span style="color: #0000BB">Подготовим&nbsp;текст&nbsp;сообщения<br /><br />SET&nbsp;</span><span style="color: #007700">@</span><span style="color: #0000BB">subject_str&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'SQL&nbsp;Server&nbsp;'</span><span style="color: #007700">+@@</span><span style="color: #0000BB">SERVERNAME</span><span style="color: #007700">+</span><span style="color: #DD0000">':&nbsp;Предложение&nbsp;создать&nbsp;индексы&nbsp;в&nbsp;базе&nbsp;данных.'<br /><br /></span><span style="color: #0000BB">SET&nbsp;</span><span style="color: #007700">@</span><span style="color: #0000BB">message_str&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'Сервер&nbsp;'</span><span style="color: #007700">+@@</span><span style="color: #0000BB">SERVERNAME&nbsp;</span><span style="color: #007700">+&nbsp;</span><span style="color: #DD0000">'.&nbsp;Выявлена&nbsp;необходимость&nbsp;создать&nbsp;индексы&nbsp;в&nbsp;базе&nbsp;данных!<br /><br />Во&nbsp;вложении&nbsp;-&nbsp;таблица&nbsp;с&nbsp;кодом&nbsp;предлагаемых&nbsp;индексов.<br /><br />Значение&nbsp;"Преимущество&nbsp;индекса"&nbsp;выше&nbsp;5000&nbsp;в&nbsp;промышленных&nbsp;системах&nbsp;означает,&nbsp;что&nbsp;следует&nbsp;рассмотреть&nbsp;возможность&nbsp;создания&nbsp;этих&nbsp;индексов.<br /><br />Если&nbsp;же&nbsp;значение&nbsp;превышает&nbsp;10000,&nbsp;это&nbsp;обычно&nbsp;означает,&nbsp;что&nbsp;индекс&nbsp;может&nbsp;обеспечить&nbsp;значительное&nbsp;повышение&nbsp;производительности&nbsp;для&nbsp;операций&nbsp;чтения.<br /><br />Динамические&nbsp;административные&nbsp;представления,&nbsp;которые&nbsp;помогли&nbsp;нам&nbsp;получить&nbsp;информацию&nbsp;об&nbsp;отсутствующих&nbsp;индексах,&nbsp;не&nbsp;являются&nbsp;заменой&nbsp;помощника&nbsp;по&nbsp;настройке&nbsp;ядра&nbsp;СУБД,&nbsp;который&nbsp;также&nbsp;рассматривает&nbsp;индексированные&nbsp;представления&nbsp;и&nbsp;секции&nbsp;и&nbsp;обеспечивает&nbsp;более&nbsp;всесторонний&nbsp;анализ&nbsp;индексов,&nbsp;но&nbsp;они&nbsp;могут&nbsp;быть&nbsp;очень&nbsp;эффективны&nbsp;на&nbsp;начальном&nbsp;уровне&nbsp;анализа.'<br /><br /></span><span style="color: #007700">--&nbsp;</span><span style="color: #0000BB">Отправляем&nbsp;email<br /><br />EXEC&nbsp;msdb</span><span style="color: #007700">.</span><span style="color: #0000BB">dbo</span><span style="color: #007700">.</span><span style="color: #0000BB">sp_send_dbmail<br /><br /></span><span style="color: #007700">@</span><span style="color: #0000BB">recipients&nbsp;</span><span style="color: #007700">=&nbsp;@</span><span style="color: #0000BB">email</span><span style="color: #007700">,<br /><br />@</span><span style="color: #0000BB">query&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'SELECT&nbsp;*&nbsp;FROM&nbsp;##IndexAdvantage2'</span><span style="color: #007700">,<br /><br />@</span><span style="color: #0000BB">subject&nbsp;</span><span style="color: #007700">=&nbsp;@</span><span style="color: #0000BB">subject_str</span><span style="color: #007700">,<br /><br />@</span><span style="color: #0000BB">body&nbsp;</span><span style="color: #007700">=&nbsp;@</span><span style="color: #0000BB">message_str</span><span style="color: #007700">,<br /><br />@</span><span style="color: #0000BB">attach_query_result_as_file&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">,<br /><br />@</span><span style="color: #0000BB">query_result_separator&nbsp;</span><span style="color: #007700">=&nbsp;@</span><span style="color: #0000BB">separator_str</span><span style="color: #007700">,<br /><br />@</span><span style="color: #0000BB">query_result_width&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">7000<br /><br />END<br /><br /></span><span style="color: #007700">--&nbsp;</span><span style="color: #0000BB">Удаляем&nbsp;временную&nbsp;таблицу<br /><br /></span><span style="color: #007700">IF&nbsp;(</span><span style="color: #0000BB">object_id</span><span style="color: #007700">(</span><span style="color: #DD0000">'tempdb..##IndexAdvantage'</span><span style="color: #007700">)&nbsp;</span><span style="color: #0000BB">IS&nbsp;NOT&nbsp;NULL</span><span style="color: #007700">)&nbsp;</span><span style="color: #0000BB">DROP&nbsp;TABLE&nbsp;</span><span style="color: #FF8000">##IndexAdvantage<br /><br /></span><span style="color: #007700">IF&nbsp;(</span><span style="color: #0000BB">object_id</span><span style="color: #007700">(</span><span style="color: #DD0000">'tempdb..##IndexAdvantage2'</span><span style="color: #007700">)&nbsp;</span><span style="color: #0000BB">IS&nbsp;NOT&nbsp;NULL</span><span style="color: #007700">)&nbsp;</span><span style="color: #0000BB">DROP&nbsp;TABLE&nbsp;</span><span style="color: #FF8000">##IndexAdvantage2<br /></span><span style="color: #007700">--------------------------------------------------------------------------------------------&nbsp;<br /></span><span style="color: #0000BB"></span>
</span>
</code><!-- php buffer end -->
		</code>
	</div>
</div>Как использовать данный скрипт:<br />
<br />
Можно создать JOB на основе этого скрипта и выполнять его периодически.<br />
<br />
Если скрипт выявит необходимость создать какой либо индекс, то он сообщит Вам об этом, послав электронное письмо (компонент Database Mail должен быть включен и настроен).<br />
<br />
Отмечу также, что если приложение само управляет объектами базы данных, то и индексы следует создавать через функционал данного приложения.<br />
<br />
Пример такого приложения – Microsoft Dynamics AX.<br />
<br />
<b>Илгиз Мамышев</b><br />
<br />
P.S.<br />
<a href="http://axforum.info/forums/showthread.php?p=226036#post226036" target="_blank">SQL Server 2005, 2008: Создание недостающих индексов</a></div>

]]></content:encoded>
			<dc:creator>Poleax</dc:creator>
			<guid isPermaLink="true">//axforum.info/forums/blog.php?b=135</guid>
		</item>
		<item>
			<title>Критерии импорта в шаблоне Excel группы определения</title>
			<link>//axforum.info/forums/blog.php?b=133</link>
			<pubDate>Thu, 27 May 2010 12:43:59 GMT</pubDate>
			<description><![CDATA[Критерии импорта в шаблоне Excel группы определения (Import Criteria)
1. Dynamics AX : Data migration approach on open purchase orders (Part 2) (http://shekhardiptiman.spaces.live.com/blog/cns!8464DE3384E5B978!362.entry)
2. Data Conversion in AX 2009 – Using Data Definition Groups (http://dynamic-ax.co.uk/DynamicsAXDataDefGroups.aspx)
Download PDF (with pictures) (http://dynamic-ax.co.uk/Documents/Data%20Conversion%20in%20AX%202009%20-%20Using%20Data%20Definition%20Groups.pdf)
3. Microsoft Dynamics AX Toolbox (https://community.dynamics.com/blogs/daxit/comments/50018.aspx)
4.  Microsoft Knowledgebase How to import customers and vendors in Microsoft Dynamics AX 2009 (https://mbs.microsoft.com/knowledgebase/kbdisplay.aspx?wtntzsmnwukntmmyszrrnottukoostllwskmmqvylslnwrus&wa=wsignin1.0)

]]></description>
			<content:encoded><![CDATA[<div>Критерии импорта в шаблоне Excel группы определения (Import Criteria)<ol style="list-style-type: decimal"><li><a href="http://shekhardiptiman.spaces.live.com/blog/cns!8464DE3384E5B978!362.entry" target="_blank">Dynamics AX : Data migration approach on open purchase orders (Part 2)</a></li>
<li><a href="http://dynamic-ax.co.uk/DynamicsAXDataDefGroups.aspx" target="_blank">Data Conversion in AX 2009 – Using Data Definition Groups</a><br />
<a href="http://dynamic-ax.co.uk/Documents/Data%20Conversion%20in%20AX%202009%20-%20Using%20Data%20Definition%20Groups.pdf" target="_blank">Download PDF (with pictures)</a></li>
<li><a href="https://community.dynamics.com/blogs/daxit/comments/50018.aspx" target="_blank">Microsoft Dynamics AX Toolbox</a></li>
<li> <font color="Red">Microsoft Knowledgebase</font> <a href="https://mbs.microsoft.com/knowledgebase/kbdisplay.aspx?wtntzsmnwukntmmyszrrnottukoostllwskmmqvylslnwrus&amp;wa=wsignin1.0" target="_blank">How to import customers and vendors in Microsoft Dynamics AX 2009</a></li>
</ol></div>

]]></content:encoded>
			<dc:creator>Poleax</dc:creator>
			<guid isPermaLink="true">//axforum.info/forums/blog.php?b=133</guid>
		</item>
		<item>
			<title>Шаблоны сообщений эл. почты</title>
			<link>//axforum.info/forums/blog.php?b=123</link>
			<pubDate>Tue, 25 May 2010 06:54:10 GMT</pubDate>
			<description><![CDATA[Dynamics Ax 2009 Sp1
*Шаблоны сообщений эл. почты*

Основное --> Настройка --> Шаблоны сообщений эл. почты

Документация:
1.  Dynamics Ax 2009  --> Справка --> Настройка системы и приложения -->  Настройка системы и приложения --> Настройка системы  --> Настройка и изменение параметров системы  --> Управление оповещениями  --> Электронная почта --> Оповещения в сообщениях электронной почты
2. MSND About setting up alert e-mail templates (http://msdn.microsoft.com/en-us/library/aa834423.aspx)
3. Technet About setting up alert e-mail templates (http://technet.microsoft.com/en-us/library/aa834423.aspx)
4. Axforum:
   * Оповещения(alerts) в DAX 4.0 (http://axforum.info/forums/showthread.php?t=22003)
   *  Ссылка на Аксапту (http://axforum.info/forums/showthread.php?t=32759)
5. Send mail through X++ code by using the predefined e-mail templates in AX (http://daxer-dynamicsax.blogspot.com/2010/01/send-mail-through-x-code-by-using_19.html)
6. What are Alert-Email Templates used for? And how can one set them up in Dynamics AX 2009? (http://dynamic-ax.co.uk/DynamicsAXAlertsAndEmailTemp.aspx)   *PDF* (http://dynamic-ax.co.uk/Documents/DynamicsAX-AlertEmailTemplatesInAx2009.pdf)


Пример шаблона:

---Цитата---
Изображение: http://www.microsoft.com/rus/dynamics/ax2009/images/logo.gif 
Информация от службы сообщений Dynamics Ax 2009.

*Сообщение*: %message%   Изменить тест предупреждения в настройке правил >>   (dynamics://%LinkToAlertRule%/)

*Предупреждение*: %subject% ( %for% ) 

Это событие "%event%" произошло в %occurred% в компании %company%.

Нажмите здесь, чтоб просмотреть изменения в Dynamics Ax 2009 >> (dynamics://%LinkToBusinessData%/)

Просмотреть сообщение в окне "Список уведомлений" >> (dynamics://%LinkToAlert%/)
Редактировать правило >> (dynamics://%LinkToAlertRule%/)
---Конец цитаты---
]]></description>
			<content:encoded><![CDATA[<div>Dynamics Ax 2009 Sp1<br />
<b>Шаблоны сообщений эл. почты</b><br />
<br />
Основное --&gt; Настройка --&gt; Шаблоны сообщений эл. почты<br />
<br />
Документация:<ol style="list-style-type: decimal"><li> Dynamics Ax 2009  --&gt; Справка --&gt; Настройка системы и приложения --&gt;  Настройка системы и приложения --&gt; Настройка системы  --&gt; Настройка и изменение параметров системы  --&gt; Управление оповещениями  --&gt; Электронная почта --&gt; Оповещения в сообщениях электронной почты  <br /></li>
<li>MSND <a href="http://msdn.microsoft.com/en-us/library/aa834423.aspx" target="_blank">About setting up alert e-mail templates</a></li>
<li>Technet <a href="http://technet.microsoft.com/en-us/library/aa834423.aspx" target="_blank">About setting up alert e-mail templates</a></li>
<li>Axforum:<ul><li><a href="http://axforum.info/forums/showthread.php?t=22003" target="_blank">Оповещения(alerts) в DAX 4.0</a></li>
<li> <a href="http://axforum.info/forums/showthread.php?t=32759" target="_blank">Ссылка на Аксапту</a></li>
</ul></li>
<li><a href="http://daxer-dynamicsax.blogspot.com/2010/01/send-mail-through-x-code-by-using_19.html" target="_blank">Send mail through X++ code by using the predefined e-mail templates in AX</a><br /></li>
<li><a href="http://dynamic-ax.co.uk/DynamicsAXAlertsAndEmailTemp.aspx" target="_blank">What are Alert-Email Templates used for? And how can one set them up in Dynamics AX 2009?</a>  <a href="http://dynamic-ax.co.uk/Documents/DynamicsAX-AlertEmailTemplatesInAx2009.pdf" target="_blank"> <b>PDF</b></a></li>
</ol><br />
Пример шаблона:<br />
<div class="q">
	<div class="smallfont q_title">Цитата:</div>
	<div class="alt2 q_body">
		
			<img src="http://www.microsoft.com/rus/dynamics/ax2009/images/logo.gif" border="0" alt="" /><br />
Информация от службы сообщений Dynamics Ax 2009.<br />
<br />
<b>Сообщение</b>: %message%   <a href="dynamics://%LinkToAlertRule%/" target="_blank">Изменить тест предупреждения в настройке правил &gt;&gt;  </a><br />
<br />
<b>Предупреждение</b>: %subject% ( %for% ) <br />
<br />
Это событие &quot;%event%&quot; произошло в %occurred% в компании %company%.<br />
<br />
<a href="dynamics://%LinkToBusinessData%/" target="_blank">Нажмите здесь, чтоб просмотреть изменения в Dynamics Ax 2009 &gt;&gt;</a><br />
<br />
<a href="dynamics://%LinkToAlert%/" target="_blank">Просмотреть сообщение в окне &quot;Список уведомлений&quot; &gt;&gt;</a><br />
<a href="dynamics://%LinkToAlertRule%/" target="_blank">Редактировать правило &gt;&gt;</a><br />
		
	</div>
</div></div>

]]></content:encoded>
			<dc:creator>Poleax</dc:creator>
			<guid isPermaLink="true">//axforum.info/forums/blog.php?b=123</guid>
		</item>
		<item>
			<title>BizTalk Server  и Dynamics Ax 2009</title>
			<link>//axforum.info/forums/blog.php?b=122</link>
			<pubDate>Tue, 18 May 2010 12:38:12 GMT</pubDate>
			<description><![CDATA[*BizTalk Server  и Dynamics Ax 2009*

Собрал некоторую информацию по BizTalk Server  и Dynamics Ax 2009.

*1) Изображение: http://ru.wikipedia.org/favicon.ico  Wikipedia* Microsoft BizTalk Server (http://ru.wikipedia.org/wiki/Microsoft_BizTalk_Server)
Материал из Википедии — свободной энциклопедии

*2) Изображение: http://www.techdays.ru/favicon.ico  Techdays * Введение в BizTalk Server  (http://www.techdays.ru/videos/2289.html)
Автор: Байбородин Николай (http://www.techdays.ru/speaker/Nikolaj_Bajborodin.html)

Доклады Techdays BizTalk (http://www.techdays.ru/Search.aspx?Quick=BizTalk+) 

*3) Сайт Николая Байбородина посвященный BizTalk Server * 
http://www.it4enterprise.ru/

*4) Статьи о BizTalk и Dynamics Ax*
DAX Developer: В начале пути
http://www.it4enterprise.ru/category/dynamics/

*5) Сайт Microsoft. Свободная информация  по Microsoft Dynamics AX и BizTalk Adapter * 
Изображение: http://img.microsoft.com/downloads/img/products/67D35328-CB42-4879-A35A-D59E94D9DACA.gif 

* *Microsoft Dynamics AX AIF BizTalk Adapter Configuration White Paper* (http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=fb4a979e-cce1-4542-8188-4e8592031da2)
27.9.2007
The Configuring the Application Integration Framework (AIF) BizTalk Adapter for Data Exchange white paper is a comprehensive guide to configuring the AIF BizTalk adapter available in Microsoft Dynamics AX 4.0 Service Pack 1.
* * Microsoft Dynamics AX 2009 AIF BizTalk Adapter Configuration White Paper* (http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=edc62433-5b21-4f74-b065-b075ba6dc86d)
20.1.2009
The Application Integration Framework (AIF) BizTalk Adapter Configuration for Data Exchange white paper is a comprehensive guide to configuring the AIF BizTalk adapter available in Microsoft Dynamics AX 2009.
* *Microsoft Dynamics AX 2009 White Paper: Application Integration Framework (AIF) BizTalk Adapter Configuration for Data Exchange, Part II* (http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=c06033bb-ba3a-4237-9ab8-d7b77c0439be)
13.4.2009
This white paper provides instructions for updating and deleting sales orders in AIF from BizTalk.

]]></description>
			<content:encoded><![CDATA[<div><b>BizTalk Server  и Dynamics Ax 2009</b><br />
<br />
Собрал некоторую информацию по BizTalk Server  и Dynamics Ax 2009.<br />
<br />
<b>1) <img src="http://ru.wikipedia.org/favicon.ico" border="0" alt="" /> Wikipedia</b> <a href="http://ru.wikipedia.org/wiki/Microsoft_BizTalk_Server" target="_blank">Microsoft BizTalk Server</a><br />
Материал из Википедии — свободной энциклопедии<br />
<br />
<b>2) <img src="http://www.techdays.ru/favicon.ico" border="0" alt="" /> Techdays </b> <a href="http://www.techdays.ru/videos/2289.html" target="_blank">Введение в BizTalk Server </a><br />
Автор: <a href="http://www.techdays.ru/speaker/Nikolaj_Bajborodin.html" target="_blank">Байбородин Николай</a><br />
<br />
Доклады <a href="http://www.techdays.ru/Search.aspx?Quick=BizTalk+" target="_blank">Techdays BizTalk</a> <br />
<br />
<b>3) Сайт Николая Байбородина посвященный BizTalk Server </b> <br />
<a href="http://www.it4enterprise.ru/" target="_blank">http://www.it4enterprise.ru/</a><br />
<br />
<font color="Red"><b>4) Статьи о BizTalk и Dynamics Ax</b></font><br />
DAX Developer: В начале пути<br />
<a href="http://www.it4enterprise.ru/category/dynamics/" target="_blank">http://www.it4enterprise.ru/category/dynamics/</a><br />
<br />
<b>5) Сайт Microsoft. Свободная информация  по Microsoft Dynamics AX и BizTalk Adapter </b> <br />
<img src="http://img.microsoft.com/downloads/img/products/67D35328-CB42-4879-A35A-D59E94D9DACA.gif" border="0" alt="" /><br />
<ul><li><a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=fb4a979e-cce1-4542-8188-4e8592031da2" target="_blank"><b>Microsoft Dynamics AX AIF BizTalk Adapter Configuration White Paper</b></a><br />
<font color="DimGray">27.9.2007</font><br />
The Configuring the Application Integration Framework (AIF) BizTalk Adapter for Data Exchange white paper is a comprehensive guide to configuring the AIF BizTalk adapter available in Microsoft Dynamics AX 4.0 Service Pack 1.<br /></li>
<li><a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=edc62433-5b21-4f74-b065-b075ba6dc86d" target="_blank"><b> Microsoft Dynamics AX 2009 AIF BizTalk Adapter Configuration White Paper</b></a><br />
<font color="DimGray">20.1.2009</font><br />
The Application Integration Framework (AIF) BizTalk Adapter Configuration for Data Exchange white paper is a comprehensive guide to configuring the AIF BizTalk adapter available in Microsoft Dynamics AX 2009.<br /></li>
<li><a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=c06033bb-ba3a-4237-9ab8-d7b77c0439be" target="_blank"><b>Microsoft Dynamics AX 2009 White Paper: Application Integration Framework (AIF) BizTalk Adapter Configuration for Data Exchange, Part II</b></a><br />
<font color="DimGray">13.4.2009</font><br />
This white paper provides instructions for updating and deleting sales orders in AIF from BizTalk.</li>
</ul></div>

]]></content:encoded>
			<dc:creator>Poleax</dc:creator>
			<guid isPermaLink="true">//axforum.info/forums/blog.php?b=122</guid>
		</item>
		<item>
			<title>Как пользоваться Event Trace Parser Tool for Microsoft Dynamics AX</title>
			<link>//axforum.info/forums/blog.php?b=119</link>
			<pubDate>Mon, 17 May 2010 09:18:15 GMT</pubDate>
			<description><![CDATA[
---Цитата (сообщение от Poleax)---
.... документация по Event Trace Parser Tool for Microsoft Dynamics AX, как им пользоваться? (http://axforum.info/forums/showthread.php?p=224517#post224517)
---Конец цитаты---

1. *Скачиваем Event Trace Parser Tool for Microsoft Dynamics AX* (1,5 Мб)
customersource: https://mbs.microsoft.com/customersource/downloads/servicepacks/ax_traceparser.htm?printpage=false&stext=trace%20parser
partnersource: https://mbs.microsoft.com/partnersource/support/selfsupport/productreleases/ax_traceparser.htm?printpage=false
2. *Запускаем TraceParser.msi*
3. *Устанавливаем*
Изображение: http://s40.radikal.ru/i088/1005/43/727fb21ea0fc.png 
4. *Создаем БД.*
Изображение: http://i055.radikal.ru/1005/43/e32d5ae178fb.png 
Изображение: http://s52.radikal.ru/i137/1005/21/531bce75188a.png  Изображение: http://s004.radikal.ru/i208/1005/3b/ff14ae8e1a5b.png 
5. *Настраиваем*
Включаем трассировку для сервера приложений AOS, если необходимо:
Изображение: http://blogs.msdn.com/blogfiles/aeremenk/WindowsLiveWriter/TraceParser_1076F/image_thumb_6.png 
Теперь включаем трассировку и на клиенте:
Изображение: http://blogs.msdn.com/blogfiles/aeremenk/WindowsLiveWriter/TraceParser_1076F/image_thumb_7.png 
6. *Запускаем клиента Dynamics Ax 2009.* Выполняем действия, к примеру создаем журнал ГК и разносим его.
7. *Импортируем логи:*
Файлы логов сервера и клиента копируем в папку Trace Parcer (в моем случае - C:\AX Trace\). Хотя это и необязательно, облегчает администрирование.
Клиент С:\Users\Public\Microsoft\Dynamics Ax\Log\   (Путь для Windows Vista/7/2008/2008 R2)
Сервер: C:\Program Files\Microsoft Dynamics AX\50\Server\DynamicsAx2009\Log\
Изображение: http://i055.radikal.ru/1005/5c/0761da484e22.jpg 
8. *Результат*
Изображение: http://s43.radikal.ru/i101/1005/9c/46c1422ef17f.png  

Изображение: http://s49.radikal.ru/i123/1005/27/18ff6715352d.png 


Интерфейс упростили. Возможность просматривать  SQL  запросы и код на X++.
Удобная кнопка "Jump to Callstack" на вкладке "X++/RPC"
Я трассировки стека разделение по "Session Id", удобно  найти свой стек, когда много пользователей работают на АОС. 

P.S. По мотивам http://blogs.msdn.com/aeremenk/archive/2008/01/14/7107453.aspx by Alexei Eremenko]]></description>
			<content:encoded><![CDATA[<div><div class="q">
	<div class="smallfont q_title">Цитата:</div>
	<div class="alt2 q_body">
		
			Сообщение от <strong>Poleax</strong>
			<a href="/forums/showthread.php?p=224517#post224517" rel="nofollow"><img class="inlineimg" src="//img.axforum.info/buttons/viewpost.gif" border="0" alt="Посмотреть сообщение" /></a>
			<div style="font-style:italic"><a href="http://axforum.info/forums/showthread.php?p=224517#post224517" target="_blank">.... документация по Event Trace Parser Tool for Microsoft Dynamics AX, как им пользоваться?</a></div>
		
	</div>
</div><ol style="list-style-type: decimal"><li><b>Скачиваем Event Trace Parser Tool for Microsoft Dynamics AX</b> (1,5 Мб)<br />
customersource: <a href="https://mbs.microsoft.com/customersource/downloads/servicepacks/ax_traceparser.htm?printpage=false&amp;stext=trace%20parser" target="_blank">https://mbs.microsoft.com/customerso...trace%20parser</a><br />
partnersource: <a href="https://mbs.microsoft.com/partnersource/support/selfsupport/productreleases/ax_traceparser.htm?printpage=false" target="_blank">https://mbs.microsoft.com/partnersou...rintpage=false</a></li>
<li><b>Запускаем TraceParser.msi</b><br /></li>
<li><b>Устанавливаем</b><br />
<img src="http://s40.radikal.ru/i088/1005/43/727fb21ea0fc.png" border="0" alt="" /><br /></li>
<li><b>Создаем БД.</b><br />
<img src="http://i055.radikal.ru/1005/43/e32d5ae178fb.png" border="0" alt="" /><br />
<img src="http://s52.radikal.ru/i137/1005/21/531bce75188a.png" border="0" alt="" /> <img src="http://s004.radikal.ru/i208/1005/3b/ff14ae8e1a5b.png" border="0" alt="" /></li>
<li><b>Настраиваем</b><br />
<font color="Red">Включаем трассировку для сервера</font> приложений AOS, если необходимо:<br />
<img src="http://blogs.msdn.com/blogfiles/aeremenk/WindowsLiveWriter/TraceParser_1076F/image_thumb_6.png" border="0" alt="" /><br />
Теперь<font color="Red"> включаем трассировку и на клиенте</font>:<br />
<img src="http://blogs.msdn.com/blogfiles/aeremenk/WindowsLiveWriter/TraceParser_1076F/image_thumb_7.png" border="0" alt="" /><br /></li>
<li><b>Запускаем клиента Dynamics Ax 2009.</b> Выполняем действия, к примеру создаем журнал ГК и разносим его.<br /></li>
<li><b>Импортируем логи:</b><br />
Файлы логов сервера и клиента копируем в папку Trace Parcer (в моем случае - C:\AX Trace\). Хотя это и необязательно, облегчает администрирование.<br />
Клиент С:\Users\Public\Microsoft\Dynamics Ax\Log\   (Путь для Windows Vista/7/2008/2008 R2)<br />
Сервер: C:\Program Files\Microsoft Dynamics AX\50\Server\DynamicsAx2009\Log\<br />
<img src="http://i055.radikal.ru/1005/5c/0761da484e22.jpg" border="0" alt="" /><br /></li>
<li><b>Результат</b><br />
<img src="http://s43.radikal.ru/i101/1005/9c/46c1422ef17f.png" border="0" alt="" /> <br />
<br />
<img src="http://s49.radikal.ru/i123/1005/27/18ff6715352d.png" border="0" alt="" /></li>
</ol><br />
Интерфейс упростили. Возможность просматривать  SQL  запросы и код на X++.<br />
Удобная кнопка &quot;Jump to Callstack&quot; на вкладке &quot;X++/RPC&quot;<br />
Я трассировки стека разделение по &quot;Session Id&quot;, удобно  найти свой стек, когда много пользователей работают на АОС. <br />
<br />
P.S. По мотивам <a href="http://blogs.msdn.com/aeremenk/archive/2008/01/14/7107453.aspx" target="_blank">http://blogs.msdn.com/aeremenk/archi...4/7107453.aspx</a> by Alexei Eremenko</div>

]]></content:encoded>
			<dc:creator>Poleax</dc:creator>
			<guid isPermaLink="true">//axforum.info/forums/blog.php?b=119</guid>
		</item>
		<item>
			<title>Installation  Error Dynamics Ax 2009 with Oracle 10G R2</title>
			<link>//axforum.info/forums/blog.php?b=107</link>
			<pubDate>Tue, 20 Apr 2010 11:29:42 GMT</pubDate>
			<description><![CDATA[*Installation  Error Dynamics Ax 2009 with Oracle 10G R2 *

http://dax-world.blogspot.com/2010/02/installation-problem-connectivity-of.html

http://rajdipdas.spaces.live.com/blog/

---Цитата---
Few days earlier I was involving a problem of connectivity of Dynamics Ax 2009 with Oracle 10g database during installation. After lots of fights we've managed finally to get started up and running Axapta 2009. Recently I noticed many people are facing same kind of problem like me. It is not a complex procedure but some tricks over there. I found some tricks those I am publishing.

1. After completing Oracle 10g installation ensure Oracle services (Listner, database, Oracle service and SQL Plus) are running under local services

2. Open SQL Plus for checking Oracle is running successfully or not. ( Common error basically came as “Insufficient Shared Memory”)

If not running Oracle Plus then please hold a moment and then try to run Oracle SQL Plus again. (Cause after installing Oracle takes some times to initialize/configure the Oracle Shared Memory)

“Setup could not connect to the Database Server “DataSource = ****; Integrated Security = Yes” is the common barrier during installation of Ax with Oracle 10g.
This bellow mentioned process might be helpful to some extend for smooth installation.

Add AOS user (administrator) into Oracle 10g Administrative Assistance area and add also the “Domain Admins” if not present there. Here the path....

Изображение: http://4.bp.blogspot.com/_oJQ5Q8BEy0Y/S4PCOx4zjAI/AAAAAAAABpE/kkno_YoPPdg/s1600/SC1_Path.JPG 

Here the area where you have to add user

Изображение: http://4.bp.blogspot.com/_oJQ5Q8BEy0Y/S4PCocHFoPI/AAAAAAAABpM/ycoPAbVxNtg/s1600/DC2.JPG 

Note: Another problem may happen AOS is not starting for the first time after building all the index files. If you face then nothing to worry,  change the Dynamics Ax Server Service from NetworkService Account to Domain\Administrator Account and then start the service again and little while after service will show “Started”.

*** Apart form above procedure many procedures to be maintained during Oracle installation for Ax 2009. All the procedure are available in the Installation guide. Please read deeply the Installation guide of dynamics Ax with Oracle 10g (provided by Microsoft) before installing.  

***I think above procedure is to avoid obstruction of installation but I may be wrong or right to some extend. Please leave me your comment or any information or missing information regarding this topic.
---Конец цитаты---
]]></description>
			<content:encoded><![CDATA[<div><b>Installation  Error Dynamics Ax 2009 with Oracle 10G R2 </b><br />
<br />
<a href="http://dax-world.blogspot.com/2010/02/installation-problem-connectivity-of.html" target="_blank">http://dax-world.blogspot.com/2010/0...tivity-of.html</a><br />
<br />
<a href="http://rajdipdas.spaces.live.com/blog/" target="_blank">http://rajdipdas.spaces.live.com/blog/</a><br />
<div class="q">
	<div class="smallfont q_title">Цитата:</div>
	<div class="alt2 q_body">
		
			Few days earlier I was involving a problem of connectivity of Dynamics Ax 2009 with Oracle 10g database during installation. After lots of fights we've managed finally to get started up and running Axapta 2009. Recently I noticed many people are facing same kind of problem like me. It is not a complex procedure but some tricks over there. I found some tricks those I am publishing.<br />
<br />
1. After completing Oracle 10g installation ensure Oracle services (Listner, database, Oracle service and SQL Plus) are running under local services<br />
<br />
2. Open SQL Plus for checking Oracle is running successfully or not. ( Common error basically came as “Insufficient Shared Memory”)<br />
<br />
If not running Oracle Plus then please hold a moment and then try to run Oracle SQL Plus again. (Cause after installing Oracle takes some times to initialize/configure the Oracle Shared Memory)<br />
<br />
“Setup could not connect to the Database Server “DataSource = ****; Integrated Security = Yes” is the common barrier during installation of Ax with Oracle 10g.<br />
This bellow mentioned process might be helpful to some extend for smooth installation.<br />
<br />
Add AOS user (administrator) into Oracle 10g Administrative Assistance area and add also the “Domain Admins” if not present there. Here the path....<br />
<br />
<img src="http://4.bp.blogspot.com/_oJQ5Q8BEy0Y/S4PCOx4zjAI/AAAAAAAABpE/kkno_YoPPdg/s1600/SC1_Path.JPG" border="0" alt="" /><br />
<br />
Here the area where you have to add user<br />
<br />
<img src="http://4.bp.blogspot.com/_oJQ5Q8BEy0Y/S4PCocHFoPI/AAAAAAAABpM/ycoPAbVxNtg/s1600/DC2.JPG" border="0" alt="" /><br />
<br />
Note: Another problem may happen AOS is not starting for the first time after building all the index files. If you face then nothing to worry,  change the Dynamics Ax Server Service from NetworkService Account to Domain\Administrator Account and then start the service again and little while after service will show “Started”.<br />
<br />
*** Apart form above procedure many procedures to be maintained during Oracle installation for Ax 2009. All the procedure are available in the Installation guide. Please read deeply the Installation guide of dynamics Ax with Oracle 10g (provided by Microsoft) before installing.  <br />
<br />
***I think above procedure is to avoid obstruction of installation but I may be wrong or right to some extend. Please leave me your comment or any information or missing information regarding this topic.
		
	</div>
</div></div>

]]></content:encoded>
			<dc:creator>Poleax</dc:creator>
			<guid isPermaLink="true">//axforum.info/forums/blog.php?b=107</guid>
		</item>
	</channel>
</rss>
