Forum Discussion
JSON format broken?
- Nov 16, 2021
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?
Similar thread: Approval Status Column Suddenly Numeric - Due to Column Formatting?
Related Read: How to find the Internal name of columns in SharePoint Online?
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.
For SharePoint/Power Platform blogs, visit: Ganesh Sanap Blogs
ganeshsanap Jordaromera Thanks, I am not as skilled in JSON as i would like to be, so can you help with my code? The code i was using was as below. What would it change to, to meet the requirements of the new Moderationstatus changes?
"visibility": {
"operator": "?",
"operands": [
{
"operator": "==",
"operands": [
"[$_ModerationStatus]",
"Pending"
]
},
"visible",
"hidden"
]
}
Hey WorkflowIQ thanks for pointing me to this thread and thanks ganeshsanap for the reply above, worked perfectly and no way I would have figured it out.
It would be helpful if Microsoft planned to have the documentation updated for when the change is pushed out....
Anyway, WorkflowIQ if you just replace [$_moderationStatus] with [$_moderationStatus.displayValue] in your code you should be good to go. That worked for me.
Thanks again for the heads up!
- WorkflowIQNov 16, 2021Copper Contributor
Danie365 . I found this post also which details how the issue happened.
https://github.com/SharePoint/sp-dev-docs/issues/7513
- WorkflowIQNov 16, 2021Copper Contributor
Danie365 Thanks.
I agree. It looks like Microsoft added a feature that someone requested, and broke something that already worked. Changing [$_moderationStatus] with [$_moderationStatus.displayValue] didn't work for me for some reason. It may be something simple i have missed, as i have been staring at this code for days.... The column still is not showing for files where the Approval Status is "Pending".
Can you please take a quick look to see if you can see something i have done wrong?
{ "$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json", "elmType": "button", "customRowAction": { "action": "executeFlow", "actionParams": "='{\"id\": \"' + if([$ReviewInProgress]=='','xxxxxxxx',if([$ReviewInProgress]=='No','xxxxxxxxx',' ')) + '\"}'" }, "txtContent": "=if([$ReviewInProgress]=='Approval','Sent for Approval','Send for Approval')", "style": { "background-color": "=if([$ReviewInProgress]=='Approval','Orange','Green')", "color": "white", "border-radius": "20px", "border-style": "solid", "border-color": "white", "border-width": "4px", "visibility": { "operator": "?", "operands": [ { "operator": "==", "operands": [ "[$_moderationStatus.displayValue]", "Pending" ] }, "visible", "hidden" ] } } }- Danie365Nov 16, 2021Brass Contributor
Hey WorkflowIQ, try this...
{ "$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json", "elmType": "button", "customRowAction": { "action": "executeFlow", "actionParams": "='{\"id\": \"' + if([$ReviewInProgress]=='','xxxxxxxx',if([$ReviewInProgress]=='No','xxxxxxxxx',' ')) + '\"}'" }, "txtContent": "=if([$ReviewInProgress]=='Approval','Sent for Approval','Send for Approval')", "style": { "background-color": "=if([$ReviewInProgress]=='Approval','Orange','Green')", "color": "white", "border-radius": "20px", "border-style": "solid", "border-color": "white", "border-width": "4px", "visibility": "=if(([$_moderationStatus.displayValue] == ‘Pending’),’visible’,’hidden’)" } }- WorkflowIQNov 17, 2021Copper Contributor
Danie365 Thanks for the help, i really appreciate it. I still can't get it to work though. I pasted your code exactly, just adding my correct flow id, and replacing the single quotes (as they paste a different character if copying from here). Do you have any other suggections on what could be wrong? Thanks again, screenshot below.