Abmdref
Abmdref
Management 7.2
Data Administration Guide
SAS® Documentation
The correct bibliographic citation for this manual is as follows: SAS Institute Inc 2012. SAS® Activity-Based Management 7.2: Data Administration
Guide. Cary, NC: SAS Institute Inc.
SAS ® Activity-Based Management 7.2: Data Administration Guide
Copyright © 2012, SAS Institute Inc., Cary, NC, USA
All rights reserved. Produced in the United States of America.
For a hardcopy book: No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means,
electronic, mechanical, photocopying, or otherwise, without the prior written permission of the publisher, SAS Institute Inc.
For a Web download or e-book:Your use of this publication shall be governed by the terms established by the vendor at the time you acquire this
publication.
U.S. Government Restricted Rights Notice: Use, duplication, or disclosure of this software and related documentation by the U.S. government is
subject to the Agreement with SAS Institute and the restrictions set forth in FAR 52.227–19 Commercial Computer Software-Restricted Rights
(June 1987).
SAS Institute Inc., SAS Campus Drive, Cary, North Carolina 27513.
Electronic book 2, May 2012
SAS ® Publishing provides a complete selection of books and electronic products to help customers use SAS software to its fullest potential. For
more information about our e-books, e-learning products, CDs, and hard-copy books, visit the SAS Publishing Web site at support.sas.com/
publishing or call 1-800-727-3228.
SAS® and all other SAS Institute Inc. product or service names are registered trademarks or trademarks of SAS Institute Inc. in the USA and other
countries. ® indicates USA registration.
Other brand and product names are registered trademarks or trademarks of their respective companies.
Contents
PART 3 Surveys 77
<modelRef>_PV_DimMember . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
<modelRef>_PV_Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
<modelRef>_PV_EnteredCE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
<modelRef>_PD_<DimRef> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
<modelRef>_PD_CostElement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
<modelRef>_PD_Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
<modelRef>_PD_Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
<modelRef>_PD_Period . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
<modelRef>_PD_Scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
<modelRef>_PD_YesNo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
<modelRef>_PF_MSC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
<modelRef>_PF_RC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
<modelRef>_PF_SSC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
<modelRef>_PF_<cubeConfigRef> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
Part 1
Managing Permissions
Chapter 1
User Capabilites and Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2
3
Chapter 1
User Capabilites and Groups
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Creating Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Creating a Role . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Creating Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Create a Group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Creating Groups versus Creating Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Creating Users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Sample Allocation of Capabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Groups Created During Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Modelers and Business Users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Reporters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
SAS OLAP Cube Creators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Survey Takers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Table of Capabilities and Model Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
About the Table of Capabilities and Model Access . . . . . . . . . . . . . . . . . . . . . . . . . 25
How to Read this Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Overview
As an administrator, you create users, roles, and groups. In general, the sequence you
will follow is the following:
1. Create roles See “Creating Roles” on page 4.
A role is a set of capabilities. When you make a group be a member of a role, users
who are members of that group inherit the capabilities of the role.
2. Create groups See “Creating Groups” on page 12.
A group is a set of users who share the same capabilities. It is convenient to create
groups before creating users because if groups exist, then when you create a user you
can assign the user to one or more groups and thereby determine the user's
capabilities.
3. Create users and assign them to groups. See “Creating Users” on page 17.
4 Chapter 1 • User Capabilites and Groups
Creating Roles
Overview
A role is a set of capabilities. The following picture shows the SAS Activity-Based
Management capabilities that can be assigned to a role.
Creating Roles 5
The following table shows the roles that are automatically created for you on installation
of SAS Activity-Based Management. The table also shows the capability that each role
possesses.
Role Capabilities
As an administrator you create roles with one or more capabilities. Then when you
create a group, you make the group be a member of a role so that the group inherits
capabilities from the role.
For examples of allocating capabilities using roles and groups, see “Table of Capabilities
and Model Access” on page 25.
The following picture summarizes the inheritance of capabilities from roles and groups:
• Role B inherits from role A because role A is a contributing role to role B.
• Group C inherits from role B because group C is a member of role B.
• Group D inherits from group C because group D is a member of group C.
Note: The relationship inherits from is transitive. That is if C inherits from B, and B
inherits from A, then C inherits from A.
Another way to look at the inheritance of capabilities is as one of inclusion as shown in
the following picture which (assumes the Contributes to and Member of relationships in
the picture above):
Creating Roles 7
In this picture:
• Users in Role A have only the capabilities of Role A.
• Users in Role B have the capabilities of Role A and Role B.
• Users in Group C have the capabilities of Role A and Role B (and they could have
whatever capabilities not pictured that Group C inherits from other roles).
• Users in Group D have the capabilities of Role A and Role B and Group C (and they
could have whatever capabilities not pictured that Group D inherits from other roles
or groups).
Creating a Role
1. Open SAS Management Console, connecting to your metadata server.
2. Select User Manager, and then select New ð Role.
8 Chapter 1 • User Capabilites and Groups
4. Click the Members tab and add, as members of this role, the groups that you want to
inherit the capabilities of the role.
Creating Roles 9
5. Click the Capabilities tab and select the capabilities that you want to assign to this
role—and indirectly to any group that is a member of this role.
10 Chapter 1 • User Capabilites and Groups
The Create Models capability gives full access to a model including model creation
and deletion, cube creation and viewing, etc. Plus, it gives users some other abilities
not related to a particular model such as creating column layouts and setting up
exchange rates. The Create Models capability provides the abilities of a Modeler in
previous releases of SAS Activity-Based Management.
The View Models capability gives user the ability to create, view, and publish
reports, plus some other abilities. The View Models capability provides the abilities
of a Business User in previous releases of SAS Activity-Based Management.
For a table that lists all the features of SAS Activity-Based Management and
specifies what features are available to a user based on those two factors, see
“Sample Allocation of Capabilities” on page 20.
Note: In the Capabilities tab of SAS Management Console, the following icon
indicates a capability that has been explicitly assigned to a role, whereas the
following icon indicates a capability that has been inherited from a
contributing role. For example, in the following picture you can see that the first
eight capabilities have been inherited from one or more contributing roles,
Creating Roles 11
whereas only the last capability (Administer) has been explicitly assigned to the
role.
6. Click the Contributing Roles tab and add any roles that you want to contribute
capabilities to the role being created. This step is optional.
7. Click the Authorization tab and add any groups or roles that you want to have
authorization to access the role being created. This step is optional.
12 Chapter 1 • User Capabilites and Groups
Creating Groups
Overview
A group is a set of users who share the same capabilities. It is convenient to create
groups before creating users because if groups exist, then when you create a user you
can immediately assign the user to one or more groups and thereby determine the user's
capabilities. The following table shows the groups that are automatically created on
installation of SAS Activity-Based Management. The table also shows the capabilities
that each group inherits by being a member of a group or a role..
Activity-Based Management Survey Takers Activity-Based Management Users (group) Take Surveys
Activity-Based Management: Take Survey
(role)
For examples of allocating capabilities using roles and groups, see “Table of Capabilities
and Model Access” on page 25.
Create a Group
To create a group, do the following:
1. Open SAS Management Console, connecting to your metadata server.
2. Select User Manager, and then select New ð Group.
14 Chapter 1 • User Capabilites and Groups
4. Click the Groups and Roles tab and add the roles whose capabilities you want the
group to have.
Creating Groups 15
We say that the group is a member of the role. Such roles contribute their capabilities
to the group. Alternatively, we can say that the group inherits its capabilities from
the roles.
So, you might wonder why an administrator should bother to create a group, ABM
Modeler Group, that inherits from the ABM Modeler Role. Why not simply make users
a member of the ABM Modeler Role or some other role? The answer is that in order to
access SAS Activity-Based Management, a user must be either:
• a member of the group Activity-Based Management Users
• a member of a group that is a member of the group Activity-Based Management
Users.
Access to individual workspace items (models, cubes, and so forth) is assigned to groups
and not to roles. So, if a user is not a member of a group, then that user cannot access
Activity-Based Management objects (such as models) even if the user is a member of a
role.
Additionally, the owner of a workspace item can assign read or read/write access to that
item. To assign access to a workspace item, the owner does the following:
1. Select the workspace item.
2. Right-click and select Item Properties (or select Edit ð Item Properties).
3. Click the Permissions tab.
4. Assign Read or Read/Write access to the desired groups. (Only groups are listed not
roles.)
Creating Users 17
Creating Users
To create a user, do the following:
1. Open SAS Management Console, connecting to your metadata server.
2. Select User Manager, and then select New ð User.
18 Chapter 1 • User Capabilites and Groups
3. Enter the user's Name (which is the user's ABM logon name) and the user Display
Name.
4. Click the Groups and Roles tab and add the group or groups of which the user is a
member.
This gives the user all the capabilities of the group. If the user is a member of
multiple groups, then the user has the union of the capabilities of the groups of which
the user is a member.
Creating Users 19
5. Click the Accounts tab and click New to add a new account. Enter the user's domain
and user ID.
You should leave the password blank. When the user logs onto SAS Activity-Based
Management, the password that the user enters will be verified against the user's
password on the system.
20 Chapter 1 • User Capabilites and Groups
Activity-Based Management Survey Takers Activity-Based Management Users (group) Take Surveys
Activity-Based Management: Take Survey
(role)
Roles
During installation of SAS Activity-Based Management, the following roles are created
automatically.
Role Capabilities
As an administrator, you can also create your own roles. One option is to create a
separate role for each capability for which there is not a role created automatically. This
gives you maximum flexibility in assigning capabilities. Alternatively, you can create
roles each of which has multiple capabilities. This gives you less flexibility but makes it
easier to assign multiple capabilities to a group.
22 Chapter 1 • User Capabilites and Groups
The Modeler group inherits the Create Models capability, which gives users in the group
full access to a model. With full access, users can create and delete models, create cubes,
view cubes, and also perform other tasks such as creating column layouts and setting up
Sample Allocation of Capabilities 23
exchange rates. The Create Models capability provides the abilities of a Modeler in
previous releases of SAS Activity-Based Management.
The Business Users group inherits the View Models capability, which gives users in the
group the ability to create, view, and publish reports, plus some other abilities. The View
Models capability provides the abilities of a Business User in previous releases of SAS
Activity-Based Management.
For full details of what access to features the capabilities provide, see “Table of
Capabilities and Model Access” on page 25.
Note: The Modeler group and the Business Users group are both members of the
Activity-Based Management Users group. This enables every user in the Modeler
group and the Business Users group to log onto SAS Activity-Based Management.
Reporters
The following picture shows an example of creating a Reporter group. Members of this
group inherit the View Reports and Create Reports capabilities.
Note: The arrangement that is pictured is only a suggestion. It is not required.
Note: The Reporter group is a member of the Activity-Based Management Users group.
This enables every user in the Reporter group to log onto SAS Activity-Based
Management.
• Create Cubes
Survey Takers
The following picture shows an example of creating a Survey Taker group. Members of
this group inherit the Take Surveys capability.
View
Create View Contri
Repor Repor Create View bution Admin
Create Models View Models ts ts Cubes Cubes s Audit ister
)ł6i
New ✓ ✓ )ł6i )ł6i )ł6i )ł6i )ł6i )ł6i )ł6i )ł6i )ł6i
Model
Wizard
(*)
Import ✓ ✓ )ł6i )ł6i )ł6i )ł6i )ł6i )ł6i )ł6i )ł6i )ł6i
Model
Data
View
Create View Contri
Repor Repor Create View bution Admin
Create Models View Models ts ts Cubes Cubes s Audit ister
Publis qc– ✓ qc– qc– qc– qc– qc– qc– qc– qc– qc–
h
Behavi
ors
Registe qc– ✓ qc– qc– qc– qc– qc– qc– qc– qc– qc–
r
Metada
ta
qc–
Calcul qc– ✓ qc– qc– qc– qc– qc– qc– qc– qc– qc–
ate
Genera qc– ✓ qc– qc– qc– qc– ✓ qc– qc– qc– qc–
te Fact
Tables
28 Chapter 1 • User Capabilites and Groups
View
Create View Contri
Repor Repor Create View bution Admin
Create Models View Models ts ts Cubes Cubes s Audit ister
Genera ¯ÌàÚ ✓ ¯ÌàÚ ¯ÌàÚ ¯ÌàÚ ¯ÌàÚ ✓ ¯ÌàÚ ¯ÌàÚ ¯ÌàÚ ¯ÌàÚ
te
Cubes
¯ÌàÚ
Periods ¯Ìà(5ä½ ò·À ¯Ìà(5ä½ ò·À ¯Ìà(5d½ ò ¯Ìà(5d½ r·$ ¯Ìà(5d½÷ ¯ÌàÚ ¯Ìà(5d½÷ ¯ÌàÚ ¯ÌàÚ ¯ÌàÚ ¯ÌàÚ
&
Scenari
os (*)
Exchan ¯Ìà(5ä½ ò ¯Ìà(5ä½ ò ¯Ìà(5ä ¯Ìà(5ä½÷ ¯Ìà(5ä ¯ÌàÚ ¯Ìà(5ä ¯ÌàÚ ¯ÌàÚ ¯ÌàÚ ¯ÌàÚ
ge
Rates
(*)
Dimen ¯Ìà(5ä ¯Ìà(5ä½ ò·À ¯Ìà(5ä ¯Ìà(5ä½ ò ¯Ìà(5ä ¯ÌàÚ ¯Ìà(5ä ¯ÌàÚ ¯ÌàÚ ¯ÌàÚ ¯ÌàÚ
sions
Model ¯Ìà(5ä ¯Ìà(5ä½ ¯Ìà(5ä ¯Ìà(5ä ¯Ìà(5ä ¯ÌàÚ ¯Ìà(5ä ¯ÌàÚ ¯ÌàÚ ¯ÌàÚ ¯ÌàÚ
Propert
ies
Dialog
Period/ ¯Ìà(5ä ¯Ìà(5ä½ ò·À ¯Ìà(5ä ¯Ìà(5ä½ ò ¯Ìà(5ä ¯ÌàÚ ¯Ìà(5ä ¯ÌàÚ ¯ÌàÚ ¯ÌàÚ ¯ÌàÚ
Scenari
o
Associ
ations
Copy ¯ÌàÚ ¯ÌàÚ✓ ¯ÌàÚ ¯ÌÇi5ä ¯ÌàÚ ¯ÌàÚ ¯ÌàÚ ¯ÌàÚ ¯ÌàÚ ¯ÌàÚ ¯ÌàÚ
Period/
Scenari
o Data
Manag ¯Ìà(5ä ¯Ìà(5ä½ ò·À ¯Ìà(5ä ¯Ìà(5ä½ ò ¯Ìà(5ä ¯ÌàÚ ¯Ìà(5ä ¯ÌàÚ ¯ÌàÚ ¯ÌàÚ ¯ÌàÚ
e
Attribu
tes
Drivers ¯Ìà(5ä ¯Ìà(5ä½÷·$ ¯Ìà(5ä ¯Ìà(5ä½ ò ¯Ìà(5ä ¯ÌàÚ ¯Ìà(5ä ¯ÌàÚ ¯ÌàÚ ¯ÌàÚ ¯ÌàÚ
D
Table of Capabilities and Model Access 29
View
Create View Contri
Repor Repor Create View bution Admin
Create Models View Models ts ts Cubes Cubes s Audit ister
Edit ñü `¢ ñü `¢jx„â¢+ ñü `¢ ñü `¢jx„â ñü `¢ ñüò ñü `¢ ñüò ñüò ñüò ñüò
model
using
Model
Views
Autom ñüò ✓ ñüò ñüò ñüò ñüò ñüò ñüò ñüò ñüò ñüò
ation
API
Workspace Items: models, cube configurations, cubes, column layouts, OLAP views, reports, report configurations, etc.
Create ñÛA`¢ ñÛA`¢ ñÛA`¢ ñÛA`¢ ñÛA`¢ ñüò ñüòñÛA`¢ ñüò ñüò ñüò ñüò
Create ñÛA`¢ ñÛA`¢ ñÛA`¢ ñÛA`¢ ñÛA`¢ ñüò ñüòñÛA`¢ ñüò ñüò ñüò ñüò
Folders
Open Owner Owner Owner Owner Owner Owner Owner Owner ñüò ñüò ñüò
(Run, ñü
`¢ ñü
`¢ ñü
`¢ ñü
`¢ X1 ñü
`0j‘ X3 ñü
`6j‘
Invoke
, View)
Edit Owner Owner Owner Owner Owner ñüò Owner ñüò ñüò ñüò ñüò
ñü `Uj‘ ñü `Uj‘„â ñü `Uj‘ ñü `Uj‘„â ñü `Uj˚„â ñü `Uj˛„â
Delete/ ñü˛`ujA„'¢˛Û× ñü˛`ujA„'¢˛Û× ñü˛`ujA„'¢˛Û× ñü˛`ujA„'¢˛Û× Owner ñüò Owner ñüò ñüò ñüò ñÛA`¢
Renam
e/Cut
(Move)
Item ñü˛`ujA„'¢˛Û× ñü˛`ujA„'¢˛Û× ñü˛`ujA„'¢˛Û× ñü˛`ujA„'¢˛Û× Owner ñüò Owner ñüò ñüò ñüò ñÛA`¢
Propert
ies
ñüò
Operati ñü `¢jj„â¢+Û× ñü `¢jj„b¢+Û× ñü `¢jj„â ñü `¢jj„â ñü `¢jj ñüò ñü `¢jj„â ñüò ñüò ñüò ñüò
on
Summ
aries(*
)
30 Chapter 1 • User Capabilites and Groups
View
Create View Contri
Repor Repor Create View bution Admin
Create Models View Models ts ts Cubes Cubes s Audit ister
Manag +CÕ26#zZ +CÕ26#zZ~ R R +CÕ26#zZ +CÕÀ +CÕ26#zZ +CÕÀ +CÕÀ +CÕÀ +CÕ26#z¾~ñ
e
Tasks(
*)
User +CÕ26£zI~ +CÕ26#zI~ +CÕ26#zI~ +CÕ26#zI~ +CÕ26#zI~ +CÕ26#zI~ +CÕ26#zI +CÕ26#zI~ +CÕ26#zI +CÕ26#zI~ +CÕ26#zI
Option
s(*)
Legend
* = This facility is not model specific and cannot be controlled on a model-by-model
basis
R = Read
W = Write
D = Delete
P = Publish
E = Export
Purge = Purge
Note: A user with Audit capability can purge an audit log without having either Read or
Read/Write access to a model.
Owner = The Owner of the Workspace item has the ability
OwnerX = The Owner or any user in an authorized Read or Read/Write Group for the
item has the ability.
• OwnerX1 = The Owner or any user in an authorized Read or Read/Write Group for
the item has the ability for Report configurations and Published Reports only. It
excludes all other workspace items.
• OwnerX2 = The Owner or any user in an authorized Read or Read/Write Group for
the item has the ability for Published Reports only. It excludes all other workspace
items.
• OwnerX3 = The Owner or any user in an authorized Read or Read/Write Group for
the item has the ability for Cube configurations and Saved Cube Views only. It
excludes all other workspace items.
• OwnerX4 = The Owner or any user in an authorized Read or Read/Write Group for
the item has the ability for Saved Cube Views only. It excludes all other workspace
items.
OwnerRW = The Owner or any user in an authorized Read/Write Group for the item
has the ability.
Table of Capabilities and Model Access 31
• OwnerRW1 = The Owner or any user in an authorized Read/Write Group for the
item has the ability for Report configurations and Published Reports only. It excludes
all other workspace items.
• OwnerRW2 = The Owner or any user in an authorized Read/Write Group for the
item has the ability for Cube Configurations and Saved Cube Views only. It excludes
all other workspace items.
Create = This refers to the ability to create folders and links to other workspace items.
Creation of workspace items is not done in the workspace. Creation of workspace items
is performed via operations on models and model data. For the ability to create
workspace items, see the section at the top of the table that enumerates the wizards and
dialogs that are used to create workspace items.
Publish Model = Model Viewers with read only access to a model cannot see data in a
model unless it is in a published period/scenario.
Workspace items = Ability to perform operations on workspace items means that the
user has permission to the workspace item and access to the model data (if any) needed
for it. For example, to launch a Cube View, the user must have privileges to the Cube
View and to the model it refers to.
Edit = This means to edit workspace items (other than models). For example, to edit an
existing report configuration, column layout, etc. and change its contents without
changing its name.
Import Model Data = The permissions on a model are applied if a user overwrites an
existing model on import. The user is not allowed to overwrite the model unless the user
has Write permission on the model.
User Options = Items that affect how the tool behaves and appears to the user. Example:
background colors, number of displayable significant digits. These do not affect the
Model data stored on the server in any way.
Model Views = Includes the Resource, Activity, Cost Object, and External Unit
modules, Attributes view, Dimensions view, and Drivers view. Editing a model includes
all editing tasks within those model views.
My Shortcuts = This includes all operations that can be performed under the My
Shortcuts section of the Workspace Manager.
Item Properties = Open the Item Properties dialog box to change the owner of the item,
edit its description, or assign permission to the item to groups.
32 Chapter 1 • User Capabilites and Groups
Note: The drop-down list of potential owners includes those users who have Create
capability for the item. For example, you can transfer owership of a model only
to those users who have Create Models capability.
• The owner of a model (or administrator) can grant Read or Read/Write model access
to members of a group by selecting the model in the Models Workspace and
selecting Edit ð Item Properties. Then, by checking either Read or Read/Write, the
owner grants that model access to all members of the group.
The columns in the table refer to a set of users with a combination of a capability and a
Read or Read/Write access to a model.
For example column 1 refers to the set of user with Create Models capability and Read
access to a model. Because the owner of a model automatically has Read/Write access
the model, users with only Read access are those users who are members of a group that
has been granted Read access to the model by the model's owner.
Similarly, column 2 refers to the set of users with Create Models capability andRead/
Write access to a model. Users with Read/Write access are the model owner and users
who are members of a group that has been granted Read/Write access to the model by
the model's owner.
Note: By itself, theCreate Models capability primarily provides the ability to run the
New Model Wizard and a few other facilities such as running diagnostics. It is
mostly in conjunction with model permissions that the Create Models capability
fulfills its potential.
4. Understanding the Rows
Each row in the table refers to an action or facility of SAS Activity-Based Management.
For example row 1 refers to the New Model Wizard. Row 2 refers to the action of
importing model data.
5. Understanding the Cells
The cells in the table specify either of the following (or both):
• Who specifically has the ability referred to in the row.
• What aspects of the ability does someone have
Who specifically has the ability referred to in the row
The following table lists the cell indicators that specify who specifically has the ability
referred to in the row, and what those cell indicators mean.
Part 2
Chapter 2
Predefined Report Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Chapter 3
Report Export Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
38
39
Chapter 2
Predefined Report Templates
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Information in this report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Resource Contributions Intermediate Report Template . . . . . . . . . . . . . . . . . . . . . 51
Single-stage Assignments Report Template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Information in this report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Single-stage Contributions Report Template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Information in this report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Unassigned Costs Report Template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Information in this report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Unit Cost Report Template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Information in this report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Report Header
Each report has a header that lists pertinent information for that report. All or some of
the following information can be listed in a report's header:
Information Description
Overview
This report displays the correlation between Cost and Used Quantity.
ModelId Model ID
ModuleId Module Id for ExternalUnit (0), Resource (1), Activity (2), and CostObject (3)
CostMean The mean average of cost for account across the period/scenarios
Overview
This report template traces the costs from an account, through the model, to the accounts
that ultimately receive the costs. For example, you can generate a report that lists all the
cost objects that receive costs from a specific department in the Resource module. The
Destination Furthest report can be run to display two currencies.
Note: Before you run the Destination Furthest report, you must generate the Resource
Contributions cube, the Multi-stage Contributions cube is not required for this report.
Module The module of each account that receives costs: Resource (R), Activity (A), or
Cost Object (C)
% Percentage assigned from the parent account to the account that receives costs
or the total assigned or the idle capacity
Total Assigned Total of the % (percentages) or total of the Assigned Cost of the accounts that
receive costs
Dimensional Attribute Unit Cost Report Template 43
Overview
This report template lists costs of accounts for the selected dimension attributes,
independent of the module hierarchy.
For example, you can look at all accounts with a specific attribute, regardless of their
level or association in the module hierarchy. Because the Dimensional Attribute Cost
report supplies information about selected dimension attributes, if you do not select any
dimension attributes, the report is not generated.
If an account has more than one dimension attribute, that account is listed for each
dimension.
Cost Cost of the item or sum of the costs of the items that have the selected
dimension attribute or, for the listed module, the sum of the costs of all the
items that have the selected dimension attributes
BOC Cost Cost from the bill of costs for the item or sum of the bills of costs of the items
that have the selected dimension attribute or, for the listed module, the sum of
the bills of costs of the items that have the selected dimension attributes
Overview
This report template lists costs and unit costs of accounts for the selected dimension
attributes, independent of the module hierarchy. It is similar to the Dimensional
Attribute Cost report template, except it has unit cost and output information.
For example, you can look at all accounts with a specific attribute, regardless of their
level or association in the module hierarchy. Because the Dimensional Attribute Unit
Cost report supplies information about selected dimension attributes, if you do not select
any dimension attributes, the report is not generated.
If an account has more than one dimension attribute, that account is listed for each
dimension.
44 Chapter 2 • Predefined Report Templates
Output Type Output type of the account that receives costs; Default, User, or Sold
Cost Cost of the item or sum of the costs of the items that have the selected
dimension attribute or, for the listed module, the sum of the costs of the items
that have the selected dimension attributes
Unit Cost Unit cost of the account; calculated by dividing the Cost by the Output Qty
Overview
This report template lists revenue, cost, profit, and unit cost for the selected dimension.
By selecting dimensions, you build a hierarchy to report the profitability for those
dimensions. For example, you can build a dynamic hierarchy that lists each region, each
sales person in each region, each sales person's customers, and each customer's product
purchases. You can select up to 10 dimensions.
In the Report Wizard, in the Select dimensions step, order the dimensions so that in the
Selected box, the dimensions are ordered with the dimension at the top of the box that
represents the top of the dimension hierarchy.
Only accounts are listed in this report.
Dim Depth Level in the dimension hierarchy; the first dimension you selected in the Report
Wizard is Dim Depth 1; selection order determines Dim Depth
Revenue The roll up, through the dimensional hierarchy, of user-entered revenue for
individual accounts
Cost Amount of money consumed to support the intersection of the dimensions in the
dimensional view; calculates a total of all the accounts with cost elements
tagged with the dimension attribute
Sold Qty For each dimension attribute, the sum of the sold quantities in the Sales table;
each higher level Sold Qty is the sum of its sub-items
Overview
This report template lists each driver used in the selected module and the accounts that
use that driver.
Driver Name Driver name, followed by a list of accounts that use the driver
Reference Driver reference (and, for a calculated driver, the formula); Reference contains
the Driver Type (Basic, Weighted, calculated) and Driver Qty Type (Unique or
Shared)
Cost Account cost or total cost of the accounts that use the driver
User Total Driver Qty User-entered total driver quantity for an account
Total Driver Qty Total driver quantity for the account that the system calculated by adding the
Basic driver quantities and Weighted driver quantities
Driver Rate Calculated by dividing an account's Cost by its Total Driver Qty
46 Chapter 2 • Predefined Report Templates
Idle Percent Driver percentage that has not been assigned from this account; calculated by
subtracting the sum of the account's driver percentages from 100 percent
Idle Qty Calculated number between the total user-entered driver quantity and the total
calculated driver quantity; for a percentage driver, because the default total
driver quantity is 100, the Idle Qty is a calculated remainder from 100, minus
the user-entered driver quantities
Idle Cost Cost that has not been assigned for the percentage, account, or module;
calculated by subtracting the sum of the account's assigned costs from its total
cost
Grand Total Sum of all <Scenario> Idle Cost for all accounts for the entire model
Overview
This report template lists information about accounts and their contents for each module.
This information can help users validate and analyze a model or document the full detail
in a model. The complete hierarchy of any section of the model is displayed with all of
the centers, accounts, and cost elements and their costs.
Multi-level Contributions Report Template 47
• Tip When the Module Hierarchy report is run to display two currencies, the unit cost
is replaced with the cost in the alternative currency.
Level Level of item being displayed as a contributor; resource accounts are defined as
level 1 contributions and cost elements are defined as level 2 contributions
because they roll up to the account cost
Name Name of the account (or cost element) that contributes or receives costs
Terminal Dimension The dimensional value of the structural dimension displayed in the column
layout
Type The type of the item being displayed, such as Root, Rollup Account, Account,
Entered Cost Element
Cost Cost of the item or sum of the costs of the items that have the selected
dimension attribute or, for the listed module, the sum of the costs of the items
that have the selected dimension attributes
Unit Cost Unit cost of the account; calculated by dividing the Cost by the Output Qty
Overview
This report template lists the contributing accounts and their costs at every level back to
the original contributing accounts.
In the Report Wizard, if you choose to show cost elements, the Multi-level Contributions
report also lists the cost elements of the original contributing accounts and is called the
Multi-level Contributions With Cost Elements report.
Note: A maximum of 10 previous contributing accounts are listed. If your model has
more contributing accounts, the results will be incomplete or wrong.
The Multi-level Contributions report does not correctly present accounts in a reciprocal
system because it follows each contributing cost and ends up in an assignment loop that
exceeds the supported contribution depth of 10 accounts.
The Final Account is the account that receives all the costs.
48 Chapter 2 • Predefined Report Templates
Source Depth Number of steps through the assignment path from the final destination
Module Module of the account (or cost element or bill of costs) that contributes costs
• Assigned cost; values are Resource module (R), Activity module (A), or
Cost Object module (C)
• Entered costs; value is CEE (Cost Element Entered)
• Bills of costs; value is Ext (External Unit)
% Percentage of the account; calculated by dividing the cost of the account that
contributes costs by the cost of the account that receives costs
Unit Cost Unit cost of the account; calculated by dividing the Cost by the Output Qty
Output Type Output type of the account that receives costs; Default, User, or Sold; the
quantity can be one of the following:
• Default: Quantity is 1
• User: The user-entered output quantity
• Sold: The quantity sold
Overview
This report template generates a graph of the cumulative profit for one dimension. This
information can help users determine the break-even point of items and unprofitable
items.
Only accounts are listed in the Profit Cliff report.
Record Sorted record number graphed on the x-axis that matches the Profit Cliff
graphic to the data table detail; all records are sorted by Profit. Cumulative
Profit is graphed on the y-axis
Resource Contributions Report Template 49
Revenue The roll up, through the dimensional hierarchy, of user-entered revenue for
individual accounts
Profit Revenue minus Cost; Profit only applies to accounts with a dimension attribute
of the selected dimension
Grand Total Total Revenue, Cost, Profit, and Sold Qty for the dimension attributes in the
selected dimension
Overview
This report template lists the first accounts in which costs are entered into the model.
And, it displays how those costs are ultimately assigned to the final cost object in the
model. The Resource Contributions report is useful for analyzing the beginning and end
of the assignment path.
In the Report Wizard, if you choose to show cost elements, the Resource Contributions
report also lists the cost elements of the original contributing accounts and is called the
Resource Contributions with Cost Elements report.
This report lists the contributing costs from reciprocal allocations.
• Before you run this report, you must generate the Resource Contributions cube.
Level Level of item being displayed as a contributor; resource accounts are defined as
level 1 contributions and cost elements are defined as level 2 contributions
because they roll up to the account cost
Name Name of the account (or cost element) that contributes or receives costs
Module Module of the account (or cost element or bill of costs) that contributes costs
• Assigned costs; values are Resource module (R), Activity module (A), or
Cost Object module (C)
• Entered costs; value is CEE (Cost Element Entered)
• Bills of costs; value is Ext (external items)
Unit Cost Unit cost of the account; calculated by dividing the Cost by the Output Qty
Output Output type of the account that receives costs; Default, User, or Sold; the
quantity can be one of the following:
• Default: Quantity is 1
• User: The user-entered output quantity
• Sold: The quantity sold
Total Cost Total costs from the accounts that contribute costs
Overview
This report template lists the first accounts in which costs are entered into the model.
And, it displays how those costs are ultimately assigned to the final cost object in the
model. The Resource Contributions by Attribute report is identical to the Resource
Contributions report, but adds the ability to see resource dimension member values. This
report is useful for analyzing the beginning and end of the assignment path.
The Resource Contributions by Attribute report lists the contributing costs from
reciprocal allocations.
• Before you run this report, you must generate all cubes
Name Name of the account (or cost element) that contributes or receives costs
Source Dimension The dimension member to which the account that gives the costs belongs
Member
Single-stage Assignments Report Template 51
Unit Cost Unit cost of the account; calculated by dividing the Cost by the Output Qty
Overview
This report template lists all available information about accounts and the costs that flow
from one account to another. This information can help users understand how different
(or unrelated) accounts impact the costs of other accounts.
Name Name of the account (or cost element) that contributes or receives costs
Module The module of each account that receives costs: Resource (R), Activity (A), or
Cost Object (C)
% Percentage assigned from the parent account to the account that receives costs,
idle capacity or total assigned
Driver Qty Total driver quantity, account driver quantity, total assigned driver quantity, or
idle capacity driver quantity
Assigned Cost Cost of the account that contributes costs, assigned cost for account that
receives costs, idle capacity, or total assigned
52 Chapter 2 • Predefined Report Templates
Driver Driver name specified for the account that contributes costs (and, for a
calculated driver, the formula); in the Reference column, the driver type is
Shared or Unique
Total Driver Qty Total driver quantity for the account that contributes costs that the system
calculated by adding the Basic driver quantities and Weighted driver quantities
for the accounts that receive costs
User Total Driver Qty Only listed when an account that contributes costs has a user-entered Total
Driver Qty
Total Assigned Total of the % (percentages), driver quantities, and assigned costs of the
accounts that receive costs
Idle Capacity Total Assigned subtracted from the Total Driver Qty
Overview
This report template lists cost information about accounts and the costs that contribute to
them.
In the Single-stage Contributions report, you see the contributing unit cost and the
contribution of each unit to an account. This information can help users review all the
costs that contribute to an account. It lists all contributing items: entered costs, assigned
costs, costs from bills of costs, and costs assigned.
Name Name of the account (or cost element) that contributes costs or receives costs
Contributions Name of the account where the costs originated with an element type of
Assigned, Entered, or Bills of Costs
Module Module of the account that contributes costs to the noted account:
• Assigned costs; values are Resource (R), Activity (A), or Cost Object (C)
• Entered costs; value is CEE (Cost Element Entered)
• Bills of costs; value is Ext (external items) or Int (internal items)
% Percentage of the account; calculated by dividing the cost of the account that
contributes costs or unit cost by the cost of the account that receives costs
Unit Cost Unit cost of the account; calculated by dividing the Cost by the Output Qty
Output Output type of the account that receives costs; Default, User, or Sold; the
quantity can be one of the following:
• Default: Quantity is 1
• User: The user-entered output quantity
• Sold: The quantity sold
Total Contributions Subtotal for each type of cost (assigned costs, entered costs, or bills of costs)
Overview
This report template lists accounts that do not have outgoing assignments. This
information can help users validate a model because, in general, all accounts have
outgoing assignments.
Name Name of the module or unassigned account that does not have outgoing
assignments or has not been used as an internal bill of costs unit in another
account
Overview
This report template lists unit costs that reveal the costs of a single product or customer.
54 Chapter 2 • Predefined Report Templates
Output Type The source for the output type: Driver, Default, User, or Sold; a given output
type could be based on the default value=1; or the output type could be based on
a user-entered value (OutputUE); or the output type could be based on the
Quantity Sold (SoldQty).
Unit Cost Unit cost of the account; calculated by dividing the Cost by the Output Qty
55
Chapter 3
Report Export Tables
AccountId Integer Account Id. Useful for joining with other tables
CostMean Float The mean average of cost for account across the
period/scenarios
SourceName Alphanumeric 64 The name of the account that gives the costs
SourceReference Alphanumeric 64 The reference of the account that gives the costs
SourceParentName Alphanumeric 64 The name of the rollup account that contains the
account that gives the costs
SourceOutputQuantity Float Sxö" The output quantity of the account that receives
the costs
Destination Furthest Report – Export Table 57
SourceOutputType Integer .Vª. The output quantity type of the account that
gives the costs
1 User-entered
2 Used
3 Driver
4 Sold
5 Default
SourceCost Float 64 The cost of the account that gives the costs
DestinationName Alphanumeric 64 The name of the account that receives the costs
DestinationModuleId Integer .Vª. The ID of the module that contains the account
that receives the costs
1 Resource
2 Activity
3 Cost Object
DestinationOutputQuantity Float .Vª. The output quantity of the account that gives the
costs
DestinationOutputType Integer .Vª. The type of the account that receives the costs
DriverName Alphanumeric 64 The name of the driver on the account that gives
the costs
OutputType Integer $RB The output quantity type for the account (Sold
or User or Driver or Default)
1 User-entered
2 Used
3 Driver
4 Sold
5 Default
Profit Float ¢Sé4 The Revenue minus the Cost of the dimensional
intersection account
DriverName Alphanumeric 64 The name of the driver on the account that gives
the costs
DriverQuantityType Integer ¢Sé4 The driver quantity type of the account that
gives the costs
ParentName Alphanumeric 64 The name of the rollup account that contains the
account
ModuleId Integer ¬ô8ò The ID of the module that contains the account
that receives the costs
1 Resource
2 Activity
3 Cost Object
IdleQuantity Float ¬ô8ò The idle driver quantity for the account
OutputType Integer 256 The output quantity type for the account
1 User-entered
2 Used
3 Driver
4 Sold
5 Default
FinalModuleId Integer q6¸ The ID of the module that contains the final
account in the assignment path
1 Resource
2 Activity
3 Cost Object
64 Chapter 3 • Report Export Tables
FinalCost Float ˘¤k The total cost of the final account in the
assignment path
OutputQuantity Float ˘¤k The output quantity of the final account in the
assignment path
OutputType Integer ˘¤k The output quantity type of the final account
in the assignment path
1 User-entered
2 Used
3 Driver
4 Sold
5 Default
ModId_D1 - D10 Integer ˘¤k The ID of the module containing the account
one to 10 steps back in the assignment path that
contributes to the final account
1 Resource
2 Activity
3 Cost Object
Mod_D1 - D10 Alphanumeric 64 The name of the module containing the account
one to 10 steps back in the assignment path that
contributes to the final account
CeSrcId_D1 - D10 Integer ˘¤k The ID of the account one to 10 steps back in
the assignment path that contributes to the final
account
Name_D1 - D10 Alphanumeric 64 The name of the account one to 10 steps back in
the assignment path that contributes to the final
account
Percent_D1 - D10 Float ÇJƒ The percentage of cost that the account one to
10 steps back in the assignment path contributes
to the final account
Profit Float ÇJƒ The profit for the noted dimensional intersection
account
SoldQuantity Float ÇJƒ The quantity sold for the noted dimensional
intersection account
SourceId Integer „
Áà The ID of the account that gives the costs
SourceName Alphanumeric 64 The name of the account that gives the costs
SourceReference Alphanumeric 64 The reference of the account that gives the costs
SourceModuleId Integer „
Áà The ID of the module containing the account
that gives the costs
1 Resource
2 Activity
3 Cost Object
SourceUnitCost Float „
Áà The unit cost (contributing account costs/
destination account output quantity)
SourceOutputQuantity Float „
Áà The output quantity for the account that gives
the costs
SourceOutputType Integer „
Áà The output quantity type of the account that
gives the costs
1 User-entered
2 Used
3 Driver
4 Sold
5 Default
SourceCeContribution Float „
Áà The costs contributed from the cost element of
the account that gives the costs
Resource Contributions Report – Export Table 67
SourceCeType Integer zÚ»À The type of the cost element of the account
that gives the costs
1 Root
2 Rollup account
3 Account
4 Entered cost element
5 Assigned cost element
11 Internal unit cost element
12 External unit cost element
13 External unit
DestinationId Integer zÚ»À The ID of the account that receives the costs
DestinationName Alphanumeric 64 The name of the account that receives the costs
DestinationModuleId Integer zÚ»À The ID of the module that contains the account
that receives the costs
1 Resource
2 Activity
3 Cost Object
DestinationParentName Alphanumeric 64 The name of the rollup account that contains the
account that receives the costs
DestinationOutputType Integer zÚ»À The output quantity type of the account that
receives the costs
1 User-entered
2 Used
3 Driver
4 Sold
5 Default
DestinationSoldQuantity Float zÚ»À The sold quantity of the account that receives
the costs
DestinationCost Float zÚ»À The total costs of the account that receives the
costs
68 Chapter 3 • Report Export Tables
SourceId Integer ٲÿ· The ID of the account that gives the costs
SourceName Alphanumeric 64 The name of the account that gives the costs
SourceReference Alphanumeric 64 The reference of the account that gives the costs
SourceParentName Alphanumeric 64 The name of the rollup account that contains the
account that gives the costs
SourceTDQ Float ٲÿ· The total driver quantity of the account that
gives the costs
Single-stage Assignments Report – Export Table 69
SourceCost Float 64 The cost of the account that gives the costs
DestinationId Integer ¬Š3fl The ID of the account that receives the costs
DestinationName Alphanumeric 64 The name of the account that receives the costs
DestinationOutputQuantity Float ¬Š3fl The output quantity for the account that receives
the costs
DestinationOutputType Integer ¬Š3fl The output quantity type for the account that
receives the costs
1 User-entered
2 Used
3 Driver
4 Sold
5 Default
DriverName Alphanumeric 64 The name of the driver on the account that gives
the costs
DriverQuantity Float ¬Š3fl The driver quantity that flows from one account
to another
70 Chapter 3 • Report Export Tables
DriverQuantityType Integer ¶‘hŸ The driver quantity type of the account that
gives the costs
0 Shared
1 Unique
DriverWeight Float ¶‘hŸ The driver weight for the quantity that flows
from one account to another
CalculatedDriverQuantity Float ¶‘hŸ The calculated driver quantity that flows from
one account to another
DriverCost Float ¶‘hŸ The driver cost that flows from one account to
another
DriverPercent Float ¶‘hŸ The driver percent that flows from one account
to another
IdleQuantity Float ¶‘hŸ The idle driver quantity for the account that
gives the costs
IdleCost Float ¶‘hŸ The idle cost for the account that gives the costs
IdlePercent Float ¶‘hŸ The idle percentage for the account that gives
the costs
SourceName Alphanumeric 64 The name of the account that gives the costs
SourceReference Alphanumeric 64 The reference of the account that gives the costs
Single-stage Contributions Report – Export Table 71
SourceOutputQuantity Float ôI Ý The output quantity for the account that gives
the costs
SourceOutputType Integer ôI Ý The output quantity type for the account that
gives the costs
DestinationName Alphanumeric 64 The name of the account that receives the costs
DestinationParentName Alphanumeric 64 The name of the rollup account that contains the
account that receives the costs
DestinationCost Float ôI Ý The cost of the account that receives the costs
DestinationOutputQuantity Float ôI Ý The output quantity for the account that gives
the costs (Sold, User, Driver, Default)
72 Chapter 3 • Report Export Tables
DestinationOutputType Integer ,[ò˘ The output quantity type of the account that
receives the costs
1 User-entered
2 Used
3 Driver
4 Sold
5 Default
DriverQuantityType Integer ,[ò˘ The driver quantity type of the account that
receives the costs
0 Shared
1 Unique
CalculatedDriverQuantity Float ,[ò˘ The calculated driver quantity that flows from
one account to another
BOCCost Float ,[ò˘ The costs from bills of costs of the account that
receives the costs
ContributionCost Float ,[ò˘ The cost from bills of costs and assigned costs
of the account that receives the costs
Unassigned Cost Report Export – Table 73
DriverCost Float »Ab The driver costs that flow from one account to
another
BOCCost Float H˶ The costs contributed by the account from bills
of costs
OutputType Integer H˶ The output quantity type for the account
1 User-entered
2 Used
3 Driver
4 Sold
5 Default
Unit Cost Report – Export Table 75
Part 3
Surveys
Chapter 4
Introduction to Surveys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Chapter 5
Exporting Data to Use with Surveys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Chapter 6
Surveys: User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Chapter 7
Creating Surveys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Chapter 8
Manage Users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Chapter 9
Administer Surveys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Chapter 10
Survey Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Chapter 11
Taking a Survey . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Chapter 12
Importing Survey Data back into the Model . . . . . . . . . . . . . . . . . . . . . . 147
78
79
Chapter 4
Introduction to Surveys
Introduction to Surveys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Logging On . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
The Survey Process in a Nutshell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Export a model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Create a survey . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Assign survey items to survey takers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Take the survey . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Administer the survey . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Reimport the model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Introduction to Surveys
One of the most difficult tasks in maintaining a model is keeping its data accurate and
up-to-date. Now you can create Web surveys to solicit data from the people who are
directly responsible for the activities and accounts in your model. Data from the surveys
is written directly to staging tables that have been exported from the model.
The following table shows the types of surveys that you can create for each module and
the fields that a survey taker can update for each type of survey.
Note: Each field name is qualified by the staging table that it is in.
Logging On
Log on to surveys by typing the survey URL into the command line of a browser. To
determine the URL, you can do the following:
1. Log on to SAS Management Console as an administrator, and access the SAS
Activity-Based Management middle-tier server.
2. Click the Plug-Ins tab.
3. Expand Application Management.
4. Expand Configuration Manager.
5. Expand SAS Application Infrastructure.
6. Right-click Activity-Based Mgmt Surveys 7.2 and select Properties.
7. Click the Connection tab on the Properties window.
Logging On 81
The connection information appears. In the following picture, you can see that the
URL for invoking surveys is:
http://xyz.sas.com:8880/SASActivityBasedManagementSurveys
9. Log on with a user ID and password. The user must exist in the SAS Metadata
Server with the following capabilities:
• To create a survey, the Create Model capability
• To take a survey, the Take Surveys capability
See Chapter 1, “User Capabilites and Groups,” on page 3.
82 Chapter 4 • Introduction to Surveys
Overview
The steps for using surveys are the following:
• “Export a model” on page 82
• “Create a survey” on page 82
• “Assign survey items to survey takers” on page 82
• “Take the survey” on page 82
• “Administer the survey” on page 85
• “Reimport the model” on page 85
Export a model
See Chapter 5, “Exporting Data to Use with Surveys,” on page 87.
Create a survey
See Chapter 7, “Creating Surveys,” on page 97.
When the administrator finishes creating the survey, survey takers are notified by e-mail.
Once the survey taker submits the survey, its status changes to Completed, and the
survey taker can no longer change any responses.
See Also
Chapter 12, “Importing Survey Data back into the Model,” on page 147
87
Chapter 5
Exporting Data to Use with
Surveys
Selecting this option overwrites the staging tables for the survey model in the
database.
c. Select the Period/Scenario associations to be exported.
d. Click Next.
If you plan to survey Numeric Attributes, then you also must check the following
two tables:
ValueAttribute table
See “ValueAttribute table” on page 247.
ValueAttributeAssociation table
See “ValueAttributeAssociation table” on page 247.
4. Select common dimension columns (that is, select the columns that will always be
exported for each table).
Note: You cannot unselect required columns.
Exporting Survey Data 89
Columns that you select are selected by default on the next Export Wizard page. You
can, however, change your selection on the next page. That is, you can deselect a
field that you had selected, or select a field that you had deselected.
6. Filter by dimensions (that is, select those dimension members that will be exported
for each table).
In addition to all default selections, make sure the following columns are checked:
Account table
DriverName
Name
OutputQuantityUE
Revenue
SoldQuantity
PeriodicNote (optional - only if you have Account Notes)
Assignment table
Source Accounts.DriverName
DriverQuantityFixed
EnteredCostElement table
EnteredCost
ExternalUnit table
UnitCostEntered
Name
PeriodicNote (optional - only if you have ExternalUnit Notes)
Select Save configuration as to save your selections. The selections are saved in the
Survey Data Exports folder.
Double-click a saved configuration to begin exporting using the saved options. You
can modify the options while using the Export Wizard.
93
Chapter 6
Surveys: User Interface
Home . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Survey Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
User Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Home
The Home page shows you all the alerts that you have received.
Double-click an alert to open the corresponding item.
Survey Manager
The Survey Manager lists surveys. Double-click a survey to open it. Use the Survey
Manager to
• Create a survey. See “Create the Survey” on page 97.
• Take a survey. See “Take a Driver Survey” on page 139.
• Audit surveys. See “Audit Surveys” on page 124.
• View approved assignments. See “View Approved Assignments” on page 125.
• Delete an assignment. See “Delete a Survey” on page 128.
94 Chapter 6 • Surveys: User Interface
User Manager
The User Manager is available only to users who have Create Model capability. There is
no Administer Surveys capability. For a discussion of roles and capabilities, see
“Creating Roles” on page 4.
Use the User Manager to
• Reassign survey items to users. See “Reassign Users” on page 119.
• Manage user attributes. See “Add Attributes to a User” on page 120.
• Send e-mails to individual users. See “Send an e-mail” on page 126.
User Manager 95
96 Chapter 6 • Surveys: User Interface
97
Chapter 7
Creating Surveys
General Procedure
To create a survey, a user must have Create Model capability. There is no Create Survey
capability. For a discussion of roles and capabilities, see “Creating Roles” on page 4.
To create a survey:
1. Log on using a browser.
The logon URI uses the form: http://machine_name:port/
SASActivityBasedManagementSurveys.
The machine name depends on where the SAS Activity-Based Management middle-
tier server is installed, for example:
http://sasabm.xyz.com:8880/SASActivityBasedManagementSurveys
5. Name the survey and (optionally) provide a description, and then click Next.
9. The next steps depend on the type of survey that you want to define. The steps for
each type of survey are described here:
Create the Survey 99
Note: In assigning surveys items to survey owners, you cannot assign items to yourself.
1. Follow the general procedure for creating a survey. See “General Procedure” on page
97.
2. Select the External Unit module.
3. Select a source account in the External Unit, and then click Next.
4. Assign survey owners to destination accounts.
1. Follow the general procedure for creating a survey. See “General Procedure” on page
97.
2. Select the External Unit module.
3. Select Unit Costs.
4. For Top-Level Dimension Reference, do one of the following:
Specify Any Dimension
All External Unit accounts are presented for assignment to survey owners.
Select a specific dimension
Only those External Unit accounts under the specified dimension are presented
for assignment to survey owners.
Note: The selection list includes the lowest-level dimension members of the
External Units module.
5. Click Next.
6. Assign owners to those items that you want to survey.
7. Click Finish.
Create the Survey 101
1. Follow the general procedure for creating a survey. See “General Procedure” on page
97.
2. Select the Resource module.
3. Select Resource Drivers.
4. For Top-Level Dimension Reference, do one of the following:
Specify Any Dimension
All Resource accounts are eligible for assignment to survey owners
Select a specific dimension
Only those Resource accounts under the specified dimension are eligible for
assignment to survey owners.
102 Chapter 7 • Creating Surveys
1. Follow the general procedure for creating a survey. See “General Procedure” on page
97.
2. Select the Resource module.
3. Select Resource Costs.
4. For Top-Level Dimension Reference, do one of the following:
Specify Any Dimension
All Resource accounts are eligible for assignment to survey owners.
Select a specific dimension
Only those Resource accounts under the specified dimension are eligible for
assignment to survey owners.
Note: A restricted list of dimension members is displayed in the drop-down list
of dimension members available for filtering. The list is based on the first
dimension of the Resource module.
5. Click Next.
6. Assign accounts to survey owners.
Note: To create a survey for numeric attributes, you must have included the following
two tables when you exported survey data for the model:
• ValueAttribute table
• ValueAttributeAssociation table
See “Exporting Survey Data” on page 87.
1. Follow the general procedure for creating a survey. See “General Procedure” on page
97.
2. Select the Resource module.
3. Select a particular attrilbute.
4. Click Next.
5. Assign accounts to survey owners.
With this type of survey, a survey taker updates the following field:
1. Follow the general procedure for creating a survey. See “General Procedure” on page
97.
2. Select the Activity module.
3. Select Activity Drivers.
4. For Top-Level Dimension Reference, do one of the following:
Specify Any Dimension
All Activity accounts are eligible for assignment to survey owners
Select a specific dimension
Only those Activity accounts under the specified dimension are eligible for
assignment to survey owners.
Note: A restricted list of dimension members is displayed in the drop-down list
of dimension members available for filtering. The list is based on the first
dimension of the Resource module.
5. Select a particular driver or select Any Driver.
6. Click Next.
7. Assign accounts to survey owners.
Note: To create a survey for numeric attributes, you must have included the following
two tables when you exported survey data for the model:
• ValueAttribute table
• ValueAttributeAssociation table
See “Exporting Survey Data” on page 87.
1. Follow the general procedure for creating a survey. See “General Procedure” on page
97.
2. Select the Activity module.
3. Select a particular attribute.
4. Click Next.
5. Assign accounts to survey owners.
Note: You can only define a survey for Cost Object Drivers if the Follow-up driver
surveys flag for the model is off. If the flag is on, then survey items for Cost Object
Frivers are automatically added to the surveys for Resource Drivers. See “Follow-up
Driver Surveys” on page 135.
1. Follow the general procedure for creating a survey. See “General Procedure” on page
97.
2. Select the Cost Object module.
3. Select Cost Object Drivers.
4. For Top-Level Dimension Reference, do one of the following:
Specify Any Dimension
All Cost Object accounts are eligible for assignment to survey owners.
Select a specific dimension
Only those Cost Object accounts under the specified dimension are eligible for
assignment to survey owners.
108 Chapter 7 • Creating Surveys
1. Follow the general procedure for creating a survey. See “General Procedure” on page
97.
2. Select the Cost Object module.
3. Select Revenues and Sold Quantities.
4. For Account Name Contains, you can limit the accounts to survey by specifying a
character string that each account’s name must contain.
Create the Survey 109
The character string can contain blanks, and case does not matter. The string can
occur at the beginning, in the middle, or at the end of the account name.
5. Click Next.
6. Assign accounts to survey owners.
1. Follow the general procedure for creating a survey. See “General Procedure” on page
97.
2. Select the Cost Object module.
3. Select Output Quantities.
110 Chapter 7 • Creating Surveys
4. For Account Name Contains, you can limit the accounts to survey by specifying a
character string that each account’s name must contain.
The character string can contain blanks, and case does not matter. The string can
occur at the beginning, in the middle, or at the end of the account name.
5. Click Next.
6. Assign accounts to survey owners.
Note: To create a survey for numeric attributes, you must have included the following
two tables when you exported survey data for the model:
• ValueAttribute table
• ValueAttributeAssociation table
See “Exporting Survey Data” on page 87.
1. Follow the general procedure for creating a survey. See “General Procedure” on page
97.
Create a Group Survey 111
Suppose also that as an administrator you create a Resource Driver survey for a
particular driver and assign the Operating Expenses account to the group.
Then, both Ashwin and Chirayu will receive an e-mail informing them that they have
been assigned a survey.
Suppose Ashwin takes the survey, and for each destination account assigns a quantity of
1.
Suppose also that when Chirayu takes the survey, he assigns a quantity of 2 to each of
the same destination accounts.
The Driver Quantity Fixed that is written to the Assignment staging table is 3—the sum
of the quantities entered by both Ashwin and Chirayu.
Create an Aggregated Survey 113
e. Click OK.
The following picture shows how to add two attributes, managers and non-
managers, to the user Harshada.
This picture shows the user, Harshada, entering the following values for the percent of
DQF accounted for by managers and non-managers, respectively:
Research Payments(PMT-003) 40 30
• The total percentage equals 100 in the case of both managers and non-managers.
Whether the total must equal 100% or not is determined by the application
preference, Enforce hundred percent for percentage values. See “Application
Preferences” on page 132.
The previous picture also shows a user entering the following values for the number of
managers vs. non-managers and the relative weighting to be allocated to managers vs.
non-managers.
Number of people 4 75
Relative weighting 3 30
To explain the formula that is used to derive the resulting DQF, we can label the cells in
the previous two tables as follows:
Research Payments(PMT-003) C: 40 W: 30
Number of people E: 4 Y: 75
Relative weighting F: 3 Z: 30
The formula used to derive the resulting DQF for the first account (Enter Payment Data)
is the following:
Create an Aggregated Survey 117
((A/D)*E*F) + ((U/X)*Y*Z)
((25/100)*4*3) + ((30/100)*75*30)=3+675=678
divided by:
(E*F)+(Y*Z)
(4*3)+(75*30)=12+2250=2262
times:
((A/D)*E) + ((U/X)*Y)
+((B/D)*E) + ((V/X)*Y)
+((C/D)*E) + ((W/X)*Y)
((25/100)*4) + ((30/100)*75)=1+22.5=23.5
+((35/100)*4) + ((40/100)*75)=1.4+30=31.4
+((45/100)*4) + ((30/100)*75)=1.6+22.5=24.1
23.5 + 31.4 + 24.1=79
or:
(678/2262)*79)=23.679045
The result is rounded to the number of decimal places as specified in the application
preference, Maximum Decimal Places. See “Application Preferences” on page 132. In
the case of this example, it is rounded to 23.68.
The resulting DQF is calculated in similar fashion for the other two accounts. The
resulting DQF for the three assignments are:
• 23.68
• 23.74
• 31.58
• 23.74/79=0.3005
• 31.58/79=0.3997
118 Chapter 7 • Creating Surveys
119
Chapter 8
Manage Users
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Reassign Users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Add Attributes to a User . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Overview
The User Manager is available only to users who have Create Model capability. There is
no Administer Surveys capability. For a discussion of roles and capabilities, see
“Creating Roles” on page 4.
Use the User Manager to
• Reassign survey items to users. See “Reassign Users” on page 119.
• Manage user attributes. See “Add Attributes to a User” on page 120.
• Send e-mails to individual users. See “Send an e-mail” on page 126.
Reassign Users
To reassign the fields in a survey to a different user:
1. Select Survey Manager.
2. Select Manage Surveys ð By Definitions.
120 Chapter 8 • Manage Users
3. Select a survey.
4. Click the Re-assign users icon.
Chapter 9
Administer Surveys
You are asked to confirm the status change, and you can choose to notify the survey
taker.
124 Chapter 9 • Administer Surveys
Once the Surveyed status is No, the survey taker can retake the survey for that item.
Note: You can also mark a survey item as Completed, in which case the survey taker
can no longer make changes to that item.
Audit Surveys
When an administrator selects the model option to allow a survey taker to add new
destination accounts to a driver survey, and a user adds a new destination account, the
administrator must either approve or disapprove the addition. See “Allow a Survey
Taker to Add New Accounts” on page 134.
• If the administrator approves, then the new assignment values, as entered by the
survey taker, are written to the Assignment staging table in the database.
• If the administrator disapproves, then the new assignment is removed from the
database staging table—it is as if the assignment was never made.
Note: An administrator cannot subsequently change a decision to approve or
disapprove. Disapproving a user’s addition has the same effect as though the survey
taker had never made the new assignment at all.
To audit a survey:
1. Select the Survey Manager.
2. Select a survey to audit.
3. Select Audit ð Audit Assignments.
4. Select a source account.
5. Select the reference of the destination account.
6. Click either Approve or Disapprove.
Once all the destination accounts have been approved, the Audit Required column
changes to No.
View Approved Assignments 125
7. Click Close.
Send an e-mail
As an administrator, you can send an e-mail to a survey taker in three different ways:
• To a selected user
• To a new survey taker
• To a reassigned survey taker
To a selected user
To send an e-mail to a selected user:
1. Select User Manager.
2. Select a user—the recipient of the e-mail.
3. Click Send e-mail.
Note: The user’s e-mail address must be stored in the SAS metadata server. See
“Creating Users” on page 17.
Note: 32 indicates that E-mail has been selected at the SAS Application
Infrastructure level (as shown in the following picture) so as to apply to all
child components, including Activity-Based Management Surveys.
Delete a Survey
To delete a survey:
1. Select Survey Manager.
2. Select a survey.
3. Click Delete survey definition.
Delete a Survey 129
Note: Any data already written to staging tables is not rolled back.
130 Chapter 9 • Administer Surveys
131
Chapter 10
Survey Preferences
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Application Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Model Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
Allow a Survey Taker to Add New Accounts . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Follow-up Driver Surveys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Overview
To select preferences while working as an administrator, select Files ð Survey
Preferences.
You can select two types of preferences:
Application Preferences
These preferences apply to every administrator and to every survey taker.
Model Preferences
These preferences apply to every administrator and to every survey taker for a
particular model.
Note: For both types of preferences, you must log off and back on for the preferences to
take effect fully.
Both administrators and survey takers can set general preferences for the user interface
by selecting File ð Preferences. These preference options are self-explanatory.
Note: For the global preference, User locale, you must log off and back on for the
preference to take effect fully.
The following topics describe Application and Model preferences in detail.
132 Chapter 10 • Survey Preferences
Application Preferences
Model Preferences
Overview
When you disallow smart filtering (deselect the checkbox), the drop-down list
contains accounts that are outside of the top-level dimension.
Maximum accounts for new assignment
specifies the maximum number of assignments to additional accounts that a survey
taker can add to a survey.
Follow-up driver surveys
causes the automatic creation and assigning of surveys for Activity Drivers.
Whenever you create a Resource Driver survey an Activity Driver survey is
automatically created and assigned to the same survey takers as the Resource Driver
survey.
134 Chapter 10 • Survey Preferences
As an example, the next picture shows how a survey taker can create an assignment from
the EPDEE source account to the OPDAD destination account while taking a Resource
Driver survey, as follows:
1. Double-click the source account Equipment Expenses (EPDEE) to open it.
The existing destination account Land Distribution (EPDLD) opens for surveying.
Model Preferences 135
This might be clearer in the context of an example. In the following picture, you can see
that there is an assignment from EPDEE to EPDLD. And, there is an assignment from
EPDLD to three other accounts (EOE, ESG,and E2DG). So, if you create a survey from
EPDEE to EWPDLD and assign it to John, then another survey is automatically created
from EPDLD to the three other accounts (EOE, ESG, and E2DG). This automatically
created survey is assigned to John.
Note: Activity accounts using the Evenly Assigned driver are not included in automatic
follow-up because Evenly Assigned drivers do not require user input to determine
the allocation of costs.
If you select Follow-up driver surveys for a particular model, then when you create
either Activity surveys or Cost Object surveys, the option to create driver surveys is not
presented to you—because, in that case, those surveys are created automatically.
If you deselect Follow-up driver surveys for a particular model, then when you create
either Activity surveys or Cost Object surveys, the option to create driver surveys is
presented to you—because, in that case, those surveys are not created automatically.
Model Preferences 137
138 Chapter 10 • Survey Preferences
139
Chapter 11
Taking a Survey
General Procedure
The following is a list of driver surveys:
• “Resource Module: Resource Drivers” on page 101
• “Activity Module: Activity Drivers” on page 104
• “Cost Object Module: Cost Object Drivers” on page 107
To take a survey, a user must have the Take Surveys capability. For a discussion of roles
and capabilities, see “Creating Roles” on page 4. Also see “Survey Takers” on page 25.
When an administrator assigns a survey, the survey taker receives a notification email.
The email contains a link to the survey. After clicking on the link, the survey taker
1. Logs on to SAS Activity-Based Management Surveys.
2. In the Home page, double-clicks the survey notification to open the Survey Manager.
The survey to take is highlighted.
3. Double-clicks the highlighted survey to open and take it.
Note: You can open a survey directly from the Survey Manager.
140 Chapter 11 • Taking a Survey
6. If adding new destination accounts is allowed and you want to add a new destination
account, then click the plus sign.
See “Allow a Survey Taker to Add New Accounts” on page 134.
7. To add a new destination account, select the desired account, and then click OK.
Take a Driver Survey 141
Submit a Survey
The following description applies to any survey. After a survey taker has saved all
accounts as surveyed, the survey taker can submit the survey. To submit a survey:
1. Click Submit the survey.
a. Select Notify administrator on survey submit to send an alert to the survey
administrator.
b. Click Yes to submit the survey.
Note: Once a survey has been completed, the survey taker can no longer change any
responses unless the survey administrator changes the survey back to Incomplete.
See “Mark a Survey as Incomplete” on page 123.
147
Chapter 12
Importing Survey Data back into
the Model
3. On the Import Data – Model window, select an existing model to update with survey
data. You cannot create a new model from survey data.
a. Select an existing model to update with survey data.
Note: You cannot create a new model from survey data.
b. Select the survey data to import.
Note: Make sure that the survey data is for the correct model. If the data is from
a different model than the one from which data was exported, the import can
corrupt the existing model. See Step 1 on page 87.
c. Select whether you want to do periodic import.
Periodic import allows you to import only the periods that have changed in a
model. For information, see the section on “Incremental Cube Generation” in the
SAS Activity-Based Management User’s Guide.
d. Click Next.
148 Chapter 12 • Importing Survey Data back into the Model
4. On the Import Data – Select Tables window, select tables from the survey data being
imported and map them to tables in the model being updated.
The tables being imported correlate to the tables that were previously exported. See
Step 5 on page 88.
5. On the Import Data – Options window, for each table being imported, select whether
you want to identify accounts by their dimension signature.
Note: The import will work regardless of what you choose, so you can simply click
Next.
Importing Survey Data 149
6. On the Import Data – Map Columns window, select the columns to be imported..
The columns being imported correlate to the columns that were previously exported.
See Step 6 on page 88. And see Step 7 on page 89.
Part 4
Chapter 13
Importing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
Chapter 14
Exporting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
Chapter 15
Connecting to a Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
Chapter 16
Staging-Table Schemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
152
153
Chapter 13
Importing
General steps
The following general steps describe how to import data:
1. Verify that you have permission.
2. Import the data. You can choose to import the entire data set at once, or you can
import the data in groups and populate the model in the following general steps:
Import 1
The first import step defines the existence of the model and includes the
Dimension, DimensionOrder, Period, and Scenario tables. This step is equivalent
to the finishing point of the New Model Wizard when you interactively build a
model.
Import 2
The second import step defines the models content (resources, activities, and cost
objects) and includes the Account, DimensionLevel, and DimensionMember
tables. This step is equivalent to the finishing point of the New Account Wizard
when you interactively create accounts. The Account table includes the revenue
and sold quantities.
Import 3
The third import step loads costs into the model and includes the
EnteredCostElement and ExternalUnit tables. This step is equivalent to the point
where you create cost elements in the New Account Wizard when you
interactively build a model.
154 Chapter 13 • Importing
Import 4
The fourth import step flows costs through the model using assignments with
quantities for flow calculation. This step includes the Assignment and Driver
tables and is equivalent to the point where you interactively create assignments
and specify driver quantities in the New Account Wizard.
Import 5
The fifth import step creates attributes for analysis and numerical attributes for
performance measures (cost per unit). This step includes the
DimensionAttributeAssociation, ValueAttribute, and ValueAttributeAssociation
tables. This step is equivalent to creating attributes and attaching attributes to
accounts when you interactively build a model.
Import 6
(optional): The sixth import step includes the AssignmentNonUnique,
CurrencyRate, PeriodLevel, and ScenarioLevel tables.
3. Calculate costs.
4. Generate cubes.
For a detailed summary about which tables to group in each step and in what order to
import tables, see the following Import process summary.
Dimension
No Import 1
DimensionOrder No Import 1
Period No Import 1
Scenario No Import 1
DimensionLevel No Import 2
DimensionMember No Import 2
Driver No Import 4
General Information on Importing a Model from a Database 155
ValueAttribute No Import 5
CurrencyRate No Optional
PeriodLevel No Optional
ScenarioLevel No Optional
Note: The Account table must contain both a dimension signature and a reference
number, while the other tables listed with "Yes" in both columns must have either a
dimension signature or a reference number.
Overview
To import from a database, you can use the wizard, or you can write a program.
For information on connecting to a database, see Chapter 15, “Connecting to a
Database,” on page 189 .
Make sure to observe the restrictions on table names in a database for all staging tables.
Understanding keys
The SAS Activity-Based Management model is based on a dual-key concept. To define
any account in the model, you can describe it based on its dimension signature key or its
reference key.
Dimension signature key
The dimension signature consists of a dimension reference and a dimension member
reference for each dimension used to define an account. In the following example,
156 Chapter 13 • Importing
the Resource module has been defined based on two dimensions (Region and
General Ledger Account). The individual accounts are defined as intersections of
these two dimensions. So, the Wages account (highlighted) consists of an
intersection of the Region=Beaverton and the General Ledger Account=Wages. This
account definition can be displayed in the grid with the intersection name (the
column IntsctnName) or the intersection reference (the column IntsctnRef)
properties.
The dimension signature for this account is based on the dimensions used and the
dimension members used, so the dimension signature for this account requires
multiple values as shown here:
Property Example
DimRef1 Region
DimMemberRef1 Beaverton
DimMemberRef2 Wages
Reference key
In the previous example, the reference for the account is B_WG, and this single
value uniquely identifies the account. (Guidelines for using dimension signatures and
references)
If the model that you want to import has the same number of dimensions in each module
as the sample model shown, you can use the sample model directly. The External Units
module consists of one dimension; the Resource module consists of two dimensions; the
Activity module consists of two dimensions; and the Cost Object module consists of
three dimensions. After you export the sample database, modify the contents of the
tables to reflect your own data in the appropriate dimension signature columns.
If the model that you want to import has a different number of dimensions in each
module as the sample model, then the sample can still provide a good starting point for
creating a staging table template. But, you must customize all of the tables that require
the dimension signature (the Account, Assignment, EnteredCostElement, ExternalUnit,
DimensionAttributeAssociation, and ValueAttributeAssocation tables) to include all of
the dimensions that you used in the model that you want to import.
Exporting to a database creates all of the required tables with most of the required
columns. The required columns in some of the tables depend on the number of
dimensions in a model. Because each dimension signature consists of a pair of columns,
any table with dimension signature columns will add columns as the number of
dimensions in the model increases. Although you can manually create the tables,
exporting to a database reduces the risk of omitting required tables, omitting required
columns within tables, and creating typographical errors. And, it gives you a viable
sample to follow in developing your own staging table content and when building a SAS
Activity-Based Management model.
158 Chapter 13 • Importing
Period/scenario associations
If you use the wizard to import data, you can import multiple period/scenario
associations. If you write a program to import data, you can import more than one
period/scenario association at a time. Period/scenario associations are imported if a
model element (such as an account or a cost element) contains data for the period/
scenario association.
Period/scenario associations
Period/scenario associations are ignored unless there is a model element (such as an
account or a cost element) that contains data for the period/scenario association.
2. Click Next.
For information on using this window, see Chapter 15, “Connecting to a Database,”
on page 189.
2. Click Next.
2. To map a Source Table, click in the Target Table column to the right of the source
table, and select a SAS Activity-Based Management table from the drop-down list.
Note: If you have named the source tables with the same names that are used in SAS
Activity-Based Management, the wizard automatically creates the mappings and
selects the tables to be imported. If you have not used the same names, then you
must specify which source table maps to which SAS Activity-Based
Management table.
3. Repeat steps 1 and 2 to map every table that you want to import.
4. Click Next.
number. You can choose to have the wizard create accounts for all valid dimension
signatures, even if accounts have not been created for those intersections.
1. To identify accounts by the dimension signature, select the check box in the
Dimension Signature Required column to the right of each source Table.
If you clear the check box, accounts will be identified by their references.
2. To have the wizard automatically create accounts for all valid dimension signatures,
select the Automatically create accounts using dimension signatures option.
3. Click Next.
Note: If you have named the source table columns with the same column names that
are used in SAS Activity-Based Management, the wizard automatically creates
the mappings and selects the columns to be imported. If you have not used the
same names, then you must specify which source table column maps to which
SAS Activity-Based Management table column.
2. If you chose in the previous step to identify accounts by their dimension signatures,
specify the number of Dimensions that are contained in the source table.
The Dimensions option appears only when you choose to identify accounts by their
dimension signatures. You must specify the number of dimensions so that the
interface displays the correct column names that you must map. For each dimension
in the source table, there must be two columns that can be mapped to the SAS
Activity-Based Management table columns; these two columns are named
DimRef<number> and DimMemberRef<number>. For example, a source table that
contains two dimensions must contain columns that must be mapped to DimRef1,
DimMemberRef1, DimRef2, and DimMemberRef2.
3. To map a Source table column, click in the Target Column Name column to the
right of the Source table column, and select a SAS Activity-Based Management
table column from the drop-down list.
The drop-down list contains the values DimRef<number> and
DimMemberRef<number> only if you chose to identify accounts by their dimension
signatures, which is the only situation in which these values are needed.
4. If a source table does not contain a column that you want to create in the model, and
you want to assign a value to this column, do the following:
a. Click Add.
A new row appears.
b. Click in the Source column, and select a column name from the drop-down list.
c. Type a Default value.
For example, if the source table does not contain a column to map to the Period
column in SAS Activity-Based Management, and you want to create a period
166 Chapter 13 • Importing
named MyPeriod in the model, then add a column named <None>. Map this new
column to the Target Column Name Period, and specify the Default value as
MyPeriod.
5. Repeat steps 1 through 4 for every table column that you want to import.
6. Click the appropriate tab at the bottom of the grid to map the columns for another
table.
7. Click Next.
2. If you need to change any information, click Back until you reach the step that you
need to change in the wizard.
All of the information that you have specified is saved. Click Next to advance
through the wizard.
3. To save the import configuration so that the import can be easily run again, do the
following:
a. Select the Save configuration as option.
b. Type the Name.
c. Type the Description.
4. Select Save without running to save the import configuration with performing the
import.
5. Click Finish.
Using the Import Data Wizard to Import from a Database 167
Periodic Import
When you generate a cube, for every period (period and scenario association) that is to
be included in an existing cube, if:
• the cube already contains that period, and
• the period has not been modified since the cube was last generated
then the period is not regenerated.
This means that cube generation is faster because periods that have already been
generated are not regenerated.
In order to support incremental cube generation, SAS Activity-Based Management
provides a Periodic data only option in the Import Wizard that allows you to import
only the periods that have changed in a model—for example, the new periods.
If you select Periodic data only, then only those staging tables that contain periodic data
are displayed in the Import Wizard for you to select for importing.
168 Chapter 13 • Importing
Staging tables are distinguished by whether they contain periodic or structural data.
Periodic data is model data which is stored separately for each period/scenario
association. Structural data is model data which is independent of any period/scenario
association. It is data that is common to all period/scenario associations.
The following staging tables contain periodic data:
• Account
• Assignment
• CurrencyRate
• ExternalUnit
• EnteredCostElement
• PerformanceMeasure
• ValueAttributeAssociation
• ValueAttributePeridicDef
• DimensionalAttributeAssociation
The following staging tables contain structural data:
• Dimension
• DimensionMember
• DimensionLevel
• DimensionOrder
• Driver
• Model
• ValueAttributes
• Period
• PeriodLevel
• Scenario
• Scenariolevel
When you generate a cube for a model that has been generated before, SAS Activity-
Based Management determines whether the entire cube must be regenerated or whether
only the new or modified periods need to be generated. You do not have to specify,
when you generate a cube, whether you want incremental generation or not. SAS
Activity-Based Management makes the determination for you.
Note: Cubes in SAS OLAP that are generated using either the NO_NWAY option or the
NONUPDATEABLE option are not eligible for incremental generation.
169
Chapter 14
Exporting
Overview
You can export model data to a database or to an XML file. If you want to export only a
portion of the model data, you must export to a database. If you export to an XML file,
all model data is exported. If you want to export all of the model data, you can export to
a database or to an XML file.
The following table lists some of the reasons why you might export model data. For each
reason, the table shows whether you would export to a database or to an XML file:
To export model data and to manipulate the data, and then to Database
import the data back into the model or into another model
To export some of the items in the model, but to exclude other Database
items
When exporting a table to a database, observe the following restrictions on the table
name:
SQL Server:
• Table name must begin with a letter.
• Table name should not start with special characters like $, @, #, %, |, !
• Special characters like %, -, |, ! are not allowed in the table name.
• Table name must be less than or equal to 128 characters.
Oracle:
• Table name must begin with a letter.
• Table name should not start with special characters like $, _, #, %,-,|, !
• Special character like @, %, - are not allowed in the table name.
• Table name must be less than or equal to 30 characters.
MySQL:
• Special characters -,%, @, |, ! are not allowed in the table name.
• Table name must be less than or equal to 64 characters.
Microsoft Access:
• Table name must be less than or equal to 64 characters.
• Special characters like $, %, #, !, - are not allowed in the table name.
Microsoft Excel:
• Table name must be less than or equal to 32 characters.
• Special characters like $, %, #, !, - are not allowed in the table name.
Overview
When you use the Export wizard to export model data, you can choose to export to a
database or to an XML file. If you export to a database, you can select individual
database tables and properties to export. If you export to an XML file, you must export
all of the model data.
Note: If the database or the XML file already exists, it is overwritten.
Note: You can perform this task without first opening a model.
1. Verify that the model and an empty database that matches the data schema (if you
export to a database) are ready.
2. Select File ð Export ð Model Data.
The Export Wizard appears.
3. Follow the directions in the wizard. For detailed instructions, see “Using the Export
Wizard” on page 175.
Archiving a Model
When you archive a model, important model data is preserved so that the model can be
restored to a saved state. Although not all model data is preserved, user-entered data and
Exporting Model Data to a Database 171
unique data are saved. Model data that is not saved is regenerated by SAS Activity-
Based Management when the model is restored and calculated.
You might want to archive a model for the following reasons:
• to create a backup
• to save a version before making major changes
• to restore a model after upgrading a SAS Activity-Based Management server
• to transport a model between SAS Activity-Based Management servers
Keys (for both the source account and destination account): dimension signature and
reference
Destination module type, driver name, model name, period, scenario, source module
type
• Driver analysis: DriverQuantityBasic, DriverQuantityCalculated,
DriverQuantityFixed, DriverQuantityVariable, DriverWeightFixed,
DriverWeightVariable, IdleDriverQuantity, IdleDriverQuantityUE
• Cost flow: allocated cost, cost, idle cost, source cost
• Attributes (specific to the model design)
Dimensional attributes - used for grouping
Numerical attributes - entered values
Calculated attributes - performance measures
Multi-stage contributions cube fact table (with calculated values)
The types of fields in an exported Multi-stage Contributionscube include:
• Definitional
Keys for each account (resources, activities, cost objects, external units): dimension
signature and reference
Activity module type, Cost Object module type, model name, period, Resource
module type, scenario
• Entered values: OutputQuantityUE, Revenue, SoldQty, TDQUE
• Calculated values: Cost, OutputQuantity
• Attributes specific to the model design (resources, activities, cost objects, external
units)
Dimensional attributes - used for grouping
Numerical attributes - entered values
Calculated attributes performance measures
Exporting Model Data to a Database 173
The cube fact table holds all of the calculations for cost flow through the model. The
Multi-stage Contributions cube holds cost flow from each step through the model. Using
the Multi-stage Contributions cube, an analysis can be created to trace a single, final cost
object, through each contributing cost, to the activities back to the original resource.
In the previous example, all stages (A through D) are available for analysis in the Multi-
stage Contributions cube. (About fact tables)
Resource Contributions cube
The types of fields in an exported Resource Contributions cube include:
• Definitional
Keys for each beginning or final account (resources, cost objects): dimension
signature and reference
Destination module type, model name, period, scenario, source module type, source
reference
• Entered values: DestinationSoldQuantity
• Calculated values: ContribCost, ContribPcnt, DestinationCost,
DestinationOutputQuantity
• Attributes specific to the model design for each beginning or final account
(resources, cost objects)
Dimensional attributes used for grouping
Numerical attributes entered values
Calculated attributes performance measures
Report table exports
The types of reports that you can generate include:
• Reports exported from SAS Activity-Based Management: You can choose to export
the standard staging tables or you can export the standard fields and contents, which
are created in the standard reports that are installed with SAS Activity-Based
Management.
• Reports on imported data content directly inside SAS Enterprise Guide: Using the
SAS Activity-Based Management Add-In for SAS Enterprise Guide, the SAS
Activity-Based Management reports can be run directly from within SAS Enterprise
Guide. This produces a SAS table that can be used in further analysis.
The exported report tables are consistent with the standard report templates that are
formatted and shipped with SAS Activity-Based Management.
Filtering Data
Use the following methods to filter the data that you want to export:
Using the Export Wizard 175
Use an underscore (_) to specify a single character. For example, Name Text
LIKE account_ will match account1, account2, and accountX.
If you omit both % and _, the comparison is the same as when you use the Text
operator =. For example, Name LIKE fiscal is equivalent to Name =
fiscal.
1. Click .
For information on using this window, see Chapter 15, “Connecting to a Database,”
on page 189.
2. From the Select a model to export drop-down list, select a model.
3. From the Select period/scenario associations you want to export from list, select
the check box next to one or more period/scenario associations.
4. Click Next.
1. To select a table to export, select the check box to the left of the table in the Source
Table column.
You can select as many tables as needed.
2. To change the name of an exported table, click in the Target Table column to the
right of a source table and type a new name.
3. To map a source table to more than one target table, do the following:
a. Click Add Table.
A new row is added with default information.
b. Click in the Source Table column, and select a SAS Activity-Based
Management table from the drop-down list.
4. Repeat steps 1 and 2 for every table that you want to export.
Next, you will select dimensions to export for each table that contains dimension
information.
5. Click Next.
1. To select dimensions within tables to export, select the check box to the left of the
dimension in the Column Name column.
Columns that you select are selected by default on the next Export Wizard screen.
You can, however, change your selection on the next screen. That is, you can
deselect a field that you had selected, or select a field that you had deselected.
Next, you will select dimensions and module information to export for each table
that contains dimension information or module information.
2. Click Next.
1. Expand each table to review which columns are automatically selected to export.
2. To select a column to export, select the check box to the left of the Target Column
Name.
Notice that columns marked with an asterisk (*) must be exported.
3. To change the name of an exported column, click in the Target Column Name
column to the right of a column name, and type a new name.
Using the Export Wizard 181
Next, you will select dimension members to export. By default, all data will be
exported. By selecting dimension members, you can limit the amount of data that is
exported.
4. Click Next.
2. If you want to select all dimension members when a dimension is selected, select the
Automatically check child dimension members option.
3. To select a dimension member, select the check box to the left of the dimension
member.
4. To search for a dimension member, do the following:
a. Click Search.
The Search dialog box appears.
182 Chapter 14 • Exporting
b. In the Enter the name of the item you are looking for box, type the name of
the item.
You can search for a table, a dimension, or a dimension member.
c. Select the Match whole word only option and the Match case option.
d. Click Find Next.
1. To select a column, select the check box to the left of the target column name.
Notice that columns marked with an asterisk (*) must be exported.
2. To change the name of an exported column, click in the Target Column
Namecolumn to the right of a column name, and type a new name.
3. To add a filter condition to a table, do the following:
a. Click Add.
The Add Filter Condition dialog box appears.
Using the Export Wizard 183
Selected columns are exported only if they pass the filter. In other words, for a
column to be exported, it must both:
• be selected
• pass whatever filters exist for the table
184 Chapter 14 • Exporting
4. Click Next.
3. To save the export configuration so that the export can be easily run again, do the
following:
a. Select the Save configuration as option.
b. Type the Name.
c. Type the Description.
4. Select Save without running to save the export configuration with performing the
export.
5. Click Finish.
3. Select the Select default tables and properties to archive a model option.
4. Select the Database option.
5. Click Next.
186 Chapter 14 • Exporting
6. Click .
For information on using this window, see Chapter 15, “Connecting to a Database,”
on page 189.
7. From the Select a model to export drop-down list, select a model.
8. From the Select period/scenario associations you want to export from list, select
the check box next to one or more period/scenario associations.
9. Click Next.
Archive a Model to a Database with the Export Wizard 187
Chapter 15
Connecting to a Database
The SAS Activity-Based Management user who wants to import from or export to SAS
datasets must have the appropriate permissions for the SAS Base Library that you
created.
To set the library permissions:
1. Right-click the SAS Base Library that you created, and then select Properties.
2. Select the user of SAS Activity-Based Management who will be importing from or
exporting to SAS datasets.
3. Set the permissions as shown in the following picture.
Using A JDBC Driver 193
The following are some considerations to keep in mind when connecting to a Microsoft
SQL Server database:
194 Chapter 15 • Connecting to a Database
The following are some considerations to keep in mind when connecting to an Oracle
database:
• Host name is the MachineName where the Oracle client is installed.
• Port is the TCP port where the SAS Activity-Based Management database instance
is running.
• You can find the values of Host name and Service name in the file
tnsnames.ora.
ABMDSN2 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = abmblade1)(PORT = 1521))
)
Using A JDBC Driver 195
(CONNECT_DATA =
(SERVICE_NAME = abmdsn)
)
)
• Open the sqlnet.ora file and verify that it has EZCONNECT specified under
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT).
This file is at the same location as tnsnames.ora. For example:
C:\Oracle\product\11.1.0\client_1\network\admin\sqlnet.ora
SAS/ACCESS
Before using SAS/ACCESS, you must first use SAS Management Console to create a
library that points to the target database. The library should have all the required READ/
WRITE permissions for the user of SAS Activity-Based Management who will need to
connect to the database to import or export.
Office Driver (client side) 197
Notes:
• When you use SAS Management Console to create a library pointing to any database
on your Metadata Server, you must specify the maximum text length as an advanced
option. The maximum text length should be longer than the longest column in your
target database table used for import or export. See “Specifying the Maximum Text
Length” on page 200.
• When you use SAS Management Console to create a library for Microsoft Excel on
your Metadata Server, you must specify SCAN_TEXT=NO as an advanced option.
This option is only required for Microsoft Excel. See “Specifying SCAN_TEXT=NO
as Advanced Option” on page 204.
• When you create a library to export to Microsoft Excel, always use a clean Excel
file. The system cannot remove the existing data from Excel before doing the export.
Microsoft Access
The following picture shows an example of connecting to Microsoft Access. The file
path that you enter should have READ/WRITE permission.
Notes:
• The JDBC driver for Microsoft Access must use a bridge to ODBC. This means that
you must install the appropriate ODBC driver on the SAS Activity-Based
Management server machine. See “Installing the ODBC Driver for Microsoft Access
and Excel” on page 201.
• The directory that you specify for importing from or exporting to must have the
proper permissions. See “Permissions for Microsoft Access and Microsoft Excel” on
page 202.
• If SAS Activity-Based Management client and server are on same machine, then you
can use a local path. For example: c:\accessexport\test.mdb. If they are on
different machine, then you should use the network path. For example: \
\d12345\accessexport\test.mdb.
Microsoft Excel
The following picture shows an example of connecting to Microsoft Excel. The file path
that you enter should have READ/WRITE permission.
Office Driver (client side) 199
Notes:
• The JDBC driver for Microsoft Excel must use a bridge to ODBC. This means that
you must install the appropriate ODBC driver on the SAS Activity-Based
Management server machine. See “Installing the ODBC Driver for Microsoft Access
and Excel” on page 201.
• The directory that you specify for importing from or exporting to must have the
proper permissions. See “Permissions for Microsoft Access and Microsoft Excel” on
page 202.
• If SAS Activity-Based Management client and server are on same machine, then you
can use a local path. For example:
c:\excelexport\test.xls
. If they are on different machine, then you should use the network path. For
example:
\\d12345\excelexport\test.xls
.
• You can save the Excel file as either *.xls(2003 format) or *.xlsx (2007 format).
• When you export to Microsoft Excel, always use a clean Excel file. The system
cannot remove existing data from Excel before doing the export.
200 Chapter 15 • Connecting to a Database
Connection Options
If the drivers are not installed, you can install them by running
AccessDatabaseEngine.exe, which you can obtain from the Microsoft Download Center
at http://www.microsoft.com/downloads/. Because the SAS Activity-Based
Management client is a 32–bit application and can work only with 32–bit drivers, there
are four cases to consider when downloading the drivers:
You have not installed Microsoft Office
You can download the 32–bit drivers for Office 2010. On the Microsoft Download
Center, search for "Microsoft Access Database Engine 2010 Redistributable" and
select the 32–bit verson.
You have installed Microsoft Office 2007, 32–bit
If you do not already have the drivers, you can download them. On the Microsoft
Download Center, search for "2007 Office System Driver: Data Connectivity
Components". Or search for "Microsoft Access Database Engine 2010
Redistributable" and select the 32–bit version (the 32–bit driver for Office 2010
works with Office 2007).
You have installed Microsoft Office 2010, 32–bit
If you do not already have the 32–bit drivers, you can download them. On the
Microsoft Download Center, search for "Microsoft Access Database Engine 2010
Redistributable" and select the 32–bit version.
You have installed Microsoft Office 2010, 64–bit
If you have installed the 64–bit drivers, then you need to install the 32–bit drivers.
However, Microsoft does not allow you to install 32–bit drivers for Office 2010
along with 64–bit drivers. Therefore, you must install the 32–bit drivers from
Microsoft Office 2007 instead. On the Microsoft Download Center, search for "2007
Office System Driver: Data Connectivity Components".
Note: The 32–bit drivers for Microsoft Office 2007 do not replace the 64–bit drivers
for Microsoft Office 2010, so the 64–bit drivers remain available for use with
applications other than SAS Activity-Based Management.
• Change
• Read
Chapter 16
Staging-Table Schemas
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
Staging Tables for Importing a New Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
Periodic Data versus Structural Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
General notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Currency Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
Table legend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
Naming Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
General naming conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
Attribute naming conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
Dimension naming conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
Dimension level naming conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
Dimension member naming conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Driver naming conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Entered cost element naming conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
External unit naming conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
Module naming conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
Period naming conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
Period level naming conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
Scenario naming conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
Scenario level naming conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
Stage attribute naming conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
Workspace item naming conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
Reference Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
Account reference conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
Attribute reference conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
External unit reference conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
Dimension reference conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
Dimension member reference conventions and dimension
attribute reference conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
Period reference conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
Scenario reference conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
Entered cost element reference conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
Account table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
Assignment table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
AssignmentNonUnique table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
CurrencyRate table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
Dimension table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
206 Chapter 16 • Staging-Table Schemas
DimMemberDimAttrAssociation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
DimMemberValueAttrAssociation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
DimensionAttributeAssociation table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
DimensionLevel table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
DimensionMember table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
DimensionOrder table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
Driver table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
EnteredCostElement table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
ExternalUnit table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
Model table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
AdvancedOptions Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
MultiStageContribution table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
PerformanceMeasure table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
Period table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
PeriodLevel table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
ResourceContribution table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
RollupAccount table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
Scenario table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
ScenarioLevel table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
ValueAttribute table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
ValueAttributeAssociation table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
ValueAttributePeriodicDef table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
Introduction
The following staging tables define the SAS Activity-Based Management data schema.
Each table corresponds to a specific structural or periodic aspect of a model, such as
period , scenario, dimension, and so on. Use this data schema to create a database that
will hold the data that you want to import into a model. This data schema is also used by
SAS Activity-Based Management to export models to XML files.
General notes
Remember the following information when referring to these tables:
208 Chapter 16 • Staging-Table Schemas
• The tables are organized based on the general order in which models are created
during import; however, the actual order of model creation is not explicitly implied
by the table sequence.
• All Reference and Name field string comparisons are not case sensitive.
• The identifier for periods and scenarios is Period.Reference and Scenario.Reference.
• In XML, a database null value is represented by $NULL$. Null values and empty
strings are handled in the same way. Null numbers are typically imported to a model
as is.
• The Reference and Name fields for hierarchical items (such as Period, Scenario, and
DimMember) must comply with the naming conventions (see the online help).
• The fields that are noted as Required for archive are the fields that are exported by
default.
• When a table is exported to a database, most of the names of the exported fields are
the same as the names listed in this section. However, some names are changed when
exported; those changes are noted in the Field Name column of each table. SAS
Activity-Based Management attempts to match the destination column names with
the source column names as closely as possible, so this name change is necessary
only when a database imposes certain naming limitations (such as a limited number
of characters).
Data Types
The SAS Activity-Based Management data schema uses the following data types:
Alphanumeric
is a text value that translates to values such as varchar, nvarchar, char, or nchar.
Date
is a regular binary date value that must be recognized by ADO.NET.
DriverSignature
is a driver type that is identified by a series of ModuleType and DriverName pairs.
Float
is an 8-byte floating point number.
Integer
is a 4-byte signed integer.
Memo
is a large text-based value that translates to the text or ntext data types in Microsoft
SQL Server.
Boolean
is a Boolean value. The actual value may be a value other than True/False, such as
Yes/No, bit, or a Char field. SAS Activity-Based Management will attempt to
interpret Boolean values in other formats.
DimensionSignature
is a series of one or more pairs of the following dimension and dimension member
reference information for each dimension, where (n) represents the dimension level:
DimRef(n)
DimMemberRef(n)
The number of pairs that is used for importing is the maximum number of structural
dimensions that is used in the modules being imported. For example, if the Resource
Introduction 209
module uses two dimensions and the Cost Object module uses three dimensions, the
number of DimRef and DimMemberRef pairs must be three. The following example
is from a model that tracks the food preparation costs for an airline.
DimRef1="Customer"
DimMemberRef1="WF Portland to CHI"
DimRef2="Products"
DimMemberRef2="Omelette"
The dimensions that are included in the Dimension Signature data type are only
structural dimensions. Dimension attributes are imported and exported using the
DimensionAttributeAssociation table.
ExportDimensionSignature
A series of sets of the following dimension information for each dimension, where
(n) represents the dimension level:
DimName(n)
DimRef(n)
DimMemberName(n)
DimMemberRef(n)
DimLevel(n)
DimLevelName(n)
The following example is from a model that tracks the food preparation costs for an
airline:
DimName1="Customer"
DimRef1="Customer"
DimMemberName1="WF Portland to CHI"
DimMemberRef1="WF Portland to CHI"
DimLevel1="1"
DimLevelName1="Customer L1"
DimName2="Products"
DimRef2="Products"
DimMemberName2="Omelette"
DimMemberRef2="Omelette"
DimLevel2="1"
DimLevelName2="Products L1"
Currency Codes
The following table lists the three-letter currency codes that are used by the import/
export data schema. Currency codes are used in the following items:
• The Model table
• The CurrencyRate table
• The XML calculate configuration schema
Currency Code
Afghani AFA
Currency Code
Ariary MGA
Baht THB
Balboa PAB
Bolivar VEB
Boliviano BOB
Cedi GHC
Currency Code
Dalasi GMD
Denar MKD
Dinars CSD
Dobra STD
Dong VND
Drachma GRD
Ekwele CQE
euro EUR
Forint HUF
Gourde HTG
Guarani PYG
212 Chapter 16 • Staging-Table Schemas
Currency Code
Kina PGK
Kip LAK
Kroon EEK
Kuna HRK
Kwacha MWK
Kwacha ZMK
Kwanza AOA
Kyat MMK
Lari GEL
Lempira HNL
Introduction 213
Currency Code
Leone SLL
Leu ROL
Leva BGN
Lilangeni SZL
Loti LSL
Luigini SPL
Manat TMM
Markka FIM
Metical MZM
Naira NGN
Nakfa ERN
Netherlands ANG
Currency Code
Ngultrum BTN
Ouguiya MRO
Pa'anga TOP
Pataca MOP
Pula BWP
Quetzal GTQ
Rand ZAR
Riel KHR
Rufiyaa MVR
Rupiah IDR
Schilling ATS
Introduction 215
Currency Code
Som KGS
Somoni TJS
Sucre ECS
Taka BDT
Tala WST
Tenge KZT
Tolar SIT
Tugrik MNT
Currency Code
US Dollar USD
Vatu VUV
Yen JPY
Zloty PLN
Table legend
All tables in the data schema contain the following columns:
Field Name Represents a value in a model. An external field may be mapped to this
name.
Type of Data Specifies the type of data stored in the field. See “Data Types” on page
208.
Length Defines the maximum length of the field. memo is for long text values
that can be virtually unlimited; it translates to the Microsoft SQL Server
text and ntext types.
Key Specifies that the field uniquely identifies an item. These values are
required whenever inserting, updating, or deleting an item. In some
tables, there is more than one way to identify an item. In those cases,
there is a key1 and key2. When identifying the item, you must specify all
key1 fields or all key2 fields.
Import/Add Identifies whether the field is required or optional for import. N/A means
the field is not valid for import. Import allows the insertion of new items
and the updating or merging of existing items. For updating or merging,
only key fields are required.
In some tables there is a Required1 and Required2. The user must
provide all Required1 fields or all Required2 fields together with all
Required fields for inserting a new item.
Naming Conventions 217
Archive Indicates whether the field is optional or required for archiving a model
by exporting it to staging tables. (See “Archiving a Model” on page 170.)
Naming Conventions
Each of these characters is replaced with an underscore (_) when a cube is generated.
For additional considerations concerning stage attributes, see “Stage Attributes” in the
SAS Activity-Based Management User’s Guide, available from the Help menu.
cube is generated for Microsoft Analysis Services. SAS OLAP allows all 64
characters for dimension names.
• Dimension names must be unique within all dimensions and dimension attributes.
• Dimension names must be unique within a parent.
• Dimension names may contain these characters, even though these characters are not
valid in cubes:
. , ; ' ` : ? * & % $ ! - + = ( ) [ ] { } / /
Each of these characters will be replaced with an underscore (_) when a cube is
generated.
• Dimension level names may contain these characters, even though these characters
are not valid in cubes:
. [ ]
Each of these characters will be replaced with an underscore (_) when a cube is
generated.
• Note: Because of the mechanism used by SAS Activity-Based Management to store
dimension level names, some user-specified names will cause conflicts with the
underlying database (regardless of whether Microsoft SQL Server or Oracle is used).
These conflicts will appear as obscure error messages when calculating a model.
Dimension level names that will cause conflicts are reserved words in the Microsoft
SQL query language. Some of the more common reserved words are: level, group,
function, drop, and join. For example, using the name LeVeL will cause errors. To
avoid dimension level name conflicts, add a descriptive prefix or suffix.
To change the name of a dimension level:
1. Open a model.
2. Select Model ð Dimensions.
3. Right-click a dimension and select Item Properties.
The Dimension Properties window opens.
4. Type a new name, and then click OK.
Naming Conventions 219
Each of these characters will be replaced with an underscore (_) when a cube is
generated.
Each of these characters will be replaced with an underscore (_) when a cube is
generated.
Each of these characters will be replaced with an underscore (_) when a cube is
generated.
• Period level names may contain these characters, even though these characters are
not valid in cubes:
. [ ]
Each of these characters will be replaced with an underscore (_) when a cube is
generated.
Each of these characters will be replaced with an underscore (_) when a cube is
generated.
Each of these characters will be replaced with an underscore (_) when a cube is
generated.
• You can change stage names as long as they retain their order when sorted. If the sort
order changes them, you will need to regenerate the fact tables for all period/
scenarios in the model.
222 Chapter 16 • Staging-Table Schemas
Reference Conventions
Account table
This table specifies the dimension intersections in the Resource module, the Activity
module, and the Cost Object module. The combination of the columns DimRef<n> and
DimMemberRef<n> for each valid dimension is the dimension signature. Do not include
dimension signatures for the External Units module in this table.
This table is required when creating a new model. It is not required for updating an
existing model.
This table is required for archive.
Notes:
DimSignature There is no column of this name. Dimension signature contains dimension members
involved in the account creation. So DimRef(n) and DimmemberRef(n) are mainly
required for dimension signature. DimName, DimMemberName, Dimlevel,
DimLevelname are optional
Reference Account must exist to use Reference as the key, otherwise there is no way to hang a
dimension reference to a dimension signature. Value must be unique within module.
Default value will be generated if blank or not supplied.
ValueAttributes There no column of this name. If user want to see the associated attributes (text or
numeric) with the account then user can defines these attributes. These attributes will
come as column in the staging table.
Assignment table
This table specifies assignments, including assignments from the External Units module.
The accounts in an assignment can be specified with the columns SourceReference and
DestinationReference or with the columns SourceDimRef<n> and
SourceDimMemberRef<n>, and DestinationDimRef<n> and
DestinationDimMemberRef<n>.
This table is required when creating a new model. It is not required for updating an
existing model.
This table is required for archive.
Notes:
SourceDimSignature "Source" is the prefix for all the DimSignature fields. Source account will be created if the
AutoCreateAccount="1" attribute is included in the Config XML.
DestinationDimSignature "Destination" is the prefix for all the DimSignature fields. Destination account will be
created if the AutoCreateAccount=1 attribute is included in the Config XML.
DriverName Source account's driver will be changed to this driver if it doesn't match already. Ignored if
null or empty string. If AutoCreateAccount="1" attribute is included in the Config XML
then this will be created as a Basic driver.
DriverWeightFixed >=0 Ignored unless source account uses Weighted Driver. (Value stored in FixedWeight
field)
AssignmentNonUnique table
This table specifies the driver quantities on destination accounts for all drivers where the
driver quantity type is nonunique. The driver quantity on a destination account can be
specified with the column DestinationReference or with the columns DimRef<n> and
DimMemberRef<n>.
This table is not required when importing data because the unique driver quantities can
be specified in the Assignment table. If this table is imported, all columns must exist, but
all columns do not need to contain data.
This table is not required for archive.
Notes:
DriverWeightFixed >=0 Ignored unless source account uses Weighted Driver. (Value stored in FixedWeight
field)
CurrencyRate table
This table specifies currency exchange rates for each period.
If multiple currencies are not required in the model, then this table is not required when
importing data.
This table is required for archive.
Notes:
Dimension table
This table specifies the dimensions in the model. This table must include the dimensions
that are required for building the structure of the Resource module, the Activity module,
the Cost Object module, and the External Units module. This table includes the
dimension attributes if dimension attributes are used in the model. Do not include
numeric attributes, text attributes, and Boolean attributes.
This table is required when importing data.
This table is required for archive.
DimMemberDimAttrAssociation
This table stores attributes that are attached to dimension members.
This table is required when importing data.
This table is required for archive.
DimMemberValueAttrAssociation
This table stores the value of attributes that are attached to dimension members.
This table is required when importing data.
This table is required for archive.
DimensionAttributeAssociation table
This table specifies the accounts that are associated with dimension attributes. The
association can be specified with the column ItemReference or with the columns
DimRef<n> and DimMemberRef<n>.
This table is not required when importing data. If this table is imported, all columns must
exist, but all columns do not need to contain data.
This table is required for archive.
Notes:
DimensionLevel table
This table specifies the name of each level in a dimension hierarchy.
This table is required when importing data.
This table is required for archive.
DimensionMember table
This table specifies the hierarchy for each dimension.
232 Chapter 16 • Staging-Table Schemas
Notes:
ParentReference Must be an existing DimensionMember Refererence in the model or in this table. Root
element can be identified as one of: empty string, Null, "All".
DimLevelName Hierarchy level override. Ignored if null. This takes precedant over DimLevel if this is
non-null and DimLevel is also included.
DisplayOrder Determines the order in which dimension members are displayed in the user interface. It is
suggested that you start with 10 and increment by 10 (e.g., 10, 20, 30, ...) so that you can
interpose later rows (e.g., 10, 20, 30, 15, 40 ). The numbers used need only be unique
within a dimension.
DimensionOrder table
This table specifies the order of the dimensions in the Resource module, the Activity
module, the Cost Object module, and the External Units module. The records in this
table must be sorted according to module type and sequence number.
This table is required when importing data.
This table is required for archive.
Driver table 233
Notes:
Driver table
This table specifies the drivers.
This table is required when creating a new model. It is not required for updating an
existing model. When importing, if the account does not exist, the account is added.
This table is required for archive.
Notes:
DriverType "Percentage" | "Evenly Assigned" | "Basic" | "Weighted" | "Bill of Cost" | "Sales Volume" |
"Calculated" | "Center". Default="Basic".
Formula Default=""
SequenceNumber Default=1
UserEnteredCostAllocation Default=No
EnteredCostElement table
This table specifies the entered cost elements and the account that is associated with
each entered cost element. The account that is associated with an entered cost element
can be specified with the column AccountReference or with the columns DimRef<n>
and DimMemberRef<n>.
This table is required when creating a new model. It is not required for updating an
existing model.
This table is required for archive.
ExternalUnit table 235
Notes:
AccountDimSignature There is no column of this name. Dimension signature contains dimension members
involved in the account creation. So DimRef(n) and DimmemberRef(n) are mainly
required for dimension signature. DimName, DimMemberName, Dimlevel,
DimLevelname are optional
EnteredCost Default=0.0
ExternalUnit table
This table specifies dimension intersections for the External Units module. The
combination of the columns DimRef<n> and DimMemberRef<n> for each valid
dimension is the dimension signature.
If the model does not use external units, then this table is not required when importing
data.
This table is required for archive.
Notes:
DimSignature There is no column of this name. Dimension signature contains dimension members
involved in the account creation. So DimRef and DimmemberRef are mainly required for
dimension signature. DimName, DimMemberName, Dimlevel, DimLevelname are
optional. Only a single Dim/DimMember pair can be specified.
Reference ExternalUnit must exist to use Reference as the key, otherwise there is no way to hang a
dimension reference to a dimension signature. Value must be unique across all External
Units. Default value will be generated if blank or not supplied.
UnitCostEntered Default=0.0
ValueAttributes There no column of this name. If user want to see the associated attributes (text or
numeric) with the account then user can defines these attributes. These attributes will
come as column in the staging table.
Model table
Overview
This table specifies the model name, the description, and the default values for the
model. SAS Activity-Based Management uses this table for export only.
This table is not required for importing data because you must specify the model name
when importing data.
This table is required for archive.
Notes:
238 Chapter 16 • Staging-Table Schemas
Name Model Name and the full path name in the workspace
DefaultOutputQuantity =0 or =1
BaseCurrency Currency code defined in CurrencyDefinition. Can only be defined when creating a new
model.
AdvancedOptions Information about default drivers for modules, numeric attributes and stages include in the
model. It is stored in XML format
AdvancedOptions Field
Overview
When you import data into a model, you can write XML that specifies the advanced
options of the model's properties. You specify this XML in the AdvancedOptions field
of the Model table.
Related Topics:
• Example XML AdvancedOptions field
MultiStageContribution table
This table specifies how cost flows through each predefined stage and what accounts in
those predefined stages participate in the flow.
SAS Activity-Based Management uses this table for export only.
This table is not required for archive.
Notes:
Value Attributtes There no column of this name. If user want to see the associated attributes (text or
numeric) with the account then user can defines these attributes. These attributes will
come as column in the staging table.
242 Chapter 16 • Staging-Table Schemas
PerformanceMeasure table
Period table
This table specifies the period names, the descriptions, and the start dates and the end
dates.
If the required periods already exist on the SAS Activity-Based Management server,
then this table is not required when importing data.
This table is required for archive.
Notes:
ResourceContribution table 243
ParentReference Root element can be identified as one of: empty string, Null, "All"
PeriodLevel table
This table specifies the level names for period hierarchies.
If the required period levels already exist on the SAS Activity-Based Management
server, then this table is not required when importing data.
This table is required for archive.
Notes:
ResourceContribution table
This table specifies the cost contribution relationship and the percentage from each
starting account (typically a resource account) to each ending account (typically a cost
object account).
SAS Activity-Based Management uses this table for export only.
This table is not required for archive.
Notes:
RollupAccount table
This table specifies the rollup accounts that are at a higher level than the leaf accounts.
The rollup accounts' numeric properties are the rollup of the corresponding properties of
the descendant leaf accounts, based on the dimensional hierarchy.
SAS Activity-Based Management uses this table for export only.
This table is not required for archive.
Notes:
DimSignature There is no column of this name. Dimension signature contains dimension members
involved in the account creation. So DimRef and DimmemberRef are mainly required for
dimension signature. DimName, DimMemberName, Dimlevel, DimLevelname are
optional. Only a single Dim/DimMember pair can be specified.
Scenario table
This table specifies the scenario names and the descriptions.
If the required scenarios already exist on the SAS Activity-Based Management server,
then this table is not required when importing data.
This table is required for archive.
Notes:
ParentReference Root element can be identified as one of: empty string, Null, "All"
ScenarioLevel table
This table specifies the level names for scenario hierarchies.
If the required scenario levels already exist on the SAS Activity-Based Management
server, then this table is not required when importing data.
This table is required for archive.
ValueAttribute table
This table specifies the attribute hierarchy for numeric attributes , text attributes , and
Boolean attributes.
This table is not required when importing data.
This table is required for archive.
Notes:
ValueAttributeAssociation table
This table specifies the accounts that are associated with numeric attributes, text
attributes, and Boolean attributes. The association can be specified with the column
ItemReference or with the columns DimRef<n> and DimMemberRef<n>.
This table is not required when importing data. If this table is imported, all columns must
exist, but all columns do not need to contain data.
This table is required for archive.
248 Chapter 16 • Staging-Table Schemas
Notes:
ValueAttributePeriodicDef table
This table specifies the default value and formula for the numeric attributes.
This table is required when importing data.
This table is required for archive.
Notes:
ValueAttributePeriodicDef table 249
Formula Default=""
250 Chapter 16 • Staging-Table Schemas
251
Part 5
Chapter 17
Programming the API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
Chapter 18
API Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
Chapter 19
XML Passed to the API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
Chapter 20
Easy API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
252
253
Chapter 17
Programming the API
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
Progress reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
Log files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
Writing a program in Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
Example programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
Overview
The SAS Actvity-Based Management Web Services Integration API enables other
applications or 3rd party systems to seamlessly integrate SAS Activity-Based
Management into their operational systems. Users or consultants can write code or script
(sample programs in several languages are provided) to automate their business
reporting processes which may include periodically obtaining data from various
financial data sources, cleansing and importing data in to the SAS Activity-Based
Management system, computing the activity costs, building OLAP cubes for
contribution or profitability analysis or exporting computed data to generate custom
reports.
SAS ETL and Analytical tools combined with the SAS Activity-Based Management
Integration API provide numerous options for users to integrate, automate and report on
data that resides on most any system.
SAS Activity-Based Management Web Services Integration API on client is surfaced
through a Microsoft COM/Automation interface. This API component on the client uses
SOAP Protocol to communicate with the .NET webservices on server and hides all the
complexities of sending operation requests and receiving result or logs at the completion
of execution. Users who can run their integration components or code on Microsoft
Windows Operating systems can effectively use this API.
Note: The API must be invoked from a machine on which the SAS Activity-Based
Management client is installed.
Prerequisites for the API
• SAS Activity-Based Management client and all the dependent components must be
installed prior to using client integration API.
• SAS Activity-Based Management client should be in working condition (does not
have to be currently running) to use this API functionality.
254 Chapter 17 • Programming the API
Languages supported
You can invoke the API using the following languages:
• C#
• Java
• Visual C++
See the sample programs at
<C:\Program Files\SAS\>SASActivityBasedManagementClient\7.2\Samples\ServicesAPI
You can write a program that uses certain functions (such as importing data and
exporting data) within SAS Activity-Based Management. You can use any COM-
compliant language (such as C#, Visual Basic, or Visual C++) to access these functions,
which are included in the SAS Activity-Based Management Web Services Integration
API.
The SAS Activity-Based Management Web Services Integration API supports a COM
dual interface: vtable (for early binding) and IDispatch (for late binding).
SAS Activity-Based Management must be installed on the computer on which you run
your program.
Note: You can perform this task without first opening a model.
1. Review the information about importing model data or exporting model data.
2. If you are importing from a database:
a. Create a database or a database view that matches the data schema and then load
the data to be imported.
b. Verify that the database user has the correct access.
3. If you are exporting to a database:
a. Create an empty database that matches the data schema.
b. Verify that the database user has the correct access.
4. Verify that the SAS Activity-Based Management client application is installed on the
computer on which your program will run.
5. Verify that the XML import configuration, the XML export configuration, or the
XML calculate configuration matches the appropriate data schema.
6. If you are using XML files, ensure that your program has access to the data:
a. For the XML import configuration, provide the user ID and password for the
DataSource attribute of either the StagingArea element or the StagingTable
element.
b. For the XML export configuration, provide the user ID and password for the
Connection attribute of the StagingArea element.
7. Run your program.
About the SAS Activity-Based Management Web Services Integration API (link???)
8. Verify the results.
To receive a report of events that occur during the operation, your program can call
the GetOperationProgress function.
Log files 255
Progress reports
The functions that you can perform using the SAS Activity-Based Management Web
Services Integration API run on the SAS Activity-Based Management server and might
require a considerable amount of time to complete. These functions regularly report
progress to SAS Activity-Based Management. You can retrieve this progress report in
the form of an XML string by invoking the GetOperationProgress function. Your
program can read this string into the XML parser of your choice. Alternatively, your
program can display the progress report information.
Here is the structure of the XML string:
<SasServicesStatus>
<Operation Type="OPTYPE string" Status="OPSTATUS string" />
<OperationMessages>
<Message Text="Message text" />
<Message Text="Message text" />
</OperationMessages>
</SasServicesStatus>
The following table shows the possible values of the OPTYPE string:
Calculate Calculate
Log files
The SAS Activity-Based Management Web Services Integration API creates two log
files that contain information about the functions that were performed: sasservices.log
and sasoperations.log. These log files are stored in the folder that contains your
program's executable.
256 Chapter 17 • Programming the API
Note: These files can become large because new content is appended to the files. (The
contents of these files are never overwritten.) Therefore, you should archive or delete
these files periodically.
catch(COMException e)
{
System.out.println("Got a COM Error: " + e);
}
catch(Exception e)
{
e.printStackTrace(); // Handle an exception.
}
Example programs
Example programs that are written in various programming languages are installed with
SAS Activity-Based Management. The default folder for these example programs is:
C:\Program Files\SAS\SASActivityBasedManagementClient\7.2\Samples\ServicesAPI
257
Chapter 18
API Functions
Calculate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
CancelOperation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
CopyModelData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
Connect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
Disconnect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
ExportCubeConfigurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
ExportModelData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
ExportReportData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
GenerateCube . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
GetOperationLog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
GetOperationProgress . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
ImportModelData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
ImportCubeConfigurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
OnOperationComplete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
PublishPeriodsScenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
PublishSPMMetrics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
ValidateModel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
Calculate
This function calculates a model in the SAS Activity-Based Management database.
CancelOperation
This function cancels the import, export, or calculation operation in progress.
CopyModelData
This function copies model data from one period/scenario association to another.
Connect
This function initializes a session with the SAS Activity-Based Management server.
Disconnect
This function ends the session with the SAS Activity-Based Management server. This
function has no arguments.
ExportCubeConfigurations
This function exports cube configurations to an xml file.
ExportModelData
This function exports model structures and data to a Microsoft SQL Server, Oracle, or
Microsoft Access database.
ExportReportData
This function exports report data to a data source.
GenerateCube
This function generates a cube and/or a fact table.
GetOperationLog
This function retrieves the operation log as XML.
GetOperationProgress
This function retrieves progress messages regularly reported by SAS Activity-Based
Management operations in the form of an XML string progress report.
ImportModelData
This function imports model structures and data into a SAS Activity-Based Management
model from a Microsoft SQL Server, Oracle, or Microsoft Access database, or from an
XML file that was previously exported from SAS Activity-Based Management.
ImportCubeConfigurations
This function imports cube configurations from a previously exported xml file.
OnOperationComplete
PublishPeriodsScenarios
This function publishes periods and their associated scenarios.
PublishSPMMetrics
This function logs in to the SAS Strategy Management server (middle tier). This is the
same information that is specified in the model properties.
ValidateModel
This function validates a model.
Chapter 19
XML Passed to the API
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
XML to Calculate a Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
Sample XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
XML Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
OROSCOMMAND Element (Required) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
MODELCONTEXT Element (Required) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
PeriodScenario Element (Required) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
COMMANDPARAMS Element (Required) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
CostFlow Element (Required) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
XML to Copy a Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
Sample XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
XML copy model data configuration structure . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
CopyModelData element (required) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
ModelContext element (required) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
XML to Export Cube Configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
Sample XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
XML syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
CubeConfigurationsExport element (required) . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
CubeConfiguration element (required) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
XML to Export a Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
Sample XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
XML Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
OEExport Element (Required) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
PeriodScenario Element (Required) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
StagingArea Element (Required) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
StagingTable Element (Required) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
Column Element (Required) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
ColumnFilter Element (Optional) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
![CDATA [expression]] Element (Required) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
DimensionColumn Element (Optional) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
DimensionFilter Element (Optional) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
Dimension Element (Required) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
DimensionMember Element (Optional) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
NestedObject Element (Optional) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
XML to Export a Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
266 Chapter 19 • XML Passed to the API
Overview
When you use certain functions in the SAS SAS Activity-Based Management Web
Services Integration API, you must provide an XML configuration string. This string
may be included in your program, contained in a file, or entered through your program's
user interface.
Each XML configuration has a specific purpose and a unique structure. Example XML
configuration strings are available in the folder in which SAS Activity-Based
Management is installed, which is typically:
C:\Program Files\SAS\Activity-Based Management Solution\Client\Samples\Services
API\Configurations
Note: Some of the attributes in an XML configuration contain IDs to other data that
resides on a specific SAS Activity-Based Management server, such as periods and
scenarios. Therefore, do not use an XML configuration that was created for another
server. If you use an XML configuration created for one server, these IDs might not
correspond to any data on another server. Or, in the worst case, the IDs might
correspond to the wrong data and the model might become corrupted.
Sample XML
<OROSCOMMAND Version="2.0">
<MODELCONTEXT Model="peAPI">
<PeriodScenario PeriodId="9" ScenarioId="1"/>
</MODELCONTEXT>
<COMMANDPARAMS MessageLimit="50">
<CostFlow SeqDriverLimit="-1" Force="1" DisableDriverRules="0"/>
</COMMANDPARAMS>
</OROSCOMMAND>
<OROSCOMMAND Version="2.0">
<MODELCONTEXT Model="peAPI">
<PeriodScenario PeriodRef="2008 Q1" ScenarioRef="Actual" />
</MODELCONTEXT>
<COMMANDPARAMS MessageLimit="50">
<CostFlow SeqDriverLimit="-1" Force="1" DisableDriverRules="0"/>
</COMMANDPARAMS>
</OROSCOMMAND>
Overview
When you use the SAS | ABM Web Services Integration API to calculate a model, you
must write XML that specifies what you want to calculate and how you want to calculate
it.
268 Chapter 19 • XML Passed to the API
XML Syntax
The following structure shows the elements used in the XML and their relationships to
each other. Position the mouse over a linked element to see if it is required or optional.
Click a link for a complete description of the element.
<OROSCOMMAND Version="2.0">
<MODELCONTEXT attributes>
<PeriodScenario attributes/>
</MODELCONTEXT>
<COMMANDPARAMS attributes>
<CostFlow attributes/>
</COMMANDPARAMS>
</OROSCOMMAND>
Sample XML
The following example copies model data from one period and scenario (IDs 1 and 3) to
another period and scenario (IDs 6 and 2):
<CopyModelData>
<ModelContext ModelId="1001" SrcPeriod="1" DestPeriod="6"
SrcScenario="3" DestScenario="2" />
</CopyModelData>
Overview
When you use the SAS ABM Web Services Integration API to calculate a model, you
must write an XML CopyModelData configuration that specifies what you want to
calculate (and how you want to calculate it).
String comparisons are not case sensitive.
Note: Although an element might be optional, if you include the element, there might be
required elements within it.N
Related Topics:
• Example XML Copy Model Data configuration
Sample XML
<CubeConfigurationsExport Filename="c:\temp\peCubeConfigurationsExport.xml" DoFolders="True">
<CubeConfiguration Name="Fred\PE_MSC63_Modules" />
<CubeConfiguration Name="Fred\PE_MSC63_Stages" />
<CubeConfiguration Name="Fred\PE_MSC64_Modules" />
<CubeConfiguration Name="Fred\PE_MSC64_Stages" />
<CubeConfiguration Name="Fred\PE_RC" />
<CubeConfiguration Name="Fred\PE_SS" />
</CubeConfigurationsExport>
Overview
When you use the SAS Activity-Based Management Web Services Integration API to
export cube configurations, you must write XML that specifies the cube configurations
to be exported.
Elements and attributes are case sensitive. String comparisons are not case sensitive.
XML syntax
The following structure shows the elements used in the XML and their relationships to
each other. Position the mouse over a linked element to see if it is required or optional.
Click a link for a complete description of the element.
<CubeConfigurationsExport attributes >
<CubeConfiguration attribute />
</CubeConfigurationsExport>
Sample XML
The following example exports model data from a model named Inflight to a database:
274 Chapter 19 • XML Passed to the API
The following example exports model data from a model named "Inflight" to XML
instead (by replacing the previous first three lines):
<OEExport
Model="Inflight"
Version="6.2"
Type="XML"
MessageLimit="50"
Filename="c:\temp\inflight.xml">
<PeriodScenario Period="2000" Scenario="Actual" />
<StagingArea DataSource="">
XML to Export a Model 275
Overview
When you use the SAS Activity-Based Management Web Services Integration API to
export information from SAS Activity-Based Management, you must write an XML that
identifies the model to be exported and the destination database or XML file. The XML
can select all periods and scenarios to export or a subset of them. It can specify a whole
model or specific tables (as defined in the data schema) to export.
Example XML to Export
String comparisons are not case sensitive.
XML Syntax
The following structure shows the elements used in the export XML and their
relationships to each other. Position the mouse over a linked element to see if it is
required or optional. Click a link for a complete description of the element.
<OEExport attributes />
<PeriodScenario attributes />
<StagingArea attributes>
<StagingTable attributes >
<Column attributes />
<ColumnFilter>
<![CDATA[ expression ]]>
</ColumnFilter>
<DimensionColumn attributes />
<DimensionFilter>
<Dimension attribute />
<DimensionMember attributes />
</Dimension>
</DimensionFilter>
<NestedObject attributes>
<Column attributes />
<DimensionColumn attributes />
</NestedObject/>
</StagingTable>
</StagingArea>
</OEExport>
Note: Although an element might be optional, if you include the element, there might
be required elements within it.
276 Chapter 19 • XML Passed to the API
Sample XML
The following example exports report data for a report named Destination Furthest from
the model with ID 1001.
<Object Custom="1" version="7.2" Name="Destination Furthest">
<Periods Names="2000" Ids="1" />
<Scenarios Names="Actual" Ids="1" />
<Models Modules="ALL">
<Model Id="1001" />
</Models>
<Dimensions IdStr="" IdStrWiz="" DimNames="" />
<Connection
JdbcDriverClass=""
RepositoryName=""
RepositoryId=""
LibraryName=""
LibraryID=""
LibraryReference=""
MetaWorkspaceServer=""
MetaWorkspaceServerId=""
WorkspaceServerName=""
Port=""
Engine=""
DBType="1"
DriverType="0"
HostName="D7920"
PortNumber="1433"
ServiceName="TestDBForStagingTables"
UserName="DBUser"
Password="xxxx"
AdvanceOptions="Security=SSPI;Persist Security Info=False;" />
</Object>
284 Chapter 19 • XML Passed to the API
Overview
When you use the SAS | ABM Web Services Integration API to export a report, you
must write an XML export report data configuration that identifies the report to be
exported.
String comparisons are not case sensitive.
<Object attributes>
<Periods attributes/>
<Scenarios attributes/>
<Models attribute/>
<Model attribute/>
</Models>
<Dimensions attributes/>
<Options attribute/>
<Connection attributes/>
</Object>
Note: Although an element might be optional, if you include the element, there might be
required elements within it.
Names Required String Names of one or more periods; separate each name
with a comma
XML to Export a Report 285
Ids Required String IDs of one or more periods; separate each ID with
a comma
Overview
When you use the SAS | ABM Web Services Integration API to generate a cube using a
cube configuration, you must write XML that specifies what cube configuration you
want to use.
Example XML to Generate a Cube
Elements and attributes are case sensitive. String comparisons are not case sensitive.
Sample XML
<OROSCOMMAND Version="2.0">
<MODELCONTEXT ModelId="1242">
<PeriodScenario PeriodId="13" ScenarioId="1"/>
<PeriodScenario PeriodId="14" ScenarioId="1"/>
</MODELCONTEXT>
<COMMANDPARAMS MessageLimit="50" CubeAction="Generate">
<CubeConfig Id="837"/>
</COMMANDPARAMS>
</OROSCOMMAND>
XML to Generate a Cube 287
XML Syntax
The following structure shows the elements used in the XML to generate a cube and
their relationships to each other. Position the mouse over a linked element to see if it is
required or optional. Click a link for a complete description of the element.
<OROSCOMMAND Version="2.0">
<MODELCONTEXT attributes>
< PeriodScenario attributes/>
</MODELCONTEXT>
<COMMANDPARAMSattributes>
<CubeConfig attributes/>
</COMMANDPARAMS>
</OROSCOMMAND>
The configuration file does not contain the required dimension element.
Sample XML
<CubeConfigurations UploadFile="c:\temp\peCubeConfigurationsExport.xml" Action="rename"/>
Overview
When you use the SAS | ABM Web Services Integration API to import cube
configurations, you must write XML to specify the file to be imported.
Elements and attributes are case sensitive. String comparisons are not case sensitive.
XML syntax
The XML to import cube configurations consists of a single element.
< CubeConfigurations attributes/>
Sample XML
The following example imports a model named TestModel into SAS Activity-Based
Management:
<OEImport
Model="TestModel"
Action="Create"
Version="7.2"
Type="Staging"
Description="TestModel import">
<StagingArea
JdbcDriverClass=""
RepositoryName=""
292 Chapter 19 • XML Passed to the API
RepositoryId=""
LibraryName=""
LibraryID=""
LibraryReference=""
MetaWorkspaceServer=""
MetaWorkspaceServerId=""
WorkspaceServerName=""
Port=""
Engine=""
DBType="1"
DriverType="0"
HostName="D920"
PortNumber="1433"
ServiceName="TestDBForStagingTables"
UserName="DBUser "
Password="xxxx"
AdvanceOptions="Security=SSPI;Persist Security Info=False;">
<StagingTable Name="Period" TableName="tbl_Period">
<Column Name="Reference" />
<Column Name="Name" />
<Column Name="ParentReference" />
<Column Name="StartDate" />
<Column Name="EndDate" />
</StagingTable>
<StagingTable Name="PeriodLevel" TableName="tbl_PeriodLevel">
<Column Name="LevelNo" />
<Column Name="Name" />
</StagingTable>
<StagingTable Name="Scenario" TableName="tbl_Scenario">
<Column Name="Reference" />
<Column Name="Name" />
<Column Name="ParentReference" ColumnName="ParentRef" />
</StagingTable>
<StagingTable Name="ScenarioLevel" TableName="tbl_ScenarioLevel">
<Column Name="LevelNo" />
<Column Name="Name" />
</StagingTable>
<StagingTable Name="CurrencyRate" TableName="tbl_CurrencyRate">
<Column Name="Period" />
<Column Name="Scenario" />
<Column Name="CurrencyFrom" />
<Column Name="CurrencyTo" />
<Column Name="Rate" />
</StagingTable>
<StagingTable Name="Driver" TableName="tbl_Driver">
<Column Name="Name" />
<Column Name="DriverType" />
<Column Name="UniqueDriverQuantities" ColumnName="UniqueQuantity" />
</StagingTable>
<StagingTable Name="Dimension" TableName="tbl_Dimension">
<Column Name="Reference" ColumnName="DimRefnum" />
<Column Name="Name" ColumnName="DimName" />
</StagingTable>
<StagingTable Name="DimensionOrder" TableName="tbl_DimViewOrder">
<Column Name="ModuleType" />
<Column Name="DimRef" ColumnName="DimRefnum" />
XML to Import a Model 293
Overview
When you use the SAS Activity–Based Management Web Services Integration API to
import data, you must write XML that maps the structures and periodic data in a
database or XML file to the model database.
Create one XML import configuration for new structures. Create a different XML import
configuration to delete or update existing structures. Do not add, delete, and update
structures in the same XML import configuration.
For importing from an XML file, the configuration does not have to contain detailed
table and column information. A sample XML import configuration can be as follows:
<OEImport Version="1.1" Type="XML" Action="Create" Model="Test" Filename="C:\temp\TestModel.xml"></OEImport>
The following elements and attributes specify the structures and periodic data to import
into a model. Elements and attributes are case sensitive. String comparisons are not case
sensitive.
Each XML can import into one model.
XML to Import a Model 295
XML Syntax
The following structure shows the elements used in the XML and their relationships to
each other. Position the mouse over a linked element to see if it is required or optional.
Click a link for a complete description of the element.
<OEImport attributes >
<StagingArea attribute >
<StagingTable attributes >
<Column attributes >
</StagingTable>
</StagingArea>
</OEImport>
Note: Although an element might be optional, if you include the element, there might be
required elements within it.
• Dimension
• DimensionOrder
You must define at least one dimension for each of these tables or the import will fail or
an empty table will be created.
When you use the SAS | ABM Web Services Integration API to import information into
a model, the XML import configuration can provide any StagingTable element as long
as model items exist before they are referenced. For example, before importing an
account, the period, scenario, driver, and dimension members that the account references
must exist.
The DimensionOrder table is required when you create a model. When a model is
created, it uses the information in the DimensionOrder table to determine which
dimensions define the hierarchies in each module. If you are not creating a model, this
table is ignored.
A StagingArea element can have one or more StagingTable elements. If there is more
than one StagingTable element, each one must have a different value for the TableName
attribute.
You can import Column elements and DimensionSignature elements from different
source database tables; for example, you can import some accounts from one table and
other accounts from a different table.
If a model table requires either a reference or dimension signature, and if both are
supplied, then the dimension signature is used to identify an account.
Related Topics
Building a model by importing
Example XML to Import a Model
Sample XML
<PublishPeriodScenarios >
<ModelContext ModelFullName="peAPI" >
<PeriodScenario PeriodId="9" ScenarioId="1" Publish="true" />
</ModelContext>
</PublishPeriodScenarios>
<PublishPeriodScenarios >
<ModelContext ModelFullName="peAPI">
<PeriodScenario PeriodRef="2008 Q1" ScenarioRef="Actual" Publish="false" />
</ModelContext>
</PublishPeriodScenarios>
Overview
When you use the SAS Activity-Based Management Web Services Integration API to
publish period/scenario associations you must write XML to specify the associations to
be published.
Example XML to Publish Period/Scenario Associations
XML syntax
The following structure shows the elements used in the XML to publish period/scenario
associations and their relationships to each other. Position the mouse over a linked
element to see if it is required or optional. Click a link for a complete description of the
element.
Elements and attributes are case sensitive. String comparisons are not case sensitive.
<PublishPeriodScenarios >
<ModelContext attributes>
<PeriodScenario attributes>
</ModelContext>
</ModelContext>
</PublishPeriodScenarios>
Overview
When you use the SAS Activity-Based Management Web Services Integration API to
publish a model to SAS Strategy Management, you must write an XML publish SAS
Strategy Management metrics configuration that specifies login information for the SAS
Strategy Management server.
String comparisons are not case sensitive.
<OROSCOMMAND>
<MODELCONTEXT attributes />
306 Chapter 19 • XML Passed to the API
Note: Although an element might be optional, if you include the element, there might be
required elements within it.
Password Required String Plain text password for the SAS Strategy
Management user
Overview
When you use the SAS Activity-Based Management Web Services Integration API to
validate a model, you must write an XML validate model configuration that specifies
what you want to validate.
String comparisons are not case sensitive.
XML to Validate a Model 307
Note: Although an element might be optional, if you include the element, there might be
required elements within it.
Chapter 20
Easy API
Overview
Using Easy API, you can do in batch many of the same operations that you can do inside
SAS Activity-Based Management. With Easy API, you can
• Import and export model data
• Calculate a model
• Generate a cube
• Export report data
• Copy model data from one period/scenario to another
• Import and export cube configurations
In addition, you can use Easy API to run SAS stored processes, an external SAS
Enterprise Guide project, or any other executable that you want to invoke. So, for
example, you can use Easy API to export model data, invoke a SAS stored process to
update the exported data, and finally import the updated data back into your model.
Operations are run in the order specified in your EasyAPI.txt file. Whatever operations
you perform, Easy API synchronizes them so that the next operation to run does not
310 Chapter 20 • Easy API
begin until the previous one has finished. For example, a SAS program to update
exported tables does not run until the tables have been exported.
Invoking Easy API to perform a SAS Activity-Based Management operation involves
three steps:
1. “Create an XML File” on page 310
The XML file describes the operation to be performed.
2. “Save Easy API Commands in a Text File” on page 311
Easy API commands invoke SAS Activity-Based Management and pass an XML file
to tell it what to do.
3. “Invoke Easy API” on page 312
Easy API uses the text file to run its commands.
Because Easy API uses exactly the same XML to invoke SAS Activity-Based
Management that SAS Activity-Based Management itself uses internally, the easiest way
for you to create the XML that you need to run Easy API is to ask SAS Activity-Based
Management to create it.
To ask SAS Activity-Based Management to create XML:
1. Inside SAS Activity-Based Management, select Tools ð User Options.
2. Click the Easy API Configuration tab.
3. Select Save operation xml in directory path.
4. Specify the directory path where the XML will be saved.
Now, when you perform an operation inside SAS Activity-Based Management, the
XML for that operation is saved in a file in the directory that you specified.
You can modify the XML file to suit your purposes. For example, you might modify the
XML file shown here to generate different periods for the same model or to generate the
same periods for a different model.
Using Easy API 311
For information on the XML files, see "Using the API" in the SAS Activity-Based
Management Data Administration Guide available from the Help menu or at http://
support.sas.com/documentation/onlinedoc/abm/.
To issue an Easy API command, put it in a text file named EasyAPI.txt residing in the
following directory:
<installation directory>SASActivityBasedManagementClient\7.2\EasyAPI\
For example: C:\Program Files\SASHome\SASActivityBasedManagementClient\7.2\EasyAPI\
Easy API can e-mail you the results of its operation. To receive an e-mail with operation
results:
Example of Using Easy API 313
Notes:
• Log files named EasyAPI.log or CutomEasyAPI.log are created in the Easy API
Installation folder. You can also access the Easy API operations log in the Windows
Event Viewer.
• You can also invoke Easy API by running EasyAPI.exe, which is installed in
<installation directory>SASActivityBasedManagementClient
\7.2\EasyAPI\.
• By supplying a path argument to EasyAPI.exe, you can tell it to use a different txt
file for Easy API commands, for example, EasyAPI.exe "c:\MyPath
\EasyAPI2.txt". If you don't supply a path argument, then Easy API uses
EasyAPI.txt in its installation directory.
• You can use the Microsoft Windows Scheduled Tasks Wizard to schedule
EasyAPI.exe to run automatically at selected intervals.
• In the EasyAPI.txt file, you can either store your password in clear text or you can
encrypt it using EncryptPassword.exe located at <installation directory>
\SASActivityBasedManagementClient\7.2\EasyAPI\.
EncryptPassword.exe produces an encrypted string that you can paste into
EasyAPI.txt. Easy API then decrypts the password before performing Easy API
operations.
Overview
This section presents an example of using Easy API to automate performing the
following tasks:
1. Export the tables for a particular period
2. Run a SAS job to update the tables
3. Re-import the updated tables back into the model
4. Calculate the model
5. Export report data
6. Generate a SAS Enterprise Guide report
314 Chapter 20 • Easy API
Notice in the following picture of a sample model that the cost is $0 for January
activities because the model hasn't been updated with data for the month. So, in this
example, we export January tables, update them, and re-import them back into the model
for calculation. The example shows how to automate all of these tasks using Easy API.
Export Tables
Now we are ready to export the January tables. We don't show the export in any detail.
Note, however, that the export has completed with no errors. It is important that you can
successfully do inside SAS Activity-Based Management whatever task it is that you
want to automate in batch with Easy API. Because Easy API calls SAS Activity-Based
Management to perform tasks, if you can't perform the task inside SAS Activity-Based
Management, then you won't be able to perform the same task outside SAS Activity-
Based Management using Easy API.
316 Chapter 20 • Easy API
Because the export was successful, it produced the SAS tables shown in the following
picture. Although this example shows SAS tables, you can use Easy API to automate
exporting any type of database tables that you want.
Notice the parameter that calls for exporting the January table. If you want to export the
February table next when the export task is performed in batch using Easy API, then you
can modify this XML to specify February instead.
Note: Suppose the calculation produces XML like the following which uses IDs.
<OROSCOMMAND Version="2.0">
<MODELCONTEXT ModelId="1242">
<PeriodScenario PeriodId="103" ScenarioId="1"/>
Example of Using Easy API 323
</MODELCONTEXT>
<COMMANDPARAMS MessageLimit="50">
<CostFlow SeqDriverLimit="-1" Force="1" DisableDriverRules="0"/>
</COMMANDPARAMS>
</OROSCOMMAND>
Note: Instead of specifying a period to calculate, you can select all periods by
specifying PeriodID="0".
You can also see that the two lines following this command have been deleted because
they are not needed.
326 Chapter 20 • Easy API
Easy API synchronizes all the operations so that one operation does not begin until the
operation before it has completed. So, for example, the program to update exported
tables is not launched until the export has completed. And the operation to re-import the
updated tables does not begin until the update operation has completed.
Easy API can e-mail you the results of its operations. To receive an e-mail with
operation results:
1. Inside SAS Activity-Based Management, select Tools ð User Options.
2. Click the Easy API Configuration tab.
3. Specify an SMTP server for sending the mail.
4. Specify an Email Id for successful operation.
5. Specify an Email Id for failure of operation.
Notes:
• You can also invoke Easy API by running EasyAPI.exe, which is installed in
<installation directory>SASActivityBasedManagementClient
\7.2\EasyAPI\
• By supplying a path argument to EasyAPI.exe, you can tell it to use a different txt
file for Easy API commands, for example, EasyAPI.exe "c:\MyPath
\EasyAPI2.txt". If you don't supply a path argument, then Easy API uses
EasyAPI.txt in its installation directory.
• You can use the Microsoft Windows Scheduled Tasks Wizard to schedule
EasyAPI.exe to run automatically at selected intervals.
327
Part 6
Public Views
Chapter 21
Public Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
Chapter 22
Legacy Public Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
328
329
Chapter 21
Public Views
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
PublicModel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
PublicModelStatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
PublicPeriod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
PublicScenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
<modelRef>_PV_Account . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
<modelRef>_PV_Assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
<modelRef>_PV_AssignmentExt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
<modelRef>_PV_Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
<modelRef>_PV_AttributeValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
<modelRef>_PV_Dimension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
<modelRef>_PV_DimMember . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
<modelRef>_PV_Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
<modelRef>_PV_EnteredCE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
<modelRef>_PD_<DimRef> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
<modelRef>_PD_CostElement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
<modelRef>_PD_Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
<modelRef>_PD_Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
<modelRef>_PD_Period . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
<modelRef>_PD_Scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
<modelRef>_PD_YesNo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
<modelRef>_PF_MSC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
<modelRef>_PF_RC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
<modelRef>_PF_SSC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
<modelRef>_PF_<cubeConfigRef> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
330 Chapter 21 • Public Views
Overview
SAS Activity-Based Management creates public views for each model in the database.
As an example, using SAS Enterprise Guide, expand Servers ð SASApp ð Libraries
ð ABM Library. You can see a list of the public views. The following picture shows
opening the Assignment view for the ICMB model. The table name is
ICMB_PV_ASSIGNMENT because ICMB is the model reference.
To open the public views using Microsoft SQL Server Enterprise Manager, open the
Databases folder and expand the ABM Models database. Under ABM Models, double-
click the Views icon to display the database views for the various models in the right
pane. Right-click the PublicModel view and select Open View ð Return all rows to
display the table view that maps a model ID to a model name.
Listed below are the four non-model-specific views followed by the model-specific
views. Notice that some of these views are automatically created when the model is
created, while others are created after you calculate the model.
Non-model-specific view tables:
• “PublicModel ” on page 332
• “PublicModelStatus ” on page 333
• “PublicPeriod ” on page 334
• “PublicScenario ” on page 334
Model-specific view tables created when the model is created:
• “<modelRef>_PV_Assignment ” on page 338
• “<modelRef>_PV_AssignmentExt ” on page 340
• “<modelRef>_PV_Attribute” on page 341
• “<modelRef>_PV_AttributeValue ” on page 342
• “<modelRef>_PV_Dimension ” on page 343
• “<modelRef>_PV_DimMember ” on page 343
• “<modelRef>_PV_Driver ” on page 344
• “<modelRef>_PV_EnteredCE ” on page 345
Model-specific view tables created by calculating the model and selecting Calculate
Costs:
• “<modelRef>_PD_<DimRef> ” on page 346
Overview 331
M<modelID>_PublicAccount <modelRef>_PV_Account
M<modelID>_PublicAssignment <modelRef>_PV_Assignment
M<modelID>_PublicAssignmentExt <modelRef>_PV_AssignmentExt
M<modelID>_PublicAttributeValue <modelRef>_PV_AttributeValue
M<modelID>_PublicDimension <modelRef>_PV_Dimension
M<modelID>_PublicDimMember <modelRef>_PV_DimMember
M<modelID>_PublicDriver <modelRef>_PV_Driver
M<modelID>_PublicEnteredCE <modelRef>_PV_EnteredCE
M<modelID>_PublicDim<dimID> <modelRef>_PD_<dimRef>
M<modelID>_PublicDimCostElement <modelRef>_PD_CostElement
M<modelID>_PublicDimDriver <modelRef>_PD_Driver
M<modelID>_PublicDimModule <modelRef>_PD_Module
332 Chapter 21 • Public Views
M<modelID>_PublicDimPeriod <modelRef>_PD_Period
M<modelID>_PublicDimScenario <modelRef>_PD_Scenario
M<modelID>_PublicDimYesNo <modelRef>_PD_YesNo
M<modelID>_PublicFactMSC <modelRef>_PF_MSC
M<modelID>_PublicFactRC <modelRef>_PF_RC
M<modelID>_PublicFactSSC <modelRef>_PF_SSC
PublicModel
Table 21.1 Model View
Field
Field Name Type Join Field Properties Reference Model View Columns
PublicModelStatus
Table 21.2 ModelStatus View
Field
Field Name Type Join Field Properties Reference Model View Columns
PublicPeriod
Table 21.3 Period View
Field
Field Name Type Join Field Properties Reference Model View Columns
PublicScenario
Table 21.4 Scenario View
Field
Field Name Type Join Field Properties Reference Model View Columns
Field
Field Name Type Join Field Properties Reference Model View Columns
<modelRef>_PV_Account
Table 21.5 PublicAccount View
Field
Field Name Type Join Field Properties Reference Model View Columns
Field
Field Name Type Join Field Properties Reference Model View Columns
Field
Field Name Type Join Field Properties Reference Model View Columns
<modelRef>_PV_Assignment
Table 21.6 PublicAssignment View
Field
Field Name Type Join Field Properties Reference Model View Columns
Field
Field Name Type Join Field Properties Reference Model View Columns
<modelRef>_PV_AssignmentExt
Table 21.7 PublicAssignmentExt View
Field
Field Name Type Join Field Properties Reference Model View Columns
Field
Field Name Type Join Field Properties Reference Model View Columns
<modelRef>_PV_Attribute
This view is new for attributes on a dimension member.
Field
Field Name Type Join Field Properties Reference Model View Columns
Field
Field Name Type Join Field Properties Reference Model View Columns
<modelRef>_PV_AttributeValue
Table 21.9 AttributeValue View
Field
Field Name Type Join Field Properties Reference Model View Columns
<modelRef>_PV_Dimension
Table 21.10 Dimension View
Field
Field Name Type Join Field Properties Reference Model View Columns
<modelRef>_PV_DimMember
Table 21.11 DimMember View
Field
Field Name Type Join Field Properties Reference Model View Columns
Field
Field Name Type Join Field Properties Reference Model View Columns
DisplayOrder float
<modelRef>_PV_Driver
Table 21.12 Driver View
Field
Field Name Type Join Field Properties Reference Model View Columns
<modelRef>_PV_EnteredCE
Table 21.13 EnteredCE View
Field
Field Name Type Join Field Properties Reference Model View Columns
<modelRef>_PD_<DimRef>
Table 21.14 <modelRef>_PD_<DimRef> View
Field
Field Name Type Join Field Properties Reference Model View Columns
DisplayOrder float
<modelRef>_PD_CostElement
Table 21.15 DimCostElement View
Field
Field Name Type Join Field Properties Reference Model View Columns
Field
Field Name Type Join Field Properties Reference Model View Columns
<modelRef>_PD_Driver
Table 21.16 DimDriver View
Field
Field Name Type Join Field Properties Reference Model View Columns
<modelRef>_PD_Module
Table 21.17 DimModule View
Field
Field Name Type Join Field Properties Reference Model View Columns
<modelRef>_PD_Period
Table 21.18 DimPeriod View
Field
Field Name Type Join Field Properties Reference Model View Columns
......
<modelRef>_PD_Scenario
Table 21.19 DimScenario View
Field
Field Name Type Join Field Properties Reference Model View Columns
......
<modelRef>_PD_YesNo
Table 21.20 DimYesNo View
Field
Field Name Type Join Field Properties Reference Model View Columns
<modelRef>_PF_MSC
This public view is created when a fact table is created for a 6.3–compatible multi-stage
contribution cube.
Field
Field Name Type Join Field Properties Reference Model View Columns
Field
Field Name Type Join Field Properties Reference Model View Columns
<modelRef>_PF_RC
This public view is created when a fact table is created for a resource contribution cube.
Field
Field Name Type Join Field Properties Reference Model View Columns
Field
Field Name Type Join Field Properties Reference Model View Columns
<modelRef>_PF_SSC
This public view is created when a fact table is created for a single–stage contribution
cube.
Field
Field Name Type Join Field Properties Reference Model View Columns
Cost float
DriverQuantityCalculated float
Revenue_I float
OutputQuantity_I float
SoldQuantity_I float
AllPeriodID Number
AllScenarioID Number
All_Type Number
All_ReciprocalID Number
Src_ModuleID Number
Dst_ModuleId Number
<modelRef>_PF_<cubeConfigRef>
This is a public view of the corresponding table named <modelID>_C<cubeConfigID>.
This view is created when a fact table is created for a custom multi-stage contribution
cube.
Field
Field Name Type Join Field Properties Reference Model View Columns
PeriodID Number
ScenarioID Number
Output Number
Revenue Number
SoldQuantity Number
UsedTotalDriverQuantity Number
UserOutputQuantity Number
TotalDriverQuantity Number
354 Chapter 21 • Public Views
355
Chapter 22
Legacy Public Views
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
M<modelID>_PublicAccount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
M<modelID>_PublicAssignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
M<modelID>_PublicAssignmentExt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
M<modelID>_PublicAttributeValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
M<modelID>_PublicDim<dimID> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
M<modelID>_PublicDimCostElement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
M<modelID>_PublicDimDriver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
M<modelID>_PublicDimension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
M<modelID>_PublicDimMember . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
M<modelID>_PublicDimModule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
M<modelID>_PublicDimPeriod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
M<modelID>_PublicDimScenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
M<modelID>_PublicDimYesNo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
M<modelID>_PublicDriver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
M<modelID>_PublicEnteredCE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
M<modelID>_PublicFactMSC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
M<modelID>_PublicFactRC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
M<modelID>_PublicFactSSC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
PublicModel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
PublicModelStatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
PublicPeriod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
PublicScenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
Overview
SAS Activity-Based Management 7.2 provides two sets of public views:
356 Chapter 22 • Legacy Public Views
• Public views that use model References and dimension References, which don’t
change when a model is exported and subsequently re-imported, rather than model
IDs and dimension IDs, which can change when a model is exported and
subsequently re-imported. For information on these public views, see Chapter 21,
“Public Views,” on page 329.
• Legacy public views, which use model IDs and dimension IDs as documented in this
chapter, are generated so as to support users who have implemented processes that
assume this format. Legacy public views will no longer be generated after SAS
Activity-Based Management 7.2.
The following table shows the name of legacy public views and the name of the
corresponding public view that uses short references rather than IDs. The legacy public
views are supported for SAS Activity-Based Management 7.2, but they will not be
supported in subsequent releases.
M<modelID>_PublicAccount <modelRef>_PV_Account
M<modelID>_PublicAssignment <modelRef>_PV_Assignment
M<modelID>_PublicAssignmentExt <modelRef>_PV_AssignmentExt
M<modelID>_PublicAttributeValue <modelRef>_PV_AttributeValue
M<modelID>_PublicDimension <modelRef>_PV_Dimension
M<modelID>_PublicDimMember <modelRef>_PV_DimMember
M<modelID>_PublicDriver <modelRef>_PV_Driver
M<modelID>_PublicEnteredCE <modelRef>_PV_EnteredCE
M<modelID>_PublicDim<dimID> <modelRef>_PD_<dimRef>
M<modelID>_PublicDimCostElement <modelRef>_PD_CostElement
M<modelID>_PublicDimDriver <modelRef>_PD_Driver
M<modelID>_PublicDimModule <modelRef>_PD_Module
M<modelID>_PublicDimPeriod <modelRef>_PD_Period
M<modelID>_PublicDimScenario <modelRef>_PD_Scenario
M<modelID>_PublicDimYesNo <modelRef>_PD_YesNo
M<modelID>_PublicFactMSC <modelRef>_PF_MSC
M<modelID>_PublicFactRC <modelRef>_PF_RC
M<modelID>_PublicFactSSC <modelRef>_PF_SSC
M<modelID>_PublicAccount
Table 22.1 PublicAccount View
Field
Field Name Type Join Field Properties Reference Model View Columns
Field
Field Name Type Join Field Properties Reference Model View Columns
Field
Field Name Type Join Field Properties Reference Model View Columns
M<modelID>_PublicAssignment
Table 22.2 PublicAssignment View
Field
Field Name Type Join Field Properties Reference Model View Columns
Field
Field Name Type Join Field Properties Reference Model View Columns
M<modelID>_PublicAssignmentExt
Table 22.3 PublicAssignmentExt View
Field
Field Name Type Join Field Properties Reference Model View Columns
Field
Field Name Type Join Field Properties Reference Model View Columns
M<modelID>_PublicAttributeValue
Table 22.4 AttributeValue View
Field
Field Name Type Join Field Properties Reference Model View Columns
M<modelID>_PublicDim<dimID>
Table 22.5 Dimxxxx View
Field
Field Name Type Join Field Properties Reference Model View Columns
DisplayOrder float
M<modelID>_PublicDimension 363
M<modelID>_PublicDimCostElement
Table 22.6 DimCostElement View
Field
Field Name Type Join Field Properties Reference Model View Columns
M<modelID>_PublicDimDriver
Table 22.7 DimDriver View
Field
Field Name Type Join Field Properties Reference Model View Columns
M<modelID>_PublicDimension
Table 22.8 Dimension View
Field
Field Name Type Join Field Properties Reference Model View Columns
M<modelID>_PublicDimMember
Table 22.9 DimMember View
Field
Field Name Type Join Field Properties Reference Model View Columns
DisplayOrder float
M<modelID>_PublicDimModule
Table 22.10 DimModule View
Field
Field Name Type Join Field Properties Reference Model View Columns
M<modelID>_PublicDimPeriod
Table 22.11 DimPeriod View
Field
Field Name Type Join Field Properties Reference Model View Columns
......
M<modelID>_PublicDimScenario
Table 22.12 DimScenario View
Field
Field Name Type Join Field Properties Reference Model View Columns
......
M<modelID>_PublicDimYesNo
Table 22.13 DimYesNo View
Field
Field Name Type Join Field Properties Reference Model View Columns
M<modelID>_PublicDriver
Table 22.14 Driver View
Field
Field Name Type Join Field Properties Reference Model View Columns
M<modelID>_PublicEnteredCE
Table 22.15 EnteredCE View
Field
Field Name Type Join Field Properties Reference Model View Columns
M<modelID>_PublicFactMSC
Table 22.16 FactMSC View
Field
Field Name Type Join Field Properties Reference Model View Columns
M<modelID>_PublicFactRC
Table 22.17 FactRC View
Field
Field Name Type Join Field Properties Reference Model View Columns
Field
Field Name Type Join Field Properties Reference Model View Columns
M<modelID>_PublicFactSSC
Table 22.18 FactSSC View
Field
Field Name Type Join Field Properties Reference Model View Columns
Cost float
DriverQuantityCalculated float
Revenue_I float
OutputQuantity_I float
SoldQuantity_I float
AllPeriodId Number
AllScenarioId Number
All_Type Number
All_ReciprocalId Number
Src_ModuleId Number
Dst_ModuleId Number
PublicModel
Table 22.19 Model View
Field
Field Name Type Join Field Properties Reference Model View Columns
PublicModelStatus
Table 22.20 ModelStatus View
Field
Field Name Type Join Field Properties Reference Model View Columns
PublicPeriod
Table 22.21 Period View
Field
Field Name Type Join Field Properties Reference Model View Columns
Field
Field Name Type Join Field Properties Reference Model View Columns
PublicScenario
Table 22.22 Scenario View
Field
Field Name Type Join Field Properties Reference Model View Columns
Part 7
Information Maps
Chapter 23
Information Maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
Chapter 24
Legacy Information Maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
374
375
Chapter 23
Information Maps
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
Account IMAP Schema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
Assignment IMAP Schema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
Overview
SAS Activity-Based Management provides two types of information maps: Account
information maps and Assignment information maps. The tables in this section describe
the schema for the Account information maps and Assignment information maps.
The following table shows the name of legacy information maps and the name of the
corresponding information map that uses short references rather than IDs. The legacy
information maps are supported for SAS Activity-Based Management 7.2, but they will
not be supported in subsequent releases.
M<modelID>_<modelName>_AccountMap <modelRef>_AccountMap
M<modelID>_<modelName>_AssignmentMap <modelRef>_AssignmentMap
Properties Reference
The specific corresponding property. See "Properties List Alphabetically" in the SAS
Activity Based Management: User's Guide.
Model View Columns
The specific property that is displayed in the model column view.
Field Name Field Join Field Properties Reference Model View Columns
Type
Field Name Field Join Field Properties Reference Model View Columns
Type
Field Name Field Join Field Properties Reference Model View Columns
Type
Field Name Field Join Field Properties Reference Model View Columns
Type
Field Name Field Join Field Properties Reference Model View Columns
Type
Field Name Field Join Field Properties Reference Model View Columns
Type
Field Name Field Join Field Properties Reference Model View Columns
Type
Field Name Field Join Field Properties Reference Model View Columns
Type
Field Name Field Join Field Properties Reference Model View Columns
Type
Field Name Field Join Field Properties Reference Model View Columns
Type
Chapter 24
Legacy Information Maps
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
Account IMAP Schema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
Assignment IMAP Schema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
Overview
SAS Activity-Based Management 7.2 provides two sets of information maps:
• Information maps that use dimension References, which don’t change when a model
is exported and subsequently re-imported, rather than dimension IDs, which can
change when a model is exported and subsequently re-imported. For information on
these information maps, see Chapter 23, “Information Maps,” on page 375.
• Legacy information maps, which use dimension IDs as documented in this chapter,
are generated so as to support users who have implemented processes that assume
this format. Legacy information maps will no longer be generated after SAS
Activity-Based Management 7.2.
The following table shows the name of legacy information maps and the name of the
corresponding information map that uses short references rather than IDs. The legacy
information maps are supported for SAS Activity-Based Management 7.2, but they will
not be supported in subsequent releases.
M<modelID>_<modelName>_AccountMap <modelRef>_AccountMap
M<modelID>_<modelName>_AssignmentMap <modelRef>_AssignmentMap
Field Type
The definition of each field type (numeric or text field).
Join Field
The specific ID fields to join between tables. These fields define keys that can be
used to link multiple tables for reporting. This column identifies the corresponding
join field for this information map.
Properties Reference
The specific corresponding property. See "Properties List Alphabetically" in the SAS
Activity Based Management: User's Guide.
Model View Columns
The specific property that is displayed in the model column view.
Field Name Field Join Field Properties Reference Model View Columns
Type
Field Name Field Join Field Properties Reference Model View Columns
Type
Field Name Field Join Field Properties Reference Model View Columns
Type
Field Name Field Join Field Properties Reference Model View Columns
Type
Field Name Field Join Field Properties Reference Model View Columns
Type
Field Name Field Join Field Properties Reference Model View Columns
Type
Field Name Field Join Field Properties Reference Model View Columns
Type
Field Name Field Join Field Properties Reference Model View Columns
Type
Field Name Field Join Field Properties Reference Model View Columns
Type
Field Name Field Join Field Properties Reference Model View Columns
Type
Part 8
Chapter 25
Using Information Maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
Chapter 26
SAS Profitability Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427
Chapter 27
SAS Strategy Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443
Chapter 28
SAS Enterprise Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467
396
397
Chapter 25
Using Information Maps
4. Under Create information maps for reporting, select the type of map(s) that you
want to create.
• Account Map: This option creates an information map from model-specific
public database views. This information map contains account-related data that
can be used by SAS Web Report Studio to create account-based reports.
398 Chapter 25 • Using Information Maps
See Also
• “Register Metadata / Metadata Server Options” on page 423
• “Work with Information maps in SAS Information Map Studio” on page 399
Work with Information maps in SAS Information Map Studio 399
• “Work with Information Maps in SAS Web Report Studio” on page 401
• “Use SAS Management Console to Configure for Information Maps” on page 405
• “Change the SAS Metadata Server Connection” on page 410
d. Select the account map or assignment map that you created in SAS Activity-
Based Management. For example: M1079_ParcelExpress_AccountMap. The
contents of the information map display.
400 Chapter 25 • Using Information Maps
3. In SAS Information Map Studio, review the table and field contents of the selected
map by opening the account map and assignment map folders.
Measure values (numerical properties from SAS Activity-Based Management) are
displayed with ruler icons. Dimensional values (text content from SAS Activity-
Based Management) are displayed with the sheets icons.
Each public source table in SAS Activity-Based Management has both numeric
properties and text content, which can ultimately be used in a SAS Web Report
Studio report.
4. In SAS Information Map Studio, click the Relationships tab to review the
relationship map, which defines how all of the tables are joined into a single
information map. All of the relationships are predefined when you register the
metadata from SAS Activity-Based Management.
• In the account map, there are 16 different tables that are joined together to define
the single information map. You should not customize these joins.
• In the assignment map, the process view in SAS Information Map Studio is
simpler because all of the necessary joins have been defined and implemented in
SAS Activity-Based Management to provide a single contribution table for SAS
Information Map Studio to support assignment analysis.
Note: The relationships for the account maps and assignment maps that you create
using SAS Activity-Based Management are defined based on the SAS Activity-
Based Management model schema and logic. Relationships should not be modified
in any way. If you modify these relationships in SAS Information Map Studio, your
SAS Web Report Studio reports might return unexpected results.
For information about creating custom information maps based on SAS Activity-Based
Management content, see the SAS Information Map Studio documentation at http://
support.sas.com/documentation/onlinedoc/ims/index.html.
Work with Information Maps in SAS Web Report Studio 401
2. Select File ð New Using Wizard to launch the SAS Web Report Studio wizard.
This wizard will walk you through the basic definition process for building a simple
report from your SAS Activity-Based Management information maps.
4. Select the information map that you want to use to build your report. Each SAS
Activity-Based Management models information map is noted by the model ID and
the model name. A simple report can be based on a single information map.
Note: When you create information maps in SAS Activity-Based Management, the
Register Metadata Results dialog box notes the unique names of the information
maps that are created. For example, notice the account information map
(M1006_ParcelExpressTutorial_AccountMap) and the assignment information
map (M1006_ParcelExpressTutorial_AssignmentMap) in the following dialog
box.
Click Next.
5. Select the fields that you want to display on the report from the Available data items
box. Numeric properties are displayed with a ruler icon and text content is displayed
with the sheets icon.
Note: The order in which you select the data items determines how the fields are
presented in the final report. When you select your data items, consider your
grouping needs for subtotals and page breaks and select the data items that you
want to display in groups accordingly.
Work with Information Maps in SAS Web Report Studio 403
Click Next.
6. Specify how you want the data to display and optionally define filters.
Click Next.
7. Create group breaks for data items in the report. Creating group breaks enhances the
readability of the final report.
404 Chapter 25 • Using Information Maps
Click Next.
8. Specify whether you want you report to display as a Table or as a Graph.
Click Next.
9. Define the header and the footer of the report and select Display date that query was
last refreshed if you want to display a refresh date on the query.
Use SAS Management Console to Configure for Information Maps 405
Click Finish.
10. Click the View tab to view the final report.
11. Save and export the final report to make it available for other users.
The following steps describe in more detail using SAS Management Console to
configure the information map options.
1. Make sure that the default Information Maps folder exists in the Metadata
Server (The folder is created during installation of SAS Activity-Based
Management).
2. The user (sesadmin in this example) or group who will be generating information
maps should have following permissions for the Information Maps folder.
Note: To set the permissions, right-click the Information Maps folder in SAS
Management Console and select Properties. Then click the Authorization tab.
Use SAS Management Console to Configure for Information Maps 407
An error results if the user who generates information maps doesn't have permissions
on the target folder.
3. The user who creates information maps should belong to ABMGroup.
To add the user to ABMGroup:
a. Click User Manager (in the Plug-ins tab of SAS Management Console).
b. Right click the user (sesadmin in this example) and select Properties.
c. Click the Groups and Roles tab.
d. Double-click ABMGroup.
408 Chapter 25 • Using Information Maps
c. On the User Mapping tab, select OEModels to permit access to that database
and select the db_owner role.
412 Chapter 25 • Using Information Maps
d. After completing all of the steps of the New Login Wizard, ensure that the
db_owner user is listed with the proper permissions.
2. Define your SAS Activity-Based Management database server in the metadata on the
SAS Metadata Server:
a. Log in to SAS Management Console as the sasadm user (unrestricted user) and
right-click Server Manager in the tree view.
d. In the Name field, type ABM SQL DB Server - 001 to name your SAS Activity-
Based Management database server and click Next.
e. Specify the information concerning your database as shown in the picture below,
and then click Next.
414 Chapter 25 • Using Information Maps
3. Define a new database library in the metadata on the SAS Metadata Server:
Note: On installation, SAS Activity-Based Management creates an ODBC database
library named ABM Library. Because you cannot change the engine from ODBC
to OLE DB, you should delete this library and create a new library with the same
name but using OLE DB instead of ODBC.
Change the SAS Metadata Server Connection 415
a. Log in to SAS Management Console as the sasadm user (unrestricted user) and
right-click SAS Libraries under Data Library Manager.
Note: The Location field specifies the folder in the Folders tab that SAS
Management Console uses to store information about your library.
f. In the Libref field, type ABMLib as the libref of your database library and click
Next.
Change the SAS Metadata Server Connection 417
g. Select the Database Server, ABM SQL DB Server - 001, that you defined in Step
2 and click Next.
h. Review your settings and click Finish to create the new database library.
At this point, you must have available a metadata user who has access to the SAS
Activity-Based Management database (Microsoft SQL Server in this case). The
following steps use SAS Demo User with the ID, sasdemo, as a working
example. SAS Demo User is used by the SAS Activity-Based Management client
application to access the SAS Metadata Server, and SAS Demo User must now
also access the SAS Activity-Based Management database (Microsoft SQL
Server) -- this means that SAS Demo User requires two login accounts.
Note: You should not modify the SAS Demo User unless you are certain that
you will not need it for other uses. The following instructions recommend
changes that alter SAS Demo User out of its default state.
4. Add the Microsoft SQL Server login information to SAS Demo User:
a. Log in to SAS Management Console as the sasadm user (unrestricted user) and
selectUser Manager in the tree view.
418 Chapter 25 • Using Information Maps
• Review the two login accounts for SAS Demo User and click OK to close the
SAS Demo User Properties dialog box.
Change the SAS Metadata Server Connection 419
c. Select Properties to open the Default ACT Properties dialog box and do the
following:
• Click the Permission Pattern tab and add SAS Demo User to the Users and
Groups list.
• Select the Grant check box next to the ReadMetadata and WriteMetadata
permissions items.
• Click OK to close the Default ACT Properties dialog box.
420 Chapter 25 • Using Information Maps
d. In the tree view of the Plug-ins tab, right-click the ABM Library database
library (under Data Library Manager ð Libraries) that you created in Step 3D
and select Properties.
Then click Next. You should now be connected to the SAS Activity-Based
Management Microsoft SQL Server database.
c. Select a table, such as CurrencyDefinition, from the Select Tables list and click
Next .
d. Click Finish. You should see a new entry named CurrencyDefinition in the
database library, which indicates that the database library is valid and in working
condition.
Register Metadata / Metadata Server Options 423
For more information on SAS Information Maps and on SAS Profitability Management,
see the chapter on “Working with Other SAS Programs” in the SAS Activity-Based
Management Data Administration Guide available from the Help menu and also from
http://support.sas.com/documentation/onlinedoc/abm/.
Register Metadata
Chapter 26
SAS Profitability Management
Note: The SAS Activity-Based Management user who publishes behaviors must
have write access to the SAS Profitability Management input library to which the
behaviors are written. The drop-down list displays for selection only those
libraries to which the user has access.
Note: The SAS Activity-Based Management user who publishes behaviors must
also have write access to the library's directory on the machine where the
behaviors are published. The following picture shows a SAS Profitabiliity
Management input library named PMInput whose machine directory is C:
\PMInput. In this example, the SAS Activity-Based Management user must have
write access to the C:\PMInput directory.
Use Account Data with SAS Profitability Management 429
4. Click OK.
Publishing behaviors means that they are written to a behavior table for use with SAS
Profitability Management. A behavior table contains source items with a transaction
cost. A behavior table has the following required columns:
4 Total Value Numeric 8 The total source amount that will be spread
5 Unit Value Numeric 8 The unit cost for each transaction with this source
6. Click Search.
Model name
Select the model whose accounts you want to mark as behaviors.
Period/Scenario associations
Select the period/scenario associations for which you want to publish the data.
Behavior table name
Specify a name for the behavior table.
Option
Create table
Creates a behavior table. If a table with the same name exists, then the
operation quits with an error message, and the existing table is undisturbed.
Replace table
Replaces an existing table with the same name.
Append to table
Appends records to an existing table.
2. Map properties and attributes of the accounts being published to fields in the
resulting behavior table being created.
434 Chapter 26 • SAS Profitability Management
Id
is the identifying reference for the behavior
Name
is the name of the behavior
Period
defines the period for the costs
Unit value
is the unit cost for each transaction with this source. If you select a Unit value,
then you may not select a Total value.
Total value
is the total source amount that will be spread. If you select a Total value, then
you may not select a Unit value.
3. You can optionally set a condition that an account must satisfy to be published as a
behavior. This allows you to select a subset of all the accounts that have been
marked as behaviors.
Publish Behaviors to SAS Profitability Management 435
5. Specify the library Name and the Location of its metadata folder, and then click
Next.
Name
This is the text that appears in the navigation and display areas of SAS
Management Console, but is not the LIBREF for the library. The name can
contain up to 60 characters. It must be unique within the folder specified in the
Location field. It must also be unique on all servers where the library is assigned.
438 Chapter 26 • SAS Profitability Management
Folder
It is strongly recommended that you choose a unique folder for each library. If
two libraries share the same metadata folder and both libraries contain same-
named items, then the metadata folder will contain incorrect information about
one of those items.
Note: In order to specify the Location of the library's metadata folder, you
should have already created the folder. To create the library's metadata folder,
do the following:
1. Click the Folders tab.
2. Right-click and select New Folder.
3. Name the folder, and then click Finish.
7. Specify a Libref for the library and the Path of the machine directory where the
library's data is stored, and then click Next.
Create a SAS Profitability Management Input Library 439
A SAS Profitability Management behavior table contains source items with their
transaction costs. A behavior table has the following required columns:
4 Total Value Numeric 8 The total source amount that will be spread
5 Unit Value Numeric 8 The unit cost for each transaction with this source
Chapter 27
SAS Strategy Management
displayed in the SAS Information Delivery Portal (dashboard, aggregation view, and
table view portlets).
Integrating SAS Activity-Based Management with SAS Strategy Management provides
quick insight to issues and a path toward their resolution. Both solutions are
complimentary to almost any process or activity:
• Many measures that are used in SAS Strategy Management are financial in
perspective and include elements of profitability and/or cost.
• Many measures that are used in SAS Strategy Management are metrics that are used
as cost drivers in SAS Activity-Based Management.
• SAS Strategy Management identifies leading and lagging indicators of performance,
and SAS Activity-Based Management provides insight into the cause of the values of
these indicators.
• SAS Activity-Based Management provides the actionable detail behind the KPIs.
Calculating the costs of a SAS Activity-Based Management model provides a picture of
an organization's behavior. The model values (numeric properties and attributes) that
you specify as performance measures are calculated by SAS Activity-Based
Management, and they can then be provided or published to a SAS Strategy
Management scorecard. A collection of performance measures, or KPI elements,
comprises a SAS Strategy Management project. (Scorecards can be arranged in a
hierarchical tree by using the SAS Solutions Dimension Editor.)
Integration Procedure
Integrating with SAS Strategy Management is a four-step process:
1. “Select Performance Measures” on page 444
2. “Choose the Table Format for Publishing” on page 447
3. “Publish the Measures” on page 451
4. “Import Performance Measures into SAS Strategy Management” on page 451
Similarly, to create a record in the metric table for NONE, select the <No> roll-up
account and mark it as a performance measure, as shown for example in the following
picture:
446 Chapter 27 • SAS Strategy Management
Overview
Before publishing performance measures, choose options for the output tables. There are
two options for publishing model data to SAS Strategy Management:
• “Create a single metric table using the Publish Name column” on page 448
• “Create a metric table for each module type using the module's dimensions ” on page
449
1. Select Model ð Properties.
The Model Properties window opens.
2. Select the Performance Measures tab.
3. Select options for the output tables.
448 Chapter 27 • SAS Strategy Management
Note: Dimension names cannot contain blanks when used with SAS Strategy
Management because of an ODBC restriction.
Steps for Integrating with SAS Strategy Management 449
Create a metric table for each module type using the module's
dimensions
Selecting this option creates a different metric table for each module in the SAS
Activity-Based Management model. The metric table contains a dimension column
corresponding to each dimension in the module, with dimension members that are
created from the SAS Activity-Based Management dimension members for that module.
Use this option if you want to maintain the dimension detail of the SAS Activity-Based
Management metrics in the SAS Strategy Management scorecard.
The following picture shows sample hierarchy tables and metric tables that result from
choosing this option:
After doing post-processing to collapse the table on the CHNL (Channel) dimension, the
following table (containing a single dimension) is produced that can be used with SAS
Strategy Management:
You can notice in this example that the VALUE column contains the sum of the VALUE
column of the rows that are collapsed, as shown in the following picture:
Of course, in your post-processing you do not have to use the SUM function. You can
choose to collapse the rows in any way that you like.
Import Performance Measures into SAS Strategy Management 451
Procedure
To publish the performance measures:
1. Select Model ð Performance Measures.
The Performance Measures view opens.
2. Select Publish Performance Measures.
The Publish Performance Measures window opens for selecting a period/scenario to
publish.
3. Select a period/scenario association to publish, or select All to publish data for all
period/scenario associations.
Summary
After publishing the measures, log on to SAS Strategy Management to import the
measures
452 Chapter 27 • SAS Strategy Management
This section describes a simple example of importing a single performance measure into
SAS Strategy Management to create a minimal scorecard. This example assumes the
following performance measures have been set in SAS Activity-Based Management:
The following picture shows a performance measure of Cost being set on the 2nd Day
Guaranteed account in 2008/Actual.
And a performance measure of Cost is also set on the 2nd Day Guaranteed account in
2008/Plan.
The following picture shows the Performance Measure page for 2008/Actual. (The
Performance Measure page for 2008/Plan is not shown, but is similar.)
The following picture shows how to select the option to Create a single metric table for
importing into SAS Strategy Management when performance measures are published
from SAS Activity-Based Management. The picture also shows that columns in the table
are to be named as follows:
Import Performance Measures into SAS Strategy Management 453
The following picture shows the two tables that are created in the SAS Activity-Based
Management database when performance measures are published, given the assumptions
described earlier. The tables are automatically registered in metadata with the SAS
Metadata Server so that they are accessible by SAS Strategy Management.
Hierarchy table:
4. Select Scorecard Element Types and click New Scorecard Element Type.
8. Repeat the same procedure to create another metric attribute. That is, Select Metric
Attributes and click New Metric Attribute.
Name the new metric attribute Plan and click OK.
456 Chapter 27 • SAS Strategy Management
3. Select a folder for saving the project, and then click Next.
4. Name the project and select a time dimension, and then click Next.
Note: Your time dimension should be equivalent to the time dimension of your SAS
Activity-Based Management period dimension, which you can import into SAS
Strategy Management.
5. For the Associate a Template step, simply click Next. The project is associated with
the template that you just created.
Import Performance Measures into SAS Strategy Management 457
6. For the Import a Hierarchy step, select No, and then click Next. We are going to
import the SAS Activity-Based Management hierarchy table in another way.
3. Select New Hierarchy Import Configuration from the New import configuration
drop-down menu.
4. Name the hierarchy import configuration, and then click Select Source Data.
3. Select New Content Import Configuration from the New import configuration
drop-down menu.
Import Performance Measures into SAS Strategy Management 461
4. Name the content import configuration, and then click Select Source Data.
7. After the metadata has been read, click Map Element Type.
462 Chapter 27 • SAS Strategy Management
8. For Element Type, select the element type that you specified in creating the new
template. See “Create a New Template” on page 454.
Remember that DimCode is the name that we are assuming was entered for the
Dimension code in the model properties of our model. See “Choose the Table
Format for Publishing” on page 447.
2. Do the following:
a. Expand the project and select 2nd Day Guaranteed.
b. For Column selection, select All Metric Attributes to display Actual and Plan
together ( Select Actual or Plan to show only one.)
c. For Date, select any date between the Startdate and the Enddate.
Note: In selecting the date, you must select a day as well as a month and year.
d. Click Go.
Chapter 28
SAS Enterprise Guide
Overview
You can view SAS Activity-Based Management data using SAS Enterprise Guide. To
view the data you must first add the SAS Activity-Based Management Add-In for
Enterprise Guide.
Note: Because the SAS Activity-Based Management client runs as 32–bit, you can use
the Activity-Based Management Add-In for Enterprise Guide only on the 32–bit
version of SAS Enterprise Guide.
3. Click Browse and browse to the SAS Activity-Based Management Add-In for
Enterprise Guide (sas.abcm.EGPlugIn.dll). The .dll file for the add-in is installed
along with the SAS Activity-Based Management Client.
Add-In
sas.abcm.EGPlugIn.dll
Path
(installation directory)\SASHome\SASActivityBasedManagementClient
\7.2\bin
4. Click Open.
6. Click OK.
The data is written to the data set which you can now view and analyze with SAS
Enterprise Guide.
470 Chapter 28 • SAS Enterprise Guide
To circumvent this problem, try settiing the METAOUT option of your metadata library
to be DATA. To do so, do the following:
1. Open SAS Management Console connected to your SAS Metadata Server.
2. Click the Plug-ins tab.
3. Expand Data Library Manager.
4. Expand SAS Libraries.
5. Right-click the library in question and select Properties.
Set the METAOUT Option for the Metadata Library 471
AssignMode 2 METAOUT=DATA
Part 9
Chapter 29
PROC ABC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475
474
475
Chapter 29
PROC ABC
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476
Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477
PROC ABC Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478
Required Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478
ATTRIBUTE Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479
Required Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479
CALCULATE Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479
Required Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479
DIMENSION Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480
Required Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480
Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480
FACTGEN Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
Required Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482
LIST Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482
LOAD Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
Required Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
MODELVALIDATE Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484
QUERY Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484
Required Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484
Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
STAGE Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
Required Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
Rules Governing the ABC Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486
476 Chapter 29 • PROC ABC
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486
When Multiple Statements Define the Same Item the Last Statement Wins . . . . . 486
Only Those ATTRIBUTE, STAGE, and DIMENSION
Statements That Appear Before a FACTGEN Statement are
Considered as Input to That Specific FACTGEN Operation . . . . . . . . . . . . . . . 486
All Attributes, Stages and Dimensions Must Be Defined
Before They Are Referred to in a FACTGEN Statement . . . . . . . . . . . . . . . . . . 486
ATTRIBUTE, STAGE and DIMENSION Statements Can
Appear in Any Order Before a FACTGEN Statement . . . . . . . . . . . . . . . . . . . . 487
Multiple FACTGEN Statements Can Appear in One PROC ABC Statement . . . . 487
Sample Uses of the ABC Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487
Fact Table Generation for a Multi-Stage Contributions Cube . . . . . . . . . . . . . . . . 487
Fact Table Generation for a Resource Contributions Cube . . . . . . . . . . . . . . . . . . 488
Validate Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488
Report Table Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488
LIST Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489
LIST followed by LOAD and CALCULATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489
LIST Followed by LOAD and QUERY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489
LIST Fllowed by LOAD and QUERY, More Examples . . . . . . . . . . . . . . . . . . . . 490
Overview
Before SAS Activity-Based Management 6.4, the implementation of calculate and fact-
table generation was specific to the 32-bit Microsoft Windows operating system. This
resulted in limitations:
• The size of a model was constrained by memory. The data for a whole period/
scenario was loaded into memory to guarantee fast performance. Using 32-bit
Windows limited the size of a model to less than 3 gigabytes.
• Customers were not allowed to leverage other high-performance platforms when
performance was an issue, particularly when generating fact tables.
These limitations restricted what customers could do and prevented SAS Activity-Based
Management from working with customer models without additional work. In some
cases, the limitations required users to re-engineer the structure of their model (a non-
trivial task). The larger the models, the more problematic the situation became.
Starting with SAS Activity-Based Management 6.4, you could run the ABC procedure
interactively using the SAS interface or the SAS Activity-Based Management client
interface. SAS Activity-Based Management uses the ABC procedure internally to
calculate in the client. In addition, the ability to query contributions allows users to
dynamically ask questions about a calculated model.
In SAS Activity-Based Management 7.2 you can use the ABC Procedure to validate a
model and to generate a fact table.
The following databases are supported:
• Microsoft SQL Server 2005
• Oracle 11g
• MySQL 5
Note: If you want to run the ABC Procedure in a SAS session outside of SAS Activity-
Based Management, then you must set the CLASSPATH variable for the following
JAR files:
Syntax 477
• sas.solutions.abm.contributions.jar
• commons-logging.jar
• log4j.jar
• sas.antlr.jar
• sas.solutions.abm.contributions.nls.jar (for localized versions)
Syntax
PROC ABC
CONNECTION='connection-string'
DIAGNOSTICS=CALC | QUERY
DSN='odbc-dataset-name'
PASSWORD='password'
USERID='userid';
ATTRIBUTE 'attr-reference'
ID=attribute-id;
CALCULATE
DRIVERSEQLIMIT=sequence-limit-number
DRIVERRULES=ENABLE | DISABLE or ON | OFF
MSGLIMIT=message-limit-number
OPID='operation-string';
DIMENSION 'stage-reference'
ID=dimension-id
LEVEL=level-id
REFERENCE=dimension-reference | REF=dimension-reference;
LIST
LOAD
MODEL='model-name'
MODELID=model-id
MODELNUM='model-number1, model-number2,..., model-numbern'
PERIOD=ALL | '<path/> period-name'
PERIODID=period-id
SCENARIO=ALL | '<path/>scenario-name'
SCENARIOID=scenario-id;
478 Chapter 29 • PROC ABC
MODELVALIDATE
EMPTYATTRIBUTE | EMPTYATTR
MSGLIMIT=maximum-messages-in-log
NEGATIVEDRIVERQUANTITYASSIGNMENT | NEGDRVQTYASGN
OVERDRIVENSOURCEACCOUNT | OVRDRVSRCACT
UNASSIGNEDACCOUNT | UNSGNACT
ZEROCOSTACCOUNT | ZCOSTACT;
QUERY
'query-string' </ OUT='output-dataset-name'>;
STAGE 'stage-reference'
ID=stage-id
CASHFLOW=IN | OUT
TYPE=MODULE | STAGE;
Overview
The PROC ABC statement invokes the procedure.
PROC ABC
CONNECTION='connection-string'
DIAGNOSTICS=CALC | QUERY
DSN='odbc-dataset-name'
PASSWORD='password'
USERID='userid';
Required Arguments
CONNECTION='connection-string'
Specifies optional values for connecting to the database.
DIAGNOSTICS=CALC | QUERY
Specifies diagnostics for calculate code and query code. If you select this option, the
system checks to make sure that the procedure has everything it needs to work.
DSN='odbc-dataset-name'
Specifies the data set name for an ODBC connection. If you do not specify a name,
then ABMDSN is assumed.
PASSWORD='password'
Specifies the password that is associated with the database specified with the DSN=
option.
USERID='userid'
Specifies the user ID that is associated with the database specified with the DSN=
option.
CALCULATE Statement 479
ATTRIBUTE Statement
Overview
Each ATTRIBUTE statement specifies a numeric attribute that is to be included in fact
table generation.
Note: ATTRIBUTE statements are required only when generating a fact table for a
Resource Contributions cube (RC) or a Multi-Stage Contributions cube (MSC).
ATTRIBUTE 'attr-reference'
ID=attribute-id;
Required Arguments
'attr-reference '
A quoted string that specifies the reference of the numeric attribute. Go to the
Attributes page to see an attribute's reference.
ID=attribute-id
Specifies the ID in the database of the numeric attribute.
CALCULATE Statement
Overview
The CALCULATE statement invokes the calculate code to operate on the model that is
specified on the LOAD statement. Parameters that are needed for the calculate code to
operate are specified. Any model options that are specific to calculate are also specified.
CALCULATE
DRIVERSEQLIMIT=sequence-limit-number
DRIVERRULES=ENABLE | DISABLE or ON | OFF
MSGLIMIT=message-limit-number
OPID='operation-string';
Required Arguments
DRIVERSEQLIMIT=sequence-limit-number
Specifies the maximum number of times that recursive driver calculations are
performed.
DRIVERRULES=ENABLE | DISABLE or ON | OFF
Specifies whether calculation is to create rule-based assignments or not. The default
is ENABLE i.e., calculation creates assignments for those drivers whose assignments
are derived based upon a rule formula. You can disable rule-based assignment to
decrease calculation time.
480 Chapter 29 • PROC ABC
MSGLIMIT=message-limit-number
Specifies the maximum number of messages for each type of warning or error that is
reported to the client. This option allows you to limit the number of messages that
are reported for models that report numerous messages.
OPID='operation-string'
Specifies a string that is used by the SAS Activity-Based Management client to
uniquely identify the connection.
DIMENSION Statement
Overview
Each DIMENSION statement specifies a dimension that is to be included in fact table
generation.
Note: DIMENSION statements are required only when generating a fact table for a
Multi-Stage Contributions cube (MSC).
DIMENSION 'stage-reference'
ID=dimension-id
LEVEL=level-id
REFERENCE=dimension-reference | REF=dimension-reference;
Required Arguments
'stage-reference'
A quoted string that specifies the module or stage in which the dimension occurs:
Module Reference
In a model in which there are no stages per se, each module is considered as
defining a single stage (one stage per module). Following are the stage-
references to specify for each module: 'ExternalUnit' 'Resource' 'Activity'
'CostObject'
Stage Reference
In a model that uses stages, the stage-reference is the reference of the attribute
that defines the stage for example, 'Parcel Handling'. See Add Stage Attributes
to Accounts.
ID=dimension-id
Specifies the database identifier of the dimension that is to be included in the fact
table.
REFERENCE=dimension-reference | REF= dimension-reference
Specifies the dimension reference. To see a dimension reference, go to the
Dimensions page of a model.
Options
LEVEL=level-id
Specifies the database identifier of the level up to which (and including) the
dimension is to be included in the fact table. If LEVEL= is not specified, then all
levels are included.
FACTGEN Statement 481
FACTGEN Statement
Overview
The FACTGEN statement specifies the type of fact table to be generated.
FACTGEN MSC | SSC | RC | RCI
ATTRIBUTES=('attr-reference-1' ... 'attr-reference-n')
STAGES=('stage-reference-1' ... 'stage-reference-n')
FILTERS=('ID-1' ... 'ID-n')
CUBEACTION=GENERATEROWS | COUNTROWS
CUBECONFIGID=cube-configuration-id
FILTERTYPE=ACCOUNT | MODULE
NAME='fact-table-name'
OPID=operation-id
STAGEDEF=MODULES | STAGES
SUPPRESSZEROCOSTS | SUPZC=NO | YES;
Required Arguments
MSC | SSC | RC | RCI
Specifies the type of fact table to be generated:
RC Resource Contributions
CUBECONFIGID=cube-configuration-id
Specifies the database identifier of the cube configuration to be used in processing
the fact table.
FILTERS=('ID-1' ... 'ID-n')
This option is required only for Report table generation (RCI). It specifies the IDs of
either the accounts or modules to be included in the generated Report table. Use the
FILTERTYPE= option to specify whether the IDs are of accounts or of modules.
NAME=fact-table-name
Specifies the fact table name.
Options
CUBEACTION=GENERATEROWS | COUNTROWS
Specifies whether to generate rows or count rows. The default is to generate rows.
FILTERTYPE=ACCOUNT | MODULE
This option is required if you include the FILTERS= option for Report table
generation. FILTERTYPE= specifies whether the FILTERS= option includes the IDs
of accounts or or modules.
OPID=operation-id
Do not include this option it is generated by the system..
STAGEDEF=MODULES | STAGES
Specifies whether the model uses modules or stages. The default is MODULES..
SUPPRESSZEROCOSTS | SUPZC=NO| YES
Specifies whether or not to suppress zero costs. The default is NO.
LIST Statement
The LIST statement lists the models that are available in the database provided in the
PROC statement. The list is numbered so that the LOAD statement can accept a model
specification based on this number for operations.
LIST
MODELVALIDATE Statement 483
LOAD Statement
Overview
The LOAD statement specifies the model that is being worked on. Execution of a LOAD
statement sets up the model that is used for calculate or query.
LOAD
MODEL='model-name'
MODELID=model-id
MODELNUM='model-number1, model-number2,..., model-numbern'
PERIOD=ALL | '<path/> period-name'
PERIODID=period-id
SCENARIO=ALL | '<path/>scenario-name'
SCENARIOID=scenario-id;
Required Arguments
DBTYPE=MSSQL | ORA | MYSQL
Specifies model database: Microsoft SQL Server, Oracle, or My SQL.
MODEL='model-name'
Specifies the model to be used for calculations.
MODELID=model-id
Specifies the ID of the model to be used for calculations.
MODELNUM='model-number1, model-number2,..., model-numbern'
Specifies one or more models to be calculated. The model numbers are returned as
the output of the LIST statement.
PERIOD=ALL | '<path/>period-name'
Specifies the periods to be calculated.
PERIODID=period-id
Specifies the period to be calculated. Specify ALL to calculate all periods.
SCENARIO=ALL | '<path/>scenario-name'
Specifies the scenario to be calculated. Specify ALL to calculate all scenarios.
SCENARIOID=scenario-id
Specifies the ID of the scenario to be calculated.
MODELVALIDATE Statement
Overview
The MODELVALIDATE statement triggers model validation and lists the types of
warnings that are to be flagged.
MODELVALIDATE
EMPTYATTRIBUTE | EMPTYATTR
484 Chapter 29 • PROC ABC
MSGLIMIT=maximum-messages-in-log
NEGATIVEDRIVERQUANTITYASSIGNMENT | NEGDRVQTYASGN
OVERDRIVENSOURCEACCOUNT | OVRDRVSRCACT
UNASSIGNEDACCOUNT | UNSGNACT
ZEROCOSTACCOUNT | ZCOSTACT;
Options
Specify the following types of warning messages to be included in the message log:
EMPTYATTRIBUTE | | EMPTYATTR
Flags an attribute without a value.
MSGLIMIT=maximum-messages-in-log
Specifies the maximum number of messages to be included in the message log.
NEGATIVEDRIVERQUANTITYASSIGNMENT | NEGDRVQTYASGN
Flags a driver whose driver quantity is negative.
OVERDRIVENSOURCEACCOUNT | OVRDRVSRCACT
Flags a source account whose driver is attempting to flow more costs than are
contained in the account.
Note: The model must have been calculated for this warning message to be issued.
UNASSIGNEDACCOUNT | UNSGNACT
Flags an account that receives no assignments..
ZEROCOSTACCOUNT | ZCOSTACT
Flags an account whose cost is zero.
QUERY Statement
Overview
The QUERY statement invokes the contributions query code. The query operates on the
model that is specified in the LOAD statement. Multiple QUERY statements can be
specified after a single LOAD statement. The Contributions tab of SAS Activity-Based
Managaement allows a user to query contributions from the interface. After performing a
query on the Contributions tab, you can get the PROC ABC statement and paste it into
an ASCII editor to use with your own SAS program.
QUERY
'query-string' </ OUT='output-dataset-name'>;
Required Arguments
query-string
Specifies the query to be performed.
STAGE Statement 485
Options
OUT='output-dataset-name'
Specifies where output from the query goes. If OUT= is not specified, then a data set
in the WORK library is created.
STAGE Statement
Overview
Each STAGE statement specifies a module or stage that is to be included in fact table
generation.
Note: STAGE statements are required only when generating a fact table for a Multi-
Stage Contributions cube (MSC).
STAGE 'stage-reference'
ID=stage-id
CASHFLOW=IN | OUT
TYPE=MODULE | STAGE;
Required Arguments
'stage-reference'
A quoted string that specifies the module or stage to be included in fact table
generation:
Module Reference
In a model in which there are no stages per se, each module is considered as
defining a single stage (one stage per module). Following are the stage-
references to specify for each module: 'ExternalUnit' 'Resource' 'Activity'
'CostObject'
Stage Reference
In a model that uses stages, the stage-reference is the reference of the attribute
that defines the stage for example, 'Parcel Handling'. See Add Stage Attributes
to Accounts.
ID=stage-id
Specifies the database identifier of a stage that is to be included in fact table
generation.
Options
CASHFLOW=IN | OUT
Specifies whether to include cost flows into or out of the selected module or stage.
The default is IN.
TYPE=MODULE | STAGE
Specifies whether the STAGE statement refers to a module or stage. The default is
MODULE.
486 Chapter 29 • PROC ABC
Overview
• Last statement wins
• ATTRIBUTE, STAGE, and DIMENSION statements must come before a
FACTGEN statement
• All attributes, stages, and dimensions must be defined before they can be referred to
in a FACTGEN statement
• ATTRIBUTE, STAGE and DIMENSION statements can appear in any order before
a FACTGEN statement
• Multiple FACTGEN statements can appear in one PROC ABC statement
When Multiple Statements Define the Same Item the Last Statement
Wins
Example:
Line 1: PROC ABC UserId='SASABMDBUSER' Password='SASABMBeatAL' CONNECTION='';
Line 2: ATTRIBUTE 'No of Employees' ID=100;
Line 3: STAGE 'Stage1' REF='Stage1';
Line 4: DIMENSION 'Stage1' REF='GL' LEVEL=5;
Line 5: ATTRIBUTE 'No of Employees' ID=500;
Line 6: FACTGEN MSC STAGES=('Stage1') ATTRIBUTES=('No of Employees');
Line 7: RUN;
FACTGEN MSC STAGES=('Stage 1 Resources' 'Stage 2 Customer Service' 'Stage 3 Parcel Handling' 'Stage 4 Parcel Del
ATTRIBUTES=('Compled Expedite Requests' 'Average Time To Expedite' 'Number of Inspections')
STAGEDEF=STAGES SUPPRESSZEROCOSTS=NO NAME='M1017_C1017MSC' MSGLIMIT=50;
QUIT;
Validate Model
PROC ABC UserId='SASABMDBUSER' Password='SASABMBeatAL' CONNECTION='';
LOAD modelid=1017 periodid=19 scenarioid=1;
MODELVALIDATE OVRDRVSRCACT UASGNACT ZCOSTACT EMPTYATTR NEGDRVQTYASGN MSGLIMIT=50';
QUIT;
LIST Statement
The following examples illustrate the output of a LIST statement:
PROC ABC DSN=”myAbm” userid=”abmuser” password=”secret”;
LIST;
LOAD modelnum=3;
CALCULATE DRIVERSEQLIMIT=2;