# 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:
outTab = r'in_memory\%s_2' %inputFC
targetFC = inputFC +"_olay"
Mapper = GetFieldMappings(inputFC, targetFC, dico)
# Process: Append
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))
# Import arcpy module
import arcpy
arcpy.env.overwriteOutput = True
from os import path as p
def GetFieldMappings(fc_in, fc_out, dico):
field_mappings = arcpy.FieldMappings()
field_mappings.addTable(fc_in)
for input, output in dico.iteritems():
field_map = arcpy.FieldMap()
field_map.addInputField(fc_in, input)
field = field_map.outputField # Missing underscore
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'}
template = r'C:\gdblooptest\template\template.gdb\Template_table'
##arcpy.env.workspace = r"G:\ChrisGIS\COMBO_fishdist_events"
for ws in arcpy.ListWorkspaces("*", "FileGDB"):
arcpy.env.workspace = ws
listFCS = arcpy.ListTables()
for inputFC in listFCS:
targetFC = inputFC +"_olay"
# Process: Append
arcpy.CreateTable_management(ws, targetFC, template)
Mapper = GetFieldMappings(inputFC, targetFC, dico)
arcpy.Append_management(inputFC,targetFC,'NO_TEST',Mapper)
print 'Appended "{0}" to "{1}" in {2}'.format(inputFC, targetFC, p.basename(ws))
# Import arcpy module
import arcpy, sys, traceback
arcpy.env.overwriteOutput = True
from os import path as p
def GetFieldMappings(fc_in, fc_out, dico):
field_mappings = arcpy.FieldMappings()
field_mappings.addTable(fc_in)
for input, output in dico.iteritems():
field_map = arcpy.FieldMap()
field_map.addInputField(fc_in, 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'}
template = r'C:\gdblooptest\template\template.gdb\Template_table'
arcpy.env.workspace = r"G:\ChrisGIS\COMBO_fishdist_events"
for ws in arcpy.ListWorkspaces("*", "FileGDB"):
arcpy.env.workspace = ws
listFCS = arcpy.ListTables()
for inputFC in listFCS:
if not inputFC.endswith('_olay'):
targetFC = inputFC +"_olay"
# Process: Append
if arcpy.Exists(targetFC):
arcpy.Delete_management(targetFC)
print 'deleted %s' %targetFC
arcpy.CreateTable_management(ws, targetFC, template)
Mapper = GetFieldMappings(inputFC, targetFC, dico)
arcpy.Append_management(inputFC,targetFC,'NO_TEST',Mapper)
print 'Appended "{0}" to "{1}" in {2}'.format(inputFC, targetFC, p.basename(ws))
print 'done'
...
So, I could not solve this issue. I decided to remove that gdb from my workspace (temporarily) and try to run the script on what remained in the workspace. Well that failed as well with the resulting error :
Runtime error <class 'arcgisscripting.ExecuteError'>: ERROR 000278: Failed on input OID 1, could not write value â?? â?? to output field SOURCE_DATE Failed to execute (Append).