# Configuring Pack Copy Management (Veeva Claims)

[Veeva Claims](/en/lr/54331/) Pack Copy Management provides users with the ability to [manage all content that appears on packaging labels](/en/lr/63391/). Brand marketers can create and manage content such as claims, logos, corporate addresses, or usage instructions and organize the pack copy content by levels and panels.

 Users can specify a pack copy as a global pack copy and [generate local pack copies](/en/lr/63391/#auto-localize) from the global pack copy based on multiple location selections. Before generating local pack copies, users can check to see if any elements are missing localizations. Translators can review element text and provide translations of these localized elements.

Pack Copy Management is automatically active on all Veeva Claims Vaults. Veeva Claims allows you to edit and add to your application data model by customizing standard objects, creating custom objects, and configuring object relationships.  You can also configure business rules using lifecycle and workflow options.

## Configuration Overview {#overview}

Configuring your Vault to use Pack Copy Management involves the following steps:

1. [Configure object layouts][15]
2. [Add values to picklists][16]
3. [Configure localize pack copy][23]
4. [Configure object lifecycles][1]
5. [Configure object actions][17]
6. [Configure _Panel Element_ hierarchical copy][19]
7. [Optional: Review mismatched _Panel Elements_][3]
8. [Configure user permissions][0]

<div class="note-border alert-info">
  <div class="alert alert-info" role="alert">
    <div><i class="far fa-info-circle"></i></div>
    <div class="alert-text">
      <p><strong>Note</strong>: Depending on your Vault’s creation date and which features are currently enabled and configured, some of the steps described in this article may be unavailable or already complete in your Vault.</p>
    </div>
  </div>
</div>



## Configuring Object Layouts {#page-layout}

You must modify object layouts so that users can access functionality.

### Pack Copy Field

We recommend adding the _Pack Copy_ field to the _Panel_ [object layout](/en/lr/26387/). When users create a new _Panel_, Vault populates the _Pack Copy_ field with the applicable grandparent _Pack Copy_ (the parent of the _Panel's_ parent _Packaging Level_). This field is system-managed and cannot be modified by users.

### Define Package Levels and Panels Section

The _Define Package Levels and Panels_  section allows users to create a _Pack Copy_, _Packaging Levels_, and _Panels_ from a single dialog or page. You must insert the _Define Package Levels and Panels_ section to the _Pack Copy_ object layout.

To insert the _Define Package Levels and Panels_ section to the _Pack Copy_ [object layout](/en/lr/26387/):

1. Navigate to **Admin > Configuration > Objects > Pack Copy > Layouts > [Layout]**.
2. Insert the _Define Package Levels and Panels_ control section with the slider (<img class="inline" src="https://platform.veevavault.help/assets/images/CPC-Icon-Slider.png" alt="Slider Icon" style="" />) icon to the object layout.
3. In the _Define Package Levels and Panels_ dialog, you can make the following changes:
  * Optional: Change the **Section Label**.
  * Optional: In the **Show the section only in these lifecycle states** field, select one (1) or more lifecycle states. This option only appears if the object uses a [lifecycle](/en/lr/29798/).
  * Optional: Enter **Section Help** content to provide the user with any relevant information. Help content appears below the section label.
4. Click **Done**.

### Hierarchy Section {#hierarchy}

The _Hierarchy_ section allows users to view and navigate the hierarchical relationship between _Pack Copies_, _Packaging Levels_, and _Panels_. We recommend inserting the _Hierarchy_ section to the _Pack Copy_, _Packaging Level_, and _Panel_ object layouts so that users can access the hierarchy viewer regardless of the object or section from which they click into the hierarchy.

To insert the _Hierarchy_ section to [object layouts](/en/lr/26387/):

1. Navigate to **Admin > Configuration > Objects > [Object] > Layouts > [Layout]**.
2. Insert the _Hierarchy_ control section with the slider (<img class="inline" src="https://platform.veevavault.help/assets/images/CPC-Icon-Slider.png" alt="Slider Icon" style="" />) icon to the object layout.
3. In the _Add Hierarchy_ dialog, you can make the following changes:
  * Optional: Change the **Section Label**.
  * Optional: In the **Show the section only in these lifecycle states** field, select one (1) or more lifecycle states. This option only appears if the object uses a [lifecycle](/en/lr/29798/).
  * Optional: Enter **Section Help** content to provide the user with any relevant information. Help content appears below the section label.
  * Optional: Select the **Expand the section by default** checkbox so that the section is always open when users open the records.
4. Click **Done**.

### Bulk Add Element User Input Layout {#user-input}

The _Bulk Add Element User Input_ object is used on the [_Details (Step 4)_ page](/en/lr/63391/#add-element-multiple) when users run the _Bulk Add to Pack Copy_ action to add _Elements_ to _Panels_. You must modify the _Bulk Add Element User Input_ object layout so that users can use the _Bulk Add to Pack Copy_ action:
 
* Remove the _Panel_ (`panel__v`) field from the object layout.
* Add the _Select Panels_ (`select_panel__v`) control field with the slider (<img class="inline" src="https://platform.veevavault.help/assets/images/CPC-Icon-Slider.png" alt="Slider Icon" style="" />) icon.
* Optional: Remove or hide any unnecessary fields. We suggest hiding all fields except the _Pack Copy_ and _Select Panels_ fields. 

## Adding Values to Picklists {#picklists}

Pack Copy Management includes the following [picklists](/en/lr/1269/):

* **Pack Copy Type**: This picklist contains values for specifying the type of pack copy, and is used when users create a _Pack Copy_.
* **Pack Level**: This picklist contains values for specifying the pack level, and is used when users _Create Pack Copy_.
* **Pack Type**: This picklist contains values for specifying the packaging type, and is used when users _Create Pack Copy_.
* **Panel**: This picklist contains values for specifying the type of panel, and is used when users _Create Pack Copy_.
* **Element Type**: This picklist contains values for specifying the type of elements, and is used when users create _Elements_. You can define [localization settings][23] for specific types included in this picklist.
* **Location on Panel**: This picklist contains values for specifying where to put an element on a panel, and is used when users create _Elements_.
* **Language** (`country_language__v`): This picklist contains language values in [country-language mappings](/en/lr/76208/), which are used when users generate localized pack copies. This picklist contains values also used for _Element_ language and _Statement_ language.

You can [add values to these picklists](/en/lr/1269/) to suit your organization's needs.

## Configuring Localize Pack Copy {#lpc-config}

The _Pack Copy_ object contains the _Localize Pack Copy_ action, which allows users to generate a _Local Pack Copy_ from a global _Pack Copy_ and to check for missing localizations. Users can select the elements for which to create local element placeholders for specified locations in the _Localize Pack Copy_ dialog. See [Configuring Localize Pack Copy](/en/lr/78475/) for details.

## Configuring Lifecycles {#lc}

Your Vault includes lifecycles on the _Element_ and _Pack Copy_ objects, which you can configure to suit your organization's needs.

### Element Lifecycle {#element-lc}

Your Vault must be configured with a [lifecycle enabled](/en/lr/30683/#enable-lifecycles) on the _Element_ object in order to configure the [_Bulk Add to Pack Copy_][18] action.

### Pack Copy Lifecycle

_Pack Copy Lifecycle_ is an [object lifecycle](/en/lr/30683/), which applies to all _Pack Copies_. Newly-created objects begin in the _New_ state and have other states of: _Approved_, _In Translation_, _Translated,_ and _Rejected_. You can add custom lifecycle states to suit your organization's needs.

You can configure and use state changes as simple actions to move projects from one (1) state to another and also configure [custom workflows](/en/lr/33550/) to suit your specific needs.

## Configuring Object Actions {#actions}

Pack Copy Management includes several object actions to help users manage pack copy.

### Clone Pack Copy {#clone-pack-copy}

The _Pack Copy_ object contains the _Clone Pack Copy_ action, which allows users to clone a _Pack Copy_ and its associated _Packaging Levels_ and _Panels_, as well as create new _Element_ join records. For _Elements_, the _Clone Pack Copy_ action creates new join records to the elements referenced in the _Pack Copy_ from which the copy was made. As best practice, users should modify the title of the new _Pack Copy_ after cloning.

Review the following behavior regarding the process of cloning a _Pack Copy_:

* Vault inserts "_[Copy n of]_" to the cloned _Pack Copy_ title.
* The cloning process adheres to the [permissions][0] of the user who initiated the action, allowing the user to view and copy only the records to which they have _Read_ and _Edit_ access.
* If your configuration has enabled object types for the _Pack Copy_ object, the cloning process regarding the combinations of selected or not selected values for the attributes _Values must be unique_ and _Users must always enter a value (required)_ is the same as detailed in the table below; however, for any field that has both _Values must be unique_ and _Users must always enter a value (required)_ selected on only the object type (and not on the base object type), Vault skips the _Pack Copy_ and _Packaging Level_ objects in the cloning process but creates the _Panels_ and _Element_ join records, and copies the field.
* If your configuration has enabled object types for the _Pack Copy_ object but the field _Copied From Pack Copy_ is not enabled on the object type, the value for _Copied From Pack Copy_ is not populated during the cloning process.

Review the following table regarding custom fields on the _Pack Copy_ object with varying combinations of required and unique attribute values:

<table>
  <tr>
    <th><strong>If</strong> <strong><em>Users must always enter a value (required)</em></strong><strong> is&#8230;</strong></th>
    <th><strong>And</strong> <strong><em>Values must be unique</em></strong><strong> is&#8230;</strong></th>
    <th><strong>Then&#8230;</strong></th>
  </tr>
  <tr>
    <td>Selected</td>
    <td>Not selected</td>
    <td>Vault copies the field</td>
  </tr>
  <tr>
    <td>Not selected</td>
    <td>Selected</td>
    <td>Vault copies the <em>Pack Copies</em> and <em>Packaging Levels</em> but not the field value. Vault creates the <em>Panels</em> and <em>Element</em> join records, and copies the field</td>
  </tr>
  <tr>
    <td>Not selected</td>
    <td>Not selected</td>
    <td>Vault copies the field</td>
  </tr>
  <tr>
    <td>Selected</td>
    <td>Selected</td>
    <td>Vault skips the <em>Pack Copy</em> and <em>Packaging Level</em> objects in the cloning process but creates the <em>Panels</em> and <em>Element</em> join records, and copies the field</td>
  </tr>
</table>

To configure the _Clone Pack Copy_ action:

1. Navigate to **Admin > Configuration > Objects > Pack Copy**.
2. On the **Actions** tab, click **Create**.
3. In the _Create Action_ dialog, select **Clone Pack Copy**.
4. Click **Continue**.
5. Optional: Type a **Description** of the action.
6. Click **Save**.

#### About DAC for Objects {#dac}

When users create a new _Pack Copy_ by running the _Clone Pack Copy_ action, Vault sets the _Vault Owner_ group as the owner of the new _Pack Copy_  and its generated child records. 

If you [configure DAC](/en/lr/33946/) on the _Pack Copy_ object, Vault assigns the current user as the owner of the generated _Pack Copy_. For Vault to assign the current user as the owner for the generated child records, you must configure DAC for the following objects: 

* _Packaging Level_
* _Panel_
* _Panel Element_

### Auto Create Element {#auto-create-element}

The [_Claim_](/en/lr/54344/) object contains the _Auto Create Element_ action which, when configured, creates an _Element_ of type _Claim_ when a _Claim_ moves into a specified lifecycle state. The new _Element_ contains a reference to the _Claim_ from which the _Element_ was created in the _Claim_ field.

When configuring the _Auto Create Element_ action, you must have _Execute_ permission for the action, _Create_ permission on the _Element_ object, and _Read_ permission on the _Claim_ object. If you configure the action without the appropriate permissions, the action will fail to run when _Claims_ move into the specified lifecycle state.

Review the following behavior regarding the process of automatic _Element_ creation:

* The _Name_ field on the newly-created _Element_ is generated during creation, and the _Element Type_ field value is _Claim_; all other fields on the new _Element_ are blank.
* If your Vault has object types enabled for the _Element_ object, newly-created _Elements_ are of the specified default object type.
* If your Vault has an existing _Element_ that references the _Claim_, the action does not create a duplicate _Element_ or override the existing _Element_; an element record is not auto-created.
* Newly-created _Elements_ do not have an associated global element.

Depending on your business needs, you can:

* Add this action as a [system action workflow step](/en/lr/33550/) in the _Claim_ workflow.
* Add this action as an [entry action](/en/lr/59885/#entry-actions) on any _Claim_ lifecycle state.

### Bulk Add to Pack Copy {#bulk-add}

The _Element_ object contains the _Bulk Add to Pack Copy_ action, which allows users to add _Elements_ to multiple _Panels_ related to a user-specified _Pack Copy_, generating new _Panel Element_ join records. If applicable, this action also generates new system-managed _Usable Element Locations_ to associate generated local _Elements_ to the _Location_ of the _Pack Copy_. To configure the _Bulk Add to Pack Copy_ action:

1. [Assign](/en/lr/43127/#assign-actions) the _Bulk Add to Pack Copy_ action to the _Element_ object and select the **Available in All Lifecycle States** checkbox to apply atomic action security defaults for the applicable lifecycle states.

2. Add the action as a [user action](/en/lr/59885/#user-actions) to the applicable states of the [_Element_ object lifecycle][2].

#### Configuring the Bulk User Input Object Cleanup Job {#cleanup-job}

When users run the _Bulk Add to Pack Copy_ action, Vault collects the user's _Pack Copy_ and _Panel_ selections using the _Bulk Element User Input_ object and creates temporary _Bulk Element User Inputs_ for the _Pack Copy_ selected by the user on the _Details (Step 4)_ page. The _Bulk User Input Object cleanup Job_ deletes the temporary user input records created more than 24 hours before the _Bulk Add to Pack Copy_ job runs. You can [configure the job's schedule](/en/lr/22897/#scheduling) to run at a specific time. We recommend that you schedule this job to run daily. 

## Reviewing Mismatched Panel Element Records {#review}

<div class="note-border alert-info">
  <div class="alert alert-info" role="alert">
    <div><i class="far fa-info-circle"></i></div>
    <div class="alert-text">
      <p><strong>Note</strong>: As of 24R1, users cannot add a local <em>Element</em> (the <em>Global Element</em> field of the <em>Element</em> is populated) to a <em>Panel</em> on a global type of <em>Pack Copy</em>, or a global <em>Element</em> (the <em>Global Element</em> field of the <em>Element</em> is blank) to a <em>Panel</em> on a local type of <em>Pack Copy</em>. Use the <em>Pack copy and elements mismatched type Job</em> to identify mismatched records created prior to 24R1.</p>
    </div>
  </div>
</div>



The _Pack copy and elements mismatched type Job_ identifies all _Panel Elements_ for mismatched local and global _Elements_ and _Pack Copies_. To run the job and review all mismatched records:

1. Navigate to **Admin > Operations > Job Definitions**.
2. Click **Create**.
3. Enter a **Title**.
4. Optional: Define the **Schedule** and **Time**.
5. Change the **Status** to **Active**.
6. For **Type**, select **SDK Job**.
7. In the **Job** drop-down, select **Pack copy and elements mismatched type Job** (`com.veeva.vault.app.claims.claims.jobs.PackCopyAndElementsMismatchedDataJob (Pack copy and elements mismatched type Job)`).
8. Click **Save**.
9. After the job runs, navigate to [**Admin > Operations > Job Status**](/en/lr/24762/).
 10. For the completed _Job ID_ in the _History_ section, click the **Actions** menu and select **Download Log**.

The log file includes up to 50,000 mismatched records, which lists each combination of mismatched _Pack Copy_, _Panel Element_, and _Element_ IDs. We recommend updating all records as applicable and then rerunning the job to ensure you've made all necessary changes.

## Configuring Panel Element Hierarchical Copy {#hierarchical-copy}

You can configure your Vault to enable users to copy the hierarchy of related child _Panel Elements_ when copying _Panels_ and _Elements_. To do this, select the [**Allow hierarchical copy**](/en/lr/28740/#create_relationships) checkbox for the _Panel_ and _Element_ fields on the _Panel Element_ object.

## Configuring User Permissions {#user-perm}

You must ensure users have the appropriate read and create [permissions](/en/lr/22824/) to access the appropriate objects and object fields in addition to the permissions outlined below:

### Packaging Level & Panel Object Creation

Users must have _Edit_ permission on the following [object fields](/en/lr/39108/) in order to create and relate multiple related _Packaging Levels_ and _Panels_ simultaneously:

* On the _Packaging Level_ object: the _Pack Level_ picklist field and _Pack Type_ picklist field.
* On the _Panel_ object: the _Panel_ picklist field.

### Clone Pack Copy Action

For users to run the _Clone Pack Copy_ action, they must have _Create_ permission on the _Pack Copy_ object as well as  _Execute_ permission for the _Clone_ _Pack Copy_ object action. In addition, users should be granted _Read_ permission on any custom fields.

### Bulk Add to Pack Copy Action

For users to run the _Bulk Add to Pack Copy_ action, they must have _Create_ permission on the _Bulk Element User Input_ and _Panel Element_ objects as well as _Read_ permission on the _Pack Copy_, _Packaging Level_, and _Panel_ objects.

### Panel Element Hierarchical Copy

For users to copy the hierarchy of _Panel Elements_ when copying _Panel_ and _Element_ objects, they must have _Read_ permission on the _Panel Element_ object.

### Hierarchy Viewer & Navigator

For the _Hierarchy_ section to be visible to users, users must have _Read_ access to at least one (1) object in the hierarchy; however, ideally users should have access to all objects in the hierarchy: _Pack Copy_, _Packaging Level_, and _Panel_. For the columns in the hierarchy to be visible to users, they must have _Read_ access to the object fields which display in columns for each object in the hierarchy:

* For _Pack Copy_ objects: _Pack Copy ID_, _Pack Copy Type_, _Title_.
* For _Packaging Level_ objects: _Pack Level ID_, _Packaging Level_, _Pack Type_.
* For _Panel_ objects: _Panel ID_, _Panel_.

If a user does not have access to any of the objects in the hierarchy, the section does not appear in the object layout. If a user has access to only some but not all objects in the hierarchy, the section appears but users can see only objects to which they have read access. If a user does not have access to a particular object field, the column does not appear.

If object types are enabled, users must have _Read_ permission on all object types of the objects in the hierarchy for the section to be visible.

## Related Permissions

You can complete all the steps in this article with the standard _System Administrator_ or _Vault Owner_ security profile. If your Vault uses custom security profiles, your profile must grant the following [permissions](/en/lr/22824/):

<table>
  <tr>
    <th><strong>Type</strong></th>
    <th><strong>Permission</strong></th>
    <th><strong>Controls</strong></th>
  </tr>
    <tr>
    <td>Security Profile</td>
    <td>Admin: Configuration: Object Lifecycles: Create, Edit</td>
    <td>Ability to create and modify object lifecycles.</td>
  </tr>
  <tr>
    <td>Security Profile</td>
    <td>Admin: Configuration: Objects: Create, Edit</td>
    <td>Ability to create and modify Vault objects.</td>
  </tr>
  <tr>
    <td>Security Profile</td>
    <td>Admin: Security: Permission Sets: Edit</td>
    <td>Ability to modify permission sets for users.</td>
  </tr>
</table>

 [0]: #user-perm
 [1]: #lc
 [2]: #element-lc
 [3]: #review
 [8]: #lpc-admin-setting
 [9]: #user-input
 [10]: #picklists
 [15]: #page-layout
 [16]: #picklists
 [17]: #actions
 [18]: #bulk-add
 [19]: #hierarchical-copy
 [20]: #cleanup-job
 [23]: #lpc-config