3

getting a bit strained from reading tons of documentation and not really knowing what to search for.

I have created a Developers Force Free edition and created an application that uses Apex Classes and Triggers. I did all this without realizing that I would not be able to install it on a client's Professional Edition. Attempting to install the managed package results in:

Missing feature Apex Classes    Installing this package requires the following feature and its associated permissions: Apex Classes
Missing feature Apex Triggers   Installing this package requires the following feature and its associated permissions: Apex Triggers

After reviewing a bunch of SalesForce documentation http://www.salesforce.com/us/developer/docs/packagingGuide/Content/dev_packages_apex_ge_pe.htm this page informed me that if I was a partner with Salesforce my web call-outs would work fine. From that page:

However, Apex developed as part of an ISV app and included in a managed
package can run in GE/PE, even though those editions do not support Apex
by default.

Googling for ISV results in me finding ISVForce, yet another component of SalesForce I didn't know about. There are free trial versions and the monthly paid subscription versions.

My question is this, if I sign up for the Free Trial and recreate my Apex Code / custom object / custom setting / custom fields / Page Layout/ and List View will I be able to create the application as a managed package for SalesForce to review, give a stamp of approval for security, and make its APEX callout's available to my clients Professional Edition of Salesforce?

  • 1
    Welcome to SFSE. I don't think the security review is that quick nor do I think SF would allow that kind of loophole. – Mike Chale Jan 15 '14 at 22:05
  • I had a quick search for the error that you were given, i found the following Discussion on the Developer.salesforce.com forums. Developer forum post I believe this may help with your Question. – Michael Fleming Jan 15 '14 at 22:14
3

TL;DR

You can't get Apex Code "for free." Either they upgrade, or you release your app on the AppExchange.

More...

Apex Code isn't "free"; it requires Enterprise Edition or higher. The lower versions are basically teaser versions, with the intent that you'll grow into a larger edition (Enterprise Edition or better). Professional Edition expressly forbids anything beyond simple customization; integrations are where the power is, and that's what Enterprise Edition is for.

To get Group Edition/Professional Edition API/Apex Code access, you have to be (a) an ISV or OEM (b) that gets approved with a security review that includes API/Apex Code access (i.e. not a "fail" or "conditional pass" review), with the intent to (c) get published publicly on the AppExchange.

If you're willing to give your "app" away to everybody, or open it for public listing for a per-month fee, you would have a legitimate case, but if it's highly specialized (e.g. it won't work unless it's for that one client, or isn't easily configurable for the general public), odds are, you'll be out of luck with that route. If you make it free, you can't control the licensing, either; anyone can install it and use it without regards to license limits or expiration dates.

If your client is a 501(c) (not for profit), they may be able to apply for NFP status, which gives them a 10-user Enterprise Edition at no cost if they are approved. The other route is for you to become an OEM, which allows you to resell limited licenses (e.g. it may not allow CRM, etc, depending on your OEM agreement).

In summary, you may have to tell your client that they need Enterprise Edition, or rewrite the entire logic to run without Apex Code at all. Interestingly enough, Visualforce is allowed, and you can do callouts in Visualforce through Salesforce JavaScript Proxy, so that may be all you need (but it's still a relatively complex rewrite from where you apparently sit).

  • Thanks a bunch for the great answer. The only thing I'm thinking I won't be able to replicate with the VisualForce is the Apex Trigger I had, any (brief) thoughts on that? – EdgeCaseBerg Jan 16 '14 at 14:25
  • @EJEHardenberg It depends on what the trigger does (or would do). You can replicate most anything you'd do in a trigger in pure Visualforce, but it takes effort and crafty workarounds to avoid using Apex Code; you can do quite a lot with just JavaScript and some specially designed pages. – sfdcfox Jan 16 '14 at 15:10
  • I was monitoring whether an opportunity was 'closed won' or not in order to send the information to an external system (wordpress). The main thing I want to avoid is accidently including functionality that would cause the app to not install. For instance, I was using APEX to submit a Post request to a url. It looks like I'd be able to do this based on this but with my recent Salesforce adventures I'm not very trusting of the myself to be reading the right documentation – EdgeCaseBerg Jan 16 '14 at 15:18
  • @EJEHardenberg The AJAX proxy is available in Professional Edition. You can post to a URL using the proxy to send data, and that's okay with salesforce, at least for now. – sfdcfox Jan 16 '14 at 15:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.