7

Quelqu'un pourrait-il suggérer ce que je fais de mal ici?L'activité de workflow personnalisée n'apparaît pas dans l'enregistrement de plugin

J'ai créé une activité de flux de travail personnalisée en utilisant cet exemple Create a custom workflow activity. Mais ceci n'apparaît pas comme un type de plugin/activité dans l'outil d'enregistrement de plugin. Voir image ci-dessous:

enter image description here

Mon exemple de code pour l'activité ci-dessous:

CODE MISE À JOUR

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Activities; 
using Microsoft.Xrm.Sdk; 
using Microsoft.Xrm.Sdk.Workflow; 

namespace TestCustomWorkflowActivity 
{ 
    public class SampleCustomActivity : CodeActivity 
    { 
     protected override void Execute(CodeActivityContext executionContext) 
     { 
      //Create the tracing service 
      ITracingService tracingService = executionContext.GetExtension<ITracingService>(); 

      //Create the context 
      IWorkflowContext context = executionContext.GetExtension<IWorkflowContext>(); 
      IOrganizationServiceFactory serviceFactory = executionContext.GetExtension<IOrganizationServiceFactory>(); 
      IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId); 

     } 
    } 
} 

Plate-forme
Dynamics CRM 2013 On Premises v 6.1.2.112 (SP1 UR2 installé)
Dyna CRM 2015 en ligne mics

.NET Framework Version
4,0

Répondre

6

Est-ce un cas que votre classe de détention doit être publiques?

class TestWfActivity 

devrait être

public class TestWfActivity 

Ou que la classe d'activité doit résider directement à partir de votre namepspace plutôt que insdie la classe TestWFActivity.

Essayez soit -

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Activities; 
using Microsoft.Xrm.Sdk; 
using Microsoft.Xrm.Sdk.Workflow; 

namespace TestCustomWorkflowActivity 
{ 
    public class TestWfActivity 
    { 
     public class SampleCustomActivity : CodeActivity 
     { 
      protected override void Execute(CodeActivityContext executionContext) 
      { 
       //Create the tracing service 
       ITracingService tracingService = executionContext.GetExtension<ITracingService>(); 

       //Create the context 
       IWorkflowContext context = executionContext.GetExtension<IWorkflowContext>(); 
       IOrganizationServiceFactory serviceFactory = executionContext.GetExtension<IOrganizationServiceFactory>(); 
       IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId); 

      } 
     } 
    } 
} 

ou

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Activities; 
using Microsoft.Xrm.Sdk; 
using Microsoft.Xrm.Sdk.Workflow; 

namespace TestCustomWorkflowActivity 
{ 

     public class SampleCustomActivity : CodeActivity 
     { 
      protected override void Execute(CodeActivityContext executionContext) 
      { 
       //Create the tracing service 
       ITracingService tracingService = executionContext.GetExtension<ITracingService>(); 

       //Create the context 
       IWorkflowContext context = executionContext.GetExtension<IWorkflowContext>(); 
       IOrganizationServiceFactory serviceFactory = executionContext.GetExtension<IOrganizationServiceFactory>(); 
       IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId); 

      } 
     } 
} 
+0

Oh moi idiot .............: @ –

+0

Je pensais que ce serait la cause car apparemment il devrait être public. Mais même après avoir mis à jour cela dans le code, il ne montre pas la classe dans l'outil d'enregistrement des plugins. Voir le code mis à jour dans mon article ci-dessus, –

+0

Et vous avez terminé l'étape 13. "Dans les propriétés du projet, sous l'onglet Signing, sélectionnez Signer l'assembly et fournir un nom de fichier clé Les assemblages d'activité de workflow (et de plug-in) doivent être signé. " – DotNetHitMan

6

J'ai eu exactement le même problème tout en travaillant avec CRM 2013 (à la fois sur site et en ligne). Je n'ai jamais réussi à résoudre le problème, mais je l'ai facilement contourné en utilisant l'outil d'enregistrement du SDK 2015 à la place. Pour des raisons inconnues, on travaille mieux.

+0

Merci SebastianC!C'était ça. – Lenny

+0

Je confirme avoir le même problème sur l'outil d'enregistrement de plugin de SDK pour CRM 2013. Après avoir téléchargé SDK pour CRM 2015, j'ai pu mettre à jour l'activité de workflow. – Zec