IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Salesforce.com Discussion :

utiliser BULK API de SalesForce avec C#


Sujet :

Salesforce.com

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 32
    Par défaut utiliser BULK API de SalesForce avec C#
    bonjour,
    je cherche un exemple du code ou on utilise BULK API pour la récupération des donnée Salesforce sous forme d'un fichier .CSV
    Merci.

    mots clefs: SalesFoce, Visual studio, c#, SOAP, Bulk Api, Web Services,

  2. #2
    Modérateur
    Avatar de Overcrash
    Homme Profil pro
    Architecte Logiciel et responsable CRM (Salesforce)
    Inscrit en
    Mai 2008
    Messages
    1 254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Architecte Logiciel et responsable CRM (Salesforce)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 254
    Par défaut
    Bonjour,

    Tu as ici plusieurs sample : http://www.salesforce.com/us/developer/docs/api_asynch/

    Dont un pour Retrieve les résultats.

    C'est bien ça que tu cherches ?
    ---
    Overcrash

    Je ne lis pas les codes qui ne sont pas indentés.
    Merci de les messages utiles en cliquant en bas à droite du message

    Bloqué par le firewall pour accéder au chat ? Essayez avec l'adresse en direct : http://87.98.168.209/

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 32
    Par défaut
    Citation Envoyé par Overcrash Voir le message
    Bonjour,

    Tu as ici plusieurs sample : http://www.salesforce.com/us/developer/docs/api_asynch/

    Dont un pour Retrieve les résultats.

    C'est bien ça que tu cherches ?
    Merci Overcrash,

    j'ai trouvé ce code en Java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    public boolean login() {
    	boolean success = false;
    	String userId = getUserInput("UserID: ");
    	String passwd = getUserInput("Password: ");
    	String soapAuthEndPoint = "https://" + loginHost + soapService;
    	String bulkAuthEndPoint = "https://" + loginHost + bulkService;
    	try {
    		ConnectorConfig config = new ConnectorConfig();
    		config.setUsername(userId);
    		config.setPassword(passwd);
    		config.setAuthEndpoint(soapAuthEndPoint);
    		config.setCompression(true);
    		config.setTraceFile("traceLogs.txt");
    		config.setTraceMessage(true);
    		config.setPrettyPrintXml(true);
    		System.out.println("AuthEndpoint: " +
    		config.getRestEndpoint());
    		PartnerConnection connection = new PartnerConnection(config);
    		System.out.println("SessionID: " + config.getSessionId());
    		config.setRestEndpoint(bulkAuthEndPoint);
    		bulkConnection = new BulkConnection(config);
    		success = true;
    	} catch (AsyncApiException aae) {
    		aae.printStackTrace();
    	} catch (ConnectionException ce) {
    		ce.printStackTrace();
    	} catch (FileNotFoundException fnfe) {
    		fnfe.printStackTrace();
    	}
    	return success;
    }
    public void doBulkQuery() {
    	if ( ! login() ) {
    		return;
    	}
    	try {
    		JobInfo job = new JobInfo();
    		job.setObject("Merchandise__c");
    		job.setOperation(OperationEnum.query);
    		job.setConcurrencyMode(ConcurrencyMode.Parallel);
    		job.setContentType(ContentType.CSV);
    		job = bulkConnection.createJob(job);
    		assert job.getId() != null;
    		job = bulkConnection.getJobStatus(job.getId());
    		String query =
    		"SELECT Name, Id, Description__c FROM Merchandise__c";
    		long start = System.currentTimeMillis();
    		BatchInfo info = null;
    		ByteArrayInputStream bout =
    		new ByteArrayInputStream(query.getBytes());
    		info = bulkConnection.createBatchFromStream(job, bout);
    		String[] queryResults = null;
    		for(int i=0; i<10000; i++) {
    			Thread.sleep(i==0 ? 30 * 1000 : 30 * 1000); //30 sec
    			info = bulkConnection.getBatchInfo(job.getId(),
    			info.getId());
    			if (info.getState() == BatchStateEnum.Completed) {
    				QueryResultList list =
    				bulkConnection.getQueryResultList(job.getId(),
    				info.getId());
    				queryResults = list.getResult();
    			break;
    			} else if (info.getState() == BatchStateEnum.Failed) {
    				System.out.println("-------------- failed ----------"
    				+ info);
    				break;
    			} else {
    				System.out.println("-------------- waiting ----------"
    				+ info);
    			}
    		}
    		if (queryResults != null) {
    			for (String resultId : queryResults) {
    				bulkConnection.getQueryResultStream(job.getId(),
    				info.getId(), resultId);
    			}
    		}
    	} catch (AsyncApiException aae) {
    		aae.printStackTrace();
    	} catch (InterruptedException ie) {
    		ie.printStackTrace();
    	}
    }

  4. #4
    Modérateur
    Avatar de Overcrash
    Homme Profil pro
    Architecte Logiciel et responsable CRM (Salesforce)
    Inscrit en
    Mai 2008
    Messages
    1 254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Architecte Logiciel et responsable CRM (Salesforce)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 254
    Par défaut
    Impec

    Si ça fonctionne pense à passer le post en
    ---
    Overcrash

    Je ne lis pas les codes qui ne sont pas indentés.
    Merci de les messages utiles en cliquant en bas à droite du message

    Bloqué par le firewall pour accéder au chat ? Essayez avec l'adresse en direct : http://87.98.168.209/

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 32
    Par défaut
    Citation Envoyé par Overcrash Voir le message
    Impec

    Si ça fonctionne pense à passer le post en
    je n'arrive pas à l’écrire en c#

  6. #6
    Modérateur
    Avatar de Overcrash
    Homme Profil pro
    Architecte Logiciel et responsable CRM (Salesforce)
    Inscrit en
    Mai 2008
    Messages
    1 254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Architecte Logiciel et responsable CRM (Salesforce)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 254
    Par défaut
    Ou est le soucis ? au niveau de la connexion ?

    Tu peux générer le xml de login à Salesforce.
    Trouvé sur le net :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <soap:Body>
        <login xmlns="urn:enterprise.soap.sforce.com">
          <username>username</username>
          <password>password + token</password>
        </login>
      </soap:Body>
    </soap:Envelope>

    Ensuite faire un truc du style :

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    XmlDocument doc = new XmlDocument();
                    doc.LoadXml(str);
                    string uri = "https://login.salesforce.com/services/Soap/c/21.0";
                    HttpWebRequest req = (HttpWebRequest)WebRequest.Create(uri);
                    req.Headers.Add("SOAPAction", "login");
                    req.ContentType = "text/xml;charset=\"utf-8\"";
                    req.Accept = "text/xml";
                    req.Method = "POST";
                    stm = req.GetRequestStream();
                    doc.Save(stm);
                    stm.Close();
                    WebResponse resp = req.GetResponse();
                    stm = resp.GetResponseStream();
                    XmlDocument doc1 = new XmlDocument();
                    doc1.Load(stm);

    Sinon pourquoi pas simplement importé le WSDL généré par Salesforce et l'utiliser ? tu peux le sortir avec ta config en particulier ou avec une config standard pour la portabilité.
    ---
    Overcrash

    Je ne lis pas les codes qui ne sont pas indentés.
    Merci de les messages utiles en cliquant en bas à droite du message

    Bloqué par le firewall pour accéder au chat ? Essayez avec l'adresse en direct : http://87.98.168.209/

Discussions similaires

  1. Utilisation les API de SCRIBD avec l'ASP
    Par Adnane91 dans le forum ASP.NET
    Réponses: 8
    Dernier message: 16/05/2011, 13h48
  2. Réponses: 0
    Dernier message: 09/11/2010, 15h11
  3. Utilisation API C Ghostscript avec JNA
    Par snay13 dans le forum Débuter
    Réponses: 10
    Dernier message: 15/08/2010, 07h43
  4. probleme d'utilisation d api c dans des controle forms avec wpf
    Par ZashOne dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 24/07/2007, 12h04
  5. comment utiliser les API avec Perl?
    Par megapacman dans le forum Langage
    Réponses: 5
    Dernier message: 23/08/2006, 15h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo