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,
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,
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 deles 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/
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(); } }
Impec
Si ça fonctionne pense à passer le post en![]()
![]()
---
Overcrash
Je ne lis pas les codes qui ne sont pas indentés.
Merci deles 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/
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 deles 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/
Partager