POST
|
Hi Alex, Just so I understand the situation: are fields A and B in the same dataset or different datasets? If they are in different datasets which have a common key I would use a table join and the field calculator to transfer the information from the source column to the destination column. Micah
... View more
05-11-2015
03:48 PM
|
1
|
0
|
238
|
POST
|
Hello Derek, Did you try running the Make Feature Layer through the geoprocessing tool dialog in arcmap? If that fails then this article from Esri may be relevant. Since your feature class appears to be working normally everywhere but within the geoprocessing environment, it may be a question of an invalid subtype, an issue with on-the-fly projection (is your data frame in an XY coordinate system that matches the feature class from which you want to make a feature layer?), or maybe turning off background geoprocessing. Hopefully one of these will work for you! Warm Regards, Micah
... View more
04-15-2015
01:09 PM
|
1
|
0
|
669
|
POST
|
I found the reason for this with the help of my database administrator. The problem was that, upon importing the data into my SDE geodatabase (using the standard copy/paste method in ArcCatalog), a date field was converted to a SQL date type that was incompatible with some of the values in the rows. The specific system date field type was "smalldatetime" which apparently cannot store any dates beyond June 6, 2079. Since quite a few rows in the table had a value for that date field of 2099 or beyond, updates to that row in SQL Server were not possible, and the edits were rolled back upon failure. I tried changing some of the values to a more recent date, and all of a sudden updates were possible for those features! Next, I plan to check with the project partner to see if that date field is even necessary, if we can change it to a text field, or if we can change it to a more robust date field type through SQL Server.
... View more
04-15-2015
12:20 PM
|
3
|
0
|
826
|
POST
|
Ok, I've removed the relationship class and the same error occurred when trying to edit certain features. A couple of things caught my attention when looking at the logs: INFO Apr 9, 2015, 12:05:03 PM xssInputRule = rejectInvalid Private/BES_Invaders.MapServer INFO Apr 9, 2015, 12:05:03 PM xssPreventionRule = input Private/BES_Invaders.MapServer INFO Apr 9, 2015, 12:05:03 PM xssPreventionEnabled = true Private/BES_Invaders.MapServer SEVERE Apr 9, 2015, 11:59:51 AM Failed to rename cache folder. Private/BES_Invaders.MapServer Do these mean anything to you? I am not very experienced at interpreting these logs. A quick lookup tells me that the xssPreventionRule can block potentially harmful attribute edits. Could this be causing the issue? Thanks so much.
... View more
04-09-2015
12:25 PM
|
0
|
1
|
826
|
POST
|
Hi Anthony, Thank you for the reply. We have tested the Collector app on Android and iOS - using a smartphone and iPad respectively. The devices are using version 10.3 of Collector app itself. Re-publishing without the relationship class is the next thing that I will try. I was hoping it would work since the users will not actually be editing the related table - only viewing the rows. Indeed, I was able to successfully edit some vector features which had related records using the app. I will re-publish without the relationship class to see if that works.
... View more
04-09-2015
11:52 AM
|
0
|
3
|
826
|
POST
|
Hello, A week or so ago I published an editable feature service for a colleague who wants to use Collector for some field data editing. However, when I try to edit the data through a web client, some features I am able to edit, while others revert back to what they were (geometry and attributes). So in essence my problem is that some features can be edited while others can't. It is an on-premise ArcGIS Server (10.2) editable feature service referencing a polygon feature class in a non-versioned SDE (SQL Server) geodatabase (also v10.2). I have enabled all editing privileges as such: The data is in Web Mercator, with editor tracking, and a relationship class with a 1-M relationship with a non-spatial table. There's no messaging in the relationship class. The project partner just wants users to be able to view the related records but the only edits will be to the spatial data. The properties of the relationship class are: I've spent a lot of time researching the existing documentation of editable feature services and even our lead ArcGIS Server guy is somewhat at a loss. Has anyone observed this behavior before? It's weird because I can commit edits on certain features without issue, but for some the geometry and attributes switch back to what they were after a while. Please help! Warm Regards, Micah Babinski City of Portland, Oregon
... View more
04-09-2015
10:30 AM
|
0
|
6
|
3518
|
POST
|
Hi Andrew, I should have specified that I have not had any problems overwriting this feature service using the GUI-based workflow within arcmap: My interest is really to be able to overwrite these types of services automatically for when I have to make bulk updates to layer and MXD descriptions, symbology, or other characteristics of the MXD. Thanks, Micah
... View more
04-06-2015
09:20 AM
|
0
|
2
|
778
|
POST
|
Greetings, I am working on a script tool that will overwrite an existing service, with the option to identify it as a feature service. I'm using ArcGIS 10.2.0. When I run the script (abstracted and included below) with the feature service option activated, I consistently get an error of: The script tool takes three parameters: Service Folder - Rest Endpoint (String) Service Name (String) Is Feature Service (bool) The workflow I am following is Create Map SD draft Update the SVCManifest/TypeName portion of the SD draft xml to be "esriServiceDefinitionType_replacement" If the feature service option is selected, modify the XML to specify TypeName of FeatureServer, State of esriSDState_Published, turn off caching, and grant full web capabilities including Query,Create,Update,Delete,Uploads,Editing Save the updated xml to the disk Stage the service Upload the service definition if there are no errors The script is attached. Based on my research so far, my best guess is that my modifications to the XML are somehow invalidating it. Here is that specific portion: # Identify the SD draft to use
if str(is_feature_service) == "true":
xml = newSDdraft
else:
xml = sddraft
# Set service type to esriServiceDefinitionType_Replacement
newType = 'esriServiceDefinitionType_Replacement'
doc = DOM.parse(xml)
descriptions = doc.getElementsByTagName('Type')
for desc in descriptions:
if desc.parentNode.tagName == 'SVCManifest':
if desc.hasChildNodes():
desc.firstChild.data = newType
# If feature service is selected, change the service type from map service to feature service
if str(is_feature_service) == "true":
typeNames = doc.getElementsByTagName('TypeName')
for typeName in typeNames:
if typeName.firstChild.data == "MapServer":
typeName.firstChild.data = "FeatureServer"
tagsState = doc.getElementsByTagName('State')
for tagState in tagsState:
if tagState.parentNode.tagName == 'SVCManifest':
if tagState.hasChildNodes():
tagState.firstChild.data = "esriSDState_Published"
# ...turns off caching
configProps = doc.getElementsByTagName('ConfigurationProperties')[0]
propArray = configProps.firstChild
propSets = propArray.childNodes
for propSet in propSets:
keyValues = propSet.childNodes
for keyValue in keyValues:
if keyValue.tagName == 'Key':
if keyValue.firstChild.data == "isCached":
keyValue.nextSibling.firstChild.data = "false"
# ...and turn on feature access capabilities
configProps = doc.getElementsByTagName('Info')[0]
propArray = configProps.firstChild
propSets = propArray.childNodes
for propSet in propSets:
keyValues = propSet.childNodes
for keyValue in keyValues:
if keyValue.tagName == 'Key':
if keyValue.firstChild.data == "WebCapabilities":
keyValue.nextSibling.firstChild.data = "Query,Create,Update,Delete,Uploads,Editing"
# Write the new draft to disk
f = open(newSDdraft, 'w')
doc.writexml( f )
f.close() The full script is attached. Any guesses or help would be much appreciated! Most of the help for overwriting a feature service that I found was for hosted feature services, so I'm a bit at a loss. Regards, Micah Babinski
... View more
04-02-2015
11:29 AM
|
0
|
4
|
4998
|
POST
|
Hi Jason, This configuration is set within the service editor dialog when publishing the editable feature service. In the dialog, under the "Feature Access" settings (within the Capabilities section), you'll want to uncheck the option to "Allow geometry updates." This will allow the editor (be it in ArcGIS.com, desktop, or Collector) to update feature attributes but will prohibit them from updating the feature geometry. I hope this helps. Warm Regards, Micah
... View more
03-24-2015
10:04 AM
|
1
|
0
|
233
|
POST
|
Hi Michelle, As far as I know, it's not possible using the standard dynamic text options. There's the option of using python to get this within your Map Document, but I think whether this is a good option depends on your use case. Is this a change you'd like to make on a single MXD or many MXDs?
... View more
03-19-2015
12:05 PM
|
0
|
0
|
190
|
POST
|
Hi Forest, Many tools within the Tile Caching toolset honor the "Parallel Processing Factor" environment setting. It may be worth boosting this factor if you're hoping to apply more of your computer's resources to the task. If executing these tools from Python, add arcpy.env.parallelProcessingFactor = "100%" to the top of your script. Otherwise, set this in the environment settings of the tool dialog in the stand-alone tool or in ModelBuilder. Hope this helps! Micah
... View more
03-19-2015
09:55 AM
|
1
|
2
|
2831
|
POST
|
I think you're right on with that assessment, Darren. I recently deployed some ArcObjects functionality to do some change detection on our enterprise datasets, specifically so that I could return the date modified of a file geodatabase feature class: Programmatically return Feature Class file size and date modified I'll continue to access bits of ArcObjects functionality through Python because I like Python and it makes sense to me. At the same time, I'll hold on to the hope that Esri will continue to expand the reach of arcpy so that these trickier customizations become part of the default site package in the future.
... View more
03-03-2015
12:06 PM
|
1
|
0
|
553
|
POST
|
Hi James, No I haven't. I developed this solution as part of some R&D on a redesign of an SDE data loading process we have. We need to detect changes in datasets in a range of formats so we can determine which of them have been updated and need to be loaded to our SDE geodatabases. Our current app was set up by my supervisor in C# ArcObjects. It works well but has a few shortcomings and has proven tricky to maintain over the years. Out of curiosity, what indicates that it will fail in a Citrix environment?
... View more
03-02-2015
10:33 AM
|
0
|
1
|
1433
|
POST
|
You're right Xander, but I was not clear from the question if the target data frames have a fixed extent or just the source data frame. Assuming the target data frames are set to fixed extent, that sounds like a fun bit of ArcObjects research!
... View more
02-06-2015
12:01 PM
|
0
|
0
|
824
|
POST
|
Hey there, great question! And an excellent candidate for using the arcpy.mapping module. The first step would be to create a list of the mxds you want to modify. Something like import arcpy
arcpy.env.workspace = r"[path to directory containing your MXDs]"
mapDocList = arcpy.ListFiles("*.mxd") Now that we have that list, you can identify the extent you want to apply to the other MXDs. Try: mxd_to_copy = arcpy.mapping.MapDocument(r"[path to MXD containing the extent you want to copy]")
df_to_copy = arcpy.ListDataFrames(mxd)[0] # Note: this assumes that there is only one data frame in the mxd. If there are multiple, you can specifiy which to use with a wildcard
extent_to_copy = df_to_copy.extent Ok, now you have created an extent object that you will apply to the data frames in your other MXDs. So... for mapDoc in mapDocList:
# Create an mxd object out of the map doc
mxd = arcpy.mapping.MapDocument(r"[path to directory containing your MXDs]" + "\\" + mapDoc)
# Create a data frame object to apply the extent to
df = arcpy.mapping.ListDataFrames(mxd)[0] # See previous note about multiple data frames
# Apply the extent
df.extent = extent_to_copy
# Save the map document
mxd.save()
# Cleanup the variables
del mxd, df Anyways, the arcpy.mapping module is awesome once you get the hang of it. Esri really hit it out of the park with that one in my humble opinion. I hope this works! Warm Regards, Micah
... View more
02-06-2015
11:08 AM
|
1
|
3
|
824
|
Title | Kudos | Posted |
---|---|---|
1 | 10-13-2017 09:58 AM | |
1 | 10-05-2017 12:14 PM | |
1 | 08-29-2017 02:07 PM | |
1 | 09-21-2016 08:34 AM | |
1 | 06-21-2016 10:05 AM |
Online Status |
Offline
|
Date Last Visited |
04-26-2021
03:16 PM
|