2010-12-07 38 views
1

J'ai le problème suivant, sur lequel je n'arrive pas à trouver une réponse ... J'ai un système CRM 4.0 et je veux atteindre les objectifs suivants:
Quand J'ai un contact/compte qui est inactif pour le retirer d'une autre liste, par exemple la liste Marketing.MS CRM 4.0 Supprimer le compte inactif d'une autre liste

Donc j'ai déjà tout, jusqu'à la partie retrait. J'ai une collection avec les comptes inactifs/contacts (L'ID (GUID)), j'ai juste besoin de supprimer en quelque sorte le membre de la liste. Donc, il y a une classe RemoveMemberListRequest qui ressemble à la bonne, le seul problème est, d'une certaine façon je ne peux pas le faire fonctionner.

foreach (Guid currentMember in inactiveMembers) 
      { 
       RemoveMemberListRequest req = new RemoveMemberListRequest(); 
       req.ListId = context.PrimaryEntityId; 
       req.EntityId = currentMember ; 
       RemoveMemberListResponse rmlResp = (RemoveMemberListResponse)crmService.Execute(req); 
      } 

quand il tente d'exécuter, la requête échoue, avec une erreur très générique, qu'il n'a pas pu exécuter la demande. Je suis pas sûr que ce soit la bonne façon de le faire ...

Il y a une autre classe qui semble avoir une propriété qui pourrait être utile: QualifyMemberListRequest

Avec la propriété: OverrideorRemove Mais je n » Je comprends vraiment comment ça marche, et je n'ai pas trouvé assez d'informations.

Quelqu'un?

Répondre

1

RemoveMemberListRequest est la bonne demande.

Quasiment toutes les exceptions lancées par les demandes de WebService CRM sont en fait de type SoapException, et dans ce cas, ils toujours dire « serveur n'a pas pu traiter la demande » dans la propriété Message, qui est bien sûr pas très utile .

Pour en savoir plus sur l'erreur, vous devez traiter l'exception en tant que SoapException et jeter un oeil à la propriété Detail.InnerText, qui, dans la plupart des cas fournir des informations utiles sur ce qui a mal tourné:

try 
{ 
    foreach (Guid currentMember in inactiveMembers) 
    { 
     RemoveMemberListRequest req = new RemoveMemberListRequest(); 
     req.ListId = context.PrimaryEntityId; 
     req.EntityId = currentMember ; 
     RemoveMemberListResponse rmlResp = (RemoveMemberListResponse)crmService.Execute(req); 
    } 
} 
catch (SoapException ex) 
{ 
    string sExceptionDetail = ex.Detail.InnerText; 

    // write sExceptionDetail somewhere you can look at it 
} 
catch (Exception ex) 
{ 
    // do your normal error handling here 
} 

I supposez que vous avez ramassé quelque "mauvais" ID quelque part, ou que c'est un problème de rôles/privilèges.

+0

Il semble que vous ayez raison (Encore une fois ...) Il y a quelque chose qui ne va pas avec les ID que j'essaie de passer .. – Ekaterina

+0

Correction ... c'était en effet ... Merci pour l'aide! – Ekaterina