Determine "enable sync" setting

825
2
02-14-2018 10:57 AM
MichaelZatorsky
New Contributor III

Hello,

Is it possible using the ArcGIS API for python to determine the Enable sync status of a hosted feature layer on ArcGIS online?

i.e. this setting:


sync setting

I don't need to change it at this stage, just determine if it is checked or not.

In context, I intend to loop though all the layers of a web map looking for any layer that does not have sync enabled,  using something like this:

from arcgis.gis import GIS
from arcgis.mapping import WebMap

gis = GIS(url, username, password)

map_id = # the_unique_item_identifier would be here #
search_result=gis.content.search(map_id,max_items=1000)
item = search_result[0]
print("map title       = ", item.title)

theWebMap = WebMap(webmapitem=item)
layerCount = len(theWebMap.layers)
print("layer count = " + str(layerCount))

for layer in theWebMap.layers:
    print("type            = ", layer.layerType)
    print("title           = ", layer.title)
    print("id              = ", layer.id)

    # mystery bit - property?  custom function?
    print("syncStatus      = ", layer.?????)‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

Thanks 

0 Kudos
2 Replies
AaronPulver
Esri Regular Contributor

You should be able to access the "capabilities" property of the layer (which has sync, editing, create....) by doing the following. The capabilities property is a comma separated string of values. 

layer.properties["capabilities"]

You can update the layer properties by doing:

layer.manager.update_definition({

    "capabilities": "Editing, Sync, Update, Create, Delete" // Whatever other properties you need or that were previously there

})

MichaelZatorsky
New Contributor III

Thanks for the suggestion Aaron.   I followed up by reading  Service definitions | ArcGIS for Developers which has a worked example of displaying and enabling sync for a  Feature Layer Collection.   However, I'm working with a Feature Layer (Hosted).

Following the example in the docs I can't get it to work for a Feature Layer (hosted).

Do you know if this definitely works with ArcGIS Online, or is it just Portal?

I recently found out that tracing item dependencies using the functions item.dependent_upon() and item.dependent_to() only work for Portal, and not GIS Online - and there is nothing in the documentation about that -  so I'm not sure if its my bad programming, or its just not possible with Online?

If  properties.capabilities  should work for a hosted Feature Layer, can you point me to a worked example?

Thanks.

0 Kudos