Instance name not showing in Inbox

742
2
03-30-2022 09:25 AM
SaraMiller
New Contributor III

This app was developed in Survey123 Connect using Template version 3.11, Revision date 22 September 2020.  The app went live in January 2021.

I have a couple of fields that are used in the instance name to identify records in the Inbox/Outbox/Drafts which quit working after an ESRI update back in March of 2021.  This only seems to happen on the mobile S123 app and not on the desktop S123 Field app.

The instance name is set up as:  ${AllLocations}+"/"+${AllBuildings}+": "+${E_BCS_Date}+" ("+${Version}+")"

The 'AllLocations' and 'AllBuildings' fields are Type = calculate & Calculations = coalesce(${NewLocation},${E_Location})  or  coalesce(${NewBuilding},${E_Building})

These 2 coalesced calculation fields are not nulled, nor do they have an alternate bind::esri:fieldType.

I use a similar collation formula in a different app but the Type = hidden or Type = text, and these work fine.

As this is used in a live app, I cannot change the field type of these calculate fields without losing data (if I could, I would change them to Type = text).  Is there some other work-around to get this instance name to work properly again so that the records can be distinguished in the Inbox/Outbox/Drafts?

Screenshots and XLSForm attached.

Many thanks,

Sara

0 Kudos
2 Replies
IsmaelChivite
Esri Notable Contributor

@SaraMiller  What a great survey! Use this syntax instead:

concat(${AllLocations},"/",${AllBuildings},": ",${E_BCS_Date}," (",${Version},")")

A few tips:

  • You have some large choice lists in the choices worksheet. This causes XLSForm validation to slow down in Survey123 Connect. If you move some of these large lists to a CSV, validation will be faster. Check Work with CSV data in ArcGIS Survey123  for details. The select_one_from_file option will be of particular interest to you I think. It is a relatively new addition that did not exist when you originally created the survey.
  • You have many hidden question types. Nothing wrong with them, but when you want to store their value as esriFieldTypDouble you need to specify that in a separate column.  Alternatively, you can change the type to decimal and then set the appearance to hidden. I think it is easier syntax and also keeps you data types consistent within the form and feature layer.
  • In row 574, 575, 628, 629, 682, 684, 736,737 you have one of these nested if statements that will get you crazy when you forget a comma. You may want to consider using pulldata(), like you do in line 36, to do a lookup search instead.
  • For line 34, you may want to use pulldata("@property",'status').

IsmaelChivite_0-1648660098939.png

 

0 Kudos
SaraMiller
New Contributor III

Hi @IsmaelChivite,

Thank you for the feedback.  I've changed the syntax as you suggested in a published test copy of the live app and I get the warning, "If you republish this survey all previously collected data will be lost" (see screenshot attached).  This is a risk I cannot take in making the same change and republishing the live app.  Why can't I change the instance name after an app is published without losing data?  Is there some other way to fix this?

I would have a similar problem if I tried to implement your second suggestion which involves either changing the field type or the bind::esri:fieldType, as this cannot be done by republishing a live app without losing data.

 

Kind regards,

Sara

0 Kudos