Nov 05 2021 11:50 AM
I'm working in my tenant and noticed an issue with all of my lists that have content approval turned on. The approval status column now lists a number instead of the words "Approved" | "Rejected" | "Pending" I see 0 | 1 | 2.
I've created a new list and the words show up fine... but as soon as I turn on column formatting the words turn to numbers...
Nov 07 2021 11:21 PM
@Jeff_Lacarte Are you applying JSON formatting on Approval status column?
If yes, this is the reason column showing values differently because SharePoint saves approval status column values based on the SPModerationStatusType Enum.
Can you show us the JSON code you are using to format list/column?
Please click Mark as Best Response & Like if my post helped you to solve your issue. This will help others to find the correct solution easily. It also closes the item. If the post was useful in other ways, please consider giving it Like.
Nov 08 2021 06:02 AM
I was using JSON formatting yes, and it was working fine all week. It seems to have changed on me suddenly. The screenshot in provided is from a brand new list that had no formatting applied. I turned on column formatting and as soon as I did that even without creating a rule the enum shows it's value instead of it's text. Below is a gif of reproducing the issue on a brand new list. Sorry, it's fast, I wanted to keep the size down.
Nov 08 2021 06:46 AM - edited Nov 08 2021 06:48 AM
Fixed it with a workaround, but it's still an issue. I can't be expected to use a workaround for every list that I need to apply conditional formatting to the approval status column.
By going into advanced mode to work with the formatting JSON directly I could see:
"txtContent": "[$_ModerationStatus]"
"txtContent": "@currentField.displayValue"
As for why this happened? I have no idea. This is a workaround for now.
Nov 09 2021 09:39 AM - edited Nov 09 2021 09:50 AM
This problem suddenly started for me today on all libraries where there is formatting on the Approval Status column. The problem is not resolved by turning off the column formatting. When I turn off the column formatting, now instead of a number the Approval Status column is blank. I had to go then into the Advanced link and delete the json code, which should already disappear when I turned off the column formatting. I don't see any other info on this issue except for your post, but surely this must be occurring due to some Microsoft change. (My Approval Status columns have been formatted for over a year and I have made no recent changes to my site or libraries.) @Jeff_Lacarte
Nov 09 2021 10:15 AM
@TonieB Thank you for confirming that you have the same problem. I suspected it might have been a MS change behind the scenes.
I encourage others to try testing a new list with content approval turned on and try adding column formatting on the Approval Status column. I suspect you will have the same results as TonieB and I. It would be helpful too if others post their results here.
TonieB, if your JSON formatting isn't terribly complex, I would try copying it into an editor like VS Code and do a find and replace on: [$_ModerationStatus] to @currentField.displayValue. That should at least get you back up and running as a workaround for now.
Nov 09 2021 12:36 PM
Nov 09 2021 08:39 PM
Nov 10 2021 05:03 AM
Nov 10 2021 07:55 AM
Nov 10 2021 08:53 AM
Nov 10 2021 09:46 AM
Nov 10 2021 06:02 PM
Same issue for us. We changed the json formatting to refer to "ModerationStatus" instead and this looks ok. HOWEVER when a search term is entered, all results are showing "Rejected" instead of their true status. Microsoft, fix it please!
Nov 11 2021 03:02 AM
Nov 12 2021 12:28 AM
We have the same issue with impact to the whole list.
The Approval Status formatting was used in our lists also for the other columns in the same list, however, the formatting is not working with the number "0" and also not for the word "Approved".
It is really a pity because it was really nice and simple feature to see the approval status in the first column. I hope that @Pernille-Eskebo will solve this issue.
Nov 14 2021 11:57 PM
Nov 15 2021 11:10 AM
Nov 15 2021 09:08 PM - edited Apr 17 2023 05:59 AM
Solution@Jeff_Lacarte @nfsg20 @DavidLang @Amiryunus @Stephen Bayliss @aricornish @YeBuu @mcancela @Duncan2450 @Gavin Tully @TonieB
This is happening because of recent change in JSON schema to officially support Approval Status column in JSON formatting.
Due to this update, the @currentField and [$_ModerationStatus] will resolve to internal code (enum value) and @currentField.displayValue and [$_ModerationStatus.displayValue] will resolve to the localized string (I guess according to language).
The Microsoft official docs will be updated with more info in the coming weeks. You can check the details for now at: SharePoint Online Column Formatting for Approval Status: uses language specific text?
Related Read: How to find the Internal name of columns in SharePoint Online?
Please consider giving a Like if my post helped you in any way. For SharePoint/Power Platform blogs, visit: Ganesh Sanap Blogs
Nov 16 2021 05:21 AM
Nov 16 2021 05:32 AM
@ganeshsanap thanks for the info and finding this. Further to @TonieB 's comments, the wording of the change makes it seem like it only affects those who elected to use a specific field in custom JSON formatting for a very specific purpose. However the fact is this breaks Out-of-the-box formatting found in SharePoint; the field that was changed is the field that was used by OOB formatting and thus the field that everyone used to further customize if they used their own JSON formatting. Because it's what was used internally!
Here is an example: as soon as you turn on Conditional formatting you can see the approval status immediately change to the number '2'. This is OOB behavior, no custom formatting in place. They've broken their own code with this change.