<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1323778467050606749</id><updated>2012-01-17T17:26:13.346-05:00</updated><category term='visual'/><category term='setup'/><category term='x++'/><category term='datasource'/><category term='value'/><category term='installation'/><category term='SQL'/><category term='funny'/><category term='Connect'/><category term='batch processing'/><category term='permission'/><category term='development'/><category term='.Net'/><category term='BizTalk'/><category term='mask'/><category term='method'/><category term='export'/><category term='date'/><category term='coloring'/><category term='query'/><category term='morphx'/><category term='rows'/><category term='form'/><category term='Labels'/><category term='grid'/><category term='find'/><category term='job'/><category term='delete'/><category term='PowerShell'/><category term='message'/><category term='compilation'/><category term='window'/><category term='user interface'/><category term='class'/><category term='for revising'/><category term='range'/><category term='image'/><category term='AX2012'/><category term='InfoLog'/><category term='AOT'/><category term='Events'/><category term='IntEdit'/><category term='russian'/><category term='training'/><category term='comments'/><category term='ax2009'/><category term='common'/><category term='manual'/><category term='SysInfoAction'/><category term='debug'/><category term='table'/><category term='enum'/><category term='windows server 2003'/><category term='guide'/><category term='OLAP'/><category term='relations'/><category term='stringedit'/><category term='tool'/><category term='internet explorer'/><category term='exams'/><category term='AIF'/><category term='tutorial'/><category term='property'/><category term='object'/><category term='formatting'/><category term='com'/><category term='linkedIn'/><category term='xpoo'/><category term='online users'/><category term='blog'/><category term='book'/><category term='temporary table'/><category term='ad'/><category term='beta'/><category term='online'/><category term='resume'/><category term='OnTime2008'/><category term='editor'/><category term='certification'/><category term='report'/><category term='invoice'/><category term='alert'/><category term='color'/><category term='BI'/><category term='microsoft'/><category term='fix'/><category term='ax'/><category term='ODBC'/><category term='Ubuntu'/><category term='project'/><category term='xpo'/><category term='aos'/><category term='Excel'/><title type='text'>Adventures in Axapta world</title><subtitle type='html'>Current version: MS Dynamics AX 5.0.1500.2116</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>72</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-3855635122318154644</id><published>2012-01-17T17:26:00.000-05:00</published><updated>2012-01-17T17:26:13.352-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='temporary table'/><category scheme='http://www.blogger.com/atom/ns#' term='xpo'/><category scheme='http://www.blogger.com/atom/ns#' term='InfoLog'/><category scheme='http://www.blogger.com/atom/ns#' term='Excel'/><category scheme='http://www.blogger.com/atom/ns#' term='AOT'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='AX2012'/><title type='text'>Universal Field Changer new version for Microsoft Dynamics AX2012</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;So, I took my &lt;a href="http://alexvoy.blogspot.com/2008/08/class-universal-field-changer-xpo.html"&gt;old project&lt;/a&gt; from the case just to add a new feature: this time I would like to get all the table fields with their labels in the user's language.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-fcr2WEp_Xe8/TxX1Wb7w9BI/AAAAAAAAIiI/S97cVx2m69o/s1600/2012-01-17_1723.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="186" src="http://2.bp.blogspot.com/-fcr2WEp_Xe8/TxX1Wb7w9BI/AAAAAAAAIiI/S97cVx2m69o/s320/2012-01-17_1723.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Frankly seaking I was going to get it in a grid in order to export to Excel; but unfortunately I did not find a fast way to show my temporary table. Finally, I just use InfoLog in the comma separated format that can be used lately to open in Excel.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-6BM6m61snxk/TxX1YJ9ufwI/AAAAAAAAIiQ/VxvHJ3UvsBw/s1600/2012-01-17_1725.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://2.bp.blogspot.com/-6BM6m61snxk/TxX1YJ9ufwI/AAAAAAAAIiQ/VxvHJ3UvsBw/s320/2012-01-17_1725.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Enjoy, anyway!&lt;br /&gt;&lt;br /&gt;Description:&lt;br /&gt;&lt;br /&gt;&lt;a href="https://docs.google.com/open?id=0B12IJrS5i09iNjcwNmExZTAtZmZjMC00NzQwLTk4NzMtMzU2MGVjMjBjZWE0"&gt;&lt;b&gt;Universal Field Changer&lt;/b&gt; class for &lt;b&gt;Microsoft Dynamics AX2012&lt;/b&gt;&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;- collects all the fields from all the tables in AOT in temporary tables;&lt;br /&gt;- makes possible to change any values using filtres by table and field names and existing values;&lt;br /&gt;- provides access to SQL query string;&lt;br /&gt;- prints the field lists with labels in user's language;&lt;br /&gt;- creates dynamically all the form controls and uses method overloading and can be used as a tutorial;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-3855635122318154644?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/3855635122318154644/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=3855635122318154644' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/3855635122318154644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/3855635122318154644'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2012/01/universal-field-changer-new-version-for.html' title='Universal Field Changer new version for Microsoft Dynamics AX2012'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-fcr2WEp_Xe8/TxX1Wb7w9BI/AAAAAAAAIiI/S97cVx2m69o/s72-c/2012-01-17_1723.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-6050610423028150593</id><published>2011-12-13T10:56:00.000-05:00</published><updated>2011-12-13T10:56:02.229-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='x++'/><category scheme='http://www.blogger.com/atom/ns#' term='value'/><category scheme='http://www.blogger.com/atom/ns#' term='query'/><category scheme='http://www.blogger.com/atom/ns#' term='date'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='ax'/><title type='text'>Dates In An Extended Query Range</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Let's say we need to range all the BOM versions that are active as of today. For this purpose we can use an extended range in the query.&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;{&lt;br /&gt;    QueryBuildRange qbr;&lt;br /&gt;    ;&lt;br /&gt;    &lt;span class="kwrd"&gt;if&lt;/span&gt;(!_args.record())&lt;br /&gt;        &lt;span class="kwrd"&gt;return&lt;/span&gt;;&lt;br /&gt;    &lt;span class="rem"&gt;// there is an active caller!&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;switch&lt;/span&gt; (_args.record().TableId)&lt;br /&gt;    {&lt;br /&gt;        &lt;span class="kwrd"&gt;case&lt;/span&gt; tablenum(InventTable):&lt;br /&gt;            inventTable = element.args().record();&lt;br /&gt;            &lt;span class="kwrd"&gt;this&lt;/span&gt;.query().dataSourceTable(tablenum(InventTable)).addRange(fieldnum(InventTable, ItemId)).&lt;span class="kwrd"&gt;value&lt;/span&gt;(inventTable.ItemId);&lt;br /&gt;            qbr = &lt;span class="kwrd"&gt;this&lt;/span&gt;.query().dataSourceTable(tablenum(BOMVersion)).addRange(fieldnum(&lt;b&gt;BOMVersion, RecId&lt;/b&gt;));&lt;br /&gt;            qbr.&lt;span class="kwrd"&gt;value&lt;/span&gt;(&lt;b&gt;&lt;span class="str"&gt;'(fromDate &amp;lt;= '&lt;/span&gt;+date2StrXpp(today())+&lt;span class="str"&gt;') &amp;amp;&amp;amp; (toDate &amp;gt;= '&lt;/span&gt;+date2StrXpp(today())+&lt;span class="str"&gt;')'&lt;/span&gt;&lt;/b&gt;);&lt;br /&gt;            &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;The final SQL query will look like this (a fragment):&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;= BOMVersion.ItemId AND ((Active = 1)) AND ((&lt;b&gt;(fromDate &amp;lt;=13\12\2011) &amp;amp;&amp;amp; (toDate &amp;gt;= 13\12\2011)&lt;/b&gt;)) JOIN * FROM BOM(BOM_1) ORDER BY BOM.LineNum ASC ON BOMVersion.BOMId = BOM.BOMId&lt;/pre&gt;&lt;br /&gt;The idea was taken from the &lt;a href="http://www.axforum.info/forums/showthread.php?postid=20248#post20248"&gt;AX forum (in Russian)&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-6050610423028150593?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/6050610423028150593/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=6050610423028150593' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/6050610423028150593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/6050610423028150593'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2011/12/dates-in-extended-query-range.html' title='Dates In An Extended Query Range'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-8794787789257807673</id><published>2011-10-31T16:33:00.000-04:00</published><updated>2011-10-31T16:33:19.669-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='aos'/><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><category scheme='http://www.blogger.com/atom/ns#' term='windows server 2003'/><title type='text'>Two tricks about stopping AX service via PowerShell</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Generally speaking, it is true for all Windows services but my particular example is about stopping Microsoft Dynamics AX service (AOS) via PowerShell.&lt;br /&gt;&lt;br /&gt;As recommended in &lt;i&gt;Deploying customizations across Microsoft Dynamics AX environments &lt;/i&gt;white paper, before importing a metadata model store into the target environment, one must stop all AOS instances in it.&lt;br /&gt;&lt;br /&gt;First trick is on how to provide the correct name of the service supposed to be stopped. &lt;br /&gt;&lt;br /&gt;&lt;img src="http://i40.tinypic.com/27zj0ic.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;If you try to use the service name you see in Services, you will fail.&lt;br /&gt;&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;PS C:\Windows\system&amp;gt; Set-Service -name AOS60$01 -status stopped&lt;br /&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;Set-Service : Service AOS60 was not found on computer '.'.&lt;br /&gt;At line:1 char:12&lt;br /&gt;+ Set-Service &amp;nbsp;-name AOS60$01 -status stopped     + CategoryInfo          : ObjectNotFound: (.:String) [Set-Service], Invali    dOperationException     + FullyQualifiedErrorId : InvalidOperationException,Microsoft.PowerShell.C    ommands.SetServiceCommand&amp;nbsp;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;It is evident that the problem is in $ sign. To fix it you can simply quoted it with "'" (not with "!).&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;PS C:\Windows\system32&amp;gt; Set-Service -name 'AOS60$01' -status stopped&lt;/blockquote&gt;&lt;br /&gt;Unfortunately, this command does not work anyway because of an error:&lt;br /&gt;&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;Set-Service : Cannot stop service 'Microsoft Dynamics AX Object Server 6.0$01-a&lt;br /&gt;x2012_std (AOS60$01)' because it is dependent on other services.&lt;br /&gt;At line:1 char:12&lt;br /&gt;+ Set-Service &amp;nbsp;-name 'AOS60$01' -status stopped     + CategoryInfo          : InvalidOperation: (System.ServiceProcess.Service    Controller:ServiceController) [Set-Service], ServiceCommandException     + FullyQualifiedErrorId : ServiceIsDependentOnNoForce,Microsoft.PowerShell    .Commands.SetServiceCommand&amp;nbsp;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;Nevertheless, you can stop the service as usual without any issue.  I do not why it does not work but I would suggest that one use another commands to stop and start the service, namely:&lt;br /&gt;&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;PS C:\Windows\system32&amp;gt; Stop-Service  'AOS60$01'&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #bf9000;"&gt;WARNING: Waiting for service 'Microsoft Dynamics AX Object Server&lt;br /&gt;6.0$01-ax2012_std (AOS60$01)' to finish stopping...&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;PS C:\Windows\system32&amp;gt; Start-Service  'AOS60$01'&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #bf9000;"&gt;WARNING: Waiting for service 'Microsoft Dynamics AX Object Server&lt;br /&gt;6.0$01-ax2012_std (AOS60$01)' to finish starting...&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;It takes its time, be patient!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-8794787789257807673?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/8794787789257807673/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=8794787789257807673' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/8794787789257807673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/8794787789257807673'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2011/10/two-tricks-about-stopping-ax-service.html' title='Two tricks about stopping AX service via PowerShell'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i40.tinypic.com/27zj0ic_th.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-3108789665511992933</id><published>2011-09-29T15:19:00.004-04:00</published><updated>2011-09-29T15:24:25.502-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='visual'/><category scheme='http://www.blogger.com/atom/ns#' term='tool'/><category scheme='http://www.blogger.com/atom/ns#' term='online'/><category scheme='http://www.blogger.com/atom/ns#' term='resume'/><category scheme='http://www.blogger.com/atom/ns#' term='job'/><category scheme='http://www.blogger.com/atom/ns#' term='beta'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><title type='text'>visualize your resume!</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;I want to tell you about a new online project that allows you to visualize your resume. The project is still in beta version; nevertheless, it can perform some magic.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.vizualize.me/" style="color: #6da3bd;"&gt;vizualize.me&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It is well known that a picture paints a thousand words. It does not matter how many words are in your CV, but I am sure that you will be impressed as might be your eventual employer.&lt;br /&gt;&lt;br /&gt;Right after signing up it is possible to import your profile directly from &lt;a href="http://www.linkedin.com/"&gt;LinkedIn&lt;/a&gt;, de facto the most popular social network for professionals.&lt;br /&gt;&lt;br /&gt;Now the project will generate your new good-looking resume automatically: by converting text into diagrams, schemes, maps, etc.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i56.tinypic.com/2vnqj9l.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;It is up to you what to include in each part of it.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i51.tinypic.com/28a5i7s.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;Then you can ice the cake by choosing a theme you like or formatting text and diagrams.&lt;br /&gt;&lt;br /&gt;Finally, you publish your new resume by one click.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i56.tinypic.com/ic8pwi.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;Good luck in job landing!&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-3108789665511992933?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/3108789665511992933/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=3108789665511992933' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/3108789665511992933'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/3108789665511992933'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2011/09/visualize-your-resume.html' title='visualize your resume!'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i56.tinypic.com/2vnqj9l_th.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-1006502897854959880</id><published>2011-07-11T14:56:00.001-04:00</published><updated>2011-07-11T15:03:55.856-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='rows'/><category scheme='http://www.blogger.com/atom/ns#' term='color'/><category scheme='http://www.blogger.com/atom/ns#' term='method'/><category scheme='http://www.blogger.com/atom/ns#' term='ax2009'/><category scheme='http://www.blogger.com/atom/ns#' term='IntEdit'/><category scheme='http://www.blogger.com/atom/ns#' term='coloring'/><category scheme='http://www.blogger.com/atom/ns#' term='user interface'/><category scheme='http://www.blogger.com/atom/ns#' term='table'/><category scheme='http://www.blogger.com/atom/ns#' term='ax'/><category scheme='http://www.blogger.com/atom/ns#' term='stringedit'/><title type='text'>Paint it black: How to color rows in Table form control</title><content type='html'>There a lot of answers on how to color grid lines and cells -- for example, this&lt;a href="http://daxguy.blogspot.com/2007/04/coloring-grids-in-dax.html"&gt; DisplayOption using from DAXGuy&lt;/a&gt;.&amp;nbsp;However, my goal is to show how one can paint &lt;b&gt;rows in Table&lt;/b&gt; form control. I use the standard tutorial form &lt;i&gt;tutorial_Form_Table&lt;/i&gt; from AX2009.&lt;br /&gt;&lt;br /&gt;On the table control, we need to change a bit &lt;i&gt;EditControl&lt;/i&gt; method where we define in which color the current row will be painted. (&lt;a href="http://web.njit.edu/~kevin/rgb.txt.html"&gt;Here&lt;/a&gt;, I provided you with a link where you can choose RGB colors to paint the hell at your own.)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;// Color the active line in a table&lt;/span&gt;&lt;br /&gt;FormControl editControl(&lt;span class="kwrd"&gt;int&lt;/span&gt; column, &lt;span class="kwrd"&gt;int&lt;/span&gt; row)&lt;br /&gt;{&lt;br /&gt;    #DEFINE.colorDarkTurkoise(112,147,219)                  &lt;span class="rem"&gt;// colors at your personal perception of hell&lt;/span&gt;&lt;br /&gt;    #DEFINE.colorNeonBlue(77,77,255)&lt;br /&gt;    #DEFINE.colorRosyBrown(255,193,193)&lt;br /&gt;    #DEFINE.colorSaddleBrown(139,69,19)&lt;br /&gt;    &lt;span class="kwrd"&gt;int&lt;/span&gt; oldStrColor = WinApi::RGB2int(#colorRosyBrown);     &lt;span class="rem"&gt;// colors for cells not in focus&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;int&lt;/span&gt; oldIntColor = WinApi::RGB2int(#colorSaddleBrown);&lt;br /&gt;    &lt;span class="kwrd"&gt;int&lt;/span&gt; newIntColor = WinApi::RGB2int(#colorNeonBlue);      &lt;span class="rem"&gt;// colors for the selected line&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;int&lt;/span&gt; newStrColor = WinApi::RGB2int(#colorDarkTurkoise);&lt;br /&gt;    ;&lt;br /&gt;    &lt;span class="rem"&gt;// this is columns with int controls&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;if&lt;/span&gt; ((column == 2) || (column == 4))&lt;br /&gt;    {&lt;br /&gt;        &lt;span class="rem"&gt;// not in the header&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;if&lt;/span&gt; (row &amp;gt; 1)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="rem"&gt;// this is in the selected line&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (row == table.row())&lt;br /&gt;                intEdit.backgroundColor(newIntColor);&lt;br /&gt;            &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;                intEdit.backgroundColor(oldIntColor);&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; intEdit;&lt;br /&gt;        }&lt;br /&gt;        &lt;span class="rem"&gt;// this is the header&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (row == table.row())&lt;br /&gt;                editline.backgroundColor(newStrColor);&lt;br /&gt;            &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;                editline.backgroundColor(oldStrColor);&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; editline;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;    {&lt;br /&gt;        &lt;span class="kwrd"&gt;if&lt;/span&gt; (row == table.row())&lt;br /&gt;            editline.backgroundColor(newStrColor);&lt;br /&gt;        &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;            editline.backgroundColor(oldStrColor);&lt;br /&gt;        &lt;span class="kwrd"&gt;return&lt;/span&gt; editline;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;So, when the user selects another row, all its controls change their color--it's your responsibility to return the correct form control: &lt;i&gt;StringEdit&lt;/i&gt;, &lt;i&gt;IntEdit &lt;/i&gt;and so on.&lt;br /&gt;&lt;br /&gt;The second method where we redraw the form is &lt;i&gt;activeCellChanged&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; activeCellChanged()&lt;br /&gt;{&lt;br /&gt;    ;&lt;br /&gt;    super();&lt;br /&gt;    &lt;span class="rem"&gt;// do not forget to repaint the form!&lt;/span&gt;&lt;br /&gt;    element.redraw();&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;Coloring can be realized much more complicated with different color scheme, calculated conditions etc.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-2Q4_uwZW1f0/ThtGr4HBAUI/AAAAAAAAHxQ/6emw8vqBmA4/s1600/colortable.png" imageanchor="1"&gt;&lt;img border="0" height="134" src="http://2.bp.blogspot.com/-2Q4_uwZW1f0/ThtGr4HBAUI/AAAAAAAAHxQ/6emw8vqBmA4/s400/colortable.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-1006502897854959880?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/1006502897854959880/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=1006502897854959880' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/1006502897854959880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/1006502897854959880'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2011/07/paint-it-black-how-to-color-rows-in.html' title='Paint it black: How to color rows in Table form control'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-2Q4_uwZW1f0/ThtGr4HBAUI/AAAAAAAAHxQ/6emw8vqBmA4/s72-c/colortable.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-837877818041563008</id><published>2011-05-13T15:49:00.000-04:00</published><updated>2011-05-13T15:49:17.380-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='exams'/><category scheme='http://www.blogger.com/atom/ns#' term='funny'/><title type='text'>Refresh your mind!</title><content type='html'>&lt;img src="http://i54.tinypic.com/70g76p.jpg"&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-837877818041563008?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/837877818041563008/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=837877818041563008' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/837877818041563008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/837877818041563008'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2011/05/refresh-your-mind.html' title='Refresh your mind!'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i54.tinypic.com/70g76p_th.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-7025094421864390350</id><published>2011-05-02T16:53:00.001-04:00</published><updated>2011-05-02T16:55:06.332-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xpo'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='object'/><category scheme='http://www.blogger.com/atom/ns#' term='find'/><category scheme='http://www.blogger.com/atom/ns#' term='ax2009'/><category scheme='http://www.blogger.com/atom/ns#' term='guide'/><category scheme='http://www.blogger.com/atom/ns#' term='AOT'/><title type='text'>How to find your object in AOT projects</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;This is a small but precious tool for AX developing. &lt;br /&gt;&lt;br /&gt;Have you ever tried to find in which projects your objects are included? Yes, I have... Not so easy to search and look into each project. &lt;br /&gt;&lt;br /&gt;Now, it is just a question of one click: this mighty &lt;a href="https://www.loncartechnologies.com/download.php"&gt;LC Project Search&lt;/a&gt; will make the life easier. And good news, it is free. So, profit and enjoy!&lt;br /&gt;&lt;br /&gt;There are three xpo-files with appropriate versions for AX 4.0, 2009, and 2012. (I have tested 2009 one). You can import it, then launch with the menu item, and this is ready to go.&lt;br /&gt;&lt;br /&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-ldrmMPVQx8M/Tb8Yj9FFJyI/AAAAAAAAHMY/u9Lvydr_2i0/s1600/Project.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Just type the name of any object you're looking for, optionally, you can choose the type of it, then press &lt;i&gt;Search&lt;/i&gt;. Be patient, it takes some time to populate the result table.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-LbKsknbpG_U/Tb8aFjn9sZI/AAAAAAAAHMg/694CAYXmfUc/s1600/Search.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="216" src="http://2.bp.blogspot.com/-LbKsknbpG_U/Tb8aFjn9sZI/AAAAAAAAHMg/694CAYXmfUc/s320/Search.png" width="320" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now, all projects contain the object are here.&lt;br /&gt;&lt;br /&gt;Take a look at &lt;a href="http://www.loncartechnologies.com/index.php"&gt;Loncar Technologies company web site&lt;/a&gt;: there you can get some more.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-7025094421864390350?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/7025094421864390350/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=7025094421864390350' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/7025094421864390350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/7025094421864390350'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2011/05/how-to-find-your-object-in-aot-projects.html' title='How to find your object in AOT projects'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-ldrmMPVQx8M/Tb8Yj9FFJyI/AAAAAAAAHMY/u9Lvydr_2i0/s72-c/Project.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-3857128573299414065</id><published>2011-01-07T17:05:00.000-05:00</published><updated>2011-01-07T17:05:39.709-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ax2009'/><category scheme='http://www.blogger.com/atom/ns#' term='invoice'/><title type='text'>How to delete Pending Invoices</title><content type='html'>Still can't find how to kill your pending invoices? This new functionality made me crazy sometimes but now it's getting easier thanks to&amp;nbsp;&lt;a href="http://dynamicsuser.net/members/Chowdhury_5F00_Raj/default.aspx"&gt;Raju Roy Chowdhury&lt;/a&gt;who &lt;a href="http://dynamicsuser.net/forums/p/33077/183377.aspx"&gt;showed&lt;/a&gt;&amp;nbsp;me this trick:&lt;br /&gt;&lt;br /&gt;Go to &lt;br /&gt;Accounts Payable --&amp;gt; Inquiries --&amp;gt; History --&amp;gt; Invoices&lt;br /&gt;&lt;br /&gt;then find your invoices with Waiting status and delete them. Easy, eh?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-3857128573299414065?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/3857128573299414065/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=3857128573299414065' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/3857128573299414065'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/3857128573299414065'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2011/01/how-to-delete-pending-invoices.html' title='How to delete Pending Invoices'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-9129394028609817935</id><published>2010-11-16T09:21:00.000-05:00</published><updated>2010-11-16T09:21:23.330-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ad'/><category scheme='http://www.blogger.com/atom/ns#' term='linkedIn'/><title type='text'>Invitation to Advertise on LinkedIn</title><content type='html'>Who needs $100 USD free advertising on LinkedIn, drop me a line in comments&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-9129394028609817935?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/9129394028609817935/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=9129394028609817935' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/9129394028609817935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/9129394028609817935'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2010/11/invitation-to-advertise-on-linkedin.html' title='Invitation to Advertise on LinkedIn'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-7645751984907304702</id><published>2010-11-12T11:53:00.000-05:00</published><updated>2010-11-12T11:53:02.391-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='funny'/><category scheme='http://www.blogger.com/atom/ns#' term='manual'/><title type='text'>Quick User Manual On Outlook Rules (Epic Fail)</title><content type='html'>Sometimes, I have to send short manuals to my AX users. This is an excerpt (kinda epic fail...)&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i56.tinypic.com/jjmuth.jpg" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-7645751984907304702?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/7645751984907304702/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=7645751984907304702' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/7645751984907304702'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/7645751984907304702'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2010/11/quick-user-manual-on-outlook-rules-epic.html' title='Quick User Manual On Outlook Rules (Epic Fail)'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i56.tinypic.com/jjmuth_th.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-7796181883286278416</id><published>2010-10-29T17:52:00.000-04:00</published><updated>2010-10-29T17:52:48.263-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='funny'/><title type='text'>This seems to do nothing</title><content type='html'>I have been debugging new AX2009 to which we migrated recently, and sometimes it is a real fun!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;if&lt;/span&gt; (numberOfTransOpen == 1 ||&lt;br /&gt;            (numberOfTransOpen &amp;gt; 1 &amp;amp;&amp;amp; !printPaymentSchedule))&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="rem"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;// this seems to do nothing&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (printPaymentSchedule)&lt;br /&gt;            {&lt;br /&gt;                select firstonly tmpCustVendTransOpen;&lt;br /&gt;            }&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-7796181883286278416?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/7796181883286278416/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=7796181883286278416' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/7796181883286278416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/7796181883286278416'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2010/10/this-seems-to-do-nothing.html' title='This seems to do nothing'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-7005204956608744301</id><published>2010-10-07T09:41:00.000-04:00</published><updated>2010-10-07T09:41:43.265-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><category scheme='http://www.blogger.com/atom/ns#' term='training'/><category scheme='http://www.blogger.com/atom/ns#' term='guide'/><title type='text'>Free Axapta Training</title><content type='html'>Ladies and Gentlemen, &lt;a href="http://www.dynamicsaxtraining.com/"&gt;AX trainings blog&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://i54.tinypic.com/2iky82e.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://i54.tinypic.com/2iky82e.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;I find this information source on Dynamics AX very useful for those who are going to learn this ERP system for using and developing.&lt;br /&gt;&lt;br /&gt;All trainings are well structured, so you have no chance to get lost.&lt;br /&gt;&lt;br /&gt;Very good point to start the adventure!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-7005204956608744301?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/7005204956608744301/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=7005204956608744301' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/7005204956608744301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/7005204956608744301'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2010/10/free-axapta-training.html' title='Free Axapta Training'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i54.tinypic.com/2iky82e_th.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-8600394780397196602</id><published>2010-09-26T21:45:00.000-04:00</published><updated>2010-09-26T21:45:52.252-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BI'/><title type='text'>Pictures from the seminar</title><content type='html'>Some pictures from BI seminar are &lt;a href="http://www.flickr.com/photos/guybarrette/sets/72157625041033598/"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i54.tinypic.com/25ian38.jpg&amp;quot;" /&gt;&lt;br /&gt;&lt;br /&gt;PowerPivot in Excel 2010 looks really cool!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-8600394780397196602?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/8600394780397196602/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=8600394780397196602' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/8600394780397196602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/8600394780397196602'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2010/09/pictures-from-seminar.html' title='Pictures from the seminar'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-3967285797309521306</id><published>2010-09-16T21:01:00.000-04:00</published><updated>2010-09-16T21:01:14.738-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BI'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='OLAP'/><title type='text'>Business Intelligence Seminar in Montreal, September 25</title><content type='html'>BI: SSIS, SSRS, SSAS, PowerPivot, OLAP Cubes. The event will be in Montreal, &lt;a href="http://www.dotnetmontreal.com/dnn/Accueil/tabid/36/ModuleID/398/ItemID/80/mctl/EventDetails/language/en-CA/Default.aspx?selecteddate=25/09/2010"&gt;more info&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both;"&gt;&lt;a href="http://www.dotnetmontreal.com/dnn/Portals/0/Images/SamediDotNet.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://www.dotnetmontreal.com/dnn/Portals/0/Images/SamediDotNet.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Who's going to participate?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-3967285797309521306?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/3967285797309521306/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=3967285797309521306' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/3967285797309521306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/3967285797309521306'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2010/09/business-intelligence-seminar-in.html' title='Business Intelligence Seminar in Montreal, September 25'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-8034585948940944503</id><published>2010-09-15T09:22:00.000-04:00</published><updated>2010-09-15T09:22:22.517-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='job'/><category scheme='http://www.blogger.com/atom/ns#' term='ax'/><title type='text'>Microsoft Dynamics Salary Survey 2010</title><content type='html'>Now, this is the time to participate in the &lt;a href="http://www.surveymonkey.com/s/microsoft_dynamics_salary_survey_2010_av"&gt;annual Microsoft Dynamics Salary Survey&lt;/a&gt; conducted by Nigel Frank International.&lt;br /&gt;&lt;br /&gt;It takes actually two minutes to fill in. This is in English, but it is very easy to understand.&lt;br /&gt;&lt;br /&gt;As a prize you will get a copy of the survey results, which are a comprehensive analysis of comparative salary data in different aspects: geography, domains, positions and so on. You can see 2009 report &lt;a href="https://sites.google.com/site/nigelfrankinternational/MicrosoftDynamicsSalarySurvey2009%28GlobalVersion%29.pdf"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i52.tinypic.com/2h2kppw.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;Copyright 2009 Nigel Frank International Ltd.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I am sure this job helps us a lot to improve our employment situation. So, please, enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-8034585948940944503?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/8034585948940944503/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=8034585948940944503' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/8034585948940944503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/8034585948940944503'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2010/09/microsoft-dynamics-salary-survey-2010.html' title='Microsoft Dynamics Salary Survey 2010'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i52.tinypic.com/2h2kppw_th.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-9040001034162954399</id><published>2010-08-12T15:00:00.001-04:00</published><updated>2010-08-13T13:15:54.048-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='enum'/><category scheme='http://www.blogger.com/atom/ns#' term='value'/><category scheme='http://www.blogger.com/atom/ns#' term='query'/><category scheme='http://www.blogger.com/atom/ns#' term='range'/><title type='text'>Value in Query range</title><content type='html'>How to use Enum values in Query ranges:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; init()&lt;br /&gt;{&lt;br /&gt;    QueryBuildRange   criteriaOpen;&lt;br /&gt;    ;&lt;br /&gt;    super();&lt;br /&gt;    criteriaOpen = &lt;span class="kwrd"&gt;this&lt;/span&gt;.query().dataSourceTable(tableNum(ProdTable)).addRange(fieldnum(ProdTable, ProdStatus));&lt;br /&gt;    &lt;span class="Apple-style-span" style="color: red;"&gt;criteriaOpen.&lt;/span&gt;&lt;span class="kwrd"&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;value&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;(&lt;/span&gt;&lt;span class="str"&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;"Started"&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;);&lt;/span&gt; &lt;span class="rem"&gt;&lt;span class="Apple-style-span" style="color: lime;"&gt;// it does not work in non-English interface!!!&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span class="Apple-style-span" style="color: #f6b26b;"&gt;criteriaOpen.&lt;/span&gt;&lt;span class="kwrd"&gt;&lt;span class="Apple-style-span" style="color: #f6b26b;"&gt;value&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #f6b26b;"&gt;(enum2str(ProdStatus::StartedUp)); &lt;/span&gt;&lt;span class="rem"&gt;&lt;span class="Apple-style-span" style="color: lime;"&gt;// not enough good...&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;&lt;span class="Apple-style-span" style="color: lime;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #666666; font-family: Verdana, sans-serif; font-size: 11px; line-height: 16px; white-space: normal;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;b&gt;criteriaOpen.value(QueryValue(ProdStatus::StartedUp);&amp;nbsp;&lt;span class="Apple-style-span" style="color: lime; font-family: monospace; font-size: medium; font-weight: normal; line-height: normal; white-space: pre;"&gt;// now it is correct!&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&amp;nbsp;   &lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-9040001034162954399?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/9040001034162954399/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=9040001034162954399' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/9040001034162954399'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/9040001034162954399'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2010/08/value-in-query-range.html' title='Value in Query range'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-5686825751010718191</id><published>2010-05-07T10:21:00.001-04:00</published><updated>2010-05-07T11:41:01.353-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xpoo'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='method'/><category scheme='http://www.blogger.com/atom/ns#' term='datasource'/><title type='text'>Vania Kashperuk's Tutorial: refresh, reread, research, executeQuery</title><content type='html'>First of all, I have to admit that this subject was a little vague for me. This is why I read with a huge interest this new &lt;a href="http://kashperuk.blogspot.com/2010/03/tutorial-reread-refresh-research.html"&gt;Vania's tutorial about how to use efficiently and &lt;i&gt;correctly &lt;/i&gt;these four data source methods&lt;/a&gt;.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In fact, it is always much easier to acquire new knowledge on real examples, and luckily this is the case! Not only explained he step-by-step the difference between the methods but also provided us with a &lt;a href="http://cid-e5871abbdbd5cc92.skydrive.live.com/self.aspx/Public/DynamicsAX/20100406/PrivateProject%5E_Tutorial%5E_FormDataSourceRefresh.xpo"&gt;ready-to-use project &amp;nbsp;for Dynamics AX 2009&lt;/a&gt;, which can help a lot to them who have just started working with the system.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;So, I highly recommend&amp;nbsp;his blog&amp;nbsp;to every AX developer.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To whom it may be useful, I adapted this &lt;a href="http://cid-cbbef1c260084205.skydrive.live.com/self.aspx/.Public/PrivateProject%5E_Tutorial%5E_FormDataSourceRefresh%5E_4.xpo"&gt;xpo-project to Dynamics AX 4.0&lt;/a&gt;.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Didn't get it right? Just &lt;i&gt;reread()&amp;nbsp;&lt;/i&gt;it and &lt;i&gt;refresh()&amp;nbsp;&lt;/i&gt;your knowledge!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-5686825751010718191?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/5686825751010718191/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=5686825751010718191' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/5686825751010718191'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/5686825751010718191'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2010/05/vania-kashperuks-tutorial-refresh.html' title='Vania Kashperuk&apos;s Tutorial: refresh, reread, research, executeQuery'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-8391086754058915938</id><published>2010-03-16T17:05:00.000-04:00</published><updated>2010-03-16T17:05:03.837-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Excel'/><category scheme='http://www.blogger.com/atom/ns#' term='Labels'/><category scheme='http://www.blogger.com/atom/ns#' term='export'/><category scheme='http://www.blogger.com/atom/ns#' term='job'/><title type='text'>All Lables from given Layer in given Languages</title><content type='html'>Sometimes I need to see a label translations into different languages. Sometimes it is good to see all the labels that were created during the project on a given layer - like those on USR.&lt;br /&gt;&lt;br /&gt;This job exports all labels from a given layer in given languages to an Excel file.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here I used the two following code examples from the AXForum.info:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://axforum.info/forums/showthread.php?p=180398#post180398"&gt;job for finding labels, from a particular label file&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://axforum.info/forums/showthread.php?p=102266#post102266"&gt;ADODB.Recordset in memory&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Firstly, the job calculates the number of labels; then, it shows progress window; finally, it opens an Excel file saved under the name like "Labels from "+#LayerId+ " in "+#English+", "+#French+", "+#Russian+".xls".&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In this particular job are SYS layer and three mentioned languages used; you can easily change them to your needs.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; SisPrintAllLabelsOnGivenLanguages(Args _args)&lt;br /&gt;{&lt;br /&gt;    &lt;span class="rem"&gt;// needed layer&lt;/span&gt;&lt;br /&gt;    #define.LayerId(&lt;span class="str"&gt;"SIS"&lt;/span&gt;)&lt;br /&gt;    &lt;span class="rem"&gt;// all needed languages&lt;/span&gt;&lt;br /&gt;    #define.English(&lt;span class="str"&gt;"en-us"&lt;/span&gt;)&lt;br /&gt;    #define.French(&lt;span class="str"&gt;"fr-ca"&lt;/span&gt;)&lt;br /&gt;    #define.Russian(&lt;span class="str"&gt;"ru"&lt;/span&gt;)&lt;br /&gt;    &lt;span class="rem"&gt;// label classes&lt;/span&gt;&lt;br /&gt;    Label   lEn = &lt;span class="kwrd"&gt;new&lt;/span&gt; Label(#English);&lt;br /&gt;    Label   lFr = &lt;span class="kwrd"&gt;new&lt;/span&gt; Label(#French);&lt;br /&gt;    Label   lRu = &lt;span class="kwrd"&gt;new&lt;/span&gt; Label(#Russian);&lt;br /&gt;    &lt;span class="rem"&gt;// start looking every label&lt;/span&gt;&lt;br /&gt;    str 250 lId;&lt;br /&gt;    &lt;span class="kwrd"&gt;int&lt;/span&gt; totalLabels;&lt;br /&gt;    RunbaseProgress         progress;&lt;br /&gt;    #macrolib.AviFiles&lt;br /&gt;    &lt;span class="rem"&gt;//Excel variables section&lt;/span&gt;&lt;br /&gt;    COM rstAxa = &lt;span class="kwrd"&gt;new&lt;/span&gt; COM(&lt;span class="str"&gt;'ADODB.Recordset'&lt;/span&gt;);    &lt;span class="rem"&gt;// ADO: Recordset&lt;/span&gt;&lt;br /&gt;    COM flds   = rstAxa.Fields();&lt;br /&gt;    COM fld;&lt;br /&gt;    #define.LabelId(&lt;span class="str"&gt;"LabelId"&lt;/span&gt;)&lt;br /&gt;    COM xlApp;            &lt;br /&gt;    COM wbks, wbk;        &lt;br /&gt;    COM wkss, wks;        &lt;br /&gt;    COM rng, cell, rngCR; &lt;br /&gt;    COM font;             &lt;br /&gt;    COM entCol;           &lt;br /&gt;    COM actWin;           &lt;br /&gt;    &lt;span class="kwrd"&gt;int&lt;/span&gt; i, iMax;&lt;br /&gt;    ;&lt;br /&gt;    print(&lt;span class="str"&gt;"@SYS34745"&lt;/span&gt;);&lt;br /&gt;    &lt;span class="rem"&gt;// start looking every label&lt;/span&gt;&lt;br /&gt;    lId = lEn.searchFirst(&lt;span class="str"&gt;''&lt;/span&gt;);&lt;br /&gt;    &lt;span class="kwrd"&gt;while&lt;/span&gt; (lId)&lt;br /&gt;    {&lt;br /&gt;        &lt;span class="kwrd"&gt;if&lt;/span&gt; (lEn.moduleId(lId) == #LayerId) &lt;span class="rem"&gt;// The particular label file&lt;/span&gt;&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="rem"&gt;// count labels&lt;/span&gt;&lt;br /&gt;            totalLabels++;&lt;br /&gt;        }&lt;br /&gt;        lId = lEn.searchNext();&lt;br /&gt;    }&lt;br /&gt;    print(strfmt(&lt;span class="str"&gt;"%1 = %2"&lt;/span&gt;, &lt;span class="str"&gt;"@SYS54695"&lt;/span&gt;, totalLabels));&lt;br /&gt;    print(&lt;span class="str"&gt;"@SYS76178"&lt;/span&gt;);&lt;br /&gt;    &lt;span class="kwrd"&gt;if&lt;/span&gt; (totalLabels&amp;lt;=0)&lt;br /&gt;        &lt;span class="kwrd"&gt;return&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;    progress = RunbaseProgress::construct(1,&lt;span class="kwrd"&gt;null&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;    progress.setCaption(&lt;span class="str"&gt;"@SYS76178"&lt;/span&gt;);&lt;br /&gt;    progress.setTotal(totalLabels);&lt;br /&gt;    progress.setAnimation(#AviPrint);&lt;br /&gt;&lt;br /&gt;    &lt;span class="rem"&gt;// &amp;lt;--- create excel fields in a worksheet&lt;/span&gt;&lt;br /&gt;    flds.Append(#LabelId, 8);&lt;br /&gt;    flds.Append(#English, 8);&lt;br /&gt;    flds.Append(#French, 8);&lt;br /&gt;    flds.Append(#Russian, 8);&lt;br /&gt;    rstAxa.Open();&lt;br /&gt;&lt;br /&gt;    xlApp = &lt;span class="kwrd"&gt;new&lt;/span&gt; COM(&lt;span class="str"&gt;'Excel.Application'&lt;/span&gt;);&lt;br /&gt;    xlApp.Visible(&lt;span class="kwrd"&gt;false&lt;/span&gt;);&lt;br /&gt;    wbks = xlApp.Workbooks();&lt;br /&gt;    wbk  = wbks.Add();&lt;br /&gt;    wkss = wbk.Worksheets();&lt;br /&gt;    wks  = wkss.Item(1);&lt;br /&gt;    wks.Name(&lt;span class="str"&gt;"Labels"&lt;/span&gt;);&lt;br /&gt;    rng  = wks.Range(&lt;span class="str"&gt;'A1'&lt;/span&gt;);&lt;br /&gt;    flds = rstAxa.Fields();&lt;br /&gt;    iMax = flds.Count() - 1;&lt;br /&gt;    &lt;span class="kwrd"&gt;for&lt;/span&gt; (i = 0; i &amp;lt;= iMax; i += 1)&lt;br /&gt;    {&lt;br /&gt;        fld = flds.Item(i);&lt;br /&gt;        cell = rng.Offset(0, i);&lt;br /&gt;        cell.Value2(fld.Name());&lt;br /&gt;    }&lt;br /&gt;    rngCR = rng.CurrentRegion();&lt;br /&gt;    font = rngCR.Font();&lt;br /&gt;    font.Bold(&lt;span class="kwrd"&gt;true&lt;/span&gt;);&lt;br /&gt;    cell = rng.Offset(1, 0);&lt;br /&gt;    &lt;span class="rem"&gt;// &amp;lt;--- end of creating of excel fields in a worksheet&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    lId = lEn.searchFirst(&lt;span class="str"&gt;''&lt;/span&gt;);&lt;br /&gt;    &lt;span class="kwrd"&gt;while&lt;/span&gt; (lId)&lt;br /&gt;    {&lt;br /&gt;        &lt;span class="kwrd"&gt;if&lt;/span&gt; (lEn.moduleId(lId) == #LayerId) &lt;span class="rem"&gt;// The particular label file&lt;/span&gt;&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="rem"&gt;// print to excel&lt;/span&gt;&lt;br /&gt;            progress.incCount();&lt;br /&gt;            rstAxa.AddNew();&lt;br /&gt;            fld = flds.Item(#LabelId);  fld.Value(lId);&lt;br /&gt;            fld = flds.Item(#English);  fld.Value(lEn.extractString(lId));&lt;br /&gt;            fld = flds.Item(#French);   fld.Value(lFr.extractString(lId));&lt;br /&gt;            fld = flds.Item(#Russian);  fld.Value(lRu.extractString(lId));&lt;br /&gt;            rstAxa.Update();&lt;br /&gt;        }&lt;br /&gt;        lId = lEn.searchNext();&lt;br /&gt;    }&lt;br /&gt;    cell.CopyFromRecordset(rstAxa);&lt;br /&gt;    progress.kill();&lt;br /&gt;    &lt;span class="rem"&gt;// format excel worksheet&lt;/span&gt;&lt;br /&gt;    rngCR = rng.CurrentRegion();&lt;br /&gt;    entCol = rngCR.EntireColumn();&lt;br /&gt;    entCol.AutoFit();&lt;br /&gt;    cell.Select();&lt;br /&gt;    actWin = xlApp.ActiveWindow();&lt;br /&gt;    actWin.FreezePanes(&lt;span class="kwrd"&gt;true&lt;/span&gt;);&lt;br /&gt;    rstAxa.Close();&lt;br /&gt;    xlApp.Visible(&lt;span class="kwrd"&gt;true&lt;/span&gt;);&lt;br /&gt;    wbk.SaveAs(&lt;span class="str"&gt;"Labels from "&lt;/span&gt;+#LayerId+ &lt;span class="str"&gt;" in "&lt;/span&gt;+#English+&lt;span class="str"&gt;", "&lt;/span&gt;+#French+&lt;span class="str"&gt;", "&lt;/span&gt;+#Russian+&lt;span class="str"&gt;".xls"&lt;/span&gt;);&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-8391086754058915938?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/8391086754058915938/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=8391086754058915938' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/8391086754058915938'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/8391086754058915938'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2010/03/all-lables-from-given-layer-in-given.html' title='All Lables from given Layer in given Languages'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-860202182764015369</id><published>2010-03-16T14:36:00.002-04:00</published><updated>2010-03-16T14:39:44.816-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='form'/><category scheme='http://www.blogger.com/atom/ns#' term='AOT'/><title type='text'>Form Digger</title><content type='html'>&lt;a href="http://www.axaptapedia.com/FormDigger"&gt;FormDigger &lt;/a&gt;is a very useful tool. It facilitates form development substantially by allowing to search fields either by its name or label, &amp;nbsp;highligt them on the form, take a snapshot of it, and jump directly to AOT.&lt;br /&gt;&lt;br /&gt;It should be installed as an XPO project &amp;nbsp;and then called by Alt-~.&lt;br /&gt;&lt;br /&gt;Highly recommended!&lt;br /&gt;&lt;br /&gt;By the way, this is the &lt;i&gt;second &lt;/i&gt;powerful tool I use created by the same AX master - &lt;a href="http://www.blogger.com/profile/17562944195203778443"&gt;Evgeny Arlionak&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-860202182764015369?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/860202182764015369/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=860202182764015369' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/860202182764015369'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/860202182764015369'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2010/03/form-digger.html' title='Form Digger'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-2997503972441735406</id><published>2010-03-08T09:38:00.001-05:00</published><updated>2010-03-08T09:39:21.543-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='resume'/><category scheme='http://www.blogger.com/atom/ns#' term='job'/><title type='text'>Как проверяются рекомендации кандидата</title><content type='html'>Если вы, как кандидат, грамотно составили своё резюме и написали эффективное сопроводительное письмо, провели работу по их рассылке, добились собеседования и успешно его прошли, то вполне вероятно, что следующим этапом на трудном пути получения работы станет проверка ваших рекомендаций.&lt;br /&gt;&lt;br /&gt;Вполне логично и обоснованно, что компания, рассматривающая вас как потенциального сотрудника, в первую очередь хочет получить адекватного человека и члена коллектива, а не просто грамотного специалиста. Разумеется, соответствие требованиям вакансии, условиям работы, ценностям компании и т.д. и т.п. определяется целым рядом критериев и может варьироваться достаточно широко, но определённые моменты безусловно являются базовыми, и сегодня мы их рассмотрим на примере.&lt;br /&gt;&lt;br /&gt;При своём последнем трудоустройстве я воспользовался услугами кадрового агентства, которое после нескольких собеседований со мной одному из моих бывших руководителей позвонило, а другому направило письмо следующего содержания (перевод с английского): &lt;br /&gt;&lt;br /&gt;&lt;i&gt;Уважаемая NN!&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Мне необходимо проверить рекомендации имярёк и я была бы очень благодарна, если бы Вы могли ответить на несколько вопросов о нём и его работе.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Каковы были его основные обязанности: задачи, размер проектов, техническое окружение и т.д.?&lt;/li&gt;&lt;li&gt;Опишите его вклад в командной/проектной работе: основные достижения  и результаты.&lt;/li&gt;&lt;li&gt;Как бы Вы описали его отношение к работе: пунктуальность, организованность, мотивацию?&lt;/li&gt;&lt;li&gt;Как бы Вы описали его навыки общения, устные и письменные?&lt;/li&gt;&lt;li&gt;Как он реагирует на критику?&lt;/li&gt;&lt;li&gt;Как бы Вы описали его характер?&lt;/li&gt;&lt;li&gt;Как он ладит с другими членами команды, руководством, клиентами, пользователями?&lt;/li&gt;&lt;li&gt;На что бы Вы посоветовали обратить внимание его будущему руководителю для достижения наилучших результатов от работы с ним?&lt;/li&gt;&lt;li&gt;Рекомендовали бы Вы его нанимать на работу? Да или нет и почему?&lt;/li&gt;&lt;li&gt;Как бы Вы оценили его производительность в команде/проекте: отлично, хорошо, средне, плохо и почему?&lt;/li&gt;&lt;li&gt;Общие комментарии – всё, что Вы хотели бы добавить о его характере или профессионализме.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Можем ли мы предоставить Ваши рекомендации кандидату, а также другим потенциальным его нанимателям?&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Спасибо.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Как видим, вопросы достаточно серьёзные и, в общем-то, требующие определённого труда и времени на развёрнутые ответы. Очевидно, что люди, рекомендация которых интересует потенциальных нанимателей в первую очередь,  – это ваши бывшие непосредственные руководители – чем выше по иерархии, тем лучше. Часто предоставление рекомендаций регламентировано политикой компании и может осуществляться лишь отделом кадров или первыми руководителями.&lt;br /&gt;&lt;br /&gt;Разумеется, времени у них на подобное общение не очень много, поэтому в большинстве случаев дело скорее всего ограничивается коротким телефонным звонком. Тем не менее, эта часть поиска работы является очень важной: было бы глупо, пройдя все этапы, не получить работу из-за нелестного отзыва от бывшего руководителя. Поэтому имеет смысл озаботиться подготовкой своих рекомендаций заранее. &lt;br /&gt;&lt;br /&gt;Понятно, что ситуации в жизни бывают разные, и не всегда удобно или возможно получить хороший отзыв от бывшего начальника. В таком случае, рекомендации других ваших коллег или партнёров могут стать альтернативой. Я, например, даже использовал рекомендации, полученные в сети LinkedIn.com. Если же вы не уверены в «качестве» какой-то своей рекомендации, лучше её совсем не предоставлять для проверки. &lt;br /&gt;&lt;br /&gt;В целом же, если вы добрались до этапа проверки рекомендаций, то это говорит о том, что вы близки к получению работы как никогда.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-2997503972441735406?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/2997503972441735406/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=2997503972441735406' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/2997503972441735406'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/2997503972441735406'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2010/03/blog-post_08.html' title='Как проверяются рекомендации кандидата'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-178690280914625501</id><published>2010-03-08T09:35:00.000-05:00</published><updated>2010-03-08T09:35:44.531-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='resume'/><category scheme='http://www.blogger.com/atom/ns#' term='job'/><title type='text'>Типовые вопросы на собеседовании и советы кандидату</title><content type='html'>(продолжаю делиться опытом по поиску работы отсюда — туда)&lt;br /&gt;&lt;br /&gt;Как известно, поиск работы – это само по себе работа, сложный и многоэтапный процесс. Чтобы успешно его пройти до самого конца и получить желанную работу, следует хорошо понимать каждый из этапов: от поиска вакансий, написания резюме и совпроводительных писем до переговоров на тему зарплаты. Понимание, в свою очередь, позволит хорошо подготовиться, а значит работать более эффективно. Как говорится, тяжело в леченье – легко в гробу.&lt;br /&gt;&lt;br /&gt;Безусловно кульминационным и определяющим моментом процесса является собеседование, или, как его сейчас называют на западный манер, – &lt;i&gt;интервью&lt;/i&gt;. Мне всё же термин «собеседование» кажется более подходящим, так как данный вид общения предполагает вопросы с обеих сторон: нанимателя и претендента на вакансию. О вопросах к работодателю, которые стоит подготовить кандидату на должность, я расскажу как-нибудь в другой раз, а здесь же я хотел бы привести примеры реальных вопросов, к которым мой кадровый агент рекомендовал мне подготовиться перед встречей с будущим (уже теперешним) работодателем. &lt;br /&gt;&lt;br /&gt;Сразу хочу сказать, что эти вопросы не по предметной части, а, скажем так, общие. Понятно, что задают их кадровики, и как бы глупо эти вопросы ни звучали, на них нужно ответить, чтобы перейти на следующий уровень. В том или ином виде они попадались мне на всех моих встречах по поводу трудоустройства. Ниже даны сами вопросы, а также рекомендации агента в переводе с французского.&lt;br /&gt;&lt;br /&gt;=============================================================&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Что Вы знаете о нашей компании? (Ознакомьтесь с сайтом компании и соберите ключевую информацию такую, как история, размер, профиль деятельности, корпоративны ценности и т.д.)&lt;/li&gt;&lt;li&gt;Почему Вы хотите работать в нашей компании, а не у одного из наших конкурентов или какой-то другой компании?&lt;/li&gt;&lt;li&gt;Расскажите вкратце, в чём заключается работа на позиции, на которую Вы претендуете.&lt;/li&gt;&lt;li&gt;Почему Вы считаете себя идеальным кандидатом на эту позицию?&lt;/li&gt;&lt;li&gt;Каковы Ваши сильные и слабые стороны?&lt;/li&gt;&lt;li&gt;Каковы Ваши профессиональные цели в карьерном плане? Кем Вы себя видите через 5 лет?&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Я рекомендую Вам обдумать эти вопросы и подготовить примеры из Вашего личного и профессионального опыта, которые могли бы подкрепить Ваши ответы на эти вопросы. Примеры КОНКРЕТНЫЕ, когда Вам приходилось сталкиваться со проблемными ситуациями, сложными клиентами, или когда Вам довелось решать технические вопросы в сжатые сроки и т.п.&lt;br /&gt;&lt;br /&gt;Постарайтесь давать ясные и чёткие, максимально информативные ответы.&lt;br /&gt;&lt;br /&gt;Очень важно, чтобы они (представители компании) чувствовали, что Вы умеете общаться с другими – коллегами и клиентами, доносить до них информацию; что Вы разносторонний, гибкий, мотивированный, динамичный; что Вы умеете решать проблемы в стрессовой обстановке; что Вы честный, серьёзный сотрудник и что Вы настроены работать в компании на протяжении длительного времени.&lt;br /&gt;&lt;br /&gt;Во время собеседования УЛЫБАЙТЕСЬ и будьте ДИНАМИЧНЫМ и ЗАИНТЕРЕСОВАННЫМ. Не забудьте выключить свой мобильный телефон, будьте на месте минут за 10 до начала собеседования, проследите за своим внешним видом (костюм, галстук), захватите Ваше резюме с собой, а также ручку и бумагу.&lt;br /&gt;=============================================================&lt;br /&gt;&lt;br /&gt;Все эти вопросы ясны, как день, а рекомендации очевидны, и мы слышали их не раз, но от того они актуальными быть не перестали. Один мой хороший друг, пузатый и лысый еврей, работающий ныне генеральным директором регионального филиала одной крупной Российской компании, на собеседовании на вопрос «Кем Вы себя видите через пять лет?» ответил: «стройным блондином». Так что не забывайте оставаться самим собой! Удачи на собеседовании!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-178690280914625501?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/178690280914625501/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=178690280914625501' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/178690280914625501'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/178690280914625501'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2010/03/blog-post.html' title='Типовые вопросы на собеседовании и советы кандидату'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-7904299639251753400</id><published>2010-03-03T10:51:00.000-05:00</published><updated>2010-03-03T10:51:38.149-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='resume'/><category scheme='http://www.blogger.com/atom/ns#' term='job'/><title type='text'>Как кадровые агентства читают резюме за 10 секунд и быстрее</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: 13px; line-height: 20px;"&gt;&lt;b&gt;Брэд Ремийар (Brad Remillard)&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Как кадровые агентства читают резюме за 10 секунд и быстрее.&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;(Перевод публикуется с любезного согласия автора, комментарии в скобках мои)&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;10-20 секунд на прочтение резюме?! – наверное, это покажется вам вызывающим. Некоторым кандидатам это даже кажется неуважительным – как же можно прочитать резюме за это время? Некоторые даже раздражаются на нас, специалистов по подбору персонала, когда мы говорим об этом. Надеюсь, эта статья поможет каждому понять, как же мы это делаем. Я понимаю, что не всем это понравится, и многие всё равно будут продолжать злиться, но, по крайней мере, вы сможете понять, как это происходит.&lt;br /&gt;&lt;br /&gt;Во-первых, я хотел бы уточнить, что занимаюсь подбором персонала на протяжении 30 лет. Уверен, за это время я рассмотрел не менее 500 000 резюме. Не могу этого доказать, но небезосновательно полагаю, что это так, ибо 46 резюме в день – это довольно среднее значение. Я помню, когда я анализировал и по сотне резюме в день и большую их часть – менее чем за 20 секунд. Я бы даже сказал, что в среднем на каждое уходило 5-7 секунд.&lt;br /&gt;&lt;br /&gt;Так что хочу заметить, что если вы слышите и читаете о «прочтении резюме за 20 секунд», то это не совсем верно, так как это даже скорее «&lt;i&gt;рассмотрение&lt;/i&gt;резюме за 20 секунд».&lt;br /&gt;&lt;br /&gt;Здесь я описываю мой подход к анализу сотен резюме за короткое время; остальные могут делать это по-другому, и я буду рад вашим комментариям (см. ниже ссылку на блог автора).&lt;br /&gt;&lt;br /&gt;Во-первых, я задаю иерархию&lt;a href="" name="habracut" style="color: #6da3bd;"&gt;&lt;/a&gt;&amp;nbsp;определённых пунктов, которые должны быть в резюме обязательно, иначе – ваше резюме бракуется. То есть, вначале я просто ставлю крыжики. В основном, 80% моего времени уходит на эту выбраковку (в оригинале «нокауты»). Бывают и исключения, но здесь я имеею дело с правилом 80/20. Крыжики не суммируются: если я обнаруживаю во время просмотра вашего резюме, что какой-то из пунктов в нём отсутствует, то я вас исключаю из дальнейшего процесса.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1. Место жительства.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Если мой заказчик находится в Лос-Анджелесе, а вы нет – до свиданья. Практически никто из клиентов не захочет оплачивать ваш переезд из своего кармана, да и не думаю, что для большинства из них оно того стоит. Особенно в больших мегаполисах вроде Лос-Анджелеса. Если им всё же необходимо рассмотреть переезд кандидата, так это только для позиции, требующей какого-то совершенно уникального опыта, наличествующего у единиц. Это я могу оценить примерно за секунду.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2. Отрасль&lt;/b&gt;&lt;br /&gt;Если мой заказчик из банковской сферы, а ваш опыт в основном в производстве – до свиданья. Эти две отрасли настолько разные, что клиент зачастую даже и обсуждать это не будет. Это верно в обоих направлениях: если вы работали в производстве, то я не собираюсь рассматривать кого-то из банковской сферы. 2-3 секунды, чтобы это определить.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3. Должностные обязанности.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Если я ищу кого-то в продажи, а вы не занимались продажами – до свиданья. В основном компании платят специалистам по подбору персонала за наиболее подходящих кандидатов. Мы никогда не ищем&amp;nbsp;&lt;i&gt;идеальных&lt;/i&gt;, но мы должны искать наиболее близких к идеальным. Клиентам не нужны специалисты по найму, которые ищут им кого-то с совершенно неподходящим профилем должностных обязанностей. 2-3 секунды, чтоб определиться с этим пунктом.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;4. Уровень.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Если я ищу кандидата на должность вице-президента, а ваша должность – «менеджер среднего звена», и вы никогда не работали на уровне вице-президента – до свиданья. Бывают, конечно, и исключения, но вспомним о правиле 80/20. Опять же, заказчик мне платит за наиболее подходящего кандидата. В основном, это слишком большой прыжок с уровня руководителя среднего звена на уровень вице-президента, при прочих равных условиях. Обратное также верно: если я ищу кандидата на позицию менеджера, а вы вице-президент – до свиданья. Да, я знаю, что вы можете квалифицированно выполнять работу менеджера, но ведь понятно, что вы уже сделали карьеру в прошлом. Большая часть клиентов и специалистов по подбору персонала не горит желанием рисковать потерять вас на этой позиции, если откроется позиция вице-президента. Меньше 5 секунд, чтобы это понять.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;5. Недавний опыт.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Частичный перехлёст в этом пункте. Если я ищу кого-то с опытом международных продаж в аэрокосмической отрасли, а последний раз подобную позицию в индустрии вы занимали 20 лет назад, работая с тех пор в рознице, – до свиданья. Я могу найти людей с более подходящим опытом, и это именно то, чего ждёт от меня мой заказчик. 5 секунд на это.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;6. Образование.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Нравится вам это или нет, но я буду работать только с теми, кто закончил колледж, а в большинстве случаев – имеет диплом магистра. В основном это потому, что, как я уже указал выше, мне нужны для моих клиентов самые лучшие кандидаты. Разумеется, я понимаю, что само по себе образование ещё не означает, что кандидат – лучший, но это один из прочих определяющих факторов. К тому же все мои клиенты требуют кандидатов как минимум с дипломом бакалавра.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;7. «Летуны».&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Если вы сменили 6 работ за последние 4 года или у вас трудовая книжка «летуна» – до свиданья. Я понимаю, что есть причины для смены работ, и эти случаи попадают в те самые 20% правила 80/20. Я не могу определить понятие «летун», но я сразу его вычисляю, когда вижу в резюме. 3– 5 секунд.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;8. Функциональное резюме.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Я их не читаю. Это очевидно, что функциональное резюме имеет своей целью скыть что-то, и я крайне редко трачу время на то, чтобы с ними разбираться. 1 секунда.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;9. Очевидные вещи.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Резюме с опечатками, плохо оформленные, с орфографическими ошибками, излишне длинные, многословные и бессвязные. Если после их прочтения я всё равно не могу понять, чем вы занимаетесь, – до свиданья. 5-10 секунд.&lt;br /&gt;&lt;br /&gt;После всего этого 80-100% резюме отбрасываются. Если какие-то всё же остаются, то я беру их и уже действительно внимательно читаю.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: 13px; line-height: 20px;"&gt;-------------------------------------------------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: 13px; line-height: 20px;"&gt;Брэд Ремийар, руководящий специалист по подбору персонала с более чем 25-летним стажем, провёл более 50 000 собеседований и участвовал в более чем 1 000 прямых поисков кандидатов (хедхантинг). Дипломированный бухгалтер и выпускник Калифорнийского государственного университета в г. Фуллертоне, Брэд ранее занимал пост президента компании CJA Executive Search, которая была признана одной из ведущих рекрутинговых фирм Южной Калифорнии. Брэд осуществлял подбор кандидатов по всей стране для компаний из списка Fortune 500. Его опыт включает в себя работу по вакансиям в высшем руководящем составе (CEO, COO, GM), продажах и маркетинге, производстве и операционном управлении, бухгалтерии, финансах, кадровом управлении и информационных технологиях.&lt;br /&gt;&lt;br /&gt;Узнать о Брэде подробнее можно на его сайте:&amp;nbsp;&lt;a href="http://impacthiringsolutions.com/" style="color: #990099;"&gt;http://impacthiringsolutions.com&lt;/a&gt;, а написать свои комментарии и почитать другие его статьи – в его блоге:&lt;a href="http://impacthiringsolutions.com/careerblog/" style="color: #990099;"&gt;http://impacthiringsolutions.com/careerblog/&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Оригинал статьи находится по адресу:&amp;nbsp;&lt;a href="http://www.higherbracket.ca/article_recruiters_ten_second_resume_read_br.php" style="color: #990099;"&gt;http://www.higherbracket.ca/article_recruiters_ten_second_resume_read_br.php&lt;/a&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-7904299639251753400?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/7904299639251753400/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=7904299639251753400' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/7904299639251753400'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/7904299639251753400'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2010/03/10.html' title='Как кадровые агентства читают резюме за 10 секунд и быстрее'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-9124745783315164625</id><published>2010-02-15T16:28:00.001-05:00</published><updated>2010-02-16T13:27:58.906-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='x++'/><title type='text'>Insert containers into container</title><content type='html'>A short note about the difference between inserting and adding containers to a container.&lt;br /&gt;&lt;br /&gt;If we use &lt;b&gt;+=&lt;/b&gt; operator to add new containers to a container, they will be added as a consequence of usual values (plainly).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; SisTestContainer(Args _args)&lt;br /&gt;{&lt;br /&gt;    container   c;&lt;br /&gt;    container   pair;&lt;br /&gt;    &lt;span class="kwrd"&gt;int&lt;/span&gt;         i;&lt;br /&gt;    ;&lt;br /&gt;    pair = [1, &lt;span class="str"&gt;"first"&lt;/span&gt;];&lt;br /&gt;    c += pair;&lt;br /&gt;    pair = [2, &lt;span class="str"&gt;"second"&lt;/span&gt;];&lt;br /&gt;    c += pair;&lt;br /&gt;    pair = [3, &lt;span class="str"&gt;"third"&lt;/span&gt;];&lt;br /&gt;    c += pair;&lt;br /&gt;&lt;br /&gt;    infoLog.add(Exception::Info, strfmt(&lt;span class="str"&gt;"conlen %1"&lt;/span&gt;, conlen(c)));&lt;br /&gt;    &lt;br /&gt;    &lt;span class="kwrd"&gt;for&lt;/span&gt; (i = 0; i&amp;lt;= conLen(c);i++)&lt;br /&gt;    {&lt;br /&gt;        pair = conPeek(c, i);&lt;br /&gt;        infoLOg.add(Exception::Info, strfmt(&lt;span class="str"&gt;"%1; %2"&lt;/span&gt;, conpeek(pair,1),conpeek(pair,2)));&lt;br /&gt;    }&lt;/pre&gt;&lt;br /&gt;Output:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Message (16:25:24)&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;conlen 6&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;0; 0&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;1; 0&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;first; 0&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;2; 0&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;second; 0&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;3; 0&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;third; 0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;If we use &lt;b&gt;conins()&lt;/b&gt; operator, new containers will be added as containers (structured by pairs).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; SisTestContainer(Args _args)&lt;br /&gt;{&lt;br /&gt;    container   c;&lt;br /&gt;    container   pair;&lt;br /&gt;    &lt;span class="kwrd"&gt;int&lt;/span&gt;         i;&lt;br /&gt;    ;&lt;br /&gt;    pair = [1, &lt;span class="str"&gt;"first"&lt;/span&gt;];&lt;br /&gt;    c = conins(c, 1, pair);&lt;br /&gt;    pair = [2, &lt;span class="str"&gt;"second"&lt;/span&gt;];&lt;br /&gt;    c = conins(c, 2, pair);&lt;br /&gt;    pair = [3, &lt;span class="str"&gt;"third"&lt;/span&gt;];&lt;br /&gt;    c = conins(c, 3, pair);&lt;br /&gt;    &lt;br /&gt;    infoLog.add(Exception::Info, strfmt(&lt;span class="str"&gt;"conlen %1"&lt;/span&gt;, conlen(c)));&lt;br /&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;for&lt;/span&gt; (i = 1; i&amp;lt;= conLen(c); i++)&lt;br /&gt;    {&lt;br /&gt;        pair = conPeek(c, i);&lt;br /&gt;        infoLOg.add(Exception::Info, strfmt(&lt;span class="str"&gt;"%1; %2"&lt;/span&gt;, conpeek(pair,1),conpeek(pair,2)));&lt;br /&gt;    }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Output:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Message (16:10:17)&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;conlen 3&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;1; first&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;2; second&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;3; third&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;P.S.: as &lt;a href="http://axforum.info/forums/member.php?u=243"&gt;Dron AKA andy&lt;/a&gt; &lt;a href="http://axforum.info/forums/showthread.php?t=32044"&gt;mentioned&lt;/a&gt;, the following syntax does the same:&lt;br /&gt;&lt;br /&gt;c += [pair];&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-9124745783315164625?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/9124745783315164625/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=9124745783315164625' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/9124745783315164625'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/9124745783315164625'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2010/02/insert-containers-into-container.html' title='Insert containers into container'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-5542041416296051440</id><published>2010-02-09T10:47:00.001-05:00</published><updated>2010-02-09T10:48:16.639-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='installation'/><category scheme='http://www.blogger.com/atom/ns#' term='aos'/><category scheme='http://www.blogger.com/atom/ns#' term='windows server 2003'/><title type='text'>Error 1075: The dependency service does not exist or has been marked for deletion</title><content type='html'>I do not know why but my Microsoft Windows Server 2003 SP2&amp;nbsp;unexpectedly refused to restart AOS instance. It gave the error:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Error 1075: The dependency service does not exist or has been marked for deletion.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;It is strange because the only thing in the dependcies was Remote Procedure Call (RPC). No events in the logs.&lt;br /&gt;&lt;br /&gt;I deinstall the AOS instance and re-install it &amp;nbsp;with SP2 right away with the same settings&amp;nbsp;without restarting the server. Now it starts fine.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-5542041416296051440?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/5542041416296051440/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=5542041416296051440' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/5542041416296051440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/5542041416296051440'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2010/02/error-1075-dependency-service-does-not.html' title='Error 1075: The dependency service does not exist or has been marked for deletion'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-4796422414582302159</id><published>2010-02-08T14:38:00.000-05:00</published><updated>2010-02-08T14:38:47.658-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='batch processing'/><category scheme='http://www.blogger.com/atom/ns#' term='ax'/><title type='text'>Error: Multiple calls to CodeAccessPermission.Assert</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Multiple calls to CodeAccessPermission.Assert&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;(S)\Classes\SkipAOSValidationPermission\assert&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;(S)\Classes\BatchRun\runJob - line 166&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;(S)\Classes\BatchRun\do - line 54&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;(C)\Forms\BatchRun\Methods\doBatch - line 18&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Sometimes I got this error while working with &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Change based alerts&lt;/span&gt; batch processing. After that the status of the related job in batch list changed to &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Executing&lt;/span&gt;, and the only way to get rid of it was deleting that job.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This issue arises in &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;[Classes]BatchRun.runJob&lt;/span&gt; method because of absence of closing &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;revertAssert()&lt;/span&gt; method in case of exceptions after calling &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;runas()&lt;/span&gt; method.&lt;br /&gt;&lt;br /&gt;So, my solution is to comment the existing call of &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;revertAssert()...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;if&lt;/span&gt; (batchClass.runsImpersonated())&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="rem"&gt;// Ok to assert here because the user name comes from&lt;/span&gt;&lt;br /&gt;            &lt;span class="rem"&gt;// the batch table&lt;/span&gt;&lt;br /&gt;            runAsPermission = &lt;span class="kwrd"&gt;new&lt;/span&gt; RunAsPermission(batch.CreatedBy);&lt;br /&gt;            runAsPermission.assert();&lt;br /&gt;            &lt;span class="rem"&gt;// BP Deviation Documented&lt;/span&gt;&lt;br /&gt;            runas(batch.CreatedBy,&lt;br /&gt;                classnum(BatchRun),&lt;br /&gt;                staticmethodstr(BatchRun, runJobStatic),&lt;br /&gt;                [batchId]);&lt;br /&gt;&lt;br /&gt;           &lt;span class="rem"&gt;// Alexey Voytsekhovskiy (SIS) (2010/02/08) (Demande #0074)&lt;/span&gt;&lt;br /&gt;           &lt;span class="rem"&gt;// CodeAccessPermission::revertAssert();&lt;/span&gt;&lt;br /&gt;        }&lt;br /&gt;        &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;        {&lt;br /&gt;            BatchRun::runJobStatic([batchId]);&lt;br /&gt;        }&lt;/pre&gt;&lt;br /&gt;and move it after catching all kind of exceptions:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;catch&lt;/span&gt; (Exception::UpdateConflictNotRecovered)&lt;br /&gt;    {&lt;br /&gt;        isErrorCaught   = &lt;span class="kwrd"&gt;true&lt;/span&gt;;&lt;br /&gt;        exception       = Exception::UpdateConflictNotRecovered;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span class="rem"&gt;// Alexey Voytsekhovskiy (SIS) (2010/02/08) (Demande #0074)&lt;/span&gt;&lt;br /&gt;    &lt;span class="rem"&gt;// in case of exception Permssion should be revert anyway!!&lt;/span&gt;&lt;br /&gt;    CodeAccessPermission::revertAssert();&lt;/pre&gt;&lt;br /&gt;It allows to avoid multiple calls to CodeAccessPermission.Assert (there is another call far in this method) and see the log of the job ended with an error.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_y4-EcQ-sclI/S3BnC3iSx8I/AAAAAAAAERk/JYPzaz1PrfM/s1600-h/ScreenHunter_10+Feb.+08+14.33.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="180" src="http://4.bp.blogspot.com/_y4-EcQ-sclI/S3BnC3iSx8I/AAAAAAAAERk/JYPzaz1PrfM/s400/ScreenHunter_10+Feb.+08+14.33.gif" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;By the way, &lt;a href="http://dynamics-ax-live.blogspot.com/2009/11/error-multiple-calls-of.html"&gt;here is a short and sweet trick&lt;/a&gt; with multiple calls if needed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-4796422414582302159?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/4796422414582302159/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=4796422414582302159' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/4796422414582302159'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/4796422414582302159'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2010/02/error-multiple-calls-to.html' title='Error: Multiple calls to CodeAccessPermission.Assert'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_y4-EcQ-sclI/S3BnC3iSx8I/AAAAAAAAERk/JYPzaz1PrfM/s72-c/ScreenHunter_10+Feb.+08+14.33.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-7374088520444424525</id><published>2010-01-05T12:22:00.000-05:00</published><updated>2010-01-05T12:22:59.719-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='manual'/><category scheme='http://www.blogger.com/atom/ns#' term='morphx'/><title type='text'>MorphX IT by Steen Andreasen</title><content type='html'>MORPHX IT by &lt;a href="http://www.steenandreasen.com/"&gt;Steen Andreasen&lt;/a&gt; helps me a lot. I would like to have it at hand.&lt;br /&gt;&lt;br /&gt;Just to remind &lt;a href="http://www.lulu.com/items/volume_49/340000/340213/3/print/340213.pdf"&gt;the link to this very useful book in English&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;There are the &lt;a href="http://www.lulu.com/morphxit"&gt;Russian and Danish versions&lt;/a&gt; for free downloading in PDF format.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-7374088520444424525?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/7374088520444424525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=7374088520444424525' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/7374088520444424525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/7374088520444424525'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2010/01/morphx-it-by-steen-andreasen.html' title='MorphX IT by Steen Andreasen'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-2629950616118518223</id><published>2009-12-21T11:30:00.005-05:00</published><updated>2009-12-21T11:57:01.170-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mask'/><category scheme='http://www.blogger.com/atom/ns#' term='formatting'/><category scheme='http://www.blogger.com/atom/ns#' term='form'/><category scheme='http://www.blogger.com/atom/ns#' term='user interface'/><category scheme='http://www.blogger.com/atom/ns#' term='stringedit'/><title type='text'>Phone Number Formatting Mask</title><content type='html'>It is pity but AX does not have the mask functionality on &lt;span style="font-style:italic;"&gt;StringEdit &lt;/span&gt;fields. (versions 3.x- 4.x at least)&lt;br /&gt;&lt;br /&gt;I changed the standard functionality for &lt;span style="font-style:italic;"&gt;Phone &lt;/span&gt;field of &lt;span style="font-style:italic;"&gt;Customers &lt;/span&gt;form so that the input phone number will be formatted as (xxx) xxx-xxxx[x]&lt;br /&gt;&lt;br /&gt;For example, if one input &lt;span class="Apple-style-span"  style="font-family:arial;"&gt;1234567890 &lt;/span&gt;it will be presented and saved as &lt;span class="Apple-style-span"  style="font-family:arial;"&gt;(123) 456-7890&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;img style="cursor:pointer; cursor:hand;width: 280px; height: 182px;" src="http://2.bp.blogspot.com/_y4-EcQ-sclI/Sy-koW63XYI/AAAAAAAAD0Y/D6-VeCBkgiE/s400/ScreenHunter_22+Dec.+21+11.34.gif" border="0" alt="" id="BLOGGER_PHOTO_ID_5417729890004196738" /&gt; ===&gt; &lt;img style="cursor:pointer; cursor:hand;width: 277px; height: 179px;" src="http://3.bp.blogspot.com/_y4-EcQ-sclI/Sy-kohhXuFI/AAAAAAAAD0g/15mWA_6_4dI/s400/ScreenHunter_23+Dec.+21+11.34.gif" border="0" alt="" id="BLOGGER_PHOTO_ID_5417729892850055250" /&gt;&lt;br /&gt;&lt;br /&gt;For &lt;span class="Apple-style-span"  style="font-family:arial;"&gt;12fs3.45*6.78--90&lt;/span&gt; it will be presented and saved as &lt;span class="Apple-style-span"  style="font-family:arial;"&gt;(123) 456-7890&lt;/span&gt; with no non-numericals.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;12345678901234567 &lt;/span&gt;will be as &lt;span class="Apple-style-span"  style="font-family:arial;"&gt;(123) 456-7890123456&lt;/span&gt; it does not truncate the tail.&lt;br /&gt;&lt;br /&gt;If finally it does not look like (xxx) xxx-xxxx the system alerts the user about that however the input value will be saved.&lt;br /&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 212px;" src="http://3.bp.blogspot.com/_y4-EcQ-sclI/Sy-ko5Oqz9I/AAAAAAAAD0o/1eOcsRnf_fk/s400/ScreenHunter_24+Dec.+21+11.35.gif" border="0" alt="" id="BLOGGER_PHOTO_ID_5417729899214065618" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The following methods were added/changed:&lt;br /&gt;&lt;br /&gt;ClassDeclaration of Customers form&lt;br /&gt;&lt;span class="Apple-style-span"   style="font-family:monospace;font-size:100%;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; white-space: pre;"&gt;&lt;span class="Apple-style-span"   style="font-family:Georgia, serif;font-size:130%;"&gt;&lt;span class="Apple-style-span" style="font-size: 16px; white-space: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; FormRun extends ObjectRun&lt;br /&gt;{&lt;br /&gt;    ...&lt;br /&gt;  &lt;br /&gt;   boolean sisValidateCalled;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;StringEdit Phone field methods:&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace; font-size: 13px; white-space: pre; "&gt;&lt;span class="kwrd"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: monospace; font-size: 13px; white-space: pre; "&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; enter()&lt;/span&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;{&lt;br /&gt;   super();&lt;br /&gt;   sisValidateCalled  = &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;br /&gt;}&lt;/pre&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;pre class="csharpcode"&gt;&lt;span class="Apple-style-span"   style="font-family:Georgia, serif;font-size:130%;"&gt;&lt;span class="Apple-style-span" style="font-size: 16px; white-space: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; boolean validate()&lt;br /&gt;{&lt;br /&gt;   #define.CorrectPhoneLettersNumber(14)&lt;br /&gt;   boolean ret;&lt;br /&gt;   &lt;span class="kwrd"&gt;int&lt;/span&gt; length;&lt;br /&gt;   Phone newPhone;&lt;br /&gt;   ;&lt;br /&gt;   ret = super();&lt;br /&gt;&lt;br /&gt;   &lt;span class="rem"&gt;// creates new phone number in the format (xxx) xxx-xxxx[x]&lt;/span&gt;&lt;br /&gt;   newPhone = SISTools::formatPhoneNumber(&lt;span class="kwrd"&gt;this&lt;/span&gt;.text());&lt;br /&gt;   length = strlen(newPhone);&lt;br /&gt;&lt;br /&gt;   &lt;span class="kwrd"&gt;if&lt;/span&gt; (length != #CorrectPhoneLettersNumber)&lt;br /&gt;       checkFailed(strfmt(&lt;span class="str"&gt;"Phone numbers should be like: (xxx) xxx-xxxx"&lt;/span&gt;));&lt;br /&gt;&lt;br /&gt;   CustTable.Phone = newPhone;&lt;br /&gt;   CustTable_ds.write();&lt;br /&gt;   sisValidateCalled  = &lt;span class="kwrd"&gt;true&lt;/span&gt;;&lt;br /&gt;   &lt;span class="kwrd"&gt;return&lt;/span&gt; ret;&lt;br /&gt;}&lt;/pre&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; boolean leave()&lt;br /&gt;{&lt;br /&gt;boolean ret;&lt;br /&gt;&lt;br /&gt;   ret = super();&lt;br /&gt;&lt;br /&gt;   &lt;span class="kwrd"&gt;if&lt;/span&gt; (!sisValidateCalled)&lt;br /&gt;       &lt;span class="kwrd"&gt;this&lt;/span&gt;.validate();&lt;br /&gt;&lt;br /&gt;   &lt;span class="kwrd"&gt;return&lt;/span&gt; ret;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;SISTools class (some collection of utilities)&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace; font-size: 13px; white-space: pre; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: monospace; font-size: 13px; white-space: pre; "&gt;// creates new phone number in the format (xxx) xxx-xxxx[x]&lt;/span&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; Phone formatPhoneNumber(Phone _phone = &lt;span class="str"&gt;""&lt;/span&gt;)&lt;br /&gt;{&lt;br /&gt;   Phone newPhone = &lt;span class="str"&gt;""&lt;/span&gt;;&lt;br /&gt;   str &lt;span class="kwrd"&gt;char&lt;/span&gt;;&lt;br /&gt;   &lt;span class="kwrd"&gt;int&lt;/span&gt; length = strlen(_phone);&lt;br /&gt;   &lt;span class="kwrd"&gt;int&lt;/span&gt; i;&lt;br /&gt;   container numbers = [&lt;span class="str"&gt;'0'&lt;/span&gt;,&lt;span class="str"&gt;'1'&lt;/span&gt;,&lt;span class="str"&gt;'2'&lt;/span&gt;,&lt;span class="str"&gt;'3'&lt;/span&gt;,&lt;span class="str"&gt;'4'&lt;/span&gt;,&lt;span class="str"&gt;'5'&lt;/span&gt;,&lt;span class="str"&gt;'6'&lt;/span&gt;,&lt;span class="str"&gt;'7'&lt;/span&gt;,&lt;span class="str"&gt;'8'&lt;/span&gt;,&lt;span class="str"&gt;'9'&lt;/span&gt;];&lt;br /&gt;   ;&lt;br /&gt;   &lt;span class="rem"&gt;// remove all non numbers from field text&lt;/span&gt;&lt;br /&gt;   &lt;span class="kwrd"&gt;for&lt;/span&gt; (i=1; i&amp;lt;=length; i++)&lt;br /&gt;   {&lt;br /&gt;       &lt;span class="kwrd"&gt;char&lt;/span&gt; = substr(_phone,i,1);&lt;br /&gt;       &lt;span class="kwrd"&gt;if&lt;/span&gt; (confind(numbers,&lt;span class="kwrd"&gt;char&lt;/span&gt;))&lt;br /&gt;       {&lt;br /&gt;           newPhone = newPhone + &lt;span class="kwrd"&gt;char&lt;/span&gt;;&lt;br /&gt;       }&lt;br /&gt;   }&lt;br /&gt;   length = strlen(newPhone);&lt;br /&gt;&lt;br /&gt;   &lt;span class="rem"&gt;// create new phone number in the format (xxx) xxx-xxxx from 1234567890&lt;/span&gt;&lt;br /&gt;   newPhone = &lt;span class="str"&gt;"("&lt;/span&gt; + substr(newPhone,1,3) + &lt;span class="str"&gt;") "&lt;/span&gt; + substr(newPhone,4,3) + &lt;span class="str"&gt;"-"&lt;/span&gt; + substr(newPhone,7, length-6);&lt;br /&gt;&lt;br /&gt;   &lt;span class="kwrd"&gt;return&lt;/span&gt; newPhone;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;Inspired by &lt;a href="http://www.mail-archive.com/development-axapta@yahoogroups.com/msg08328.html"&gt;Sonny Wibaba Adi&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-2629950616118518223?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/2629950616118518223/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=2629950616118518223' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/2629950616118518223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/2629950616118518223'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2009/12/phone-number-formatting-mask.html' title='Phone Number Formatting Mask'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_y4-EcQ-sclI/Sy-koW63XYI/AAAAAAAAD0Y/D6-VeCBkgiE/s72-c/ScreenHunter_22+Dec.+21+11.34.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-4426806628073207838</id><published>2009-12-04T08:40:00.005-05:00</published><updated>2009-12-15T09:05:23.470-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Events'/><category scheme='http://www.blogger.com/atom/ns#' term='delete'/><category scheme='http://www.blogger.com/atom/ns#' term='job'/><category scheme='http://www.blogger.com/atom/ns#' term='alert'/><title type='text'>Flush Events related tables quickly</title><content type='html'>Quick job to delete all records from Events related tables. Inspired by &lt;a href="http://www.opensubscriber.com/message/axapta-knowledge-village@yahoogroups.com/7003517.html"&gt;this posting of Nitesh Ranjan&lt;/a&gt;.&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; FlushEventInbox(Args _args)&lt;br /&gt;{&lt;br /&gt;  &lt;span class="rem"&gt;/*&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;    To implement Alert functionality, Dynamics AX uses following tables:&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;    EventParameters&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;    EventCompanyRule&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;    EventCUD&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;    EventInbox&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;      |&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;      |- EventInboxData&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;      |- EventRule&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;         |&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;         |-EventRuleData&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;         |-EventRuleField&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;         |-EventRuleIgnore&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;         |-EventRuleIgnoreAggregation&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;         |-EventRuleRel&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;            |&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;            |-EventRuleRelData&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;    */&lt;/span&gt;&lt;br /&gt;     EventRuleRelData EventRuleRelData;&lt;br /&gt;     EventRuleRel EventRuleRel;&lt;br /&gt;     EventRuleIgnoreAggregation EventRuleIgnoreAggregation;&lt;br /&gt;     EventRuleIgnore EventRuleIgnore;&lt;br /&gt;     EventRuleField EventRuleField;&lt;br /&gt;     EventRuleData EventRuleData;&lt;br /&gt;     EventRule EventRule;&lt;br /&gt;     EventInboxData EventInboxData;&lt;br /&gt;     EventInbox EventInbox;&lt;br /&gt;  ;&lt;br /&gt;  &lt;span class="kwrd"&gt;if&lt;/span&gt; (Box::okCancel(&lt;span class="str"&gt;"Flush all Events related table?"&lt;/span&gt;, DialogButton::Cancel, &lt;span class="str"&gt;"Confirm deletion"&lt;/span&gt;,&lt;br /&gt;      &lt;span class="str"&gt;"Delete all records from: delete_from EventRuleRelData, EventRuleRel,"&lt;/span&gt;&lt;br /&gt;      +&lt;span class="str"&gt;" EventRuleIgnoreAggregation, EventRuleIgnore, EventRuleField, EventRuleData,"&lt;/span&gt;&lt;br /&gt;      +&lt;span class="str"&gt;" EventRule, EventInboxData, EventInbox"&lt;/span&gt;) == DialogButton::Ok)&lt;br /&gt;      {&lt;br /&gt;          delete_from EventRuleRelData;&lt;br /&gt;          delete_from EventRuleRel;&lt;br /&gt;          delete_from EventRuleIgnoreAggregation;&lt;br /&gt;          delete_from EventRuleIgnore;&lt;br /&gt;          delete_from EventRuleField;&lt;br /&gt;          delete_from EventRuleData;&lt;br /&gt;          delete_from EventRule;&lt;br /&gt;          delete_from EventInboxData;&lt;br /&gt;          EventInbox.skipDeleteMethod(&lt;span class="kwrd"&gt;true&lt;/span&gt;);&lt;br /&gt;          EventInbox.skipDeleteActions(&lt;span class="kwrd"&gt;true&lt;/span&gt;);&lt;br /&gt;          delete_from EventInbox;&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;}&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-4426806628073207838?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/4426806628073207838/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=4426806628073207838' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/4426806628073207838'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/4426806628073207838'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2009/12/flush-events-related-tables-quickly.html' title='Flush Events related tables quickly'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-7349528562409641221</id><published>2009-12-01T12:16:00.003-05:00</published><updated>2009-12-01T12:29:55.101-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='class'/><category scheme='http://www.blogger.com/atom/ns#' term='compilation'/><category scheme='http://www.blogger.com/atom/ns#' term='AOT'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><title type='text'>How to add all descendant classes to a new project</title><content type='html'>I bumped into the problem of a class compilation with no licence for X++ source code.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Forward compile&lt;/span&gt; option is not enough to make my changes working. Thus I need to export-import all descendant classes as well as the class I changed - &lt;i&gt;FormLetter &lt;/i&gt;in my case.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I therefore have to add all these classes to my project. Natural laziness saved me again from this manual work.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I hope this short job inspired by system class &lt;i&gt;SysCompilerOutput &lt;/i&gt;and &lt;a href="http://axforum.info/forums/showthread.php?p=171162#post171162"&gt;miklenew's job from AXForum&lt;/a&gt; will help you in similar situations.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;// add &lt;span class="kwrd"&gt;to&lt;/span&gt; a &lt;span class="kwrd"&gt;new&lt;/span&gt; project all descendant classes &lt;span class="kwrd"&gt;for&lt;/span&gt; forward compilation&lt;br /&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; void SISCreateCompileForwardProject(Args _args)&lt;br /&gt;{&lt;br /&gt;   #AOT&lt;br /&gt;   str                     project = &lt;span class="rem"&gt;'SIS_CompileForward';&lt;/span&gt;&lt;br /&gt;   SysCompilerOutput       sysCompilerOutput;&lt;br /&gt;   Dictionary              dictionary      = &lt;span class="kwrd"&gt;new&lt;/span&gt; Dictionary();&lt;br /&gt;   DictClass               dictClass       = &lt;span class="kwrd"&gt;new&lt;/span&gt; DictClass(className2Id(&lt;span class="str"&gt;"Formletter"&lt;/span&gt;));&lt;br /&gt;   int                     numOfClasses    = dictionary.classCnt();&lt;br /&gt;   ProjectNode             sharedProjects;&lt;br /&gt;   ProjectNode             newProject;&lt;br /&gt;&lt;br /&gt;   void addToProjectForwardClass(DictClass _dictClass, Dictionary _dictionary, int _numOfClasses)&lt;br /&gt;   {&lt;br /&gt;   ClassNode           classNode;&lt;br /&gt;   DictClass           dictClassLoop;&lt;br /&gt;   DictClass           childClass;&lt;br /&gt;   int                 i;&lt;br /&gt;   ;&lt;br /&gt;       &lt;span class="kwrd"&gt;if&lt;/span&gt; (_dictClass)&lt;br /&gt;       {&lt;br /&gt;           classNode = infolog.findNode(#ClassesPath + #AOTDelimiter + _dictClass.name());&lt;br /&gt;&lt;br /&gt;           &lt;span class="kwrd"&gt;if&lt;/span&gt; (classNode)&lt;br /&gt;           {&lt;br /&gt;               newProject.addUtilNode(UtilElementType::&lt;span class="kwrd"&gt;Class&lt;/span&gt;, classNode.name());&lt;br /&gt;&lt;br /&gt;               &lt;span class="kwrd"&gt;for&lt;/span&gt; (i=1; i &lt;= _numOfClasses; i++)&lt;br /&gt;               {&lt;br /&gt;                   dictClassLoop = _dictionary.classObject(_dictionary.classCnt2Id(i));&lt;br /&gt;&lt;br /&gt;                   &lt;span class="kwrd"&gt;if&lt;/span&gt; (dictClassLoop.extend() == _dictClass.id())&lt;br /&gt;                   {&lt;br /&gt;                       childClass = &lt;span class="kwrd"&gt;new&lt;/span&gt; DictClass(dictClassLoop.id());&lt;br /&gt;                       addToProjectForwardClass(childClass, _dictionary, _numOfClasses);&lt;br /&gt;                   }&lt;br /&gt;               }&lt;br /&gt;           }&lt;br /&gt;       }&lt;br /&gt;   }&lt;br /&gt;   ;&lt;br /&gt;&lt;br /&gt;   sharedProjects = infolog.projectRootNode().AOTfindChild(&lt;span class="rem"&gt;'Shared');&lt;/span&gt;&lt;br /&gt;   sharedProjects.AOTAdd(project);&lt;br /&gt;   newProject =  sharedProjects.AOTfindChild(project);&lt;br /&gt;   newProject.loadForInspection();&lt;br /&gt;   newProject = newProject.getRunNode();&lt;br /&gt;   addToProjectForwardClass(dictClass, dictionary, numOfClasses);&lt;br /&gt;   newProject.AOTsave();&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-7349528562409641221?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/7349528562409641221/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=7349528562409641221' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/7349528562409641221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/7349528562409641221'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2009/12/how-to-add-all-descendant-classes-to.html' title='How to add all descendant classes to a new project'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-7527440963358416893</id><published>2009-10-20T09:30:00.000-04:00</published><updated>2009-10-20T09:31:08.306-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='funny'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><title type='text'>Microsoft Brain</title><content type='html'>Yesterday, I was at a &lt;a href="http://www.dotnetmontreal.com/dnn/Accueil/tabid/36/ModuleID/398/ItemID/46/mctl/EventDetails/language/en-CA/Default.aspx?selecteddate=19/10/2009"&gt;seminar&lt;/a&gt; about Microsoft Sharepoint Portal Services organized by &lt;a href="http://www.dotnetmontreal.com/dnn/"&gt;Montreal community of .Net developers&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The presentation was good and interesting as usual. At the end of it they raffled three books about Best Practice for MOSS and one licence of Visual Studio 2008. However, yet there was one other prize that I got - Microsoft brain.&lt;br /&gt;&lt;br /&gt;I am shocked how small it is...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://farm4.static.flickr.com/3100/3124849082_f72b2d26d6.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 500px; height: 334px;" src="http://farm4.static.flickr.com/3100/3124849082_f72b2d26d6.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;picture borrowed from somebody&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-7527440963358416893?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/7527440963358416893/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=7527440963358416893' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/7527440963358416893'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/7527440963358416893'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2009/10/microsoft-brain.html' title='Microsoft Brain'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm4.static.flickr.com/3100/3124849082_f72b2d26d6_t.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-5739426076445261508</id><published>2009-07-16T17:02:00.005-04:00</published><updated>2009-07-16T17:11:02.531-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Set 1920x1080x60 Resolution for LG LCD (VGA)</title><content type='html'>After installation of Ubuntu 9.04 I got a problem with my &lt;a href="http://www.insight.ca/apps/productpresentation/index.php?product_id=LGE42PABF&amp;amp;nbs_search=C%3D113%26K%3D%26S%3D1072%26lang%3Den-ca%26M%3DLGE%26P%3D2"&gt;LCD&lt;/a&gt; as a second monitor to my Toshiba laptop. The resolution should have been 1920x1080 as a maximum but was 1280x768 indeed.&lt;br /&gt;&lt;br /&gt;With a little help of &lt;a href="http://zubek.livejournal.com/"&gt;my friend&lt;/a&gt; and &lt;a href="https://wiki.ubuntu.com/X/Config/Resolution"&gt;this article&lt;/a&gt; I managed to add this absent line into xorg.conf file.&lt;br /&gt;&lt;br /&gt;I am not sure about all these numbers in the following script for Terminal but it works as a charm.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;sudo cvt 1920 1080 60 # 1920x1080 59.88 Hz (CVT 2.30MA) hsync: 74.56 kHz; pclk: 193.25 MHz Modeline "1920x1080"  193.25  1920 2056 2256 2592  1080 1203 1209 1245 -hsync +vsync&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;sudo xrandr --newmode "1920x1080"  193.25  1920 2056 2256 2592  1080 1203 1209 1245 -hsync +vsync&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;sudo xrandr --addmode VGA "1920x1080"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now, you can easily set it in Display Setting utility.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-5739426076445261508?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/5739426076445261508/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=5739426076445261508' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/5739426076445261508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/5739426076445261508'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2009/07/set-1920x1080x60-resolution-for-lg-lcd.html' title='Set 1920x1080x60 Resolution for LG LCD (VGA)'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-6321173504233318988</id><published>2009-05-05T23:49:00.002-04:00</published><updated>2009-05-05T23:51:35.915-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>Code Camp Montreal 2009:  Les meilleures pratiques de développement logiciel</title><content type='html'>Have you already registred? I have&lt;br /&gt;&lt;a href="http://codecampmontreal2009.eventbrite.com/"&gt;&lt;br /&gt;http://codecampmontreal2009.eventbrite.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="postbody"&gt;Informations&lt;br /&gt;Date : Samedi 30 mai 2009&lt;br /&gt;Heure : 8h30 à 17h00&lt;br /&gt;Endroit : Marriott Château Champlain au centre ville (Carte), salles Viger A-B-C.&lt;br /&gt;Stationnement: Payant. Le 1000 de la Gauchetière qui est juste à côté de l'hôtel offre un tarif réduit le week-end.&lt;br /&gt;Métro: Bonaventure (ligne orange)&lt;br /&gt;Coût : gratuit&lt;br /&gt;Repas: non inclus&lt;br /&gt;Thème : Les meilleures pratiques de développement logiciel.&lt;br /&gt;Organisé par la Communauté .NET Montréal&lt;/span&gt;&lt;span class="postbody"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-6321173504233318988?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/6321173504233318988/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=6321173504233318988' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/6321173504233318988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/6321173504233318988'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2009/05/code-camp-montreal-2009-les-meilleures.html' title='Code Camp Montreal 2009:  Les meilleures pratiques de développement logiciel'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-1886396275148706076</id><published>2009-05-04T13:55:00.002-04:00</published><updated>2009-05-04T13:58:03.379-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='exams'/><category scheme='http://www.blogger.com/atom/ns#' term='ax2009'/><category scheme='http://www.blogger.com/atom/ns#' term='certification'/><category scheme='http://www.blogger.com/atom/ns#' term='ax'/><title type='text'>Developer for Microsoft Dynamics AX Certification Roadmap</title><content type='html'>&lt;p class="MsoNormal"&gt;&lt;span lang="EN-CA" style="color:#1F497D;mso-themecolor:dark2; mso-ansi-language:EN-CA"&gt;Microsoft Certified Business Management Solutions Professional - Developer for Microsoft Dynamics AX&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-CA" style="color:#1F497D;mso-themecolor:dark2; mso-ansi-language:EN-CA"&gt;&lt;o:p&gt; &lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;span style="color:#1F497D;mso-themecolor:dark2"&gt;&lt;a href="http://www.microsoft.com/learning/en/us/Exams/MB6-819.aspx"&gt;&lt;span lang="EN-CA" style="mso-ansi-language:EN-CA"&gt;MB6-819&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="color:#1F497D;mso-themecolor:dark2;mso-ansi-language:EN-CA"&gt; &lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-size:6.0pt;font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black;mso-ansi-language:EN-CA"&gt;AX 2009 Development Introduction&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="color:#1F497D;mso-themecolor:dark2"&gt;&lt;a href="http://www.microsoft.com/learning/en/us/Exams/MB6-821.aspx"&gt;MB6-821&lt;/a&gt;&lt;/span&gt;&lt;span style="color:#1F497D;mso-themecolor:dark2;mso-ansi-language:RU"&gt; &lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span style="font-size:6.0pt;font-family:&amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; color:black"&gt;AX 2009 MorphX Solution Development&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;/b&gt;&lt;span lang="RU" style="color:#1F497D;mso-themecolor:dark2;mso-ansi-language:RU"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;span lang="RU" style="font-size: 5.5pt;font-family:&amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black;mso-ansi-language:RU"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;span lang="EN-CA" style="font-size:5.5pt;font-family:&amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black; mso-ansi-language:EN-CA"&gt;Collection 80011AE: Development I in Microsoft Dynamics AX 2009 (4 Hours)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;span lang="EN-CA" style="font-size:5.5pt;font-family:&amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black; mso-ansi-language:EN-CA"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia; font-size: 16px; color: rgb(31, 73, 125); "&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: Verdana; font-size: 10px; font-weight: bold; "&gt;&lt;a href="https://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=93392&amp;amp;tab=details"&gt;Development I – Architecture&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span style="font-size:7.5pt; font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black"&gt;&lt;a href="https://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=93393&amp;amp;tab=details"&gt;&lt;span lang="EN-CA" style="mso-ansi-language:EN-CA"&gt;Development I - Data Dictionary&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span lang="EN-CA" style="mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin; mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin;mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;;mso-bidi-theme-font:minor-bidi;color:#1F497D;mso-themecolor: dark2;mso-ansi-language:EN-CA"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span style="font-size:7.5pt; font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black"&gt;&lt;a href="https://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=93595&amp;amp;tab=details"&gt;&lt;span lang="EN-CA" style="mso-ansi-language:EN-CA"&gt;Development I - User Interfaces&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-size:7.5pt;font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black;mso-ansi-language:EN-CA"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-size:7.5pt;font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black; mso-ansi-language:EN-CA"&gt;&lt;a href="https://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=93955&amp;amp;tab=details"&gt;Development I - Report Adjustments&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span lang="EN-CA" style="mso-ascii-font-family: Calibri;mso-ascii-theme-font:minor-latin;mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin;mso-bidi-font-family:&amp;quot;Times New Roman&amp;quot;; mso-bidi-theme-font:minor-bidi;color:#1F497D;mso-themecolor:dark2;mso-ansi-language: EN-CA"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span"   style="font-family:Tahoma;font-size:78%;"&gt;&lt;span class="Apple-style-span" style="font-size: 7px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Tahoma; font-size: 7px; "&gt;Collection 80012AE: Development II in Microsoft Dynamics AX 2009 (3 Hours)&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana; font-size: 10px; font-weight: bold; "&gt;&lt;a href="https://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=95074&amp;amp;tab=details"&gt;Development II - X++ Overview&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-size:7.5pt;font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black; mso-ansi-language:EN-CA"&gt;&lt;a href="https://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=94985&amp;amp;tab=details"&gt;Development II - Classes and Objects&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span lang="EN-CA" style="mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin; mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin;mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;;mso-bidi-theme-font:minor-bidi;color:#1F497D;mso-themecolor: dark2;mso-ansi-language:EN-CA"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-size:7.5pt;font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black; mso-ansi-language:EN-CA"&gt;&lt;a href="https://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=95072&amp;amp;tab=details"&gt;Development II - X++ Control Statements&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span lang="EN-CA" style="mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin; mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin;mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;;mso-bidi-theme-font:minor-bidi;color:#1F497D;mso-themecolor: dark2;mso-ansi-language:EN-CA"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-size:7.5pt;font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black; mso-ansi-language:EN-CA"&gt;&lt;a href="https://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=95072&amp;amp;tab=details"&gt;Development II - X++ Control Statements&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span lang="EN-CA" style="mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin; mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin;mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;;mso-bidi-theme-font:minor-bidi;color:#1F497D;mso-themecolor: dark2;mso-ansi-language:EN-CA"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-size:7.5pt;font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black; mso-ansi-language:EN-CA"&gt;&lt;a href="https://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=95073&amp;amp;tab=details"&gt;Development II - Accessing the Database&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span lang="EN-CA" style="mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin; mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin;mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;;mso-bidi-theme-font:minor-bidi;color:#1F497D;mso-themecolor: dark2;mso-ansi-language:EN-CA"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-size:7.5pt;font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black; mso-ansi-language:EN-CA"&gt;&lt;a href="https://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=95091&amp;amp;tab=details"&gt;Development II - Exception Handling&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span lang="EN-CA" style="mso-ascii-font-family: Calibri;mso-ascii-theme-font:minor-latin;mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin;mso-bidi-font-family:&amp;quot;Times New Roman&amp;quot;; mso-bidi-theme-font:minor-bidi;color:#1F497D;mso-themecolor:dark2;mso-ansi-language: EN-CA"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-size:7.5pt;font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black; mso-ansi-language:EN-CA"&gt;&lt;a href="https://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=95912&amp;amp;tab=details"&gt;Development II - Appendix&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span lang="EN-CA" style="mso-ascii-font-family: Calibri;mso-ascii-theme-font:minor-latin;mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin;mso-bidi-font-family:&amp;quot;Times New Roman&amp;quot;; mso-bidi-theme-font:minor-bidi;color:#1F497D;mso-themecolor:dark2;mso-ansi-language: EN-CA"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span"  style="color:#1F497D;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="color:#1F497D;mso-themecolor:dark2"&gt;&lt;a href="http://www.microsoft.com/learning/en/us/Exams/MB6-820.aspx"&gt;MB6-820&lt;/a&gt;&lt;/span&gt;&lt;span style="color:#1F497D;mso-themecolor:dark2;mso-ansi-language:RU"&gt; &lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span style="font-size:6.0pt;font-family:&amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; color:black"&gt;AX 2009 Installation &amp;amp; Configuration&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;/b&gt;&lt;span lang="RU" style="color:#1F497D;mso-themecolor:dark2;mso-ansi-language:RU"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;span lang="RU" style="font-size: 5.5pt;font-family:&amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black;mso-ansi-language:RU"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;span lang="EN-CA" style="font-size:5.5pt;font-family:&amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black; mso-ansi-language:EN-CA"&gt;80019AE: Installation and Configuration for Microsoft Dynamics AX 2009 (6 Hours)&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana; font-size: 10px; font-weight: bold; "&gt;&lt;a href="https://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=90881"&gt;Installation and Configuration - Overview&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-size:7.5pt;font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black; mso-ansi-language:EN-CA"&gt;&lt;a href="https://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=91195"&gt;Installation and Configuration - Planning Microsoft Dynamics AX Install&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="RU" style="font-size:7.5pt;font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black;mso-ansi-language:RU"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-size:7.5pt;font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black; mso-ansi-language:EN-CA"&gt;&lt;a href="https://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=91992"&gt;Installation and Configuration - Installing and Deploying Enterprise Portal&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="RU" style="font-size:7.5pt;font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black;mso-ansi-language:RU"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-size:7.5pt;font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black; mso-ansi-language:EN-CA"&gt;&lt;a href="https://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=92062"&gt;Installation and Configuration - Installing AIF Web Services&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="RU" style="font-size:7.5pt;font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black;mso-ansi-language:RU"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-size:7.5pt;font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black; mso-ansi-language:EN-CA"&gt;&lt;a href="https://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=92678"&gt;Installation and Configuration - Initializing Microsoft Dynamics AX&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="RU" style="font-size:7.5pt;font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black;mso-ansi-language:RU"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-size:7.5pt;font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black; mso-ansi-language:EN-CA"&gt;&lt;a href="https://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=93299"&gt;Installation and Configuration - Installing the Base System&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="RU" style="font-size:7.5pt;font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black;mso-ansi-language:RU"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span style="font-size:7.5pt; font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black"&gt;&lt;a href="https://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=93594"&gt;&lt;span lang="EN-CA" style="mso-ansi-language:EN-CA"&gt;Installation and Configuration – Deploying&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-size:7.5pt;font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color:black;mso-ansi-language:EN-CA"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-size:7.5pt;font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black; mso-ansi-language:EN-CA"&gt;&lt;a href="https://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=93658"&gt;Installation and Configuration - Installing and Deploying Workflow&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="RU" style="font-size:7.5pt;font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black;mso-ansi-language:RU"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span style="font-size:7.5pt; font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black"&gt;&lt;a href="https://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=93995"&gt;Installation and Configuration - Install Microsoft Dynamics AX Reporting&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="RU" style="font-size:7.5pt;font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black;mso-ansi-language:RU"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="color: rgb(31, 73, 125); "&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="color:#1F497D;mso-themecolor:dark2"&gt;&lt;a href="http://www.microsoft.com/learning/en/us/Exams/MB6-825.aspx"&gt;MB6-825&lt;/a&gt;&lt;/span&gt;&lt;span style="color:#1F497D;mso-themecolor:dark2;mso-ansi-language:RU"&gt; &lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span style="font-size:6.0pt;font-family:&amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; color:black"&gt;AX 2009 Enterprise Portal Development&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;/b&gt;&lt;span lang="RU" style="color:#1F497D;mso-themecolor:dark2;mso-ansi-language:RU"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="RU" style="mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin;mso-hansi-font-family:Calibri;mso-hansi-theme-font: minor-latin;mso-bidi-font-family:&amp;quot;Times New Roman&amp;quot;;mso-bidi-theme-font:minor-bidi; color:#1F497D;mso-themecolor:dark2;mso-ansi-language:RU"&gt;(-)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="RU" style="mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin;mso-hansi-font-family:Calibri;mso-hansi-theme-font: minor-latin;mso-bidi-font-family:&amp;quot;Times New Roman&amp;quot;;mso-bidi-theme-font:minor-bidi; color:#1F497D;mso-themecolor:dark2;mso-ansi-language:RU"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="color:#1F497D;mso-themecolor:dark2"&gt;&lt;a href="http://www.microsoft.com/learning/en/us/Exams/MB6-817.aspx"&gt;MB6-817&lt;/a&gt;&lt;/span&gt;&lt;span style="color:#1F497D;mso-themecolor:dark2;mso-ansi-language:RU"&gt; &lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span style="font-size:6.0pt;font-family:&amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; color:black"&gt;AX 2009 Trade &amp;amp; Logistics&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;/b&gt;&lt;span lang="RU" style="color:#1F497D;mso-themecolor:dark2;mso-ansi-language:RU"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Tahoma; font-size: 7px; "&gt;80024AE: Trade and Logistics I in Microsoft Dynamics AX 2009 (9 Hours)&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana; font-size: 10px; font-weight: bold; "&gt;&lt;a href="https://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=92644"&gt;Trade and Logistics I - Introduction&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span style="font-size:7.5pt; font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black"&gt;&lt;a href="https://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=92978"&gt;Trade and Logistics I - Inventory&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="RU" style="font-size:7.5pt;font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black; mso-ansi-language:RU"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-size:7.5pt;font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black; mso-ansi-language:EN-CA"&gt;&lt;a href="https://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=92982"&gt;Trade and Logistics I - Purchase Orders and Purchase Order Posting&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="RU" style="font-size:7.5pt;font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black;mso-ansi-language:RU"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-size:7.5pt;font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black; mso-ansi-language:EN-CA"&gt;&lt;a href="https://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=93176"&gt;Trade and Logistics I - Serial and Batch Numbers&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="RU" style="font-size:7.5pt;font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black;mso-ansi-language:RU"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-size:7.5pt;font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black; mso-ansi-language:EN-CA"&gt;&lt;a href="https://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=93177"&gt;Trade and Logistics I - Item Arrival and Registration&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="RU" style="font-size:7.5pt;font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black;mso-ansi-language:RU"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-size:7.5pt;font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black; mso-ansi-language:EN-CA"&gt;&lt;a href="https://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=93301"&gt;Trade and Logistics I - Quarantine Management&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="RU" style="font-size:7.5pt;font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black;mso-ansi-language:RU"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-size:7.5pt;font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black; mso-ansi-language:EN-CA"&gt;&lt;a href="https://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=93302"&gt;Trade and Logistics I - Vendor Returns&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="RU" style="font-size:7.5pt;font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black;mso-ansi-language:RU"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-size:7.5pt;font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black; mso-ansi-language:EN-CA"&gt;&lt;a href="https://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=93560"&gt;Trade and Logistics I - Sales Orders and Sales Order Posting&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="RU" style="font-size:7.5pt;font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black;mso-ansi-language:RU"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-size:7.5pt;font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black; mso-ansi-language:EN-CA"&gt;&lt;a href="https://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=93591"&gt;Trade and Logistics I - Sales Order Picking&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="RU" style="font-size:7.5pt;font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black;mso-ansi-language:RU"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-size:7.5pt;font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black; mso-ansi-language:EN-CA"&gt;&lt;a href="https://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=93656"&gt;Trade and Logistics I - Over/Under Delivery and Miscellaneous Charges&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="RU" style="font-size:7.5pt;font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black;mso-ansi-language:RU"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-size:7.5pt;font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black; mso-ansi-language:EN-CA"&gt;&lt;a href="https://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=93657"&gt;Trade and Logistics I - Customer Returns&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span lang="EN-CA" style="font-size:5.5pt;font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black;mso-ansi-language:EN-CA"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;span lang="EN-CA" style="font-size:5.5pt;font-family:&amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black; mso-ansi-language:EN-CA"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;span lang="EN-CA" style="font-size:5.5pt;font-family:&amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black; mso-ansi-language:EN-CA"&gt;80025AE: Trade and Logistics II in Microsoft Dynamics AX 2009 (8 Hours)&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span lang="RU" style="font-size:5.5pt;font-family:&amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black; mso-ansi-language:RU"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana; font-size: 10px; font-weight: bold; "&gt;&lt;a href="https://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=93748"&gt;Trade and Logistics II - Customer and Vendor Trade Agreements&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-size:7.5pt;font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black; mso-ansi-language:EN-CA"&gt;&lt;a href="https://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=93759"&gt;Trade and Logistics II - Inventory Reporting and Statistics&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="RU" style="font-size:7.5pt;font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black;mso-ansi-language:RU"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-size:7.5pt;font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black; mso-ansi-language:EN-CA"&gt;&lt;a href="https://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=93760"&gt;Trade and Logistics II - Purchase Requisitions&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="RU" style="font-size:7.5pt;font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black;mso-ansi-language:RU"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-size:7.5pt;font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black; mso-ansi-language:EN-CA"&gt;&lt;a href="https://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=93761"&gt;Trade and Logistics II - Request for Quote&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="RU" style="font-size:7.5pt;font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black;mso-ansi-language:RU"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-size:7.5pt;font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black; mso-ansi-language:EN-CA"&gt;&lt;a href="https://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=94372"&gt;Trade and Logistics II - Transfer Orders&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="RU" style="font-size:7.5pt;font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black;mso-ansi-language:RU"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-size:7.5pt;font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black; mso-ansi-language:EN-CA"&gt;&lt;a href="https://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=94481"&gt;Trade and Logistics II - Sales Quotations&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="RU" style="font-size:7.5pt;font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black;mso-ansi-language:RU"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-size:7.5pt;font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black; mso-ansi-language:EN-CA"&gt;&lt;a href="https://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=94482"&gt;Trade and Logistics II - Quality Management&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="RU" style="font-size:7.5pt;font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black;mso-ansi-language:RU"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span style="font-size:7.5pt; font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black"&gt;&lt;a href="https://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=94483"&gt;Trade and Logistics II - Reservations&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="RU" style="font-size:7.5pt;font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black;mso-ansi-language:RU"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span style="font-size:7.5pt; font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black"&gt;&lt;a href="https://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=94484"&gt;Trade and Logistics II - Commissions&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="RU" style="font-size:7.5pt;font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black;mso-ansi-language:RU"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-size:7.5pt;font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black; mso-ansi-language:EN-CA"&gt;&lt;a href="https://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=94505"&gt;Trade and Logistics II - Inventory Journals&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;span lang="EN-CA" style="font-size:5.5pt;font-family:&amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black; mso-ansi-language:EN-CA"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;span lang="EN-CA" style="font-size:5.5pt;font-family:&amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black; mso-ansi-language:EN-CA"&gt;80010AE: Bill of Material in Microsoft Dynamics AX 2009 (6 Hours)&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span lang="RU" style="font-size:5.5pt;font-family:&amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black; mso-ansi-language:RU"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana; font-size: 10px; font-weight: bold; "&gt;&lt;a href="https://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=94181"&gt;Bill of Materials - BOM Overview&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-size:7.5pt;font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black; mso-ansi-language:EN-CA"&gt;&lt;a href="https://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=94185"&gt;Bill of Materials - Create Simple BOMs&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="RU" style="font-size:7.5pt;font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black;mso-ansi-language:RU"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-size:7.5pt;font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black; mso-ansi-language:EN-CA"&gt;&lt;a href="https://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=94218"&gt;Bill of Materials - Reports and Other BOM Functionality&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="RU" style="font-size:7.5pt;font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black;mso-ansi-language:RU"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-size:7.5pt;font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black; mso-ansi-language:EN-CA"&gt;&lt;a href="https://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=94219"&gt;Bill of Materials - Report a BOM as Finished&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="RU" style="font-size:7.5pt;font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black;mso-ansi-language:RU"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-size:7.5pt;font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black; mso-ansi-language:EN-CA"&gt;&lt;a href="https://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=94550"&gt;Bill of Materials - Scrap and Measurement&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="RU" style="font-size:7.5pt;font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black;mso-ansi-language:RU"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span style="font-size:7.5pt; font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black"&gt;&lt;a href="https://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=94551"&gt;Bill of Materials - BOM Calculations&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="RU" style="font-size:7.5pt;font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black;mso-ansi-language:RU"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-size:7.5pt;font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black; mso-ansi-language:EN-CA"&gt;&lt;a href="https://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=94552"&gt;Bill of Materials - Creating BOMs with Versions&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="RU" style="font-size:7.5pt;font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black;mso-ansi-language:RU"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-size:7.5pt;font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black; mso-ansi-language:EN-CA"&gt;&lt;a href="https://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=94553"&gt;Bill of Materials - Sales Orders and BOMs&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="RU" style="font-size:7.5pt;font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black;mso-ansi-language:RU"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;b&gt;&lt;span lang="EN-CA" style="font-size:7.5pt;font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:black; mso-ansi-language:EN-CA"&gt;&lt;a href="https://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=94554"&gt;Bill of Materials - Working with BOM and Item Configurations&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span lang="EN-CA" style="color:#1F497D;mso-themecolor:dark2;mso-ansi-language:EN-CA"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="color: rgb(31, 73, 125); "&gt; &lt;/span&gt;&lt;/p&gt;  &lt;span style="font-size:11.0pt;font-family:&amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;;mso-ascii-theme-font: minor-latin;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin; mso-hansi-theme-font:minor-latin;mso-bidi-font-family:&amp;quot;Times New Roman&amp;quot;; mso-bidi-theme-font:minor-bidi;color:#1F497D;mso-themecolor:dark2;mso-ansi-language: FR-CA;mso-fareast-language:FR-CA;mso-bidi-language:AR-SA"&gt;&lt;a href="http://learning.microsoft.com/Manager/Catalog.aspx?clang=en-US&amp;amp;dtype=Catalog&amp;amp;Sort=PublicationDateDescending&amp;amp;page=1&amp;amp;cats=%7b2932d34c-1b25-4dfd-84c8-a47aab13b5a6%7d:%7b132be102-9975-4462-a895-ca5a6d643857%7d:%7b9b10a26e-9bfd-402e-8c4f-0ec48f137253%7d:%7b515c602c-7f4a-4725"&gt;Full list of AX2009 exams&lt;/a&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-1886396275148706076?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/1886396275148706076/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=1886396275148706076' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/1886396275148706076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/1886396275148706076'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2009/05/developer-for-microsoft-dynamics-ax.html' title='Developer for Microsoft Dynamics AX Certification Roadmap'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-3340365902048606983</id><published>2009-04-30T12:46:00.007-04:00</published><updated>2009-04-30T23:15:53.131-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='permission'/><category scheme='http://www.blogger.com/atom/ns#' term='form'/><category scheme='http://www.blogger.com/atom/ns#' term='setup'/><title type='text'>How To Restrict Form Setup Conext Menu Item</title><content type='html'>To resrtict Form Setup context menu item you should:&lt;br /&gt;&lt;br /&gt;Create security key, for example, &lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;SysSetupFormPermission&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_y4-EcQ-sclI/Sfne7m38FuI/AAAAAAAAB84/-2_j-n2AYZ4/s1600-h/FormSetupRestriction_SecurityKey.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 118px;" src="http://2.bp.blogspot.com/_y4-EcQ-sclI/Sfne7m38FuI/AAAAAAAAB84/-2_j-n2AYZ4/s400/FormSetupRestriction_SecurityKey.jpg" alt="" id="BLOGGER_PHOTO_ID_5330536749598512866" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Add this key to &lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;SysSetupForm&lt;/span&gt; control tab&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_y4-EcQ-sclI/Sfne7r7jB-I/AAAAAAAAB9I/fXMMWa2Pkas/s1600-h/FormSetupRestriction_SysSetupForm.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 203px;" src="http://1.bp.blogspot.com/_y4-EcQ-sclI/Sfne7r7jB-I/AAAAAAAAB9I/fXMMWa2Pkas/s400/FormSetupRestriction_SysSetupForm.jpg" alt="" id="BLOGGER_PHOTO_ID_5330536750955825122" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Create a new user group supposed to be restricted&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_y4-EcQ-sclI/Sfne7TTppTI/AAAAAAAAB8o/NV42E6gOpGU/s1600-h/FormSetupRestriction_NewUserGroup.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 99px;" src="http://2.bp.blogspot.com/_y4-EcQ-sclI/Sfne7TTppTI/AAAAAAAAB8o/NV42E6gOpGU/s400/FormSetupRestriction_NewUserGroup.jpg" alt="" id="BLOGGER_PHOTO_ID_5330536744346035506" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Uncheck the key&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_y4-EcQ-sclI/Sfne7VE__FI/AAAAAAAAB8w/d6_eQSWgplc/s1600-h/FormSetupRestriction_Permissions.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 172px;" src="http://4.bp.blogspot.com/_y4-EcQ-sclI/Sfne7VE__FI/AAAAAAAAB8w/d6_eQSWgplc/s400/FormSetupRestriction_Permissions.jpg" alt="" id="BLOGGER_PHOTO_ID_5330536744821455954" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A user included in the group will still have the context menu item&lt;br /&gt;but will see an empty form&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_y4-EcQ-sclI/SfneyB_y6UI/AAAAAAAAB8g/JxcS096tC3E/s1600-h/FormSetupRestriction_ContextMenu.jpg"&gt;&lt;img style="cursor: pointer; width: 332px; height: 221px;" src="http://2.bp.blogspot.com/_y4-EcQ-sclI/SfneyB_y6UI/AAAAAAAAB8g/JxcS096tC3E/s400/FormSetupRestriction_ContextMenu.jpg" alt="" id="BLOGGER_PHOTO_ID_5330536585080531266" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_y4-EcQ-sclI/Sfne7qVsftI/AAAAAAAAB9A/QdKp-5l4FAk/s1600-h/FormSetupRestriction_SetupForm.jpg"&gt;&lt;img style="cursor: pointer; width: 114px; height: 181px;" src="http://2.bp.blogspot.com/_y4-EcQ-sclI/Sfne7qVsftI/AAAAAAAAB9A/QdKp-5l4FAk/s400/FormSetupRestriction_SetupForm.jpg" alt="" id="BLOGGER_PHOTO_ID_5330536750528626386" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-3340365902048606983?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/3340365902048606983/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=3340365902048606983' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/3340365902048606983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/3340365902048606983'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2009/04/how-to-resrtict-form-setup-conext-menu.html' title='How To Restrict Form Setup Conext Menu Item'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_y4-EcQ-sclI/Sfne7m38FuI/AAAAAAAAB84/-2_j-n2AYZ4/s72-c/FormSetupRestriction_SecurityKey.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-6374128911468094486</id><published>2009-04-09T13:42:00.005-04:00</published><updated>2009-04-09T13:46:39.415-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='internet explorer'/><category scheme='http://www.blogger.com/atom/ns#' term='com'/><title type='text'>Launching and closing Internet Explorer</title><content type='html'>One can run Internet Explorer in visible or invisible mode, then navigate any url and close the application, finally.&lt;div&gt;&lt;pre class="csharpcode"&gt;&lt;span class="Apple-style-span"   style="font-family:Georgia;font-size:130%;"&gt;&lt;span class="Apple-style-span"  style=" white-space: normal;font-size:16px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; TestIE(Args _args)&lt;br /&gt;{&lt;br /&gt; COM c = &lt;span class="kwrd"&gt;new&lt;/span&gt; COM(&lt;span class="str"&gt;"InternetExplorer.Application"&lt;/span&gt;);&lt;br /&gt; str url = &lt;span class="str"&gt;"&lt;a href="http://msdn.microsoft.com/en-us/library/ms952618.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms952618.aspx"&lt;/a&gt;&lt;/span&gt;;&lt;br /&gt; ;&lt;br /&gt; c.navigate(url);&lt;br /&gt; c.visible(&lt;span class="kwrd"&gt;true&lt;/span&gt;);&lt;br /&gt; &lt;span class="kwrd"&gt;if&lt;/span&gt; (DialogButton::Yes == BOX::YesNo(&lt;span class="str"&gt;"To close the browser press Yes"&lt;/span&gt;, DialogButton::Yes))&lt;br /&gt; {&lt;br /&gt;     info(strfmt(&lt;span class="str"&gt;"Job is done"&lt;/span&gt;));&lt;br /&gt;     c.quit();&lt;br /&gt; }&lt;br /&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-6374128911468094486?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/6374128911468094486/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=6374128911468094486' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/6374128911468094486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/6374128911468094486'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2009/04/launching-and-closing-internet-explorer.html' title='Launching and closing Internet Explorer'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-116251693361666445</id><published>2009-03-30T12:50:00.004-04:00</published><updated>2009-03-30T13:48:57.721-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debug'/><category scheme='http://www.blogger.com/atom/ns#' term='report'/><title type='text'>Watching variables of a report</title><content type='html'>A little trick to watch your variables during debugging a report. Add a variable to watch and add the &lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;Element.&lt;/span&gt; prefix to its name.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_y4-EcQ-sclI/SdEFxrYCPgI/AAAAAAAABxQ/eSxC_68fLt0/s1600-h/watchdebuggingreport.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 87px;" src="http://4.bp.blogspot.com/_y4-EcQ-sclI/SdEFxrYCPgI/AAAAAAAABxQ/eSxC_68fLt0/s400/watchdebuggingreport.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5319038985916530178" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-116251693361666445?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/116251693361666445/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=116251693361666445' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/116251693361666445'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/116251693361666445'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2009/03/watching-variables-of-report.html' title='Watching variables of a report'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_y4-EcQ-sclI/SdEFxrYCPgI/AAAAAAAABxQ/eSxC_68fLt0/s72-c/watchdebuggingreport.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-6887127771020325141</id><published>2009-03-16T17:13:00.007-04:00</published><updated>2009-05-15T14:46:57.614-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='x++'/><category scheme='http://www.blogger.com/atom/ns#' term='comments'/><category scheme='http://www.blogger.com/atom/ns#' term='editor'/><title type='text'>Customized Comment In Your Code Editor</title><content type='html'>Standard code editor allows to create your own kind of comments. Generally, a style of comments depends on your programming style and the company's policies on that.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I prefer to frame changes I make in a code with parentheses in the following style:&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="rem"&gt;// Voytsekhovskiy, Alexey (My company name) (2009/03/16) (#)&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;//--&gt;&lt;/span&gt;&lt;br /&gt;the code &lt;span class="kwrd"&gt;as&lt;/span&gt; it wasd before my changes&lt;br /&gt;//&lt;-- &lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;div&gt;In order to have such an option in the editor's context menu I changed EditorScripts class as follows:&lt;/div&gt;&lt;br /&gt;1. Created a new add-on function&lt;div&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;boolean isEmptySelection(str s)&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre class="csharpcode"&gt;{&lt;br /&gt;;&lt;br /&gt;&lt;span class="rem"&gt;// delete all special symbols&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;return&lt;/span&gt; strLen(strRem(strRem(strRem(s,&lt;span class="str"&gt;" "&lt;/span&gt;),&lt;span class="str"&gt;"\n"&lt;/span&gt;),&lt;span class="str"&gt;"\r"&lt;/span&gt;))&amp;gt;0;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;2. Changed &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;getSelectedText &lt;/span&gt;standard method&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="rem"&gt;// added here the new parameter takeAllIfEmpty&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;static&lt;/span&gt; str getSelectedText(Editor e, boolean takeAllIfEmpty = &lt;span class="kwrd"&gt;true&lt;/span&gt;)&lt;br /&gt;{&lt;br /&gt;&lt;span class="kwrd"&gt;int&lt;/span&gt; i;&lt;br /&gt;str text;&lt;br /&gt;str line;&lt;br /&gt;&lt;span class="kwrd"&gt;int&lt;/span&gt; startLine = e.selectionStartLine()+1;&lt;br /&gt;&lt;span class="kwrd"&gt;int&lt;/span&gt; endLine   = e.selectionEndLine()+1;&lt;br /&gt;&lt;span class="kwrd"&gt;int&lt;/span&gt; startCol  = e.selectionStartCol();&lt;br /&gt;&lt;span class="kwrd"&gt;int&lt;/span&gt; endCol    = e.selectionEndCol();&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;if&lt;/span&gt; (startLine == endLine &amp;amp;&amp;amp; startCol == endCol)&lt;br /&gt;{&lt;br /&gt;&lt;span class="rem"&gt;// added here&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;//--&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;if&lt;/span&gt; (!takeAllIfEmpty)&lt;br /&gt;  &lt;span class="kwrd"&gt;return&lt;/span&gt; text;&lt;br /&gt;&lt;span class="rem"&gt;//&amp;lt;--&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;e.firstLine();&lt;br /&gt;&lt;span class="kwrd"&gt;while&lt;/span&gt; (e.moreLines())&lt;br /&gt;{&lt;br /&gt;  text += e.getLine()+&lt;span class="str"&gt;'\r\n'&lt;/span&gt;;&lt;br /&gt;  e.nextLine();&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;{&lt;/pre&gt;&lt;pre class="csharpcode"&gt;...&lt;/pre&gt;&lt;pre class="csharpcode"&gt;(the rest of the method)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;3. Created the method which implements this new kind of comments:&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="rem"&gt;// Insert a comment in place of the cursor&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;// (Example: Developer's name (Your company name) (YYYY/MM/DD) (#))&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;// //--&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;// Your code here as it was before&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;// //&amp;lt;--&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;void&lt;/span&gt; Comments_BetweenParentheses(Editor e)&lt;br /&gt;{&lt;br /&gt;#define.YourCompanyName(&lt;span class="str"&gt;"Your company name"&lt;/span&gt;)&lt;br /&gt;str         selText = EditorScripts::getSelectedText(e, &lt;span class="kwrd"&gt;false&lt;/span&gt;);&lt;br /&gt;str         selFirstLine;&lt;br /&gt;&lt;span class="kwrd"&gt;int&lt;/span&gt;         startLine = e.selectionStartLine()+1;&lt;br /&gt;&lt;span class="kwrd"&gt;int&lt;/span&gt;         startCol  = e.selectionStartCol();&lt;br /&gt;xppSource   xppSource;&lt;br /&gt;;&lt;br /&gt;&lt;span class="kwrd"&gt;if&lt;/span&gt;(&lt;span class="kwrd"&gt;this&lt;/span&gt;.isEmptySelection(selText))&lt;br /&gt;{&lt;br /&gt;startLine = e.selectionStartLine()+1;&lt;br /&gt;e.firstSelectedLine();&lt;br /&gt;selFirstLine = e.getLine();&lt;br /&gt;&lt;br /&gt;startCol  = strLen(selFirstLine) -strLen(strLTrim(selFirstLine));&lt;br /&gt;xppSource = &lt;span class="kwrd"&gt;new&lt;/span&gt; xppSource(startCol);&lt;br /&gt;e.insertLines(xppSource.indent()+strFmt(&lt;span class="str"&gt;"// %1 ("&lt;/span&gt;+#YourCompanyName+&lt;span class="str"&gt;") (%2) (#)"&lt;/span&gt;, XUserInfo::find(False, curUserId()).name, date2str(today(), 321, 2, 4, 2, 4, 4))+&lt;span class="str"&gt;"\n"&lt;/span&gt;);&lt;br /&gt;e.insertLines(xppSource.indent()+strFmt(&lt;span class="str"&gt;"//--&amp;gt;\n"&lt;/span&gt;));&lt;br /&gt;e.insertLines(selText);&lt;br /&gt;e.insertLines(strFmt(xppSource.indent()+&lt;span class="str"&gt;"//&amp;lt;--\n"&lt;/span&gt;));&lt;br /&gt;e.gotoLine(startLine+1);&lt;br /&gt;e.gotoCol(startCol+1);&lt;br /&gt;}&lt;br /&gt;&lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;startCol = e.columnNo();&lt;br /&gt;xppSource = &lt;span class="kwrd"&gt;new&lt;/span&gt; xppSource(startCol);&lt;br /&gt;e.insertLines(strFmt(&lt;span class="str"&gt;"// %1 ("&lt;/span&gt;+#YourCompanyName+&lt;span class="str"&gt;") (%2) (#)"&lt;/span&gt;, XUserInfo::find(False, curUserId()).name, date2str(today(), 321, 2, 4, 2, 4, 4))+&lt;span class="str"&gt;"\n"&lt;/span&gt;);&lt;br /&gt;e.insertLines(xppSource.indent()+strFmt(&lt;span class="str"&gt;"//--&amp;gt;\n"&lt;/span&gt;));&lt;br /&gt;e.insertLines(strFmt(xppSource.indent()+&lt;span class="str"&gt;"//&amp;lt;--\n"&lt;/span&gt;));&lt;br /&gt;e.gotoLine(e.currentLineNo()-1);&lt;br /&gt;e.gotoCol(50);&lt;br /&gt;e.insertLines(strFmt(&lt;span class="str"&gt;"\n"&lt;/span&gt;+xppSource.indent()));&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;So, after compilation you can use the new comments style.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://lh5.ggpht.com/_y4-EcQ-sclI/Sb7GmPz2ZYI/AAAAAAAABpE/mky11jU_feo/s800/TheXCodeBeforeCommenting.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;after commenting&lt;br /&gt;&lt;br /&gt;&lt;img src="http://lh6.ggpht.com/_y4-EcQ-sclI/Sb7GpVv6DKI/AAAAAAAABpM/ZrPTjfKOp9U/s800/TheXCodeAfterCommenting.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;Just to be on the safe side I place here the link to the whole project file &lt;a href="http://kuantro.gotdns.com/axpro/CommentParentheses.xpo"&gt;CommentParentheses.xpo&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-6887127771020325141?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/6887127771020325141/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=6887127771020325141' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/6887127771020325141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/6887127771020325141'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2009/03/customized-comment-in-your-code-editor.html' title='Customized Comment In Your Code Editor'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_y4-EcQ-sclI/Sb7GmPz2ZYI/AAAAAAAABpE/mky11jU_feo/s72-c/TheXCodeBeforeCommenting.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-288762771790661624</id><published>2009-03-16T15:13:00.003-04:00</published><updated>2009-03-16T15:18:30.103-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='guide'/><category scheme='http://www.blogger.com/atom/ns#' term='russian'/><category scheme='http://www.blogger.com/atom/ns#' term='book'/><title type='text'>книга Разработка бизнес-приложений в Microsoft Business Solutions - Axapta версии 3.0</title><content type='html'>&lt;a href="http://www.ozon.ru/context/detail/id/2149827"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 200px; height: 290px;" src="http://www.ozon.ru/multimedia/books_covers/1000176749.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;С этой книги я начал изучение ERP-системы MS Axapta, во многом благодаря ей я нашёл первую работу в Канаде, и по сей день, она является наиболее востребованной среди прочих книг на моём столе для разработки для всех версий MS Dynamics: 3.0 4.0 и 2009.&lt;br /&gt;&lt;br /&gt;Книга написана одновременно и как справочное пособие по архитектуре, среде разработки и языку X++, и параллельное описание реализации конкретного проекта "Управление гостиницей".&lt;br /&gt;На примере последнего и разбираются варианты использования той или иной функциональности.&lt;br /&gt;&lt;br /&gt;Вообще, примеры - это самая сильная часть любого руководства разработчика, и данная книга - отличный образец того, как это &lt;span class="Apple-style-span" style="font-style: italic;"&gt;нужно &lt;/span&gt;делать: здесь можно найти не только соответствующие Best Practice стандартные паттерны программирования, которые особенно важно усвоить вначале работы с системой, но и такие приёмы, как, скажем работа с COM - Axapta Business Connector или организация многомерных массивов.&lt;br /&gt;&lt;br /&gt;Название третьей главы "Что должен знать эксперт" говорит само за себя.&lt;br /&gt;&lt;br /&gt;Мои любимые параграфы те, где речь идёт о создании и вызове сущностей системы, таких как формы, меню, запросы и так далее, напрямую из кода.&lt;br /&gt;&lt;br /&gt;Особенно приятно, что она написана русскими ребятами на хорошем русском языке.&lt;br /&gt;&lt;br /&gt;В целом, оценивая этот беспрецедентный по охвату материала, стройности и стилю изложения и оригинальности концепции труд, можно сказать, что данная книга является &lt;span class="Apple-style-span" style="font-style: italic;"&gt;краеугольным &lt;/span&gt;камнем в построении карьеры разработчика MS Dynamics.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-288762771790661624?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/288762771790661624/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=288762771790661624' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/288762771790661624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/288762771790661624'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2009/03/microsoft-business-solutions-axapta-30.html' title='книга Разработка бизнес-приложений в Microsoft Business Solutions - Axapta версии 3.0'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-4044859065626425127</id><published>2009-02-18T10:08:00.006-05:00</published><updated>2009-07-02T09:41:23.577-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xpo'/><title type='text'>XPO file viewer</title><content type='html'>When you deal with a pile of Axapta project files (xpo-files) it might be very useful to take a look at what it consists of.&lt;br /&gt;&lt;br /&gt;For this goal, I created a small application that allows to see the content of an XPO file in Tree view as you got used to see during the import procedure in AX.&lt;br /&gt;&lt;br /&gt;No need anymore to load AX, just launch XPOViewer.exe (from &lt;a href="http://kuantro.gotdns.com/axpro/XPOViewer.rar"&gt;XPOViewer.rar&lt;/a&gt; archive) and open the file you want to see. You can also start this application by double-click on files having set it as default system action: by xpo files association.&lt;div&gt;&lt;br /&gt;&lt;img src="http://3.bp.blogspot.com/_y4-EcQ-sclI/SZxxFjVia4I/AAAAAAAABeE/OrOg7bnvjI0/s400/XPOFileViewer.jpg" style="cursor: pointer; width: 400px; height: 270px;" alt="" id="BLOGGER_PHOTO_ID_5304238801334463362" border="0" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;Loading large project files can take much time, so, be patient and enjoy the progress bar.&lt;br /&gt;&lt;br /&gt;In the Tree view you can copy any branch text to your clipboard by &lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;Ctrl-C&lt;/span&gt; key combination or from the context menu.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-4044859065626425127?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/4044859065626425127/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=4044859065626425127' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/4044859065626425127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/4044859065626425127'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2009/02/xpo-file-viewer.html' title='XPO file viewer'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_y4-EcQ-sclI/SZxxFjVia4I/AAAAAAAABeE/OrOg7bnvjI0/s72-c/XPOFileViewer.jpg' height='72' width='72'/><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-3864117429493704421</id><published>2008-12-19T18:44:00.001-05:00</published><updated>2008-12-19T18:46:31.857-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='ax'/><title type='text'>Synchronisation Error: Cannot execute a data definition language command on ().</title><content type='html'>It is really &lt;a href="http://axforum.info/forums/showthread.php?t=16251&amp;amp;highlight=execute+data+definition+language+command"&gt;useful job&lt;/a&gt; to cure this senseless error. Taken from russian Axapta forum.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-3864117429493704421?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/3864117429493704421/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=3864117429493704421' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/3864117429493704421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/3864117429493704421'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2008/12/synchronisation-error-cannot-execute.html' title='Synchronisation Error: Cannot execute a data definition language command on ().'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-2177845340361939178</id><published>2008-12-12T17:26:00.003-05:00</published><updated>2008-12-12T17:33:58.877-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='report'/><category scheme='http://www.blogger.com/atom/ns#' term='OnTime2008'/><title type='text'>How to add a custom report from scratch in OnTime2008 with behaviour of standard reports</title><content type='html'>This is about OnTime2008, the system used for development management. A small issue occurred during design a Customer report: we could not pass the selected project in the project tree as a parameter for SQL statement.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;1.&lt;/span&gt; Create your stored procedure in MS SQLServer. You can easily use existing SP as a base, i.e. spS_Projects_Summary.Otherwise, you can just add an SQL-statement later in design time inOnTime2008.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;2. &lt;/span&gt;Create and execute a command like thefollowing. Pay attention to the group of reports where you want to add your report to.&lt;br /&gt;You can either add your xml-defined report design here or define it later in design time in OntIme2008.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;HINT&lt;/span&gt;: The easiest way is just to create a copy of a standard report looking similar to one you want to create and copy-paste its xml code in MS SQL Server. It will take everything including the C# script.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;USE [OnTime2008_Test]&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;DECLARE   @return_value int,&lt;br /&gt;         @ReportId int&lt;br /&gt;&lt;br /&gt;EXEC @return_value= [dbo].[spI_Reports]&lt;br /&gt;         @ReportId= @ReportId OUTPUT,&lt;br /&gt;         @Name =N'LBA Deliveries', -- report name&lt;br /&gt;         @ReportClass= N'',&lt;br /&gt;         @ReportXML= N'', -- can be copied-pasted or designed later&lt;br /&gt;         @SqlCommand= N'LBA_spS_DeliveryReport @projectid = {CURRENT_PROJECT}', -- your storedprocedure or SQL statement&lt;br /&gt;         @ReportType= 4, -- group for the report: 1- defects; 2- features; 3 - tasks; 4-summaries;5 - workslog; 6 - incidents; 7 - dashboard;&lt;br /&gt;         @IsActive= true,&lt;br /&gt;         @CreatedById= 1,&lt;br /&gt;         @CreatedDateTime= '2008-12-12 15:23:54', -- not important&lt;br /&gt;         @LastUpdatedById= 1,&lt;br /&gt;         @LastUpdatedDateTime='2008-12-12 15:23:54' -- not important&lt;br /&gt;&lt;br /&gt;SELECT    @ReportIdas N'@ReportId'&lt;br /&gt;&lt;br /&gt;SELECT    'ReturnValue' = @return_value&lt;br /&gt;&lt;br /&gt;GO&lt;br /&gt;&lt;/span&gt;     &lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;3.&lt;/span&gt; At this stage you may launch OnTime2008 (or re-launch it in order to re-index) and open your newly created report in the approriate group of reports (Reports\Manage Reports...).&lt;br /&gt;Now, just create a shortcut to the report and you can start to use it.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;NOTE&lt;/span&gt;: Using filters depends on the report group.&lt;br /&gt;&lt;br /&gt;The sample of xml code for the report design and the history of this issue you can find on &lt;a href="http://community.axosoft.com/forums/17399/ShowThread.aspx#17399"&gt;the Axosoft forum&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-2177845340361939178?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/2177845340361939178/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=2177845340361939178' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/2177845340361939178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/2177845340361939178'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2008/12/how-to-add-custom-report-from-scratch.html' title='How to add a custom report from scratch in OnTime2008 with behaviour of standard reports'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-13929427624842108</id><published>2008-11-19T13:32:00.003-05:00</published><updated>2008-11-19T13:48:41.865-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ODBC'/><category scheme='http://www.blogger.com/atom/ns#' term='Connect'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>Connection from AX to an External Database</title><content type='html'>There are a few options. We can create an ODBC connection on a local machine or just to connect directly without creating ODBC record.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;For exmaple, we want to check whether some records exist in an external table. We should create a &lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;OdbcConnection &lt;/span&gt;with appropriate &lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;LoginProperty &lt;/span&gt;and permit to execute a SQL statement by means of &lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;SqlStatementExecutePermission &lt;/span&gt;class. &lt;br /&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;server boolean checkExternalDB()&lt;br /&gt;    {&lt;br /&gt;    &lt;span class="rem"&gt;//connection parameters&lt;/span&gt;&lt;br /&gt;        #define.ExternalTableName(&lt;span class="str"&gt;"CustTable"&lt;/span&gt;)&lt;br /&gt;        #define.ExternalFieldName(&lt;span class="str"&gt;"AccountNum"&lt;/span&gt;)&lt;br /&gt;        #define.ExternalSQLServerName(&lt;span class="str"&gt;"SRVAXSQL2005"&lt;/span&gt;)&lt;br /&gt;        #define.ExternalSQLDBName(&lt;span class="str"&gt;"DAXdb401_Standard_DEV"&lt;/span&gt;)&lt;br /&gt;        LoginProperty LP = &lt;span class="kwrd"&gt;new&lt;/span&gt; LoginProperty();&lt;br /&gt;        OdbcConnection myConnection;&lt;br /&gt;        SqlStatementExecutePermission permission;&lt;br /&gt;        Statement myStatement;&lt;br /&gt;        str sqlStmt = &lt;span class="str"&gt;""&lt;/span&gt;;&lt;br /&gt;        ResultSet myResult;&lt;br /&gt;        boolean ret = &lt;span class="kwrd"&gt;true&lt;/span&gt;;&lt;br /&gt;        ;&lt;br /&gt;&lt;br /&gt;        LP.setServer(#ExternalSQLServerName);&lt;br /&gt;        LP.setDatabase(#ExternalSQLDBName);&lt;br /&gt;        &lt;span class="kwrd"&gt;try&lt;/span&gt;&lt;br /&gt;        {&lt;br /&gt;            myConnection = &lt;span class="kwrd"&gt;new&lt;/span&gt; OdbcConnection(LP);&lt;br /&gt;        }&lt;br /&gt;        &lt;span class="kwrd"&gt;catch&lt;/span&gt;&lt;br /&gt;        {&lt;br /&gt;            info(&lt;span class="str"&gt;"Check connection parameters. "&lt;/span&gt;+funcName());&lt;br /&gt;            ret = checkFailed(strfmt(&lt;span class="str"&gt;"External DB Connection error in: %1"&lt;/span&gt;), #ExternalSQLDBName);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        myStatement = myConnection.createStatement();&lt;br /&gt;    &lt;span class="rem"&gt;//anything you want to get from the external table&lt;/span&gt;&lt;br /&gt;        sqlStmt = &lt;span class="str"&gt;"SELECT count (RecId) FROM "&lt;/span&gt;+#ExternalTableName+ &lt;span class="str"&gt;" where "&lt;/span&gt;+#ExternalFieldName + &lt;span class="str"&gt;" = '"&lt;/span&gt; + &lt;span class="kwrd"&gt;this&lt;/span&gt;.AccountNum+&lt;span class="str"&gt;"'"&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;        permission = &lt;span class="kwrd"&gt;new&lt;/span&gt; SqlStatementExecutePermission(sqlStmt);&lt;br /&gt;        permission.assert();&lt;br /&gt;&lt;br /&gt;        myResult = myStatement.executeQuery(sqlStmt);&lt;br /&gt;        &lt;span class="kwrd"&gt;while&lt;/span&gt; (MyResult.next())&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (MyResult.getInt(1) &amp;gt; 0)&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="rem"&gt;//yes, records exist in the external table&lt;/span&gt;&lt;br /&gt;                ret = checkFailed(strfmt(&lt;span class="str"&gt;"@LBA53"&lt;/span&gt;+&lt;span class="str"&gt;"\n"&lt;/span&gt;+funcName(), strfmt(&lt;span class="str"&gt;"[%1].[%2].[%3]"&lt;/span&gt;, #ExternalSQLServerName, #ExternalSQLDBName, #ExternalTableName)));&lt;br /&gt;                &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        CodeAccessPermission::revertAssert();&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;return&lt;/span&gt; ret;&lt;br /&gt;    } &lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-13929427624842108?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/13929427624842108/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=13929427624842108' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/13929427624842108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/13929427624842108'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2008/11/connection-from-ax-to-external-database.html' title='Connection from AX to an External Database'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-1020425400789587905</id><published>2008-11-19T13:11:00.003-05:00</published><updated>2008-11-19T13:31:13.751-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fix'/><title type='text'>MS Outlook and CRM Tasks Synchronization Issue</title><content type='html'>Recently I found out an issue with synchronization of tasks between CRM module and MS Outlook in AX4.0SP2.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;It looks like MS Outlook does not understand the command and causes the following error:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;Method 'sort' in COM object of class '_Items' returned error code 0x80020009 (DISP_E_EXCEPTION) which means: Propriété « Start » inconnue.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I changed the &lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;synchronizeTasksOutlookToAxapta &lt;/span&gt;method of &lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;SmmOutlookSync_Task &lt;/span&gt;class in order to fix the problem like it was done in AX2009:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;taskItemsCollection.sort('[Start]', false);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;to&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;#define.startDateProperty('StartDate')&lt;br /&gt;// Turn sort and include recurrences ON to get recurring tasks&lt;br /&gt;taskItemsCollection.sort(#startDateProperty, false);&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-1020425400789587905?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/1020425400789587905/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=1020425400789587905' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/1020425400789587905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/1020425400789587905'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2008/11/ms-outlook-and-crm-tasks.html' title='MS Outlook and CRM Tasks Synchronization Issue'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-1785193397040149500</id><published>2008-10-31T09:49:00.007-04:00</published><updated>2008-10-31T12:35:11.839-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debug'/><title type='text'>Debugging code on Business Connector</title><content type='html'>As&lt;a href="http://msdn.microsoft.com/en-us/library/aa569665.aspx"&gt; MSDN our suggests&lt;/a&gt;, first, we should enable Debugger on the client, (do not be confused with versions! my previous link is correct for AX 4.0 and AX 2009 too, but &lt;a href="http://msdn.microsoft.com/en-us/library/aa569665(AX.10).aspx"&gt;this &lt;/a&gt;is only for AX 3.0)&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="http://1.bp.blogspot.com/_y4-EcQ-sclI/SQst1yusykI/AAAAAAAAAVk/TsNmAlLcFsE/s400/AxaptaDebugEnabling.jpg" style="cursor:pointer; cursor:hand;width: 400px; height: 277px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5263350991686519362" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Then, we must to enable the same on the Business Connector with Configuration Utility: (in my case I had to check both in order to debug my web service)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="http://3.bp.blogspot.com/_y4-EcQ-sclI/SQst9JelnmI/AAAAAAAAAV0/vMdnI_xMO1Y/s400/ConfUtilityDeveloper.jpg" style="cursor:pointer; cursor:hand;width: 400px; height: 356px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5263351118052040290" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now, you can add a breakpoint in your code.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="http://1.bp.blogspot.com/_y4-EcQ-sclI/SQstxxWcp9I/AAAAAAAAAVc/7Lf3nk053lI/s400/AxaptaBreakpoint.jpg" style="cursor:pointer; cursor:hand;width: 400px; height: 189px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5263350922596886482" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Finally, you should run an instance of Debugger manually from the client's main menu because it does not start automatically as usually.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="http://2.bp.blogspot.com/_y4-EcQ-sclI/SQst4ndiWQI/AAAAAAAAAVs/EQreT1vmLAw/s400/AxaptaDebuggerMenu.jpg" style="cursor:pointer; cursor:hand;width: 324px; height: 400px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5263351040201349378" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In conclusion I need to say that you should log in on your debugged application with the same user account which was used for the client and debugger sessions.&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_y4-EcQ-sclI/SQszmRI1SNI/AAAAAAAAAV8/O4KvqCwmxkc/s1600-h/AxaptaLoginDebugger.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 59px;" src="http://4.bp.blogspot.com/_y4-EcQ-sclI/SQszmRI1SNI/AAAAAAAAAV8/O4KvqCwmxkc/s400/AxaptaLoginDebugger.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5263357322041051346" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Lucky hunt for bugs!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-1785193397040149500?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/1785193397040149500/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=1785193397040149500' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/1785193397040149500'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/1785193397040149500'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2008/10/debugging-code-on-business-connector.html' title='Debugging code on Business Connector'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_y4-EcQ-sclI/SQst1yusykI/AAAAAAAAAVk/TsNmAlLcFsE/s72-c/AxaptaDebugEnabling.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-1855215991163266808</id><published>2008-10-28T15:52:00.003-04:00</published><updated>2008-10-31T09:49:27.943-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='for revising'/><title type='text'>Using Web Service With Business Connector Illustration</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_y4-EcQ-sclI/SQdvAHf-mhI/AAAAAAAAAVM/YI5JQZgKWV4/s1600-h/AxaptaUsingByWebServiceConcept.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://4.bp.blogspot.com/_y4-EcQ-sclI/SQdvAHf-mhI/AAAAAAAAAVM/YI5JQZgKWV4/s400/AxaptaUsingByWebServiceConcept.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5262296737409571346" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-1855215991163266808?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/1855215991163266808/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=1855215991163266808' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/1855215991163266808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/1855215991163266808'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2008/10/using-web-service-with-business.html' title='Using Web Service With Business Connector Illustration'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_y4-EcQ-sclI/SQdvAHf-mhI/AAAAAAAAAVM/YI5JQZgKWV4/s72-c/AxaptaUsingByWebServiceConcept.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-2533721528423246257</id><published>2008-10-21T18:16:00.005-04:00</published><updated>2009-05-15T15:01:13.505-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='image'/><category scheme='http://www.blogger.com/atom/ns#' term='form'/><category scheme='http://www.blogger.com/atom/ns#' term='grid'/><category scheme='http://www.blogger.com/atom/ns#' term='window'/><title type='text'>Images on Form and Thumbnails in Grid</title><content type='html'>It is not a very complicated topic when it comes to show pictures on a form with &lt;span class="Apple-style-span" style="font-style: italic;"&gt;Window &lt;/span&gt;control, but showing them in a grid caused some difficulties to me.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here is the very simple project &lt;a href="http://kuantro.gotdns.com/axpro/Images&amp;amp;ThumbnailsInGrid.xpo"&gt;Images&amp;amp;ThumbnailsInGrid&lt;/a&gt; that will show you the way if are a little bit lost.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_y4-EcQ-sclI/SP5XLW0Pd4I/AAAAAAAAAVE/PAneyvs97o4/s1600-h/Images%26ThumbnailsInGrid.jpg"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_y4-EcQ-sclI/SP5XLW0Pd4I/AAAAAAAAAVE/PAneyvs97o4/s400/Images%26ThumbnailsInGrid.jpg" alt="" id="BLOGGER_PHOTO_ID_5259737267430193026" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt; You can construct Image objects from the following file types:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Raster (bitmap) formats - .bmp, .gif, .jpg, .png, .tiff, and .exif&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Vector formats - .emf and .wmf&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;By the way, do not forget about MSDN:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa853595%28AX.10%29.aspx"&gt;In Microsoft Dynamics AX, the Image class is bound to the client. The class can no longer be run from the server because of the security risks that are associated with file handling.&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-2533721528423246257?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/2533721528423246257/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=2533721528423246257' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/2533721528423246257'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/2533721528423246257'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2008/10/images-on-form-and-thumbnails-in-grid.html' title='Images on Form and Thumbnails in Grid'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_y4-EcQ-sclI/SP5XLW0Pd4I/AAAAAAAAAVE/PAneyvs97o4/s72-c/Images%26ThumbnailsInGrid.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-2351199351555397780</id><published>2008-10-17T20:16:00.003-04:00</published><updated>2008-10-17T20:20:10.215-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AIF'/><title type='text'>WCF and AIF in Dynamics 2009: Chatting with Michael Merz</title><content type='html'>&lt;span&gt;&lt;a id="ctl00_MainPlaceHolder_Starter_TitleLink" href="http://channel9.msdn.com/posts/benriga/WCF-and-AIF-in-Dynamics-2009-Chatting-with-Michael-Merz/"&gt;WCF and AIF in Dynamics 2009: Chatting with Michael Merz&lt;/a&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-2351199351555397780?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/2351199351555397780/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=2351199351555397780' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/2351199351555397780'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/2351199351555397780'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2008/10/wcf-and-aif-in-dynamics-2009-chatting.html' title='WCF and AIF in Dynamics 2009: Chatting with Michael Merz'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-4271349601246878827</id><published>2008-10-17T16:50:00.003-04:00</published><updated>2008-10-17T17:02:13.262-04:00</updated><title type='text'>initParmDefault()</title><content type='html'>Just to remember: if you want to set up some value to a field on a dialog by default you should override standard method &lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;initParmDefault()&lt;/span&gt;.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;First time, AX takes it as a value, then it saves and restores the values the user input in the dialog form.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To see how it works just override this method for the class &lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;TestDemoRunBaseBacth &lt;/span&gt;as the following:&lt;/div&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; initParmDefault()&lt;br /&gt;{&lt;br /&gt; super();&lt;br /&gt;&lt;br /&gt; i=11;&lt;br /&gt;}&lt;/pre&gt;All values saved by &lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;Pack()&lt;/span&gt;method can be seen in Usage Data form: &lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;Tools\Options\Usage Data&lt;/span&gt; [Jobs - for classes]&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;img src="http://2.bp.blogspot.com/_y4-EcQ-sclI/SPj8__6E1MI/AAAAAAAAAU8/tgYjg7d-tCY/s400/SavedValues.jpg" style="margin:0 0 10px 10px;cursor:pointer; cursor:hand;" border="0" alt="" id="BLOGGER_PHOTO_ID_5258230741372032194" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-4271349601246878827?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/4271349601246878827/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=4271349601246878827' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/4271349601246878827'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/4271349601246878827'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2008/10/initparmdefault.html' title='initParmDefault()'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_y4-EcQ-sclI/SPj8__6E1MI/AAAAAAAAAU8/tgYjg7d-tCY/s72-c/SavedValues.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-2555000002716356346</id><published>2008-10-03T09:47:00.005-04:00</published><updated>2008-10-03T10:06:46.106-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><title type='text'>Connected Systems Conference 2008 (Montreal)</title><content type='html'>&lt;div&gt;Through &lt;a href="http://geekswithblogs.net/LeonidGaneline/Default.aspx"&gt;Leonid Ganeline&lt;/a&gt;'s help I got an invitation from a &lt;a href="http://www.btug.biz/"&gt;BizTalk User Group&lt;/a&gt; to this event. I to attend &lt;a href="http://msevents.microsoft.com/CUI/InviteOnly.aspx?EventID=81-AF-42-B6-B3-1C-89-6D-4F-20-1E-DF-C5-B5-C2-E7&amp;amp;Culture=en-CA" target="_blank"&gt;Montreal&lt;/a&gt;: November 6, 2008 Thursday&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;What it is about:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;i&gt;We will share the latest on Microsoft’s SOA offering - as well as details of the strategies and technologies that Microsoft is delivering today, over the next year, and into the future.  At this event, you will learn:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;BizTalk today and through FY’09&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Microsoft’s Roadmap for the future&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Microsoft’s “Real world” SOA vision, positioning and messaging&lt;/li&gt;&lt;li&gt;Service Virtualization &amp;amp; ESB guidance 2.0&lt;br /&gt;&lt;/li&gt;&lt;li&gt;RFID &amp;amp; mobility of BizTalk&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/i&gt;&lt;div&gt;&lt;a href="http://blogs.msdn.com/pkelcey/archive/2008/09/16/the-canadian-connected-systems-conference-2008.aspx"&gt;Connected Systems Conference 2008 (Montreal)&lt;/a&gt; (more detail)&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-2555000002716356346?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/2555000002716356346/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=2555000002716356346' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/2555000002716356346'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/2555000002716356346'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2008/10/connected-systems-conference-2008.html' title='Connected Systems Conference 2008 (Montreal)'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-758359353868588760</id><published>2008-09-26T11:27:00.002-04:00</published><updated>2008-09-26T11:31:25.362-04:00</updated><title type='text'>Run Class Method Pattern</title><content type='html'>just to keep in mind a pattern for Run method recommended by Best Practices for classes&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; run()&lt;br /&gt;{&lt;br /&gt;    #OCCRetryCount&lt;br /&gt;    ;&lt;br /&gt;    &lt;span class="kwrd"&gt;try&lt;/span&gt;&lt;br /&gt;    {&lt;br /&gt;        ttsbegin;&lt;br /&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;this&lt;/span&gt;.adjustSetupTime();&lt;br /&gt;&lt;br /&gt;        ttscommit;&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;this&lt;/span&gt;.prodCostEstimation();&lt;br /&gt;    }&lt;br /&gt;    &lt;span class="kwrd"&gt;catch&lt;/span&gt; (Exception::Deadlock)&lt;br /&gt;    {&lt;br /&gt;            retry;&lt;br /&gt;    }&lt;br /&gt;    &lt;span class="kwrd"&gt;catch&lt;/span&gt; (Exception::UpdateConflict)&lt;br /&gt;    {&lt;br /&gt;        &lt;span class="kwrd"&gt;if&lt;/span&gt; (appl.ttsLevel() == 0)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (xSession::currentRetryCount() &amp;gt;= #RetryNum)&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;throw&lt;/span&gt; Exception::UpdateConflictNotRecovered;&lt;br /&gt;            }&lt;br /&gt;            &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;            {&lt;br /&gt;                retry;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;throw&lt;/span&gt; Exception::UpdateConflict;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-758359353868588760?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/758359353868588760/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=758359353868588760' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/758359353868588760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/758359353868588760'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2008/09/run-class-method-pattern.html' title='Run Class Method Pattern'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-7605706146157819306</id><published>2008-08-14T16:22:00.003-04:00</published><updated>2009-02-18T09:43:29.238-05:00</updated><title type='text'>Method Overloading</title><content type='html'>Sometimes we need to change the standard behaviour of form controls. It is not a big deal when when it concerns overriding form controls' methods in design time in AOT. But when it comes to doing that dynamically it may not be as simple as a piece of cake.&lt;br /&gt;&lt;br /&gt;From the beginning the goal was to make sorting functionality on the grid created by &lt;span style="font-family:courier new;"&gt;SysTableLookup &lt;/span&gt;class impossible for the user. It might have been a good solution to change the code like the following&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;formRun         = classfactory.formRunClass(args);&lt;br /&gt;form            = formRun.form();&lt;br /&gt;&lt;span class="rem"&gt;// allow the class to react on the form's events&lt;/span&gt;&lt;br /&gt;formRun.controlMethodOverload(&lt;span class="kwrd"&gt;true&lt;/span&gt;);&lt;br /&gt;formRun.controlMethodOverloadObject(&lt;span class="kwrd"&gt;this&lt;/span&gt;);&lt;br /&gt;&lt;span class="rem"&gt;// here override Sorting on all datafields added on the grid&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;this&lt;/span&gt;.overrideSortMethodOnDatafields(form);&lt;br /&gt;&lt;span class="rem"&gt;//&lt;--&lt;/span&gt;&lt;br /&gt;formRun.init();&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;but this class creates &lt;span style="font-family:courier new;"&gt;Datafields &lt;/span&gt;on the grid and names for these &lt;span style="font-family:courier new;"&gt;FormBuildControls &lt;/span&gt;are assigned by Axapta in an unpredictable way. So it was not possible to create methods like &lt;span style="font-family:courier new;"&gt;FormNameControlName_Sort()&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;pre class="csharpcode"&gt;formBuildControl = _formBuildGridControl.addDataField(_formBuildDataSource.id(), fieldId);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;There is another way to do that. With &lt;a href="http://axforum.info/forums/showthread.php?p=174613"&gt;the big help of AxForum&lt;/a&gt; I created the class &lt;span style="font-family:courier new;"&gt;SysTableLookupWithoutSort &lt;/span&gt;which extends the system class with the new key method:&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; turnSortingOff(Form _form)&lt;br /&gt;{&lt;br /&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt;                             i;&lt;br /&gt; TreeNode                        gridNode, controlNode, methodsNode;&lt;br /&gt; MemberFunction                  newMethod;&lt;br /&gt; str                             source = &lt;span class="str"&gt;'public int sort(SortOrder _sortDirection){; return 0;}'&lt;/span&gt;;&lt;br /&gt; TreeNodeIterator                iterator;&lt;br /&gt; ;&lt;br /&gt; gridNode = _form.AOTfindChild(&lt;span class="str"&gt;'Designs'&lt;/span&gt;);&lt;br /&gt; gridNode = gridNode.AOTfindChild(&lt;span class="str"&gt;'Design'&lt;/span&gt;);&lt;br /&gt; gridNode = gridNode.AOTfirstChild();&lt;br /&gt; iterator = gridNode.AOTiterator();&lt;br /&gt; controlNode = iterator.next();&lt;br /&gt; &lt;span class="rem"&gt;//take the first datafield&lt;/span&gt;&lt;br /&gt; controlNode = iterator.next();&lt;br /&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;.setCompilerWarningsOff();&lt;br /&gt; &lt;span class="kwrd"&gt;for&lt;/span&gt; (i = 1; i &amp;lt;= conlen(lookupItems); i++)&lt;br /&gt; {&lt;br /&gt;         &lt;span class="rem"&gt;//override sort method&lt;/span&gt;&lt;br /&gt;         methodsNode = controlNode.AOTfindChild(&lt;span class="str"&gt;'Methods'&lt;/span&gt;);&lt;br /&gt;         newMethod   = methodsNode.AOTadd(&lt;span class="str"&gt;'sort'&lt;/span&gt;);&lt;br /&gt;         newMethod.AOTsetSource(source, &lt;span class="kwrd"&gt;false&lt;/span&gt;);&lt;br /&gt;         &lt;span class="rem"&gt;//compile the method&lt;/span&gt;&lt;br /&gt;         newMethod.AOTcompile();&lt;br /&gt;         controlNode = iterator.next();&lt;br /&gt; }&lt;br /&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;.setCompilerWarningsOn();&lt;br /&gt;}&lt;/pre&gt;Just to show how this class works in comparison with the standard class (without the sorting functionality) I also added &lt;span style="font-family:courier new;"&gt;DemoMethodOverloadingClass &lt;/span&gt;class.&lt;br /&gt;&lt;br /&gt;Moreover this class shows how various &lt;span style="font-family:courier new;"&gt;FormControls &lt;/span&gt;can be added on a form from scratch and their methods can be overridden from code as well: &lt;span style="font-family:courier new;"&gt;Button&lt;/span&gt;, &lt;span style="font-family:courier new;"&gt;StringEdit&lt;/span&gt;, &lt;span style="font-family:courier new;"&gt;Datafields&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;You can import this &lt;a href="http://kuantro.gotdns.com/axpro/DemoMethodOverloadingClass.xpo"&gt;DemoMethodOverloadingClass &lt;/a&gt;project to make your experiments with dynamic programming.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-7605706146157819306?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/7605706146157819306/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=7605706146157819306' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/7605706146157819306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/7605706146157819306'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2008/08/method-overloading.html' title='Method Overloading'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-1012339435806981915</id><published>2008-08-14T15:41:00.003-04:00</published><updated>2008-08-14T15:58:13.425-04:00</updated><title type='text'>memory leak in Axapta 3.0</title><content type='html'>Recently having got an error message after using AOS for batch processing I started digging this problem and finally found out that was described in &lt;a href="http://www.geocities.com/axaptafreak/Files/SP5_Fixlists/tech_1_sp5.html"&gt;Fixlist of &lt;span style="font-weight: bold;"&gt;Service Pack 5&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;(&lt;span style="font-style: italic;"&gt;Problem #1748        Processing some X++ code constructions resulted in a memory leak.&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_y4-EcQ-sclI/SKSNkubNGrI/AAAAAAAAAPw/JeyTXvKuZ2w/s1600-h/MemoryLeak.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_y4-EcQ-sclI/SKSNkubNGrI/AAAAAAAAAPw/JeyTXvKuZ2w/s400/MemoryLeak.jpg" alt="" id="BLOGGER_PHOTO_ID_5234464328988302002" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;You may see the same error by creating a job like the following one as it was suggested in Fixlist in order to reproduce the message. I just increased the number of iteration and an info to see the progress.&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; MemoryLeakTest(Args _args)&lt;br /&gt;{&lt;br /&gt;   container custcont;&lt;br /&gt;   &lt;span class="kwrd"&gt;int&lt;/span&gt; loop;&lt;br /&gt;   Custtable custtable;&lt;br /&gt;   ;&lt;br /&gt;   select custtable;&lt;br /&gt;   custcont = conins(custcont,1,custtable.data());&lt;br /&gt;   &lt;span class="kwrd"&gt;for&lt;/span&gt;(loop = 1; loop &amp;lt;= 100000; loop++)&lt;br /&gt;   {&lt;br /&gt;   infolog.add(exception::Info, strfmt(&lt;span class="str"&gt;'loop %1'&lt;/span&gt;, loop));&lt;br /&gt;   [custtable] = conpeek(custcont,1); &lt;span class="rem"&gt;//memory leak&lt;/span&gt;&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-1012339435806981915?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/1012339435806981915/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=1012339435806981915' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/1012339435806981915'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/1012339435806981915'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2008/08/memory-leak-in-axapta-30.html' title='memory leak in Axapta 3.0'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_y4-EcQ-sclI/SKSNkubNGrI/AAAAAAAAAPw/JeyTXvKuZ2w/s72-c/MemoryLeak.jpg' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-8961932687685731071</id><published>2008-08-04T17:33:00.005-04:00</published><updated>2009-05-15T15:05:29.796-04:00</updated><title type='text'>Class Universal Field Changer (xpo project)</title><content type='html'>&lt;a href="http://alexvoy.blogspot.com/2008/07/universal-field-changer-xpo-project.html"&gt;As I promised before&lt;/a&gt; I realized this project as a class. It was full of fun and incredible adventurous. &lt;br /&gt;&lt;br /&gt;But anyway here is the &lt;a href="http://kuantro.gotdns.com/axpro/Class_UniversalFieldChanger.xpo"&gt;Class_UniversalFieldChanger&lt;/a&gt; which provides you with the same functionality but it does not require importing something else like tables.&lt;br /&gt;&lt;br /&gt;Also I am going to add my comments regarding using temporary tables, creating them from code, adding them methods dynamically and other tricks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-8961932687685731071?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/8961932687685731071/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=8961932687685731071' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/8961932687685731071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/8961932687685731071'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2008/08/class-universal-field-changer-xpo.html' title='Class Universal Field Changer (xpo project)'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-3181708875055710169</id><published>2008-07-28T17:14:00.007-04:00</published><updated>2008-07-28T17:34:16.569-04:00</updated><title type='text'>DAX Help Creation Quick Information</title><content type='html'>It may be a very good idea to provide your customer with a full documentation about customisations made during the project in .chm file - standard format of Microsoft Dynamics AX help. It can be distributed and maintained easier and more flexible.&lt;br /&gt;&lt;br /&gt;By virtue of &lt;a href="http://daxguy.blogspot.com/"&gt;&lt;span&gt;Arijit Basu&lt;/span&gt; (DAX Guy) blog&lt;/a&gt; I created this very simple help project &lt;a href="http://kuantro.gotdns.com/axpro/DAXHelpCreation.chm"&gt;DAXHelpCreation.chm&lt;/a&gt; which can be decompiled and analysed in order to create your own help project.&lt;br /&gt;&lt;br /&gt;It includes &lt;a href="http://daxguy.blogspot.com/2007/01/dax-help.html"&gt;DAX Guy posting itself&lt;/a&gt; as the first article, then my short notes about .html files preparation and, finally, the entire project from &lt;a href="https://mbs.microsoft.com/partnersource/documentation/helptutorials/daxuahelpkit20061214.htm?printpage=false"&gt;Microsoft Help Kit&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Create the f. manual!&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-3181708875055710169?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/3181708875055710169/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=3181708875055710169' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/3181708875055710169'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/3181708875055710169'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2008/07/dax-help-creation-quick-information.html' title='DAX Help Creation Quick Information'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-8655289849432357029</id><published>2008-07-17T16:48:00.004-04:00</published><updated>2009-02-18T09:52:30.246-05:00</updated><title type='text'>AppDoc Bug: HTMLHelpFile property is unavailable in DAX2009</title><content type='html'>As far as I see neither this property nor &lt;span style="font-family:courier new;"&gt;HTMHelpTopic &lt;/span&gt;are available for  newly created objects in Application Documentation branch of AOT even if I  set &lt;span style="font-family:courier new;"&gt;HTMLFileEnabled &lt;/span&gt;to &lt;span style="font-family:courier new;"&gt;Yes&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;The only cure is to restart the client.&lt;br /&gt;&lt;br /&gt;Moreover, after that if you first choose anything but your newly created  object in Application Documentation branch (if you e.g. search for it by  typing its first letters of the name) or the current element you are working  with in the branch loses the focus that is the case - you now cannot change  these properties.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_y4-EcQ-sclI/SH-0eMRkQKI/AAAAAAAAAOI/Vimn-3ZIPGk/s1600-h/DAX2009HTMLHelpFileBug.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_y4-EcQ-sclI/SH-0eMRkQKI/AAAAAAAAAOI/Vimn-3ZIPGk/s400/DAX2009HTMLHelpFileBug.jpg" alt="" id="BLOGGER_PHOTO_ID_5224092523557044386" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Correct me, please, if I missed something.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-8655289849432357029?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/8655289849432357029/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=8655289849432357029' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/8655289849432357029'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/8655289849432357029'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2008/07/appdoc-bug-htmlhelpfile-property-is.html' title='AppDoc Bug: HTMLHelpFile property is unavailable in DAX2009'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_y4-EcQ-sclI/SH-0eMRkQKI/AAAAAAAAAOI/Vimn-3ZIPGk/s72-c/DAX2009HTMLHelpFileBug.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-2429666516138094842</id><published>2008-07-16T16:04:00.003-04:00</published><updated>2009-02-18T09:54:14.824-05:00</updated><title type='text'>Universal Field Changer (xpo project)</title><content type='html'>Sometimes we need to change the values of a group of records in a table at once. I hope this project will be useful in this meaning.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_y4-EcQ-sclI/SH5UvPKLrwI/AAAAAAAAAOA/mmk0B7qHS10/s1600-h/UniversalFieldChanger.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_y4-EcQ-sclI/SH5UvPKLrwI/AAAAAAAAAOA/mmk0B7qHS10/s200/UniversalFieldChanger.jpg" alt="" id="BLOGGER_PHOTO_ID_5223705788296179458" border="0" /&gt;&lt;/a&gt;It allows you to choose a table with excluding some of them. After that you can browse the table and open it directly in AOT.&lt;br /&gt;&lt;br /&gt;You then can choose a field from the table excluding or not system fields and look through existing values to pick up or just input a new value.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Change &lt;/span&gt;function works &lt;span style="font-style: italic;"&gt;only &lt;/span&gt;with a result of the query which text you can see as well. No checks nor validatings!&lt;br /&gt;&lt;br /&gt;Use it at your own risk and do not forget how it can be dangerous for the system to change their fields directly!&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://alexvoy.blogspot.com/2008/08/class-universal-field-changer-xpo.html"&gt;project is moved to&lt;/a&gt;. Tested on version 4.0.&lt;br /&gt;&lt;br /&gt;Next, I am going to implement it as a class.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-2429666516138094842?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/2429666516138094842/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=2429666516138094842' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/2429666516138094842'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/2429666516138094842'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2008/07/universal-field-changer-xpo-project.html' title='Universal Field Changer (xpo project)'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_y4-EcQ-sclI/SH5UvPKLrwI/AAAAAAAAAOA/mmk0B7qHS10/s72-c/UniversalFieldChanger.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-2286354328235253464</id><published>2008-07-02T09:30:00.003-04:00</published><updated>2008-07-02T09:44:50.948-04:00</updated><title type='text'>Go to the main table option</title><content type='html'>It was something new for me.&lt;br /&gt;&lt;br /&gt;To have &lt;span style="font-family:courier new;"&gt;Go to the main table&lt;/span&gt; option working properly you should create a form and appropriate &lt;span style="font-family:courier new;"&gt;Display Menu Item &lt;/span&gt;for the table with the same name.&lt;br /&gt;&lt;br /&gt;Otherwise you will get a message like this:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;No object specified on menu item XXXX_TableName&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-2286354328235253464?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/2286354328235253464/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=2286354328235253464' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/2286354328235253464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/2286354328235253464'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2008/07/go-to-main-table-option.html' title='Go to the main table option'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-2589605419921809967</id><published>2008-05-29T14:59:00.002-04:00</published><updated>2008-05-29T15:03:04.005-04:00</updated><title type='text'>Uninstall SQL 2005 Embedded Edition SSEE</title><content type='html'>Looking for how to uninstall SQL 2005 Embedded Edition SSEE? Me too. There are a lot of links in the web but I think the best one is the following from Microsoft TechNet.&lt;br /&gt;&lt;h3&gt;&lt;span style="font-size:85%;"&gt;&lt;a href="http://technet2.microsoft.com/WindowsServer/en/library/94d1385f-4872-4c29-8822-3a4ec5e45ae41033.mspx?mfr=true"&gt;Uninstalling WSUS 3.0 does not uninstall the database instance&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;&lt;div style="font-family: arial;" class="intro"&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;If WSUS 3.0 is uninstalled, the database instance will not be uninstalled. The instance may be shared by more than one application, and will cause other applications to fail if it is removed.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;If it is necessary to uninstall Windows Internal Database, the following commands will uninstall the application:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;(on 32-bit platforms)&lt;/span&gt;&lt;/p&gt;&lt;pre class="codeSample"&gt;&lt;span style="font-size:85%;"&gt;msiexec /x {CEB5780F-1A70-44A9-850F-DE6C4F6AA8FB} callerid=ocsetup.exe&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;(on 64-bit platforms)&lt;/span&gt;&lt;/p&gt;&lt;pre class="codeSample"&gt;&lt;span style="font-size:85%;"&gt;msiexec /x {BDD79957-5801-4A2D-B09E-852E7FA64D01} callerid=ocsetup.exe&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;If you wish to uninstall Windows Internal Database Service Pack 2 from Windows Server 2008, you may do so by means of Server Manager.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;However, the removal of the application may not remove the default .mdf and .ldf files, which will cause a subsequent WSUS 3.0 installation to fail. These files can be deleted from the %windir%\SYSMSI\SSEE directory.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;h3&gt;&lt;br /&gt;&lt;/h3&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-2589605419921809967?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/2589605419921809967/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=2589605419921809967' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/2589605419921809967'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/2589605419921809967'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2008/05/uninstall-sql-2005-embedded-edition.html' title='Uninstall SQL 2005 Embedded Edition SSEE'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-8204146227767577256</id><published>2008-05-29T09:19:00.002-04:00</published><updated>2008-05-29T10:10:09.348-04:00</updated><title type='text'>Creating additional environment</title><content type='html'>If you have chosen to create an additional environment by means of copy-paste and backup-restore commands do not forget about one little thing.&lt;br /&gt;&lt;br /&gt;1. In MS SQL management utility do backup of the database of the environment that you have chosen as an 'original' one.&lt;br /&gt;&lt;br /&gt;2. Create another database and restore your backup to it (restore transactions logs backup too if presented).&lt;br /&gt;&lt;br /&gt;2.1. &lt;span style="font-style: italic;"&gt;(A litle important thing!)&lt;/span&gt; In the database you should  find &lt;span style="font-family:courier new;"&gt;SysServerSessions &lt;/span&gt;table and delete all rows there.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_y4-EcQ-sclI/SD65I3tfdTI/AAAAAAAAAMA/F_VaWQlwujM/s1600-h/SysServerSessionsTable.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_y4-EcQ-sclI/SD65I3tfdTI/AAAAAAAAAMA/F_VaWQlwujM/s200/SysServerSessionsTable.jpg" alt="" id="BLOGGER_PHOTO_ID_5205801781331719474" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;3. Copy-paste &lt;span style="font-style: italic;"&gt;C:\Program Files\Microsoft Dynamics AX\40\Application\Appl\Standard&lt;/span&gt; or other folder where your original application was installed with other appropriate name. E.g.:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;C:\Program Files\Microsoft Dynamics AX\40\Application\Appl\Standard_Test&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;4. From DAX Setup install additional Object Server  having pointed this instance to the recently created database and unchecked &lt;span style="font-family:courier new;"&gt;Start the AOS Windows service as part of installation &lt;/span&gt;option.&lt;br /&gt;&lt;br /&gt;5. With Microsoft Dynamics AX Server Configuration Utility choose the new instance of AOS, create a new configuration based on the active configuration and set &lt;span style="font-family:courier new;"&gt;Application instance&lt;/span&gt; to the new one.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-8204146227767577256?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/8204146227767577256/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=8204146227767577256' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/8204146227767577256'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/8204146227767577256'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2008/05/creating-additional-environment.html' title='Creating additional environment'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_y4-EcQ-sclI/SD65I3tfdTI/AAAAAAAAAMA/F_VaWQlwujM/s72-c/SysServerSessionsTable.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-254058566629972827</id><published>2008-05-14T11:44:00.009-04:00</published><updated>2008-05-14T12:39:56.987-04:00</updated><title type='text'>Language in user options</title><content type='html'>Accidentally changed &lt;span style="font-family:courier new;"&gt;Language &lt;/span&gt;in &lt;span style="font-family:courier new;"&gt;User options&lt;/span&gt; can cause an issue with logging in to the configuration if you have not the appropriate licence for the language. In this case you might see something alike the following.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_y4-EcQ-sclI/SCsSFJ2LDaI/AAAAAAAAAK4/NW85a6Qqy1s/s1600-h/Deutsch.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_y4-EcQ-sclI/SCsSFJ2LDaI/AAAAAAAAAK4/NW85a6Qqy1s/s400/Deutsch.jpg" alt="" id="BLOGGER_PHOTO_ID_5200270074481151394" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;or&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_y4-EcQ-sclI/SCsSJZ2LDbI/AAAAAAAAALA/uldBiCEsLow/s1600-h/English.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_y4-EcQ-sclI/SCsSJZ2LDbI/AAAAAAAAALA/uldBiCEsLow/s400/English.jpg" alt="" id="BLOGGER_PHOTO_ID_5200270147495595442" border="0" /&gt;&lt;/a&gt;or even&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_y4-EcQ-sclI/SCsSNJ2LDcI/AAAAAAAAALI/yBlyfiIjI18/s1600-h/Japanese.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_y4-EcQ-sclI/SCsSNJ2LDcI/AAAAAAAAALI/yBlyfiIjI18/s400/Japanese.jpg" alt="" id="BLOGGER_PHOTO_ID_5200270211920104898" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The simplest way to fix it is to change the language in &lt;span style="font-family:courier new;"&gt;User options&lt;/span&gt; but if you have no administrator rights or the administrator is yourself... In this case you should use &lt;span style="font-style: italic;"&gt;Microsoft Dynamics AX Configuration Utility&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Set &lt;span style="font-family:courier new;"&gt;Configuration command to run at kernel startup&lt;/span&gt; parameter to the value, i.g.,&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-language=en-us &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;or another correctly licenced language.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_y4-EcQ-sclI/SCsTp52LDfI/AAAAAAAAALg/PMj_1cQZjVM/s1600-h/ConfigurationParameter.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_y4-EcQ-sclI/SCsTp52LDfI/AAAAAAAAALg/PMj_1cQZjVM/s400/ConfigurationParameter.jpg" alt="" id="BLOGGER_PHOTO_ID_5200271805352971762" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;It will override the value chosen in the user option and the configuration then works.&lt;br /&gt;Now, you are allowed to say to the system - Speak My Language!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_y4-EcQ-sclI/SCsSTp2LDeI/AAAAAAAAALY/CTd5ra_piOM/s1600-h/UserOptions.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_y4-EcQ-sclI/SCsSTp2LDeI/AAAAAAAAALY/CTd5ra_piOM/s400/UserOptions.jpg" alt="" id="BLOGGER_PHOTO_ID_5200270323589254626" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-254058566629972827?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/254058566629972827/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=254058566629972827' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/254058566629972827'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/254058566629972827'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2008/05/language-in-user-options.html' title='Language in user options'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_y4-EcQ-sclI/SCsSFJ2LDaI/AAAAAAAAAK4/NW85a6Qqy1s/s72-c/Deutsch.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-3132335303916342284</id><published>2008-05-13T15:49:00.008-04:00</published><updated>2008-05-13T16:25:41.742-04:00</updated><title type='text'>How to delete modifications on few layers</title><content type='html'>As it is well known:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Modifications are saved in an application layer which is also specified in the&lt;/span&gt; &lt;span style="font-style: italic;"&gt;configuration. All modifications to application objects in a layer are saved in a&lt;/span&gt; &lt;span style="font-style: italic;"&gt;file named ax&lt;layer&gt;.aod.&lt;/layer&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;layer&gt;&lt;br /&gt;&lt;/layer&gt;&lt;/span&gt;If you need to brush off you configuration the simplest way is to do that is just to delete all those files on the file server. The only issue may be if the system is running and, therefore, those are locked.&lt;br /&gt;&lt;br /&gt;If that case you have the other way. For example you need to dispose everything that was made on VAR and USR layers.&lt;br /&gt;&lt;br /&gt;Open the AOT and create a new project, e.g. &lt;span style="font-style: italic;"&gt;LayersVarUsr&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_y4-EcQ-sclI/SCn3sZ2LDVI/AAAAAAAAAKQ/5rOUVHYpFPw/s1600-h/CreateProject.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_y4-EcQ-sclI/SCn3sZ2LDVI/AAAAAAAAAKQ/5rOUVHYpFPw/s400/CreateProject.jpg" alt="" id="BLOGGER_PHOTO_ID_5199959587000356178" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Open it and use &lt;span style="font-family:courier new;"&gt;Advanced Filter/Sort&lt;/span&gt; tool on the toolbar or Ctrl-F3&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_y4-EcQ-sclI/SCn3wJ2LDWI/AAAAAAAAAKY/98peKAb9Mjk/s1600-h/Filter.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_y4-EcQ-sclI/SCn3wJ2LDWI/AAAAAAAAAKY/98peKAb9Mjk/s400/Filter.jpg" alt="" id="BLOGGER_PHOTO_ID_5199959651424865634" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Check AOT and open Inquiry form by clicking &lt;span style="font-family:courier new;"&gt;Select &lt;/span&gt;button&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_y4-EcQ-sclI/SCn3zp2LDXI/AAAAAAAAAKg/k7eyb_50bBg/s1600-h/Filter2.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_y4-EcQ-sclI/SCn3zp2LDXI/AAAAAAAAAKg/k7eyb_50bBg/s400/Filter2.jpg" alt="" id="BLOGGER_PHOTO_ID_5199959711554407794" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Here you should set the rule for &lt;span style="font-family:courier new;"&gt;utilLevel &lt;/span&gt;field, in our case VAR..USP to include all modifications made on these layers with patch ones as well.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_y4-EcQ-sclI/SCn33J2LDYI/AAAAAAAAAKo/Pe4EfCsxPMI/s1600-h/Inquiry.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_y4-EcQ-sclI/SCn33J2LDYI/AAAAAAAAAKo/Pe4EfCsxPMI/s400/Inquiry.jpg" alt="" id="BLOGGER_PHOTO_ID_5199959771683949954" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Be patient, it can take much time. When the DAX finishes you will get everything to accomplish your seek-and-destroy mission.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_y4-EcQ-sclI/SCn3552LDZI/AAAAAAAAAKw/9aPerLOLKVc/s1600-h/Layers.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_y4-EcQ-sclI/SCn3552LDZI/AAAAAAAAAKw/9aPerLOLKVc/s400/Layers.jpg" alt="" id="BLOGGER_PHOTO_ID_5199959818928590226" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;By the way, you can take advantage of using &lt;span style="font-family:courier new;"&gt;Compare &lt;/span&gt;tool to decide what will next happen.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-3132335303916342284?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/3132335303916342284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=3132335303916342284' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/3132335303916342284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/3132335303916342284'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2008/05/how-to-delete-few-layers.html' title='How to delete modifications on few layers'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_y4-EcQ-sclI/SCn3sZ2LDVI/AAAAAAAAAKQ/5rOUVHYpFPw/s72-c/CreateProject.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-4034439286336087509</id><published>2008-05-07T11:49:00.004-04:00</published><updated>2008-05-08T14:20:08.764-04:00</updated><title type='text'>Refreshing DataSources on Form</title><content type='html'>If you have added new fields or made any other changes to the table you can reflect all that on the related DataSource using by &lt;span style="font-family:courier new;"&gt;Restore &lt;/span&gt;command on the appropriate Form&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_y4-EcQ-sclI/SCHRJTU5CHI/AAAAAAAAAI8/ouhSLNpfUiA/s1600-h/Restore.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_y4-EcQ-sclI/SCHRJTU5CHI/AAAAAAAAAI8/ouhSLNpfUiA/s400/Restore.jpg" alt="" id="BLOGGER_PHOTO_ID_5197665402699188338" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Quoted from the manual:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Notice that after accessing the form in the AOT the definition of the data source&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;is cached locally in the definition of the form. If changes are made when you&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;create a new field in the underlying table, you must restore the form to access the&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;new field in the form. Remember to save the form before you click Restore from&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;the shortcut menu.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-4034439286336087509?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/4034439286336087509/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=4034439286336087509' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/4034439286336087509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/4034439286336087509'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2008/05/refreshing-datasources-on-form.html' title='Refreshing DataSources on Form'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_y4-EcQ-sclI/SCHRJTU5CHI/AAAAAAAAAI8/ouhSLNpfUiA/s72-c/Restore.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-2742663496346558088</id><published>2008-04-25T16:56:00.002-04:00</published><updated>2008-04-25T17:02:58.382-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='object'/><category scheme='http://www.blogger.com/atom/ns#' term='property'/><category scheme='http://www.blogger.com/atom/ns#' term='find'/><category scheme='http://www.blogger.com/atom/ns#' term='AOT'/><title type='text'>To find objects in AOT with particular properties</title><content type='html'>Sometimes I need to find objects in AOT with particular properties. &lt;span style="font-family: courier new;"&gt;Find tool&lt;/span&gt; (Ctrl-F) works great when you set &lt;span style="font-family: courier new;"&gt;Containing text&lt;/span&gt; field correctly.&lt;br /&gt;&lt;br /&gt;In the following case I tried to find all tables in AOT with &lt;span style="font-family: courier new;"&gt;Temporary&lt;/span&gt; property set to &lt;span style="font-family: courier new;"&gt;Yes&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_y4-EcQ-sclI/SBJFzCa7rXI/AAAAAAAAAI0/VjcYaNxpBV4/s1600-h/FindInAOTWithProperty.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_y4-EcQ-sclI/SBJFzCa7rXI/AAAAAAAAAI0/VjcYaNxpBV4/s400/FindInAOTWithProperty.jpg" alt="" id="BLOGGER_PHOTO_ID_5193290063437081970" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-2742663496346558088?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/2742663496346558088/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=2742663496346558088' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/2742663496346558088'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/2742663496346558088'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2008/04/to-find-objects-in-aot-with-particular.html' title='To find objects in AOT with particular properties'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_y4-EcQ-sclI/SBJFzCa7rXI/AAAAAAAAAI0/VjcYaNxpBV4/s72-c/FindInAOTWithProperty.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-7871370690056201523</id><published>2008-04-17T14:53:00.000-04:00</published><updated>2008-04-17T14:54:23.881-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debug'/><title type='text'>debug mode from code</title><content type='html'>run debug mode when &lt;span style="font-family: courier new;"&gt;expression &lt;/span&gt;is false&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Debug::assert(expression); &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-7871370690056201523?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/7871370690056201523/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=7871370690056201523' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/7871370690056201523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/7871370690056201523'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2008/04/debug-mode-from-code.html' title='debug mode from code'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-9015343829042685886</id><published>2008-04-17T12:58:00.004-04:00</published><updated>2008-04-17T13:23:51.136-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='InfoLog'/><category scheme='http://www.blogger.com/atom/ns#' term='SysInfoAction'/><title type='text'>SysInfoAction and InfoLog</title><content type='html'>To do an action from &lt;span style="font-family:courier new;"&gt;InfoLog &lt;/span&gt;dialog you need to create &lt;span style="font-family:courier new;"&gt;SysInfoAction &lt;/span&gt;using one of &lt;span style="font-family:courier new;"&gt;SysInfoAction_xx&lt;/span&gt; classes or create your own descendant class.&lt;br /&gt;&lt;br /&gt;For example, to allow the current user open &lt;span style="font-family:courier new;"&gt;E-mail parameters &lt;/span&gt;form by appropriate menu item:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Info('Check e-mail parameters,'',SysInfoAction_MenuFunction::newMenuItem('SysEmailParameters',MenuItemType::Display));&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-9015343829042685886?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/9015343829042685886/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=9015343829042685886' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/9015343829042685886'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/9015343829042685886'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2008/04/sysinfoaction-and-infolog.html' title='SysInfoAction and InfoLog'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-6565248715743603787</id><published>2008-04-14T10:06:00.001-04:00</published><updated>2008-04-14T10:08:33.943-04:00</updated><title type='text'>a little bug in MainMenu creation</title><content type='html'>Any time you add a submenu in &lt;span style="font-family: courier new;"&gt;MainMenu &lt;/span&gt;and try to delete it DAX crahses.&lt;br /&gt;&lt;br /&gt;true for:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Kernel version: 4.0.2163.0&lt;br /&gt;Application version: 4.0.2500.424&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-6565248715743603787?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/6565248715743603787/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=6565248715743603787' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/6565248715743603787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/6565248715743603787'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2008/04/little-bug-in-mainmenu-creation.html' title='a little bug in MainMenu creation'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-4986619588485633345</id><published>2008-04-08T10:49:00.010-04:00</published><updated>2008-04-08T11:29:49.784-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='online users'/><category scheme='http://www.blogger.com/atom/ns#' term='message'/><category scheme='http://www.blogger.com/atom/ns#' term='alert'/><title type='text'>Send alerts to online users in AX 4.0</title><content type='html'>When I started looking for how to send an alert to online users I found very few links on this topic. Here they are:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/aa834407.aspx"&gt;                          Managing alerts on MSDN&lt;/a&gt;    &lt;/li&gt;&lt;li&gt;&lt;a href="http://dynamicstech.blogspot.com/2007/04/how-to-setup-alerts-in-dynamics-ax-40.html"&gt;How to Setup Alerts in Dynamics Ax 4.0, on Venkat Raghavan Padmanabhan blog&lt;br /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://axaptafreak.blogspot.com/2007/03/send-message-to-online-user-in-dynamics.html"&gt;Send message to online user in Dynamics AX 4.0 (quick &amp;amp; dirty) on Helmut blog&lt;/a&gt;&lt;/li&gt;&lt;li&gt;and &lt;a href="http://casperkamal.spaces.live.com/Blog/cns%219138ED475277CD63%21376.entry?wa=wsignin1.0"&gt;Sending alerts through code without error in Ax,  Kamal's response to Helmut&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;h4 style="margin-bottom: 0px;" id="subjcns!9138ED475277CD63!376"&gt;&lt;span style="font-weight: normal;"&gt;I compiled everything and created the little project &lt;/span&gt;&lt;a href="http://kuantro.gotdns.com/axpro/AlertFromCode.xpo"&gt;&lt;span style="font-weight: bold;"&gt;AlertFromCode.xpo&lt;/span&gt;&lt;/a&gt; &lt;span style="font-weight: normal;"&gt;that can be useful in daily administrator work. A few words about that:&lt;br /&gt;&lt;/span&gt;&lt;/h4&gt;&lt;br /&gt;- &lt;span style="font-family:courier new;"&gt;Send Alerts&lt;/span&gt; button on &lt;span style="font-family:courier new;"&gt;Online Users &lt;/span&gt;&lt;span&gt;&lt;span style="font-weight: normal;"&gt;form&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_y4-EcQ-sclI/R_uJa3uSbwI/AAAAAAAAAHk/Z2jqre80oWE/s1600-h/OnlineUsersForm.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_y4-EcQ-sclI/R_uJa3uSbwI/AAAAAAAAAHk/Z2jqre80oWE/s400/OnlineUsersForm.jpg" alt="" id="BLOGGER_PHOTO_ID_5186890490574958338" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;- &lt;span style="font-family:courier new;"&gt;Send Alert&lt;/span&gt; dialog where a user can choose various options&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_y4-EcQ-sclI/R_uKB3uSbxI/AAAAAAAAAHs/nT58mKenSB4/s1600-h/SendAlertForm.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_y4-EcQ-sclI/R_uKB3uSbxI/AAAAAAAAAHs/nT58mKenSB4/s400/SendAlertForm.jpg" alt="" id="BLOGGER_PHOTO_ID_5186891160589856530" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;       for example, to send the alert by:&lt;br /&gt;&lt;ul&gt;&lt;li&gt; popup window inside AX environment (it can be seen on &lt;span style="font-family:courier new;"&gt;EventAlertInbox &lt;/span&gt;form)&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_y4-EcQ-sclI/R_uKGXuSbyI/AAAAAAAAAH0/QVQE6U4gI4E/s1600-h/Popup.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_y4-EcQ-sclI/R_uKGXuSbyI/AAAAAAAAAH0/QVQE6U4gI4E/s400/Popup.jpg" alt="" id="BLOGGER_PHOTO_ID_5186891237899267874" border="0" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt; e-mail to the mailboxes of recipients&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_y4-EcQ-sclI/R_uKKXuSbzI/AAAAAAAAAH8/nlo04Inavo8/s1600-h/E-mail.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_y4-EcQ-sclI/R_uKKXuSbzI/AAAAAAAAAH8/nlo04Inavo8/s400/E-mail.jpg" alt="" id="BLOGGER_PHOTO_ID_5186891306618744626" border="0" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;span style="font-family:courier new;"&gt;net send&lt;/span&gt; command to the computer which the user connected from&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_y4-EcQ-sclI/R_uKN3uSb0I/AAAAAAAAAIE/qkwrjdnhsKo/s1600-h/Netsend.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_y4-EcQ-sclI/R_uKN3uSb0I/AAAAAAAAAIE/qkwrjdnhsKo/s400/Netsend.jpg" alt="" id="BLOGGER_PHOTO_ID_5186891366748286786" border="0" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; moreover, it is possible to log results of e-mail and net sending attempts in &lt;span style="font-family:courier new;"&gt;Infolog &lt;/span&gt;(they are not stored in &lt;span style="font-family:courier new;"&gt;EventAlertInbox&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_y4-EcQ-sclI/R_uKR3uSb1I/AAAAAAAAAIM/pEneu_wR07g/s1600-h/Infolog.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_y4-EcQ-sclI/R_uKR3uSb1I/AAAAAAAAAIM/pEneu_wR07g/s400/Infolog.jpg" alt="" id="BLOGGER_PHOTO_ID_5186891435467763538" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Notes&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;Name of sender which placed in &lt;span style="font-family:courier new;"&gt;Subject &lt;/span&gt;of the message is taken from appropriate &lt;span style="font-family:courier new;"&gt;E-mail Templates&lt;/span&gt; which chosen in &lt;span style="font-family:courier new;"&gt;Alert Parameters&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Keep in mind that &lt;span style="font-family:courier new;"&gt;Alerter Service&lt;/span&gt; should be started on the client side in order to receive messages of &lt;span style="font-family:courier new;"&gt;net send&lt;/span&gt; command. If not the class will show the warning but it takes much time to wait for a response from the command.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-4986619588485633345?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/4986619588485633345/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=4986619588485633345' title='13 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/4986619588485633345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/4986619588485633345'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2008/04/send-alerts-to-online-users-in-ax-40.html' title='Send alerts to online users in AX 4.0'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_y4-EcQ-sclI/R_uJa3uSbwI/AAAAAAAAAHk/Z2jqre80oWE/s72-c/OnlineUsersForm.jpg' height='72' width='72'/><thr:total>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-5556046386791967562</id><published>2008-03-27T17:23:00.008-04:00</published><updated>2008-03-27T18:02:48.737-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='relations'/><title type='text'>Two Tables with Two Relations</title><content type='html'>Just to clarify to myself and maybe someone else how &lt;span style="font-weight: bold;"&gt;relations &lt;/span&gt;on tables work  I created this demo project &lt;a href="http://kuantro.gotdns.com/axpro/Demo2TablesRelations.xpo"&gt;&lt;span style="font-weight: bold;"&gt;Demo2TablesRelations.xpo&lt;/span&gt;&lt;/a&gt;.&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;There are two tables &lt;span style="font-family: courier new;"&gt;Orders2 &lt;/span&gt;and &lt;span style="font-family: courier new;"&gt;Collections &lt;/span&gt;with two relations defined on &lt;span style="font-family: courier new;"&gt;Orders2 &lt;/span&gt;that work as &lt;span style="font-style: italic;"&gt;dynalinks &lt;/span&gt;for &lt;span style="font-family: courier new;"&gt;Collections&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_y4-EcQ-sclI/R-wUpXuSbvI/AAAAAAAAAHE/KZBOTfO8y34/s1600-h/Relations.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_y4-EcQ-sclI/R-wUpXuSbvI/AAAAAAAAAHE/KZBOTfO8y34/s400/Relations.jpg" alt="" id="BLOGGER_PHOTO_ID_5182539972171951858" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;When an user chooses an item from &lt;span style="font-family: courier new;"&gt;Collection &lt;/span&gt;all records in the last are filtered in regards with &lt;span style="font-family: courier new;"&gt;CollectionType &lt;/span&gt;previously chosen on &lt;span style="font-family: courier new;"&gt;Orders &lt;/span&gt;form.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_y4-EcQ-sclI/R-wT3HuSbsI/AAAAAAAAAGs/HHz6j1Ul_ME/s1600-h/ChoosingItem.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_y4-EcQ-sclI/R-wT3HuSbsI/AAAAAAAAAGs/HHz6j1Ul_ME/s400/ChoosingItem.jpg" alt="" id="BLOGGER_PHOTO_ID_5182539108883525314" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;To change or add new records to &lt;span style="font-family: courier new;"&gt;Collection &lt;/span&gt;one can open the appropriate form of this table by pressing &lt;span style="font-family: courier new;"&gt;Collection &lt;/span&gt;button on &lt;span style="font-family: courier new;"&gt;Orders &lt;/span&gt;form but the relation should be cleared in &lt;span style="font-family: courier new;"&gt;Init &lt;/span&gt;method of &lt;span style="font-family: courier new;"&gt;Collection &lt;/span&gt;form.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    if (element.args() &amp;amp;&amp;amp; element.args().record().TableId == TableNum(Orders2))&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        Collection_ds.query().dataSourceNo(1).clearDynalinks();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_y4-EcQ-sclI/R-wT8HuSbtI/AAAAAAAAAG0/ER-yFHsTLXg/s1600-h/Collection.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_y4-EcQ-sclI/R-wT8HuSbtI/AAAAAAAAAG0/ER-yFHsTLXg/s400/Collection.jpg" alt="" id="BLOGGER_PHOTO_ID_5182539194782871250" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Finally, to stand up once, I added the filter option by &lt;span style="font-family: courier new;"&gt;CollectionType&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_y4-EcQ-sclI/R-wUAHuSbuI/AAAAAAAAAG8/GoAy2VsC6R4/s1600-h/CollectionFiltered.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_y4-EcQ-sclI/R-wUAHuSbuI/AAAAAAAAAG8/GoAy2VsC6R4/s400/CollectionFiltered.jpg" alt="" id="BLOGGER_PHOTO_ID_5182539263502348002" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;span style="font-family: courier new;font-size:78%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-5556046386791967562?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/5556046386791967562/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=5556046386791967562' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/5556046386791967562'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/5556046386791967562'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2008/03/two-tables-with-two-relations.html' title='Two Tables with Two Relations'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_y4-EcQ-sclI/R-wUpXuSbvI/AAAAAAAAAHE/KZBOTfO8y34/s72-c/Relations.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-2289617833436137844</id><published>2008-03-14T09:18:00.004-04:00</published><updated>2008-03-14T09:34:43.945-04:00</updated><title type='text'>Intercompany and direct delivery question (from Microsoft Axapta Discussion Community)</title><content type='html'>There was &lt;a href="http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.axapta&amp;amp;tid=c61d7e93-7e47-4f3a-9908-10a4c9623aac&amp;amp;cat=&amp;amp;lang=&amp;amp;cr=&amp;amp;sloc=en-us&amp;amp;p=1"&gt;a question&lt;/a&gt; about Packing Slip Update original customer Sales Order in Intercompany Direct Delivery.&lt;br /&gt;&lt;br /&gt;Looked like a bug but actually is &lt;a href="http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.axapta&amp;amp;mid=55dbebd9-9d2c-4f81-aa96-c3a7a6c20d5c"&gt;a feature&lt;/a&gt;. Do not forget about settings in AIF!&lt;br /&gt;&lt;br /&gt;Basic\Setup\Application Integration Framework\Endpoints\Action policies\Setup&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_y4-EcQ-sclI/R9p-bmyWxVI/AAAAAAAAAGE/de6JHkayS4k/s1600-h/InterCompanyActionSetup.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_y4-EcQ-sclI/R9p-bmyWxVI/AAAAAAAAAGE/de6JHkayS4k/s400/InterCompanyActionSetup.jpg" alt="" id="BLOGGER_PHOTO_ID_5177589734349129042" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-2289617833436137844?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/2289617833436137844/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=2289617833436137844' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/2289617833436137844'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/2289617833436137844'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2008/03/intercompany-and-direct-delivery.html' title='Intercompany and direct delivery question (from Microsoft Axapta Discussion Community)'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_y4-EcQ-sclI/R9p-bmyWxVI/AAAAAAAAAGE/de6JHkayS4k/s72-c/InterCompanyActionSetup.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-4344572790787880436</id><published>2008-02-27T10:48:00.003-05:00</published><updated>2008-02-27T11:02:42.026-05:00</updated><title type='text'>Transferring New Items Between Business Partners In SCM</title><content type='html'>Continuing the previous topic about sending outbounds documents from one base to another I found out an interesting point concerning the transferring information on new items between two or more bases.&lt;br /&gt;&lt;br /&gt;Say, we have two business partners which are called Customer and Vendor. The SCM between them function very simply.&lt;br /&gt;&lt;br /&gt;When Customer wants to get some needed goods purchase orders (Purchase Requisitions) with appropriate positions (Items) are sent to Vendor.&lt;br /&gt;&lt;br /&gt;But if Vendor start producing some new goods how can these positions (Items) be sent to Customer in order to synchronize their common space of Items table?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-4344572790787880436?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/4344572790787880436/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=4344572790787880436' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/4344572790787880436'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/4344572790787880436'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2008/02/transferring-new-items-between-business.html' title='Transferring New Items Between Business Partners In SCM'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-5139471263567360858</id><published>2008-02-25T17:21:00.006-05:00</published><updated>2008-02-26T12:21:50.759-05:00</updated><title type='text'>Microsoft Dynamics AX AIF: Sending Outbound Documents Automatically</title><content type='html'>there are questions only but I hope there will be answers soon.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Preamble&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Having set up AIF based on the &lt;a href="https://mbs.microsoft.com/downloads/partner/AX/downloads/AIF_Script.zip"&gt;SCM scenario from Microsoft site&lt;/a&gt; I got a few questions regarding the following scheme of SCM process:&lt;br /&gt;&lt;br /&gt;Customer GTM (Global Trading Company) sends Purchase Requisition to vendor DUO (DUO Company) and after having it posted gets Purchase Invoice.&lt;br /&gt;&lt;br /&gt;gtm-&gt;PurchaseOrder-&gt;AIF-&gt;PurchaseRequisition-&gt;duo-&gt;SalesOrder&lt;br /&gt;duo-&gt;SalesInvoice-&gt;AIF-&gt;SalesInvoice-&gt;gtm-&gt;PurchaseInvoice&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1. Sending Outbound Documents Automatically&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/aa588603.aspx"&gt;MSDN Library How to send and receive documents electronically&lt;/a&gt; tells us there are two ways of sending documents either automatically or manually by using &lt;span style="font-style: italic;"&gt;Send Electronically&lt;/span&gt; button on appropriate forms, e.g. for Purchase Order it is&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;  Purchase requisition&lt;br /&gt;&lt;br /&gt;1. Click Accounts payable &gt; Inquiries &gt; Journals &gt; Purchase order.&lt;br /&gt;2. Click Send electronically, and then click Original or Copy.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;and it really works, and in Queue Manager we can see the message ready for outbound sending.&lt;br /&gt;&lt;br /&gt;What really intrigues me it is the other option which allows to send it automatically.&lt;br /&gt;&lt;br /&gt;As far as I can see everything is set up correctly since the same document after posting was sent electronically. I mean all settings of &lt;span style="font-style: italic;"&gt;Endpoints &lt;/span&gt;and others are correct. Using batch gives the same result - Purchase Order is printed but not sent to Queue Manager.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-style: italic;"&gt;What should I do in order to initiate the process automatically?&lt;br /&gt;&lt;br /&gt;Upt.: Solution&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;I guess many questions happen to arise to me due to lack of experience in the system and patience to read the manual attentively. But anyway, the way to do this is the following.&lt;br /&gt;&lt;br /&gt;First of all, read it:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;The record must be updated with the print option, and there is no method for sending the document in the posting form.&lt;br /&gt;&lt;br /&gt;If you want to send a document electronically, the Print check box on the corresponding print form must be selected, and the option to print to the screen must not be selected. Otherwise, the record will be posted and the document will be displayed on the screen, but it will not be sent electronically to the endpoint.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In other words we have at least three options to send our outbound documents:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;manually, after posting (see the above);&lt;/li&gt;&lt;li&gt;automatically, during the posting choosing Print requisition and Use print management destination if those were set up in advance or just pressing Printer setup to choose any destination but Screen;&lt;/li&gt;&lt;li&gt;it is also possible to send that later by means of batch processing.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_y4-EcQ-sclI/R8RBM3co4-I/AAAAAAAAAEs/afU-obP-NZg/s1600-h/PrintPost.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_y4-EcQ-sclI/R8RBM3co4-I/AAAAAAAAAEs/afU-obP-NZg/s400/PrintPost.jpg" alt="Purchase Order Posting Form" id="BLOGGER_PHOTO_ID_5171329961426478050" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;What regards Print management destination we can set the parameters for receiving company DUO in order to send purchase orders to this vendor always automatically.&lt;br /&gt;&lt;br /&gt;Accounts Payable&gt;Vendors&gt;Duo Engineering and Trade&gt;Setup&gt;Print Management&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_y4-EcQ-sclI/R8RHZnco4_I/AAAAAAAAAE0/M1VVacu2Sos/s1600-h/PrintManagement.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_y4-EcQ-sclI/R8RHZnco4_I/AAAAAAAAAE0/M1VVacu2Sos/s400/PrintManagement.jpg" alt="Print Management Form" id="BLOGGER_PHOTO_ID_5171336777539576818" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In the example we just to keep all purchase orders sent automatically in Print Archive (Basics&gt;Setup&gt;Inquiries&gt;Print Archive).&lt;br /&gt;&lt;br /&gt;Finally, I do not understand why it is important not to send automatically outbound documents when Screen option is chosen but just in case this is the place in the code  that should be changed to pass by this restriction:&lt;br /&gt;&lt;br /&gt;\Classes\PurchFormLetter_PurchOrder\sendAsXML&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; sendAsXML()&lt;br /&gt;{&lt;br /&gt; boolean             newLine;&lt;br /&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;if&lt;/span&gt; (&lt;span class="kwrd"&gt;new&lt;/span&gt; PrintJobSettings(printerSettingsFormletter, &lt;span class="kwrd"&gt;true&lt;/span&gt;).getTarget() != PrintMedium::Screen &amp;amp;&amp;amp; !&lt;span class="kwrd"&gt;this&lt;/span&gt;.proforma())&lt;br /&gt; {&lt;br /&gt;     newLine = journalList.first(vendPurchOrderJour);&lt;br /&gt;     &lt;span class="kwrd"&gt;while&lt;/span&gt; (newLine)&lt;br /&gt;     {&lt;br /&gt;         vendPurchOrderJour.sendElectronically(XMLDocPurpose::Original);&lt;br /&gt;         newLine = journalList.next(vendPurchOrderJour);&lt;br /&gt;     }&lt;br /&gt; }&lt;br /&gt;}&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-5139471263567360858?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/5139471263567360858/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=5139471263567360858' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/5139471263567360858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/5139471263567360858'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2008/02/few-questions-on-aif.html' title='Microsoft Dynamics AX AIF: Sending Outbound Documents Automatically'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_y4-EcQ-sclI/R8RBM3co4-I/AAAAAAAAAEs/afU-obP-NZg/s72-c/PrintPost.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1323778467050606749.post-5508186974769198172</id><published>2008-02-21T13:49:00.001-05:00</published><updated>2008-02-21T14:06:51.295-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='common'/><title type='text'>the goal</title><content type='html'>Since I began learning MS Dynamics AX and more particularly AIF (Application Integration Framework) module which was firstly provided in version 4.0 I decided to create this blog to keep in memory most interesting points, issues and maybe successful solutions or workarounds.&lt;br /&gt;&lt;br /&gt;Hope it will be useful for myself and others who are going to step in this path as well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1323778467050606749-5508186974769198172?l=alexvoy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexvoy.blogspot.com/feeds/5508186974769198172/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1323778467050606749&amp;postID=5508186974769198172' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/5508186974769198172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1323778467050606749/posts/default/5508186974769198172'/><link rel='alternate' type='text/html' href='http://alexvoy.blogspot.com/2008/02/goal.html' title='the goal'/><author><name>wojzeh</name><uri>http://www.blogger.com/profile/17752044692176547068</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_y4-EcQ-sclI/S79g54HT_MI/AAAAAAAAEgo/QjpI5TJZs9Y/S220/ula_bw.JPG'/></author><thr:total>0</thr:total></entry></feed>
