You need to sign in to do that
Don't have an account?
Staci
record type on vf page not saving, defaulting to other record type
I have the following VF Pages, depending on the subscription record type its related to. The VF pages show the correct information. When the record is saved and I click on it, the record type is the opposite of what it should be. Do I need to created a separate class?
<apex:page standardController="Support_Subscription__c" extensions="MultiAd" id="thePage"> <script> sforce.connection.sessionId='{!GETSESSIONID()}'; function init(){ var result = sforce.connection.describeLayout('Support_Subscription__c'); //to do console.log(result); //parse this object to find picklist values for each record type } </script> <body onload="init();"> </body> <apex:form > <apex:pageblock id="pb" > <apex:pageBlockButtons > <!--<apex:commandbutton value="Add" action="{!Add}" rerender="pb1"/>--> <apex:commandbutton value="Save" action="{!Save}"/> </apex:pageBlockButtons> <!--<apex:pageblock id="pb1">--> <apex:repeat value="{!wrappers}" var="e1" id="therepeat"> <!--<apex:repeat value="{!lstInner}" var="e1" id="therepeat">--> <apex:panelGrid columns="10"> <apex:panelGrid headerClass="Name"> <!--<apex:facet name="header">Del</apex:facet> <apex:commandButton value="X" action="{!Del}" rerender="pb1"> <apex:param name="rowToBeDeleted" value="{!e1.recCount}" assignTo="{!selectedRowIndex}"></apex:param> </apex:commandButton>--> </apex:panelGrid> <apex:inputField id="Record_Type" value="{!e1.asset.Support_Subscription_Record_Type__c}" onchange="setValue('Subscription Purchase Agreement Assets')" rendered="false"/> <apex:panelGrid > <apex:facet name="header">Equipment/Registered Asset Licensed</apex:facet> <apex:inputfield value="{!e1.asset.Equipment_Asset_Licensed__c}" style="width:200px" /> </apex:panelGrid> <apex:panelGrid > <apex:facet name="header">Serial Number</apex:facet> <apex:inputfield value="{!e1.asset.Serial_Number__c}" style="width:95px"/> </apex:panelGrid> <apex:panelGrid > <apex:facet name="header">Site Location</apex:facet> <apex:inputfield value="{!e1.asset.Site_Location__c}" required="true"/> </apex:panelGrid> <apex:panelGrid > <apex:facet name="header">MineStar Product</apex:facet> <apex:inputfield value="{!e1.asset.MineStar_Product_Sub_Pur_Agr__c}" required="true" style="width:200px" /> </apex:panelGrid> <apex:panelGrid > <apex:facet name="header">Version</apex:facet> <apex:inputfield value="{!e1.asset.Version__c}" style="width:95px" /> </apex:panelGrid> <apex:panelGrid > <apex:facet name="header">Machine Count</apex:facet> <apex:inputfield value="{!e1.asset.Machine_Count__c}" required="true" style="width:95px" /> </apex:panelGrid> </apex:panelGrid> </apex:repeat> <!--</apex:pageBlock>--> </apex:pageblock> </apex:form> </apex:page>
<apex:page standardController="Support_Subscription__c" extensions="MultiAd" id="thePage"> <script> sforce.connection.sessionId='{!GETSESSIONID()}'; function init(){ var result = sforce.connection.describeLayout('Support_Subscription__c'); //to do console.log(result); //parse this object to find picklist values for each record type } </script> <body onload="init();"> </body> <apex:form > <apex:pageblock id="pb" > <apex:pageBlockButtons > <!--<apex:commandbutton value="Add" action="{!Add}" rerender="pb1"/>--> <apex:commandbutton value="Save" action="{!Save}"/> </apex:pageBlockButtons> <!--<apex:pageblock id="pb1">--> <apex:repeat value="{!wrappers}" var="e1" id="therepeat"> <apex:panelGrid columns="10"> <apex:panelGrid headerClass="Name"> </apex:panelGrid> <!------------------------------------------------------------------------------------------------------> <apex:inputField id="Record_Type" value="{!e1.asset.Support_Subscription_Record_Type__c}" onchange="setValue('Caterpillar Dealer Assets')" rendered="false"/> <apex:panelGrid > <apex:facet name="header">Equipment/Registered Asset Licensed</apex:facet> <apex:inputfield value="{!e1.asset.Equipment_Asset_Licensed__c}" style="width:200px" /> </apex:panelGrid> <apex:panelGrid > <apex:facet name="header">Serial Number</apex:facet> <apex:inputfield value="{!e1.asset.Serial_Number__c}" style="width:95px"/> </apex:panelGrid> <apex:panelGrid > <apex:facet name="header">Site Location</apex:facet> <apex:inputfield value="{!e1.asset.Site_Location__c}" required="true"/> </apex:panelGrid> <apex:panelGrid > <apex:facet name="header">MineStar Product</apex:facet> <apex:inputfield value="{!e1.asset.MineStar_Product_Cat_Deal_Sub__c}" required="true" style="width:100px" /> </apex:panelGrid> <apex:panelGrid > <apex:facet name="header">Version</apex:facet> <apex:inputfield value="{!e1.asset.Version__c}" style="width:100px"/> </apex:panelGrid> <apex:panelGrid > <apex:facet name="header">Machine Count</apex:facet> <apex:inputfield value="{!e1.asset.Machine_Count__c}" required="true" style="width:100px"/> </apex:panelGrid> </apex:panelGrid> </apex:repeat> <!--</apex:pageBlock>--> </apex:pageblock> </apex:form> </apex:page>
/* Class/Method Name: MultiAd Description: Created Subscription Assets related to Support Subscription Author/Date: Staci Gilmore 5/27/2020 */ public with sharing class MultiAd { private final Subscription_Assets__c ln; Public string ss; public List<AccountWrapper> wrappers{get;set;} private Integer nextIdent=0; public MultiAd(ApexPages.StandardController controller) { ss = ApexPages.CurrentPage().getparameters().get('id'); wrappers=new List<AccountWrapper>(); for(Integer idx=0; idx<1; idx++) { wrappers.add(new AccountWrapper(nextIdent++)); } } public List<Subscription_Assets__c> addlic {get; set;} public PageReference Save() { List<Subscription_Assets__c> addlic=new List<Subscription_Assets__c>(); Support_Subscription__c ssid = [select id, Name, RecordTypeId from Support_Subscription__c where id=:ss]; for(AccountWrapper wrap:wrappers) { Subscription_Assets__c lic = wrap.asset; lic.Support_Subscription__c = ssid.id; addlic.add(lic); } insert addlic; PageReference pageRef = ApexPages.currentPage(); pageRef.setRedirect(true); return pageRef; } public class AccountWrapper { public Subscription_Assets__c asset{get; private set;} public Integer ident{get; private set;} public AccountWrapper(Integer inIdent) { ident=inIdent; asset=new Subscription_Assets__c(); } } }