> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flexagon.com/llms.txt
> Use this file to discover all available pages before exploring further.

# generateComparisonReport

> The operation generates the Comparison report as PDF and adds it to the execution reports tab. Compares the package version artifact against the Sales

The operation generates the Comparison report as PDF and adds it to the execution reports tab. Compares the package version artifact against the Salesforce Org and generates a report with all the differences. This operation can be used in Build, PreDeploy, Deploy, or Utility workflow.

The typical use case would be generating a report as part of preDeploy to generate the report for the Salesforce Org that the package getting deployed to. So that users can review and approve the change to complete the deployment. You can use it after building the package version artifact in the build workflow by specifying the input of Salesforce Org accounts. So that it will generate a report for each Salesforce Org selected.

The report generates the following Pages:

1. Summary page with package details and summary of counts indicated total, new, and modified objects.

2. Count of New and Modified objects for each Object Type that is part of the packaged artifact.

3. List of New Objects (if new objects are part of packaged artifact)

4. List of Modified Objects (if modified objects are part of packaged artifact)

5. Changes for each modified object (if modified objects are part of packaged artifact)

> [!NOTE]
>
> Please note that if you have sub-components in the package, it will compare to the full object file in this version. When you read the report consider only your sub-component section in the Changes (#5 above) section.

# Target Properties

<table><colgroup><col /><col /><col /><col /></colgroup><tbody><tr><th>**Property Name**</th><th>**Property Code**</th><th>**Required**</th><th>**Description**</th></tr><tr><td>Salesforce Account Code</td><td>`FDSF_ACCOUNT_CODE`</td><td>Yes</td><td>Salesforce Account with all the required properties like User, Password, Client Id, etc.</td></tr></tbody></table>

# Cloud Account Properties

<table><colgroup><col /><col /><col /><col /></colgroup><tbody><tr><th>**Property Name**</th><th>**Property Code**</th><th>**Required**</th><th>**Description**</th></tr><tr><td>Salesforce User Email</td><td>`FDSFCA_USER`</td><td>Yes</td><td>Authentication User Email.</td></tr><tr><td>Salesforce Password</td><td>`FDSFCA_PASSWORD`</td><td>No</td><td>The Salesforce password for Salesforce User.If you are using a security token, paste the 25-digit token value to the end of your password.If you don't know the security token, see [[http://salesforce.stackexchange.com/questions/95259/where-is-reset-security-token-option-in-salesforce](http://salesforce.stackexchange.com/questions/95259/where-is-reset-security-token-option-in-salesforce)](http://salesforce.stackexchange.com/questions/95259/where-is-reset-security-token-option-in-salesforce)</td></tr><tr><td>JWT Key File</td><td>`FDSFCA_SERVER_KEY_FILE`</td><td>No</td><td>Path to a file containing the private key</td></tr><tr><td>Client Id</td><td>`FDSFCA_CLIENT_ID`</td><td>No</td><td>OAuth client ID (sometimes called the consumer key)</td></tr><tr><td>Client Secret</td><td>`FDSFCA_CLIENT_SECRET`</td><td>No</td><td>OAuth client secret (sometimes called the consumer secret)</td></tr><tr><td>Development Org Type</td><td>`FDSFCA_ORG_TYPE`</td><td>No</td><td>Enter Org type for Development Environment. Eg: Sandbox or DevHub or DeveloperSince 9.0.0.8 version, this property has been updated to a List data type and now accepts the following values<ul><li>Production org</li><li>Sandbox</li><li>Developer Edition</li><li>Developer Edition with DevHub</li><li>Scratch org</li><li>Other</li></ul></td></tr><tr><td>Salesforce URL</td><td>`FDSFCA_URL`</td><td>No</td><td>The login URL of the instance the org lives on</td></tr><tr><td>Sandbox Name</td><td>`FDSFCA_SANDBOX`</td><td>No</td><td>The name of a Sandbox to access**Note **- It is required when Development Org Type is selected to Sandbox</td></tr><tr><td>Security Token</td><td>`FDSFCA_SECURITY_TOKEN`</td><td>No</td><td>Salesforce security token for Salesforce User. **Refer **Salesforce Password description.</td></tr></tbody></table>

# Inputs

<table><colgroup><col /><col /><col /><col /></colgroup><tbody><tr><th>**Input Name**</th><th>**Input Code**</th><th>**Required**</th><th>**Description**</th></tr><tr><td>Salesforce Account Code</td><td>`FDSF_ACCOUNT_CODE`</td><td>No</td><td>Multi-Select input to generate a report for specified accounts instead of environment’s Salesforce Org. If not provided, it gets the Salesforce Org from the environment’s property.</td></tr></tbody></table>

#  Outputs

<table><colgroup><col /><col /><col /></colgroup><tbody><tr><th>**Output Name**</th><th>**Required**</th><th>**Description**</th></tr><tr><td>`FDSF_OUT_OBJECTTYPE_COUNT`</td><td>No</td><td>Count for each Object type. It contains new and modified count for each object type that is in the package. It returns in the list format: \[\[ObjectType1, NewCount, ModifiedCount],\[ObjectType2, NewCount, ModifiedCount],\[ObjectType3, NewCount, ModifiedCount]]eg: \[\[ApexClass, 1, 0]]</td></tr><tr><td>`FDSF_OUT_NEW_OBJECTS`</td><td>No</td><td>List of new objects</td></tr><tr><td>`FDSF_OUT_MODIFIED_OBJECTS`</td><td>No</td><td>List of Modified objects</td></tr><tr><td>`FDSF_OUT_NEW_COUNT`</td><td>No</td><td>Total new objects count.</td></tr><tr><td>`FDSF_OUT_MODIFIED_COUNT`</td><td>No</td><td>Total modified objects count.</td></tr></tbody></table>

# Artifacts 

This operation consumes artifacts from the artifacts repository.

# Endpoint Selection

This operation will select all available endpoints associated with the Target.

# Endpoint Execution

This operation will execute on any one of the selected endpoints and will be random in the determination of which one.
