Hello,
I have a script that I created that automates a join and field calculation process across multiple feature classes. The script works when I test locally, but when I move it to another test environment, I receive an Invalid Expression error. Wondering if this could potentially be a permissions issue, or what could be causing this. The only differences between environments are the connection paths.
Here is the error message:
Traceback (most recent call last):
File "C:\Users\vueworks\Desktop\MDCETL\Testing_Logging.py", line 64, in <module>
vwfcin = arcpy.MakeTableView_management(sde+"\\"+vwfc, vwt)
File "C:\Program Files (x86)\ArcGIS\Desktop10.3\ArcPy\arcpy\management.py", line 7047, in MakeTableView
raise e
ExecuteError: ERROR 000358: Invalid expression
Failed to execute (MakeTableView).
And the script.
<SPAN class="keyword token">import</SPAN> arcpy<SPAN class="punctuation token">,</SPAN> sys<SPAN class="punctuation token">,</SPAN> string<SPAN class="punctuation token">,</SPAN> os<SPAN class="punctuation token">,</SPAN> subprocess<SPAN class="punctuation token">,</SPAN> logging
<SPAN class="keyword token">def</SPAN> <SPAN class="token function">getLogger</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="comment token"># Logs to console and log file</SPAN>
logger <SPAN class="operator token">=</SPAN> logging<SPAN class="punctuation token">.</SPAN>getLogger<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
formatter <SPAN class="operator token">=</SPAN> logging<SPAN class="punctuation token">.</SPAN>Formatter<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"%(asctime)s [%(threadName)-12.12s] [%(levelname)-5.5s] %(message)s"</SPAN><SPAN class="punctuation token">)</SPAN>
fileHandler <SPAN class="operator token">=</SPAN> logging<SPAN class="punctuation token">.</SPAN>FileHandler<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"MDC_ViewtoGIS_Automated.log"</SPAN><SPAN class="punctuation token">)</SPAN>
fileHandler<SPAN class="punctuation token">.</SPAN>setFormatter<SPAN class="punctuation token">(</SPAN>formatter<SPAN class="punctuation token">)</SPAN>
logger<SPAN class="punctuation token">.</SPAN>addHandler<SPAN class="punctuation token">(</SPAN>fileHandler<SPAN class="punctuation token">)</SPAN>
consoleHandler <SPAN class="operator token">=</SPAN> logging<SPAN class="punctuation token">.</SPAN>StreamHandler<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
consoleHandler<SPAN class="punctuation token">.</SPAN>setFormatter<SPAN class="punctuation token">(</SPAN>formatter<SPAN class="punctuation token">)</SPAN>
logger<SPAN class="punctuation token">.</SPAN>addHandler<SPAN class="punctuation token">(</SPAN>consoleHandler<SPAN class="punctuation token">)</SPAN>
logger<SPAN class="punctuation token">.</SPAN>setLevel<SPAN class="punctuation token">(</SPAN>logging<SPAN class="punctuation token">.</SPAN>INFO<SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">return</SPAN> logger
log <SPAN class="operator token">=</SPAN> getLogger<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
gdb <SPAN class="operator token">=</SPAN> r<SPAN class="string token">'C:\Users\vueworks\AppData\Roaming\ESRI\Desktop10.3\ArcCatalog\MDC_ETL.sde'</SPAN>
gdbsdeds <SPAN class="operator token">=</SPAN> <SPAN class="string token">"MDC_ETL.DBO."</SPAN>
sde <SPAN class="operator token">=</SPAN> r<SPAN class="string token">'C:\Users\vueworks\AppData\Roaming\ESRI\Desktop10.3\ArcCatalog\MDCTest_1025.sde'</SPAN>
sdeds <SPAN class="operator token">=</SPAN> <SPAN class="string token">"MDCTest_1025.dbo.ViewETL_FacilityType_"</SPAN>
gdbee <SPAN class="operator token">=</SPAN> gdbsdeds<SPAN class="operator token">+</SPAN><SPAN class="string token">"Exterior_Electrical"</SPAN>
gdbem <SPAN class="operator token">=</SPAN> gdbsdeds<SPAN class="operator token">+</SPAN><SPAN class="string token">"Exterior_Mechanical"</SPAN>
gdbfs <SPAN class="operator token">=</SPAN> gdbsdeds<SPAN class="operator token">+</SPAN><SPAN class="string token">"Facility_Site"</SPAN>
gdbfp <SPAN class="operator token">=</SPAN> gdbsdeds<SPAN class="operator token">+</SPAN><SPAN class="string token">"Fish_Production"</SPAN>
gdbg <SPAN class="operator token">=</SPAN> gdbsdeds<SPAN class="operator token">+</SPAN><SPAN class="string token">"Generic"</SPAN>
gdbhm <SPAN class="operator token">=</SPAN> gdbsdeds<SPAN class="operator token">+</SPAN><SPAN class="string token">"Hydrology_Management"</SPAN>
gdbr <SPAN class="operator token">=</SPAN> gdbsdeds<SPAN class="operator token">+</SPAN><SPAN class="string token">"Range"</SPAN>
gdbswm <SPAN class="operator token">=</SPAN> gdbsdeds<SPAN class="operator token">+</SPAN><SPAN class="string token">"Storm_Water_Management"</SPAN>
gdbwm <SPAN class="operator token">=</SPAN> gdbsdeds<SPAN class="operator token">+</SPAN><SPAN class="string token">"Wastewater_Management"</SPAN>
gdbwc <SPAN class="operator token">=</SPAN> gdbsdeds<SPAN class="operator token">+</SPAN><SPAN class="string token">"Water_Conveyance"</SPAN>
gca <SPAN class="operator token">=</SPAN> vca <SPAN class="operator token">=</SPAN> <SPAN class="string token">"Conservation_Area_Name"</SPAN>
gcn <SPAN class="operator token">=</SPAN> vcn <SPAN class="operator token">=</SPAN> <SPAN class="string token">"Conservation_Area_Number"</SPAN>
gn <SPAN class="operator token">=</SPAN> vn <SPAN class="operator token">=</SPAN> <SPAN class="string token">"Network"</SPAN>
gan <SPAN class="operator token">=</SPAN> van <SPAN class="operator token">=</SPAN> <SPAN class="string token">"Asset_Name"</SPAN>
gfi <SPAN class="operator token">=</SPAN> <SPAN class="string token">"Field_ID"</SPAN>
gai <SPAN class="operator token">=</SPAN> <SPAN class="string token">"Asset_ID"</SPAN>
gt1n <SPAN class="operator token">=</SPAN> <SPAN class="string token">"Tier_1_System_Name"</SPAN>
gt1t <SPAN class="operator token">=</SPAN> <SPAN class="string token">"Tier_1_System_Type"</SPAN>
gt2n <SPAN class="operator token">=</SPAN> <SPAN class="string token">"Tier_2_Major_Subsystem_Name"</SPAN>
gt2t <SPAN class="operator token">=</SPAN> <SPAN class="string token">"Tier_2_Major_Subsystem_Type"</SPAN>
gt3n <SPAN class="operator token">=</SPAN> <SPAN class="string token">"Tier_3_Minor_Subsystem_Name"</SPAN>
gt3t <SPAN class="operator token">=</SPAN> <SPAN class="string token">"Tier_3_Minor_Subsystem_Type"</SPAN>
vfi <SPAN class="operator token">=</SPAN> <SPAN class="string token">"FieldID"</SPAN>
vai <SPAN class="operator token">=</SPAN> <SPAN class="string token">"AssetID"</SPAN>
vt1n <SPAN class="operator token">=</SPAN> <SPAN class="string token">"Tier_1_Name"</SPAN>
vt1t <SPAN class="operator token">=</SPAN> <SPAN class="string token">"Tier_1_Type"</SPAN>
vt2n <SPAN class="operator token">=</SPAN> <SPAN class="string token">"Tier_2_Name"</SPAN>
vt2t <SPAN class="operator token">=</SPAN> <SPAN class="string token">"Tier_2_Type"</SPAN>
vt3n <SPAN class="operator token">=</SPAN> <SPAN class="string token">"Tier_3_Name"</SPAN>
vt3t <SPAN class="operator token">=</SPAN> <SPAN class="string token">"Tier_3_Type"</SPAN>
gdfc <SPAN class="operator token">=</SPAN> gdbsdeds<SPAN class="operator token">+</SPAN><SPAN class="string token">"Phase_Converter_Exterior"</SPAN>
gdfcin <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>MakeFeatureLayer_management<SPAN class="punctuation token">(</SPAN>gdb<SPAN class="operator token">+</SPAN><SPAN class="string token">"\\"</SPAN><SPAN class="operator token">+</SPAN>gdbee<SPAN class="operator token">+</SPAN><SPAN class="string token">"\\"</SPAN><SPAN class="operator token">+</SPAN>gdfc<SPAN class="punctuation token">,</SPAN> gdfc<SPAN class="punctuation token">)</SPAN>
vwfc <SPAN class="operator token">=</SPAN> sdeds<SPAN class="operator token">+</SPAN><SPAN class="string token">"PhaseConverterExterior"</SPAN>
vwfcin <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>MakeTableView_management<SPAN class="punctuation token">(</SPAN>sde<SPAN class="operator token">+</SPAN><SPAN class="string token">"\\"</SPAN><SPAN class="operator token">+</SPAN>vwfc<SPAN class="punctuation token">,</SPAN> vwfc<SPAN class="punctuation token">)</SPAN>
slct <SPAN class="operator token">=</SPAN> gdfc<SPAN class="operator token">+</SPAN><SPAN class="string token">"."</SPAN><SPAN class="operator token">+</SPAN>gai<SPAN class="operator token">+</SPAN><SPAN class="string token">" IS NULL OR ("</SPAN><SPAN class="operator token">+</SPAN>gdfc<SPAN class="operator token">+</SPAN><SPAN class="string token">"."</SPAN><SPAN class="operator token">+</SPAN>gai<SPAN class="operator token">+</SPAN><SPAN class="string token">" <> "</SPAN><SPAN class="operator token">+</SPAN>vwfc<SPAN class="operator token">+</SPAN><SPAN class="string token">"."</SPAN><SPAN class="operator token">+</SPAN>vai<SPAN class="operator token">+</SPAN><SPAN class="string token">")"</SPAN>
<SPAN class="keyword token">try</SPAN><SPAN class="punctuation token">:</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>AddJoin_management<SPAN class="punctuation token">(</SPAN>gdfc<SPAN class="punctuation token">,</SPAN> gfi<SPAN class="punctuation token">,</SPAN> vwfc<SPAN class="punctuation token">,</SPAN> vfi<SPAN class="punctuation token">)</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>SelectLayerByAttribute_management<SPAN class="punctuation token">(</SPAN>gdfc<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"NEW_SELECTION"</SPAN><SPAN class="punctuation token">,</SPAN> slct<SPAN class="punctuation token">)</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>CalculateField_management<SPAN class="punctuation token">(</SPAN>gdfc<SPAN class="punctuation token">,</SPAN> gdfc<SPAN class="operator token">+</SPAN><SPAN class="string token">"."</SPAN><SPAN class="operator token">+</SPAN>gai<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"["</SPAN><SPAN class="operator token">+</SPAN>vwfc<SPAN class="operator token">+</SPAN><SPAN class="string token">"."</SPAN><SPAN class="operator token">+</SPAN>vai<SPAN class="operator token">+</SPAN><SPAN class="string token">"]"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"VB"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">)</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>CalculateField_management<SPAN class="punctuation token">(</SPAN>gdfc<SPAN class="punctuation token">,</SPAN> gdfc<SPAN class="operator token">+</SPAN><SPAN class="string token">"."</SPAN><SPAN class="operator token">+</SPAN>gca<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"["</SPAN><SPAN class="operator token">+</SPAN>vwfc<SPAN class="operator token">+</SPAN><SPAN class="string token">"."</SPAN><SPAN class="operator token">+</SPAN>vca<SPAN class="operator token">+</SPAN><SPAN class="string token">"]"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"VB"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">)</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>CalculateField_management<SPAN class="punctuation token">(</SPAN>gdfc<SPAN class="punctuation token">,</SPAN> gdfc<SPAN class="operator token">+</SPAN><SPAN class="string token">"."</SPAN><SPAN class="operator token">+</SPAN>gcn<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"["</SPAN><SPAN class="operator token">+</SPAN>vwfc<SPAN class="operator token">+</SPAN><SPAN class="string token">"."</SPAN><SPAN class="operator token">+</SPAN>vcn<SPAN class="operator token">+</SPAN><SPAN class="string token">"]"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"VB"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">)</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>CalculateField_management<SPAN class="punctuation token">(</SPAN>gdfc<SPAN class="punctuation token">,</SPAN> gdfc<SPAN class="operator token">+</SPAN><SPAN class="string token">"."</SPAN><SPAN class="operator token">+</SPAN>gn<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"["</SPAN><SPAN class="operator token">+</SPAN>vwfc<SPAN class="operator token">+</SPAN><SPAN class="string token">"."</SPAN><SPAN class="operator token">+</SPAN>vn<SPAN class="operator token">+</SPAN><SPAN class="string token">"]"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"VB"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">)</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>CalculateField_management<SPAN class="punctuation token">(</SPAN>gdfc<SPAN class="punctuation token">,</SPAN> gdfc<SPAN class="operator token">+</SPAN><SPAN class="string token">"."</SPAN><SPAN class="operator token">+</SPAN>gt1n<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"["</SPAN><SPAN class="operator token">+</SPAN>vwfc<SPAN class="operator token">+</SPAN><SPAN class="string token">"."</SPAN><SPAN class="operator token">+</SPAN>vt1n<SPAN class="operator token">+</SPAN><SPAN class="string token">"]"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"VB"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">)</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>CalculateField_management<SPAN class="punctuation token">(</SPAN>gdfc<SPAN class="punctuation token">,</SPAN> gdfc<SPAN class="operator token">+</SPAN><SPAN class="string token">"."</SPAN><SPAN class="operator token">+</SPAN>gt1t<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"["</SPAN><SPAN class="operator token">+</SPAN>vwfc<SPAN class="operator token">+</SPAN><SPAN class="string token">"."</SPAN><SPAN class="operator token">+</SPAN>vt1t<SPAN class="operator token">+</SPAN><SPAN class="string token">"]"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"VB"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">)</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>CalculateField_management<SPAN class="punctuation token">(</SPAN>gdfc<SPAN class="punctuation token">,</SPAN> gdfc<SPAN class="operator token">+</SPAN><SPAN class="string token">"."</SPAN><SPAN class="operator token">+</SPAN>gt2n<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"["</SPAN><SPAN class="operator token">+</SPAN>vwfc<SPAN class="operator token">+</SPAN><SPAN class="string token">"."</SPAN><SPAN class="operator token">+</SPAN>vt2n<SPAN class="operator token">+</SPAN><SPAN class="string token">"]"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"VB"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">)</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>CalculateField_management<SPAN class="punctuation token">(</SPAN>gdfc<SPAN class="punctuation token">,</SPAN> gdfc<SPAN class="operator token">+</SPAN><SPAN class="string token">"."</SPAN><SPAN class="operator token">+</SPAN>gt2t<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"["</SPAN><SPAN class="operator token">+</SPAN>vwfc<SPAN class="operator token">+</SPAN><SPAN class="string token">"."</SPAN><SPAN class="operator token">+</SPAN>vt2t<SPAN class="operator token">+</SPAN><SPAN class="string token">"]"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"VB"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">)</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>CalculateField_management<SPAN class="punctuation token">(</SPAN>gdfc<SPAN class="punctuation token">,</SPAN> gdfc<SPAN class="operator token">+</SPAN><SPAN class="string token">"."</SPAN><SPAN class="operator token">+</SPAN>gt3n<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"["</SPAN><SPAN class="operator token">+</SPAN>vwfc<SPAN class="operator token">+</SPAN><SPAN class="string token">"."</SPAN><SPAN class="operator token">+</SPAN>vt3n<SPAN class="operator token">+</SPAN><SPAN class="string token">"]"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"VB"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">)</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>CalculateField_management<SPAN class="punctuation token">(</SPAN>gdfc<SPAN class="punctuation token">,</SPAN> gdfc<SPAN class="operator token">+</SPAN><SPAN class="string token">"."</SPAN><SPAN class="operator token">+</SPAN>gan<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"["</SPAN><SPAN class="operator token">+</SPAN>vwfc<SPAN class="operator token">+</SPAN><SPAN class="string token">"."</SPAN><SPAN class="operator token">+</SPAN>van<SPAN class="operator token">+</SPAN><SPAN class="string token">"]"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"VB"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">except</SPAN><SPAN class="punctuation token">:</SPAN>
log<SPAN class="punctuation token">.</SPAN>error<SPAN class="punctuation token">(</SPAN>arcpy<SPAN class="punctuation token">.</SPAN>GetMessages<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="comment token"># log everything as ERROR (but should preserve order of messages)</SPAN>
<SPAN class="comment token">#log.warning(arcpy.GetMessages(1)) # log warning messages as WARN</SPAN>
<SPAN class="comment token">#log.error(arcpy.GetMessages(2))# log error messages as ERROR</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>RemoveJoin_management<SPAN class="punctuation token">(</SPAN>gdfc<SPAN class="punctuation token">)</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>SelectLayerByAttribute_management<SPAN class="punctuation token">(</SPAN>gdfc<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"CLEAR_SELECTION"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>