function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Kranthi Kumar 118Kranthi Kumar 118 

Apex:action function is not working when i used Json string from object

Hi All,

I'm using a VF page to generate a JSON string which i used in another page to render the required fields, but when i take this json from object apex:actionfunction component is not working, when i save this json as static resource it's working, could you please help me in finding the issue.

Json created from VF Page:
{
  "WorktypevalueDependentValidation" : [ {
    "value" : "PO",
    "fields" : [ {
      "visible" : "true",
      "required" : "true",
      "Name" : "PO_Number__c",
      "editable" : "true"
    }, {
      "visible" : "true",
      "required" : "false",
      "Name" : "Company_code__c",
      "editable" : "true"
    } ]
  }, {
    "value" : "NonPO",
    "fields" : [ {
      "visible" : "false",
      "required" : "true",
      "Name" : "PO_Number__c",
      "editable" : "true"
    }, {
      "visible" : "true",
      "required" : "false",
      "Name" : "Company_code__c",
      "editable" : "true"
    } ]
  } ],
  "fields" : [ {
    "visible" : "true",
    "required" : "true",
    "Name" : "Name",
    "editable" : "true"
  }, {
    "visible" : "true",
    "required" : "true",
    "Name" : "Process__c",
    "editable" : "true"
  }, {
    "visible" : "true",
    "required" : "true",
    "Name" : "WorkType__c",
    "editable" : "true"
  }, {
    "visible" : "true",
    "required" : "true",
    "Name" : "Document_Type__c",
    "editable" : "true"
  }, {
    "visible" : "true",
    "required" : "true",
    "Name" : "Priority__c",
    "editable" : "true"
  }, {
    "visible" : "true",
    "required" : "true",
    "Name" : "Current_state__c",
    "editable" : "true"
  }, {
    "visible" : "true",
    "required" : "true",
    "Name" : "Invoice_Date__c",
    "editable" : "true"
  }, {
    "visible" : "true",
    "required" : "true",
    "Name" : "Invoice_number__c",
    "editable" : "true"
  }, {
    "visible" : "true",
    "required" : "true",
    "Name" : "Amount__c",
    "editable" : "true"
  }, {
    "visible" : "true",
    "required" : "true",
    "Name" : "Vendor_Name__c",
    "editable" : "true"
  }, {
    "visible" : "true",
    "required" : "true",
    "Name" : "Company_code__c",
    "editable" : "true"
  }, {
    "visible" : "true",
    "required" : "true",
    "Name" : "ERP_System__c",
    "editable" : "true"
  }, {
    "visible" : "true",
    "required" : "true",
    "Name" : "Image_Name__c",
    "editable" : "true"
  }, {
    "visible" : "true",
    "required" : "true",
    "Name" : "Created_date__c",
    "editable" : "true"
  }, {
    "visible" : "true",
    "required" : "true",
    "Name" : "User_Action__c",
    "editable" : "true"
  } ]
}



Json saved as Static resource :

{
    "fields": [{
            "Name": "Process__c",
            "visible": "true",
            "required": "false",
            "editable": "true"
        },
        {
            "Name": "Worktype__c",
            "visible": "true",
            "required": "false",
            "editable": "true"
        },
        {
            "Name": "Document_type__c",
            "visible": "true",
            "required": "false",
            "editable": "true"
        },
        {
            "Name": "Priority__c",
            "visible": "true",
            "required": "false",
            "editable": "true"
        },
        {
            "Name": "Current_state__c",
            "visible": "true",
            "required": "false",
            "editable": "false"
        },
        {
            "Name": "Invoice_date__c",
            "visible": "true",
            "required": "false",
            "editable": "true"
        },
        {
            "Name": "Invoice_number__c",
            "visible": "true",
            "required": "false",
            "editable": "true"
        },
        {
            "Name": "PO_Number__c",
            "visible": "false",
            "required": "false",
            "editable": "true"
        },
        {
            "Name": "amount__c",
            "visible": "true",
            "required": "false",
            "editable": "true"
        },
        {
            "Name": "Vendor_Number__c",
            "visible": "true",
            "required": "false",
            "editable": "true"
        },
        {
            "Name": "Vendor_address__c",
            "visible": "true",
            "required": "false",
            "editable": "true"
        },
        {
            "Name": "Company_code__c",
            "visible": "true",
            "required": "false",
            "editable": "true"
        },
        {
            "Name": "ERP_system__c",
            "visible": "true",
            "required": "false",
            "editable": "true"
        },
        {
            "Name": "Image_name__c",
            "visible": "true",
            "required": "false",
            "editable": "false"
        },
        {
            "Name": "Created_date__c",
            "visible": "true",
            "required": "false",
            "editable": "false"
        },
        {
            "Name": "User_Action__c",
            "visible": "true",
            "required": "false",
            "editable": "true"
        }
    ],
    "WorktypevalueDependentValidation": [

        {
            "value": "PO",
            "fields": [{
                    "Name": "PO_Number__c",
                    "visible": "true",
                    "required": "true",
                    "editable": "true"
                },
                {
                    "Name": "Company_code__c",
                    "visible": "true",
                    "required": "false",
                    "editable": "true"
                }
            ]
        },
        {
            "value": "NonPO",
            "fields": [{
                    "Name": "PO_Number__c",
                    "visible": "false",
                    "required": "true",
                    "editable": "true"
                },
                {
                    "Name": "Company_code__c",
                    "visible": "true",
                    "required": "false",
                    "editable": "true"
                }
            ]
        }
    ]

}

VF page rendering the above JSON:

<apex:page standardController="ProflowCase__c" extensions="NewFieldsetextentionclass" lightningStylesheets="true" sidebar="false" showHeader="false">

    
            <script>
    /*     function start(){
                   alert("yeah");
          document.getElementById("worktypeID").addEventListener("change", addActivityItem, false);
          }
    
        function addActivityItem(){
                  //option is selected
                  alert("yeah");
            }
            
            window.addEventListener("load", start, false); */
                
            </script>
 
    
    <div id="Imagesectiondiv" style="width:60%;float:left">
        <apex:pageBlock id="Imagesection" >
            <apex:repeat value="{!ProflowCase__c.attachments}" var="att">
                <h5>{!att.name}</h5>
                <apex:iframe src="{!URLFOR($Action.Attachment.Download,att.id)}"/>
            </apex:repeat>
        </apex:pageBlock>
    </div>
    
    <div id="casedetais section" style="width:40%;float:right">
    <apex:form id="Proflowform">     
        <apex:actionRegion id="Pageblock1">   
            <apex:pageBlock title="case Details">
                <apex:pageBlockSection columns="1">
                    <apex:repeat value="{!jsonvalidationlist}" var="fff" id="repeatblock">
                        <div id="worktypeIDgf">
                        <apex:inputField value="{!ProflowCase[fff.name]}" rendered="{!IF(AND(fff.visible=="true",fff.editable=="true",fff.name=="Worktype__c"), true, false)}" id="worktypeID" onchange="callactfn()" required="{!IF(fff.required=="true",true,false)}"/> 
                        </div>    
                        <apex:inputField value="{!ProflowCase[fff.name]}" rendered="{!IF(AND(fff.visible=="true",fff.editable=="true",fff.name!="Worktype__c"), true, false)}"/>   
                        <apex:inputField value="{!ProflowCase[fff.name]}" rendered="{!IF(AND(fff.visible=="true",fff.editable=="false",fff.name!="Worktype__c"), true, false)}" html-disabled="true"/>
                          
                    </apex:repeat>
                  </apex:pageBlockSection>
                <apex:pageBlockButtons location="bottom">
                    <apex:commandButton action="{!save}" value="Save"/>
                </apex:pageBlockButtons>
                <apex:actionFunction action="{!worktypechangemethod}" name="callactfn" rerender="Proflowform"/>
            </apex:pageBlock>   
        </apex:actionRegion>
    </apex:form>
    </div>    
</apex:page>