Thursday 15 December 2011

Assigning a record to team is not assigned to respective queue

I created a team, and when team is created a queue with the same name is also created, When I was assigning the record to Team using Out of Box (OOB) functionality of CRM, The Case was not shown in Queue.

Resolution: Entities which are expected to be assigned to Queue. Their Queue option should be checked "once enabled it can not be disabled later on".

The items which you expect to automatically move to owner's queue in my case Team's Queue, Check the option "Automatically move records to the owner's default queue when a record is created or assigned" for the entity you are assigning.


Tuesday 13 December 2011

CRM 2011 error message Request not supported


I am getting an error message of “Request not supported” when trying to make a soap request in Silverlight application. Following is the code I am using

        EntityReference entityReference = new Xrm.Sdk.EntityReference("userquery",new Guid("{000000-0000-0000-0000-000000000000}"));
           
            ParameterCollection parameterCollection = new ParameterCollection();
            parameterCollection.Add("Target", entityReference);

            OrganizationRequest req = new OrganizationRequest
            {
                RequestName = "RetrieveSharedPrincipalsAndAccessRequest",
                Parameters = parameterCollection
            };

            OrganizationResponse response = _serviceProxy.Execute(req);


Following code works fine if I use early bound types
            
           EntityReference entityReference = new Xrm.Sdk.EntityReference("userquery",new Guid("{00000000-0000-0000-0000-000000000000}"));
            RetrieveSharedPrincipalsAndAccessRequest req = new RetrieveSharedPrincipalsAndAccessRequest();
            req.Target = entityReference;

            OrganizationResponse response = _serviceProxy.Execute(req);


As I am making a soap calls in silverlight utility, later option is not applicable and I am only left with first option to use. 

Solution: I was using the RequestName wrong there should not be any "Request" name appended at the end of it i.e. use RetrieveSharedPrincipalsAndAccess instead of RetrieveSharedPrincipalsAndAccessRequest

Debug Silverlight application hosted in CRM 2011

To debug silverlight application hosted in CRM 2011, Look for the process with the value of "Script, Silverlight x86" in the Type column, and select the value of "Silverlight" for the Attach to option.


Removing Workspace help area

Friday 9 December 2011

CRM Mirroring/Replication

In order to do replication/mirroring of CRM server, do it on CRM tenant instance only as The MSCRM_Config database contains URL and configuration stuff which is different on every environment.
Make sure the tenant names/database name is same for which to apply mirroring.


http://blog.xrm.com/

Wednesday 7 December 2011

401 unauthorized

We accessing CRM url, and entering credentials three time, "401 unauthorized" error message is shown.
This is due to IE is not considering it as a secure site to fix this

Go to Tools and Select Internet Options,



Select security tab, and select Local intranet and click Site button


Click on the advance button


Enter the crm url and click add


If problem still persists then also look at the following post, which explains that this could be due to Kerberos authentication
http://thecrmarchitect.com/2009/01/23/crm_401_unauthorized/

Tuesday 6 December 2011

Re-import CRM org in to new server

I have got two servers, CRM-Dev and CRM-Staging,
CRM-Dev contains the latest changes and we want to deploy it to CRM-Staging

Open SQL-Managment Studio and take the backup of CRM-Dev_MSCRM instance and restore it on CRM-Staging machine with a same or different database name e.ge CRM-Stag_MSCRM.

On the restored database execute following sql script, and then copy each reult view and execute the script again. This will ensure that all org id is unique.


SELECT 'ALTER TABLE '+QUOTENAME(name)+' NOCHECK CONSTRAINT ALL'
FROM sysobjects WHERE xtype='U' and uid=1

declare @newid uniqueidentifier

select @newid = newid()

 SELECT 
        'Update ' + c.TABLE_SCHEMA + '.' + c.TABLE_NAME + ' set ' + c.COLUMN_NAME +' =''' + +cast(@newid as varchar(40))+''''
     FROM INFORMATION_SCHEMA.Columns c
        INNER JOIN INFORMATION_SCHEMA.Tables t
        ON c.TABLE_NAME = t.TABLE_NAME
        AND t.TABLE_TYPE = 'BASE TABLE'
    WHERE DATA_TYPE = 'uniqueidentifier'  and column_name='organizationid'
    
SELECT 'ALTER TABLE '+QUOTENAME(name)+' CHECK CONSTRAINT ALL'
FROM sysobjects WHERE xtype='U' and uid=1

Open the deployment Manager and select import option, and select the recently restored database, and select defaults.

Organisation is successfully imported.


email router error


Error 3

The following error message was received when testing the email router: 
Type 'System.ServiceModel.Channels.ReceivedFault' in Assembly 'System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' is not marked as serializable 

Resolution:


Add the account running the email router services to PrivUserGroup security group.


taken from http://mscrmshop.blogspot.com/

Monday 5 December 2011

Powershell abc

cls        clear screen
notepad  runs notepad
get-process notepad |Format-list * |more         shows the list of process having name of notepad and shows all attached properties, |more is used for paging

get-process |Format-table -property-name name,starttime |more   shows the table of processes, the property which are not shown are because of privileges of currently running powershell user.



get-process | where-object { $_.starttime } |Format-table -property-name name,starttime 
shows the table of processes having value of starttime

gps | ?{$_.starttime} |ft name,starttime

this command is equivalent to above used command

Get-Alias
lists the all the alias

Get-help Get-Alias
-----

Get-Services | where {$_.status eq 'running'}

list of all the services that are running

Get-Services | where {$_.canPauseAndContinue}
---------

Get-Command -Noun Service

get-help set-service

Set-Service -Name lanmanservice -Status paused

------------
stop-process processid

-----
get-process | sort name
-----------------------
Get-EventLog -List

Get-EventLog -LogName 'windows powershell' newest 5 |Formatlist *

Get-EventLog -LogName 'windows powershell' where ($_.message -match 'wmi')
the above commands do the wildcard matching

Get-EventLog -LogName 'windows powershell' -source 'xyz'

Get-EventLog -LogName 'windows powershell' -source 'xyz' -After '3/8/11'


how to check if smtp server is running and reachable

Start->Run->Cmd

telenet servername/ip/fqdn port

e.g.
telenet 217.22.10.19 25
if the command works fine then following response from SMTP server will be shown
220 217.22.10.19 Microsoft Exchange Internet Mail Conector..

Following description is taken from http://support.microsoft.com/kb/153119

In the following steps, you run Telnet from the command line. To open a command line, Click Start, clickRun, type cmd in the Open box, and then click OK.
  1. You can start a Telnet session by using the Telnet command in the following format:

    Note Press ENTER after you type each line.
    telnet servername portnumber
    For example, type:
    telnet mail.contoso.com 25
    Note You can replace servername with the IP address or the FQDN of the SMTP server that you want to connect to. Remember to press ENTER after each command.

    If the command works, you receive a response from the SMTP server that is similar to the following:
    220 site.contoso.com Microsoft Exchange Internet Mail Connector <version number of the IMC>
    Note There are different versions of Microsoft SMTP or third party SMTP servers, and you may receive different responses from the receiving server. What is important is that you receive the 220 response with the FQDN of the server and the version of SMTP. Additionally, all versions of Microsoft SMTP include the term "Microsoft" in the 220 response.
  2. Start communication by typing the following command:
    EHLO test.com
    Note You can use the HELO command, but EHLO is a verb that exists in the Extended SMTP verb set that is supported in all current Microsoft implementations of SMTP. It is a good idea to use EHLO, unless you believe that there is a problem with the Extended SMTP Verbs.

    If the command is successful, you receive the following response:
    250 OK
  3. Type the following command to tell the receiving SMTP server who the message is from:
    MAIL FROM:Admin@test.com
    Note This address can be any SMTP address that you want, but it is a good idea to consider the following issues:
    1. Some SMTP mail systems filter messages based on the MAIL FROM: address and may not permit certain IP addresses to connect or may not permit the IP address to send e-mail to the SMTP mail system if the connecting IP address does not match the domain where the SMTP mail system resides. In this example, that domain is test.com.
    2. If you do not use a valid e-mail address when you send a message, you cannot determine if the message had a delivery problem, because the non-delivery report (NDR) cannot reach an IP address that is not valid. If you use a valid e-mail address, you receive the following response from the SMTP server:
      250 OK - MAIL FROM Admin@test.com
  4. Type the following command to tell the receiving SMTP server whom the message is to.

    Note It is a good idea to always use a valid recipient SMTP address in the domain that you are sending to. For example, if you are sending to john@domain.com, you must be certain thatjohn@domain.com exists in the domain. Otherwise, you will receive an NDR.

    Type the following command with the SMTP address of the person you want to send to:
    RCPT TO: User@Domain.Com
    You receive the following response:
    250 OK - Recipient User@ Domain.Com
  5. Type the following command to tell the SMTP server that you are ready to send data:
    DATA
    You receive the following response:
    354 Send data. End with CRLF.CRLF
  6. You are now ready to start typing the 822/2822 section of the message. The user will see this part of the message in their inbox. Type the following command to add a subject line:
    Subject: test message
    Press ENTER two times. You do not receive a response from this command.

    Note The two ENTER commands comply with Request for Comments (RFC) 822 and 2822. 822 commands must be followed by a blank line.
  7. Type the following command to add message body text:
    This is a test message you will not see a response from this command.
  8. Type a period (.) at the next blank line, and then press ENTER. You receive the following response:
    250 OK
  9. Close the connection by typing the following command:
    QUIT
    You receive the following response:
    221 closing connection
  10. Verify that the recipient received the message that you sent. If any error event messages appear in the application event log, or if there are problems receiving the message, check the configuration or the communication to the host.


CRM NLB, applicationHost.config


This installation has Full Server installation on NLB enabled Cluster of CRM1 and CRM2. Following are the detail  steps which  are done

·         Created a domain Account, and set it as a member of “domain admin” and “user group”, set the SPN with the provided NLBName and fully qualified domain name
·         Done the installation of Full Server on CRM prod 1

Updated the windows authentication element attributes with “<windowsAuthentication enabled="true" useAppPoolCredentials="true" />” in applicationHost.config file for all ms crm root and sub folders.

When I enter crm url in browser, I am getting “500 internal error”, there is no error/warning in event viewer.  Any advice will be much appreciated


Cause: applicationHost.config file on CRM1 is missing lots of configuration xml tags
Resolution: compare the applicationHost.config file on CRM1 with the following tags, and update if some tag is missing

https://docs.google.com/open?id=0B2CGMco-qUSwMmQyMzhlZDctMTg0My00ZDQ0LTg0ZDktYjc2NTI3NjM1YTc5