Packaging and AppExchange Listing

download Packaging and AppExchange Listing

If you can't read please download the document

Embed Size (px)

Transcript of Packaging and AppExchange Listing

Packaging and AppExchange ListingJune 7th 2016

#jaipurDUG

#

SpeakerNeetu BansalSenior Software Engineer, Metacube Software Pvt. Ltd.neetu.bansal.5@gmail.com

#jaipurDUG

#jaipurDUG

#

AgendaQuick Recap of Packaging

Manage Package

Running Apex after installing/uninstalling

How to create Packages

Quick Recap of AppExchange Listing

Developing App Documentation

Choose an Installation Option

#jaipurDUG

Recap on Packaging

#jaipurDUG

A package is a container for something as small as an individual component or as large as a set of related apps. After creating a package, you can distribute it to other Salesforce users and organizations, including those outside your company.

Packages come in two forms:UnmanagedManaged

#jaipurDUG

#

Components: A component is one constituent part of a package. It defines an item, such as a custom object or a custom field.

Attributes: An attribute is a field on a component, such as the name of an email template or the Allow Reports checkbox on a custom object.

#jaipurDUGAnalogous toKarelGoogle Blockly Lego Mindstorms NXT / EV3#

Managed PackageNamespace PrefixBeta PackageReleased PackagePackage VersionPatchPatch Development OrganizationPatch ReleasePublisherPush UpdatesUploading

#jaipurDUGDesign ProcessesBuild ProcessFuture:MonitorManageSimulate

Running Apex while InstallingYou can use the script to populate custom settings, create sample data, send an email to the installer, notify an external system, or kick off a batch operation You can only specify one post install script. It must be an Apex class that is a member of the package.The post install script is invoked after tests have been run, and is subject to default governor limits. It runs as a special system user that represents your package.

#jaipurDUGAnalogous toKarelGoogle Blockly Lego Mindstorms NXT / EV3#

Running Apex while UninstallingThis makes it possible to perform cleanup and notification tasks based on details of the subscribers organization.For simplicity, you can only specify one uninstall script. It must be an Apex class that is a member of the package.If the script fails, the uninstall continues but none of the changes performed by the script are committed. Any errors in the script are emailed to the user specified in the Notify on Apex Error field of the package

#jaipurDUGAnalogous toKarelGoogle Blockly Lego Mindstorms NXT / EV3#

Lets Create Package

#jaipurDUGYou call follow along if youd like to.

#

Convert Unmanaged Packages to ManagedNotify your current installers of how to save their dataExport all the data from the previous, unmanaged version of the package.Uninstall the unmanaged package.Install the new managed version of the package.Import all the exported data into the new managed package.

Convert an unmanaged package into a managed packageEnable managed packages for your organization.From Setup, enter Packages in the Quick Find box, then select Packages.Edit the package that you want to make managed, then select Managed.

#jaipurDUG

Recap on AppExchange Listing

#jaipurDUG

AppExchange: The AppExchange is a sharing interface from Salesforce that allows you to browse and share apps and services for the Force.com platform.

License Management Application (LMA) : A free AppExchange app that allows you to track sales leads and accounts for every user who downloads your managed package (app) from the AppExchange.

License Management Organization (LMO): The Salesforce organization that you use to track all the Salesforce users who install your package. A license management organization must have the License Management Application (LMA) installed

#jaipurDUGDesign ProcessesBuild ProcessFuture:MonitorManageSimulate

Developing App DocumentationSalesforce recommends publishing your app on AppExchange with the following types of documentation:Configure OptionDatasheetCustomization and Enhancement guideCustom Help#forcewebinar

#jaipurDUG

#jaipurDUG

#

Publish your app on AppExchangeIf your listing is an app or component, connect your packaging organization to the AppExchangeCreate a provider profile.Review tips for creating a listing that excites and engages customers.Create the listing.If your listing is an app or component, submit the package for security review.After your app is approved, publish the listing on the AppExchangeReview the analytics to see how your listing is performing.

#jaipurDUGTest how:

Sandbox -> u

http://salesforceyoda.com/2014/05/06/how-i-learned-to-stop-worrying-and-test-my-flow/http://www.shellblack.com/administration/tips-for-troubleshooting-salesforce-flow-for-new-users/#

Salesforce Best Practices for Security ReviewAll Classes in Sharing mode onlyNo Reflected XSS or Cross Side scripting issuesEnforcing CRUD/FLSNo DML in action attribute of Javascript in Salesforce DOM

#jaipurDUG

Choose an Installation OptionDirectly from AppExchangeFrom your WebsiteClient should contact the distributor of Package

#jaipurDUG

#

Q&A

Neetu BansalSenior Software Engineer, Metacube Software Pvt. Ltd.neetu.bansal.5@gmail.com

#jaipurDUG

#jaipurDUG

#

Thank You

#jaipurDUG

#jaipurDUG

#