How to comment your code or keep old expressions without executing them

I'm working on an old, large, undocumented, app that I've been asked to improve and evolve with some new functionalities. I'm treading carefully among the large number of slices and virtual columns, so in every part I'm touching I keep the existing formulas in place along with my new ones. This has been immensely beneficial. 

Since there's no #,  // or /* */ equivalent in AppSheet to keep some code in place without it being executed, I'm using this simple method to keep both codes in place.

I hope you find this useful. Happy AppSheeting! 

1. Replacing Code:

IF( TRUE,
  My new code ), 
  Old code )
)

2. Removing Code:

In case I just want to remove the existing code without replacing it with a new one. This would depend on the field:

2.1 Boolean Fields:

Like Valid If, Show?, etc.  I use this:

OR( TRUE,
  Old code )
)

2.2 All other fields:

IFS( FALSE,
  Old code )
)

2.3 Limitation - App Formula:

There is NO safe method to keep unused expressions in the App Formula field without replacing them with a new one. So while (1.  Replacing Code) is OK, (2. Removing Code) is not.

Therefore, I copy the old expression and put it in the Initial Value field instead, with some indication that this code used to be in App Formula. Like this:

IFS( FALSE,
  "*** The code below used to belong to App Formula ***" &
  Old code )
)

In case the Initial Value field already has some code, I use the first method, like this:

IF( TRUE,
  Working Initial Value expression ),
  "*** The code below used to belong to App Formula ***" &
  Old code )
)

Update - Here's a real-life example:

Capture d’écran 2022-05-20 à 17.58.48.png

12 11 1,808
11 REPLIES 11

These are useful suggestions Joseph, in the absence of commenting the code that is not yet possible with AppSheet. Thank you.

Thanks my friend!

Here's a freshly-produced real-life example:

Capture d’écran 2022-05-20 à 17.58.48.png

How can a scripting language not have a comment character? Wouldn't you fix that in

rel 1.001?

Does Excel? Excel is what AppSheet's expression language is based on.

Actually....There is a way with Excel 😉

Aurelien_1-1724770052656.png

https://support.microsoft.com/en-us/office/n-function-a624cad1-3635-4208-b54a-29733d1278c9

The N() expression with Excel returns a zero when using a text in the parameters, so it turns not visible when the result expected is a number.

Something similar with AppSheet would be nice though !

1 + NUMBER("This is a comment.")

Thanks @Steve , you are a champion. Love that 😄

Brilliant hack.

To my original point; wouldn't it be to Google's credit (broadly conceived - you're big enough not to need to complete for market share... 🤔(unfortunately?)) to reach for excellence rather than... "well - Microsoft didn't bother to do it, why should we?"

If not for revenue, perhaps pride.

Can this workaround be used in complex IFS() expressions? I'm trying to make it work, but keep getting errors. Clarification on usage and placement would be very helpful. Specifically, should it be placed before or after each IFS condition? Also, will this only work on numeric column types vs. text or boolean?

You have to use a benign expression that produces a value of the appropriate type.

  • ([any integer type] + NUMBER("This is a comment."))

  • ([any decimal type] + DECIMAL("This is a comment."))

  • OR([Yes/No], ISBLANK("This is a comment."))

  • ([any textual type] & LEFT("This is a comment.", 0))

  • ([either list type] + TOP({"This is a comment."}, 0))

For example:

 

IFS(
  (USERROLE() = ("Admin" & LEFT("Only admin users get all access.", 0))),
    ("ALL_CHANGES" & LEFT("ADDS, DELETES, and UPDATES", 0)),
  IN(USERROLE(), ({"User"} + TOP({"User can only add rows."}, 0))),
    "ADDS_ONLY",
  OR(TRUE, ISBLANK("Everone else.")),
    "READ_ONLY"
)

 

Ugly, but "commented".

Top Labels in this Space