POST
|
Awesome, glad it's solved on your end.Thanks for sharing what worked for you! I'll keep playing around with the search query and hopefully find something that works. If I find what the issue is, I'll be sure update this thread. All the best!
... View more
06-26-2023
07:41 AM
|
0
|
0
|
459
|
POST
|
Nice! Glad you have it working for you. Did you just use a similar syntax as the following? search('example_search?url=<REST url>/FeatureServer/3', 'contains', 'parentglobalid', '${parentglobalid}') Unfortunately I still can't get it to work on my end. Whether contains or matches is used as the operator, when calling the parentlgobalid dynamically from a field, it still returns every record from that table as opposed to just the records that truly match the parentglobalid.
... View more
06-22-2023
11:08 AM
|
0
|
2
|
475
|
POST
|
Hey there. Unfortunately not ☹️ Thankfully in my case, we changed the attendance workflow so generating a dynamic list based on relationship classes was no longer needed. Trying to figure out how to get the search() function working when calling a field so it can be dynamic is still on the list for me to look into further though. Feel free to copy any of the text or images here if you'd like to start your own post in the forums. Someone out there has to know the solution!
... View more
06-22-2023
10:50 AM
|
0
|
0
|
476
|
POST
|
Hey all, Hoping someone can help figure out why the search() function isn't working as documented. Overview I have a hosted feature layer that contains a parent table with event details, and a child table which has attendees that can be recorded for that event via a repeat. I'm trying to put together a search query that can generate a list of attendees for a specific event based on parentglobalid's. Looking at the documentation for the search() function, an example query was the following: search('csvName', 'matches', 'breed', ${DogQuestion}) I put together a very similar query as follows (except I call the related table instead of a csv): search('example_search?url=<REST url>/FeatureServer/3', 'matches', 'parentglobalid', ${parentglobalid}) The searchColumn "parentglobalid" is the name of the field in the related table, and the searchText of ${parentglobalid} refers to a question in the survey that stores the parentglobalid. In theory, this should work however it returns a list of all records from the attendance field instead of just the ones that match the parentglobalid: To check that this search query is correct, I replaced ${parentglobalid} with an actual value for a parentglobalid in the feature layer and this worked as expected - only attendees for that specific event were returned: search('example_search?url=<REST url>/FeatureServer/3', 'matches', 'parentglobalid', '57ad118f-bcb0-41a1-8268-c2d2b7f79512') It seems the search() function only works when the searchText is a string enclosed in quotes (static), however the documentation shows that it can reference a field (dynamic) but that's not working in my case. Troubleshooting Attempts The things I've tried are the following (none of them worked): Create a separate text question that stores the parentglobalid a second time and call that in the search() function In that separate text question, ensure the parentglobalid is a string and call that in the search() function In that separate text question, enclose the parentglobalid with quotation marks ( concat("'", ${parentglobalid}, "'") ) and call that in the search() function Call a completely irrelevant field as the serachText value which still returns the entire list Have a separate calculate question that stores the ensure search() function and have the appearance call that calculated value Have a separate calculate question that stores the body of the search() function and have the appearance call the calculate within the search function (e.g., search(${search_body}) Hopefully I'm missing something straightforward and this is a quick fix. Or maybe it's not possible to run the search() function using parentglobalid's, however it just doesn't seem to want to work when calling a field dynamically. Any help or advice would be much appreciated!
... View more
03-08-2023
11:09 AM
|
0
|
6
|
553
|
POST
|
Hey all, Hoping someone can help troubleshoot why the search() function isn't working as documented for me. Overview I'm trying to put together a simple search() query for a question that returns attendees but only for a specific event. The attendance list is a child table and I'm aiming to have the search function return attendees based on the parent event point selected. Referring to the documentation for search(), the following example was given: search('csvName', 'matches', 'breed', ${DogQuestion}) I set up a very similar query (though instead of a csv, it was pointing to the related table in the feature layer): search('table_example?url=<url>/FeatureServer/3', 'matches', 'parentglobalid', ${parentglobalid}) However, this returns the entire attendance list instead of just those that match the parentglobalid . The list should only show First1, Last1; First2, Last2; etc. When manually entering the parentglobalid of a test event however, it returns the expected results. search('table_example?url=<url>/FeatureServer/3', 'matches', 'parentglobalid', '57ad118f-bcb0-41a1-8268-c2d2b7f79512') This returns the proper list of attendees for that example event. It seems that the search() function wants the searchText parameter to be enclosed in quotes (' ') , however the documentation has it calling a specific field. Troubleshooting Attempts I tried creating a secondary field to contain the parentglobalid as a string (though the original field was a text question type already), having that field calculate to put the parentglobalid in quotes (concat("'", ${parentglobalid}, "'")), and even tried calling a completely different field not related to the searchColumn, but those all returned the entire list. Any help would be much appreciated! Hopefully I'm just missing something obvious.
... View more
03-08-2023
09:56 AM
|
0
|
0
|
220
|
POST
|
Hey Diego, The method outlined in this thread has been working for me. Essentially, copy and paste this regular expression in the constraints column of the email question. regex(., '^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\u0400-\uffff\-0-9]+\.)+[a-zA-Z\u0400-\uffff]{2,}))$') As a disclaimer, I have very little knowledge of regular expressions and not sure if the one above would also work for "non-standard" email formats. However for the emails utilized in my survey, they all seem to work. Vince
... View more
03-08-2023
09:34 AM
|
1
|
0
|
563
|
POST
|
Hey all, I have a question regarding a workflow that I'm hoping to implement for a survey. Details below. Overview I'm putting together surveys for a multi-day event. Day 1 is in class theoretical training and Day 2 is on site assessment. An important note is that attendance between both days can be slightly different. There are various surveys that pertain to this. Currently I have it set up so that the parent layer has high level event details (location, date, team being assessed, etc.). Any forms related to the event (e.g., attendance, assessment forms) all live as child relates to the parent event. The question I have is regarding the post-event reporting process. For folks that attend Day 2 and pass assessment (the entire team either passes or fails), a certificate is to be generated both for the team and the individual. Attendance is recorded via a repeat and as attendance can be slightly different between both days, I would need to be able to query information for folks that attended only Day 2 for reporting. In the attendance repeat, there is a section to record days they were present for which I'm hoping to leverage for this: Questions Conceptually, steps required to generate certificates would be to check the result of the assessment form. If the team passed, then query from the attendance repeat those team members that were present on Day 2, and finally generate reports for each individual. However, I'm not sure how to execute this is. What would be the best way to achieve this workflow? Can I query records in a repeat based on a field and then use that for reporting? Utilize indexed-repeat() maybe (though it seems you can only use the function once per formula)? Is a potential solution to create a separate related table used exclusively for generating reports which populates based on attendance for day 2, then can be used if the team passed assessment for reports? Should I be re-thinking the whole attendance workflow? Any advice or feedback would be much appreciated!
... View more
03-06-2023
10:34 AM
|
0
|
0
|
371
|
POST
|
Hey all, Reaching out to hopefully gather some design advice for a form that I need to digitize. It's a fairly simple one, but before getting to deep into the process, I thought I'd check with the community to see if there's a better way to design this. Overview The form lists equipment, specifications, required quantity, and a checkbox if it was found. In the S123 version, I'm hoping to replicate this, but replace the checkbox with an integer field so the quantity found can be stated. Excerpt of the paper form is as follows: Current Progress I looked at various methods and using dynamic-grid seemed to be the best path. I thought of using table-list but it didn't seem right. I was able to replicate the form in S123 and it looks like the following: It is working as expected, however the method I utilized to recreate that requires 4 rows per question. Form Details The "Tools and Trailer Accessories" groups is created with appearance of w6 Below that are three note questions to serve as column headers (Description, Quantity Req., Quantity Found) set as w4, w1, and w1 respectively. For each item, the four rows present are the following: Note that contains the description (label) and the specifications (hint) set to w4 Note that contains the quantity required (label) set to w1 Integer question for user input to indicate the quantity found Calculate question to check if the quantity found is equal to or greater than the quantity required. This returns the emoji placed in front of the description for visual indicators and can also be used for summary purposes at the bottom of each group. Thanks to @DougBrowning for that great workflow which can be found HERE. An XLSForm excerpt is attached for reference. Question Is there a better way to design this form using different styles or question types? Or is the way that I started designing it an acceptable solution? Thanks in advance!
... View more
02-17-2023
10:02 AM
|
0
|
0
|
353
|
POST
|
That helps a lot! Great to know I wasn't too far off track, and the note about considering QA fixes in web maps that don't utilize form calculations is a fantastic point. Thanks so much for you time and advice Doug. Much appreciated 🙂
... View more
02-15-2023
12:51 PM
|
1
|
0
|
754
|
POST
|
I just read through it and that's a great technique! Thanks for sharing that. Will definitely incorporate the emojis for each question to give instant feedback which answers the piece I didn't have a process for yet. I'm still hoping that there is a way I don't know of to summarize a group of select_one questions to do the final summary check at the bottom, but at least I have a method (though inefficient) that works at this time. Thanks again @DougBrowning !
... View more
02-15-2023
12:37 PM
|
1
|
2
|
761
|
POST
|
Hey all, I'm putting together a survey that's digitizing an existing paper form and hoping to get advice to build in live feedback for the user, in addition to general survey formatting advice. Overview In essence the survey is really simple. It's an equipment checklist where the user just has to check if equipment is present or not (this isn't an inspection, just an inventory check). If any equipment is missing, that inspection is flagged. An excerpt of the survey can be found as attached to the post. Though simple on paper, I'm hoping to add value using S123. Ideal vision is to have a warning message display if equipment is missing or a success message if all equipment is accounted for. Additionally, I'd love to have any equipment missing be highlighted (or at least have a font color change) in the form to clearly identify what is missing. Current Progress Survey Format As I don't believe we can do single checkboxes in S123, I have the checklist currently setup as a group with appearance table-list. Each checklist item is a select_one yes_no question which accomplishes something similar. I believe this is the best formatting choice for this type of survey, but I'm not entirely sure. Please note that I've added a genericized XLSForm so anyone taking time to look at this (thank you!) can better see and experience what's currently implemented. Warning/Success Message I have accomplished the warning/success message portion, but not in an efficient way at all. Hopefully I'm missing a function to make this easy. Essentially what I did was to create a text question (will be hidden) that concatenates all answers of the checklist questions as comma separated values. I also have an integer question (also to be hidden) that counts all the of the questions answered as the success message should appear if all equipment is present (i.e., marked as yes) and all checklist questions are answered. For the warning message, I have a note that appears if the value of 'no' is present in that text question. Relevant expression: contains(${question_tally}, 'no') For the success message, I have a note that appears if the value of 'no' is not present in the text question, and, the count of questions answered equals the total number of equipment questions (8 questions in this example). Relevant expression: contains(${question_tally}, 'no')=false and ${question_count}=8 This works, however the calculation I have to to concatenate and count answers for each question which is far from efficient. E.g., concat(${question_1}, ',', ${question_2}, ',', ${question_3}, ',', ...) count-selected(${question_1}) + count-selected(${question_2}) + count-selected(${question_3}) + ... Is there a better way to achieve this? Maybe completely changing the survey format from select_one with table-list appearance something with select_multiple and using count-selected() or something similar? Note the XLSForm is attached in this post. Highlighting Responses of 'No' With respect to the vision of highlighting/changing font color for responses that are no, is there a way to add an expression in one of the columns to change its appearance when "no" is selected? The other option I can think of is adding a note below each question and having an appropriate "relevant" expression for each note if that question is answered "no". However if there is a better workflow for this, I'm all ears! Questions Regarding the summary message - is there a better way to go about this than the method I have used? Either a function I'm missing or a completely different method that I haven't thought of/researched? Regarding highlighting questions answered no - is there an established workflow for this such as adding an expression in a column that changes appearance based on the answer? Or is the solution I presented one of the better options? Regarding the survey itself, is the format chosen appropriate for this survey, or should I re-design it to better match the functionality I'm hoping to implement? Any and all suggestions are welcome and appreciated! Thanks
... View more
02-15-2023
10:44 AM
|
0
|
4
|
854
|
POST
|
Thank you for your response Jen! Always helps getting a fresh set of eyes. You're right - I believe I was over-complicating things as your workflow seems like it will do the trick. The one design feature I'm hoping to implement with this is to have every survey related to the event (there will be about 6), all be related tables from the parent spatial point. Thus, anytime survey data for that specific event needs to be pulled, all can be accessed by selecting the point for the event on a map in a dashboard or experience. As such, I believe having the initial attendance as a repeat to create a related table, then having a dashboard facilitate editing for day two and assessment values could be the way to go. Though again, if I'm overcomplicating things and making more work than necessary, I would really appreciate your insight 🙂 Thanks again.
... View more
02-09-2023
03:14 PM
|
0
|
0
|
356
|
POST
|
Thanks for your reply @VanessaSimps! That did point me in the right direction. I did have a feeling that the "feature layer" was created either via the visualization tab or some function in Map Viewer Classic that didn't get ported over to the new Map Viewer (like joins unless that has been added). I was able to re-create the feature layer as follows: In the Visualization tab of the parent hosted feature layer (HFL), making any changes (e.g., adding filters, changing symbology, altering pop-ups, etc.) and then hitting the main "Save" button will save the default values for that HFL whenever it's added to a new map. This was something I utilize often, but does not create a new layer. What does create the "feature layer" which links to the parent layer but is not a view layer, is the option available via the overflow menu (. . .) for the parent layer in question in either the visualization tab or a map viewer. By clicking "Save As" in the overflow menu and following the prompts, the end result is a feature layer tied to the parent layer, and is very likely the same process that was used to create the layer in the question I initially posed. Thanks again for your help Vanessa!
... View more
02-09-2023
03:06 PM
|
1
|
1
|
493
|
POST
|
Hey all, I have a question about a dataset that was created before I was onboarded and it's got me confused! Overview Essentially there is a parent hosted feature layer (HFL). Let's call it "Food". From it, there is a hosted view layer, let's say "Fruits". However there is also another layer created from that parent layer which is a feature layer, let's say "Veggies". Whenever the parent HFL is updated, both the hosted view and feature layers are updated, however I have no idea how the feature layer (veggies in this example) was created. Screenshots Parent HFL The parent HFL shows up as a hosted feature layer as expected. Hosted View Layer The hosted view layer also shows up as a hosted view layer as expected. It also references the parent HFL in the details pane. Feature Layer This is where I get confused! This "feature layer" is tied to the parent HFL. So when the parent gets updated, this feature layer also gets updated. However I have no idea how this was created. It just shows up as a "feature layer" All that is found on the details pane is the following: The only way I can tell that it's connected to the parent HFL (apart from seeing the updates) is checking the REST services directory for the item and seeing that it refers to the parent HFL. This isn't causing any functionality issues, but it just bothers me that I have no idea how it was created! Question Since this feature layer is tied to the parent hosted feature layer, but it's not a hosted view layer, how was this feature layer created? Was it created using an old workflow that is now outdated/not available (e.g., some kind of workflow related to Collector)? Some other "view layer-esque" function that I'm not aware of? Any context/information would be greatly appreciated! Thanks
... View more
02-08-2023
02:55 PM
|
0
|
3
|
659
|
POST
|
Hey all, I'm about to start on a S123 project to support a multi-day event (two days) and one of the components I don't have a solid workflow yet is for recording and managing attendance between the two days. Overview The first day will consist of an in-class training session. In the form, day one attendance can be represented as a repeat. No problem! The second day will be practical training from day one learnings. The catch here is that the attendance list for day two has potential to be slightly different. Either some folks from day 1 may not be able to attend, or new folks will attend for day two. Additionally, one of the later workflows is to create certificates for attendees on the second day that passed assessment, so being able to query folks present on day two is essential. Current Thoughts My current thoughts are to set up a repeat (thus a related table) for day one attendance. For day two however, I'm thinking a potential method could be adding in another repeat for day two (so a second related table), then having the questions in the repeat be selection questions that pull information from the day one attendance table via autocomplete search() while also offering the option to add new attendees. The main issue I can see with that however is if the full list of attendees from day 1 is presented for every repeat via pulldata(), attendees could potentially be recorded twice as I don't think the list would filter out those who have already been recorded. Maybe a select_multiple and just have names as comma separated values would be the way to go? Questions Essentially, the overall question I have is: what's the best practice to go about managing attendance for multiple days where the majority of attendees for day two would likely be the same, though could be different? Could I maybe have just one related table and then add fields for each day with a value of "Yes" or "No" based on attendance (e.g., field of day_1 with domain Yes/No; field of day_2 with domain Yes/No)? If so, what would that workflow look like? Alternative ideas? Thanks in advance!
... View more
02-08-2023
01:38 PM
|
1
|
2
|
386
|
Title | Kudos | Posted |
---|---|---|
1 | 03-08-2023 09:34 AM | |
1 | 02-15-2023 12:37 PM | |
1 | 02-15-2023 12:51 PM | |
1 | 02-09-2023 03:06 PM | |
1 | 02-08-2023 01:38 PM |
Online Status |
Offline
|
Date Last Visited |
12-01-2023
03:08 PM
|