Select to view content in your preferred language

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

67
1
Thursday
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 Reply
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?

0 Kudos