Just wanted to see if anyone has any opinions on a better way of achieving something.

The scenario is that I have an app used by volunteer Blood Bikers to record collections and deliveries of blood and samples etc. between hospitals.

So in essence it’s basically a standard logistics type app.

The current process is that a coordinator takes a call from a hospital and records the details with an initial Status of “Awaiting Allocation”.

They then call a Rider to allocate the job and they move the Status on to “Called Rider”.

When the Rider arrives at the hospital they edit the job and manually move the Status to Collected and obtain a collection name and signature and record the time of collection.

They do the same when they deliver the job.

This is time consuming as the whole record is displayed and they have to scroll down alot to find the name and signature fields and invariably they forget to change the status or even select the wrong status.

I’ve created a new version of the app which attempts to make the Collection and Delivery phase as simple and automated as possible for the Riders.

Up until the arrival of multiple actions this was difficult to achieve but now that you can run multiple actions, this is what I’ve come up with.

I’ll describe the Collection recording - Delivery is identical:

If Status = “Called Rider” an Action button is displayed called “Mark as Collected” This action carries out the following: 1 - Updates the Status to Collected - This in turn automatically updates the collection time as that is set as a Change Timestamp field. 2 - Loads a form with Quick edit fields for Collection Name and Signature.

Because they are quick edit fields as soon as they complete them the data is synced back a field at a time.

This is sort of OK and works, but one annoying thing is that when I load the form to collect the name and signature, this means that the status is now Collected because the first action has done that.

Because I have a similar action set up to deal with the delivery and that is set to display when Status = Collected, that now displays on the form whilst they’re still dealing with the Collection Name and Signature.

I’ve tried changing the order of the grouped actions so that I load the form first and get the name and signature but that means that the Mark As Collected action button is still showing and there is nothing to force the program flow to go to the Status Update action to mark the job as Collected when they’ve got the name and signature.

New job created by coordinator and status set to “Awaiting Allocation” or “Called Rider” as appropriate.

But status before the goods are actually picked up should be “Called Rider”.

At point where Rider collects the goods from the Hospital, I want to do the following to minimise the amount of input the Rider has to do: 1 - Set status of Job to “Collected” automatically 2 - Record collection time automatically 3 - Force the Rider to obtain collection name and signature and then save the record.

The same scenario happens when they get to the drop off location and the job needs to be recorded as “Delivered”

Been playing with options for nearly a year now to try and achieve this through combinations of Actions, Workflows, Required_If, Forms, Detail views etc. but nothing will work exactly how I want it to above.

BTW, Status has to be a real column in the data as I have lots of Google sheet pivot tables that use Status to filter what gets reported.

You could create two slices… one for collection and one for delivery. Then you could call those two slices with an action button with the deep link LINKTOVIEW. Instead of status field you could use virtual status and then you would not need to change the status manually. When the collction name & signature is filled, it will change the status automatically. With the slices you can control what fields it will show in your form. Though you could do the same with detail view as well.

Hmm… If the completion of the bulk of the form does not include the name and signature, you could use a slice to remove the name and signature from the main form. By removing them from the main form, their REQUIRED flags and Required_If formulas will be ignored for the main form, but will be enforced when the two columns are included in the slice to collect them. I’d expect.

There’s no reason the slice & form to collect name and signature couldn’t also include additional fields for informational purposes.

@David_Jones Unfortunately I’m ging round in circles now and can’t find any solid way of achieving what I need to do.

It doesn’t seem to matter what flow of logic I try, I can’t set the collection name and signature to required but only if the user is on the collection form.

Until the job status becomes Collected I can’t enforce a required_if conditon on collection name.

I can’t have Collection Name as Required in the main data because it would be required from the point that the job is created.

As far as I can see it does boil down needing a feature that is not currently available in Appsheet i.e. on a form or detail view (regardless of the source of the data) be able to specify not only which columns to display on the form and what order but also to make them required.

Alternatively, be able to use the name of the view in logic conditions i.e. In main data the required_if condition for collection name would be: AND([Status] = “Collected”,CurrentView = “Capture Collection Name”)

#1 - Create two slices & Form views, Collection and Delivery. #2 - Choose ID, CollectionTimestamp, CollectionName and CollectionSignature for the Collection slice #3 - Choose ID, DeliveryTimestamp, DeliveryName and DeliverySignature for the Delivery slice #4 - Both Timestamp fields are ChangeTimestamp fields where you check either CollectionSignature or DeliverySignature fields. #5 - Create an action, “ActionStatus” and trigger it with the “Event Action”. #6 - For the ActionStatus write the condition rule ISNOTBLANK([CollectionSignature]). This will take care that this event action won’t be triggered if there are no signatures… for example when the admin is generating the record. #7 - For the status value you would need to create a suitable formula what the action should write. It could be something like…

IF(ISBLANK([DeliverySignature]),“Collected”,“Delivered”) #8 - Create two different LINKTOFORM action buttons for your detail view where you can open the correct form view (correct slice).

Workflow! You want a workflow rule that updates the status once both name and signature have been collected. If you have change timestamps for both name and signature, you can trigger the workflow on row updates, and check whether both column timestamps have been updated.

You might want to reconsider the use of quick edit columns for name and signature, as they allow one but not both to be collected. Consider instead a form (slice) with only those two (visible) columns and make both columns required. Then you wouldn’t need to use workflow and could instead update the status as part of the form or using an attached action.