Topic

ApexScriptを実行する

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
}

soap_api = Soap(username=config["username"], 
                password=config["password"], 
                security_token=config["security_token"], 
                sandbox=config["is_sandbox"],
                version=config["api_version"]
                )

"""
Run Apex Script
"""
apex_string = "System.debug('hello world');"
debug_levels = {
        "DB": "Info", 
        "System": "DEBUG", 
        "Workflow": "INFO", 
        "Callout": "INFO", 
        "Validation": "INFO", 
        "Apex_Code": "DEBUG", 
        "Apex_Profiling": "INFO"
    }
result = soap_api.execute_anonymous(apex_string, debug_levels)
pprint.pprint(result)

結果ログを確認:

{'debugLog': '42.0 '
             'APEX_CODE,DEBUG;APEX_PROFILING,INFO;CALLOUT,INFO;DB,INFO;SYSTEM,DEBUG;VALIDATION,INFO;WORKFLOW,INFO\n'
             "Execute Anonymous: System.debug('hello world');\n"
             '22:22:14.19 '
             '()|USER_INFO|[EXTERNAL]|xxxxxxxxxxxxxxxxxxxxxxxxx|日本標準時|GMT+09:00\n'
             '22:22:14.19 ()|EXECUTION_STARTED\n'
             '22:22:14.19 '
             '()|CODE_UNIT_STARTED|[EXTERNAL]|execute_anonymous_apex\n'
             '22:22:14.19 ()|USER_DEBUG|[1]|DEBUG|hello world\n'
             '22:22:14.19 ()|CUMULATIVE_LIMIT_USAGE\n'
             '22:22:14.19 ()|LIMIT_USAGE_FOR_NS|(default)|\n'
             '  Number of SOQL queries: 0 out of 100\n'
             '  Number of query rows: 0 out of 50000\n'
             '  Number of SOSL queries: 0 out of 20\n'
             '  Number of DML statements: 0 out of 150\n'
             '  Number of DML rows: 0 out of 10000\n'
             '  Maximum CPU time: 0 out of 10000\n'
             '  Maximum heap size: 0 out of 6000000\n'
             '  Number of callouts: 0 out of 100\n'
             '  Number of Email Invocations: 0 out of 10\n'
             '  Number of future calls: 0 out of 50\n'
             '  Number of queueable jobs added to the queue: 0 out of 50\n'
             '  Number of Mobile Apex push calls: 0 out of 10\n'
             '\n'
             '22:22:14.19 ()|CUMULATIVE_LIMIT_USAGE_END\n'
             '\n'
             '22:22:14.19 '
             '()|CODE_UNIT_FINISHED|execute_anonymous_apex\n'
             '22:22:14.19 ()|EXECUTION_FINISHED\n',
 'success': True}