Saturday, August 01, 2009
Come evitare i messaggi javascript in chiusura di un form
Saturday, August 01, 2009 9:43:00 AM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [0]  | 
 Tuesday, July 28, 2009
Effetti provocati da Internet Explorer 8 sulla programmazione del CRM
Tuesday, July 28, 2009 12:15:13 AM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [0]  | 
Come gestire via codice i cambiamenti di stato delle entita' con un ciclo di vita complesso.
Monday, July 27, 2009 11:55:18 PM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [0]  | 
 Friday, July 24, 2009
Usare Microsoft Dynamics CRM con Internet Explorer 8
Friday, July 24, 2009 7:32:20 AM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [0]  | 
 Tuesday, June 23, 2009
GESTIRE I PULSANTI DEL CRM
Tuesday, June 23, 2009 3:58:43 PM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [0]  | 

Se salvando un'opportunità o inserendo in essa (o in un'offerta, ordine o fattura) un prodotto viene esposto un messaggio di errore nel calcolo dei prezzi bisogna controllare che nell'opportunità sia o meno selezionato il flag "Ricavi calcolati dal sistema". Se il flag non è selezionato e quindi si presuppone che il ricavo venga imputato manualmente, lo si sposti ad automatico e si faccia una prova.
Se così funziona siete incappati in un baco del CRM che viene risolto con l'installazione dell'ultima rollup.

Tuesday, June 23, 2009 3:49:36 PM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [0]  | 
 Wednesday, June 17, 2009
SCRITTURA DEI METADATI VIA CODICE: ESEMPIO
Wednesday, June 17, 2009 11:15:28 AM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [0]  | 


Summary Non c'è più il deletion service. Esiste un job schedulato ogni 24 ore. Un workaround per farlo partire subito.
Category CRM 4.0  
Description Esiste la schedulazione per la cancellazione fisica dei dati (record con DeletionStateCode = 2). La trovate nel db:
 
use MSCRM_CONFIG
select * from
ScalegroupOrganizationMaintenanceJobs
where OperationType=14
 
Il problema comunque non è di facile risoluzione.
E' a disposizione un tool (NON SUPPORTATO) e in allegato per la modifica dei dati del DB per alterare la schedulazione.
 
Devo dire che la schedulazione a me non ha funzionato bene, però modificando la data "Job Next Run" e mettendola su una data già passata e riavviando il servizio "Microsoft CRM Asynchronous Processing Service" la cancellazione vene fatta immediatamente.

 
Info sul tool su http://code.msdn.microsoft.com/ScaleGroupJobEditor/

Wednesday, June 17, 2009 10:54:49 AM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [0]  | 

Dopo l'installazione di una rollup (dalla 2 in su) può accadere che non si sia più in grado di pubblicare i workflow nel CRM.
Ciò è dovuto ad un piccolo errore nel software di installazione della rollup che, andando a sovrascrivere il web.config del CRM, si "dimentica" di inserire un assembly necessario alla pubblicazione (il famoso mscorlib) fra gli assembly autgorizzati. Da qui il problema.

La soluzione è quindi molto semplice: modificare manualmente il web.config inserendo la seguente riga:

authorizedType Assembly="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Namespace="System.Globalization" TypeName="CultureInfo" Authorized="True"

Wednesday, June 17, 2009 10:52:53 AM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [0]  | 

Associated View  
Summary: record visualizzati sulle Associated View
Category CRM 4.0
Description: Nel CRM 4.0 hanno tolto (bug?) la possibilità di visualizzare nelle associated view sia i record attivi che quelli inattivi. Compaiono solo quelli attivi relazionati all'entità principale.
.

Se si desidera modificare questo comportamento bisogna registrare un plug-in sul Retrieve Multiple dell'entità e scrivere un codice simile a questo:

using Microsoft.Crm.Sdk;
using Microsoft.Crm.Sdk.Query;

namespace Acme.Plugins
{
public class AssociatedViewPlugin : IPlugin
{
public void Execute(IPluginExecutionContext context)
{
if (context.InputParameters.Contains(ParameterName.Query))
{
QueryExpression qe = context.InputParameters[ParameterName.Query] as QueryExpression;

if (qe.EntityName == context.PrimaryEntityName && qe.Criteria != null && qe.Criteria.Conditions != null && qe.Criteria.Conditions.Count == 2)
{
ConditionExpression ce = qe.Criteria.Conditions[0] as ConditionExpression;
if (ce != null && ce.AttributeName == "statecode" && ce.Operator == ConditionOperator.Equal && ((int)ce.Values[0]) == 0)
{
qe.Criteria.Conditions.Remove(ce);
}
}
}
}
}

Wednesday, June 17, 2009 10:51:09 AM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [0]  |