Posts Tagged ‘mscrm’

Add a link to your MSCRM account record in GP using Scribe

Monday, January 25th, 2010

Add a link to your MSCRM account record to your Internet Information form in GP. To get to your Internet Information form click the i
on you Customer Maintenance form.

Add the url to your account record to the User Defiened 1 field (or an other field on the form). If you do not see your address url click “Ctrl-n” to open in a new window.

Now when you click on the User Defined 1 link your CRM Account form will open up. This is assume that you can access your CRM server from the same computer as GP and you automatically login to CRM. If every thing work now you can add the link to Scribe to automatically update your [Internet Information].[ User Defined 1] field. Make sure this field is not being used for any other information first by running the following query on your GP company database.

SELECT
*
FROM SY01200 WHERE
ISNULL(INET7,)
<>

This query should not return any rows. If it does check to see what it return and if one of the other fields would be better to use. Now add the data link to your Scribe DTS. If using the template it would be the “AccountToERP.dts” Make sure to update both the “Internet Information Update/Insert” and “Internet Information (2) Insert” steps with the following formula. This formula assumes that the accounted is Ref S13.

CONCATENATE(”http://{crmserver}:{port}/{orgName}/sfa/accts/edit.aspx?id=”, S13 )

Save your DTS then update a record in CRM and check to see if it gets updated in GP. Note make sure to backup your GP, Scribe Internal and CRM database before making any changes.

Scribe Plugin Publisher for Microsoft Dynamics CRM – system jobs failing in MSCRM

Friday, January 15th, 2010

Using the Scribe “Dynamics GP to Dynamics CRM” template, I was getting system jobs failed when updating or creating records in CRM. After lots of testing and trying I read something about permission in message queue. I went in the message queue for:

  • {server}\private$\{orgName}@{server}_mscrmpubfailed
  • {server}\private$\{orgName}@{server}_mscrmpubin
  • {server}\private$\{orgName}@{server}_mscrmpubsucceeded

I adjust the security for “Everyone” on the queues to “Full Control”. Updated an account in MSCRM and the system jobs then succeeded. I think you might be able to adjust the setting so it not “Full Control” for sure the plug-in needs to be able to send a message to the mscrmPubIn queue.

Configuring One Click Activity.

Wednesday, January 13th, 2010

One Click Activity is easy to configure. Use One Click Activity login form to add your license and log into you Microsoft Dynamics CRM with an account that has customization rights.


Your license is base on you CRM organization name. If you have multiple organizations you need multiple licenses. Once you have added your license you can then fill in your CRM Login information. First choose your connection type: “On-premise”, “Internet facing”, or “live”. You do not need direct access to the server, you can log in from a workstations that can connect to MSCRM. Next enter you MSCRM URL, domain, user id and password. If you are using a MSCRM Live you only need to enter user id and password. Once all your login information has been enter the organization combo box will be filled with the organizations that you are licensed to use. Select the organization you what to update with One Click Activity and login.

You then just choose your entity (Account, Contact, Opportunity, Lead, Incident, or Activity) and click the grid or form tab and actions you would like to add.


You can also use the Check ALL and Un-check All button to check or un check all the actions for entity and either the grid or the form depending on which tab you are in. Note you must choose each entity action separtely. Only add the button your users will use too many button will confuse the user. Note that all users with a security role that has ISV Extensions enabled will see the buttons.  Once you have choosen the actions you would like to add choose Run. One Click Activity will backup your isv.config then update it with the buttons selected. You can latter restore your isv.config to an earlier back.
 

 

Make sure that the users belong to a security role that has ISV Extensions enabled. One Click Activity will work online, in outlook and outlook offline just make sure your System Setting is configured to show ISV.Config in all these places.

Buy One Click Activity!

More info on one click activity.

Check for iCRM webinars

How to set default filters for reports in MSCRM

Wednesday, January 13th, 2010

Every run a report in MSCRM where you always change the filter defaults? Did you created a new report using the @CRM_FilteredEnitity and set the default value for the parameter in the report but when run in MSCRM it is set to Modified in the last 30 days? To change the default filters in MSCRM go to the main reports grid in “Workplace”.

  1. Select the report in the Reports grid.
  2. From the More Actions menu select Edit Default Filter…
  3. Choose your filters then click Save Default Filter.
  4. You must now close the form (click Cancel). (You saved the filter in step 3 you are just closing the form now).

Note:

  • You can not set the default filter from the Edit Report form.
  • You can not set the default filter when creating a new Report from an Existing File or Link to Web Page. You must first save the report then go to the Reports grid and follow the steps.

 

Free iCRM One Click Activity Webinar

Wednesday, January 13th, 2010

I will be hosting two free iCRM One Click Webinars on January 19, 2010 at 4:30pm PST and again on January 20, 2010 at 10:00am PST. Attendees will recieve 10% Discount on the iCRM One Click Activity.

Webinars info.

Retrieving Pre and Post data in MSCRM Plug-ins (Create, Update and Delete)

Tuesday, January 12th, 2010

 

When you look at the sample of plug-in in the SDK they all use the InputParameters property bag. The InputParameters property bag contains all the information specified in the Request class whose message caused the plug-in to execute. As the request class does not include the pre and post data of the entity, the InputParameters property does not contain the pre and post data. The InputParameters property does contain a “Target” property which is a Dynamic Entity of the data that was changed in your entity. Note: The target Dynamic Entity only has the properties (fields) that where changed.

To get the pre and post date of an Entity in a plug-in you need to use the context.PreEntityImages and context.PostEntityImages property bags. You will also need to add an image. In the image you give it an alias and indicate if it is pre and/or post and also define what attributes (fields) you need.

If you don’t know or the fields could change leave the attributes as all fields. If you only need a few fields everything should run faster if you just indicate the fields you need. Now to get a pre DynamicEntity in your plug-in you use context.PreEntityImages.Properties["image alias"]. Note in the following code I first check that the PreEntityImages.Properties contains the “image alias” and the the property is a DynamicEntity.

 

DynamicEntity preSaveEntity;

DynamicEntity postSaveEntity;

if (context.PreEntityImages.Properties.Contains(“icrmAddress”) && context.PreEntityImages.Properties["icrmAddress"] is
DynamicEntity)

{

preSaveEntity = (DynamicEntity)context.PreEntityImages.Properties["icrmAddress"];

}


if (context.PostEntityImages.Properties.Contains(“icrmAddress”) && context.PostEntityImages.Properties["icrmAddress"] is
DynamicEntity)

{

postSaveEntity = (DynamicEntity)context.PostEntityImages.Properties["icrmAddress"];

}

 

You are not always going to have a pre and post data it will depend on the Message(Create, Update, Delete, etc) and the Eventing Pipeline Stage of Execution (Pre Stage or Post Stage).

Need a custom MSCRM Plug-in created contact iCRM at http://www.icrm.ca or through.

I used CRM Plugin Registration Tool 2.2

How to create a primary contact in MSCRM

Wednesday, January 6th, 2010

The normal why to create a primary contact in MSCRM is to add the contact to the account and then go back to the account and lookup the contact that you just added. You can simplify this a bit by filtering the lookup on primary contact for only contacts from the account (see: Filter Primary Contact for contact associated to Account in MSCRM.) If you use One Click Activity this process is as simple as clicking ‘Set Primary Contact’.

Set Primary Contact from the contact form(use this for new and existing contacts).

This is simple just create a contact, preferable from the account using One Click Activity create contact related to selected entry button. Make sure the contact has a parent account; save the contact (do not close the form). Then once the contact is saved click the One Click Activity ‘Set Primary Contact’ button and you will be prompted to set this contact as the primary for the account. If there is no parent account nothing happens. Note if the account is open you will need to refresh it (F5) to see the changes.

Set Primary Contact from the contact grid (use this for existing contacts).

This is simple just select a contact in the grid (main, associate or advance find). Click the One Click Activity ‘Set Primary Contact’ button and you will be prompted to set this contact as the primary for the account. If there is no parent account nothing happens. Note if the account is open you will need to refresh it (F5) to see the changes.

Completing Multiple Activities in CRM

Monday, January 4th, 2010

Completing Activities in Microsoft Dynamics CRM requires the user to open the activity and click save as complete. If you want to add additional information to the activity this is fine but it you just need to complete it why open the form? Also what if you have a number of activity that you have now finished and need to complete, you would need to open each activity and save as complete. Now you can complete multiple activities including: tasks, phone calls, email, fax, letter and appointments right from the any activity grid (main activity grid or associated grid) with icrm one click activity. The complete activity grid button from icrm one click activity first prompts you to make sure you want to complete the selected activities. This make sure you don’t accidentally complete activities as CRM does not let you un-complete any activity.

iCRM One Click Activity Version 2 New Features

Wednesday, December 16th, 2009

ICRM One Click Activity Version 2 should be release latter this week. Here is a list of new features:

  • Complete Activity from the grid (supports: task, phone call, appointments, fax, letter and email)
  • Assign primary contact from grid.
  • Create duplicate entity (supports: accounts, contacts, opportunities, cases, and leads)
  • Create associate entity from an entity
    • From accounts create a contact, opportunity, case, quote, order or invoice.
    • From contacts create an opportunity, case, quote, order or invoice.
    • From opportunity create a quote, order or invoice (brings across product just like creating them from the associate grid).
  • Create the same buttons on the entity from as on the grid.

All the fetchers currently in iCRM One Click Activity Version 1.

Creating A Following Associated Grid

Thursday, November 5th, 2009

Here is an example of how to create a follwing associated gird on a entity form. The idea here is to put two embedded grids on the form and relate one to the other. An embedded grid is an associated grid embedded in an iFrame. This is great is a great way to see associated records without having to navigate to the associated view. To learn about embedded grids see Customer Effective Blog. The next step is to capture the “onselectionchange” event of the first grid and pass this id and type to the second grid. To learn about “onselectionchange” event see More CRM Grid Goodies: Detecting Click Event by Customer Effective Blog.

Here is how it is done.

First add a parent iFrame and a child iFrame to the form. These will hold the embedded grids, set the src to “about:blank”. Now will start adding code to the On_Load event of the form.

function GetFrameSource(tabSet)
{
if (crmForm.ObjectId != null)
{
var oId = crmForm.ObjectId;
var oType = crmForm.ObjectTypeCode;
var security = crmFormSubmit.crmFormSubmitSecurity.value;
return “areas.aspx?oId=” + oId + “&oType=” + oType + “&security=” + security + “&tabSet=” + tabSet;
}
else
return “about:blank”;
}
}

crmForm.all.IFRAME_parent.src = GetFrameSource(”new_new_maxexchangeserver_new_remoteaddressbo”);

The GetFrameSource function get the url for the current form for the set tabSet.

function GetFrameSourceID(oId, oType, tabSet)
{
if (crmForm.ObjectId != null)
{
var security = crmFormSubmit.crmFormSubmitSecurity.value;
return “areas.aspx?oId=” + oId + “&oType=” + oType + “&security=” + security + “&tabSet=” + tabSet;
}
else
{
return “about:blank”;
}
}

The GetFrameSourceID get the url for the parent grid row. You need to pass the id of the current entity in the grid as well as the typeid of the entity.

var bFired = false;
GridClick = function()
{
// check to see if this event has been fired already
if(bFired == false)
{
var frameDoc = document.getElementById(”IFRAME_parent”).contentWindow.document;
var crmGrid = frameDoc.all['crmGrid'];
var a = crmGrid.InnerGrid.SelectedRecords;
if (a.length > 0)
{
//Get the url to set for the child grid. Note we are always using the first selected value if more than one is selected.
crmForm.all.IFRAME_child.src = GetFrameSourceID(a[0][0],a[0][1],”new_new_remoteaddressbook_new_maxexchangepack”);
}
bFired = true;
}
else
{
// toggle our fired flag back
bFired = false;
}
}

The GridClick function will be called each time a row is selected.

AttachGridEvent = function()
{
if(crmForm.all.IFRAME_parent.readyState == “complete”)
{
var frameDoc = document.getElementById(”IFRAME_parent”).contentWindow.document;
frameDoc.all['crmGrid'].InnerGrid.attachEvent(”onselectionchange”, GridClick);
GridClick();
}
}
crmForm.all.IFRAME_parent.onreadystatechange = AttachGridEvent;

The AttachGridEvent attaches the GridClick event to the grid onselectionchange event. The challange here is we can not attach to the grid in the iFrame until the grid is loaded (readyState == “complete”). To do this we attach the GridClick event on the change of ready state and only add it if the readyState == “complete”.


© 2009-2010 iCRM Blog All Rights Reserved -- Copyright notice by Blog Copyright