• Kalyan G.
  • NEWBIE
  • 45 Points
  • Member since 2016

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 1
    Likes Given
  • 1
    Questions
  • 1
    Replies
Dunno what's wrong here .. the first selectList is returning value where as the second one is not. The second selectList values are dependent on 1st selectList. And it works, but the second selectList returns a NULL.

In the code below, the "selSubReason" returns NULL.

VF Page:
<apex:page controller="callThisController" title="My Page">
	<apex:form id="theForm">
		<apex:pageBlock mode="maindetail">
			<apex:pageBlockSection columns="1">
	        	<apex:pageBlockTable value="{!wrappers}" var="wrapper">
	        		...
	        		<apex:column headerValue="List 1">
	                    <apex:selectList id="Rsn" size="1" value="{!wrapper.selReason}">
	                    	<apex:actionSupport event="onchange" action="{!checkReason}" reRender="SubRsn"/>
	                    	<apex:selectOptions value="{!wrapper.lstReason}" />
	                    </apex:selectList>
                    </apex:column>
                    <apex:column headerValue="List 2">
                    	<apex:outputPanel id="SubRsn">
		                    <apex:selectList size="1" value="{!wrapper.selSubReason}" rendered="{!wrapper.rndrSRsn}">
		                    	<apex:selectOptions value="{!wrapper.lstSubReason}" />
		                    </apex:selectList>
	                    </apex:outputPanel>
                    </apex:column>
	        		...
	        	</apex:pageBlockTable>
	        </apex:pageBlockSection>
        </apex:pageBlock>
    </apex:form>
</apex:page>

Cntroller:
public with sharing class callThisController {

    public List<LineWrapper>  wrappers {get;set;}

    public callThisController() {

        wrappers = new List<LineWrapper>();
        myItems = [SELECT myString,........ FROM my_custom_object__c];
        for(my_custom_object__c it : this.myItems)
        {
            wrappers.add(new LineWrapper(myString));

        }
    }//cntrl

    public void checkReason(){
        
        for (LineWrapper wrap : wrappers) 
        {
            wrap.rndrSRsn = false;
                if (wrap.selReason == 'Reason 1')
                {
                    wrap.lstSubReason = new List<SelectOption>();
                    wrap.lstSubReason.add(new SelectOption('','-- Select Return SubReason --'));
                    wrap.lstSubReason.add(new SelectOption('Sub Reason 10','Sub Reason 10'));
                    wrap.lstSubReason.add(new SelectOption('Sub Reason 11','Sub Reason 11'));
                    wrap.rndrSRsn = true;
                }

                if (wrap.selReason == 'Reason 2')
                {
                    wrap.lstSubReason = new List<SelectOption>();
                    wrap.lstSubReason.add(new SelectOption('','-- Select Return SubReason --'));
                    wrap.lstSubReason.add(new SelectOption('Sub Reason 20','Sub Reason 20'));
                    wrap.lstSubReason.add(new SelectOption('Sub Reason 21','Sub Reason 21'));
                    wrap.rndrSRsn = true;
                }

                if (wrap.selReason == 'Reason 3')
                {
                    wrap.lstSubReason = new List<SelectOption>();
                    wrap.lstSubReason.add(new SelectOption('','-- No Return SubReason --'));
                    wrap.rndrSRsn = false;
                }

                if (wrap.selReason == 'Reason 4')
                {
                    wrap.lstSubReason = new List<SelectOption>();
                    wrap.lstSubReason.add(new SelectOption('','-- Select Return SubReason --'));
                    wrap.lstSubReason.add(new SelectOption('Sub Reason 40','Sub Reason 40'));
                    wrap.lstSubReason.add(new SelectOption('Sub Reason 41','Sub Reason 41'));
                    wrap.rndrSRsn = true;
                }
            } 
        }
    }//checkReturnReason
    
    public class LineWrapper
    {
        public Boolean rndrSRsn{get;set;}
        public String myString{get;set;}
        public List<SelectOption> lstReason{get;set;}
        public List<SelectOption> lstSubReason{get;set;}
        public String selReason{get;set;}    // <= This retuns correct value
        public String selSubReason{get;set;} // <= This returns NULL

        public LineWrapper(String myString)
        {
            rndrSRsn = false;
            
            this.wrapString = myString;
            this.lstSubReason = new List<SelectOption>();
            this.lstSubReason.add(new SelectOption('','-- No SubReason --'));

            lstReason = new List<SelectOption>();
            lstReason.add(new SelectOption('','-- Select Return Reason --'));
     	    lstReason.add(new SelectOption('Return 1','Reason 01'));
            lstReason.add(new SelectOption('Return 1','Reason 02'));
            lstReason.add(new SelectOption('Return 1','Reason 03'));
            lstReason.add(new SelectOption('Return 1','Reason 04'));
        }//contructor
    }//LineWrapper
}//cls


 
I am trying to deploy a flow with ant migration tool but I am not ablo to do.
 
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
	<fullName>MyPackage</fullName>

	
	<types>
		<members>BE_Addendum_Creation_2017-17</members>
		<name>Flow</name>
	</types>
	<version>38.0</version>
</Package>

This is the package.xml (I try to deploy  version 17)
and the error :
[sf:retrieve] Waiting for server to finish processing the request...
[sf:retrieve] Request Status: Pending
[sf:retrieve] Request Status: Succeeded
[sf:retrieve] Retrieve warnings (1):
[sf:retrieve] package.xml - Entity of type 'Flow' named 'BE_Addendum_Creation_2017-17' cannot be found
[sf:retrieve] Finished request 09S7E000000aeKSUAY successfully.

BUILD SUCCESSFUL
Total time: 12 seconds