#

#

#

Oracle® Agile Product Lifecycle Management for Process

PQM Extension Library Solution Pack

Extensibility Pack 3.2
E40691-01

May 2013

Copyrights and Trademarks

Agile Product Lifecycle Management for Process

Copyright © 1995, 2013, Oracle and/or its affiliates. All rights reserved.

This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited.

The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing.

If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, the following notice is applicable:

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. No other rights are granted to the U.S. Government.

This software or hardware is developed for general use in a variety of information management applications. It is not developed or intended for use in any inherently dangerous applications, including applications that may create a risk of personal injury. If you use this software or hardware in dangerous applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure its safe use. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of this software or hardware in dangerous applications.

Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.

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. AMD, Opteron, the AMD logo, and the AMD Opteron logo are trademarks or registered trademarks of Advanced Micro Devices. UNIX is a registered trademark of The Open Group.

This software or hardware and documentation may provide access to or information on content, products, and services from third parties. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to third-party content, products, and services. Oracle Corporation and its affiliates will not be responsible for any loss, costs, or damages incurred due to your access to or use of third-party content, products, or services.

Contents

Preface.. 6

Audience. 6

Variability of Installations. 6

Documentation Accessibility. 6

Access to Oracle Support. 6

Software Availability. 6

Introducing the PQM Extension Library.. 7

Purpose. 7

Overview.. 7

Object Notifications. 7

Action Menu Icon. 7

Notification Panel 8

Object Notification Locations. 8

Grid Notifications. 9

Quality Concern Count. 9

Quality Concern Alert. 9

Grid Notification Locations. 10

Installing the PQM Extension Library.. 11

To install the PQM Extension Library Solution Pack: 11

To setup the PQM Extension Library Database: 11

Configuring the PQM Extension Library.. 12

Enabling Columns. 12

General GSM & SCRM... 12

CustomerSettings.config. 12

Formulation Specifications. 12

CustomFormulationExtensions.xml 12

Configuring Content. 13

CommonPluginLookup.xml 13

Configurations for Notifications. 13

Configurations for Grid Alerts. 15

Configurations for Object Alerts. 16

Configuration Best Practices. 18

Including Multiple Items. 18

Excluding Items. 18

Blank Values. 18

Zero Values. 18

URL Configurations. 18

Advanced Configurations. 20

Plugin Definition: CustomPluginExtensions.xml 21

Grid Notifications. 21

Object Notification Panel 21

JS Files. 22

Plugin API 22

Report URL. 23

Notification Panel 23

Icons: SiteMap-Extensions.xml 23

CSS: PQMExtensionLibrary.css. 23

Images. 24

Caching. 24

#

# Preface

## Audience

This guide is intended for client programmers involved with integrating Oracle Agile Product Lifecycle Management for Process. Information about using Oracle Agile PLM for Process resides in application-specific user guides. Information about administering Oracle Agile PLM for Process resides in the Oracle Agile Product Lifecycle Management for Process Administrator User Guide.

## Variability of Installations

Descriptions and illustrations of the Agile PLM for Process user interface included in this manual may not match your installation. The user interface of Agile PLM for Process applications and the features included can vary greatly depending on such variables as:

· Which applications your organization has purchased and installed

· Configuration settings that may turn features off or on

· Customization specific to your organization

· Security settings as they apply to the system and your user account

## Documentation Accessibility

For information about Oracle's commitment to accessibility, visit the Oracle Accessibility Program website at http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc.

### Access to Oracle Support

Oracle customers have access to electronic support through My Oracle Support. For information, visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info or visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs if you are hearing impaired.

## Software Availability

Oracle Software Delivery Cloud (OSDC) provides the latest copy of the core software. Note the core software does not include all patches and hot fixes. Access OSDC at:

http://edelivery.oracle.com.

# Introducing the PQM Extension Library

## Purpose

This guide describes how to install, configure, and use the PQM Extension Library Solution Pack. Solution packs are designed to be pluggable modules that can be added to the Agile PLM for Process application suite without modifying the existing release code base.

## Overview

The PQM Extension Library allows users in GSM and SCRM to have visibility to PQM objects that are created. This will allow them to see problem areas more quickly and thus make better business decisions. This solution pack has been built on top of a 6.1.1 core feature for extensible columns. For more information on configuration of those extensible columns, please refer to the Agile PLM for Process Extensible Columns Guide in the Agile Product Lifecycle Management for Process Extensibility Pack v3.1.

The PQM Extension Library is composed of two themes; object notifications and grid notifications.

### Object Notifications

These are notifications that show up on a specification in GSM or a Company/Facility in SCRM.

#### Action Menu Icon

The purpose of the Action Menu Icon is to show the user very quickly if there are quality concerns for the object they are opening.

The Action menu icon will show a red caution icon if there are any open issues or actions associated to the active object. Open quality concerns will be in a status marked with the submitted, released or review tags. If no issues or actions exist, a green check icon will be displayed.

Object with Issues | Object without Issues

This logic is configurable, see the configuration section for more details.

#### Notification Panel

The purpose of the Notification Panel is to show the user when they open the object what types of quality concerns exist. This notification is only presented the first time a user visits an object.

In GSM, the alert will appear when there are one or more open issues with a severity of S1.

In SCRM, the alert will appear when there are one or more open issues with a severity of S1 or if there are one or more failed audits in the last 180 days. This notification is only presented the first time a user visits an object.

This logic is configurable, see the configuration section for more details.

#### Object Notification Locations

Object notifications have been added to the following locations:

Application | Object
GSM | All Specifications
SCRM | Company
SCRM | Facility

### Grid Notifications

#### Quality Concern Count

The purpose of the count is to quickly show the user how many quality concerns exist for a given item within the grid.

Specification grids will show a count when there are open issues or open actions associated to the specification listed in the row. Open quality concerns will be in a status marked with the submitted, released or review tags. If no issues or actions exist, a 0 will be displayed.

Supplier grids in GSM will show a count when there are open issues, open actions, or audits associated to the company/spec pairing or the facility/spec pairing. The count will also include open issues and actions that are tied directly to the facility without an affected item or when it is associated to the company without a facility or affected item. If no issues, actions, or audits exist, a 0 will be displayed.

Spec-Related Sourcing Approval grids in SCRM will show a count when there are open issues, open actions, or audits associated to the facility/spec pairing. If no issues, actions, or audits exist, a 0 will be displayed.

This logic is configurable, see the configuration section for more details.

#### Quality Concern Alert

The purpose of the alert is to notify the user if any of the issues included in the count are of special importance or severity.

Specification grids will show an alert (!) when there are one or more open issues or actions that have a severity of S1.

Supplier grids in GSM and Spec-Related Sourcing Approval grids in SCRM will show an alert (!) when there are one or more open issues that have a severity of S1 or if there are one or more failed audits in the last 180 days.

This logic is configurable, see the configuration section for more details.

#### Grid Notification Locations

Grid Notifications have been added to the following locations:

Application | Object | Grid
GSM | Equipment Specification | Suppliers
GSM | Formulation Specification | Formulation Tab Inputs
GSM | Formulation Specification | Formulation Tab Outputs
GSM | Formulation Specification | Process Tab Input Items (Bill of Materials and Packaging)
GSM | Formulation Specification | Process Tab Output Items
GSM | Material Specification | Suppliers
GSM | Menu Item Specification | Menu Item Build
GSM | Packaging Specification | Sub Components
GSM | Packaging Specification | Printed Packaging Material
GSM | Packaging Specification | Suppliers
GSM | Printed Packaging Specification | Parent Packaging Material
GSM | Printed Packaging Specification | Suppliers
GSM | Product Specification | Suppliers
GSM | Trade Specification | Material Specification
GSM | Trade Specification | Next Lower Level Items
GSM | Trade Specification | Parent Items (Calculated)
GSM | Trade Specification | Packaging Materials
GSM | Trade Specification | Alternate Packaging
GSM | Trade Specification | Suppliers
SCRM | Facility | Specification-Related Sourcing Approvals

Note: If you are running the Supplier Portal and GSM applications in the same environment the grid notifications will be printed in supplier portal.

# Installing the PQM Extension Library

You must have v6.1.1.0.0 of PLM for Process installed to use this solution pack. Additionally, you must apply the following hot fix releases:

· 6.1.1.0.1

· 6.1.1.0.5

Note: If your PQM is setup to run in a different database, you will not be able to use this solution pack.

## To install the PQM Extension Library Solution Pack:

1. Create a backup of the [Prodika Home] directory.

2. Unzip the contents of the ExtensibilityPack_v3.1_Release.zip.

3. Unzip the contents of the SolutionPacks\PQMExtensionLibrary\PQMExtensionLibrary.zip and note the location.

4. Run the PQMExtensionLibrary.exe file from the location where you unzipped the solution pack.

## To setup the PQM Extension Library Database:

1. Create a backup of the Prodika database.

2. Apply the Database Scripts

a. SQL Server

i. Open a command prompt and navigate to the directory where you unzipped the solution pack.

ii. Change directories (cd) to the Database directory.

iii. Apply the scripts using the following calls to the ApplyScripts.exe utility:

ApplyScripts -c "server=<database_server>;uid=<user>; password=<password>;database=<database>" –f PQMExtensionLibrary.xml

iv. After the ApplyScripts call, you can confirm that the database scripts have been applied successfully when the system prompts you with the following message: "Complete - with no errors"

b. Oracle

i. Open a command prompt and navigate to the directory where you unzipped the solution pack.

ii. Change directories (cd) to the Database directory.

iii. Apply the scripts using the following calls to the ApplyScripts.exe utility:

ApplyScripts -c "User Id=<user>;Password=<password>; Data Source=<datasource>" -dbvendor="orcl" –f PQMExtensionLibrary -orcl.xml

iv. After the ApplyScripts call, you can confirm that the database scripts have been applied successfully when the system prompts you with the following message: “Complete - with no errors”

3. Restart IIS

4. Open the Application and verify the new columns and object notifications exist in the locations listed above.

# Configuring the PQM Extension Library

The PQM Extension Library is extremely configurable. This section will outline important files used to enable the solution pack. The installation process handles the initial setup for you but you may want to modify it based on your implementation.

Note: When reviewing the xml files after the installer runs, it is possible the order the elements are listed in the documentation will differ from the files on your system. XML is not particular about order, so simply verify the elements are the same from a content standpoint.

## Enabling Columns

### General GSM & SCRM

#### CustomerSettings.config

The CustomerSettings.config file is located in the [InstallDirectory]\Config\Custom folder and is where the grid notifications will be turned on or off with the exception of the Formulation Spec grid notifications. The installation process turns all locations on by default. If you want to turn off a particular location, go to the feature config section and set the value to “false” for the locations you do not wish to use. You can determine the location based on the config key.

Here is an example of a config key for the grid notification column on a GSM Menu Item Specification:

<add key="GSM.Menu.ItemBuild.XCol.Enabled" value="true" configDescription="enable the extensible column in the GSM Menu specification Menu Item Build grid." />

### Formulation Specifications

#### CustomFormulationExtensions.xml

The CustomFormulationExtensions.xml file is located in the [InstallDirectory]\Config\Extensions folder and is where the grid notifications will be turned on or off for Formulation Specifications. The installation process turns all locations on by default.

Here is an example of a config key for the grid notification column on the input grid of Formulation Specifications. These should be added to the <FormulationInputFlexColumns> node:

<FormulationColumnExtension ID="pqmItems1" IsCore="false" CalculationPaths="*" UseIn="FormulationTab,PrintMain,PrintMainPackaging" HeaderTranslationId="" ColumnPosition="15" VisibilityHandler="true" EditabilityHandler="false" ExtensibleColumnPluginName="PQMItemsForInput" />

For more information on the details of this extension point, please refer to the Agile Product Lifecycle Management for Process Extensible Column Guide located in the Agile Product Lifecycle Management for Process Extensibility Pack documentation on OTN.

## Configuring Content

### CommonPluginLookup.xml

The CommonPluginLookup.xml file is located in the [InstallDirectory]\Config\Extensions folder and is where the plugin configuration is done. The entire solution can be configured using this set of common configurations or you can configure each location specifically using the configuration overrides in the location specific code (js files). Out of the box, the location specific code is setup to pull the values from the common config.

For more information on location specific code, go to the Advanced Configuration.

Note: For more detailed information around what options are available in the CommonPluginLookup.xml file, go to the Configuration Best Practices section.

#### Configurations for Notifications

These configurations control grid and object notifications in GSM & SCRM.

This table defines the naming convention used in the configuration file. All configuration keys define the location using the prefixes in the table below. For example PQM_spec_severity controls the severity settings for all GSM Spec grids.

Location | Configuration Key
GSM Spec Grids | PQM_spec_KEY
GSM Supplier Grid | PQM_spec_supplier_KEY
GSM Action Menu | PQM_spec_action_menu_icon_KEY
SCRM Spec Related Sourcing Approval Grid | PQM_supplier_KEY
SCRM Action Menu | PQM_supplier_action_menu_icon_KEY

This table defines the concepts and keys available for configuration:

Configuration Type | Key | Values | Notes
Revision Specific | isRevisionSpecific | true/false | Determines if the data being returned will only show issues/actions/audits that are tied to a specific revision of a spec. Default: true
Pack Size | isPackRelated | true/false | Determines if the data being returned will only show for the selected pack size. Only used for materials specs tied to trade and formulation specs. Default: false
Workflow Status | statusBehaviorID | Blank, ALL or a valid behavior id | The list of behavior id’s that will be included in the returned data set. Default: 202,203,204 (Submitted, Review or Released)
Severity | Severity | Blank, ALL, NULL or a valid severity pkid | The list of severities that will be included in the returned data set. Default: ALL
Action Types | actionTypes | Blank, ALL or valid action type pkid | The list of action types that will be included in the returned data set. Default: ALL
Issue Types | issueTypes | Blank, ALL or valid issue type pkid | The list of issue types that will be included in the returned data set. Default: ALL
URL | reportURL | Valid URL | The URL where the user will be directed when they click on the number of items displayed in the new column. Default: Blank
Audit Types | auditTypes | Blank, ALL or valid Audit type pkid | The list of audit types that will be included in the returned data set. Default: ALL
Audit Results | auditResults | Blank, ALL, NULL or valid Audit result pkid | The list of audit results that will be included in the returned data set. Default: ALL
Include Related Items | nonSpecRelatedItemsIncluded | true/false | When set to true, the data being returned will include issues/actions/audits not specifically tied to the spec. GSM Default: true SCRM Default: false
Include Company Only | includeCompanyOnlyItems | true/false | When set to true, the data being returned will also include quality items tied to only a company. GSM Default: true SCRM Default: false

#### Configurations for Grid Alerts

These configurations control grid alerts in GSM & SCRM.

This table defines the naming convention used in the configuration file. All configuration keys define the location using the prefixes in the table below. For example PQM_spec_alert_severity controls the severity settings for all GSM Spec grids.

Alerts use a concept of a threshold to decide if it is shown or not. The threshold value is ignored if the corresponding configuration type is blank. For example, if more than 1 issue exists with a severity of S1, show the alert.

Location | Configuration Key
GSM Spec Grids | PQM_spec_alert_KEY
GSM Supplier Grid | PQM_spec_supplier_alert_KEY
SCRM Spec Related Sourcing Approvals Grid | PQM_supplier_alert_KEY

This table defines the concepts and keys available for configuration:

Configuration Type | KEY | Values | Notes
Severity | severity | Blank, ALL, NULL or a valid severity pkid | The list of severities that will trigger the inclusion of the alert icon in the column. Default: 2210339d1d4a-7b2f-436a-8ff6-5e4d8bcfa3b1 (S1 pkid)
Severity Threshold | severity_threshold | Valid Number | The number of items for a given severity that are required before the alert icon is shown. Default: 1
Action Types | actionTypes | Blank, ALL or valid action type pkid | The list of action types that will trigger the inclusion of the alert icon in the column. Default: Blank
Action Types Threshold | actionTypes_threshold | Valid Number | The number of items, for a given action type, that are required before the alert icon is shown. Default: 0
Issue Types | issueTypes | Blank, ALL or valid issue type pkid | The list of issue types that will trigger the inclusion of the alert icon in the column. Default: Blank
Issue Type Thresholds | issueTypes_threshold | Valid Number | The number of items, for a given issue type, that are required before the alert icon is shown. Default: 0
Audit Types | auditTypes | Blank, ALL or valid audit type pkid | The list of audit types that will trigger the inclusion of the alert icon in the column. Default: ALL
Audit Results | auditResults | Blank, ALL, NULL or valid audit result pkid | The list of audit results that will trigger the inclusion of the alert icon in the column. Default: 221056d1254e-0a31-4bb6-b938-22a838387970 (Fail pkid)
Audit Date Limit | auditDateLimit | Valid Number | The number of days back to search for audits that will trigger the inclusion of the alert icon in the column. Default: 180
Audit Threshold | audit_threshold | Valid Number | The number of items, for a given audit result that are required before the alert icon is shown. Default: 1
Status | statusBehaviorID | Blank, ALL or a valid behavior id | The list of status behavior ids that will trigger the inclusion of the alert icon in the column. Default: Blank
Status Threshold | statusBehaviorID_threshold | Valid Number | The number of items, for a given behavior id, that are required before the alert icon is shown. Default: 0

#### Configurations for Object Alerts

These configurations control the notification panel alerts in GSM & SCRM.

This table defines the naming convention used in the configuration file. All configuration keys define the location using the prefixes in the table below. For example PQM_spec_notification_severity controls the notification panel based on the severity setting for all GSM Specs.

Alerts use a concept of a threshold to decide if it is shown or not. The threshold value is ignored if the corresponding configuration type is blank. For example, if more than 1 issue exists with a severity of S1, show the alert.

Notification panels have two configured components. One that defines the data set and another that determines what messaging shows in the panel.

Location | Configuration Key
GSM Specs Data Set | PQM_spec_notification _KEY
GSM Specs Alert | PQM_spec_notification_alert_KEY
SCRM Objects Data Set | PQM_supplier_notification_KEY
SCRM Objects Alert | PQM_supplier_notification_alert _KEY

Data Set location configurations are the same as the Configurations for Notifications section with the exception of: Pack Size, URL and Include Related Items.

This table defines the concepts and keys available for notification panel alert configurations:

Configuration Type | KEY | Values | Notes
Severity | severity | Blank, ALL, NULL or a valid severity pkid | The list of severities that will trigger the inclusion of the message on the notification panel. Default: 2210339d1d4a-7b2f-436a-8ff6-5e4d8bcfa3b1 (S1 pkid)
Severity Threshold | severity_threshold | Valid Number | The number of items for a given severity that are required before the message is shown. Default: 1
Action Types | actionTypes | Blank, All or valid action type pkid | The list of action types that will trigger the inclusion of the message on the notification panel. Default: Blank
Action Types Threshold | actionTypes_threshold | Valid Number | The number of items, for a given action type, that are required before the message is shown. Default: 0
Issue Types | issueTypes | Blank, ALL or valid issue type pkid | The list of issue types that will trigger the inclusion of the message on the notification panel. Default: Blank
Issue Type Thresholds | issueTypes_threshold | Valid Number | The number of items, for a given issue type, that are required before the message is shown. Default: 0
Audit Types | auditTypes | Blank, ALL or valid audit type pkid | The list of audit types that will trigger the inclusion of the message on the notification panel. Default: Blank
Audit Results | auditResults | Blank, ALL, NULL or valid audit result pkid | The list of audit results that will trigger the inclusion of the message on the notification panel. Default: 221056d1254e-0a31-4bb6-b938-22a838387970 (Fail pkid)
Audit Date Limit | auditDateLimit | Valid Number | The number of days back to search for audits that will trigger the inclusion of the message on the notification panel. Default: 180
Audit Threshold | audit_threshold | Valid Number | The number of items, for a given audit type, that are required before the message is shown. Default: 0
Status | statusBehaviorID | Blank, ALL or a valid behavior id | The list of status behavior ids that will trigger the inclusion of the message on the notification panel. Default: Blank
Status Threshold | statusBehaviorID_threshold | Valid Number | The number of items, for a given behavior id, that are required before the message is shown. Default: 0

## Configuration Best Practices

### Including Multiple Items

For configurations in the CommonPluginLookup.xml file, you can include multiple items by providing a common separated list. For example, if I wanted my data to be returned for status behavior ids of 202, 203, 204 and 205, I would add each of the ids to the value attribute separated by a comma.

<entry name="PQM_spec_statusBehaviorID" value="202,203,204,205"/>

### Excluding Items

For configurations in the CommonPluginLookup.xml file, you can exclude items by putting an exclamation point (“!”) in front of the value. For example, if I wanted my data to be returned for behavior ids 202 and 203 but wanted to exclude 204, I would add each of the ids to the value attribute separated by a comma and put an exclamation point in front of 204.

<entry name="PQM_spec_statusBehaviorID" value="202,203,!204"/>

Note: Exclusion is not supported for alert configurations.

### Blank Values

For configurations in the CommonPluginLookup.xml file that are left as blank, those items will not be included in the query. So if you leave the value as “” on the behavior id entry, behavior id will not be included in the query for your data.

<entry name="PQM_spec_statusBehaviorID" value=""/>

### Zero Values

For configurations in the CommonPluginLookup.xml file that have a value set as zero, those items will be ignored if the corresponding configuration type is blank. So in the example below, there is no threshold being respected for action types.

<entry name=”PQM_spec_alter_actionTypes” value = ““/>

<entry name="PQM_spec_alert_actionTypes_threshold" value="0" />

### URL Configurations

Note: Values used in the Out of the Box URL are internal ids so remember to enforce security.

For configurations in the CommonPluginLookup.xml file that are URLs, the solution pack will be appending the pkid of the active object to the end of the URL entered in the config file. If you click on a grid notification count, the URL value configured will have the pkid of the active row you are on added to the end of it.

For example, <entry name="PQM_spec_reportURL" value=" https://www.company.com/mycustomreport?=" /> would produce the following URL:

https://www.company.com/mycustomreport?=[PKID]

This will take you to your customer reports and include the active row pkid that could be used as a report parameter.

Note: Make sure any entries into the commonpluginlookup.xml file have all “&” escaped. This is done by replacing “&” with “&amp;”. For example: <entry name="PQM_spec_reportURL" value="http://[server]/ReadyReports/readyreports.aspx?pkid=1108129aa1b6-b5d4-433e-8516-520cdacde120&amp;ao="/>

## Advanced Configurations

The basic architecture of the solution pack is made up of a plugin which reads rules from the configuration files and then uses the JS File for each location to understand what data will be retrieved and how it will be displayed. This is described in the following picture:

##

This architecture allows each location to be controlled independently. So, for example, the logic for the material spec grid on a trade spec could be setup to work differently than the logic for the packaging material spec grid. In order to change the way a particular location works, you would need to modify the JS File for that location or write your own custom JS File. Once created, you would hook the new JS file to the plugin in the CustomPluginExtensions.xml file.

### Plugin Definition: CustomPluginExtensions.xml

The CustomPluginExtensions.xml file is located in the [InstallDirectory]\Config\Extensions folder and is where the grid notifications and the object notification panels are tied to a plugin. The plugin code determines how the notifications will behave.

#### Grid Notifications

Each notification location is tied to a plugin. This plugin contains code that determines what data will be returned in the cells of the new grid notification. Below is an example of the plugin definition for the grid notification on the Next Lower Level Item grid on a Trade Specification in GSM:

<Plugin name="GSMTradeChildXColPlugin" FactoryURL="Class:Oracle.PLM4P.PQMExtension.Plugins.RelatedSpecPQMExtensionPluginFactory,PQMExtension$20|GSM.Trade.Child.XCol.js|200" ignoreInheritFromPluginName="true"/>

The configuration has some key parameters which are called out here:

<Plugin name="GSMTradeChildXColPlugin" FactoryURL="[Plugin Class Name]$[Column Width]|[JS File]|[ Performance Row Count]" ignoreInheritFromPluginName="true"/>

Note: Formulation Spec Extensible Columns have different parameters. For more information on parameters, please refer to the Agile PLM for Process Extensible Columns Guide in the Agile Product Lifecycle Management for Process Extensibility Pack v3.1.

#### Object Notification Panel

The notification panel for GSM and SCRM are tied to plugins in the <NotificationPlugins> node of this file. This plugin contains code that determines what data will be returned in the notification panel. Below is an example of the plugin configuration for GSM Specifications:

<Plugin name="PQMIssuesSpecNotifierPlugin" usedIn="GSMSpec" FactoryURL="Class:Oracle.PLM4P.PQMExtension.Plugins.Notification.PQMItemsSpecBasedNotificationPluginFactory,PQMExtension$GSM.Spec.Notification.js"/>

The configuration has some key parameters which are called out here:

<Plugin name="PQMIssuesSupplierNotifierPlugin" FactoryURL="[Plugin Class Name]$[JS File]" usedIn="SCRM"/>

Parameter | Description
Plugin Class Name | This is the name of the class.
Column Width | This is the width of the column. Out of the box, the width for the column is defined as 20. This will allow for up to 99 quality items and an alert icon to be shown in the field. If you have more than 99 quality items, the third digit or the alert icon may not be shown unless the column is resized. Only applicable to Grid Notifications.
JS File | This is the name of the JS file located under [Install Directory]\config\Extensions\PluginDefinitions folder.
Performance Row Count | If the data grid the extensible column is being enabled on has more than 500 rows of data being returned, you could see performance implications. In order to eliminate this degradation, set the [Performance Row Count] parameter in the plugin config in the CustomPluginExtensions.xml file. Only applicable to Grid Notifications.

### JS Files

The JS files are located in the [InstallDirectory]\Config\Extensions\PluginDefinitions folder and are where the location specific code resides for grid and object notifications. This code provides detailed logic to determine what data to display to the location based on incoming parameters.

Each file name, except for Formulation spec files, has been created with the following nomenclature: [App].[Object].[Location]. Formulation spec files do not use the [App] component.

#### Plugin API

The plugin provides a method called “GetConfiguration()”. This method pulls all of the configuration data from the commonPluginLookup.xml file. This method returns key-value pairs that represent each configuration option. Each of these configuration options is assigned to a variable that will be used in the location specific JS files. This is where you would provide an override of the core configuration value if required for a specific location.

We also provide a method called “GetPQMObjects()”. This method pulls all of the data from the PQM Objects based on specified parameters. The primary criteria are issue type, action type and audit type. The secondary criteria are severity, status and audit results. This method returns an array of PQM Objects that contain the following properties:

Property Name | Description
PKID | Returns the pkid of the PQM Object.
IsIssue | Returns true/false based on if the object is a PQM Issue or not.
IsAction | Returns true/false based on if the object is a PQM Action or not.
IsAudit | Returns true/false based on if the object is a PQM Audit or not.
ItemType | Returns the item type for PQM Actions, Audits and Issues.
Severity | Returns the pkid of the severity for PQM Issues.
ContainsStatusBehavior | Method used to determine if a PQM object is in a workflow status marked with a particular behavior id.
AuditResult | Returns the pkid of the audit result for a PQM Audit.
AuditDate | Returns the Audit date assigned to a PQM Audit.
IsAuditDateWithinDays | Method used to determine if the Audit date of a PQM Audit is within the specified range.
HasAuditFailed | Returns true/false based on the data stored in the Audit Result field of a PQM Audit.

The returned result of the JS File is represented by an Html property and a PrintData property. These are used to display to the UI and to the print model. This will allow you to provide additional formatting if necessary by using either html tags or FO tags.

#### Report URL

For advanced URL configuration, you can modify the value assigned to the reportURL variable in the JS File. This will allow you to use additional parameters within your report urls for more advanced reporting options.

Out of the box, we build the htmlResult value as follows:

htmlResult = htmlResult + "<a href='#' onclick=\"window.open('" + reportURL + sacPKID + "');return false;\">" + displayValue + "</a>";

As you can see here, we are simply appending the PKID to the reportURL variable. If you needed to add additional parameters to your report URL, you could simply modify this line in the JS File to accommodate your needs.

htmlResult = htmlResult + "<a href='#' onclick=\"window.open('" + reportURL +“&_paramsFacilityID=” + pqmObjectRequest.FacilityId + “&_paramsSpecID=” + specPKID + "');return false;\">" + displayValue + "</a>";

#### Notification Panel

For advanced notification configuration, you can modify the value assigned to the result variable in the JS File. This will allow you to use html formatting in the notification panel.

### Icons: SiteMap-Extensions.xml

The SIteMap Extensions.xml file is located in the [InstallDirectory]\Config\Extensions folder and is where the Action Menu Icons are added to the GSM and SCRM Action Menu. These icons are added to the GSMNavSpec and SCRMNav menu items nodes.

For more information on extending the Action Menu refer to the Agile Product Lifecycle Management for Process Navigation Configuration Guide.

### CSS: PQMExtensionLibrary.css

The PQMExtensionLibrary.css file located in the [InstallDirectory]\web\css\Extensions folder is where all of the css styles for this solution pack are stored. Additionally, the icons.css file is modified during the installation process to include the PQMExtensionLibrary.css file.

### Images

All of the base images for this solution pack are stored in the [InstallDirectory]\web\images\ pqmextensionlibrary folder.

### Caching

In order to allow for easier testing, we have added the ability to turn caching off for the configurations in the js files. This will allow you to instantly see updates based on the configuration changes you are making. Out of the box, caching is enabled for performance reasons. This configuration is found in the CommonPluginLookup.xml file located in the [InstallDirectory]\Config\Extensions folder.

Config | Values | Notes
PluginCachingEnabled | True/false | Indicates whether the JS files in plugindefinitions folder are cached or not