You need to sign in to do that
Don't have an account?

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>
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>