Una buena pregunta surgió en el Foro de Dynamics CRM. Se trata del mundo de Java y CRM 2011. Bueno la pregunta fue de cómo se puede conectar uno a través de Java al CRM y claro, a mi parecer, la conexión es parecida al que se realiza con C# (bueno, en Java hay que poner más set en realidad je je).

Cuento con un código para la conexión de Java y CRM 4, aunque esta misma debería de funcionar con el CRM 2011 ya que los servicios del CRM 4 están todavía “activos” en el actual CRM.

El código es el siguiente

private static String endpointURL = "http://server:port/MSCrmServices/2007/CrmService.asmx";  
private static String userName = "username";  
private static String password = "password";  
private static String host = "server";  
private static int portport = port;  
 
private static String domain = "DOMAIN";   
private static String orgName = "Org"; 
public static void main(String[] args) {  
    CrmServiceStub stub;  
    try {  
        stub = new CrmServiceStub(endpointURL);  
        setOptions(stub._getServiceClient().getOptions());  
        RetrieveMultipleDocument rmd = RetrieveMultipleDocument.Factory.newInstance();  
        RetrieveMultiple rm = RetrieveMultiple.Factory.newInstance();  
 
        QueryExpression query = QueryExpression.Factory.newInstance();  
        query.setColumnSet(AllColumns.Factory.newInstance());  
        query.setEntityName(EntityName.<Entidad>.toString());  
        //query.setFilter...  
 
        rm.setQuery(query);  
        rmd.setRetrieveMultiple(rm);  
 
       CrmAuthenticationTokenDocument catd = CrmAuthenticationTokenDocument.Factory.newInstance();  
        CrmAuthenticationToken token = CrmAuthenticationToken.Factory.newInstance();  
        token.setAuthenticationType(0);     
        token.setOrganizationName(orgName);  
        catd.setCrmAuthenticationToken(token);  
 
        boolean fetchNext = true;  
        while(fetchNext){  
            RetrieveMultipleResponseDocument rmrd = stub.RetrieveMultiple(rmd,  catd, null, null);  
            RetrieveMultipleResponse rmr = rmrd.getRetrieveMultipleResponse();  
            BusinessEntityCollection bec = rmr.getRetrieveMultipleResult();  
            String pagingCookie = bec.getPagingCookie();  
            fetchNext = bec.getMoreRecords();  
            ArrayOfBusinessEntity aobe = bec.getBusinessEntities();  
            BusinessEntity[] myEntitiesAtLast = aobe.getBusinessEntityArray();  
 
            for(int i=0; i<myEntitiesAtLast.length; i++){  
        //Lo que quieras hacer
            }  
        }  
    }   
    catch (Exception e) {  
        e.printStackTrace();  
    }  
}  
 
private static void setOptions(Options options){  
    HttpTransportProperties.Authenticator auth = new HttpTransportProperties.Authenticator();  
 
    List authSchemes = new ArrayList();  
    authSchemes.add(HttpTransportProperties.Authenticator.NTLM);   
    auth.setAuthSchemes(authSchemes);   
    auth.setUsername(userName);  
    auth.setPassword(password);  
    auth.setHost(host);  
    auth.setPort(port);  
    auth.setDomain(domain);
auth.setPreemptiveAuthentication(false);
options.setProperty(HTTPConstants.AUTHENTICATE, auth);
options.setProperty(HTTPConstants.REUSE_HTTP_CLIENT, "true");
}

Ahora, investigando un poco me he encontrado con algunos post y un código en Java que nos ayudara a la conexión.

Les dejo acá los link que tales les puedan interesar.

Salu2

Atilin

¡Cuéntale al mundo!

  • Facebook
  • Twitter
  • Google Plus
  • LinkedIn
 
Comentarios

No comments yet.

Leave a Reply

You must be logged in to post a comment.