My 2p about ERP Solutions, Information Worker Solutions and other software products (mainly Microsoft Dynamics AX and Microsoft SharePoint).

26 July 2008

Hide the View All Site Content Link

Problem description: How to hide the View All Site Content Link


In some cases, you want to hide the View All Site Content link in the Quick Launch: this to less confuse SharePoint end-users. The less links an end-user has to click on, the less the end-user will be confused. However, hiding this View All Site Content link is not possible with out-of-the-box functionality for SharePoint.

Solution: Install Mark Wagners Hide the View All Site Content link feature


Mark Wagner created a great feature to achieve this. It allows you to move this link underneath the Site Actions menu, as such keeping the link available for site administrators. Keep in mind, this feature doesn't close down the link: end-users knowing the /_layouts/viewlsts.aspx page, will still be able to access the content of the Hide the View All Site Content link. But at least, this great feature makes it more difficult to reach it for an end-user. To download the feature, go to Mark Wagner - Cogitation Blog and look for his post How To: Hide/Remove the View All Site Content link in SharePoint


Continue reading......

by Patrik Luca 0 comments

Upper limit for open cursors has been exceeded

Problem description: Upper limit for open cursors has been exceeded


When you are working in Dynamics AX, you receive following error: Upper limit for open cursors has been exceeded (90) - use parameter openCursors or change the X++ code.

Solution: Change the X++ code


An easy solution is to increase the maximum limit of open cursors, which is by default 90. But this often means only a postponement of this error message, as it may come back in future.
In most case you should change the X++ code, especially if the error message is coming from custom development. But one of the problems is how to find the X++ code causing the exceeding of the limit of open cursors (and for sure if you didn't write the X++ code yourself...). To find this, I wrote a class which traces the number of open cursors. To use it, call the class on severeral places in your own X++ code: the class will log the number of open cursors together with the stack. As such, you will get an evolution of the number of open cursors during execution of your own X++ code, which can help you to find the erroneous X++ code.

The class has 3 methods:

method 1: classDeclaration

// Class to count unfreed cursors
// Call this class as in methods where you want to count
// the unfreed cursors at that moment: CountUnfreedCursors::construct().run();
// Make sure c:\windows\temp directory exists on the client running the class
class CountUnfreedCursors
{
}

method 2: run
void run()
{
HeapCheck hc = new HeapCheck('dump.log');
int rowIndex;
Common unfreedCursor;
DictTable dict;
ASCIIIO file = new ASCIIIO("c:\\windows\\temp\\" + date2str(Today(),321,2,0,2,0,4) + "CountUnfreedCursors.log","a");
container filecon;
container stack;
;

file.outFieldDelimiter(";");
file.outRecordDelimiter("\r\n");

stack = xSession::xppCallStack();

hc.firstUnfreedCursor();
rowIndex = 0;
while (hc.moreUnfreedCursors())
{
filecon = connull();
rowIndex++;
unfreedCursor = hc.getUnfreedCursor();
dict = new DictTable (unfreedCursor.TableId);
filecon = conins(filecon,conlen(filecon)+1,conpeek(stack,3));
filecon = conins(filecon,conlen(filecon)+1,conpeek(stack,4));
filecon = conins(filecon,conlen(filecon)+1,date2str(Today(),321,2,1,2,1,4) + " " + time2str(TimeNow(),1,1));
filecon = conins(filecon,conlen(filecon)+1,"Table: " + dict.name());
filecon = conins(filecon,conlen(filecon)+1,"Use count: " + int2str(unfreedCursor.usageCount()));
hc.nextUnfreedCursor();
file.write(filecon);
}

filecon = connull();
filecon = conins(filecon,conlen(filecon)+1,"Unfreed cursors: " + int2str(rowIndex));
file.write(filecon);
file.write("------------------------------------------------------------------------------\r\n");
}


method 3: construct
static CountUnfreedCursors construct()
{
CountUnfreedCursors countUnfreedCursors = new CountUnfreedCursors();
;

return countUnfreedCursors;
}


Other interesting resources about the upper limit for open cursors in Dynamics AX:


Continue reading......

by Patrik Luca 0 comments

19 July 2008

Visio stencil for drawing SharePoint site hierarchy

I created a Microsoft Visio stencil to ease the drawing of a SharePoint site hierarchy. It can be used to visualise the SharePoint site hierarchy before implementing it actually, allowing end-users to better understand how their final SharePoint sites will be linked and what kind of elements will be used in each SharePoint site. The Microsoft Visio stencil can be downloaded here.



Some other interesting Microsoft Visio stencils in the SharePoint area:


Continue reading......

by Patrik Luca 1 comments

13 July 2008

You cannot publish slides to a Slide Library

Problem description: You cannot publish slides to a Slide Library


While trying to publish slides to a Microsoft Office SharePoint Server 2007 Slide Library, you receive the error: This feature requires Microsoft Office PowerPoint Professional.


For a description how to publish slides to a Slide Library, see Publish slides to a Slide Library.

Solution: Install the appropriate Office version.


In contrarery to what the error message could make you believe, it is not enough to install Microsoft Office PowerPoint Professional on your client machine to be able to publish slides.
You should install one of the following Office versions to fix the problem:

  • Office 2007 Professional PLUS

  • Office 2007 Enterprise

  • Office 2007 Ultimate


Continue reading......

by Patrik Luca 0 comments

Patrik Luca, Ieper, BELGIUM
Feel free to use or spread all of the content on my blog. In return, linking back to my blog would be greatly appreciated. All my posts and articles are provided "AS IS" with no warranties.

Subscribe feeds via e-mail
Subscribe in your preferred RSS reader

Subscribe feeds rss Most Read Entries

Categories

Recommended Books


Subscribe feeds rss Recent Comments

This Blog is part of the U Comment I Follow movement in blogosphere. Means the comment field of this blog is made DOFOLLOW. Spam wont be tolerated.

Live Traffic Feed

Recent Visitors

Blog Archive

My Blog List

Followers

Guest Links