lundi 19 avril 2010
jeudi 15 avril 2010
Récupération d'une entité d'après son GUID et son nom
{
// ---- recupération de l'enregistrement complet
TargetRetrieveDynamic targetRetrieve = new TargetRetrieveDynamic();
// Set the properties of the target.
targetRetrieve.EntityName = EntityName;
targetRetrieve.EntityId = guidEnregistrement;
// Create the request object.
RetrieveRequest retrieve = new RetrieveRequest();
// Set the properties of the request object.
retrieve.Target = targetRetrieve;
// Be aware that using AllColumns may adversely affect
// performance and cause unwanted cascading in subsequent
// updates. A best practice is to retrieve the least amount of
// data required.
retrieve.ColumnSet = new AllColumns();
// Indicate that the BusinessEntity should be retrieved as a DynamicEntity.
retrieve.ReturnDynamicEntities = true;
// Execute the request.
RetrieveResponse retrieved = (RetrieveResponse)service.Execute(retrieve);
// Extract the DynamicEntity from the request.
DynamicEntity entityRetrieved = (DynamicEntity)retrieved.BusinessEntity;
return entityRetrieved;
}
mercredi 14 avril 2010
Fetchxml Builder
Fetchxml
Concaténations de 2 name de lookup dans un 3em champ (Javascript)
(crmForm.all.new_typetransactionid.DataValue != null) &&
(crmForm.all.new_statutprivilgeid.DataValue != null) )
{
crmForm.all.new_name.DataValue = crmForm.all.new_typetransactionid.DataValue[0].name + " - "+ crmForm.all.new_statutprivilgeid.DataValue[0].name;
}
Import d'un .js dans un formulaire ms crm 4.0
Après le chargement du .js, la fonction CustomLoad est exécutée
var script = document.createElement('script');
var result;
script.language = 'javascript';
script.src = '/ISV/masks.js';
script.onreadystatechange = OnScriptReadyState;
document.getElementsByTagName('head')[0].appendChild(script);
function OnScriptReadyState()
{ if ( (event.srcElement.readyState== "complete" ) ||
(event.srcElement.readyState== "loaded" ) )
{ CustomLoad(); }
}
function CustomLoad(){
}
Mise en place de masque de saisie pour ms crm 4.0
http://digitalbush.com/projects/masked-input-plugin/
Récupérer les 2 .js, les copier dans /ISV
Dans le onLoad du formulaire, importer les 2 .js, appliquer les masques sur les champs à masquer
var script = document.createElement('script');
var script1loaded =false;
script.language = 'javascript';
script.src = '/ISV/jquery.js';
script.onreadystatechange = OnScriptReadyState;
document.getElementsByTagName('head')[0].appendChild(script);
var script2 = document.createElement('script');
var script2loaded =false;
script2.language = 'javascript';
script2.src = '/ISV/jquery.maskedinput-1.2.2.js';
script2.onreadystatechange = OnScriptReadyState2;
document.getElementsByTagName('head')[0].appendChild(script2);
function OnScriptReadyState()
{ if ( (event.srcElement.readyState== "complete" ) ||
(event.srcElement.readyState== "loaded" ) )
{ script1loaded = true;
if (script2loaded) { CustomLoad(); } }
}
function OnScriptReadyState2()
{ if ( (event.srcElement.readyState== "complete" ) ||
(event.srcElement.readyState== "loaded" ) )
{ script2loaded = true;
if (script1loaded) { CustomLoad(); } }
}
function CustomLoad(){
jQuery(function($){
$("#new_heuredebutperiode").mask("99:99");
$("#new_heurefinperiode").mask("99:99");
});
}