<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rssdatehelper="urn:rssdatehelper"><channel><title>Jigsaw Technology Blog</title><link>http://www.jigsaw.com.au</link><pubDate></pubDate><generator>umbraco</generator><description>A Microsoft Gold Certified Partner specialising in Business Intelligence Solutions, Microsoft Dynamics NAV and CRM. 

</description><language>en</language><item><title>Manually install xp_ndo</title><link>http://www.jigsaw.com.au/2012/3/7/manually-install-xp_ndo.aspx</link><pubDate>Wed, 07 Mar 2012 12:30:45 GMT</pubDate><guid>http://www.jigsaw.com.au/2012/3/7/manually-install-xp_ndo.aspx</guid><content:encoded><![CDATA[ 
<p>Sometimes you need to manually install the extended store
procedures use by NAV Integrated Security.</p>

<ol>
<li>Copy the xp_ndo.dll file to the location you want store it. The
file can be found under "D:\SQLDatabase\PFiles\Microsoft Dynamics
NAV\60\Database" on the product DVD.</li>

<li>Run the following SQL command to add the stored
procedures.</li>
</ol>

<p class="_courier">USE master<br />
 EXEC sp_addextendedproc xp_ndo_enumusersids, 'C:\[Location of
file]\xp_ndo.dll'<br />
 GO</p>

<p class="_courier">GRANT EXECUTE<br />
 ON [xp_ndo_enumusersids]<br />
 TO PUBLIC<br />
 GO</p>

<p class="_courier">USE master<br />
 EXEC sp_addextendedproc xp_ndo_enumusergroups, 'C:\ [Location of
file]\xp_ndo.dll'<br />
 GO</p>

<p class="_courier">GRANT EXECUTE<br />
 ON [xp_ndo_enumusergroups]<br />
 TO PUBLIC<br />
 GO</p>
]]></content:encoded></item><item><title>A Simple tool for Synchronising SQL Database Structures</title><link>http://www.jigsaw.com.au/2011/11/24/a-simple-tool-for-synchronising-sql-database-structures.aspx</link><pubDate>Thu, 24 Nov 2011 14:12:43 GMT</pubDate><guid>http://www.jigsaw.com.au/2011/11/24/a-simple-tool-for-synchronising-sql-database-structures.aspx</guid><content:encoded><![CDATA[ 
<p>Often you are working on an SQL project in a development
environment that involves database changes. How do you ensure the
structural changes (including stored procedures) are replicated to
production?</p>

<p>There are various commercial tools, but I like to use DBDiff or
SQL-DBDiff.</p>
]]></content:encoded></item><item><title>Enable and Disable Service Broker</title><link>http://www.jigsaw.com.au/2011/8/31/enable-and-disable-service-broker.aspx</link><pubDate>Wed, 31 Aug 2011 14:40:08 GMT</pubDate><guid>http://www.jigsaw.com.au/2011/8/31/enable-and-disable-service-broker.aspx</guid><content:encoded><![CDATA[ 
<p><span style="font-family:Courier New; font-size:10pt"><span
style="color:blue">ALTER</span> <span
style="color:blue">DATABASE</span> [NAV2009]</span></p>

<p><span style="font-family:Courier New; font-size:10pt"><span
style="color:blue">SET</span> <span
style="color:blue">ENABLE_BROKER</span></span></p>

<p><span
style="color:green; font-family:Courier New; font-size:10pt">--SET
DISABLE_BROKER</span></p>

<p><span style="font-family:Courier New; font-size:10pt"><span
style="color:blue">WITH</span> <span
style="color:blue">ROLLBACK</span> IMMEDIATE</span></p>
]]></content:encoded></item><item><title>NAV2009 – An I/O exception occurred during the operation (1)</title><link>http://www.jigsaw.com.au/2011/8/2/nav2009-–-an-io-exception-occurred-during-the-operation-(1).aspx</link><pubDate>Tue, 02 Aug 2011 13:44:47 GMT</pubDate><guid>http://www.jigsaw.com.au/2011/8/2/nav2009-–-an-io-exception-occurred-during-the-operation-(1).aspx</guid><content:encoded><![CDATA[ 
<p>NAV instantiates some temp folders and files based upon the
combination of User Name and NAV Service Tier (NST). These cannot
be shared.</p>

<p>So if you attempt to login from two different machines as the
same Windows user on the same NST, the error following message will
appear</p>

<p><img src="/media/16141/080211_0344_NAV2009AnI1.png"/></p>

<p><span>An I/O exception occurred during the operation</span></p>

<p>You'll need to either</p>

<ol>
<li>Create a second NST, which is easy, and connect to it</li>

<li>Make sure you don't share user logins across multiple
machines</li>
</ol>
]]></content:encoded></item><item><title>Wrong Date and Time interpretation when using Dynamics NAV Web Services</title><link>http://www.jigsaw.com.au/2011/7/22/wrong-date-and-time-interpretation-when-using-dynamics-nav-web-services.aspx</link><pubDate>Fri, 22 Jul 2011 09:13:08 GMT</pubDate><guid>http://www.jigsaw.com.au/2011/7/22/wrong-date-and-time-interpretation-when-using-dynamics-nav-web-services.aspx</guid><content:encoded><![CDATA[ 
<p>The client Regional settings affect date and time
interpretations within Dynamics NAV. The Region is easily set when
using the Classic or Role Tailored Client (RTC). When using a Web
Service its also easy, if you know how (like most things in
life).</p>

<p>I have an application that takes Point-of-sale (POS)
transactions from Advance Retail and passes them into Dynamics NAV.
A problem arose where transactions for early one morning (say
6:00am 21<sup>st</sup> Jan 2011) where appearing in NAV with a
Posting Date of the day before (20<sup>th</sup> Jan 2011). The
problem was the client date time was based upon GMT +10 but the Web
Service was working in UTC time.</p>

<p>The default Time Zone is UTC. -not very helpful when I live in
Sydney Australia.</p>

<p>Settings within the client application making the Web Service
call have no effect on the web service.</p>

<p>Within the CustomSettings.config file you'll find</p>

<p><img src="/media/16114/072111_2312_WrongDatean1.png"/></p>

<p>&nbsp;</p>

<p>In my case I want to use Australian Eastern Standard time.</p>

<p><img src="/media/16119/072111_2312_WrongDatean2.png"/></p>

<p>Restart the web service and the Date and Time is now correctly
interpreted.</p>

<p>Oh, and if you need the middle-tier (NST) to operate in
different Time Zones, just run up another Web service. (see another
post on how to do this)</p>
]]></content:encoded></item><item><title>Cube Calculations of Current Date, Month, Quarter and Year</title><link>http://www.jigsaw.com.au/2011/7/18/cube-calculations-of-current-date,-month,-quarter-and-year.aspx</link><pubDate>Mon, 18 Jul 2011 10:36:22 GMT</pubDate><guid>http://www.jigsaw.com.au/2011/7/18/cube-calculations-of-current-date,-month,-quarter-and-year.aspx</guid><content:encoded><![CDATA[ 
<p>If you've struggled like me to define BI reports that contain
default values for the Year, Month, Date then the following cube
calculations might help. Just use these calculations as the
selection when the report is defined. Then each time you open the
report you'll be referencing the current Year and Month and not the
ones you selected when the report was defined.</p>

<p><span class="_courier">CREATE MEMBER CURRENTCUBE.[Posting
Period].[Date].[All].CurrentDate<br />
 AS STRTOMEMBER("[Posting Period].[Date].&amp;[" + Format(now(),
"yyyy-MM-dd")+ "T00:00:00]"),<br />
 VISIBLE = 1;</span></p>

<p class="_courier">CREATE MEMBER CURRENTCUBE.[Posting
Period].[Week].[All].CurrentWeek<br />
 AS STRTOMEMBER("[Posting Period].[Week].&amp;[" +
CSTR(DATEPART("ww",now())) + "]"),<br />
VISIBLE = 1&nbsp; ;</p>

<p><span class="_courier"></span></p>

<p class="_courier">CREATE MEMBER CURRENTCUBE.[Posting
Period].[Period].[All].CurrentMonth<br />
 AS STRTOMEMBER("[Posting Period].[Period].&amp;[" + Format(now(),
"MM")+ "]"),<br />
 VISIBLE = 1&nbsp; ;</p>

<p class="_courier">CREATE MEMBER CURRENTCUBE.[Posting
Period].[Quarter Name].[All].CurrentQuarter<br />
 AS STRTOMEMBER("[Posting Period].[Quarter Name].&amp;[Q" +
CStr((int(month(now())-1)/3)+1) + "]"),<br />
 VISIBLE = 1&nbsp; ;</p>

<p class="_courier">CREATE MEMBER CURRENTCUBE.[Posting
Period].[Year].[All].CurrentYear<br />
 AS STRTOMEMBER("[Posting Period].[Year].&amp;[" + Format(now(),
"yyyy")+ "]"),<br />
 VISIBLE = 1&nbsp; ;</p>

<p>Adjust the Hierarhcy names like [Posting Period].[Period] [to
suit your installation.</p>

<p>The above calculations assume your using a January - December
time frame. If you aren't you'll need to replace</p>

<p class="_courier">now()</p>

<p>With</p>

<p class="_courier">DateAdd("m",<em>x</em>,now())</p>

<p>Where <em>x</em> is the month offset you need.</p>

<p>For example if you run a July - June year use</p>

<p class="_courier">DateAdd("m",6,now())</p>
]]></content:encoded></item><item><title>A call to SSPI failed in NAV 2009 R2</title><link>http://www.jigsaw.com.au/2011/5/31/a-call-to-sspi-failed-in-nav-2009-r2.aspx</link><pubDate>Tue, 31 May 2011 11:09:33 GMT</pubDate><guid>http://www.jigsaw.com.au/2011/5/31/a-call-to-sspi-failed-in-nav-2009-r2.aspx</guid><content:encoded><![CDATA[ 
<p>It is not unusual for your network security guys to force
regular password changes. What is unusual is that once you changed
your password you can no longer run NAV RTC. And receive the
obscure message</p>

<p><img src="/media/15866/053111_0109_AcalltoSSPI1.png"/></p>

<p>Equally frustrating is that NAV Classic still works.</p>

<p>You will also see Event Log errors like this one on the NAV
Server Tier</p>

<p><img src="/media/15871/053111_0109_AcalltoSSPI2.png"/></p>

<p>What's happening is your connection details have been cached
(without you realising)</p>

<p>You can remove this cache entry by running the command</p>

<p><span>rundll32.exe keymgr.dll, KRShowKeyMgr</span></p>

<p>And then deleting the connection that represents the NAV Service
Tier</p>

<p><img src="/media/15876/053111_0109_AcalltoSSPI3.png"/></p>
]]></content:encoded></item><item><title>Can’t send BizTalk documents from NAV2009 Role Tailored Client</title><link>http://www.jigsaw.com.au/2011/5/23/can’t-send-biztalk-documents-from-nav2009-role-tailored-client.aspx</link><pubDate>Mon, 23 May 2011 16:41:10 GMT</pubDate><guid>http://www.jigsaw.com.au/2011/5/23/can’t-send-biztalk-documents-from-nav2009-role-tailored-client.aspx</guid><content:encoded><![CDATA[ 
<p>As a regular user in NAV2009R2, attempting to Send a BizTalk
document resulted in the error message.</p>

<p>This message is for C/AL programmers: The call to member Send
failed: The handle is invalid</p>

<p><img src="/media/15828/052311_0640_CantsendBiz1.png"/></p>

<p>But I could send if the user happened to be in the network
Administrators group.</p>

<p>The solution turned out to be due to permissions to the
folder</p>

<p>C:\Documents and Settings\All Users\Application
Data\Microsoft\Crypto\RSA\MachineKeys</p>

<p>Once I added read permissions to the user group "Everyone" I
could send from NAV to BizTalk.</p>

<p>Looks like this folder is created by NAV but permissions are not
inherited. I say this because other folders above and at the same
level as MachineKeys had Read permissions for "Everyone"</p>

<p>As far as I can tell. The COM object being run by the NST needs
to encrypt the message before it sends to the Commerce Gateway
Requestor Service. Is was the encryption that was failing during
the send.</p>
]]></content:encoded></item><item><title>CRM 2011 – NAV 2009 R2 Synchronisation – tips and tricks</title><link>http://www.jigsaw.com.au/2011/5/10/crm-2011-–-nav-2009-r2-synchronisation-–-tips-and-tricks.aspx</link><pubDate>Tue, 10 May 2011 13:13:05 GMT</pubDate><guid>http://www.jigsaw.com.au/2011/5/10/crm-2011-–-nav-2009-r2-synchronisation-–-tips-and-tricks.aspx</guid><content:encoded><![CDATA[ 
<p>The following pointers are little things we picked up while
synchronising CRM 2011 and NAV 2009 R2, that were not well
documented elsewhere. It doesn't cover everything - just the points
that were poorly documented by Microsoft, or not obvious to us.</p>

<p>Firstly, make sure you have the right version installed. An
early version of connector V5 caused errors when used with CRM
2011. To make sure you have the right version, go here: <a
href="http://support.microsoft.com/default.aspx?scid=kb;en-US;2544388">
http://support.microsoft.com/default.aspx?scid=kb;en-US;2544388</a></p>

<p>CRM Users (perhaps only the integration user?) need to be set up
as being in the same timezone as the NAV Server. If not,
synchronisation will just never work. This needs to be done while
logged in as the user, from the File&gt;Options menu. You will need
to do this for the integration user before you make it an
integration user (you cant log in using that user after that).</p>

<p>Currency codes will probably cause a problem once you try to
synchronise. This is covered in the connector documentation, by
changing a mapping function. What it doesn't tell you is that you
cant just copy and past the function in. I had to delete the
current value, then user the function builder (from clicking on the
paper and pen icon) to construct the function.</p>

<p>If you add a new field to NAV and wish to synchronise it, apart
from updating config files (which is kind of straight forward), it
also needs to be on the appropriate page, else it wont work.</p>
]]></content:encoded></item><item><title>Manually Create NAV Service Instances</title><link>http://www.jigsaw.com.au/2011/5/3/manually-create-nav-service-instances.aspx</link><pubDate>Tue, 03 May 2011 17:28:56 GMT</pubDate><guid>http://www.jigsaw.com.au/2011/5/3/manually-create-nav-service-instances.aspx</guid><content:encoded><![CDATA[ 
<p>In the default installation just one NAV Server Service and one
NAV Business Web Service is created.</p>

<p>I have found that in real life you need more NAV Server
Services, and then you can spread users across them. In one case I
created 7 different instances.</p>

<p>Often the documentation suggests names like NAV2, NAV3.. I found
it more useful to use names that identify the group of users.<br />
 This also makes it easier for users to know which Instance they
are using.</p>

<p>Here is the syntax I use.</p>

<p>Create Service NAVAdmin</p>

<p><span>sc \\pandora-nav create
MicrosoftDynamicsNAVServer$NAVAdmin binpath= "F:\Program
Files\Microsoft Dynamics
NAV\60\ServiceAdmin_WS\Microsoft.Dynamics.Nav.Server.exe $NAVAdmin"
DisplayName= "Microsoft Dynamics NAV Server Admin" start= auto
type= own depend= NetTcpPortSharing</span></p>

<p>Set the description of the service (otherwise it will be
blank)</p>

<p><span>sc description MicrosoftDynamicsNAVServer$NAVAdmin "NAV
Service used by Admin"</span></p>

<p>Create a Web Service</p>

<p><span>SC \\pandora-nav CREATE MicrosoftDynamicsNAVWS$Admin
binpath= "F:\Program Files\Microsoft Dynamics
NAV\60\ServiceAdmin_WS\Microsoft.Dynamics.Nav.Server.exe $Admin"
DisplayName= "Microsoft Dynamics NAV Business WS" type=
share</span></p>

<p>Set the description of the web service</p>

<p><span>sc description MicrosoftDynamicsNAVWS$Admin "NAV Web
Service used by WS"</span></p>

<p>&nbsp;</p>

<p>Cutom.config changes</p>

<p><span>&lt;add key="ServerInstance"
value="DynamicsNAVAdmin"&gt;&lt;/add&gt;</span></p>

<p>See <a
href="http://msdn.microsoft.com/en-us/library/dd301437.aspx">http://msdn.microsoft.com/en-us/library/dd301437.aspx</a>
for full details, particularly on setting up TCP Port Sharing</p>
]]></content:encoded></item></channel></rss>

