Tag Archives: CRM 4

Referenzen auf Records in Workflows/Workflow Activities

Wird in einem Workflow bzw. in einer Workflow Activity auf einen Record einer Entität zugegriffen, muss diese Referenz beim Deployment auf ein anderes System jeweils neu gesetzt werden. Der Grund ist einfach: Die Id’s der Records stimmen nicht überein. Es gibt verschiedene Möglichkeiten wie das gehandelt werden kann. Eine davon zeige ich in diesem Post.
Continue reading

Count mit FetchXml

Leider ist es weder mit einer QueryExpression noch mit Linq möglich eine Aggregation (Server seitig) in einer Abfrage durchzuführen.
Deshalb ist man gezwungen FetchXml zu benutzten. Hier ein kleines Beispiel wie sich ein Count ausführen lässt.

string fetchXml = String.Format("<fetch distinct='false' no-lock='false' mapping='logical' aggregate='true'>" +
"<entity name='account' > " +
"<attribute name='accountid' aggregate='count' alias='accountCount' /> " +
"</entity>" +
"</fetch>");

var request = new ExecuteFetchRequest { FetchXml = fetchXml };
var response = (ExecuteFetchResponse)organizationService.Execute(request);
var fetchResult = XDocument.Parse(response.FetchXmlResult);
return int.Parse(fetchResult.Descendants("accountCount").Single().Value);

CRM 4 Workflows werden nicht mehr ausgeführt

Im CRM 4 werden keine Workflows nicht ausgeführt. Der Tracelog enthält folgenden Eintrag: Exception while trying to execute AsyncOperationId: {GUID} AsyncOperationType: 12 – System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a send. —> System.IO.IOException: The handshake failed due to an unexpected packet format.

Die Ursache des Problems ist, dass der Async Service probiert über SSL (https) auf den CRM Service zuzugreifen und dabei scheitert.

Verifizieren des Problems:

  • Das Problem tritt bei jedem Workflow auf dem System auf
  • Der “Microsoft CRM Asynchronous Processing Service” läuft
  • EinNeustart des “Microsoft CRM Asynchronous Processing Service” behebt das Problem nicht
  • Die Bindings für das IIS Web für das CRM beinhalten http wie auch https

Beheben des Problems:

  1. Öffnen der “MSCRM_CONFIG” Datenbank
  2. Navigieren zur “DeploymentProperties” Tabelle
  3. Die Spalte “NVarCharColumn” des Datensatzes “AsyncSdkRootDomain” editierten. Der Port muss entfernt werden. “crm.contoso.ch:80” wird zu “crm.contoso.ch”
  4. Neustarten des “Microsoft CRM Asynchronous Processing Service”