Tuesday, 18 April 2017

How to Get Field Properties in Apex

Map<String, Schema.SObjectType> schemaMap = Schema.getGlobalDescribe();

for (string objSource:schemaMap.keyset())
{
 Schema.SObjectType objectschema = schemaMap.get(objSource);
 Schema.DescribeSObjectResult objectdef=objectschema.getDescribe();
string objectlabel=objectdef.getlabel();
Map<String, Schema.SObjectField> FieldsMap = objectdef.fields.getMap();
system.debug('====================================');
system.debug('***Object Name****'+objectlabel);
for(String field : FieldsMap.keyset()){
    // skip fields that are not part of the object
   
      Schema.DescribeFieldResult dr = FieldsMap.get(field).getDescribe();
     if(dr.getFilteredLookupInfo() !=null)
{
       system.debug('***Lookup Filter ='+dr.getLabel());
        Schema.FilteredLookupInfo drlook=dr.getFilteredLookupInfo();
       //system.debug('***drlook****'+drlook);
        system.debug('***Optional= '+drlook.isOptionalFilter());
  }
  }
   
}

Wednesday, 5 April 2017

Thursday, 23 June 2016

How to get the unique url for salesforce in apex

String Str =Site.getBaseUrl();
which will give the full base url both in CRM and community 

Tuesday, 21 June 2016

How to convert negative to positive value and how to format it to string in VF page

How to convert negative to positive value and how to format it to string in VF page

ex : ProjectEC.Review_Est__c = -10
Output : (10.00)



<apex:outputText value="{0, number, 0.00}" rendered="{!ProjectEC.Review_Est__c >= 0}">
        <apex:param value="{!ProjectEC.Review_Est__c }"/>
</apex:outputText>
<apex:outputtext rendered="{!ProjectEC.Review_Est__c < 0}">
(
     <apex:outputText value="{0, number,0.00}" rendered="{!ProjectEC.Review_Est__c < 0}">
     <apex:param value="{!(ProjectEC.Review_Est__c ) * -1.00}"/>
     </apex:outputText>
)
</apex:outputtext>

Wednesday, 15 June 2016

How to generate unique random number using apex

 This will generate hexa decimal unique random number.
 
 
String hashString = '1000' + String.valueOf(Datetime.now().formatGMT('yyyy-MM-dd HH:mm:ss.SSS'));
Blob hash = Crypto.generateDigest('MD5', Blob.valueOf(hashString));
String randomUniquesessionId = EncodingUtil.convertToHex(hash);
system.debug('random Unique session Id:' + randomUniquesessionId);
 
Source : https://developer.salesforce.com/forums/?id=906F0000000AX9RIAW
 
 
 

Monday, 13 June 2016

Jquery date range picker for apex VisualForce pages

$(document).ready(function(){
            $('[id*="dateRange1"]').datepicker({
              defaultDate: new Date(),
              changeMonth: true,
              numberOfMonths: 1,
              onClose: function( selectedDate ) {
                var date2 = $('[id*="dateRange1"]').datepicker('getDate');
                if(date2!=null){date2.setDate(date2.getDate()+1);}
                $('[id*="dateRange2"]').datepicker( "option", "minDate", date2 );
              }
            });
            $('[id*="dateRange2"]').datepicker({
              defaultDate: new Date(),
              changeMonth: true,
              numberOfMonths: 1,
              onClose: function( selectedDate ) {
                //$('[id*="dateRange1"]').datepicker( "option", "maxDate", selectedDate );
              }
            });
});


HTML 
<apex:inputText id="dateRange1" html-placeholder="From" value="{!startDate}" style="margin-right:10px"/>
                        <apex:inputText id="dateRange2" html-placeholder="To" value="{!endDate}" />

Isues with jquery event handlers not working after re-render in salesforce.

Solution: Re-initialize your jquery event handlers in the oncomplete attribute of the rerendering apex:component.

Eg: function initializeDatePickers(){
            $("#dateRange1"]').datepicker({
              defaultDate: new Date(),
              changeMonth: true,
              numberOfMonths: 1,
              onClose: function( selectedDate ) {
                var date2 = $('[id*="dateRange1"]').datepicker('getDate');
                if(date2!=null){date2.setDate(date2.getDate()+1);}
                $('[id*="dateRange2"]').datepicker( "option", "minDate", date2 );
              }
            });
            $("#dateRange2"]').datepicker({
              defaultDate: new Date(),
              changeMonth: true,
              numberOfMonths: 1,
              onClose: function( selectedDate ) {
                //$('[id*="dateRange1"]').datepicker( "option", "maxDate", selectedDate );
              }
            });
        }

        //Do this on first page load.       
        $(document).ready(function(){          
            initializeDatePickers();           
        });

//Execute  initializeDatePickers after oncomplete as shown below.
<apex:commandButton styleclass="" id="resetBtn" value="Reset" action="{!reset}" reRender="myForm" oncomplete="initializeDatePickers();" />