30 August 2008

MSCRM4: SoapHeaderAuthenticationProvider showing in custom page

Recently i try to deploy my custom page into a fresh new installed CRM Titan server.
I hit the SoapHeaderAuthenticationProvider error,message:-

'Microsoft.Crm.WebServices.Crm2007.MultipleOrganizationSoapHeaderAuthenticationProvider,
Microsoft.Crm.WebServices, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35' doesn't exist.
Parameter name:
Microsoft.Crm.WebServices.Crm2007.MultipleOrganizationSoapHeaderAuthenticationProvider,
Microsoft.Crm.WebServices, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35


Solution:
Error is cause by one of the MSCRM DLL "Microsoft.Crm.WebServices.dll" does not register under GAC.
Just Drag the DLL to GAC folder solved the problem.

24 August 2008

Show Scrollbar on MSCRM Titan for custom page

Fo those who wish to load custom page clicking the navigation panel. You will found that the custom page loaded in content panel wont show the scrollbar if you make explorer window smaller/page information overload.

Solution :
Use IFRAME to load your custom page. That means your navigation link is link to your IFRAME html page.

    <br />
<html style="height: 100%;"> <br />
<head> <br />
<title>Untitled Page</title> <br />
</head> <br />
<body style="width:100%; height:100%;" > <br />
<iframe id="frm" src="Search.aspx" frameborder="0" height="100%" width="100%"> <br />
</iframe> <br />
</body> <br />
</html> <br />
<br />

Create a html page using the code above. Then change the “src” to your custom page url.

Reload/Refresh parent window from pop up window (dialog window)

Let say you have a parent window with some information loaded from database, and then you have a link that will prompt a new dialog window base on the selection item on parent window. After you finished editing the data in dialog window, you click save then close. BUT… at the same time you also want parent window to auto refresh in order to show the realtime information/changes you have made. You can achieve this by many methods; AJAX..javascript..codebehind.. In my opinion, I think javascript is the easiest way to achive this. Just fire this javascript function on your dialog window’s close button. Thats all you need to do Just give me a thumb if really help you.
function ReloadParentWindow()
{
if (window.opener && !window.opener.closed)
{
window.opener.location.reload();
self.close();
}
}