An Oracle White Paper

April 2012

Introduced in Release 6.0

E29320-01

Managing and Presenting Fact Panel Data

# Table of Contents

Overview.. 2

The Basics. 2

FP Saturated Fat Per Serving. 7

FP Saturated Fat Rounded. 7

FP Saturated Fat Override. 8

FP Saturated Fat Final 8

FP Saturated Fat DV.. 9

# Overview

Applications: GSM

Focus Area: Trade, Nutrient Profile, Custom Product Fact Sheet

As part of 6.0 we further our commitment to provide customers the ability to create, modify, and enhance elements related to Fact Panel generation. The major move in 6.0 is the following items are removed from the system:

· The Product Fact Sheet link is removed from the Supporting Documents tab of trade specifications and menu item specifications.

· The Final Value column is removed from the Nutrition Panel tab of a nutrient profile.

· The link on the Per Serving column that kicks off the rounding rule selection process is removed. The Per Serving column remains, but it will not be linked to the rounding rule. Per Serving values will now calculate when the specification is saved or if the specification’s Calculate button is selected.

In this document we look at how fact panel data is now managed and presented in 6.0. We will review this topic in the following order:

• Nutrition Data and Storage.

• Creating Fact Panel Data Using Custom Sections.

• Presenting Fact Panel Data via Custom Sections.

• Configuring and Printing Custom Product Fact Sheets.

# The Basics

1. Nutrient Data and Storage: We will use a cheese pizza hierarchy as an example throughout this discussion. The hierarchy appears as follows:

Figure 1. Visual Hierarchy Representation

Figure 2. Visual Object Representation

Important facts about the hierarchy:

a) While nutrition data exists throughout the hierarchy we will focus our attention on the relationship between the nutrient Profile and the trade specification.

b) The nutrient profile stores the following, see the figure below as an example:

i. Serving Size

ii. Nutrition Per 100g

iii. Per Serving (Derived nutrition, non-rounded)

c) 100g nutrition data appears on the nutrient profile through the following methods:

i. Import data from the appropriate ingredient specification. This data may represent theoretical data.

ii. Import data from a NSM analysis or composition. The source is usually from a lab.

iii. Import data from the Food Composition Library, representing industry standard data provided by a regulatory body.

iv. Manual entry.

d) The trade specification does not store nutrition data. Instead it points to a nutrient profile containing the proper information. A trade specification can be associated with multiple nutrient profiles and any one can be selected for printing.

e) Some of the techniques described in this document can be used to present fact panel data in other areas of the application such as ingredient specifications. However you may need to make adjustments based on the data available for a given object, i.e. 100g data is presented on an ingredient’s Nutrient Composition however Serving Size and Nutrition Per Serving is not available. Therefore you will need to add additional custom data to support these areas if you wish to print fact panels from an ingredient specification.

Figure 3. Nutrient Profile\Nutrition Panel Tab

2. Creating Fact Panel Data Using Custom Sections: In this section we will perform a deep dive on the configuration of the extended attributes and the custom section needed to create the panel. In order to better understand how to build the data let’s look at the custom section in its end state, presented on a nutrient profile after calculations have occurred.

a) Data Presented In a Custom Section:

i) Columns: Since this is a custom section you can choose to define additional columns as needed. The following are the columns that we find are often requested:

1) Per Serving: Merely a restatement of the Per Serving found on the NUTP/Nutrition Panel Tab. This is presented for the user’s convenience.

2) Rounded: This column calculates the proper value using a regulatory agencies specific rounding rules.

3) Overrides: We have found that some customers have some exceptions that they must account for via overrides. Therefore this column allows a user to override the value.

4) Final Per Serving: This is the value that is used for labeling. It will represent the rounded value unless an override exists.

5) %DV (Percent Daily Value): This column calculates the proper value using regulatory agencies rules related to daily consumption recommendations.

ii) Rows: These represent a sub-set of the data found on the NUTP/Nutrition Panel tab. Regulatory agencies usually label a subset of the nutrients found in the application.

b) Creating the Extended Attributes: A majority of the attributes represent calculated extended attributes. To give you a better understanding of the exact configuration we present a series of screen shots below for the Saturated Fat row. Each row is very similar except for the specific j-script used to perform calculations. Included is a spread sheet called “AttributeExamples.xls” containing the j-script used to calculate each cell.

A few notes:

· In the end we will have an extended attribute for almost each row/column combination. The only reason I state “almost” is that regulatory agencies do not call for %DV on all attributes.

· You will want to mark each extended attribute as “Distinct” as this will make it easier to build custom reports if/when needed in the future. This will also make it easier for users to search for nutrition data in the system. They will be able to reference the attribute by its unique name versus its location in a custom section.

· Take time to think through the naming convention for your extended attributes. If your organization uses multiple regulatory standards then you may want to add the regulatory body’s name to the beginning or end of each attribute name, “CFIA-Saturated Fat Per Serving”, “USDA-Saturated Fat Per Serving”…

In our Saturated Fat example we will end up with the following attributes:

iii) FP Saturated Fat Per Serving

iv) FP Saturated Fat Rounded

v) FP Saturated Fat Override

vi) FP Saturated Fat Final

vii) FP Saturated Fat DV

## FP Saturated Fat Per Serving

Figure 4. FP Saturated Fat Per Serving

J-script performed in the “Calculation Script” field:

return GetNutrientValuePerServing('FASAT', 0, 0);

## FP Saturated Fat Rounded

Figure 5. FP Saturated Fat Rounded

J-script performed in the “Calculation Script” field:

var fatPerServing @ GetNutrientValuePerServing('FASAT', 0, 0);

if(fatPerServing < 0.5) {return 0;}

else if (fatPerServing < 5.0)

{var remainder @ fatPerServing % 1;

if(remainder < .25) {return fatPerServing - remainder;}

else if (remainder < .75) {return fatPerServing - remainder + 0.5;}

else {fatPerServing - remainder + 1.0;}}

else {return Math.round(fatPerServing);}

## FP Saturated Fat Override

Figure 6. FP Saturated Fat Override

## FP Saturated Fat Final

Figure 7. FP Saturated Fat Final

J-script performed in the “Calculation Script” field:

TurnWarningsOff();

var override @ GetNumericExtendedAttributeValue('FPSaturatedFatOverride', 'GR', -1, -1);

TurnWarningsOn();

var roundedSatFatPerServing @ GetNumericExtendedAttributeValue('FPSaturatedFatRounded', 'GR', 0, 0);

if(override > -1) {return override;}

else {return roundedSatFatPerServing;}

## FP Saturated Fat DV

Figure 8. FP Saturated Fat DV

J-script performed in the “Calculation Script” field:

var finalSatFatPerServing @ GetNumericExtendedAttributeValue('FPSaturatedFatFinal', 'GR', 0, 0); return Math.round(finalSatFatPerServing/20*100)

Note: See the Agile Product Lifecycle Management for Process Extended Attribute Calculation Guide for more information on calculated attributes, and Appendix B of the Agile Product Lifecycle Management for Process Administrator User Guide for a listing of all variables and InFoods codes needed to pull nutrient and serving size values from specifications.

c) Creating the Custom Section: If you are familiar with creating custom sections this step will seem common. You will want to make sure to mark the columns and rows to default for the most common panel elements. Also you will want to consider the print widths for each column as we believe the standard custom section print will be considered quite valuable.

i) Create the custom section. Take note of the section number and make sure to set the Available In to Nutrient Profile.

ii) Add Columns:

iii) Add Rows:

iv) Finally add the Extended Attributes that you configured in 2b.

v) Once the section is marked as active and it is saved it should appear as follows. At this point the section is ready to use on the nutrient profile.

3. Presenting Fact Panel Data Via Custom Sections: The beauty of this solution is that panels become very natural to interact with compared to previous versions. If your implementation calls for panels representing five different regulatory bodies then you merely repeat the steps above for each regulatory body. In the following examples the preparation consists of populating the nutrient profile with data and adding the custom section.

a) Add the custom section to the nutrient profile and click Calculate.

Note: Warnings will appear by default if data is not populated. The appearance of this warning message can be controlled via j-script.

b) When printing from the trade specification:

i. Print dialog window: Make sure to select the nutrient profile.

ii. The fact panel custom section as presented when printing the nutrient profile from the trade specification.

It is common for this information to then be given to a resource developing the artwork for the packaging. During the artwork development data will be placed in the proper panel format. Usually this resource has a library of panels that are commonly used for the company’s products.

Please note that panel formats must meet strict guidelines as defined by the various regulatory bodies. These panel formats are not provided as part of the PLM for Process application.

Fact Panels March 2012 Oracle Corporation World Headquarters 500 Oracle Parkway Redwood Shores, CA 94065 U.S.A. Worldwide Inquiries: Phone: +1.650.506.7000 Fax: +1.650.506.7200 oracle.com | Copyright © 2012, Oracle and/or its affiliates. All rights reserved. This document is provided for information purposes only and the contents hereof are subject to change without notice. This document is not warranted to be error-free, nor subject to any other warranties or conditions, whether expressed orally or implied in law, including implied warranties and conditions of merchantability or fitness for a particular purpose. We specifically disclaim any liability with respect to this document and no contractual obligations are formed either directly or indirectly by this document. This document may not be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose, without our prior written permission. Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners. AMD, Opteron, the AMD logo, and the AMD Opteron logo are trademarks or registered trademarks of Advanced Micro Devices. Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. UNIX is a registered trademark licensed through X/Open Company, Ltd. 1010