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
sfdeveloper12sfdeveloper12 

How to convert string in boolean or date in apex?

Hello,

I am using visualforce page and apex controller to update csv file in my salesforce org. My code is working for any text or picklist value. but not for checkbox, lookup or date field. As i am using string in my code i need some conversion. I have tried Date.valueOf() and Date.Parse() but its not show any data. My code is as below.

public class importDataFromCSVController {

    public importDataFromCSVController(ApexPages.StandardController controller) {

    }

 
  public Blob csvFileBody{get;set;}
  public String csvAsString{get;set;}
  public String[] csvFileLines{get;set;}
  public List<Guests_Delegate__c> gdlist{get;set;}

  public importDataFromCSVController(){
    csvFileLines = new String[]{};
    gdlist= New List<Guests_Delegate__c>(); 
  }
  
  public void importCSVFile(){
       try{
              // Read CSV file body and store it in variable
              csvAsString = csvFileBody.toString();
     
             // Split CSV String to lines
             csvFileLines = csvAsString.split('\n'); 
           
             // Iterate CSV file lines and retrieve one column at a time.
             for(Integer i=1; i < csvFileLines.size(); i++){
               Guests_Delegate__c gdObj = new Guests_Delegate__c() ;
               String[] csvRecordData = csvFileLines[i].split(',');
              // gdObj.Account__c= csvRecordData[0] ;             
              // 
              // gdObj.Occupancy__c= csvRecordData[2];
              
               gdObj.Allowances__c= csvRecordData[0];
               gdObj.Notes__c= csvRecordData[1];
              // gdObj.Booking__c= csvRecordData[2];
               gdObj.Number_Plate__c= csvRecordData[2];
               gdObj.Room_Type__c= csvRecordData[3];
               gdObj.Occupancy__c= csvRecordData[4];
               gdObj.Meal_Plan__c= csvRecordData[5];
               System.debug('gdObj.Meal_Plan__c'+gdObj.Meal_Plan__c);
               gdObj.Work_Phone__c= csvRecordData[6];
               
               //gdObj.Reconciled_by_Finance__c= Boolean.ValueOf('csvRecordData[6]');

            //  gdObj.Departure_Date__c=  Date.valueOf(csvRecordData[6]);
              // System.debug('Departure Date'+gdObj.Departure_Date__c);

               
              // gdObj.Sharing_With__c= csvRecordData[6];
            //   gdObj.Reconciled_by_Finance__c= csvRecordData[6];

                                                                                           
               gdlist.add(gdObj);   
             }
             // if all correct then insert Account into Org
             
             if(gdlist.size()>0)
               insert gdlist;
        }
        catch (Exception e)
        {


VF Page:
 <apex:page controller="importDataFromCSVController"  sidebar="false" showHeader="false">
    <apex:form >
        <apex:pagemessages />
        <apex:pageBlock >
            <apex:pageBlockSection columns="4"> 
                  <apex:inputFile value="{!csvFileBody}"  filename="{!csvAsString}"/>
                  <apex:commandButton value="Import G & D into Salesforce" action="{!importCSVFile}"/>
            </apex:pageBlockSection>
        </apex:pageBlock>
        <apex:pageBlock >
           <apex:pageblocktable value="{!gdlist}" var="gd">
              <apex:column value="{!gd.Allowances__c}" />
              <apex:column value="{!gd.Notes__c}" />
              <apex:column value="{!gd.Number_Plate__c}" />
              <apex:column value="{!gd.Room_Type__c}" />
              <apex:column value="{!gd.Occupancy__c}" />
              <apex:column value="{!gd.Meal_Plan__c}" />
              <apex:column value="{!gd.Work_Phone__c}" />
             
             


             <!-- 
              <apex:column value="{!gd.Reconciled_by_Finance__c}" />
              <apex:column value="{!gd.Departure_Date__c}" />

              <apex:column value="{!gd.Sharing_With__c}" />

              <apex:column value="{!gd.Booking__c}" />
              <apex:column value="{!gd.Id}" />
              <apex:column value="{!gd.Room_Type__c}" />
              <apex:column value="{!gd.Arrival_Date__c }" /> -->
              
        </apex:pageblocktable>
     </apex:pageBlock>
   </apex:form>
</apex:page>

Thanks & Regards,
Utkarsha
            ApexPages.Message errorMessage = new ApexPages.Message(ApexPages.severity.ERROR,'An error has occured while importing data into Salesforce. Please make sure input csv file is correct');
            ApexPages.addMessage(errorMessage);
        }  
  }
}
Waqar Hussain SFWaqar Hussain SF
You code is commented. please uncomment and try again. 
//gdObj.Reconciled_by_Finance__c= Boolean.ValueOf('csvRecordData[6]');
//  gdObj.Departure_Date__c=  Date.valueOf(csvRecordData[6]);

And what you are the string value in the excel for Departure Date and Reconciled by Finance. Can you share some sample values.