Select to view content in your preferred language

Can 200.6 parse this arcade expression that launches Survey 123 (in a browser)?

150
2
Jump to solution
01-16-2025 10:48 AM
Labels (3)
Mike_Quetel
Frequent Contributor

I've been handed a web map that includes Arcade logic to build a link to launch survey 123 (in a browser) from a feature's popup.  Arcade is a bit of blind spot for me, so I am hoping I can get some feedback concerning if 200.6 has the necessary parsing and expression handling to evaluate this script (below).  

Thank you in advance!

(all URLs and GUIDS have been modified to protect the innocent)

 

//query the survey layer to see if a survey exists using the UIC ID
var survey = FeatureSetByPortalItem(Portal('https://www.some_domain.com/portal'),'3a9166a153ab451666715815d606904f',0, ['uic_id', 'globalid'])

var id = Text($feature.uicid)
var query = "uic_id = " +  "'"+ id + "'"
Console(query)
var result = Filter(survey, query)

//if there is a matching survey, send a link to edit, otherwise send a link to a new survey
if(Count(result)>= 1) {
 
    var edit_link = "https://survey123.arcgis.com/share/7b1aeio44a204416b819a60ad3e4c8b4?portalUrl=https://www.some_domain.com/portal&"
    var globalId ="mode=edit&globalId=" + StandardizeGuid((First(result).globalid),'digits-hyphen')
    var full_edit_link = edit_link + globalId
    var edit_link_expression = '<a>A survey for this UIC ID already exists</a><br><a href="' +full_edit_link + '">Edit Existing Survey</a>' 

    return {
      "type": "text",
      "text": edit_link_expression    
    }
} 
else 
{
    var link = "https://survey123.arcgis.com/share/7b1aeio44a204416b819a60ad3e4c8b4?portalUrl=https://www.some_domain.com/portal"
    var uicId = "&field:uic_id=" + $feature.uicid 
    var siteAdd ="&field:site_address=" + $feature.siteAddress 
    var deqId = "&field:deq_id=" + $feature.DEQID 
    var unitId = "&field:unit_id=" + $feature.unitID 
    var hansenProjNumber = "&field:hansen_project_number=" + $feature.projectNumber
    //get location
    var location = "&location=" +Geometry($feature).Y +"," +Geometry($feature).X

    var fullLink = link + uicId + siteAdd + deqId + unitId + hansenProjNumber +location
    var link_expression = '<a>Create a new Survey</a><br><a href="' +fullLink + '">Launch Survey123</a>'

     return {
        "type": "text",
        "text": link_expression
    }
}

 

 

0 Kudos
1 Solution

Accepted Solutions
PreetiMaske
Esri Regular Contributor

I believe this should work, I don't see anything in the script that can't be handled by Arcade Evaluation support in native SDKs. Did you run into any issue?

View solution in original post

2 Replies
PreetiMaske
Esri Regular Contributor

I believe this should work, I don't see anything in the script that can't be handled by Arcade Evaluation support in native SDKs. Did you run into any issue?

Mike_Quetel
Frequent Contributor

I haven't attempted to implement it yet... was more inquiring about obvious red flags before going through the process of building this out.  Appreciate your feedback!

0 Kudos