I want to add a query layer to an arcmap document so that whenever i have a db data update, it is reflected in my ma and I can update my service through python script. This is my script so far...
import arcpyfrom arcpy import envarcpy.env.overWriteOutput = 1# define local variableswrkspc = 'C:/ArcGIS_Workspace/'mxd = arcpy.mapping.MapDocument(wrkspc + 'scripts/Trial.mxd')input_db_name = "Database Connections/xxx.sde"outLayer = "DynamicQueryLayer"out_layer_name = wrkspc +"/shapefiles/DynamicQueryLayer.lyr"query = "SELECT * FROM TEST_TABLE"#unique key for the tableoid_field = "schema.TEST_TABLE.TEST_ID"try: # Create a query layer arcpy.MakeQueryLayer_management (input_db_name, outLayer, query, oid_field) # save the created query layer arcpy.SaveToLayerFile_management(outLayer, out_layer_name, "ABSOLUTE") # Get the created layer lyr = arcpy.mapping.Layer(out_layer_name) # get the data frame of the given mxd data_frame = arcpy.mapping.ListDataFrames(mxd)[0] # Switch to data view mxd.activeView = data_frame.name arcpy.mapping.AddLayer(data_frame, lyr, 'TOP') print "Added layer to the MXD ..." mxd.save() print "MXD saved..." except Exception, e: # If an error occurred, print line number and error message import traceback, sys tb = sys.exc_info()[2] print "Line %i" % tb.tb_lineno print e.messageI get this error. ERROR 000732: Input Features: Dataset DynamicQueryLayer does not exist or is not supported.
I am sure there is a way to save the created query layer as a layer file.Any help is greatly appreciated.
أكثر...
import arcpyfrom arcpy import envarcpy.env.overWriteOutput = 1# define local variableswrkspc = 'C:/ArcGIS_Workspace/'mxd = arcpy.mapping.MapDocument(wrkspc + 'scripts/Trial.mxd')input_db_name = "Database Connections/xxx.sde"outLayer = "DynamicQueryLayer"out_layer_name = wrkspc +"/shapefiles/DynamicQueryLayer.lyr"query = "SELECT * FROM TEST_TABLE"#unique key for the tableoid_field = "schema.TEST_TABLE.TEST_ID"try: # Create a query layer arcpy.MakeQueryLayer_management (input_db_name, outLayer, query, oid_field) # save the created query layer arcpy.SaveToLayerFile_management(outLayer, out_layer_name, "ABSOLUTE") # Get the created layer lyr = arcpy.mapping.Layer(out_layer_name) # get the data frame of the given mxd data_frame = arcpy.mapping.ListDataFrames(mxd)[0] # Switch to data view mxd.activeView = data_frame.name arcpy.mapping.AddLayer(data_frame, lyr, 'TOP') print "Added layer to the MXD ..." mxd.save() print "MXD saved..." except Exception, e: # If an error occurred, print line number and error message import traceback, sys tb = sys.exc_info()[2] print "Line %i" % tb.tb_lineno print e.messageI get this error. ERROR 000732: Input Features: Dataset DynamicQueryLayer does not exist or is not supported.
I am sure there is a way to save the created query layer as a layer file.Any help is greatly appreciated.
أكثر...