L'API Tooling fournit des interfaces SOAP et REST qui vous permettent de créer des outils de développement personnalisés pour les applications Force.com. Cette fois, nous utiliserons l'API SOAP dans l'API Tooling pour enregistrer et mettre à jour les ressources statiques. Utilisez Enterprise WSDL.
Veuillez consulter le manuel Salesforce.
L'exemple nécessite le package «Force.com Web Service Connector». Un exemple d'importation Maven est ajouté au fichier de paramètres pom.xml ci-dessous. Pour d'autres outils de gestion de projet, voir mvnrepository.
pom.xml
<!-- https://mvnrepository.com/artifact/com.force.api/force-wsc -->
<dependency>
<groupId>com.force.api</groupId>
<artifactId>force-wsc</artifactId>
<version>48.1.0</version>
</dependency>
Créez un fichier Enterprise Jar avec la source suivante
java –classpath force-wsc-30.0.0.jar;ST4-4.0.7.jar;antlr-runtime-3.5.jar com.sforce.ws.tools.wsdlc enterprise.wsdl enterprise.jar
Il existe de nombreux exemples d'éclipse sur le net pour l'importation dans un projet, alors recherchez sur Google et omettez cela. Voici un exemple d'importation de vscode.
.classpath
<classpathentry kind="lib" path="C:\xxx\.jar\enterprise.jar"/>
4.1. Importer les classes requises
//Pour lire des ressources statiques
import java.nio.file.Paths;
import java.io.IOException;
import java.nio.file.Files;
//Pour les appels d'API Tooling
import com.sforce.soap.enterprise.Connector;
import com.sforce.soap.enterprise.EnterpriseConnection;
import com.sforce.soap.enterprise.QueryResult;
import com.sforce.soap.enterprise.SaveResult;
import com.sforce.soap.enterprise.sobject.SObject;
import com.sforce.soap.enterprise.sobject.StaticResource;
import com.sforce.ws.ConnectionException;
import com.sforce.ws.ConnectorConfig;
4.2. Générer une connexion d'entreprise
getEnterpriseConnection
private static EnterpriseConnection getEnterpriseConnection() throws ConnectionException { ConnectorConfig config = new ConnectorConfig();
config.setUsername("username"); //Spécifiez en fait le compte de connexion sandbox
config.setPassword("password"); //Spécifiez en fait le mot de passe de connexion au sandbox
return Connector.newConnection(config);
}
4.3. Télécharger des ressources statiques
createStaticResource
private static void createStaticResource(EnterpriseConnection connection) throws IOException, ConnectionException{
StaticResource sr = new StaticResource();
sr.setName("test");
// STATICRESOURCE_FILE_PATP:Chemin complet du fichier de ressources statiques
byte[] Body = Files.readAllBytes(Paths.get(STATICRESOURCE_FILE_PATH));
sr.setBody(Body);
sr.setCacheControl("Public");
sr.setContentType("application/json");
SaveResult[] ret = connection.create(new SObject[]{sr});
for(SaveResult r: ret) {
System.out.println(r.getId());
System.out.println(r.getSuccess());
if (r.getErrors().length > 0) {
System.out.println(r.getErrors()[0]);
}
}
}
4.4. Mettre à niveau les ressources statiques
updateStaticResource
private static void updateStaticResource(EnterpriseConnection connection) throws IOException, ConnectionException{
// QUERY_STATICRESOURCE_SQL:SOQL pour l'inspection des ressources statiques(select id form staticresource where name = 'test')
QueryResult qr = connection.query(QUERY_STATICRESOURCE_SQL);
SObject[] srs = qr.getRecords();
StaticResource sr = (StaticResource)srs[0];
byte[] Body = Files.readAllBytes(Paths.get(STATICRESOURCE_FILE_PATH));
sr.setBody(Body);
SaveResult[] ret = connection.update(new SObject[]{sr});
for(SaveResult r: ret) {
System.out.println(r.getId());
System.out.println(r.getSuccess());
if (r.getErrors().length > 0) {
System.out.println(r.getErrors()[0]);
}
}
}
4.5. Méthode principale
main
public static void main( String[] args ) throws IOException, ConnectionException {
EnterpriseConnection connection = getEnterpriseConnection();
// createStaticResource(connection);
updateStaticResource(connection);
}
1. API de métadonnées 2. Force.com Web Service Connector 3. Appelez l'API SOAP Salesforce depuis Java
Recommended Posts