|
POST
|
Do you own the layers and/or the web map? What user type do you have?
... View more
3 weeks ago
|
0
|
3
|
254
|
|
POST
|
From what I can tell, closing the "session" here is referring to closing the Python-side http session, so it would be useful for ending a script's authenticated connection to the GIS account. If you are able to have remote control over someone's machine, you could maybe utilize psutil and kill the session on that machine?
... View more
3 weeks ago
|
1
|
0
|
223
|
|
POST
|
Hi @SusieMcGovern , The popup configurations are handled through the popup section in the right-hand menu in Map Viewer. When you click on that, expand "Field List" and click the x to remove any fields you don't want displayed.
... View more
3 weeks ago
|
1
|
5
|
299
|
|
POST
|
This is brilliant, thank you so much! In case it helps others who come across this post, I'll share what I added - this prints out a formatted report and sorts by usage date, with the oldest usage dates on top. from arcgis.gis import GIS
from datetime import datetime
agol = GIS("home")
# Generate a report for applications
report = agol.admin.usage_reports.applications(time_frame = "90days")
# We are only interested in ArcGIS Pro usage
arcgispro_report = [entry for entry in report["data"] if entry["appId"] == "arcgisprodesktop"]
user_data = []
# Collect all user data with their last usage dates
for user in arcgispro_report:
username = user["username"]
last_usage = None
# search through user data in reverse chronological order
for epoch, usage in reversed(user["num"]):
if int(usage) > 0:
last_usage = int(epoch)
break
if last_usage:
last_usage_date = datetime.utcfromtimestamp(last_usage / 1000).strftime("%m/%d/%Y")
sort_timestamp = last_usage
has_usage = True
else:
last_usage_date = "More than 90 days"
sort_timestamp = 0
has_usage = False
user_data.append({
'username': username,
'last_usage_date': last_usage_date,
'sort_timestamp': sort_timestamp,
'has_usage': has_usage
})
# Sort: first by has_usage (False first), then by sort_timestamp (ascending)
user_data.sort(key=lambda x: (x['has_usage'], x['sort_timestamp']))
# Print formatted table
print("\n" + "=" * 100)
print(" " * 30 + "ARCGIS PRO USAGE REPORT - LAST 90 DAYS")
print("=" * 100)
print(f"{'#':<3} {'Username':<55} {'Last Usage':<15} {'Days Ago':<10} {'Status':<12}")
print("-" * 100)
for i, user_info in enumerate(user_data, 1):
username = user_info['username']
last_usage_date = user_info['last_usage_date']
if not user_info['has_usage']:
status = "INACTIVE"
days_ago = "90+"
else:
days_since = (datetime.now() - datetime.utcfromtimestamp(user_info['sort_timestamp'] / 1000)).days
days_ago = str(days_since)
if days_since <= 7:
status = "ACTIVE"
elif days_since <= 30:
status = "RECENT"
else:
status = "STALE"
print(f"{i:<3} {username:<55} {last_usage_date:<15} {days_ago:<10} {status:<12}")
print("-" * 100)
print(f"Total Users: {len(user_data)}")
print(f"Active Users (≤7 days): {len([u for u in user_data if u['has_usage'] and (datetime.now() - datetime.utcfromtimestamp(u['sort_timestamp'] / 1000)).days <= 7])}")
print(f"Recent Users (8-30 days): {len([u for u in user_data if u['has_usage'] and 8 <= (datetime.now() - datetime.utcfromtimestamp(u['sort_timestamp'] / 1000)).days <= 30])}")
print(f"Stale Users (31-90 days): {len([u for u in user_data if u['has_usage'] and 31 <= (datetime.now() - datetime.utcfromtimestamp(u['sort_timestamp'] / 1000)).days <= 90])}")
print(f"Inactive Users (>90 days): {len([u for u in user_data if not u['has_usage']])}")
print("=" * 100)
... View more
3 weeks ago
|
2
|
0
|
249
|
|
POST
|
I hadn't given it much thought for a while since I had moved on to other projects, but I just checked again and it seems to be the same behavior as described before, unfortunately. 😞
... View more
3 weeks ago
|
1
|
0
|
89
|
|
POST
|
This trick is so helpful, thank you for posting this! I've actually referenced this page a couple times and had to rewatch the video each time to remember what to do. So.....for those who might benefit from a bulleted list, here you go! 😁 1. Sign in to your ArcGIS Online account and navigate to the dashboard that you want to make a copy of 2. Go to the URL and find the forward slash (/) that's located after the word "dashboards" 3. Add new#id= after the forward slash in the URL 4. Hit "enter", and then proceed to fill out the Item Details for the copy of the dashboard you're creating in your ArcGIS Online content. That's it! Thank you again, @BrittneyWhite1
... View more
3 weeks ago
|
4
|
0
|
389
|
|
POST
|
Interesting.... do you know if there's another method of getting this information, then?
... View more
3 weeks ago
|
0
|
3
|
265
|
|
POST
|
Hmmm yeah it's certainly cumbersome. I found this ArcGIS idea from way back in 2017, guess it's been a pain point for a while! https://community.esri.com/t5/arcgis-online-ideas/web-map-legend-only-show-filtered-items-or-items/idi-p/945641
... View more
3 weeks ago
|
1
|
0
|
167
|
|
POST
|
In the Map Viewer configuration, could you simply go to the symbology options for the layer and drag the values you don't want to display below into the group that is hidden from legend? See screenshot, using a layer from the Living Atlas:
... View more
3 weeks ago
|
0
|
2
|
183
|
|
POST
|
Hello, I found this related post but no answer from it, wondering if there are any other insights. I was hoping to be able to write a Notebook that would use the ArcGIS API for Python and query the license activity for ArcGIS Pro licenses in my organization. I am specifically interested in the "Last Used" property, which indicates when someone last opened a session within ArcGIS Pro. This information is different from their last login to ArcGIS Online. I have not been able to find a way to access this info through the API - is it accessible anywhere programmatically?
... View more
3 weeks ago
|
1
|
10
|
405
|
|
POST
|
I'm also looking to do something similar to help with our license management. Did you ever find a solution?
... View more
3 weeks ago
|
0
|
0
|
84
|
|
POST
|
I was able to accomplish this by explicitly setting the valueOptions > displayUnits property for the Sketch class. Here's an example of how I'm using it: const sketchWidget = new Sketch({
layer: sketchLayer,
view: view,
viewModel: sketchViewModel,
valueOptions: {
displayUnits: {
length: "feet",
area: "acres"
}
},
visibleElements: {
duplicateButton: false,
createTools: {
point: geometryTypes.includes("point"),
polyline: geometryTypes.includes("polyline"),
polygon: geometryTypes.includes("polygon"),
rectangle: false,
circle: false
}
},
defaultUpdateOptions: {
reshapeOptions: {
shapeOperation: "none"
},
enableRotation: false,
enableScaling: false,
enableZ: false,
highlightOptions: {
enabled: false
},
tool: "reshape"
},
creationMode: "update"
}); Here's a link to the documentation - it says it's in beta so perhaps this feature wasn't available when this post was originally made. It's supported since ArcGIS Maps SDK for JavaScript 4.29. Hope this helps if someone comes across this post in the future!
... View more
06-20-2025
03:03 PM
|
0
|
0
|
185
|
|
POST
|
Chiming in here, I was working on this issue yesterday. Check out my response to this post here, I shared a snippet of my code in which I update the Item Details to reflect the layer change. Hope it helps.
... View more
05-06-2025
07:11 AM
|
1
|
0
|
1314
|
|
POST
|
Chiming in here, I was working on this issue yesterday. Check out my response to this post here, I shared a snippet of my code in which I update the Item Details to reflect the layer change. Hope it helps.
... View more
05-06-2025
07:09 AM
|
2
|
0
|
900
|
| Title | Kudos | Posted |
|---|---|---|
| 1 | 3 weeks ago | |
| 1 | 3 weeks ago | |
| 1 | 3 weeks ago | |
| 2 | 3 weeks ago | |
| 4 | 3 weeks ago |
| Online Status |
Offline
|
| Date Last Visited |
3 weeks ago
|