Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Web Services - CRM 3.0

Îåêßíçóå áðü ôï ìÝëïò egeorge. Τελευταία δημοσίευση από το μέλος vxan στις 28-03-2006, 00:42. Υπάρχουν 9 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  21-03-2006, 20:01 10938

    Web Services - CRM 3.0

    Προσπαθώ να χρησιμοποιήσω τα web services του CRM 3.0, αλλά ότι και να έχω κάνει παίρνω συνέχεια το error

    Server was unable to process request.

    Δοκίμασα τόσο custom κώδικα όσο και από το SDK, και το ίδιο error πάντα.
     

    Μήπως ξέρει κανείς τι μπορεί να φταίει?

     
    Ευχαριστώ,

    Γιώργος


    Θρυλικός Προγραμματιστής
  •  21-03-2006, 23:02 10944 σε απάντηση της 10938

    Απ: Web Services - CRM 3.0

    Αν μπορείς να δώσεις περισσότερες λεπτομέρειες για το θέμα σου ίσως μπορώ να σε βοηθήσω. Πάντως στο τελευταίο έργο (CRM 3.0 with ERP Integration) που δουλεύω όλα δουλεύουν μια χαρά ...



    :)



    Υ.Γ. Αν μπορείς γράψε κάποια κομμάτι κώδικα και τη διαδικασία που υλοποίησες



    Φιλικά



    Βαγγέλης
    Βαγγέλης Ξανθάκης
    Independent Consultant
    www.aylos.com
  •  22-03-2006, 11:59 10959 σε απάντηση της 10938

    Απ: Web Services - CRM 3.0

    ublic class DynamicEntityHowTo

    {

    public DynamicEntityHowTo()

    {

    }



    public bool Run()

    {

    #region Setup Data Required for this Sample



    bool success = false;



    #endregion



    try

    {

    CrmService service = new CrmService();

    service.Url = "http://localhost/mscrmservices/2006/crmservice.asmx";



    // Pass in a value for the SOAP Header attribute.

    // This is the user that I want to impersonate.

    service.CallerIdValue = new CallerId();

    service.CallerIdValue.CallerGuid =new Guid("2B951FBC-1C56-4430-B23B-20A1349068F3");



    // Set the credentials to that of the current process.

    service.Credentials = System.Net.CredentialCache.DefaultCredentials;



    #region Create Contact Dynamically



    // Set the properties of the contact using property objects.

    StringProperty firstname = new StringProperty();

    firstname.Name = "firstname";

    firstname.Value = "Jesper";

    StringProperty lastname = new StringProperty();

    lastname.Name = "lastname";

    lastname.Value = "Aaberg";



    // Create the DynamicEntity object.

    DynamicEntity contactEntity = new DynamicEntity();



    // Set the name of the entity type.

    contactEntity.Name = EntityName.contact.ToString();



    // Set the properties of the contact.

    contactEntity.Properties = new Property[] {firstname, lastname};



    // Create the target.

    TargetCreateDynamic targetCreate = new TargetCreateDynamic();

    targetCreate.Entity = contactEntity;



    // Create the request object.

    CreateRequest create = new CreateRequest();



    // Set the properties of the request object.

    create.Target = targetCreate;



    // Execute the request.

    CreateResponse created = (CreateResponse) service.Execute(create);



    #endregion



    #region Retrieve Contact Dynamically



    // Create the retrieve target.

    TargetRetrieveDynamic targetRetrieve = new TargetRetrieveDynamic();



    // Set the properties of the target.

    targetRetrieve.EntityName = EntityName.contact.ToString();

    targetRetrieve.EntityId = created.id;



    // Create the request object.

    RetrieveRequest retrieve = new RetrieveRequest();



    // Set the properties of the request object.

    retrieve.Target = targetRetrieve;

    retrieve.ColumnSet = new AllColumns();



    // Indicates 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 entity = (DynamicEntity)retrieved.BusinessEntity;



    // Extract the fullname from the dynamic entity.

    string fullname;



    for (int i = 0; i < entity.Properties.Length; i++)

    {

    if (entity.PropertiesIdea [I].Name.ToLower() == "fullname")

    {

    StringProperty property = (StringProperty) entity.PropertiesIdea [I];

    fullname = property.Value;

    break;

    }

    }



    #endregion



    #region check success



    // bool success = false;



    if (retrieved.BusinessEntity is DynamicEntity)

    {

    success = true;

    }



    #endregion



    #region Remove Data Required for this Sample



    TargetDeleteContact targetDelete = new TargetDeleteContact();

    targetDelete.EntityId = created.id;



    DeleteRequest delete = new DeleteRequest();

    delete.Target = targetDelete;



    service.Execute(delete);



    #endregion

    }

    catch (System.Web.Services.Protocols.SoapException ex)

    {

    return false;

    }



    return success;

    }

    }





    Μήπως έχει δοκιμάσει με Visual Studio 2005?

    Ευχαριστώ πολύ
    Θρυλικός Προγραμματιστής
  •  23-03-2006, 10:21 11001 σε απάντηση της 10959

    Απ: Web Services - CRM 3.0

    Το πρόβλημα πιστεύω εντοπίζεται στη πρόσβαση και έχει να κάνει με το κώδικα παρακάτω



    CrmService service = new CrmService();

    service.Url = "http://localhost/mscrmservices/2006/crmservice.asmx";

    // Pass in a value for the SOAP Header attribute.

    // This is the user that I want to impersonate.

    service.CallerIdValue = new CallerId();

    service.CallerIdValue.CallerGuid =new Guid("2B951FBC-1C56-4430-B23B-20A1349068F3");

    // Set the credentials to that of the current process.

    service.Credentials = System.Net.CredentialCache.DefaultCredentials;



    το GUID που περνάς αντιστοιχεί σε συγκεκριμένο χρήστη στο context του οποίου θα τρέξει ο κώδικας. Μήπως ο κώδικας αναφέρεται σε workflow ? Αν ισχύει το παραπάνω τότε πρέπει ο χρήστης πρέπει να έχει δικαιώματα να τρέξει το συγκεκριμένο rule στο workflow.



    Αν πάλι μιλάμε δεν είναι workflow πρέπει να δεις αν η κλήση γίνεται μέσα από το CRM application ή αν το καλείς από κάποιο εξωτερικό application που λειτουργεί ως client στο CRM Web service.



    Σε κάθε περίπτωση πάντως ο χρήστης πρέπει να ναι μέλος στο Active directory, να έχει ορισθεί ως χρήστης στο CRM και να έχει τα απαραίτητα permissions-accesses.



    Ελπίζω να βοήθησα λίγο στη διάθεσή σου για περισσότερες πληροφορίες



    Φιλικά Βαγγέλης
    Βαγγέλης Ξανθάκης
    Independent Consultant
    www.aylos.com
  •  23-03-2006, 10:24 11002 σε απάντηση της 11001

    Απ: Web Services - CRM 3.0

    Σχετικά με το νέο Visual Studio δεν έχω δοκιμάσει να φιάξω κάποια πράγματα για το CRM αλλά δεν έχει να κάνει εκτός και αν τα κομμάτια που φιάχνεις θα τρέξουν κάτω από το CRM application οπότε και τότε θα πρέπει να το δούμε.




    Βαγγέλης Ξανθάκης
    Independent Consultant
    www.aylos.com
  •  23-03-2006, 11:41 11007 σε απάντηση της 11002

    Απ: Web Services - CRM 3.0

    Ευχαριστώ για την βοήθεια,

    Επειδή και εγώ φοβάμαι ότι πρόκειται για Security issues έχω δοκιμάσει τα εξής


    Σύμφωνα με το http://msdn.microsoft.com/library/default.asp?url=/library/en-us/CrmSdk3_0/htm/v3d0aboutthewebservices.asp 

    έχω χρησιμοποιήσει τον κώδικα

     

    CrmService myService = new CrmService();


    myService.Url = "http://localhost/mscrmservices/2006/crmservice.asmx";




    // Pass in a value for the SOAP Header attribute.


    // This is the user that I want to impersonate.


    myService.CallerIdValue = new CallerId();


    myService.CallerIdValue.CallerGuid =new Guid("2B951FBC-1C56-4430-B23B-20A1349068F3");




    // Set the credentials to that of the current process.


    myService.Credentials = System.Net.CredentialCache.DefaultCredentials;

     

    Το Guid το έχω πάρει από την βάση από άλλη εγγραφή που έγινε από το CRM, και συγκεκριμένα από το πεδίο OwnerUsing.

     

    O χρήστης είναι στο Domain έχει πρόσβαση στο CRM και ανήκει και στο group PrivUserGroup.

     

    Επίσης με τον ίδιο χρήστη δόκιμα αντί για

     

    service.Credentials = System.Net.CredentialCache.DefaultCredentials;


    τον ακόλουθο τρόπο

    service.Credentials = new System.Net.NetworkCredential("user", "password", "domain");

     

    με τα Credential του χρήστη, ακόμα και του administrator.

     

     

    Επειδή κανένα από τα παραπάνω δεν έχει παίξει, μπορείς να δώσεις  κάποιο κομμάτι κώδικα για το σημείο αυτό?

     

     

    Επίσης έχω δώσει πλήρη δικαιώματα στον χρήστη που τρέχει στον IIS. Τέλος γνωρίζεις μήπως χριάζετε κάποια ρύθμιση το CRM για να επιτρέψει την χρήση των Web Services?

     

     

    Ευχαριστώ,

     

    Γιώργος

     

     

     

     

     

     

     

     

     


    Θρυλικός Προγραμματιστής
  •  23-03-2006, 23:27 11048 σε απάντηση της 11007

    Απ: Web Services - CRM 3.0

    Νομίζω Γιώργο ότι από την απόψη του κώδικα είσαι εντάξει, παρ'ολα αυτά σου παραθέτω μία μέθοδο που χρησιμοποιώ για να μοθ επιστρέψει το service. Μη σε αποπροσανατολήσει το pattern που χρησιμοποιώ. Ουσιαστικά δεν υπάρχουν διαφορές με το δικό σου.



    Public Shared Function CrmServer() As Soa.CRM30.CrmService



    SyncLock lock

    Dim srv As Soa.CRM30.CrmService = New Soa.CRM30.CrmService

    If Not CrmUrl() Is Nothing Then

    srv.Url = CrmUrl()

    End If

    srv.PreAuthenticate = True

    srv.Credentials = System.Net.CredentialCache.DefaultCredentials

    ''srv.Credentials = _

    '' New System.Net.NetworkCredential("user", "password", "domain")

    ''' Το κομμάτι με τα credentials το χρησιμοποιώ όταν κάνω debug από τον υπολογιστή μου. Όταν ανεβάζω το κώδικά στο CRM application δεν το χρησιμοποιώ γιατί με αναγνωρίζει σα χρήστη στο Active Directory και μου δίνει access στο application.

    Return srv

    End SyncLock



    End Function



    Στη τελευταία ερώτησή σου απαντώ ότι δε χρειάζεται κάτι τέτοιο



    Είναι σαφές νομίζω ότι έχει να κάνει με το θέμα της πρόσβασης. Θα κάνω μιά προσπάθεια και αύριο μήπως και μπορέσω να σου δώσω κάποια πληροφορία σε σχέση με την εγκατάσταση και τους χρήστες.



    Καλή συνέχεια

    Βαγγέλης








    Βαγγέλης Ξανθάκης
    Independent Consultant
    www.aylos.com
  •  23-03-2006, 23:50 11049 σε απάντηση της 11048

    Απ: Web Services - CRM 3.0

    sorry για τη VB (αγαπημένη μου είναι η C#) αλλά το έργο απαιτούσε VB οπότε γράφω σε ότι χρειάζεται το έργο
    Βαγγέλης Ξανθάκης
    Independent Consultant
    www.aylos.com
  •  27-03-2006, 21:13 11226 σε απάντηση της 11049

    Απ: Web Services - CRM 3.0

    Τελικά το πρόβλημα ήταν στο Account του Administrator, ήταν σε Restricted Access Mode.

    Επίσης το Virtual Directory mscrmservices τρέχει με χρήστη του Domain ο οποίος ανήκει στο PrivUserGroup.


    Γιώργος.


    Θρυλικός Προγραμματιστής
  •  28-03-2006, 00:42 11238 σε απάντηση της 11226

    Απ: Web Services - CRM 3.0

    :)
    Βαγγέλης Ξανθάκης
    Independent Consultant
    www.aylos.com
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems