Approving an Object
This topic describes how to approve an object in the workbench. When an object is approved, it moves to the Approved workspace.
Data Ownership
The concept of data ownership is very important in relation to approvals. For an object to be fully approved, all data that the object owns must also be approved. When data changes, the object that owns that data is considered 'modified' and can potentially become 'unapproved.'
The figure below shows data owned by a Product object (the largest box).
- A Product owns its parent link (also true for Classifications, Entities and Assets).
- The Product owns local values, but not inherited Specification Attribute values. Thus, when these are modified at an ancestor level, this will not affect the Product’s approval status. Also, the object's local values (that is, assigned at the product level), will be approved.
- The Product owns all local References and Links for which it is the Source. When a Link or Reference is modified, it is the Source that is changed while the Target is unaffected. Attribute values on the Reference / Link are likewise owned by the Source object.
Approve an Object
To approve an object, right-click on the object and select one of the available approval options, or use the options on the Maintain menu.
Note: If 'approval' is a task within a workflow, then objects can alternately be approved from the task view. Refer to Working with Tasks in Workflows in the Workflows documentation here.
Approve Objects is available when the Main workspace is selected.
Approving objects is available for:
- Classifications
- Products
- Images & Documents
- Entities (set up to be Workspace revisable)
The status of an object in the various workspaces can be viewed in the Status tab in the Workspaces field of the relevant editor.
Once object editing is complete, and the object is ready for publishing, approving the object copies the current object values into the Approved workspace.
Conditions to approve an object
- Objects must be approved from the Main workspace.
- An object cannot be approved if parent objects are not yet approved (approving must be done from the top down in the hierarchy).
- A Reference or Link cannot be approved if the Target does not exist in the Approved Workspace, i.e., if a Product / Classification is referenced with another Product / Asset / Classification, then the referenced Product / Asset / Classification needs to be approved first before the actual Product / Classification is approved.
- If Attributes or References / Links are Mandatory, objects cannot be approved if there are no values / targets.
- Externally Maintained Attributes or References / Links are not under revision control. Values / references will automatically be reflected in the Approved Workspace and modifying the data will not affect object’s approval status.
- The user must have sufficient Approve privileges.
- To easily check differences in the Main and Approved Workspaces, select Partial Approve, as discussed below.
- When approving, the object's revision number changes automatically.
- An entire hierarchy can be approved using the Approve Recursively option. For more information, refer to Approving Recursively below.
Partial Approve
It is possible to approve an object that has a Reference / Link to another object that does not exist in the Approved Workspace. In this instance, the object will become 'partially approved,' meaning that the object and all data that can be approved will be approved. However, the Reference / Link will not be approved. If the Target for the Reference / Link is later approved, the Source will need to be approved again for the Reference Link to be updated in the Approved Workspace.
Partial approvals can also be performed deliberately - both manually and programmatically. Specific Attributes, References, Links, and the object Name can be selected for approval. The Attributes, References, Links and Names are sometimes referred to as 'part objects.' These part objects cannot exist in the Approved Workspace without the object to which they belong. Thus, when the first part object is approved, the object will need to be present in the Approved Workspace.
Usage
Partial approval of selected elements of the object is particularly helpful in situations where certain elements of the object need to be available for usage (in the Approved Workspace) before the rest of the object or its elements can be approved.
For example, consider that there are two users who perform changes for a product and then approve the product. If the product is completely approved, then it can be difficult to identify which user performed specific changes. In this case, using the Partial Approve will allow the user to approve the changes performed only by them and leave the rest of the changes to be approved by the other user who made those changes.
Approve partially
- In the Tree, select the object to partially approve.
- In the Maintain menu, click Approval > Partial Approve. Optionally, right-click the selected object and click Partial Approve.
-
This will bring up the Partial Approve dialog box:
- The user has to select the required element / elements (for example, attributes) and click on ‘Approve Selected’ button.
Note: The attribute groups displayed to a user in the Partial Approve dialog are controlled by privilege rules. For more information, refer to the Privilege Rules topic in the Users and Groups section of the System Setup documentation (here).When an attribute is linked to multiple attribute groups that a user has privileges to, the attribute will display to the user in all of these attribute groups.
Partial Approve Compare View Dialog
The dialog shows which elements of the selected object have been changed since the last approval of the object.
Besides Name, Parent Object, and Default DTP Template, the type of elements listed are attributes, references, and tables. For each element the values in Main and Approved Workspaces are listed.
For detailed information about the value for an element, click the Details…link. This displays a detailed view of the element showing the values for the Main and Approved workspace:
In the above example, the value for the attribute Brand Name has changed. Values only present in Main workspace are marked with a green background color. Values only present in Approve workspace are marked with a red background color.
Note: The detailed view differs slightly depending on the element type selected.
All elements are selected as default. To deselect all elements, click the checkbox next to the All Elements node.
You can select the element(s) to approve by clicking the check boxes next to each element. You can also select a whole element group, i.e., Attributes by clicking the checkbox next to the element group.
To expand an element group click the + sign next to the element group. To collapse the element group, click the - sign next to the element group. To expand all elements in the dialog, click the Expand All button. To collapse all elements in the dialog, click the Collapse All button. To check if the selected elements can be successfully approved, click the Check button. An Approve report will subsequently summarize the result of the check.
This functionality is also available in the Web UI. For more information on this feature, refer to the Partial Approval in Web UI topic in the Web User Interfaces documentation here.
Clicking the Approve Selected button will approve the selected elements of the object and the Approve status of the object will change accordingly. Normal Privilege rules apply to Partial Approve. For more information, refer to Action Sets here.
Suppress Re-translation
Normally, an approval of a translated Product in a source language will cause the Translation status of the Product to be set to Re-translation needed. In the Partial Approval dialog this behavior can be suppressed by clicking the Suppress Re-translation checkbox. All existing translation relations with status 'Up to Date' will remain in status 'Up to Date'. This is especially used in cases where only minor changes are approved and no re-translation is needed. For more information, refer to the Translations documentation here.
Note: To get a list of language variations of the object that potentially will be affected by the approval, place the cursor on the Suppress Re-translation label.
Check Approve
If you are unsure whether or not you are allowed to completely approve an Object, you can run a Check Approve.
- In the Tree, click the Object to be approved.
The Editor shows the Object contents in Main and Approved Workspaces.
- In the Maintain menu, click Approval > Check Approve, or right-click on the object, and then select Check Approve option.
- If you only have changed attribute values for which you have the Approve privileges, a Complete Approval Possible dialog box appears.
- If the product cannot be approved due to multiple reasons, such as Mandatory values / References being empty, then the report will provide details about the missing information, as shown below:
Note: If you have changed attribute values for which you do not have the Approve privileges the Approval options are unavailable.
For example, consider a Product that has multiple attributes linked and has mandatory values and references which needs to be approved after the changes have been done. In this case, scrolling down or switching between tabs to check if the values are entered is time consuming; Check Approve will help the user to know if the product can be approved completely with a detailed report.
Approve Recursively
Approving recursively is done from the Main menu by clicking Approve Recursively. Similarly, the Approve Recursively can be done by right-clicking on the object.
Approving Recursively is available when a Main Workspace is selected.
Approving Recursively is available for:
- Classifications
- Products
- Images & Documents
- Entities (setup to be workspace revisable)
The status of an Object in the various Workspaces can be viewed in the History tab in the Workspaces field of the relevant Editor.
Approving Objects recursively means searching for unapproved Objects linked to (or below) a selected hierarchy node, and approving these Objects (copying them to the Approved Workspace).
This is useful and time saving e.g., when a lot of images have been imported and checked and should all be approved.
To recursively approve in the 'Main' Workspace:
- In the Tree, select the hierarchy containing the Objects to be approved.
- In the Maintain menu, click Approval > Approve Recursively.
A dialog box appears, listing the Name of the selected hierarchy node, contained Objects and status of analysis.
Note: Approve Recursively automatically performs a search for unapproved Objects. You can click the Skip Analysis button if this is not needed.
- Optionally, type a name for the process.
- Click OK button to start the approve process.
A dialog box appears displaying information on the process.
- Click Go to process button.
The Process view opens, showing details of the process and a report of approved Objects.
The hierarchy will now have Approved status indicating that it is copied in the Approved Workspace.
Approval Feedback
When clicking Approve Object or Partial Approve, you might get different types of warnings, depending on your Approve Privileges.
Approve Object Feedback
If you have modified attribute values for which you have Approve Privileges and at the same time have modified attribute values for which you do not have Approve Privileges, an Unable to Approve the Entire Object dialog appears.
If you have modified attributes values and do not have Approve Privileges, then the option 'Approve' is disabled in the right-click menu. If you have modified attributes values for which you do not have Approve Privileges, a Missing privileges dialog appears.
For more information about user privileges, refer to the User Actions and Error Descriptions topic in the System Setup documentation here.
Partial Approve Feedback
If you have modified attribute values for which you have Approve Privileges, and at the same time you have modified attribute values for which you do not have Approve Privileges, a Partial Approve dialog box appears.
In the example above, the user will be able to approve all attribute values in Attribute Group Manual Sequence and Category Specific Attributes. All attributes users do not have permissions for will not be displayed.
Approve Recursively feedback
- In BG Processes, click Approve Recursively, open Active or Ended Processes, click the relevant process.
-
In the Background Process tab, open Execution Report.
If there are any errors, the report will provide details about the error. If the process or approval was successful, then the report will show 0 errors and 0 warnings.
The following example shows a missing mandatory attribute value, which caused the object to not approve.
Approve Recursively dialog
There are multiple options which are explained below:
- Finding Unapproved Objects: This will analyze the hierarchy and then provide the count of the number of Products / Classifications / Assets / Entities which are currently in unapproved status.
- Empty Mandatory Links / values in Main Workspace: This provides the details about the number of mandatory links / references that are missing for the Products / Classifications / Assets / Entities.
- Start Process with Description: This option is used to enter the name for the Process before starting the background process. This option is not mandatory but is recommended as entering an identifiable name can be useful for review purposes.
- Skip Analysis: This option can be used in cases where the number of child products is large. The analysis of the number of unapproved or missing mandatory values / References can be time consuming but will provide the detailed report. By clicking this option, the analysis will stop and the user can proceed with the approving recursively.
For example, consider there are hundreds of products in a particular parent hierarchy. Selecting each product, one at a time, and then approving them would be time intensive. In these cases, approving recursively will help a user to approve all the products at one time.
Context Dependent Approvals
When an object is approved, that approval always happens in a specific context and will only be applicable to data visible in that context.
To illustrate this concept, refer to the figure below in which object 'P' has values for two different attributes, Color and Width, in the Main workspace. While Width is not dimension dependent, Color is, and has different values in two contexts: 'Blue' in the English context and 'Bleu' in the French context. If the object is approved in the English context, only the data visible in the English context will be reflected in the Approved Workspace. Because of this separated approval, the object must also be approved in the French context to have it become completely approved, indicated by a green checkmark in the approval status field. Until this approval across contexts is done, the object in the English context will have the status 'Approved in Current Context on [date + time]', indicated by a yellow checkmark, and the object in the French context will have the status of 'Last Approved on [date + time]' (red X).
If Color is set as a mandatory attribute in the French context but is left empty, then an empty mandatory attribute warning will display when attempting to approve the object in the French context.
All mandatory attributes will be checked upon approval to ensure none are empty in the context in which the object is being approved. For example, in the first of the images shown below, the value added for the mandatory attribute 'Color' in the English context is 'Red'. The object can be approved in this context without any issue. Note, however, that the approval icon is for the current context only (English), hence the partial approval notation.
When the viewing mode is switched from Normal to Context, the empty mandatory attribute alert is shown in the French context.
When changes are made to both contexts and approved on both contexts, the object is fully approved, garnering a green checkmark in both contexts.
If a change is made in one context, e.g., changing the Color attribute value in the French context to 'Blue,' but leaving the value for the Color attribute in the English context as 'Red,' then the object will regain full approval once the object is approved in the French context.