Packaging and AppExchange Listing

19
#jaipurDUG Packaging and AppExchange Listing June 7 th 2016

Transcript of Packaging and AppExchange Listing

Page 1: Packaging and AppExchange Listing

#jaipurDUG

Packaging and AppExchange ListingJune 7th 2016

Page 2: Packaging and AppExchange Listing

#jaipurDUG#jaipurDUG

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

.com

Page 3: Packaging and AppExchange Listing

#jaipurDUG

Agenda• Quick 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

Page 4: Packaging and AppExchange Listing

#jaipurDUG

Recap on Packaging

Page 5: Packaging and AppExchange Listing

#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:▪ Unmanaged▪ Managed

Page 6: Packaging and AppExchange Listing

#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.

Page 7: Packaging and AppExchange Listing

#jaipurDUG

Managed Package▪ Namespace Prefix

▪ Beta Package

▪ Released Package

▪ Package Version

▪ Patch

▪ Patch Development Organization

▪ Patch Release

▪ Publisher

▪ Push Updates

▪ Uploading

Page 8: Packaging and AppExchange Listing

#jaipurDUG

Running Apex while Installing

▪ You 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.

Page 9: Packaging and AppExchange Listing

#jaipurDUG

Running Apex while Uninstalling

▪ This makes it possible to perform cleanup and notification tasks based on details of the subscriber’s 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

Page 10: Packaging and AppExchange Listing

#jaipurDUG

Let’s Create Package

Page 11: Packaging and AppExchange Listing

#jaipurDUG

Convert Unmanaged Packages to Managed

▪ Notify your current installers of how to save their data– Export 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 package

– Enable 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.

Page 12: Packaging and AppExchange Listing

#jaipurDUG

Recap on AppExchange Listing

Page 13: Packaging and 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

Page 14: Packaging and AppExchange Listing

#jaipurDUG#jaipurDUG

Developing App Documentation

● Salesforce recommends publishing your app on AppExchange with the following types of documentation:○ Configure Option○ Datasheet○ Customization and Enhancement guide○ Custom Help

#forcewebinar

Page 15: Packaging and AppExchange Listing

#jaipurDUG

Publish your app on AppExchange

▪ If your listing is an app or component, connect your packaging organization to the AppExchange

▪ Create 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 AppExchange▪ Review the analytics to see how your listing is performing.

Page 16: Packaging and AppExchange Listing

#jaipurDUG

Salesforce Best Practices for Security Review▪ All Classes in Sharing mode only▪ No Reflected XSS or Cross Side scripting issues▪ Enforcing CRUD/FLS▪ No DML in action attribute of <apex:page>▪ Javascript in Salesforce DOM

Page 17: Packaging and AppExchange Listing

#jaipurDUG

Choose an Installation Option

▪ Directly from AppExchange▪ From your Website▪ Client should contact the distributor of Package

Page 18: Packaging and AppExchange Listing

#jaipurDUG#jaipurDUG

Q&ANeetu BansalSenior Software Engineer, Metacube Software Pvt. Ltd. neetu.bansal.5@gmail

.com

Page 19: Packaging and AppExchange Listing

#jaipurDUG#jaipurDUG

Thank You