Die Tooling-API bietet SOAP- und REST-Schnittstellen, mit denen Sie benutzerdefinierte Entwicklungstools für Force.com-Anwendungen erstellen können. Dieses Mal verwenden wir die SOAP-API in der Tooling-API, um statische Ressourcen zu registrieren und zu aktualisieren. Verwenden Sie Enterprise WSDL.
Weitere Informationen finden Sie im Salesforce-Handbuch.
Für das Beispiel ist das Paket "Force.com Web Service Connector" erforderlich. Ein Beispiel für den Maven-Import wird der folgenden Einstellungsdatei pom.xml hinzugefügt. Weitere Projektmanagement-Tools finden Sie unter 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>
Erstellen Sie eine Enterprise Jar-Datei mit der folgenden Quelle
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
Es gibt viele Beispiele für Eclipse im Internet zum Importieren in ein Projekt. Suchen Sie also bei Google und lassen Sie dies weg. Das folgende Beispiel zeigt den Import von vscode.
.classpath
<classpathentry kind="lib" path="C:\xxx\.jar\enterprise.jar"/>
4.1. Importieren Sie die erforderlichen Klassen
//Zum Lesen statischer Ressourcen
import java.nio.file.Paths;
import java.io.IOException;
import java.nio.file.Files;
//Für Tooling-API-Aufrufe
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. Generieren Sie eine Unternehmensverbindung
getEnterpriseConnection
private static EnterpriseConnection getEnterpriseConnection() throws ConnectionException { ConnectorConfig config = new ConnectorConfig();
config.setUsername("username"); //Geben Sie tatsächlich das Sandbox-Anmeldekonto an
config.setPassword("password"); //Geben Sie tatsächlich das Sandbox-Anmeldekennwort an
return Connector.newConnection(config);
}
4.3. Statische Ressourcen hochladen
createStaticResource
private static void createStaticResource(EnterpriseConnection connection) throws IOException, ConnectionException{
StaticResource sr = new StaticResource();
sr.setName("test");
// STATICRESOURCE_FILE_PATP:Vollständiger Pfad der statischen Ressourcendatei
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 Statische Ressourcen aktualisieren
updateStaticResource
private static void updateStaticResource(EnterpriseConnection connection) throws IOException, ConnectionException{
// QUERY_STATICRESOURCE_SQL:SOQL zur Überprüfung statischer Ressourcen(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 Hauptmethode
main
public static void main( String[] args ) throws IOException, ConnectionException {
EnterpriseConnection connection = getEnterpriseConnection();
// createStaticResource(connection);
updateStaticResource(connection);
}
1. Metadaten-API 2. Force.com Web Service Connector 3. Salesforce SOAP API von Java aus aufrufen
Recommended Posts