[PYTHON] Ich habe ein Tool zum automatischen Sichern der Metadaten der Salesforce-Organisation erstellt

Dieses Ergebnis

Ich möchte Salesforce-Metadaten automatisch durch Zeitplanausführung sichern. Ich habe ANT über den Windows-Taskplaner ausgeführt, um ein Tool zum Planen automatischer Sicherungen zu erstellen.

Was Sie brauchen, ist wie folgt. -Installation von Apache Ant -Installation von Java JDK ・ Installation von Python3

Klicken Sie auf den folgenden Link, um eine detaillierte Anleitung zum Freigeben von Salesforce mithilfe von ANT zu erhalten. (Es gibt auch eine Beschreibung, wie ANT und Java installiert werden.) · Veröffentlichung von Änderungen mit dem Ant-Migrationstool

Klicken Sie auf den Link unten, um Python zu installieren. ・ Python3 installieren

Ordnerstruktur

myorg/
┣unpackaged
┃ ┗package.xml
┣build.properties
┣build.xml
┣modifyXML.py
┣backupByDateTime.bat

-Unpackaged / package.xml: Definieren Sie den Typ der Metadaten, die Sie abrufen möchten · Build.properties: Definiert Verbindungsinformationen zur Salesforce-Organisation.

build.properties


sf.username = [email protected]
sf.password = xxxyyyzzz
sf.serverurl = https://login.salesforce.com
sf.maxPoll = 20

-Build.xml: Definiert Befehle, die von Ant ausgeführt werden sollen.

build.xml


<?xml version='1.0' encoding='UTF-8'?>
<project xmlns:sf="antlib:com.salesforce" name="Sample usage of Salesforce Ant tasks" default="test" basedir=".">

    <property file="build.properties" />
    <property environment="env" />

    
    <condition property="sf.username" value=""> <not> <isset property="sf.username" /> </not> </condition>
    <condition property="sf.password" value=""> <not> <isset property="sf.password" /> </not> </condition>
    <condition property="sf.sessionId" value=""> <not> <isset property="sf.sessionId" /> </not> </condition>

    <taskdef resource="com/salesforce/antlib.xml" uri="antlib:com.salesforce">
        <classpath>
            <pathelement location="../ant-salesforce.jar" />        	
        </classpath>
    </taskdef>

    
    <target name="retrieveUnpackaged">
      <mkdir dir="backupxxxxxxxxx" />
      
      <sf:retrieve username="${sf.username}" password="${sf.password}" serverurl="${sf.serverurl}" maxPoll="${sf.maxPoll}" retrieveTarget="backup0111163434" unpackaged="unpackaged/package.xml" />
    </target>

    
</project>

-ModifyXML.py: Ein Programm, das build.xml bearbeitet

modifyXML.py


import xml.etree.ElementTree as ET
import datetime

#XML analysieren
tree = ET.parse('build.xml')
ET.register_namespace('sf', 'antlib:com.salesforce')

#Holen Sie sich XML
root = tree.getroot()

now = datetime.datetime.now()
dt_string = now.strftime('%m%d%H%M%S')

for e_mkdir in root.iter('mkdir'):
    e_mkdir.set('dir', 'backup' + dt_string)

for e_ret in root.iter("{antlib:com.salesforce}retrieve"):
    e_ret.set('retrieveTarget', 'backup' + dt_string)

#sparen
tree.write('build.xml', 'UTF-8', True)

-BackupByDateTime.bat: Eine Batchdatei, die den obigen Python ausführt und ANT-Befehle ausführt.

backupByDateTime.bat


python modifyXML.py
Ant retrieveUnpackaged

Lauf

Planen Sie die obige Batchdatei mit dem Windows Task Scheduler. Informationen zu den Scheduler-Einstellungen finden Sie unter hier.

Sie können auch den obigen Ordner öffnen und auf die Batchdatei doppelklicken.

Bei der Ausführung wird im Ordner ein Ordner mit dem Namen "Datum und Uhrzeit der Sicherungsausführung Sekunden" erstellt. Die Metadaten werden in diesem Ordner gespeichert.

Zusammenfassung

Verwenden Sie es für Salesforce-Entwicklungsprojekte, z. B. wenn Sie regelmäßig eine Sicherungskopie aus der Produktions-, Verifizierungs- und Entwicklungsumgebung erstellen müssen.

Als ich die Kreationen innerhalb des Unternehmens teilte, gab es eine Stimme mit der Aufschrift "Verwalten der erworbenen Ordner mit Git". Wenn Sie also Zeit haben, würde ich das auch gerne versuchen.

Recommended Posts

Ich habe ein Tool zum automatischen Sichern der Metadaten der Salesforce-Organisation erstellt
Ich habe ein Tool erstellt, um die Ausführungszeit von cron zu schätzen (+ PyPI-Debüt)
Ich habe eine Funktion erstellt, um das Modell von DCGAN zu überprüfen
Ich habe ein Tool erstellt, um die Antwortlinks von OpenAI Gym auf einmal zu erhalten
Ich habe ein Tool erstellt, um automatisch ein einfaches ER-Diagramm aus der Anweisung CREATE TABLE zu generieren
Ich habe einen Kalender erstellt, der den Verteilungsplan von Vtuber automatisch aktualisiert
Ich habe ein Tool zum automatischen Durchsuchen mehrerer Websites mit Selenium (Python) erstellt.
Ich habe ein Programm erstellt, um die Größe einer Datei mit Python zu überprüfen
Ich habe eine Funktion erstellt, um die Bewegung eines zweidimensionalen Arrays (Python) zu sehen.
Ich habe ein Tool erstellt, um Hy nativ zu kompilieren
Ich habe ein Tool erstellt, um neue Artikel zu erhalten
Ich habe ein Tool erstellt, um Slack über Connpass-Ereignisse zu informieren, und es zu Terraform gemacht
Ich habe einen Appdo-Befehl erstellt, um Befehle im Kontext der App auszuführen
Ich habe ein Programm erstellt, um Wörter im Fenster nachzuschlagen (vorherige Entwicklung)
Ich habe ein Skript erstellt, das das aktive Fenster mit win32gui von Python aufzeichnet
Ich habe einen Befehl zum Markieren des Tabellenclips gegeben
Ich habe einen Kalender erstellt, der den Verteilungsplan von Vtuber automatisch aktualisiert (Google Kalender Edition).
Ein Werkzeug, das die Gacha von Soshage automatisch dreht
Ich habe versucht, eine Rangliste zu erstellen, indem ich das Mitgliederteam der Organisation abgekratzt habe
Ich habe ein Tool erstellt, um eine Wortwolke aus Wikipedia zu erstellen
Ich habe ein Punktbild des Bildes von Irasutoya gemacht. (Teil 1)
Ich habe ein Punktbild des Bildes von Irasutoya gemacht. (Teil 2)
[Titan Craft] Ich habe ein Werkzeug gemacht, um einen Riesen nach Minecraft zu rufen
Ich habe versucht, ein Programm zu erstellen, um die Fehlersuche von Saiseriya zu lösen (Hinweis)
[Einführung in StyleGAN] Ich habe mit "The Life of a Man" ♬ gespielt
Ich habe einen schlaffen Bot gemacht, der mich über die Temperatur informiert
Ich habe versucht, ein Gerüstwerkzeug für Python Web Framework Bottle zu erstellen
Ich habe den Befehl gegeben, einen farbenfrohen Kalender im Terminal anzuzeigen
Ich habe ein Programm erstellt, das den Tierkreis mit tkinter automatisch berechnet
[Kaggle] Ich habe mit dem Titanic-Tutorial eine Sammlung von Problemen erstellt
Ich möchte die Frage nach der Methode "__init__" und dem Argument "self" der Python-Klasse klären.
[Django] Erstellt ein Feld zur Eingabe von Daten mit 4-stelligen Zahlen
Ich habe einen Küchentimer erstellt, der in der Statusleiste angezeigt wird!
Ich möchte eine Liste in der Reihenfolge anderer Listen sortieren
Ich habe versucht, die Bewegungen von Wiire-Playern automatisch mit Software zu extrahieren
Ich habe ein Skript erstellt, um Piktogramme anzuzeigen
Ich habe GAN mit Keras gemacht, also habe ich ein Video des Lernprozesses gemacht.
Ich habe eine Bibliothek konoha gemacht, die den Tokenizer auf ein schönes Gefühl umstellt
Ich habe ein Tool erstellt, um Jupyter py mit VS Code in ipynb zu konvertieren
Ich habe versucht, das RSS des Top-Songs des iTunes Store automatisch abzurufen
Ich habe ein automatisches Stempelwerkzeug für den Browser erstellt.
Ich habe einen Fehler beim Abrufen der Hierarchie mit MultiIndex von Pandas gemacht
Ich habe versucht, den Höhenwert von DTM in einem Diagramm anzuzeigen
Hinweise Ich habe nachgeschlagen, um Befehlszeilentools in Python zu erstellen
Ich habe versucht, das Ergebnis des A / B-Tests mit dem Chi-Quadrat-Test zu überprüfen
Python: Ich möchte die Verarbeitungszeit einer Funktion genau messen
[Python] Ich habe einen Web-Scraping-Code erstellt, der automatisch den Nachrichtentitel und die URL von Nihon Keizai Shimbun erfasst.
Die Geschichte der IPv6-Adresse, die ich auf ein Minimum beschränken möchte
Ich habe Sie dazu gebracht, das Ende der IP-Adresse mit L Chika auszudrücken
Ich habe gerade ein Tool erstellt, mit dem Daten mithilfe der GUI-Operation einfach als Diagramm angezeigt werden können
Beachten Sie die Lösung, da Django nicht mit pip installiert werden konnte
Ich habe versucht, automatisch eine Portverwaltungstabelle aus L2SW Config zu generieren
Ich möchte einen Lebenszyklus in der Aufgabendefinition von ECS festlegen
Ich möchte eine Liste der WebDAV-Dateien im Modul Anfragen anzeigen
Ich habe versucht, ein Modell mit dem Beispiel von Amazon SageMaker Autopilot zu erstellen
Ich habe versucht, die Literatur des neuen Corona-Virus mit Python automatisch an LINE zu senden
So berechnen Sie die Volatilität einer Marke
Ich habe ein nützliches Tool für Digital Ocean erstellt