Andy in the Cloud

From BBC Basic to and beyond…


I started this blog to share some thoughts, ideas and opinions around my main passion in life computing, or more specifically these days Cloud computing. Who knows maybe I’ll go stray now and again into some of my others as well!

I am currently working for as CTO. Enjoying working and at times coding hard with everyone to make this new startup company a raging success! Along with our friends at and UNIT4. I am pleased to have been selected as a MVP!

I am a Salesforce MVP. For more information on the Salesforce MVP community, visit: Salesforce, Force,, Chatter, and others are trademarks of, inc. and are used here with permission.

Any views expressed on this blog are entirely my own.


157 thoughts on “About

  1. Hello, I’m having trouble using Declarative Lookup on salesforce. How could I get in touch?

  2. The Declarative Rollup looks great, is it free to use?

  3. Hi Andrew, I have a requirement where i need to develop a VF page through which i am able to create queue. So i can have functionality where user can create queue without having access to access to setup area and other permissions.

    Is there anyway to create custom queue page. Can you provide me some directions on same and if there is any other useful info related to it.

  4. I’m trying to download Declarative Lookup but am getting message that the package has been deprecated and can no longer be installed. Saying I should try installing a newer version or contact the package owner. Is there another version available and if so, how do I get a copy?

  5. that should have said- from app exchange, not – for app exchange

  6. I keep getting an error in my Relationship Criteria. I’m trying to calculate the AMOUNT of closed won opportunities YTD and for previous years (i,e., 01-01-2016 to 12-31-2016). FOr YTD, my criteria: StageName = Closed Won AND CloseDate >= 01-01-2017

    The error: Error: Relationship Criteria ‘StageName = Closed Won, CloseDate >= 01-01-2017’ is not valid, see SOQL documentation, error is ‘expecting a colon, found ‘Closed”

  7. Hi Andrew , I want to automate a report generation process :

    Report : we need to create a report containing Notes created for each lead in a month.

    What we do Manually:

    We query the data in two way : First we query all the required filed from the the Lead object . Secondly, we query notes record using lead Id as parent Id. Then we consolidate the data in Excel sheet . there is one row per Notes. Means Same lead can have 10 row in Excel if the 10 Notes have been created in a Month.

    For Automating :

    1. Created Custom controller.
    2. Fetch the record using inner query.
    3. Created a wrapper class according to the fields of Notes and Lead required in each row .
    4 Populated the data in wrapper class list.
    5. Then I created a visualforce page ( that will call the action in controller returning the list .
    6. Finally I am calling this Visualforce in a scheduler which return the data .

    But rows can be more 10000 or more . So I am getting String too large or more than 60k ..

    • I used this in page attribute : contenttype=”application/{!fileName}.xls” Page Name : AgentDealerFollowup

      I am using below code in scheduler :

      Datetime myDatetime =;
      String myDatetimeStr = myDatetime.format(‘ MMMM,yyyy’);
      EmailTemplate et = [SELECT id FROM EmailTemplate WHERE name = ‘Monthly Dealer Report Template’];
      Messaging.EmailFileAttachment attachment = new Messaging.EmailFileAttachment();
      ApexPages.PageReference report = new ApexPages.PageReference(‘/apex/AgentDealerFollowup’);
      attachment.setFileName(‘Agent Dealer Follow up’+ myDatetimeStr + ‘.xls’);
      Messaging.SingleEmailMessage message = new Messaging.SingleEmailMessage();
      message.setFileAttachments(new Messaging.EmailFileAttachment[] { attachment } );
      // message.setSubject(‘Report’);

    • Try readOnly mode for your Visualforce page, it’s an attribute

  8. Hi Andrew, I’m trying to deploy DouglasCAyers/sfdc-reloadable-visualforce-lightning-component to my salesforce sandbox and I’m getting the following error: “Failures: pages/ specified Package Version number does not exist for that Package: dlrs, 2.8.” It says deployment complete but I don’t see the custom component. Any help would be useful I’m anxious to get this working in my org and it would help a lot. P.S I’m not familiar with the processes in Github Thanks!

  9. Him Andrew, I bought your book and I think is amazing. Just to tell you that on page 59, indicates that Data Replication is a REST API, and I think it is just SOAP.
    Again, thanks a million for writing such an amazing book.

  10. Hi Andy,
    I have had some great success with DLRS for my clients. I would like to do a webinar for them and show them how it might help them with some of their problems.
    I like to check in with authors before presenting their material.
    Please let me know if this is OK with you.
    Thanks… Bob

  11. Hi Andrew, following along with your amazing book and blogging myself about Salesforce Connect ( I read on page 76 that External Objects has some limitations on Reporting. As those limitations are not detailed, if those were related to the blog entry made by Mark Kovacevich ( on Feb 2016, it is very satisfying to know that they were superseded with new functionality on Winter 17 (

    Probably you wrote about other limitations, but just in case where those that were present on Mark’s article, I’d like to point it out.

    Again, thank you so much for what a wonderful book and blog.

  12. Hey Andy, I’m working on a project that uses the fflib architecture. We’ve been debating about whether or not trigger logic should be allowed call out to service classes. On one hand, it is an easy way to satisfy business rules such as ‘after on close of ProductOne, call ProductTwoService.activate()’. On the other hand it seems wrong for domain logic to call out to services.

    I guess ideally the structure would be:
    ProductOneService.close(productOnes) {
    new ProductOne(productOnes).close();
    ProductTwoService.close([select related productTwos]);

    Would you recommend treating these sorts of updates as an implied service call? Or should the product be structured in a way that the only way to perform certain updates is via a service call?

    Thanks for any feedback! Love your work.


    • Hey John, i think… i recall responding to a question like this before? Sometimes duplicate comments get posted so wanted to check. Did you get a response from me on this?

  13. Hi Andy ,

    I am facing issue on Test class for Meta ServiceExample Class.
    I unable to get any wayout for this.

    Can you please help me

  14. Hi Andy ,
    Congratulations….Commendable work by you
    I am New to metadata Api . I have used your Code for The same and modified accordingly but i am not able to Run test class for it.
    Can you help me with the test class?
    I have raised an issue on The GITHUB. Please help me with the Issue
    Please help me with this

  15. Hi Andrew
    Thanks for sharing your work and incredible articles. It really helps.

    I am trying to generate the latest Tooling API class using Tooling API wsdl download from Setup > Develop > API.
    It generate multiple classes….

    The Tooling API class here in this article is a single class.

    Could you please guide how can i generate it.

  16. Hi Andy, I am getting the error message “This Remote Site Name already exists or has been previously used. Please choose a different name.”. If I delete that Remote Site and re-create it, will this affect any existing roll up summaries?

    • No, not at all, it’s only used when configuring them

      • Great, thanks so much!

      • Hi Andy, I have come across another issue. I updated to the most recent release (in an org that had previously installed it in 2014). In the Aggregate Operation field, all of the “concatenate” options, as well as First and Last, are missing from the picklist. I tried simply adding the picklist value, though I assumed that that wouldn’t work, and it did not. Is there something else that I need to do to get the Concatenate functionality? Thanks again!

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s