import os import argparse from sys import path path.append('../..') from sf_auth import get_sf_connection def insert_service_contracts(context): """ Insert ServiceContract records using Bulk API 2.0 Args: context (str): Salesforce org context (e.g., 'qa2', 'prod') """ try: # Get Salesforce connection sf = get_sf_connection(context) csv_file = 'ServiceContract.csv' print(f'Starting bulk insert of ServiceContract records from {csv_file}...') # Use bulk API 2.0 to insert records directly from CSV results = sf.bulk2.ServiceContract.insert( csv_file, batch_size=10000, concurrency=5 ) # Count successes and failures success_count = sum(1 for result in results if result['success']) total_count = len(results) print(f'\nInsertion complete:') print(f'Total records: {total_count}') print(f'Successful: {success_count}') print(f'Failed: {total_count - success_count}') except Exception as e: print(f'Error: {str(e)}') raise if __name__ == '__main__': parser = argparse.ArgumentParser(description='Insert ServiceContract records via Bulk API') parser.add_argument('--context', type=str, required=True, help='Salesforce org context (e.g., "qa2", "prod")') args = parser.parse_args() insert_service_contracts(args.context)