IDEA
|
@EmilyGeo actually I was wrong, it wasn't the domain. It was the fact that I created a live join view. Here is the associated bug for all who run into this issue: BUG-000119730: In ArcGIS Online, after running the Join Features tool on a layer and a table within the same hosted feature layer, the Add Field option for the hosted feature layer disappears.
... View more
04-11-2023
10:26 AM
|
0
|
0
|
1631
|
IDEA
|
@EmilyGeo I ended up reaching out to Esri Tech Support about the issue since you mentioned it should be possible. Turns out there was a problem with my dataset preventing me from seeing those options. My data contained a very long coded value domain (over 100,000 choices representing street names in a city). This was slowing things down and causing multiple issues. I removed the domain and this solved the problem.
... View more
04-10-2023
12:46 PM
|
0
|
0
|
1650
|
IDEA
|
@EmilyGeo I don't have this option even though I am the owner and an administrator. When there is a view, I cannot add to the hosted feature layer fields that the view inherits from.
... View more
04-10-2023
12:23 PM
|
0
|
0
|
1653
|
IDEA
|
You can create this in AGOL today. Publish your data to AGOL as a hosted service Open in web map viewer CLASSIC Launch analysis and select Join Set up your join and be sure to check 'Store as hosted view' Save Your join is live and updating as your data updates. In Enterprise, you can create a View layer and publish that database view as a layer. If your data is pointing back to the source it will always be live.
... View more
04-06-2023
03:23 PM
|
0
|
0
|
310
|
IDEA
|
When a layer has a hosted view, you cannot add new values to a list. You can't edit the schema of the original layer at all (which is understandable), but I need to be able to add new values. For example, I have a layer that stores all of the trees I manage. However, some trees are for a specific city while others are for another. I would like to be able to share a city's trees back with them through a hosted view. Then when I get a new client, I can add their name in the City field list and create a new hosted view. Same for adding new fields - I would like to add a new field specific for that city. This way I can have a field crew managing trees around multiple cities but also share back to the city a dashboard showing progress. This is very important for my business workflow. Ultimately, I would like the ability to Add only to the schema when there is a hosted view.
... View more
04-06-2023
03:19 PM
|
6
|
7
|
1701
|
IDEA
|
This is incredibly important. In both Enterprise and Online, I want to be able to add a record to a table without the use of a desktop application, without having to import or overwrite data from outside the portal, and without having to set up and configure an App. I shouldn't even have to write a use case scenario for this because there are so many that come to mind. Here is one example: In a dashboard, I am calculating percent budget used. The overall fiscal budget and contract information for clients is stored in a table called Clients. This is TABULAR only, not spatial. I want to be able to add a record to this table when I get new clients. This is one step towards using GIS as an asset management solution.
... View more
04-06-2023
03:00 PM
|
0
|
0
|
1455
|
BLOG
|
I was inspired by your code. I am trying to take advantage of new data expressions in Dashboards to essentially denormalize a table of work history related back to a tree feature. I am having trouble with my code though - the performance is extremely slow. Any suggestions? // Get the related work orders
var includedFields = ['ServiceDate','StartDate','Status','completion_date','Price','Type','Client','TreeID'];
var includedTreeFields = ["Client","Tree","TreeID","BotanicalName","BotanicalID","CommonName","StreetNumber","StreetAddress","OnAddress","Parkway","Fictitious","OUL","Clearance","DBH","Maintenance","VisualCondition","VisualConditionNotes","RemovalPriority","HardscapeDamage","HardscapeDamageExtent","Date_Collected"]
var treeFS = FeatureSetByPortalItem(Portal('https://www.arcgis.com'), '12345',0,includedTreeFields,false)
var workFS = FeatureSetByPortalItem(Portal('https://www.arcgis.com'), '67890',2,includedFields,false)
var workFSFields = Schema(workFS).fields;
var treeFSFields = Schema(treeFS).fields;
var fieldsCombined = [];
for (var y in workFSFields){
Push(fieldsCombined,workFSFields[y])
}
for (var x in treeFSFields){
Push(fieldsCombined,treeFSFields[x])
}
var i = 0
var joinedDict = {
fields: fieldsCombined,
'geometryType': '',
'features':[]
};
var combinedAttributes = {};
for (var workFeature in workFS) {
var relatedTreeFeature = First(Filter(treeFS, "GlobalID = '" + workFeature.TreeID + "'"));
var workAttributes = Dictionary(Text(workFeature)).attributes;
var treeAttributes = Dictionary(Text(relatedTreeFeature)).attributes;
for (var field in workAttributes) {
combinedAttributes[field] = workAttributes[field];
}
for (var field in treeAttributes) {
combinedAttributes[field] = treeAttributes[field];
}
joinedDict.features[i]={
attributes: combinedAttributes
}
i++
}
return FeatureSet(Text(joinedDict));
... View more
03-29-2023
06:15 PM
|
2
|
0
|
2029
|
POST
|
I didn't see an option to post any sort of blog post anymore in the Community. I think they updated it recently... Not sure
... View more
03-24-2023
02:20 PM
|
0
|
1
|
2343
|
POST
|
It is returning the related data but as a featureset, you need to parse it out. See solution here: https://community.esri.com/t5/arcgis-online-questions/display-related-records-in-a-popup-in-a-nice-table/m-p/1271482#M51069
... View more
03-24-2023
02:19 PM
|
0
|
0
|
511
|
POST
|
You can have a scheduled notebook run your model as a python script routinely in AGOL or enterprise
... View more
03-24-2023
02:17 PM
|
0
|
0
|
976
|
POST
|
See posted solution here also: https://community.esri.com/t5/arcgis-online-questions/display-related-records-in-a-popup-in-a-nice-table/m-p/1271482#M51069
... View more
03-24-2023
02:17 PM
|
0
|
0
|
976
|
POST
|
To be clear, I don't have any issues with my script, just wanted to share for anyone out there in case it is useful. The 'Related Records' content type still requires you expand and drill down into a related record and you don't have much control over the configuration of what is displayed and how. This arcade script allows me to get all related record information, get the info I only care about from the related record table, and then display it in a nicely formatted html table.
... View more
03-24-2023
02:15 PM
|
1
|
3
|
2350
|
POST
|
My asset layers, like utilities or leases, etc. have the same fields in them over and over to denote buildings related to the asset. The fields represent the building names and I am storing a boolean value in the fields (y/n). If an asset is associated with a building I place a 'y'. This is probably not ideal, but it is how it is being done. I want to show a list of buildings in the pop up so I put together this functional arcade script. Sharing it here for others that might find it helpful. //Create list of fields that store Y/N for if a building is associated
var building_flds = ['Str_100', 'Str_101', 'Str_102']; //If new building fields are added, then add them to this list
var buildings = [];
//If a building has been marked as Yes, then add the alias to a concatenated list for display in the popup
for (var i in building_flds){
if ($feature[building_flds[i]] == 'Y') {
var aArray = Schema($layer)["fields"];
for(var j in aArray) {
var dict = aArray[j];
if (dict['name'] == building_flds[i]){
push(buildings,dict['alias']);
};
};
}
}
iif (Count(buildings)==0,push(buildings,'<em>None</em>'),buildings)
var Expression2 = concatenate(buildings, ", ")
... View more
03-21-2023
12:31 PM
|
0
|
1
|
558
|
POST
|
I have a table of related work history on a point asset layer. For each point representing an asset, there are multiple related records storing the work history. Here is the Arcade expression I used to display in the pop up. Note: This only works right now when set up as an Arcade Expression content type, rather than an arcade expression referenced in a Text content type. // Get the related work orders
var includedFields = ['Type','completion_date','real_price'];
var history = FeatureSetByRelationshipName($feature, 'relationshipName', includedFields);
if (count(history) > 0){
// Get the schema of the WorkOrders table
var woSchema = Schema(history);
// Get the fields from the schema
var fields = woSchema.fields;
// Define an array to store the table headers
var headers = [];
// Loop through the fields and add a header to the array for each one
for (var i in fields) {
var field = fields[i];
if(Includes(includedFields, field.name)) {
Push(headers,'<th style="border: 1px solid #ddd;padding: 8px;background-color: #eee;">' + field.alias + '</th>');
}
}
// Define the HTML table header row
var headerRow = '<tr style="border: 1px solid #ddd;padding: 8px;">' + concatenate(headers) + '</tr>';
// Define an array to store the HTML table rows
var rows = [];
// Loop through each related work order and add an HTML table row to the array
for (var i in history) {
var wo = i;
// Define an array to store the data for the current row
var rowData = [];
// Loop through the fields and add the value of each field to the rowData array
for (var j in fields) {
//Skip Object ID Field
if(fields[j].alias != 'OBJECTID_1') {
Push(rowData, '<td style="border: 1px solid #ddd;padding: 8px;">' + wo[fields[j].name] + '</td>');
}
}
// Concatenate the rowData array into a string with table data tags
var row = '<tr style="border: 1px solid #ddd;padding: 8px;">' + concatenate(rowData) + '</tr>';
// Push the resulting string into the rows array
push(rows, row);
}
// Define the HTML table using the header row and the rows array
var table = '<p><h3>Work History</h3></p><div><table style="font-family: arial, sans-serif;border-collapse: collapse;text-align: left;">' + headerRow + concatenate(rows) + '</table></div>';
// Return the HTML table
return {
type : 'text',
text : table //this property supports html tags
}
//return table;
} else {
return {
type : 'text',
text : '<p><h3>Work History</h3></p><p>No related work history</p>' //this property supports html tags
}
}
... View more
03-21-2023
12:22 PM
|
5
|
10
|
2456
|
BLOG
|
Is there a way to limit the spatial boundaries of collectible surveys to the geographic extent of a specific layer? For example, if I have a layer that has a single multi-part polygon that delineates qualifying areas, can I limit survey submissions to locations intersecting the feature(s) within a specific layer?
... View more
02-18-2022
11:13 AM
|
4
|
0
|
3302
|
Title | Kudos | Posted |
---|---|---|
2 | 03-29-2023 06:15 PM | |
6 | 04-06-2023 03:19 PM | |
1 | 03-24-2023 02:15 PM | |
5 | 03-21-2023 12:22 PM | |
4 | 02-18-2022 11:13 AM |
Online Status |
Offline
|
Date Last Visited |
12-12-2024
10:06 PM
|