# Import arcpy module import arcpy arcpy.env.workspace = "G:\ChrisGIS\WDFW_NWIFC_EVENT_17100101.gdb" arcpy.env.overwriteOutput = "True" def GetFieldMappings(inputFC, targetFC, dico): field_mappings = arcpy.FieldMappings() field_mappings.addTable(inputFC) for input, output in dico.iteritems(): field_map = arcpy.FieldMap() field_map.addInputField(inputFC, input) field = field_map.outputField field.name = output field_map.outputField = field field_mappings.addFieldMap(field_map) del field, field_map return field_mappings #Variables inputFC = "WDFW_CHFA_2HEM_evt_1" targetFC = "WDFW_CHFA_2HEM_evt_olay_1" dico = {'Permanent_Identifier': 'Permanent_ID', 'STRM_NAME': 'LLID_STRM_NAME', 'DATE_SRVY': 'SOURCE_DATE', 'SPPCODE': 'SPECRCODE', 'SRC_AGENCY': 'SOURCE_AGENCY', 'SRC_WHO': 'SOURCE_WHO'} Mapper = GetFieldMappings(inputFC, targetFC, dico) # Process: Append arcpy.Append_management(arcpy.env.workspace+"\\"+inputFC, arcpy.env.workspace+"\\"+targetFC,"NO_TEST",Mapper)
Solved! Go to Solution.
# Import arcpy module import arcpy arcpy.env.overwriteOutput = True from os import path as p def GetFieldMappings(inputFC, targetFC, dico): field_mappings = arcpy.FieldMappings() field_mappings.addTable(inputFC) for input, output in dico.iteritems(): field_map = arcpy.FieldMap() field_map.addInputField(inputFC, input) field = field_map.outputField field.name = output field_map.outputField = field field_mappings.addFieldMap(field_map) del field, field_map return field_mappings #Variables dico = {'Permanent_Identifier': 'Permanent_ID', 'STRM_NAME': 'LLID_STRM_NAME', 'DATE_SRVY': 'SOURCE_DATE', 'SPPCODE': 'SPECRCODE', 'SRC_AGENCY': 'SOURCE_AGENCY', 'SRC_WHO': 'SOURCE_WHO'} arcpy.env.workspace = r"G:\ChrisGIS\COMBO_fishdist_events" for ws in arcpy.ListWorkspaces("*", "FileGDB"): listFCS = arcpy.ListTables("WDFW*evt") arcpy.env.workspace = ws for inputFC in listFCS: targetFC = inputFC +"_olay" Mapper = GetFieldMappings(inputFC, targetFC, dico) # Process: Append arcpy.Append_management(p.join(ws,inputFC), p.join(ws,targetFC),"NO_TEST",Mapper) print 'Appended "{0}" to "{1}" in {2}'.format(inputFC, targetFC, p.basename(ws))
# Import arcpy module import arcpy arcpy.env.overwriteOutput = True from os import path as p def GetFieldMappings(inputFC, targetFC, dico): field_mappings = arcpy.FieldMappings() field_mappings.addTable(inputFC) for input, output in dico.iteritems(): field_map = arcpy.FieldMap() field_map.addInputField(inputFC, input) field = field_map.outputField field.name = output field_map.outputField = field field_mappings.addFieldMap(field_map) del field, field_map return field_mappings #Variables dico = {'Permanent_Identifier': 'Permanent_ID', 'STRM_NAME': 'LLID_STRM_NAME', 'DATE_SRVY': 'SOURCE_DATE', 'SPPCODE': 'SPECRCODE', 'SRC_AGENCY': 'SOURCE_AGENCY', 'SRC_WHO': 'SOURCE_WHO'} arcpy.env.workspace = r"G:\ChrisGIS\COMBO_fishdist_events" for ws in arcpy.ListWorkspaces("*", "FileGDB"): listFCS = arcpy.ListTables("WDFW*evt") arcpy.env.workspace = ws for inputFC in listFCS: targetFC = inputFC +"_olay" Mapper = GetFieldMappings(inputFC, targetFC, dico) # Process: Append arcpy.Append_management(p.join(ws,inputFC), p.join(ws,targetFC),"NO_TEST",Mapper) print 'Appended "{0}" to "{1}" in {2}'.format(inputFC, targetFC, p.basename(ws))
After running this script I am again getting this error :
Runtime error <class 'arcgisscripting.ExecuteError'>: Failed to execute. Parameters are not valid. ERROR 000732: Target Dataset: Dataset G:\ChrisGIS\COMBO_fishdist_events\WDFW_NWIFC_EVENT_17100102.gdb\WDFW_CCT_2HEM_evt_olay does not exist or is not supported Failed to execute (Append).
I feel like I am close, but I do not understand why WDFW_NWIFC_EVENT_17100102.gdb\WDFW_CCT_2HEM_evt_olay cannot be found when it is supposed to be created. This is also the 2nd geodatabase in my list, so it seems like it goes through WDFW_NWIFC_EVENT_17100101 without generating any errors.....
Okay, I added the create table and here are some results
Appended "WDFW_CCT_2HEM_evt" to "WDFW_CCT_2HEM_evt_olay" in WDFW_NWIFC_EVENT_17100102.gdb
Appended "WDFW_CHFA_2HEM_evt" to "WDFW_CHFA_2HEM_evt_olay" in WDFW_NWIFC_EVENT_17100102.gdb
Appended "WDFW_CHMF_2HEM_evt" to "WDFW_CHMF_2HEM_evt_olay" in WDFW_NWIFC_EVENT_17100102.gdb
Appended "WDFW_CHSP_2HEM_evt" to "WDFW_CHSP_2HEM_evt_olay" in WDFW_NWIFC_EVENT_17100102.gdb
Runtime error <type 'exceptions.RuntimeError'>: FieldMappings: Error in adding table to field mappings
How can this error come to pass after a few tables have already been appended?
After I got these results I went into ArcCatalog and check the geodatabase it was working in and there were no _olay tables. I am assuming this is because the script hit the error before it finished?
# Import arcpy module import arcpy arcpy.env.overwriteOutput = True from os import path as p def GetFieldMappings(inputFC, dico): field_mappings = arcpy.FieldMappings() field_mappings.addTable(inputFC) for input, output in dico.iteritems(): field_map = arcpy.FieldMap() field_map.addInputField(inputFC, input) field = field_map.outputField field.name = output field_map.outputField = field field_mappings.addFieldMap(field_map) del field, field_map return field_mappings #Variables dico = {'Permanent_Identifier': 'Permanent_ID', 'STRM_NAME': 'LLID_STRM_NAME', 'DATE_SRVY': 'SOURCE_DATE', 'SPPCODE': 'SPECRCODE', 'SRC_AGENCY': 'SOURCE_AGENCY', 'SRC_WHO': 'SOURCE_WHO'} arcpy.env.workspace = r"G:\ChrisGIS\COMBO_fishdist_events" for ws in arcpy.ListWorkspaces("*", "FileGDB"): arcpy.env.workspace = ws listFCS = arcpy.ListTables("WDFW*evt") for inputFC in listFCS: outTab = r'in_memory\%s_2' %inputFC targetFC = inputFC +"_olay" # Process: Append Mapper = GetFieldMappings(inputFC, dico) arcpy.CreateTable_management(ws, outTab)) arcpy.Merge_management([p.join(ws,inputFC),outTab],p.join(ws,targetFC),Mapper) print 'Appended "{0}" to "{1}" in {2}'.format(inputFC, targetFC, p.basename(ws))
Runtime error 'outTab' not defined.
arcpy.Merge_management([p.join(ws,inputFC), outTab],p.join(ws,targetFC),Mapper)
I tried to change it to outTable, and got the same error.
arcpy.Merge_management([p.join(ws,inputFC), outTable],p.join(ws,targetFC),Mapper)
I also removed outTab all together but then I get this error
Runtime error <class 'arcgisscripting.ExecuteError'>: ERROR 000605: Output WDFW_CCT_2HEM_evt_olay already exists within G:\ChrisGIS\COMBO_fishdist_events\WDFW_NWIFC_EVENT_17100102.gdb. Failed to execute (Merge).