Re: Associations

Lori Isch (lisch@etec.com)
Fri, 21 May 1999 18:59:12 -0700

This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.

------_=_NextPart_000_01BEA3F6.D0A61942
Content-Type: text/plain

Thanks for the diagrams - that is useful info.

Sounds like you have received some interesting replies. Something that we
have looked at is the Dynamic Notification function which is available
through the Matrix Subscription Service. What we are planning to do is have
the approver job roles (such as Design Eng, Mfg Eng) as attributes of the
ECO. Then, associate a project object with each document or assembly
(multiple docs per project). The specific approver names are listed as
attributes of the project object. When an ECO is connected to the doc or
assembly, the project object will supply the list of appropriate approvers
for that project with which to populate the ECO. Then, an individual
selection is made for each approver role from this subset list. The ECO
sends the necessary approval emails to those people, who then sign off or
reject.

I've attached the description of the Dynamic Notification module (Matrix
shouldn't have a problem with this - you'll have to go to them for the
code). If it is useful to you, you may want to subscribe.

<<DynNotGUI.gif>> <<DynNotSpecs.html>>

Lori Isch
Manager, Product & Mfg Information Services

Etec Systems, Inc.

(510) 887-3624 Office
* lisch@etec.com

> -----Original Message-----
> From: Butler, Gary [SMTP:gbutler@EMAIL.MC.TI.COM]
> Sent: Wednesday, May 12, 1999 7:57 AM
> To: MATRIX_USER@matrix-one.com
> Subject: Associations
>
> My name is Gary Butler. I am on the Matrix Development Team here at Texas
> Instruments in Attleboro MA.
>
> I am trying to use associations to make Change Control Boards (CCB) for
> different types of document approvals. The problem that I am facing is
> that
> each document can have its own unique Change Control Board.
>
> We have well over 1000 CCBs in our legacy system and we need to develop a
> Matrix replacement that will automatically send icon mail to only those
> people who are on the board for a specific document.
>
> The Matrix Business help gives and example of what I need to do in chapter
> 5, but there are no instructions. I can get it to work if I make a new
> policy for each object, but that seems ridiculous.
>
> Is there any one out there who has a similar problem? If so how did you
> address it?
>
> Finally, in the spirit of sharing information, I have attached a
> presentation that graphically shows the results of Float, Replicate and
> None
> settings in Matrix relationships. I hope that this is useful to some of
> you.
> <<Matrix Revisions Diagrams.zip>>
>
> Gary Butler
> Drafting & Documentation Supervisor Voice: 508.236.1622
> Texas Instruments Fax: 508.236.3905
> 34 Forest St. MS 12-28 gbutler@ti.com
> PO Box 2964
> Attleboro, Ma 02703-0964
>
> Regards:
> Gary << File: Matrix Revisions Diagrams.zip >>

------_=_NextPart_000_01BEA3F6.D0A61942
Content-Type: image/gif;
name="DynNotGUI.gif"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="DynNotGUI.gif"

R0lGODlhlwF6AfcAAAAAAAAASgAAhHNzc3t7vYSEhMbGxv8AAP//////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////ywAAAAAlwF6AQAI/gANCBxI
sKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIEYABBCBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bN
mzhz4izgEQHHn0CDCh1KtKjRo0iTGuD5UanTp1CjSp1KtepBpj4NCNjKtavXr2DDih1LtqzZs2jT
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
gQ18YAQn2L8BAQA7

------_=_NextPart_000_01BEA3F6.D0A61942
Content-Type: text/html;
name="DynNotSpecs.html"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
filename="DynNotSpecs.html"

Dynamic Notification Customization Dynamic Notification
Program Specifications

Matrix Professional Services

December 2, 1997

Ó Copyright 1996 = by MatrixOne, Inc. All rights reserved.

PROPRIETARY RIGHTS NOTICE: No part of this material = may be reproduced or transmitted in any form or by any means, electronic, = mechanical, or otherwise, including photocopying and recording or in connection = with any information storage or retrieval system, without the permission in writing from MatrixOne, Inc.

Contents
Overview
Installing the Software
Creating and Maintaining the Schema
Configuring the = Programs

Overview

Companies often need to notify specific members of = various functional roles or groups to work on an object as it enters a new = state in its policy workflow. Typically, this is done with the state's = =91Notification=92 field in base Matrix. However, this approach can result in an = unmanageable number of policies due to the number of different notification = combinations. Therefore, the Dynamic Notification customization can be used = instead.

There are six different scenarios for using the = Dynamic Notification customization:

  1. Notify all individuals belonging to a project team(s) = that is working on the object and optionally ignore signatures of = non-notified groups or roles.
  2. Notify all members of the group(s) and/or role(s) that = correspond to an attribute setting on the object and optionally intersect this = with the groups and roles that have approval signatures.
  3. Notify all persons that correspond to an attribute = setting on the object.
  4. Notify persons that are determined by traversing a = Matrix managed organization chart.
  5. Notify all members of a 'distribution list' = group.
  6. Notify selected individuals having approval signature = responsibility for the business object in its current state via a graphical user = interface.
Another aspect of dynamically notifying individuals is = making sure that only the notified users approved/rejected a signature or = promoted the business object at the current state.  To enforce this, the = Dynamic Notification customization comes with a program that can be = implemented as a check for the promote or signature approval/rejection database = event.  These options are currently available for the following Dynamic = Notification approach: Over time, all Dynamic Notification approaches = will be enhanced to check that only notified individuals are performing a = database event.
 
Return to Contents

Installing the Software

A Matrix export file, mxDynNot.exp, is distributed = with the Dynamic Notification customization to create your initial = schema for executing dynamic notification in each of the possible scenarios. = This includes the following:

Project Teams Notification

  1. A "Dynamic Notification" object type that is used to = implement the "project teams" solution.
  2. A "Dynamic Notification" policy for governing "Dynamic = Notification" objects.  The states and access privileges for this policy should be edited to reflect site specific requirements.
  3. A "Dynamic Notification" relationship type to connect = "Dynamic Notification" objects to all other object types.  The initial = definition assigns the "Dynamic Notification" object type to both sides of the = relationship.  One end should be modified to allow all types governed by policies that use dynamic notification in the workflow.
  4. A program object containing the main processing logic = (mxDynNot.tcl).  This is the 'library' for the approach.
  5. A program object that dictates the processing logic by = setting Tcl variables (mxDynNotSettings.tcl).
  6. A Matrix program object containing the database set-up = code (mxDynNotDB.tcl).
Return to Contents

Role/Group Notification Through Attribute = Settings

  1. A program object containing the main processing logic = (mxDynNotUser.tcl).  This is the 'library' for the approach.
  2. A program object that dictates the processing logic by = setting Tcl variables (mxDynNotUserSettings.tcl).
Return to Contents

Person Notification Through Attribute = Settings

  1. A program object containing the main processing logic = (mxDynNotPer.tcl).  This is the 'library' for the approach.
  2. A program object that dictates the processing logic by = setting Tcl variables (mxDynNotUserPer.tcl).
Return to Contents

Organization Chart = Notification

  1. A program object containing the main processing logic = (mxDynNotOrg.tcl).  This is the 'library' for the approach.
  2. A program object that dictates the processing logic by = setting Tcl variables (mxDynNotOrgSettings.tcl).
  3. A Matrix program object containing the database set-up = code (mxDynNotOrgDB.tcl).
Return to Contents

Distribution List Notification

  1. A program object containing the main processing logic = (mxDynNotDist.tcl).  This is the 'library' for the approach.
  2. A program object that dictates the processing logic by = setting Tcl variables (mxDynNotDistSettings.tcl).
The Dynamic Notification customization also uses = the following program objects from the Professional Services MQL/Tcl = toolkit:
    1. mxBus.tcl
    2. mxAtt.tcl
    3. mxType.tcl
    4. utList.tcl
    5. utTk.tcl
Return to Contents

Select Approval User = Notification

  1. A program object containing the main processing logic = (mxDynNotSelectAppr.tcl).  This is the 'library' for the approach.
  2. A program object that dictates the processing logic by = setting Tcl variables (mxDynNotSelectApprSettings.tcl).
Return to Contents

Dynamic Notification = Enforcement

  1. A program containing the settings to enforce = Dynamic Notification.
Return to Contents

Creating and Maintaining the Schema

Project Teams Notification

To implement Project Teams Notification a = "project team" object type is created.  This type is assigned attributes = that correspond to each of the functional roles that make up the project = team.  Each attribute has range values that are equal to each of the person = object names that are assigned to the corresponding functional role.  A = range value of "N/A" is also assigned in case the role is not filled for a = given "project team" instance.

Suppose that your database has the following role = objects that constitute a project team:

An attribute for each of these roles needs to be = created and assigned to the "project team" object type.  To make sure the range values for each of these attributes are the same as the roles' = person object assignments, the program mxDynNotDB.tcl is executed.  = Before executing this program, set database schema variables in the program = object, mxDynNot.tcl (see section Configuring the = Program).  To execute mxDynNotDB.tcl, type the following commands in MQL:

MQL> set context person = creator; (or an equivalent Bus. Admin person)
MQL> exec program = mxDynNotDB.tcl;

A "project team" object instance is created for each = possible combination of individual person objects that need to be = notified.  Therefore, if a company has 2 project teams, "Team A" and "Team B", it would be necessary to create instances for each one:

=91Project Team=92 = =91Team A=92 =91=92
=91Project Team=92 = =91Team B=92 =91=92
After creating a "project team" object it must be = connected to all objects that are being worked on by that team.  Multiple = connections can be made if appropriate for your schema.

Return to Contents

Role/Group Notification Through Attribute = Settings

To implement Role/Group Notification, = you must designate an attribute on the object type whose values correspond to the role or group that needs to be notified.  For instance, = suppose that you need to notify members Plant Engineers from a specific = locations whenever a Part is released.  To do this, roles for each locations plant engineers are needed:

Next an attribute with range values = corresponding to the various locations needs to be assigned to the Part object = type.  This attribute might be called "Distribution" and have range values = equal to the following: When using this approach you can choose to = intersect the Person objects determined by the attribute setting with all Person objects that can approve a signature at the current state.  This = approach provides the ability to do a group/role intersection that mimics = project teams.  The attribute setting should determine a group = corresponding to a project team.  The signatures are assigned to roles that are part of the project team.
 
Return to Contents

Person Notification Through Attribute = Settings

To implement Person Notification, you = must designate an attribute on the object type whose values correspond to = the person or persons that need to be notified.  For instance, suppose that you need to notify the originator of a business object whenever = it's ownership.  To do this,  an attribute with range values = corresponding to the person/persons to notify needs to be assigned to the business = object type.  This attribute might be called "Originator" and have a = range value equal to 'John Doe'.

Return to Contents

Organization Chart = Notification

To implement Organization Chart Notification, "organization = chart" object types are used.  Each instantiable organization chart = object type must have a name that exactly matches a group or role object in = the database.  All instantiable organization chart object types must = be ultimately derived from a single abstract type (typically named = "ORGANIZATION CHART").  If appropriate, many levels of type derivations can be = used.  An example of the organization chart type hierarchy could be (abstract types are all caps; instantiable types are title case):

Instances for each of the instantiable organization chart objects types are created for each person object that is assigned to the type's = corresponding role or group.  This is facilitated and synchronized with the = program, mxDynNotOrgDB.tcl.  Before executing this program, = set database schema variables in the program object, mxDynNotOrg.tcl (see = section Configuring the Program).  To execute = mxDynNotOrgDB.tcl, type the following commands in MQL:

MQL> set context person = creator; (or an equivalent Bus. Admin person)
MQL> exec program = mxDynNotOrgDB.tcl;

This program creates new instances of organization = chart object types and identified instances that no longer correspond to a = person object that is assigned to the type's role or group.  If person = objects, Joe, Sam, and Bob, are assigned to role Draftsperson, the program will created the following object instances:

=91Draftsperson=92 = =91Joe=92 =91=92
=91Draftsperson=92 = =91Sam=92 =91=92
=91Draftsperson=92 = =91Bob=92 =91=92
Once all of the organization chart object instance are created, they = can be connected with an organization chart relationship.  The object connections should be made so that the manager is always on the "from" end of the relationship and the employee is on the "to" end of the = relationship.  If an employee can have only one manager, the relationship cardinality should be set to "1-to-many".  If an employee can have more than = one manager, the relationship cardinality should be set to "many-to-many".

An organization chart structure, created from the object types = listed above, may look like the following:

Return to Contents

Distribution List Notification

To implement Distribution List = Notification, you must create a Matrix Group object that serves as the top-level = category for all distribution list Group objects.  Typically, this = top-level group is simply called "DISTRIBUTION LIST".  Children groups are = created to define the actual distribution lists.  Each of these groups has Person object assignments that are the recipients in the distribution = list.  These distribution list groups should have a consistent naming = convention.  The following is an example of what the distribution list group = hierarchy might look like:

    = DISTRIBUTION LIST
      --> Distribution A
      --> Distribution B
      --> Distribution C
      --> Distribution D

A Boolean attribute must be created that = corresponds to each distribution list group.  Typically, the attribute title = is the same as the group title.  However, you can name it differently as long as the group title can be converted to the attribute title = using Tcl format string substitution (see section Configuring the Program).

These attributes should be assigned to each business object type = that uses dynamic distribution list notification.  An attribute value = of TRUE indicates that the persons assigned to the distribution list group will be sent an icon mail message.

Return to Contents

Select Approval User = Notification 
 
When implementing the Select Approval = User Notification approach, you must add signatures at the state the = program is implemented.

Return to Contents

Configuring the Programs

Project Teams Notification

The Project Teams Notification library = program object, mxDynNot.tcl, has the following Tcl variables that must be set to reflect your database schema:
 
Tcl Variable  Description 
sDynNotType  Defines the name of the = "Dynamic Notification" object type. For some companies it may be appropriate to name this object type "Project Team", "Product Team", "Cross-Functional Team", etc. 
sNoDynNot  Defines the value for the Dynamic Notification attribute range that indicates no person objects are serving the particular role.  This is typically set to 'N/A'. 
 
The Project Teams Notification program's = behavior can be changed by altering Tcl variables defined at the head of the = program, mxDynNotSettings.tcl:
 
Tcl Variable  Description 
sTaskSubject  Defines the message = subject sent to individuals who must perform work in order for the object to reach = its next state. 
sTaskMessage  Defines the message text = sent to individuals who must perform work in order for the object to reach = its next state. 
lTaskUsers  Defines a list of roles = and/or groups who are dynamically notified with a =91task=92 = message.  Set to "*" if all users should be notified. 
sAwareSubject  Defines the message = subject sent to individuals who need to only be aware that the business object has = reached a particular workflow state. 
sAwareMessage  Defines the message text = sent to individuals who need to only be aware that the business object has = reached a particular workflow state. 
lAwareUsers  Defines a list of roles = and/or groups who are dynamically notified with a =91aware=92 = message.  Set to "*" if all users should be notified. 
fIgnoreSigs Indicates if signatures that are to be approved by non-notified = groups or roles should be automatically ignored.  The customization = assumes that the user who triggers the notification program has ignore access = for each signature.  If not, an error will occur.  Set to 1 to = ignore signatures.  Set to 0 to leave the signatures alone.
 
The mxDynNotSettings.tcl program can be cloned to = accommodate all Dynamic Notification needs.  For instance, suppose dynamic = notification is needed to: notify a specific user from the Engineer and Buyer roles to perform a task; and alert a specific user from the Manufacturing = group that the object has reached the state "Prepare Purchase Order".  A clone of mxDynNotSettings.tcl named, "Notify to Prepare Purchase = Order", can be created that has the following code definition:
 
... 

set sTaskSubject "Task Notification"  
set sTaskMessage "Please perform work for preparing the = PO"  
set lTaskUsers { "Engineer" "Buyer" }  

set sAwareSubject "For Your Information"  
set sAwareMessage "Object's PO is being prepared."  
set lAwareUsers { "Manufacturing" }  

... 

 
Return to Contents

Role/Group Notification Through Attribute = Settings

The Role/Group Notification program's = behavior can be changed by altering Tcl variables defined at the head of the = program, mxDynNotUserSettings.tcl:
 
Tcl Variable  Description 
sDynNotUserAttr Defines the title of the = attribute assigned to the target object that is used to indicate a role or = group.  For an attribute that is on the target object, merely specify its = title.  However, you can also use direct MQL syntax.  This allows you to = access an attribute on a related objects.  For example: 
 
relationship\[Rel = Name\].from.attribute\[Attr Name\]

Note that the brackets need to be escaped = (\[ and \]) for Tcl. 

If this attributes value contains commas, it is assumed that = multiple user object(s) are being specified.

fDynNotUserApprInter Defines a Boolean switch used to intersect the Person assignments = determined from the sDynNotUserAttr setting with all Person objects that have a = signature to leave the current state.  Set to '1' to perform = intersection.  Set to '0' to not perform intersection.
sDynNotUserFormat Defines a Tcl format = string used to convert the value of the above attribute to a Matrix group or = role.  A setting of "%s" indicates that the attribute values are the exact = same as the role or group names. 
sDynNotUserSubject Defines the mail = subject.. 
sDynNotUserMsg Defines the mail message = text. 
fDynNotFullName Indicates if the dialog that is used to confirm sent notifications should refer to the Person object recipients by their object name (set to 0) or by the full name attribute (set to 1).
 
The mxDynNotUserSettings.tcl program can be cloned = to accommodate different Dynamic Notification needs.  For instance, = suppose dynamic notification is needed to notify a group or role determine by = the value of attribute, "Plant Distribution".  A clone of = mxDynNotUserSettings.tcl named, "Notify Plant", can be created that has the following code = definition:
 
... 

set sDynNotUserAttr    "Plant Distribution"  
set sDynNotUserFormat  "%s"  
set sDynNotUserSubject "For Your Information"  
set sDynNotUserMsg     "Object has been released."  

... 

 
Return to Contents

Person Notification Through Attribute = Settings

The Person Notification program's behavior = can be changed by altering Tcl variables defined at the head of the = program, mxDynNotPerSettings.tcl:
 
Tcl Variable  Description 
sDynNotPerAttr Defines the title of the = attribute assigned to the target object that is used to indicate a = person/persons.  For an attribute that is on the target object, merely specify its = title.  However, you can also use direct MQL syntax.  This allows you to = access an attribute on a related objects.  For example: 
 
relationship\[Rel = Name\].from.attribute\[Attr Name\]

Note that the brackets need to be escaped = (\[ and \]) for Tcl. 

If this attributes value contains commas, it is assumed that = multiple person object(s) are being specified.

sDynNotPerFormat Defines a Tcl format = string used to convert the value of the above attribute to a Matrix person.  A setting of "%s" indicates that the attribute values are the exact same as the person names. 
sDynNotPerSubject Defines the mail = subject.. 
sDynNotPerMsg Defines the mail message = text. 
fDynNotFullName Indicates if the dialog that is used to confirm sent notifications should refer to the Person object recipients by their object name (set to 0) or by the full name attribute (set to 1).
 
The mxDynNotPerSettings.tcl program can be cloned = to accommodate different Dynamic Notification needs.  For instance, = suppose dynamic notification is needed to notify a person determine by the = value of attribute, "Originator".  A clone of mxDynNotPerSettings.tcl = named, "Notify Originator", can be created that has the following code = definition:
 
... 

set sDynNotPerAttr    "Originator"  
set sDynNotPerFormat  "%s"  
set sDynNotPerSubject "For Your Information"  
set sDynNotPerMsg     "Object has been released."  

... 

 
Return to Contents

Organization Chart = Notification

The Organization Chart Notification library = program object, mxDynNotOrg.tcl, has the following Tcl variable that must be = set to reflect your database schema:
 
Tcl Variable  Description 
sDnOrgType Defines the name of the = abstract object type from which all instantiable organization chart object types are ultimately derived. 
 
The Organization Chart Notification = program's behavior can be changed by altering Tcl variables defined at the head = of the program, mxDynNotOrgSettings.tcl:
 
sDnOrgSubject Defines the mail = subject. 
sDnOrgMsg Defines the mail message = text. 
fAutomatic Recipients of the message can be = determined in 1 of 2 ways: 
  1. Automatically send messages to all of the current user's direct = managers by traversing the organization chart.
  2. Use a GUI to allow the current user to select person(s) assigned to a = specified role or group.
For scenario A, set fAutomatic to 1.  For Scenario B, set = fAutomatic to 0.
iNotLevels Notifications can be sent to multiple = levels up the organization chart.  The default is "1", which notifies the direct manager(s).  Set to "*" for all levels.
sGuiUser If fAutomatic is set to 0, then the GUI = is being used to select message recipients.  Define the group or role that will be used to create the list of potential person recipients.
 
The mxDynNotOrgSettings.tcl program can be cloned = to accommodate all Dynamic Notification needs.  For instance, suppose dynamic notification is needed to notify the current users 1st and 2nd levels of management.  A clone of mxDynNotOrgSettings.tcl named, = "Notify 2 Levels of Mgt", can be created that has the following code = definition:
 
... 

set sDnOrgSubject "For Your Information"   
set sDnOrgMsg     "Object = Released"   
set fAutomatic    1   

set iNotLevels    2  
set sGuiUser      ""   

... 

 
Now suppose that the Organization Chart = Notification program needs to be implemented to allow the user to notify the entire management chain of a GUI-selected Design Supervisor:
 
... 

set sDnOrgSubject "For Your Information"   
set sDnOrgMsg     "Object = Released"   
set fAutomatic    0   

set iNotLevels    "*"  
set sGuiUser      "Design = Supervisor"   

... 

 
Return to Contents
 
Distribution List = Notification
 
The Distribution List Notification library = program object, mxDynNotDist.tcl, has the following Tcl variable that must be = set to reflect your database schema:
 
Tcl Variable  Description 
sDnDistGroup Defines the name of the = top-level Matrix group object used to categorize all distribution list = groups. 
 
The Distribution List Notification program's = behavior can be changed by altering Tcl variables defined at the head of the = program, mxDynNotDistSettings.tcl:
 
sDnDistSubject Defines the mail = subject. 
sDnDistMsg Defines the mail message = text. 
sDnDistFormat The program needs to find attributes on = the object that correspond to a Matrix distribution list group.  = Typical schemas choose to assign an attribute title that is the same as the = group title.  However, you do not need to this.  Using the Tcl = format specifiers, you can define a format string that converts the = distribution list group to an attribute title.  A value of "%s" indicates that they are the same.
sDnDistRelType The program first checks for the distribution list attributes on = the target object.  The program can also be directed to search for = distribution list attributes on related objects of the type defined with this = variable.  Leave blank if no search is to be made.
  
The following is an example of how the variables in = the mxDynNotDistSettings.tcl program can be set to search for distribution list settings on the target object and all related Drawing = objects: 
 
... 

set sDnDistSubject "For Your Information"   
set sDnDistMsg     "Object = Released"   
set sDnDistFormat  "%s" 
set = sDnDistRelType "Drawing"  

... 

 
Select Approval User = Notification

The Selected Approval User Notification = program's behavior can be changed by altering Tcl variables defined at the head = of the program, mxDynNotSelectApprSettings.tcl:
 
sDynNotUserSubject Defines the default mail = subject.. 
sDynNotUserMsg Defines the default mail = message text. 
 
The mxDynNotSelectApprSettings.tcl program can be = cloned to accommodate different Dynamic Notification needs.  For = instance, suppose dynamic notification is needed to notify authorized approvers = by the value of attribute, "Plant Distribution".  A clone of = mxDynNotSelectApprSettings.tcl named, "Notify Plant", can be created that has the following code = definition:
 
... 

set sDynNotUserSubject "For Your Information"  
set sDynNotUserMsg     "Object has been released."  

... 

 
Using the above settings, the GUI will be presented as follows:
 

 
 
Note the following regarding the GUI's appearance and functionality:

The Subject entry box contains the subject title initially = set up in the mxDynNotSelectApprSettings.tcl program.  The contents = within the
entry box can be changed at run time by the user.

The Message text box contains the message text initially set up in the mxDynNotSelectApprSettings.tcl program.  The contents = within the
entry box can be changed at run time by the user.  Free form = text is allowed with...

The Select Users For Notification list box contains all users having signature authority to the target business object in the current state.
Users can be selected by using the multi-selection click, = drag-and-click, and shift-click techniques on the name value, (highlighted denotes = selected).  To deselect a user, control-click on the highlighted user's name.  To select all available users, click the Select All command button.

The Select All command button selects all users presented in the user listbox.
The Clear Selections command button resets the Subject and = Message entry boxs to their default values, deselects all selected users
and disables the Notify Users command button.
The Notify Users command button sends icon mail having the = target object, subject, and message to each of the selected users.
The Exit command button unloads the GUI.

Return to Contents
 
Dynamic Notification = Enforcement
 
This program is implemented as a promote or signature = approval/rejection check at a state that is already using w Dynamic Notification programs to send icon mail upon entering the state.  To properly configure this program, you merely need to copy the settings from the = 'notification' program into a clone of this enforcement program.  This is done in the set-up section of the program object.  The following table = lists the settings that need to be copied for each Dynamic Notification = approach:
 
Dynamic Notification Approach Setting Variables to Copy
Role/Group Notification Through Attribute = Settings sDynNotUserFormat 
sDynNotUserAttr 
fDynNotUserApprInter
(No other approaches currently supported.)
 
Return to Contents

------_=_NextPart_000_01BEA3F6.D0A61942--