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!
December 6, 2013 at 6:24 pm
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
December 6, 2013 at 7:45 pm
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? 😉
February 27, 2014 at 10:06 pm
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.
February 28, 2014 at 10:45 pm
When you download the Ant Migration Toolkit, it contains some sample package.xml files and some help HTML files. However the main documentation for this tool is here, http://www.salesforce.com/us/developer/docs/daas/.
In addition you can learn more about the package.xml via the Metadata API (which the Ant tool wraps). Here is a more detailed description of the package.xml, http://www.salesforce.com/us/developer/docs/api_meta/index_Left.htm#CSHID=manifest_samples.htm|StartTopic=Content%2Fmanifest_samples.htm|SkinName=webhelp
Finally while you can write some Java code to call from Ant to generate your package.xml. Typically including a package.xml in your source control system that leverages wildcard’s tends to do the trick. http://www.salesforce.com/us/developer/docs/api_meta/index_Left.htm#CSHID=meta_types_list.htm|StartTopic=Content%2Fmeta_types_list.htm|SkinName=webhelp
April 15, 2014 at 12:09 am
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!
April 15, 2014 at 9:59 am
I think they did record it yes, I’ll find out for you.
April 15, 2014 at 10:01 am
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.
April 15, 2014 at 2:46 pm
Awesome, thanks Andy!
April 17, 2014 at 11:27 am
There is no recording of this session sadly, sorry.
April 16, 2014 at 10:56 am
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
April 17, 2014 at 10:58 am
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/
April 17, 2014 at 2:22 pm
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
April 17, 2014 at 2:56 pm
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
April 17, 2014 at 5:20 pm
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!
June 6, 2014 at 11:51 am
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
June 6, 2014 at 6:53 pm
What are your desires results?
June 6, 2014 at 6:58 pm
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
June 16, 2014 at 1:10 pm
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?
November 28, 2014 at 12:30 pm
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
December 3, 2014 at 8:27 am
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. 🙂
January 10, 2015 at 7:27 am
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
January 12, 2015 at 9:16 am
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!
January 12, 2015 at 5:34 pm
Thanks for your response. I’ll let you know how it goes.
Kev
January 19, 2015 at 8:30 pm
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
January 19, 2015 at 9:34 pm
Not tried it, but i know it works in metasada api, there is even an example see MetadataServiceExamples.cls
January 19, 2015 at 9:35 pm
And thanks for the feedback really pleased your enjoying them!
January 24, 2015 at 12:01 pm
I just added an answer for you, btw, there is a specific stack exchange site for Salesforce here, http://salesforce.stackexchange.com/
January 24, 2015 at 7:10 pm
Thanks Andy for your help. It did work with Tooling API too
January 25, 2015 at 12:57 pm
Oh thats great can you add an answer on the stack exchange post and share how you did it?
February 6, 2015 at 11:21 pm
Andrew, Could you please share the code for implementing Custom Apex Connector ? this was presented @ DF14
February 7, 2015 at 6:06 pm
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…
April 1, 2015 at 7:25 pm
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.
April 1, 2015 at 7:27 pm
It looks like you have not deployed this file to your org
April 2, 2015 at 4:14 pm
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.
April 29, 2015 at 4:34 am
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
April 29, 2015 at 9:16 am
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.
April 29, 2015 at 10:26 pm
Thanks Andrew – I will give this a go. Once again – brilliant tool, it is an absolute lifesaver!
August 26, 2015 at 6:45 am
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?
August 30, 2015 at 10:19 am
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.
September 19, 2015 at 3:24 pm
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.
September 19, 2015 at 5:04 pm
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.
September 19, 2015 at 7:32 pm
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
September 20, 2015 at 12:13 am
Ah I see, yes I understand, no this is not possible as it stands sorry..
September 20, 2015 at 4:02 am
I paired up a set of two rollups to get the desired effect. Thanks.
September 20, 2015 at 5:30 pm
Very nice! Combo deal love it!
September 23, 2015 at 1:45 am
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.
September 23, 2015 at 1:54 am
Also. Can I sort by more than one field? Heck, the option to submit my own SOQL would be awesome!!!
October 11, 2015 at 7:45 pm
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 .
October 12, 2015 at 5:46 am
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.
October 13, 2015 at 5:11 pm
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
October 16, 2015 at 5:28 am
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.
November 11, 2015 at 10:57 am
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,
November 13, 2015 at 5:59 pm
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.
November 13, 2015 at 6:22 pm
Thank you, Andrew
January 11, 2016 at 11:34 pm
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?
January 12, 2016 at 6:59 pm
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.
March 6, 2016 at 8:12 am
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);
March 6, 2016 at 8:23 am
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?
March 6, 2016 at 10:28 am
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?
March 6, 2016 at 1:04 pm
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
March 8, 2016 at 11:01 pm
I really like your Roll Up Summary. Do you know if it will work with Contact Roles?
March 10, 2016 at 12:38 am
Thanks! Would you please mind asking this question on the Chatter group, see link on the README file.
May 20, 2016 at 1:37 pm
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!
May 22, 2016 at 8:54 am
Yep, I plan to rerecord and do a video blog sometime today hopefully
May 23, 2016 at 5:03 pm
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.
May 25, 2016 at 10:08 pm
Salesforce package installs will continue provided you completed the install wizard. Check the Installed Packages page under Setuo
May 24, 2016 at 7:13 am
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’)
May 25, 2016 at 10:09 pm
Googled for “SOQL Where” to find some examples of this.
June 1, 2016 at 10:22 am
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)
June 3, 2016 at 7:23 pm
That is supported. What error are you getting?
June 19, 2016 at 5:54 pm
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!!
June 19, 2016 at 6:04 pm
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!
June 19, 2016 at 6:41 pm
Do i need to click on this link ? and not download via the appexchange? https://githubsfdeploy.herokuapp.com/app/githubdeploy/financialforcedev/apex-mdapi
June 20, 2016 at 6:51 am
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.
June 21, 2016 at 7:11 am
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
June 21, 2016 at 7:15 am
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
June 25, 2016 at 7:45 am
And yes, this is really useful input for a second edition… 😉
June 28, 2016 at 7:33 pm
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
June 28, 2016 at 11:29 pm
The latest install links are on the GirHub readme page
July 4, 2016 at 1:42 pm
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?
July 7, 2016 at 9:06 pm
Yes see the readme on the repo for a link
August 11, 2016 at 11:24 pm
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!
August 12, 2016 at 9:29 am
Awesome thanks! It’s on GitHub, with the package install links.
August 15, 2016 at 8:47 pm
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!
August 15, 2016 at 10:30 pm
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.
August 17, 2016 at 9:53 am
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
August 19, 2016 at 7:56 am
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.
August 21, 2016 at 8:17 am
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.
August 21, 2016 at 8:26 am
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.
September 7, 2016 at 2:32 am
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.
September 7, 2016 at 4:51 pm
This sort of thing is possible, but you will need a developer for this type of work.
September 29, 2016 at 10:52 pm
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
October 19, 2016 at 12:13 am
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
October 5, 2016 at 10:53 pm
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)
October 19, 2016 at 12:06 am
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! 🙂
October 5, 2016 at 11:48 pm
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.
October 19, 2016 at 12:02 am
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?
October 21, 2016 at 8:31 pm
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
October 21, 2016 at 8:59 pm
Thank you! What do you need to know?
October 24, 2016 at 4:16 pm
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
November 2, 2016 at 7:06 pm
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
November 3, 2016 at 1:00 am
Take a look at the read me in the package release notes
October 26, 2016 at 6:47 pm
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.
October 27, 2016 at 9:43 am
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.
November 28, 2016 at 10:03 pm
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.
December 6, 2016 at 2:08 am
Your very welcome. Are you using Apex?
November 30, 2016 at 2:42 pm
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?
December 6, 2016 at 2:09 am
Use the latest package like from the readme file. Should be ok. 🙂
December 6, 2016 at 9:09 am
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 !
December 27, 2016 at 10:19 pm
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!
December 29, 2016 at 4:02 am
I am sorry its a community tool, so supported by the community. There is an active Community Chatter Group. https://success.salesforce.com/_ui/core/chatter/groups/GroupProfilePage?g=0F9300000009O5p
January 17, 2017 at 6:03 am
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.
January 17, 2017 at 11:32 pm
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. 🙂
January 20, 2017 at 5:54 am
Thank you Andrew for your prompt response.
January 18, 2017 at 4:30 pm
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?
January 19, 2017 at 8:49 am
This issue now appears to be resolved!
January 20, 2017 at 1:02 am
Hmmm I am not sure how the two are related, but you never know with this perform. What you have here is know as a gack https://developer.salesforce.com/blogs/engineering/2015/02/gack.html Per the article you need to reach out to Salesforce. Ping me back via a GitHub issue if things point to the tool once Salesforce decides the underlying message / cause.