def create_gdb_featureclass(gdb, name): fc = arcpy.CreateFeatureclass_management(gdb, name, geometry_type="POINT") arcpy.EnableAttachments_management(fc) arcpy.AddGlobalIDs_management(fc) arcpy.EnableEditorTracking_management( fc, creator_field="created_user", creation_date_field="created_date", last_editor_field="last_edit_user", last_edit_date_field="last_edit_date", add_fields=True, record_dates_in="UTC") print("Feature Class {} created".format(name)) #Add comments table fc_comments_name = "{}_Comments".format(name) fc_comments = create_gdb_table(gdb, fc_comments_name) arcpy.EnableAttachments_management(fc_comments) arcpy.AddGlobalIDs_management(fc_comments) arcpy.EnableEditorTracking_management( fc_comments, creator_field="created_user", creation_date_field="created_date", last_editor_field="last_edit_user", last_edit_date_field="last_edit_date", add_fields=True, record_dates_in="UTC") return fc, fc_comments, fc_comments_name
def createMosaicDataset(gdbPath, mdName, prjFile): """ 1.创建镶嵌数据集 3.开启自动跟踪功能 会自动添加四个属性字段 """ gdbname = gdbPath mdname = mdName prjfile = prjFile noband = "1" pixtype = "32_BIT_FLOAT" # 1.创建镶嵌数据集 mdpath = gdbPath + "/" + mdName if not arcpy.Exists(mdpath): arcpy.CreateMosaicDataset_management(gdbname, mdname, prjfile, noband, pixtype) # 2.并添加四个属性字段 # if arcpy.Exists(mdpath): # arcpy.AddField_management(mdpath, 'createpreson', 'TEXT', 18, 11) # arcpy.AddField_management(mdpath, 'createtime', 'DATE') # arcpy.AddField_management(mdpath, 'updateepreson', 'TEXT', 18, 11) # arcpy.AddField_management(mdpath, 'updatetime', 'DATE') # 3.开启自动跟踪功能 desc = arcpy.Describe(mdpath) if not desc.editorTrackingEnabled: arcpy.EnableEditorTracking_management(mdpath, "createperson", "createtime", "updateperson", "updatetime", "ADD_FIELDS", "UTC")
def runapp(tfl_prepare_edits): arcpy.AddMessage('extracted at ' + str(extract_timestamp)) #establish the BCGW connection to check the schedule A AND TFL Boundary BCGWConnection = get_bcgw_connection(bcgw_uname, bcgw_pw) if not BCGWConnection is False: #only proceed if connection succeeds #Copy the final folder to the Edit area can_copy = copy_input_tfl(folder_basename) #only proceed if the edit folder does not already exist and copy succeeded if can_copy == True: manage_keep_folder(folder_basename) #uncompress the gdb - final is compressed to prevent accidental edits arcpy.UncompressFileGeodatabaseData_management(TFL_EDITS_FOLDER + os.sep + folder_basename + os.sep + \ 'data' + os.sep + 'FADM_' + folder_basename + '.gdb') #Workspace is the feature dataset workspace = TFL_EDITS_FOLDER + os.sep + folder_basename + os.sep + \ 'data' + os.sep + 'FADM_' + folder_basename + '.gdb' + os.sep + 'TFL_Data' # enable editor tracking on lines tfl_lines = os.path.join(workspace, folder_basename + '_Line') arcpy.EnableEditorTracking_management( tfl_lines, 'created_user', 'created_date', 'last_edited_user', 'last_edited_date', 'NO_ADD_FIELDS', 'DATABASE_TIME') #Delete all tables from Edit gdb except the TFL Lines and Schedule A delete_tables(workspace) #Copy empty feature classes and metadata table from template copy_tables_from_template(workspace, folder_basename) #Delete all lines with status NOT active delete_non_active_lines(workspace, folder_basename) #check to see if the lines build one or more polygons create_polys(workspace, folder_basename) #check the schedule A AND TFL Boundary layers for differences check_bcgw_to_final_differences(folder_basename, workspace, BCGWConnection) #Create topology and add lines to it create_topology(workspace, folder_basename) #Run topology and report any errors - these are info only run_topology(workspace) #Set initial values for the Change History table user = getpass.getuser() table = workspace[:-9] + os.sep + folder_basename + '_Change_History' update_change_history(table, extract_timestamp, user) else: arcpy.AddError('Error creating BCGW Connection - try again')
def addTracking(tfc): if arcpy.Exists(tfc): addMsgAndPrint(' Enabling edit tracking in '+tfc) try: arcpy.EnableEditorTracking_management(tfc,'created_user','created_date','last_edited_user','last_edited_date','ADD_FIELDS','DATABASE_TIME') except: addMsgAndPrint(tfc) addMsgAndPrint(arcpy.GetMessages(2))
def create_gdb_featureclass(gdb, name): fc = arcpy.CreateFeatureclass_management(gdb, name, geometry_type="POINT") arcpy.AddGlobalIDs_management(fc) arcpy.EnableAttachments_management(fc) arcpy.EnableEditorTracking_management(fc, "created_user", "created_date", "last_edit_user", "last_edit_date", "ADD_FIELDS", "UTC") print("Feature Class {} created".format(name)) #Add comments table fc_comments_name = "{}_Comments".format(name) fc_comments = create_gdb_table(gdb, fc_comments_name) arcpy.AddGlobalIDs_management(fc_comments) arcpy.EnableAttachments_management(fc_comments) arcpy.EnableEditorTracking_management(fc_comments, "created_user", "created_date", "last_edit_user", "last_edit_date", "ADD_FIELDS", "UTC") return fc_comments_name
def turnOnEditorTracking(fc): try: arcpy.EnableEditorTracking_management(fc, 'CREATEDBY', 'CREATEDON', 'EDITEDBY', 'EDITEDON', 'NO_ADD_FIELDS') print("Editor Tracking has been turned on for " + fc) except: pass print("Failed turning on Editor Tracking for " + fc)
def enable_tracking(dataset, tracking_schema): creator_field = tracking_schema.get('creator_field', None) creation_date_field = tracking_schema.get('creation_date_field', None) last_editor_field = tracking_schema.get('last_editor_field', None) last_edit_date_field = tracking_schema.get('last_edit_date_field', None) add_fields_value = tracking_schema.get('last_editor_field', 'NO_ADD_FIELDS') record_dates_in = tracking_schema.get('record_dates_in', 'UTC') arcpy.EnableEditorTracking_management(in_dataset=dataset, creator_field=creator_field, creation_date_field=creation_date_field, last_editor_field=last_editor_field, last_edit_date_field=last_edit_date_field, add_fields=add_fields_value, record_dates_in=record_dates_in) return dataset
def trackedits(self): # https://pro.arcgis.com/en/pro-app/tool-reference/data-management/enable-editor-tracking.htm # this will create fields only if they dont exist # I am gonna fix the field names here. Reminder that our goal is to # be opinionated and consistent across anything we manage logging.info('enabling editor tracking on {0}'.format(self.name)) return self.interpret( arcpy.EnableEditorTracking_management(self.featureclass, 'CREATED_USER', 'CREATED_DATE', 'LAST_EDITED_USER', 'LAST_EDITED_DATE', 'NO_ADD_FIELDS', 'UTC'))
def addStandardMosaicDatasetFields(md_path): arcpy.AddMessage("Adding fields to Mosaic Dataset '{}'".format(md_path)) # Add the required metadata fields to the Master/Project Mosaic Dataset # Utility.addAndCalcFieldText(dataset_path=md_path, field_name=CMDRConfig.PROJECT_ID, field_length="100", field_alias=CMDRConfig.PROJECT_ID.replace("_", " "), add_index=True) Utility.addAndCalcFieldDate(dataset_path=md_path, field_name=CMDRConfig.PROJECT_DATE, field_alias=CMDRConfig.PROJECT_DATE.replace( "_", " "), add_index=True) Utility.addAndCalcFieldText(dataset_path=md_path, field_name=CMDRConfig.RASTER_PATH, field_length="800", field_alias=CMDRConfig.RASTER_PATH.replace( "_", " "), add_index=True) Utility.addAndCalcFieldText(dataset_path=md_path, field_name=CMDRConfig.PROJECT_SOURCE, field_length="20", field_alias=CMDRConfig.PROJECT_SOURCE.replace( "_", " "), add_index=True) # Utility.addAndCalcFieldText(dataset_path=md_path, field_name=CMDRConfig.PROJECT_SR_XY_NAME, field_length="100", field_alias=CMDRConfig.PROJECT_SR_XY_NAME.replace("_", " "), add_index=True) # Utility.addAndCalcFieldText(dataset_path=md_path, field_name=CMDRConfig.PROJECT_SR_XY_UNITS, field_length="20", field_alias=CMDRConfig.PROJECT_SR_XY_UNITS.replace("_", " "), add_index=True) # Utility.addAndCalcFieldText(dataset_path=md_path, field_name=CMDRConfig.PROJECT_SR_XY_CODE, field_length="100", field_alias=CMDRConfig.PROJECT_SR_XY_CODE.replace("_", " "), add_index=True) # Utility.addAndCalcFieldText(dataset_path=md_path, field_name=CMDRConfig.PROJECT_SR_Z_NAME, field_length="100", field_alias=CMDRConfig.PROJECT_SR_Z_NAME.replace("_", " "), add_index=True) # Utility.addAndCalcFieldText(dataset_path=md_path, field_name=CMDRConfig.PROJECT_SR_Z_UNITS, field_length="100", field_alias=CMDRConfig.PROJECT_SR_Z_UNITS.replace("_", " "), add_index=True) # Utility.addAndCalcFieldText(dataset_path=md_path, field_name=CMDRConfig.FILE_NAME, field_length="100", field_alias=CMDRConfig.FILE_NAME.replace("_", " "), add_index=True) arcpy.EnableEditorTracking_management( in_dataset=md_path, creator_field="created_user", creation_date_field="created_date", last_editor_field="last_edited_user", last_edit_date_field="last_edited_date", add_fields="ADD_FIELDS", record_dates_in="UTC") Utility.addToolMessages()
# Add Coded Value to Domain #arcpy.AddCodedValueToDomain_management (in_workspace, doname, "Yes", "Yes") arcpy.AddCodedValueToDomain_management(workspace, doname, "Yes", "Yes") #arcpy.AddCodedValueToDomain_management (in_workspace, doname, "No", "No") arcpy.AddCodedValueToDomain_management(workspace, doname, "No", "No") #Assign Domain To Field #arcpy.AssignDomainToField_management (inFC, "RECERT_NEEDED", doname) arcpy.AssignDomainToField_management(workspace + '\\' "Project_Record", "RECERT_NEEDED", doname) arcpy.EnableEditorTracking_management(workspace + '\\' "MUPOLYGON", "Creator_Field", "Creation_Date_Field", "Editor_Field", "Last_Edit_Date_Field", "ADD_FIELDS", "UTC") arcpy.EnableEditorTracking_management(workspace + '\\' "FEATPOINT", "Creator_Field", "Creation_Date_Field", "Editor_Field", "Last_Edit_Date_Field", "ADD_FIELDS", "UTC") arcpy.EnableEditorTracking_management(workspace + '\\' "FEATLINE", "Creator_Field", "Creation_Date_Field", "Editor_Field", "Last_Edit_Date_Field", "ADD_FIELDS", "UTC") print "Script Completed"
connection_file = raw_input('Enter SDE connection filename: ') # Set the workspace arcpy.env.workspace = 'Database Connections/' + connection_file # Set a variable for the workspace workspace = arcpy.env.workspace # Enumerate Database elements datasets = arcpy.ListDatasets(wild_card=None, feature_type=None) edit_items = arcpy.ListFeatureClasses() \ + arcpy.ListTables() \ + arcpy.ListRasters() # Add features from inside datasets to edit_items list for dataset in datasets: edit_items += arcpy.ListFeatureClasses(wild_card=None, feature_type=None, feature_dataset=dataset) for item in edit_items: arcpy.EnableEditorTracking_management(in_dataset=item, creator_field="created_user", creation_date_field="created_date", last_editor_field="last_edited_user", last_edit_date_field="last_edited_date", add_fields="ADD_FIELDS", record_dates_in="UTC")
"AREASYMBOL", "UNIQUE", "ASCENDING") arcpy.AddIndex_management(fdname + '\\' + prjname + 'p', "FEATSYM", "FEATSYM", "UNIQUE", "ASCENDING") arcpy.AddIndex_management(fdname + '\\' + prjname + 'p', "FEATKEY", "FEATKEY", "UNIQUE", "ASCENDING") arcpy.AddIndex_management(fdname + '\\' + prjname + "l", "AREASYMBOL", "AREASYMBOL", "UNIQUE", "ASCENDING") arcpy.AddIndex_management(fdname + '\\' + prjname + "l", "FEATSYM", "FEATSYM", "UNIQUE", "ASCENDING") arcpy.AddIndex_management(fdname + '\\' + prjname + "l", "FEATKEY", "FEATKEY", "UNIQUE", "ASCENDING") arcpy.AddIndex_management(fdname + '\\' + prjname + "b", "AREASYMBOL", "AREASYMBOL", "UNIQUE", "ASCENDING") #Enable Editor Tracking arcpy.EnableEditorTracking_management(fdname + '\\' + prjname + 'a', "Creator_Field", "Creation_Date_Field", "Editor_Field", "Last_Edit_Date_Field", "ADD_FIELDS", "UTC") arcpy.EnableEditorTracking_management(fdname + '\\' + prjname + 'p', "Creator_Field", "Creation_Date_Field", "Editor_Field", "Last_Edit_Date_Field", "ADD_FIELDS", "UTC") arcpy.EnableEditorTracking_management(fdname + '\\' + prjname + "l", "Creator_Field", "Creation_Date_Field", "Editor_Field", "Last_Edit_Date_Field", "ADD_FIELDS", "UTC") print "Script Completed"
else: arcpy.AddGlobalIDs_management(in_Table) arcpy.AddMessage ("Sasquatch created the GlobalID field") except arcpy.ExecuteError: msgs = arcpy.GetMessages(2) arcpy.AddError(msgs) except: tb = sys.exc_info()[2] tbinfo = traceback.format_tb(tb)[0] pymsg = "PYTHON ERRORS:\nTraceback info:\n" + tbinfo + "\nError Info:\n" + str(sys.exc_info()[1]) msgs = "ArcPy ERRORS:\n" + arcpy.GetMessages(2) + "\n" arcpy.AddError(pymsg) arcpy.AddError(msgs) #Enable editor tracking try: arcpy.EnableEditorTracking_management(gdb_location+"\\"+gdb_name+".gdb\\"+fc_name, "CREATEUSER","CREATEDATE", "EDITUSER", "EDITDATE", "NO_ADD_FIELDS", time_format) arcpy.AddMessage ("Sasquatch enabled editor tracking on "+fc_name) except arcpy.ExecuteError: msgs = arcpy.GetMessages(2) arcpy.AddError(msgs) except: tb = sys.exc_info()[2] tbinfo = traceback.format_tb(tb)[0] pymsg = "PYTHON ERRORS:\nTraceback info:\n" + tbinfo + "\nError Info:\n" + str(sys.exc_info()[1]) msgs = "ArcPy ERRORS:\n" + arcpy.GetMessages(2) + "\n" arcpy.AddError(pymsg) arcpy.AddError(msgs)
else: arcpy.AddGlobalIDs_management(fc_name) arcpy.AddMessage ("Sasquatch created the GlobalID field") except arcpy.ExecuteError: msgs = arcpy.GetMessages(2) arcpy.AddError(msgs) except: tb = sys.exc_info()[2] tbinfo = traceback.format_tb(tb)[0] pymsg = "PYTHON ERRORS:\nTraceback info:\n" + tbinfo + "\nError Info:\n" + str(sys.exc_info()[1]) msgs = "ArcPy ERRORS:\n" + arcpy.GetMessages(2) + "\n" arcpy.AddError(pymsg) arcpy.AddError(msgs) #Enable editor tracking try: arcpy.EnableEditorTracking_management(fc_name, "CREATEUSER","CREATEDATE", "EDITUSER", "EDITDATE", "NO_ADD_FIELDS", time_format) arcpy.AddMessage ("Sasquatch enabled editor tracking on "+fc_name) except arcpy.ExecuteError: msgs = arcpy.GetMessages(2) arcpy.AddError(msgs) except: tb = sys.exc_info()[2] tbinfo = traceback.format_tb(tb)[0] pymsg = "PYTHON ERRORS:\nTraceback info:\n" + tbinfo + "\nError Info:\n" + str(sys.exc_info()[1]) msgs = "ArcPy ERRORS:\n" + arcpy.GetMessages(2) + "\n" arcpy.AddError(pymsg) arcpy.AddError(msgs) arcpy.SetParameterAsText(6, gdb_name)
# -*- coding: utf-8 -*- """ Created on Mon Aug 10 16:52:30 2015 @author: martinson """ import arcpy import os workspace = raw_input("Enter workspace:\n") walk = arcpy.da.Walk(workspace) for dirpath, dirnames, filenames in walk: for filename in filenames: dataset = os.path.join(dirpath,filename) filedesc = arcpy.Describe(dataset) if not filedesc.editorTrackingEnabled: print "Enabling Editor Tracking on " + filename arcpy.EnableEditorTracking_management(dataset,"CREATOR","CREATED","LASTEDITOR","LASTEDITED","NO_ADD_FIELDS","DATABASE_TIME") else: print "Did not enable Editor Tracking on" + filename continue
def create_gdb_featureclass(gdb,name): fc = arcpy.CreateFeatureclass_management(gdb,name, geometry_type="POINT") arcpy.AddGlobalIDs_management(fc) arcpy.EnableAttachments_management(fc) arcpy.EnableEditorTracking_management(fc, "created_user","created_date","last_edit_user","last_edit_date","ADD_FIELDS","UTC")
arcpy.env.overwriteOutput = True #inFC = arcpy.GetParameterAsText (0) #Input Feature Class #arcpy.EnableEditorTracking_management(inFC, "Creator_Field", "Creation_Date_Field", "Editor_Field", "Last_Edit_Date_Field", "ADD_FIELDS", "UTC") # Set the workspace workspace = arcpy.GetParameterAsText(0) arcpy.env.workspace = workspace # Get all the stand alone tables and feature classes #dataList = arcpy.ListTables() + arcpy.ListFeatureClasses() dataList = arcpy.ListFeatureClasses() # For feature datasets get all of the featureclasses # from the list and add them to the master list for dataset in arcpy.ListDatasets("", "Feature"): arcpy.env.workspace = os.path.join(workspace, dataset) dataList += arcpy.ListFeatureClasses() + arcpy.ListDatasets() # Execute enable editor tracking for dataset in dataList: print("Enabling tracking on " + dataset) arcpy.EnableEditorTracking_management(dataset, "Creator_Field", "Creation_Date_Field", "Editor_Field", "Last_Edit_Date_Field", "ADD_FIELDS", "UTC") print("Enabling complete")
def create_fcs(): for _fc in fcDict: if fcDict[_fc] == "TABLE": _dataset = os.path.join(get_workspace(), _fc) if arcpy.Exists(_dataset) is True: arcpy.Delete_management(_dataset) print("Table: " + _fc + " deleted") arcpy.CreateTable_management(get_workspace(), _fc) arcpy.AddGlobalIDs_management(_dataset) if _fc == "FIDA_ANHANGLFP" or _fc == "FIDA_ANHANGHFP": arcpy.EnableAttachments_management(_dataset) if sde_fida is True: arcpy.ChangePrivileges_management( _dataset, "ARCSDE_EDITOR", "GRANT", "GRANT" ) arcpy.ChangePrivileges_management(_dataset, "ARCSDE_READER", "GRANT") # if sde_fida is True: arcpy.EnableEditorTracking_management( in_dataset=_dataset, creator_field="CREATOR_FIELD", creation_date_field="CREATOR_DATE_FIELD", last_editor_field="LAST_EDITOR_FIELD", last_edit_date_field="LAST_EDITOR_DATE_FIELD", add_fields="ADD_FIELDS", record_dates_in="UTC", ) print("Tracking enabled") # Anhang: EnableEditorTracking (wichtig für BranchVersioning) if _fc == "FIDA_ANHANGLFP" or _fc == "FIDA_ANHANGHFP": _datasetattach = os.path.join(get_workspace(), _fc + "__ATTACH") if sde_fida is True: arcpy.ChangePrivileges_management( _datasetattach, "ARCSDE_EDITOR", "GRANT", "GRANT" ) arcpy.ChangePrivileges_management( _datasetattach, "ARCSDE_READER", "GRANT" ) arcpy.EnableEditorTracking_management( in_dataset=_datasetattach, creator_field="CREATOR_FIELD", creation_date_field="CREATOR_DATE_FIELD", last_editor_field="LAST_EDITOR_FIELD", last_edit_date_field="LAST_EDITOR_DATE_FIELD", add_fields="ADD_FIELDS", record_dates_in="UTC", ) print("Tracking enabled __ATTACH") print("Table: " + _fc + " created") else: _dataset = os.path.join(get_workspace(), featuredataset, _fc) _out_path = os.path.join(get_workspace(), featuredataset) _has_z = "ENABLED" arcpy.CreateFeatureclass_management( out_path=_out_path, out_name=_fc, geometry_type=fcDict[_fc], has_z=_has_z, out_alias=_fc, ) arcpy.AddGlobalIDs_management(_dataset) # if sde_fida is True: arcpy.EnableEditorTracking_management( in_dataset=_dataset, creator_field="CREATOR_FIELD", creation_date_field="CREATOR_DATE_FIELD", last_editor_field="LAST_EDITOR_FIELD", last_edit_date_field="LAST_EDITOR_DATE_FIELD", add_fields="ADD_FIELDS", record_dates_in="UTC", ) print("Tracking enabled") print("Featureclass: " + _fc + " created")
field_length=field["length"], field_is_nullable=field["nullable"], field_alias=field["alias"]) except Exception as flderr: print(flderr.args[0]) print("Enabling Editor Tracking on Layers") # Retrieve all the tables and feature classes added dataList = arcpy.ListTables() + arcpy.ListFeatureClasses() # Loop through dataset list and enable editor tracking for dataset in dataList: arcpy.EnableEditorTracking_management(dataset, "created_user", "created_date", "last_edited_user", "last_edited_date", "ADD_FIELDS", "UTC") # Begin apply symbology print("Applying symbology") # Retrieve all layers in the map layers = m.listLayers() # Loop through layers to apply symbology for lyr in layers: try: print("Applying symbology to " + lyr.name) sym = None
field_domain="") arcpy.AddField_management(in_table=feature_class_created, field_name=editor_tracking_fields[3][0], field_type="DATE", field_precision="", field_scale="", field_length="", field_alias=editor_tracking_fields[3][1], field_is_nullable="NULLABLE", field_is_required="NON_REQUIRED", field_domain="") #Enable Editor Tracking arcpy.EnableEditorTracking_management( in_dataset=feature_class_created, creator_field=editor_tracking_fields[0][0], creation_date_field=editor_tracking_fields[1][0], last_editor_field=editor_tracking_fields[2][0], last_edit_date_field=editor_tracking_fields[3][0], add_fields="", record_dates_in="UTC") # Enable attachments arcpy.EnableAttachments_management(in_dataset=feature_class_created) # # Optionally: Add Global IDs # arcpy.AddGlobalIDs_management(feature_class_created) print( datetime.datetime.today().strftime('%c') + ": Feature classes have been added, with global ids, editor tracking and attachments enabled" ) print('===================') print("Ready: " + datetime.datetime.today().strftime('%c')) print('===================')
def create_rel_classes(): print("Relationship classes") for _rel in relClassDict: _out_relationship_class = os.path.join(get_workspace(), featuredataset, _rel) # _out_relationship_class = os.path.join(GetWorkspace(), _rel) if arcpy.Exists(_out_relationship_class) is False: _origin_table = os.path.join( get_workspace(), featuredataset, relClassDict[_rel][1] ) if relClassDict[_rel][2] == "FIDA_LFP": _relationship_type = "SIMPLE" elif relClassDict[_rel][2] == "FIDA_HFP": _relationship_type = "SIMPLE" elif relClassDict[_rel][2] == "FIDA_LSN": _relationship_type = "SIMPLE" elif relClassDict[_rel][2] == "FIDA_KONTAKT": _relationship_type = "SIMPLE" else: _relationship_type = "COMPOSITE" _destination_table = os.path.join(get_workspace(), relClassDict[_rel][2]) _forward_label = relClassDict[_rel][3] _backward_label = relClassDict[_rel][4] _cardinality = relClassDict[_rel][0] # _origin_primary_key = "PK" geändert damit Checkout möglich wird _origin_primary_key = "GlobalID" if _cardinality == "MANY_TO_MANY": _origin_foreign_key = "ORIGNIVLINIEN_HFP" _destination_primary_key = "GlobalID" _destination_foreign_key = "DESTHFP_NIVLINIEN" else: _origin_foreign_key = "FK_" + relClassDict[_rel][1] _destination_primary_key = "" _destination_foreign_key = "" arcpy.CreateRelationshipClass_management( origin_table=_origin_table, destination_table=_destination_table, out_relationship_class=_out_relationship_class, relationship_type=_relationship_type, forward_label=_forward_label, backward_label=_backward_label, cardinality=_cardinality, origin_primary_key=_origin_primary_key, origin_foreign_key=_origin_foreign_key, destination_primary_key=_destination_primary_key, destination_foreign_key=_destination_foreign_key, ) print( "Relationship class between origin_table: {} and destination_table: {}".format( _origin_table, _destination_table ) ) print("Create Relationship class: " + _rel) if _rel == "FIDA_NIVLINIEN_HFP": arcpy.AddGlobalIDs_management(_out_relationship_class) if sde_fida is True: arcpy.EnableEditorTracking_management( in_dataset=_out_relationship_class, creator_field="CREATOR_FIELD", creation_date_field="CREATOR_DATE_FIELD", last_editor_field="LAST_EDITOR_FIELD", last_edit_date_field="LAST_EDITOR_DATE_FIELD", add_fields="ADD_FIELDS", record_dates_in="UTC", ) print("add GlobalID and EditorTracking to FIDA_NIVLINIEN_HFP") else: print("Relationship class already created: " + _rel)