Hot answers tagged

51

There are ways to surface the namespace itself from within Apex (doesn't help us in JavaScript, yet). Deriving the namespace prefix itself: String rawPrefix = MyClass.class.getName().substringBefore('MyClass').substringBefore('.'); //this gives '' in any development org //and gives 'ns' in the packaging org Getting a single token which can be used to ...


31

Use a password management tool like 1Password, Lastpass, or KeePass. I believe all of them have desktop apps, browser plugins and mobile apps with database syncing in one form or another (such as DropBox). I prefer 1Password as it's plugins make it very easy for me to use multiple logins for the same site. When I go to login.salesforce.com I hit a hotkey ...


20

I noticed in the Winter 13 release notes (page 204 of the PDF) there is a mention of "Environment Hub (pilot)". Worth keeping an eye on. Starting in Winter ‘13, you can use the Environment Hub to view details of all your Salesforce organizations from one, central location. This can make administration much easier, especially for companies that use a ...


17

I use the Google Chrome plugin: Force.com Logins Not very secure, but easy for poping between a lot of orgs very quickly! Also easy to export and import large sets to an XML document for easy transport.


17

I would strongly suggest reading this recent post by Dan Appleman. He outlines the various ways in which factors like sharing and CRUD/FLS play into security, and ends with the comment, which tells me you can pass security review with classes not marked as sharing so long that is clear to the users administering the system which uses that construct: But ...


14

Source: http://www.salesforce.com/us/developer/docs/soql_sosl/Content/sforce_api_calls_soql_querying_currency_fields.htm 1) Sum() calculates different currencies correctly. 2) The result of Sum() uses the Corporate Currency of your org. 3) No, you have to set the CurrencyIsoCode to your Corporate Currency CurrencyIsoCode manually. You can test that by ...


13

I think the simplest and most efficient way to do this is to just modify your last name in the org:


12

Summary The next generation of packaging is still very much a work in progress. The core focus is embracing the source control driven approach of DX into how we develop and distribute packages. The current road map shows that the first GA release is until Summer 2018: Moreover, this schedule is really about migrating existing packages to use ...


11

Building for 'Group Edition' and 'Professional Edition' there are some things to keep in mind: Professional Edition doesn't support web service calls unless the org is API enabled (although this is possible it's not well documented) Permission sets are not available in in PE, and including them in a package can cause issues uninstalling a package from a PE ...


11

This feature is going to go into pilot in Winter or Spring '15. Note this idea being "Under Consideration" https://success.salesforce.com/ideaView?id=08730000000BrBKAA0.


11

There is the possibility of installing the package using Metadata API. Then inspect the company details, package version description or documentation (etc) for meaningful contact information. For example using JavaScript in browser console: var versionNumber = '1.0'; var activateRSS = 'false'; var nsPrefix = 'MyCompanyName'; var binding = new ...


10

Here is what worked best for me in past few projects (App Exchange apps) Orgs Initially have these two orgs: Dev Org ( Type = Partner Dev Edition) : Used for actual developement. Packaging Org ( Type = Partner Dev Edition): Used for uploading the managed released package to app exchange with a unique namespace prefix. Dev org will be used by any number ...


10

If you're using Salesforce to Salesforce to bring data from your customers org into Salesforce you're going to run into two scalability issues. First, Salesforce to Salesforce transactions count against your daily API limit. If you have a lot of orgs connecting to yours there is a very good chance you could start exceeding your daily limit. Second, ...


10

My understanding is that ISVForce is for apps installed into existing Salesforce customer's systems. The Embedded license allows you to sell your app standalone and resell Force.com licenses along with it. To my knowledge, an embedded license takes care of your customer needing to talk to Salesforce at all. You are effectively reselling a license and paying ...


9

I think your best bet is to stay with the current location and link the existing org. As you point out you will loose upgradability for your existing customers. And migrating them will involve (depending on the number of custom objects and dependencies they have elsewhere in their orgs) quite complex and not great from a customer perspective. In reality ...


9

You can use System.requestVersion, which returns the version of your package. See Version for more details, but I'll also include the snippet from there here: if (System.requestVersion() == new Version(1,0)) { // Do something } if ((System.requestVersion().major() == 1) && (System.requestVersion().minor() > 0) && (System....


9

TLDR: No, Unlocked Packages cannot be used like this. Anyone commercially distributing a Salesforce app must do so using Managed Packages. Also, Managed Packages offer many valuable features simply not available in Unlocked Packages. This is a great question, Robert! Thank you for asking it. I'll do my best to answer both parts of this question: Can ...


8

I use superfell's excellent Trapdoor for the Mac (stores the org credentials in the Mac Keychain, so it's pretty secure). On the PC, there are any number of browser-based password managers. In a more permanent, 'production' setting (you actually want to make an SSO link between two orgs), you could do org-to-org sign on with SAML or Authentication Providers....


8

This isn't going to be a big help right out of the box for the type of situation you are experiencing, but I really like Chrome plugins like Salesforce.com Sandbox Favicon Extension . Now, this uses the URL to impose an S over the cloud logo (so test.salesforce.com is distinguished from login.salesforce.com), but you may be able to use this extension as ...


8

The short answer is no. I think that once the app is installed you do have that info, but that's not useful to you :) The answer to your second question isn't as easy. It depends on what your app does, who you're targetting and the cost. From my experience (I'm part of one of the largest salesforce consultancies in Europe) most Orgs are EE. If possible you ...


8

Great observations. I've encountered these are two variations: someone who logs into the AppExchange and clicks Get It Now will have: lead source SFDC IN|PackageName appropriate campaign membership a Trial license created someone who holds the package install link (eg by copying it out of the URL) will get: lead source Package Install no campaign ...


8

You can join the partner program as an individual ISV partner and list free apps on the app exchange (managed or unmanaged) at no cost (I've done so!). However, you'll need to be fairly persistent with folks at SFDC to keep your stuff moving, they seem to forget about the small players sometimes.


8

You should be able to sign up for a partner community using your dev org login credentials where you have built the package . https://partnersignup.salesforce.com/partnerLogin You will get access to publishing console once you are in partner community that should help you to publish and manage your listing . You will need an email other than Gmail ...


7

Subscriber Logging and Full Debug. In the ISVForce Guide, there is a section on supporting your customers, Troubleshooting in Subscriber org.. Note you will need to pass the Security Review to enable Subscriber Support login for you package (as well as a number of other features such as Push Upgrade). "When logged in as a user in a subscriber’s ...


7

I've hit a large number of bytecode caching issues related to managed packages in the last year - in many cases they can be resolved by using the Setup > Develop > Apex Classes > Compile all classes link. This forces a recompile of all your existing apex, which should clear out any invalid cached copies. Unless you have too many apex classes in your org, in ...


7

You can use the describeTabs method to list the current applications and determine if the selected app is the one your looking for. I created a HTML side bar component with an IFRAME containing this page, when i switch applications it updates with accordingly. <apex:page controller="MyAppController" showHeader="false" sidebar="false">{!message}</...


7

There is no documented limit on the recursion depth possible, but there are other limits that apply to this question. Execution Time: The entire time for a transaction is 10,000ms; this time is shared. Multiple packages are likely to reach this limit sooner. Referenced Namespaces: You can reference at most 10 namespaces in a single transaction. Assuming ...


7

We just got this answer from Salesforce.com Support regarding our related case. There is this knowledge article for this kind of problem Removing Obsolete Visualforce from Managed Packages Eric Adding to the answer If you have already deleted and packaged up the changes to a new package you will need to follow the below steps to upgrade users to the new ...


7

You can upload and distribute unmanaged (and even managed) packages, but you won't be able to list it "publicly." Users can still install it if they can get a link to it, for example, from your website. If you want to actually have it be searchable directly in the AppExchange, you need to get certified (i.e. pass security review), which requires being in an ...


7

Probably a good question for Partner Success. But I know myself and other ISVs I talked to were put off by the cost - it was pretty expensive to buy cache dedicated to my namespace since it was a per customer expense, rather than something I could just buy once for my app and distribute it with it (but that could have changed since I last inquired) It was ...


Only top voted, non community-wiki answers of a minimum length are eligible