Andy in the Cloud

From BBC Basic to Force.com and beyond…

About

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 Salesforce.com in Product Management for the Platform. Previously FinancialForce.com CTO.

Any views expressed on this blog are entirely my own.

Please find me on Twitter @andyinthecloud or post a comment on a specific blog post.

IMPORTANT NOTE: Declarative Lookup Rollup Summary (DLRS) Tool:

This tool is open source and is supported by the community in a volunteer capacity.  Kindly please post your questions to the Trailblazer Community Group. Thank you!

318 thoughts on “About

  1. Andy — I want to personally thank you for your contributions to the salesforce.com developer community on stackforce. This comment is specifically prompted by your response here: http://salesforce.stackexchange.com/a/13297/2602 which provided the ‘bolt of lightning’ I needed to develop an in-house solution for migrating a custom product catalog (pricebook2+pricebookentry+product2+various children sobjects of product2/pricebook2 all in the service of a specialized quote configurator) from dev sandbox to staging sandbox to production without the pain of data loader and Excel manipulation of ID lookups. Instance X makes REST calls to Instance Y.

    Eric

    • Your very welcome, really appreciate the feedback, very motivating as well, your solution sounds very cool, maybe do your own blog on it one day? 😉

  2. Andy- Your blogs are great insights into force.com platform, I had a quick question do you have any resources or blogs I can refer to for best practices for using force.com ant migration tool, I am currently implementing Continuous Integration at my company and one of the issues I am facing is I cannot find any definitive guide for generating package.xml dynamically or master list of sample package.xml. Thanks for all your help.

  3. Hey Andrew,

    Thanks for being such a great contributor to the Force.com community! I just found your slides for the Sydney Salesforce DUG around ISV tips and tricks. Is there a recording for this session? If not, i’m interested in knowing why you suggest to “clean” the org before deploying the code. I’m sure you’ve ran into some scenarios that I haven’t thought about.

    Thanks!

    • I think they did record it yes, I’ll find out for you.

    • Though in answer to your question, its because during development classes, pages, components etc can be renamed or deleted by developers. If you don’t clean your org before taking a fresh copy from source control, these things will be forever left in your development org and may cause unpredictable issues or worse accidentally find their way back into source control.

  4. Hi Andy,

    Enjoyed reading and going through the examples regarding the metadata api in Apex. I find it to be very helpful.

    I am wondering if this api could be of any help in identifying the Id of a field? The Sobject describe functions do not seem to have an option to get this info.

    Thus currently if you want to get the Id, you go to the field by clicking on its and then find it from the URL shown in the browser (the Id as you know is 00NE0000003nqPK in this case).
    Example: https://na9.salesforce.com/00NE0000003nqPK?setupid=LeadFields

    Is this possible via the metadata API? Any pointers are very much appreciated!

    Madhav

    • Sure this can be done with the Tooling API, here is another blog of mine showing this, https://andyinthecloud.com/2014/01/05/querying-custom-object-and-field-ids-via-tooling-api/

      • Hi Andy,

        Thanks for the info about the Tooling API. I checked out your code example for custom object/fields and it works great for a sample custom object in my Org. However, I have some custom fields in the Lead standard object. What is the best way to get their Ids? I tried using the describeSObject(‘Lead’) method but it is giving an error as it could not recognize the standard object. Probably this is not the right way to get the information. Can the Tooling API be used on standard objects as well? If yes, a code example would be fantastic!

        For now, I am using the listMetaData method in the Metadata API and I am able to get the Ids of custom fields in the Lead object. However this method gives the Ids of all the fields in the Org, thus is probably not the most efficient way.

        Thanks
        Madhav

  5. Sorry for the spam, but I checked out the Tooling API doc and I believe something would probably work:

    HttpRequest req = new HttpRequest();
    req.setHeader(‘Authorization’, ‘OAuth ‘ + UserInfo.getSessionId());
    req.setHeader(‘Content-Type’,’application/json’);

    req.setEndPoint(‘https://na9.salesforce.com/services/data/v29.0/tooling/sobjects/Lead/’);
    req.setMethod(‘GET’);

    Http h = new Http();
    HttpResponse res = h.send(req);
    system.debug(‘DATA: ‘ + res.getBody());

    I hope I am on the right track. Thanks again for pointing me to the Tooling API.

    /Madhav

    • No worries, thats a good suggestion to share as comment on the blog page i linked above actually, so your saying the describe info gives the Id’s for the object and fields, i’d not spotted that before!

  6. HI Andrew Fawcett
    Hope your well.
    Aim – Automatically update the fieldset when a new field is added to the object. I have created a field set called “HistoryTracking” which sits on the account object. However I manually created this field set and dragged and dropped the required fields.

    I am wondering is there anyway i can update the field set automatically without any manual processes being involved?

    i have read the following link http://salesforce.stackexchange.com/questions/16836/can-we-insert-or-update-fieldsets-using-apex-code which you have kindly responded on, however i am a little confused, and not sure whether it achieves my desired results

    Looking forward to your response

    Daniel

    • What are your desires results?

      • Well I have created a trigger which references a field set . But I created the field set manually. So want to the field set to be dynamic and the trigger to reference the dynamic field set

        I have created it in a test org

      • I’m not comfortable logging into your org, you should really not provide your login publically tbh, i’ve edited them out of your comment for now. That said I’m still not 100% sure what is your problem, do you have an error message or task the above answer does not answer?

  7. Hi Andy

    Thanks for your great work. Can you please answer “http://salesforce.stackexchange.com/questions/57445/how-to-use-crypto-signwithcertificate-in-apex” or let me know how can I use sign with certificates with a static resource file?

    Thanks

    • Your very welcome. Signing and certificates is not an area i’m that familiar with tbh. Keith seems to be helping you now, thats good. 🙂

  8. Hi Andy – Your Declarative Lookup Rollup app is pure genius. I believe your github description said the app is open source and that developers may deploy in org as unmanaged package. Just to be clear…can I add your DLR tool to a real estate managed package which I intend to sell on app exchange? Please let me know. Thank you

    • The BSD license here https://github.com/afawcett/declarative-lookup-rollup-summaries/blob/master/LICENSE gives you the details on this, but basically yes you can so long as you make certain references in your product materials such as documentation. You may however want to consider the pros and cons before embedding, since you’ll be responsible for updating the tool as and when fixes and enhancements come out vs just having your users install the managed package version and then upgrading by simply installing the latest version. Up to you, but certainly no problem within the spirit of the open source license i’ve used, i hope also if you make some enhancements they can find their way back into the tool. Good luck!

  9. Hi Andy,
    Your Blogs are fantabulous and helped me a lot. Can you please answer :

    https://stackoverflow.com/questions/28032972/updating-multi-select-picklist-using-tooling-api-salesforce

    Is it feasible using tooling API ?

    Thanks in advance

  10. Thanks Andy for your help. It did work with Tooling API too

  11. Andrew, Could you please share the code for implementing Custom Apex Connector ? this was presented @ DF14

    • This is a FF sample and also (at least the time) part of a closed SF pilot, i’m on holiday for the next week, but will discuss with the team and SF when i return, i don’t think it will be an issue though tbh, watch this space…

  12. Hi Andrew,
    Thanks a lot for your solution on excel file. I just need a small help from you.
    While using your solution I am getting this error & not sure what should be in the component.

    Error: Component c:unzipfile does not exist

    Please could you share this component with me.

  13. Hi Andrew,
    Thanks for this solution. I have implemented the same.
    I am getting an error “Unrecognized base64 character: <" while uploading the file.
    It is creating the object record but not attaching the files.

    the error is coming on this line in class "attachment.Body = EncodingUtil.base64Decode(data);"

    I am not versed with base64 decoding or encoding. Could you throw some light on the same.
    Greatly appreciate your time.

  14. Hi Andrew – I have been using this tool (brilliant by the way!) and it has been working fine apart from since I enabled Chatter Answers and now I get the following error. I know nothing about Apex so at a complete loss. Are you able to help/point me in the right direction? Thanks so much

    ChatterAnswersAuthProviderRegTest.validateCreateUpdateUser System.DmlException: Insert failed. First exception on row 0; first error: REQUIRED_FIELD_MISSING, Required fields are missing: [ProfileId]: [ProfileId] Class.ChatterAnswersAuthProviderRegTest.validateCreateUpdateUser: line 31, column

    • Thanks glad you like it! Are you able to find who authored the failing test in your org, ChatterAnswersAuthProviderRegTest, go to Setup and then Develop and Apex Classes to find it and note who last modified it. This test is running because the platform behaviour when deploying any code, even that from this tool, is to run all tests in the org and all have to pass. If you cannot get someone to fix this test for you, you could try deleting it, if you have enough code coverage, but this is also risky as the tests help ensure your system is operating as the original developer expected.

  15. Thanks Andrew – I will give this a go. Once again – brilliant tool, it is an absolute lifesaver!

  16. Hi Andrew, Lookup Rollup Summary is pretty cool but we got quite a lot of relationship criteria. such as checking many lengthy picklist values and few record type ids. That field doesn’t seem to hold more than 255 characters. Is there anyway to overcome this issue?

    • You can put that in a formula field, just make sure to list the fields referenced in the formula field in the relationship criteria fields field.

  17. Your Declarative Rollup Summary Tool is awesome!!!

    I would like to know if it’s possible to use a relationship field like “Assembly__r.Master__c” where Master__c and Assembly__c are the same object.

    • Thank you! The tool does support parent and child object being the same yes, you will find in my blog an example with Account that should give you some insight into this.

      • I’m not sure we’re on the same page.

        I’d summing a field called Total_Time__c from an object called Work_Unit_mB__c. Work_Unit_mB__c has a field called Assembly__c that is a lookup to Assembly__c. There is another field on Assembly called Master__c that is a lookup to another record on the Assembly object.

        From the tests I’ve performed, it doesn’t seem possible to use Assembly__r.Master__c as the relationship field.

        Here’s the error I receive.

        dlrs_Work_Unit_mBTrigger: execution of AfterUpdate

        caused by: System.SObjectException: Invalid field Assembly__r.Master__c for Work_Unit_mB__c

        (dlrs)
        Trigger.dlrs_Work_Unit_mBTrigger: line 7, column 1

      • Ah I see, yes I understand, no this is not possible as it stands sorry..

      • I paired up a set of two rollups to get the desired effect. Thanks.

      • Very nice! Combo deal love it!

      • Your Declarative Rollup Summary Tool. Can it limit the number of rows? I need to get a row that has the lowest price and return the lead time from it. It’s kinda like Max but not quite. Returning Lead Time for the lowest priced product.

  18. Also. Can I sort by more than one field? Heck, the option to submit my own SOQL would be awesome!!!

  19. sir i’m in m tech and my dissertation topic is security in cloud computing . I want to implement enhanced blowfish algorithm(or any other algo) for encryption .
    For this i want to create a VF page which has algo code written in apex .
    through this page i want save the details (say merchandise object in warehouse app) of object in encrypted form on detailed page .

    it means i enter plain text on vf page and it shows cipher text on detailed page.

    and also i want the vf page for displaying this saved data in decrypted form(plain text).
    sir, is this possible in salesforce and if yes, what extra api or support i needed. please help me with this .

    • Hello, sounds interesting, in all honesty I am not confident this level of computational work is best suited to Apex, while it is a very rich language, it lacks binary operators and data types, also if you check the apex governors section in the Salesforce documentation there is a CPU limit imposed per request. What I do wonder is if perhaps you can use Heroku platform and perform this in Java, you can still use VF as the front end and make HTTP rest API call out to the Heroku code.

      Salesforce as a platform has a lot of in built security in its metadata model, for example when you define a merchandise object you can tick to enable platform encryption on it, there is on wire and in some cases at rest (on disc) encryption.

  20. Hi Andy,

    Thanks for answers on twitter.

    We are using CRUD based MetaData:: https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_upsertMetadata.htm

    We are generating this dynamic field properties and creating in Salesforce with package nameSpacePrefix.

    We received following error[CANNOT_MODIFY_MANAGED_OBJECT]::

    [main] INFO Account.Mxt__Payer__c: Failed creation of custom field in SalesforceError message: Cannot modify managed object: entity=CustomFieldDefinition, component=00N6100000791Ab, field=RelationshipLabel, state=MANAGED_INSTALLED: newValue=’null’, oldValue=’Accounts’ Status code: CANNOT_MODIFY_MANAGED_OBJECT

    [main] INFO Account.Mxt__Month__c: Failed creation of custom field in SalesforceError message: Cannot modify managed object: entity=CustomFieldDefinition, component=00N6100000791AJ, field=PicklistControllerEnumOrId, state=MANAGED_INSTALLED: newValue=’null’, oldValue=’00N6100000791Ay’ Status code: CANNOT_MODIFY_MANAGED_OBJECT

    • Your welcome, as I said you cannot create managed / namespaced qualified fields outside of your development org for the package. You must remove the namepace prefix and create it as a regular field or consider an extension package as per ISV guide, happy to help more if you want to raise a GitHub issue on the repo that provides an easier facility to chat and share than Twitter or blog comments.

  21. Hi Andy,

    I hope you are doing great!

    I have some queries on Apex and JavaScript execution. I want to insert large data to Salesforce after reading the file in JavaScript function and then I want to call the Apex method to insert the data chunk to the database. What I want to know is that how do I stop the execution of JavaScript further until I get the response from Salesforce.

    Thanks,

    • I am thanks for asking! It sounds like you want to use a carefully crafted orchestration of callbacks from the SF API’s to switch between waiting and progress the next chunk. It feels a bit like what i am doing in my Zip file handling articles on my blog, so that might give you inspiration. Unfortunately my About page is not the most ideal place to discuss tbh. Your better using a community forum like StackExchange or Success Community.

  22. Thank you, Andrew

  23. Hello Andrew
    This tool is fantastic… at least from the concept and the video’s I’ve seen. However, I am unable to find the tab on my SB org.
    Are there any troubleshooting steps you could provide?

    • Did you install the package and delft available to admins? If your not an admin there is a permission set you can assign to grant the app and tabs to other non-admins.

  24. Hi Andy, I am utilizing your metadata api and it really helped me in dynamically modifying detail page layouts. listviews, and adding custom buttons to them. Thus I really appreciate your work.

    I have one issue with adding buttons to the list views which I hope you can help. I am using the following code to modify the listview search layout for the lead object. I can see that the buttons are being added to the Lead List View when I go to Lead Search Layouts page. However, the buttons are not visible on any of the list views when I click them from the Leads tab. I clicked the refresh icon on each of the list views but it did not help.

    Only after I edit/save the Lead List View search layout manually once, and then visit the list views from the Leads tab could I see the butons visible. What I am doing wrong in the code which is making me do the manual step of saving the search layout?

    Thanks
    Madhav

    MetadataService.MetadataPort service = createService();

    List mdata = new List();

    List sObj = new List();
    sObj.add(‘Lead’);

    MetadataService.CustomObject customObj = (MetadataService.CustomObject) service.readMetadata(‘CustomObject’, sObj).getRecords()[0];

    if(customObj.searchLayouts.listViewButtons == null) customObj.searchLayouts.listViewButtons = new List();

    List lstButtons = new List();
    lstButtons.add(‘Button1’);
    lstButtons.add(‘Button2’);

    for(String s : lstButtons) {
    customObj.searchLayouts.listViewButtons.add(s);
    }

    mdata.add(customObj);

    service.updateMetadata(mdata);

    • Thanks your most welcome. Regarding your issue perhaps you can see if there is something missing by first running your code, then downloading the custom object .object file, then perform the manual edit and save step, then download the .object file again and compare with the earlier one?

  25. I did now what you suggested and used an online tool to perform a file diff – it says the files are identifical. I have done this by outputting the data in the customObj field:

    MetadataService.CustomObject customObj = (MetadataService.CustomObject) service.readMetadata(‘CustomObject’, sObj).getRecords()[0];

    system.debug(customObj); // once before my manual edit/save of the search layout and then once after the manual update

    Is it the correct way to get its data? How does one download the .object file?

    • Use an ide like force.com ide or mavensmate, though your approach should have shown a difference. Raise an issue on the GitHub repo with your sample code and I will try it myself

  26. I really like your Roll Up Summary. Do you know if it will work with Contact Roles?

    • Thanks! Would you please mind asking this question on the Chatter group, see link on the README file.

  27. Hi Andy. I enjoyed your session re lightning out at the world tour yesterday. Can you share the PPT/resources, as I think some of my colleagues (who did not attend the event) would find it interesting?

    Thanks!

  28. Hi Andy, I went to deploy the rollup summaries app in one my sandboxes and was waiting for the website to prompt me for login credentials. However, when i hit deploy the second time it just starting downloading without ever prompting me as it must have found i was already logged into a sandbox and assumed that was the one i wanted to use. The issue is that sandbox should never have any apps installed.

    I logged out within 1 minute, but not sure if i log back in if it is going to continue to deploy. I looked for a phone number but did not see any so I am writing you here. Please help and let me know what do you believe is the status if i logged out while the deployment was in progress and if i log back in will it continue.

    • Salesforce package installs will continue provided you completed the install wizard. Check the Installed Packages page under Setuo

  29. Hi Andrew I have some issue creating Relationship Criteria with ‘OR’. The system doesn’t recognize OR and when I use IN it is not working as well . How should I write a criteria to include 2 status in the same time.: Claim_Status__c IN (‘Ready to Claim – Imperfect’,’Ready to Claim’)

  30. Hey Andy , trying to download Declarative Lookup on my Salesforce instance but it says the edition isn’t supported, we currently use Unlimited Edition of Salesforce. Do I understand correctly that currently it is not supported?(only Performance and Enterprise)

    • That is supported. What error are you getting?

      • Hey Andy, Thanks i just now realized you had answered me, thanks so much . Upon downloading i got an error that the package was deprecated and that my edition of Salesforce doesn’t support the package (and i saw in the Package Details that it’s also for Enterprise and Performance) what am i missing? a tool like yours would SAVE us!!

      • Hey no worries. Got to the GirHub repo and find the Readme file. It has the latest link for 2.4.1 released today. Thanks!

  31. Do i need to click on this link ? and not download via the appexchange? https://githubsfdeploy.herokuapp.com/app/githubdeploy/financialforcedev/apex-mdapi

    • There is no AppExchange package for the Apex MD API wrapper. So yes, you can click this link or download the code and use your own preferred way to upload code.

      • Hey Andy- really hope we are getting close:) I downloaded the deploy tool in Sandbox but how do i get to the declarative lookup configuration page? I just see three tabs (that start with the word metadata ) but i dont think its that

      • I am confused. Do you want to install the Apex MD API wrapper or the Rollup tool? If it’s the later your looking in the wrong place. For the Rollup tool, there is a different repo, where you can either use a package install link (recommend) is or deploy its code direct (if you plan to update or modify its code). Check the sections in this readme file. https://github.com/afawcett/declarative-lookup-rollup-summaries/blob/master/README.markdown

      • And yes, this is really useful input for a second edition… 😉

  32. Hi Andy, I am trying to install your app in sandbox and got the following error message – “This app can’t be installed.
    There are problems that prevent this package from being installed.
    AppExchange Package is Deprecated The AppExchange package has been deprecated and can no longer be installed. Please try installing a newer version, or contact the package owner directly to resolve.” Is there another version that I can use? Thank you! Ivona

  33. Hi Andy, I’d like to ask a question to see if Declarative Rollups for Lookups can solve a niggling problem for me. Is there a community link I can access?

  34. Hi Andy I used your declarative lookup tool at one of the places I worked and it was such a big game changer. I’m working somewhere else but cannot find the product on app exchange. Is there a way I can still get this product? Thank you!

  35. Hi Andy,
    Thanks for all your contributions to the community, I’ve been using your apex enterprise patterns for years. All your comments and posts are so clear and well written. Curious if you are going to present at Dreamforce this year and at what sessions? Thanks!

    • Thanks most kind! I try my best with the time I have. Getting a session at Dreamforce has been tough across the board for everyone I hear. This year only one session, around Lightning Out and Google Apps.

  36. Thank you for sharing the RollUp Tool Andy. It is a good thing that there are gifted minds to fill in all the gaps left by SF.
    ONe Question: Will it help me RollUp the # of tasks per month for a contact?
    I am a bit disoriented on Git Hub – would it be too much to ask you for a couple minutes to help me make sure that i set up the app properly in our Production org – Thanks

    • Thanks for the kind comments. Yes that should be possible. Can you post your question in the chatter group and me and others can help out. The link is in the readme file.

  37. Sure Andy.
    is this the right link
    https://success.salesforce.com/_ui/core/chatter/groups/GroupProfilePage?g=0F9300000009O5p
    BTW – I just found out i can download from the appexhange, and not break my head with Git Hub –
    unfortunately. I just tried downloading the DLRS app from the app exchange – but i can’t see a trace of it in our org.
    Then i tried again, and get an error message that it has been deprecated.

  38. All’s well that ends well – i finally found the correct link on GitHub
    Once again, thanks to you and all those involved for your service.

  39. Hi Andrew, I’m interested in your Apex Zip GitHub package.

    Is there a way to make it so that when a user clicks the button on any custom object that it downloads the attachments to their desktop instead of Documents? I’m not super skilled at VF or javascript, but can do a little.

  40. Hi Andy, One of the orgs I work with has the declarative rollup installed. This is interfering with a ERP sync. I need to uninstall the application however, it won’t let me uninstall it because of two triggers – dlrs_AccountTest and dlrs_CommercientSF8_SAGE300_Invoia1ITest. I have made this inactive in sandbox but when I deploy it in production I get the following errors respectively –
    System.DmlException: Insert failed. First exception on row 0; first error: REQUIRED_FIELD_MISSING, Required fields are missing: [Name]: [Name]
    Stack Trace: Class.dlrs.RollupService.testHandler: line 277, column 1 Class.dlrs_AccountTest.testTrigger: line 11, column 1

    System.DmlException: Insert failed. First exception on row 0; first error: REQUIRED_FIELD_MISSING, Required fields are missing: [CommercientSF8__ExternalKey__c]: [CommercientSF8__ExternalKey__c]
    Stack Trace: Class.dlrs.RollupService.testHandler: line 277, column 1 Class.dlrs_CommercientSF8_SAGE300_Invoia1ITest.testTrigger: line 11, column 1

    Any help will be much appreciated.

    Thank you!
    Shabina

    • Before uninstall you need to click Manage Child Trigger on the rollups and click Remove. Meanwhile these errors occur because the test code generated by the tool is basic, I am not sure how the test must have ever run? Unless someone changed validation rules on these objects after the tests where deployed and didn’t bother to run all tests to see if they had broken anything. There is an article on the tools wiki that talks about customising the generated tests to accommodate validation rules. However since your wanting to uninstall, just try my first suggestion. If you have deleted the Rollup definitions, just recreate some basic ones over these two Child objects, enough to use the Manage Child Trigger button and the tools inbuilt ability to remove the test and trigger code. If this does not work you should be able to remove the classes and triggers in developer console. Hope this lot helps and sorry for the delay in responding, it’s been busy with Dreamforce work and catching up. Thanks, Andy

  41. Hi. Using your tool in both production and sandbox. We are adding some functionality in sandbox with more rollups and am now getting an internal server error. I reached out to salesforce and they sent me a link to your appexchange link for the package. They indicated that I would need to reach out to your to get help with the error. We cannot even get into the Sandbox at this point. here is the error:

    An internal server error has occurred
    An error has occurred while processing your request. The salesforce.com support team has been notified of the problem. If you believe you have additional information that may be of help in reproducing or correcting the error, please contact Salesforce Support. Please indicate the URL of the page you were requesting, any error id shown on this page as well as any other related information. We apologize for the inconvenience.

    Thank you again for your patience and assistance. And thanks for using salesforce.com!

    Error ID: 983895417-124130 (301579024)

    • Wow that’s not really that helpful of support to be honest. This set of numbers is what is know to them as a gack. There is usually a message or text behind the number that they can share to help diagnose the issue, did they give you that? If not can you ask for it. Without that I cannot really help. It is odd the tool blocks you logging in? I have never heard of that and cannot imagine why either. Did they give you any background on this aspect as well? It’s best for us to continue on GitHub, if you can raise an issue there after you get more details from Salesforce support we can for sure work together to get to the bottom of this! 🙂

  42. Hi Andy, were finally able to get in and removed the welcome page from the Declarative Rollup Summaries App and the error stopped. I really love your tool. Using in prod for another process. Developng more rollups in sandbox from Opportunity to Account, BUT I am feeling squeemish about this now. I have granted you login access support. My SF sandbox org is : 00D630000008udA.

    Can you please take a look and see if you find anything obvious? I am running too many triggers on a single Object? (think I have about 6 on Opportunity.

    • Hey, sorry I think maybe we have been talking on GitHub about this issue? It kinda sounds familiar with the welcome page. Though I don’t think that removing it was the direction our discussion was heading tbh. Can we resume discussion on the GirHub issue? I can get more context then. Maybe remind me of the link here?

  43. Hi Andrew,

    Thank you for your contribution to Force.com community which helps many of us who are working on the Force.com platform.

    I am reaching you regarding the security related question about your DLRS app. I have been using this app for a while and its very nice simple app to achieve much necessary roll ups in SF. I see that you have mentioned the Github page for this app that the App has passed Salesforce Security Review. I wanted to get more information on this review so that I can present the same to the Client security team, so that I can use this app.

    Your help in this regard is much appreciated.

    Thank you!!
    Sachin

    • Thank you! What do you need to know?

      • Thanks for the Quick Response Andrew. I want some note from Salesforce that the App adheres to security norms and
        the data security of the organization is not compromised if we use this DLRS App.

        Thank you,
        Sachin

      • Hi Andy,
        Could you please provide some note from Salesforce that the App adheres to security norms and
        the data security of the organization is not compromised if we use this DLRS App. Or any kind security compliance note.
        Or else guide me based on if the similar ask was from any one of the app users.

        Regards,
        Sachin

      • Take a look at the read me in the package release notes

  44. Hey Andy, Great blog! I have a specific question on patterns in cloud-to-cloud integration. I know that Apex common focuses on CRUD operations and they are great. What are your specific recommendations on integration patterns calling rest services of a different enterprise/cloud/app.

    • I would tend to wrap the rest calls in a service call and expose that to the rest of your app. This way changes in the external API can be somewhat shielded and it’s easier for your app devs to consume as they would any other service. Of course they have to take care with the rules around http callouts followed by dml, but that would be the case regardless of how you wrapped or encapsulated the API calling.

  45. Hello Andy,
    Thank you very much for your wonderful blog.

    May I please ask a question? I have read your answer on this post http://salesforce.stackexchange.com/questions/22003/parsing-metadata-api-xml

    I would like to make some modifications to a Profile file. I was able to get the file loaded into Profile object as you wrote in your example. However, when I try to save the changes and save the file using the ‘write’ method on the Profile object, I get the XML written, but in another fashion:

    false

    true
    Account.AccountNumber
    true

    true
    Account.AccountSource
    true

    ….

    Instead of this at the top and removing all the “n1” strings from all the elements.

    Could you please advise?
    Thanks a lot for your help.

  46. Hi Andrew, I am desperately trying to install your declarative RSF tool but the AppExchange link no longer works – I have downloaded the zip but haven’t the foggiest where to begin, can you help me?

    • Use the latest package like from the readme file. Should be ok. 🙂

      • eeek yeah thank you! I felt such a doughnut when I finally got it lol. great tool btw!! It is saving us a lot of time and money here !

  47. Hi, I was wondering if you have some sort of customer support? I just need a quick help with the Declarative Lookup Rollup Summaries Tool error. Thank you!

  48. Hello,

    We are using the Declarative Lookup Rollup Summaries Tool as an installed package in Salesforce and need to know if your app is compatible with TLS1.1 or higher.

    Thank you.

    • For operational purposes no callous are made, so this does not apply. For configuring purposes, it can use Salesforces own Metadara Webservices API, which complies with TLS 1.1. In short yes it’s fine. 🙂

  49. Hi Andrew,
    I’ve just uninstalled the Declarative Lookup Rollup Summaries Tool and i’m getting a error in Production when I try and view a Profile!

    An internal server error has occurred
    An error has occurred while processing your request. The salesforce.com support team has been notified of the problem. If you believe you have additional information that may be of help in reproducing or correcting the error, please contact Salesforce Support. Please indicate the URL of the page you were requesting, any error id shown on this page as well as any other related information. We apologize for the inconvenience.

    Thank you again for your patience and assistance. And thanks for using salesforce.com!

    Error ID: 1041227505-126362 (-1140799858)

    I’ve already reached out to Salesforce support but Im now waiting for there technical guys!

    Interestingly I uninstalled the package in my Sandbox first and I dont get any errors!

    Any ideas?