• Carolina Ruiz Medina
  • SMARTIE
  • 863 Points
  • Member since 2014
  • Principal Developer, Product Innovation
  • FinancialForce


Badges

  • Chatter
    Feed
  • 8
    Best Answers
  • 2
    Likes Received
  • 2
    Likes Given
  • 5
    Questions
  • 92
    Replies
I need to delete a Wave Dataset(s) but I can't do that because the dataset is associated with a Dataflow.

Thus, I need to delete the Dataflow; however, I'm unable to do so??

There are no instructions for doing so and one unable to upload a blank json file to replace the existing Datflow?

I need help with this specifically, since the datasets put me over my storage limit and prevent completion of other Trailhead trainings.  However, more generally there should be a simple delete Dataflow function, as other users have mentioned.
Hi All,
I'm submitting my package to AppExchange Security Review and I've a doubt…
I need check the Fields Level Security in Test class also?
Thanks!


 
Hi,

I've created a custom objects and I need that Standard Users can read it.
The solution is to clone Standard Users Profile and make a custom profile, but the custom object is inside managed packages and will be in appexchange in the future, so... how I can modify read permissions at object?

Thanks
 

I'm following a well written tutorial written by @andymahood__c: http://www.tquila.com/blog/2014/11/17/setting-lightning-connect-and-your-first-external-object

When I get to the step #3 ... "Select Edit on the CustomerID field, ...", I don't see Account (or any objects to relate) listed in the drop down box. I have created the custom field on ACCOUNT named CusotmerID Text(5) and marked it as External ID as follows:

CustomerID CustomerID__c Text(5) (External ID) [Checked]

Any ideas?
Create an Apex class that returns an array (or list) of strings: 
Create an Apex class that returns an array (or list) of formatted strings ('Test 0', 'Test 1', ...). The length of the array is determined by an integer parameter.The Apex class must be called 'StringArrayTest' and be in the public scope.
The Apex class must have a public static method called 'generateStringArray'.
The 'generateStringArray' method must return an array (or list) of strings. Each string must have a value in the format 'Test n' where n is the index of the current string in the array. The number of returned strings is specified by the integer parameter to the 'generateStringArray' method.

MyApexClass to above Challenge:

public class StringArrayTest {
    
    public static List<string> generateStringArray(Integer n)
    {
        List<String> myArray = new List<String>();
        
        for(Integer i=0;i<n;i++)
        {
            myArray.add('Test'+i);
            System.debug(myArray[i]);
        }
        return myArray;
        
    }


It's compile and execute as per requirement in Developer console. But Traihead showing the below error:

Challenge not yet complete... here's what's wrong: 
Executing the 'generateStringArray' method failed. Either the method does not exist, is not static, or does not return the proper number of strings.

Anyhelp would be greatly appreciated. Thanks.
 
Dear all,

I had to have my laptop re-built this week so I've had to re-install Eclipse and the Force.com IDE plug-in. I'm suddenly finding multiple problems:
  • Project Credentials keep getting forgotten, so projects won't refresh
  • Project Refreshes keep erroring with long java looking error messages
  • I can't save my work, I get the error "Unable to open Apex Code Editor - Reason: null argument:"
I've also experienced issues since the move to the tooling API in version 31, but those existed before the re-install, so I don't know if they'd be related.

Is anybody else experiencing problems?

With thanks,
Andy
trigger trgr_Case_CaseCommentLock on CaseComment (before Update, before Delete) {
   
    List<Profile> currentUserProfile = new List<Profile>();
   
    currentUserProfile =
        [SELECT Name FROM Profile WHERE Id = :UserInfo.getProfileId() LIMIT 1];
   
    if(
        !currentUserProfile.isEmpty() &&
        currentUserProfile[0].Name != 'System Administrator'
    )
        if(trigger.isDelete)
            for(CaseComment cm : trigger.old)
                cm.addError('You cannot Delete a Case Comment!');
        else
            for(CaseComment cm : trigger.new)
                cm.addError('You cannot Edit a Case Comment!');       
}




I have tried some thing but not worked.

the code which i have tried...

@isTest
public class Test_CaseComments{

public static testMethod void main(){

//List<profile> Li = [SELECT Name FROM Profile WHERE Id = :UserInfo.getProfileId() LIMIT 1];
CaseComment cs = New CaseComment ();

        cs.name = 'TestOne';
        cs.Status = 'Open';  (picklist type)
        cs.Description = 'Test Case for test';
        cs.Origin = 'Annuity External'; (picklist type)
        cs.Type = 'Feature Request'; (picklist)
        cs.Business_Impact__c = 'No Impact';
        cs.Priority = 'Low'; (picklist)
     
        insert cs;
}
  • March 25, 2014
  • Like
  • 0
List<Contact> accounts=[SELECT Email FROM Contact WHERE AccountId ='001i000000g7erl' ORDER BY Email ASC NULLS FIRST LIMIT 3];
list<Id> emailid=new list<id>(); 
for(id acc: Email)
{
acc.emailid[Email];
}
wat is worng in this can u explain me im new to apex code
I would like to ask you about Auth Provider:

I have a Registration Handler in a DE org linked to my Auth provider, it is working correctly and allowing the external users to register.

Now I decided to pass it to my sandbox, I created a new Auth provider, with the new reg handler. The code is the same.

The url is something like: https://test.salesforce.com/services/auth/sso/xxxxxxxxx/myAuthProvider

(in the dev org was something like https://login.salesforce.com/services/auth/sso/xxxxxxxxx/myAuthProvider)

Checking if there is a user for the email and if not create a new one with Community User profile ( High Volume Customer Portal - the org has licenses for it) .

-If there is no user that match the email a new one is created.

-If there is that is returned.

IN both cases the registration is not working in the Sandbox

However if I go to my DE org where I have the same structure created ( Auth provider + reg handler) it is working.

Code , Profiles , licenses are the same.

Here it is a example of the code ( when I say sample is because I reduce it to the simple case , no validations or checks are on it at the moment)
global class RegHandler implements Auth.RegistrationHandler{

global boolean canCreateUser(Auth.UserData data) {
    return false;
}

global User createUser(Id portalId, Auth.UserData data){


    String profileName = 'Community User';

    List<Profile> profiles = [SELECT Id, Name, UserType FROM Profile WHERE Name = :profileName];

    Profile profile = profiles.isEmpty() ? null : profiles[0];

    if(profile==null)
        throw new RegHandlerException('Could not find the profile');

    List<User> users = [SELECT Id,Email,Username,FirstName,LastName,Alias,CommunityNickname,ProfileId,
        ContactId,LocaleSidKey,LanguageLocaleKey,TimeZoneSidKey,EmailEncodingKey FROM User WHERE  Email = :data.Email and IsActive=true]; // Standard: to exclude Guest user (etc?)Profile.UserType = 'CspLitePortal' and Name='Carolina Ruiz Medina'];// 
    User user = users.isEmpty() ? null : users[0];

    if(user==null)
    {
        List<String> emailComponents = data.email.split('@');
        String nickname = data.attributeMap.get('display_name');
        Contact ct = new Contact(
            LastName = data.LastName,
            AccountId =  '00119000002uozp');
        upsert ct;

        user = new User(
            Email = data.email,
            Username = emailComponents[0] + '@ffcommunity.com',
            Alias = emailComponents[0].left(8),
            CommunityNickname = nickname,
            ProfileId = profile.Id,
            FirstName = data.firstName,
            LastName = data.lastName,
            LocaleSidKey = data.locale,
            LanguageLocaleKey = data.attributeMap.get('language'),
            TimeZoneSidKey = 'Europe/London',
            EmailEncodingKey  = 'ISO-8859-1',
            contactId = ct.Id

        );

    }
    return user;
}

global void updateUser(Id userId, Id portalId, Auth.UserData data){
    User u = new User(id=userId);
    u.email = data.email;
    u.lastName = data.lastName;
    u.firstName = data.firstName;
    update(u);
}



class RegHandlerException extends Exception {}
}


I know that the orgs that will connect with the sandbox will be also in test.salesforce.com server. ( like before the orgs connecting to my DE org where the Auth provider is working were DE orgs too)

Then in summary when I try to registre/log using auth provider URL is alwayws giving me the error:AuthorizationError?ErrorCode=NO_ACCESS&ErrorDescription=User+was+a+portal+user

Any help would be much appreciated. 

( The question is also here: http://salesforce.stackexchange.com/questions/48326/auth-provider-authorizationerrorerrorcode-no-accesserrordescription-userwas) 
I have a "readOnly" field by layout in a Chatter Action-Update, It works in browser no when it is used in @Salesforce1 bug/no bug?

What do you think? I understand that you will put in the layout only the fields that you want to allow the user to update... but maybe you would like to have more info.

However , once again, it makes sense to have only the ones that you will allow to update... but then.... why does the chatter action work in browser and no in Salesforce1????

Ideas? Opinions ? 
Hi all,
Do you know if there is a way at this moment to create multiple links to a multiple records in a single chatter post? 
I think there is no way at the moment, whithout workaround ( VFpage...) 

What do you think? 


Thanks!!

Hello Community,
I would like to ask you if you have issues with the Debug Log before and today?

I had an org where my debug log doesn't work at all, and today suddently in an org where it was working doesn't work anymore!  ( I'm so sad believe me :P )

The thing is , I can't set filters, exceptions are not recorded ... basically I can't debug. I cleaned the cache already, deletes the debug log and re created it, created and used it for another user and no luck today.

Did you have this issue before?

Any ideas are much appreciated.

Thank you very much.

Hi,
I'm trying to test the new feature of Spring '14 , where we are allowed to delete components from a manage package ( delete more than before! ) .
In my development organization I created a simple small package that has 1 custom object ( with 2 custom fields) and 1 cusmtom label. Released to managed release version. After that, try to delete one of the fields, or the label or even the custom object is not possible. However the documentation is telling me the opposite.. might be I'm doing something wrong... any ideas are welcome! :)

Thanks a lot!

Some info:
I was having a look to the parts:
Deleting Components in Managed Packages , Protected Components ( my custom label is protected)
https://gus.salesforce.com/help/pdfs/en/salesforce_packaging_guide.pdf

http://help.salesforce.com/HTViewHelpDoc?id=viewing_deleted_components.htm&language=en_US (http://help.salesforce.com/HTViewHelpDoc?id=viewing_deleted_components.htm&language=en_US)

---- from the guide ---
You can delete the following types of components when updating a previously released managed package in a development
organization.
• Custom Buttons or Links
• Custom Fields
• Custom Objects
• Custom Tabs
• Field Sets
• Record Types
• Validation Rules
I would like to ask you about Auth Provider:

I have a Registration Handler in a DE org linked to my Auth provider, it is working correctly and allowing the external users to register.

Now I decided to pass it to my sandbox, I created a new Auth provider, with the new reg handler. The code is the same.

The url is something like: https://test.salesforce.com/services/auth/sso/xxxxxxxxx/myAuthProvider

(in the dev org was something like https://login.salesforce.com/services/auth/sso/xxxxxxxxx/myAuthProvider)

Checking if there is a user for the email and if not create a new one with Community User profile ( High Volume Customer Portal - the org has licenses for it) .

-If there is no user that match the email a new one is created.

-If there is that is returned.

IN both cases the registration is not working in the Sandbox

However if I go to my DE org where I have the same structure created ( Auth provider + reg handler) it is working.

Code , Profiles , licenses are the same.

Here it is a example of the code ( when I say sample is because I reduce it to the simple case , no validations or checks are on it at the moment)
global class RegHandler implements Auth.RegistrationHandler{

global boolean canCreateUser(Auth.UserData data) {
    return false;
}

global User createUser(Id portalId, Auth.UserData data){


    String profileName = 'Community User';

    List<Profile> profiles = [SELECT Id, Name, UserType FROM Profile WHERE Name = :profileName];

    Profile profile = profiles.isEmpty() ? null : profiles[0];

    if(profile==null)
        throw new RegHandlerException('Could not find the profile');

    List<User> users = [SELECT Id,Email,Username,FirstName,LastName,Alias,CommunityNickname,ProfileId,
        ContactId,LocaleSidKey,LanguageLocaleKey,TimeZoneSidKey,EmailEncodingKey FROM User WHERE  Email = :data.Email and IsActive=true]; // Standard: to exclude Guest user (etc?)Profile.UserType = 'CspLitePortal' and Name='Carolina Ruiz Medina'];// 
    User user = users.isEmpty() ? null : users[0];

    if(user==null)
    {
        List<String> emailComponents = data.email.split('@');
        String nickname = data.attributeMap.get('display_name');
        Contact ct = new Contact(
            LastName = data.LastName,
            AccountId =  '00119000002uozp');
        upsert ct;

        user = new User(
            Email = data.email,
            Username = emailComponents[0] + '@ffcommunity.com',
            Alias = emailComponents[0].left(8),
            CommunityNickname = nickname,
            ProfileId = profile.Id,
            FirstName = data.firstName,
            LastName = data.lastName,
            LocaleSidKey = data.locale,
            LanguageLocaleKey = data.attributeMap.get('language'),
            TimeZoneSidKey = 'Europe/London',
            EmailEncodingKey  = 'ISO-8859-1',
            contactId = ct.Id

        );

    }
    return user;
}

global void updateUser(Id userId, Id portalId, Auth.UserData data){
    User u = new User(id=userId);
    u.email = data.email;
    u.lastName = data.lastName;
    u.firstName = data.firstName;
    update(u);
}



class RegHandlerException extends Exception {}
}


I know that the orgs that will connect with the sandbox will be also in test.salesforce.com server. ( like before the orgs connecting to my DE org where the Auth provider is working were DE orgs too)

Then in summary when I try to registre/log using auth provider URL is alwayws giving me the error:AuthorizationError?ErrorCode=NO_ACCESS&ErrorDescription=User+was+a+portal+user

Any help would be much appreciated. 

( The question is also here: http://salesforce.stackexchange.com/questions/48326/auth-provider-authorizationerrorerrorcode-no-accesserrordescription-userwas) 
I have the same problem with webmaster@lincolncity-culturalcenter.org.  I started enrolling in all the education about SalesForce 
Displaying Json data in page block table but problem is it's more than 500 records so i want some pagination.
Like after clicking next button it should display rest of records


/////////////////////////////////////////////////Visualforce Page\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
<apex:tab label="DemoMail Sent" name="name3" id="tab3">        
<apex:repeat value="{!performcallout}" var="wraps">
<apex:pageBlockTable value="{!wraps.GroupData}" var="wrap" width="100%">
<apex:column headerValue="Subject" value="{!wrap.Subject}"/>
<apex:column headerValue="Video Title" value="{!wrap.SessionTitle}"/>
<apex:column headerValue="Sent Date" value="{!wrap.SentDate}"/>
<apex:column headerValue="Recipients" value="{!wrap.NoOfContacts}"/>
<apex:column headerValue="Opens" value="{!wrap.OpenTimes}"/>
<apex:column headerValue="Viewed" value="{!wrap.ViewedTimes}"/>
</apex:pageBlockTable>
</apex:repeat>
    </apex:tab>

//////////////////////////////////////////////Controller\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

public class demomailsent{
  public List<demomailsentwrap> ConsoleWrapperList{get;set;}
  
       public List<demomailsentwrap> getperformcallout(){
      ConsoleWrapperList = new List<demomailsentwrap>();
       HttpRequest req = new HttpRequest(); 
       HttpResponse res = new HttpResponse();
        Http http = new Http(); 
        req.setEndpoint('http://webapi.demomail.net/test/DemomailSent.js'); 
        req.setMethod('GET');
        //req.setHeader('Authorization', 'OAuth '+UserInfo.getSessionId());
        res = http.send(req);
         //System.assert(false,res.getBody()+'******');
       
         if(res.getstatusCode() == 200 && res.getbody() != null)
          { 
        String replaceIllegal= res.getbody().replaceAll('\n','').replaceAll('\r','');
        ConsoleWrapperList=(List<demomailsentwrap>)System.JSON.deserialize(replaceIllegal,List<demomailsentwrap>.class);
        //ConsoleWrapperList1 = ConsoleWrapperList.replaceall('\r\n','');
          //System.debug('Response Checking Engine: '+ res.getBody());
          }
            return consolewrapperlist; 
             
          }
//////////////////////////////////////////////  Wrapper Class\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\


public class demomailsentwrap {

public String TotalViewCount{get;set;}   

public String TotalRecords{get;set;}    
public String TotalDisplayRecords{get;set;} 
public String ErrorCode{get;set;}   
public List<GroupData> GroupData{get;set;}  
public class GroupData 
{        
public String ID{get;set;}  
public String Subject{get;set;}            
public String SessionTitle{get;set;}          
public String SentDate{get;set;}          
public String NoOfContacts{get;set;}          
public String OpenTimes{get;set;}          
public String ViewedTimes{get;set;}          
  
}     
}
I want to add a button to my opportunity header record that is called Insert Products. This will send the opportunity ID to a visualforce page which will have a select file button and an insert button that will loop through the CSV and insert the records to the related opportunity.

This is for non technical users so using Data loader is not an option.

I got this working using standard apex class however hit a limit when i load over 1,000 records (which would happen regularly).

I need to convert this to a batch process however am not sure how to do this.

Any one able to point me in the right direction? I understand a batch should have a start, execute and finish. However i am not sure where i should split the csv and where to read and load?

I found this link which i could not work out how to translate into my requirements:http://developer.financialforce.com/customizations/importing-large-csv-files-via-batch-apex/

Here is the code i have for the standard apex class which works.
 
public class importOppLinesController {
public List<OpportunityLineItem> oLiObj {get;set;}
public String recOppId {
        get;
        // *** setter is NOT being called ***
        set {
            recOppId = value;
            System.debug('valuevalue);
        }
    }
public Blob csvFileBody{get;set;}
public string csvAsString{get;set;}
public String[] csvFileLines{get;set;}

public List<OpportunityLineItem> oppLine{get;set;}
  public importOppLinesController(){
    csvFileLines = new String[]{};
    oppLine = New List<OpportunityLineItem>();
  }
  public void importCSVFile(){

       PricebookEntry pbeId;
       String unitPrice = '';

       try{
           csvAsString = csvFileBody.toString();
           csvFileLines = csvAsString.split('\n
           for(Integer i=1;i<csvFileLines.size();i++){
               OpportunityLineItem oLiObj = new OpportunityLineItem() ;
               string[] csvRecordData = csvFileLines[i].split(',');

               String pbeCode = csvRecordData[0];
                pbeId = [SELECT Id FROM PricebookEntry WHERE ProductCode = :pbeCode AND Pricebook2Id = 'xxxx HardCodedValue xxxx'][0];                  

                oLiObj.PricebookEntryId = pbeId.Id;

               oLiObj.Quantity = Decimal.valueOf(csvRecordData[1]) ;
               unitPrice = String.valueOf(csvRecordData[2]);
               oLiObj.UnitPrice =  Decimal.valueOf(unitPrice);

               oLiObj.OpportunityId = 'recOppId';;
               insert (oLiObj);
           }
        }
        catch (Exception e)
        {

             ApexPages.Message errorMessage = new ApexPages.Message(ApexPages.severity.ERROR, e + ' - ' + unitPrice);

            ApexPages.addMessage(errorMessage);
        }
  }
}

 
Hi Folks,

What is the best version control tool for salesforce. Is it SVN or GITHUB.
In case of multiple vendors working on the same project then which is the best version control and migration tools.
Is Jenkins and bamboos free or paid migration tools.

This is urgent.Thanks in advance!!!

Regards,
Krish 
I need to delete a Wave Dataset(s) but I can't do that because the dataset is associated with a Dataflow.

Thus, I need to delete the Dataflow; however, I'm unable to do so??

There are no instructions for doing so and one unable to upload a blank json file to replace the existing Datflow?

I need help with this specifically, since the datasets put me over my storage limit and prevent completion of other Trailhead trainings.  However, more generally there should be a simple delete Dataflow function, as other users have mentioned.
Hello,

I read another disscusion that had the same problem I did ( "Sorry, we can't enroll you in a Salesforce Developer Edition account because the email address you entered is already in use. To sign up with a different email address, go to https://developer.salesforce.com/form/signup/freetrial.jsp .")

The solution was to have the password reset. May I please have my password reset? Username: vflores@salesforce.com

Thank you in advance!
can you please give me the examples of using future method from batch Apex class.please give some ideas.
I want to display a list of records processed out of a batch process on a Visuaforce page.
I tried the option given in below link
 https://developer.salesforce.com/forums/ForumsMain?id=906F000000096w4IAA

but its not working for me.
Any help highly appreciated.
How to check negative percent data value in formula field. For ex: -40% means dispaly the -(50-40)%
Hi All,
I'm submitting my package to AppExchange Security Review and I've a doubt…
I need check the Fields Level Security in Test class also?
Thanks!


 
Stack Trace MassTransfferOwnershipController.doSearch: line 306, column 1
                   MassCaseTransferTestClass.MassCaseTransferTestClass: line 52, column 1

My Controllers method

 public PageReference doSearch()
    { 
       
        theResultList = new List<wrapperClass>();
        
        //system.debug('IN THE LOOP'+toUserFunc);
        
        if(selectedCaseFiler <> 'Select from list...' && selectedCaseFiler1 == 'Select from list...'&&  selectedCaseFiler2 == 'Select from list...')
        {
            CaseFiler = String.escapeSingleQuotes(selectedCaseFiler);
            CaseFilter = String.escapeSingleQuotes(selectedFilterValue);
            theQ = 'SELECT id,OwnerId,CaseNumber,Origin,Priority,Status,Account.Name,New_Owner__c  FROM Case WHERE OwnerId = :myId AND '+CaseFiler+' = :CaseFilter';
            
        }
        else if(selectedCaseFiler <> 'Select from list...' && selectedCaseFiler1 <> 'Select from list...' &&  selectedCaseFiler2 == 'Select from list...')
        {
              CaseFilerFirst = String.escapeSingleQuotes(selectedCaseFiler);
              CaseFilterFirst = String.escapeSingleQuotes(selectedFilterValue);
              CaseFilerFirst1 = String.escapeSingleQuotes(selectedCaseFiler1);
              CaseFilterFirst1 = String.escapeSingleQuotes(selectedFilterValue1);
             theQ = 'SELECT id,OwnerId,CaseNumber,Origin,Priority,Status,Account.Name,New_Owner__c FROM Case WHERE OwnerId = :myId AND '+CaseFilerFirst+' = :CaseFilterFirst AND '+CaseFilerFirst1+' = :CaseFilterFirst1 ';
            system.debug('IF LOOP 2 '+theQ);
        }
        else if(selectedCaseFiler <> 'Select from list...' && selectedCaseFiler1 <> 'Select from list...' &&  selectedCaseFiler2 <> 'Select from list...')
        {
            CaseFilerSecond = String.escapeSingleQuotes(selectedCaseFiler );
            CaseFilterSecond = String.escapeSingleQuotes(selectedFilterValue);
            CaseFilerSecond1 = String.escapeSingleQuotes(selectedCaseFiler1 );
            CaseFilterSecond1 = String.escapeSingleQuotes(selectedFilterValue1);
            CaseFilerSecond2 = String.escapeSingleQuotes(selectedCaseFiler2 );
            CaseFilterSecond2 = String.escapeSingleQuotes(selectedFilterValue2);
              
            theQ = 'SELECT id,OwnerId,CaseNumber,Origin,Priority,Status,Account.Name,New_Owner__c FROM Case WHERE OwnerId = :myId AND '+ CaseFilerSecond +' = :CaseFilterSecond AND '+ CaseFilerSecond1+' = :CaseFilterSecond1 AND '+CaseFilerSecond2+' = :CaseFilterSecond2 ';           
           system.debug('IF LOOP 3 '+theQ);
        }
        else
        {
        
            theQ = 'SELECT id,OwnerId,CaseNumber,Origin,Priority,Status,Account.Name,New_Owner__c FROM Case WHERE OwnerId = '+myId;
        }
        /*
        else
        {
            theQ = 'SELECT id,OwnerId FROM '+selectedObject+' WHERE OwnerId = :myId AND Stage = \''+selectedOpportunityFiler+'\'';
        }
        */
        
        system.debug('THE QUERY IS:-'+theQ);
        for(Case s : Database.Query(theQ))
        {
            system.debug('THE S:-'+s);
            wrapperClass wc = new wrapperClass(s);
            system.debug('THE WC:-'+wc);
            theResultList.add(wc);
        }
        system.debug('THE LIST IS:-'+theResultList);
        if(theResultList.isEmpty())
        {
             ApexPages.AddMessage(new ApexPages.Message(ApexPages.Severity.INFO, 'NO RECORDS FOUND.'));
             showResult = FALSE;
        }
        showResult = TRUE;
        
        
        return null;
    }

My Test Class

@isTest(SeeAllData=true)
private class MassCaseTransferTestClass
{
    static testMethod void MassCaseTransferTestClass()
    {
        Test.setCurrentPage(Page.MassTransfferOwnershipPage);

       List <User> user= [select id from User where Profile.Name = 'System Administrator'];
        
        String userId;   
        for(User usr: user)
        {
            userId = usr.id;
         }  
        
        
        Case c = new Case(OwnerId=userId,Origin='Phone',Subject='Test Case 1');
        insert c;
        
       
        
        Transffer_Ownership__c testObj = new Transffer_Ownership__c(User__c=userId);
        insert testObj; 
        
       
        ApexPages.Standardcontroller sc = New ApexPages.StandardController(testObj);
        MassTransfferOwnershipController mct = new MassTransfferOwnershipController(sc);    
        
        ApexPages.Standardcontroller sc1 = New ApexPages.StandardController(c);
        MassTransfferOwnershipController mct1 = new MassTransfferOwnershipController(sc1);    
        
        
        
        mct1.selectedCaseFiler = 'Origin';
        mct1.selectedCaseFiler1 = 'Origin';
        mct1.selectedCaseFiler2 = 'Origin';
       
        
        mct.getObjectsList(); //Covered
        mct.getblockChoices(); //Covered
        mct.getCaseFilersList(); //Covered
        mct1.getFiltersList(); //Covered
        
        mct.userPopulate();
        mct.touserPopulate();
        
        
        mct1.getOpportunityFilersList();
       
        mct1.getFiltersList1();
        mct1.getFiltersList2();
        mct1.doSearch();
        mct1.doTransfer(); 
        mct1.doTransfer1(); 
        mct1.finalMethod(); 
        
    }
    
    static testMethod void MassCaseTransferTestClass_2()
    {
    
      List<User> user = [select id from User where Profile.Name = 'System Administrator'];
      
      String userId ;
      for(User usr: user)
        {
            userId  = usr.id;
        }
        
      Case c2 = new Case(OwnerId=userId ,Priority='High',Subject='Test Case 2');
      insert c2;
      
      Transffer_Ownership__c testObj = new Transffer_Ownership__c(User__c=userId);
      insert testObj;
        
        
       
        ApexPages.Standardcontroller sc = New ApexPages.StandardController(testObj);
        MassTransfferOwnershipController mct = new MassTransfferOwnershipController(sc);    
      
      ApexPages.Standardcontroller sc2 = New ApexPages.StandardController(c2);
      MassTransfferOwnershipController mct2 = new MassTransfferOwnershipController(sc2);   

      
 
      mct2.selectedCaseFiler = 'Priority';
      mct2.selectedCaseFiler1 = 'Priority';
      mct2.selectedCaseFiler2 = 'Priority'; 
      
      
       mct.getObjectsList(); //Covered
        mct.getblockChoices(); //Covered
        mct.getCaseFilersList(); //Covered
        mct2.getFiltersList(); //Covered
        
        mct.userPopulate();
        mct.touserPopulate();
        
        
        mct2.getOpportunityFilersList();
       
        
        mct2.getFiltersList1();
        mct2.getFiltersList2();
        mct2.doSearch();
        mct2.doTransfer();
   
       
    }
    
    static testMethod void MassCaseTransferTestClass_3()
    {
    
      List<User> user = [select id from User where Profile.Name = 'System Administrator'];
      
      String userId ;
      
       for(User usr: user)
        {
            userId = usr.id;
        }
      
          
      Case c3 = new Case(OwnerId=userId ,Status='Open',Subject='Test Case 2');
      insert c3;
      
      Transffer_Ownership__c testObj = new Transffer_Ownership__c(User__c=userId);
      insert testObj;
        
        
       
        ApexPages.Standardcontroller sc = New ApexPages.StandardController(testObj);
        MassTransfferOwnershipController mct = new MassTransfferOwnershipController(sc);    
      
      ApexPages.Standardcontroller sc3 = New ApexPages.StandardController(c3);
      MassTransfferOwnershipController mct3 = new MassTransfferOwnershipController(sc3);   

      
 
      mct3.selectedCaseFiler = 'Status';
      mct3.selectedCaseFiler1 = 'Status';
      mct3.selectedCaseFiler2 = 'Status'; 
      
      
       mct.getObjectsList(); //Covered
        mct.getblockChoices(); //Covered
        mct.getCaseFilersList(); //Covered
        mct3.getFiltersList(); //Covered
        
        mct.userPopulate();
        mct.touserPopulate();
        
        
        mct3.getOpportunityFilersList();
       
        
        mct3.getFiltersList1();
        mct3.getFiltersList2();
        mct3.doSearch();
        mct3.doTransfer();
   
    }

}
Could someone help me to resovle this issue?

Description: my native iOS App integrated with Salesforce production, and user can upload pictures from App to Salesforce working well before. But today it's not working, all users got error message "An unexpected error occurred. Please include this ErrorId if you contact support: 1436668424-30151(-1219322115)". Also upload pictures in Salesforce1, got same error. By the way, it works fine in Sandbox. 

Thanks for your help in advance!
Hi,

I've created a custom objects and I need that Standard Users can read it.
The solution is to clone Standard Users Profile and make a custom profile, but the custom object is inside managed packages and will be in appexchange in the future, so... how I can modify read permissions at object?

Thanks
 
We only want to expose a subset of an object’s records via API, is this possible? If so, how?
 

I'm following a well written tutorial written by @andymahood__c: http://www.tquila.com/blog/2014/11/17/setting-lightning-connect-and-your-first-external-object

When I get to the step #3 ... "Select Edit on the CustomerID field, ...", I don't see Account (or any objects to relate) listed in the drop down box. I have created the custom field on ACCOUNT named CusotmerID Text(5) and marked it as External ID as follows:

CustomerID CustomerID__c Text(5) (External ID) [Checked]

Any ideas?
Hi All,
I am not able to create A custom button on page Layout section of any Object on developer edition. Please help me
Create an Apex class that returns an array (or list) of strings: 
Create an Apex class that returns an array (or list) of formatted strings ('Test 0', 'Test 1', ...). The length of the array is determined by an integer parameter.The Apex class must be called 'StringArrayTest' and be in the public scope.
The Apex class must have a public static method called 'generateStringArray'.
The 'generateStringArray' method must return an array (or list) of strings. Each string must have a value in the format 'Test n' where n is the index of the current string in the array. The number of returned strings is specified by the integer parameter to the 'generateStringArray' method.

MyApexClass to above Challenge:

public class StringArrayTest {
    
    public static List<string> generateStringArray(Integer n)
    {
        List<String> myArray = new List<String>();
        
        for(Integer i=0;i<n;i++)
        {
            myArray.add('Test'+i);
            System.debug(myArray[i]);
        }
        return myArray;
        
    }


It's compile and execute as per requirement in Developer console. But Traihead showing the below error:

Challenge not yet complete... here's what's wrong: 
Executing the 'generateStringArray' method failed. Either the method does not exist, is not static, or does not return the proper number of strings.

Anyhelp would be greatly appreciated. Thanks.
 

Today we’re excited to announce the new Salesforce Developers Discussion Forums. We’ve listened to your feedback on how we can improve the forums.  With Chatter Answers, built on the Salesforce1 Platform, we were able to implement an entirely new experience, integrated with the rest of the Salesforce Developers site.  By the way, it’s also mobile-friendly.

We’ve migrated all the existing data, including user accounts. You can use the same Salesforce account you’ve always used to login right away.  You’ll also have a great new user profile page that will highlight your community activity.  Kudos have been replaced by “liking” a post instead and you’ll now be able to filter solved vs unsolved posts.

This is, of course, only the beginning  and because it’s built on the Salesforce1 Platform, we’re going to be able to bring you more features faster than ever before.  Be sure to share any feedback, ideas, or questions you have on this forum post.

Hats off to our development team who has been working tirelessly over the past few months to bring this new experience to our community. And thanks to each of you for helping to build one of the most vibrant and collaborative developer communities ever.
 

As many of you have discovered, our developer community is awesome. The wealth of knowledge here is phenomenal. This is an all volunteer community and people who take the time to help and post answers do so totally on their own initiative. With that said when someone provides the right answer to your question please take the time to mark their answer as the accepted solution. Also give them a kudos if they've really gone the extra mile to help out. Show some love ;)