savestate before github
This commit is contained in:
1
prepared_steps/21_insert_maintenance_asset/command.txt
Normal file
1
prepared_steps/21_insert_maintenance_asset/command.txt
Normal file
@ -0,0 +1 @@
|
||||
python link_ids_and_create_maintenanceassets.py --context qa2 --csv MaintenanceAsset.csv
|
@ -0,0 +1,81 @@
|
||||
import pandas as pd
|
||||
import os
|
||||
from sys import path
|
||||
import argparse
|
||||
path.append('../..')
|
||||
from utils import bulk_insert_records
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
parser = argparse.ArgumentParser(description='Insert MaintenancePlan records via Bulk API')
|
||||
parser.add_argument('--context', type=str, required=True,
|
||||
help='Salesforce org context (e.g., "qa2", "prod")')
|
||||
parser.add_argument('--csv', type=str, default='MaintenancePlan.csv',
|
||||
help='CSV file to process (default: MaintenanceAsset.csv)')
|
||||
args = parser.parse_args()
|
||||
|
||||
df_s_servicecontracts = pd.read_csv("../16_insert_servicecontract/successful_records.csv")
|
||||
df_s_maintenanceplans = pd.read_csv("../20_create_maintenance_plan/successful_records.csv")
|
||||
df_maintenanceasset_before = pd.read_csv("MaintenanceAsset_beforetransform.csv")
|
||||
|
||||
|
||||
asset_update_path = os.path.join("..", "9_upsert_assets", "target", "Asset_update_target.csv")
|
||||
if os.path.exists(asset_update_path):
|
||||
df_asset_update = pd.read_csv(asset_update_path)
|
||||
else:
|
||||
df_asset_update = None
|
||||
|
||||
asset_insert_path = os.path.join("..", "9_upsert_assets", "target", "Asset_insert_target.csv")
|
||||
if os.path.exists(asset_insert_path):
|
||||
df_asset_insert = pd.read_csv(asset_insert_path)
|
||||
else:
|
||||
df_asset_insert = None
|
||||
|
||||
# Merge the two DataFrames on PKey__c from df_s_servicecontracts and Contract__c from df_s_maintenanceplans
|
||||
merged_df = pd.merge(
|
||||
df_s_servicecontracts[['sf__Id', 'PKey__c']],
|
||||
df_s_maintenanceplans[['sf__Id', 'ServiceContractId']],
|
||||
left_on='sf__Id',
|
||||
right_on='ServiceContractId',
|
||||
how='inner',
|
||||
suffixes=('_servicecontract', '_maintenanceplan')
|
||||
)
|
||||
|
||||
# Create a new DataFrame with only the desired columns
|
||||
result_df = merged_df[['sf__Id_maintenanceplan', 'sf__Id_servicecontract', 'PKey__c']]
|
||||
|
||||
# Merge the sf__Id_maintenanceplan and sf__Id_servicecontract into df_maintenanceasset_before based on PKey__c
|
||||
df_maintenanceasset_before = pd.merge(
|
||||
df_maintenanceasset_before,
|
||||
result_df,
|
||||
left_on='ServiceContract.PKey__c',
|
||||
right_on='PKey__c',
|
||||
how='left'
|
||||
)
|
||||
|
||||
# Find Asset Ids from df_asset_update and df_asset_insert using PKey__c and InstalledBase__c
|
||||
def find_asset_id(row):
|
||||
asset_id = None
|
||||
if df_asset_update is not None:
|
||||
match = df_asset_update[df_asset_update['PKey__c'] == row['InstalledBase__c']]
|
||||
if not match.empty:
|
||||
asset_id = match.iloc[0]['Id']
|
||||
if asset_id is None and df_asset_insert is not None:
|
||||
match = df_asset_insert[df_asset_insert['PKey__c'] == row['InstalledBase__c']]
|
||||
if not match.empty:
|
||||
asset_id = match.iloc[0]['Id']
|
||||
return asset_id
|
||||
|
||||
df_maintenanceasset_before['AssetId'] = df_maintenanceasset_before.apply(find_asset_id, axis=1)
|
||||
|
||||
df_maintenanceasset_before.drop(columns=['PKey__c'], inplace=True)
|
||||
df_maintenanceasset_before.drop(columns=['InstalledBase__c'], inplace=True)
|
||||
df_maintenanceasset_before.drop(columns=['ServiceContract.PKey__c'], inplace=True)
|
||||
|
||||
df_maintenanceasset_before.rename(columns={'sf__Id_maintenanceplan': 'MaintenancePlanId', 'sf__Id_servicecontract': 'ServiceContractId'}, inplace=True)
|
||||
|
||||
#safe csv
|
||||
df_maintenanceasset_before.to_csv('./MaintenanceAsset.csv', index=False)
|
||||
|
||||
#insert records
|
||||
bulk_insert_records(args.context, 'MaintenanceAsset', args.csv)
|
Reference in New Issue
Block a user