Topic
- SalesforceXyToolsCoreを使ってApexClassを作成・更新・削除
ApexClassの作成
- Salesforce組織のユーザ名、パスワード、Apiバージョン、Product/Sandboxを設定してください。
from SalesforceXytoolsCore import *
import pprint
config = {
"api_version": 42.0,
"username": "sfdc username",
"password": "sfdc password",
"security_token": "",
"is_sandbox": True
}
tooling_api = ToolingApi(username=config["username"],
password=config["password"],
security_token=config["security_token"],
sandbox=config["is_sandbox"],
version=config["api_version"]
)
"""createApexClass"""
name = "HelloWorld"
body = """public class HelloWorld {
private String mystr;
}"""
status_code, result = tooling_api.createApexClass(name, body)
print(status_code)
pprint.pprint(result)
結果確認:
{'errors': [], 'id': '01pxxxxxxxxxxxxxxxxx', 'success': True}
ApexClassの更新
from SalesforceXytoolsCore import *
import pprint
config = {
"api_version": 42.0,
"username": "sfdc username",
"password": "sfdc password",
"security_token": "",
"is_sandbox": True
}
tooling_api = ToolingApi(username=config["username"],
password=config["password"],
security_token=config["security_token"],
sandbox=config["is_sandbox"],
version=config["api_version"]
)
apexclass_id = "set your apex class id"
body = """public class HelloWorld {
private String mystr1;
}"""
tooling_api.updateApexClass(apexclass_id, body)
ApexClassの削除
from SalesforceXytoolsCore import *
import pprint
config = {
"api_version": 42.0,
"username": "sfdc username",
"password": "sfdc password",
"security_token": "",
"is_sandbox": True
}
tooling_api = ToolingApi(username=config["username"],
password=config["password"],
security_token=config["security_token"],
sandbox=config["is_sandbox"],
version=config["api_version"]
)
apexclass_id = "set your apex class id"
body = """public class HelloWorld {
private String mystr1;
}"""
tooling_api.updateApexClass(apexclass_id, body)
その他
Triggerの作成
"""createTrigger"""
tooling_api.createTrigger(tableEnumOrId, name, body)
VisualForceの作成
"""createApexPage"""
tooling_api.createApexPage(MasterLabel, name, markup)
ApexComponentの作成
"""createApexComponent"""
tooling_api.createApexComponent(MasterLabel, name, markup)