renatoliveira / OrgShape

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

OrgShape

OrgShape is a delightful and elegant way to inspect your org within Apex. It surfaces the standard Organziation object details as class properties. Additionally, it provides methods for determining other things. For instance, whether or not your org has Platform Cache enabled or whether the current execution context is a SeeAllData=true unit test.

OrgShape is a library extraction from Apex Recipes

Badges

License: CC0-1.0 CI Workflow Packaging Workflow codecov Twitter

Contributing

Contributions are always welcome!

See contributing.md for ways to get started.

Please adhere to this project's code of conduct.

Installation

To install or deploy OrgShape you have three options:

  1. SPM Install: This is the preferred method, but it requires SPM. Find out more here. sfdx spm:install -n 'OrgShape'
  2. Package Link: Click this link to install the OrgShape unlocked package in your org.
  3. Git Clone: This is an exercise left to the reader.

Usage/Examples

Determine your org's ID

Id orgId = new OrgShape().Id;

Check if this org is Multi-Currency enabled

Boolean isMultiCurrencyOrg = new OrgShape().multiCurrencyEnabled;

List of exposed Organization properties

Note, these properties are all exposed from a Soql query to the Organization object. The query is memoized, so multiple checks of Organization properties within the same transaction only incur a single SOQL Query cost. These properties are all accessed the same way, using this formula:

new OrgShape().<<PROPERTYNAME>>

Full list of properties:

  • orgShape.isSandbox
  • orgShape.multiCurrencyEnabled
  • orgShape.orgType
  • orgShape.isReadOnly
  • orgShape.instanceName
  • orgShape.podName
  • orgShape.getFiscalYearStartMonth
  • orgShape.id
  • orgShape.locale
  • orgShape.timeZoneKey
  • orgShape.name
  • orgShape.namespacePrefix

Exposed Methods

OrgShape exposes methods that determine feature availability or execution context through logically derived methods. For instance, determining if PlatformCache is enabled must be deduced by looking at other objects and aspects of the org.

Determine if Platform Cache is enabled and available

Boolean platformCacheEnabled = new OrgShape().isPlatformCacheEnabled();

Determine if the current transaction Quiddity SeeAllData=true

Boolean isCodeyCrying = new OrgShape().isSeeAllDataTrue();

Determine if Advanced Multi-Currency Management is enabled

Boolean advMultiCurrencyMangagement = new OrgShape().isAdvancedMultiCurrencyManagementEnabled();

Acknowledgements

About

License:Creative Commons Zero v1.0 Universal


Languages

Language:Apex 98.9%Language:JavaScript 1.1%