When you are working with a project in Project Professional
2002, if you access the Project Information or Save to
Microsoft Project Server dialog boxes, you can make changes to data or
rules that control the Enterprise Project Outline Codes that operate on the
project. This is also true, even if the items have been disabled
programmatically.
This problem occurs because the Project
Information and Save to Microsoft Project Server
dialog boxes, contain controls that allow Enterprise Project Outline Codes to
be changed. These controls bypass any macros that may prevent the changing of
Enterprise Project Outline Codes. The controls do not generate events that
typically trigger the macros and prevent the change to the Enterprise Project
Outline Codes.
This problem is corrected in Project 2002 Service Pack
1.
To resolve this problem, obtain the latest
service pack for Project 2002. For additional information, click the following
article number to view the article in the Microsoft Knowledge Base:
867829
(http://support.microsoft.com/kb/867829/
)
How to obtain the latest Microsoft Project 2002 service pack
A supported hotfix is available from Microsoft. However, this hotfix is intended to correct only the problem that is described in this article. Apply this hotfix only to systems that are experiencing this specific problem.
If the hotfix is available for download, there is a "Hotfix download available" section at the top of this Knowledge Base article. If this section does not appear, submit a request to Microsoft Customer Service and Support to obtain the hotfix.
Note If additional issues occur or if any troubleshooting is required, you might have to create a separate service request. The usual support costs will apply to additional support questions and issues that do not qualify for this specific hotfix. For a complete list of Microsoft Customer Service and Support telephone numbers or to create a separate service request, visit the following Microsoft Web site:
Note The "Hotfix download available" form displays the languages for which the hotfix is available. If you do not see your language, it is because a hotfix is not available for that language. The global version of this
fix has the file attributes (or later) that are listed in the following table.
The dates and times for these files are listed in coordinated universal time
(UTC). When you view the file information, it is converted to local time. To
find the difference between UTC and local time, use the Time
Zone tab in the Date and Time tool in Control Panel.
Note This fix is for the Project client computer.
Date Time Size File name
-----------------------------------------------
11-Mar-2003 03:20 8,957,440 Project10.msp
The global version of this
fix has the file attributes (or later) that are listed in the following table.
The dates and times for these files are listed in coordinated universal time
(UTC). When you view the file information, it is converted to local time. To
find the difference between UTC and local time, use the Time
Zone tab in the Date and Time tool in Control Panel.
Note This fix is for the Project Server computer.
Date Time Size File name
------------------------------------------------
11-Mar-2003 03:46 3,795,456 Prjsvr10.msp
After the client-side hotfix is installed, the following files
will have the listed attributes or later:
Date Time Version Size File name
--------------------------------------------------------------
22-May-2002 22:37 10.0.4109.0 7,445,320 Owc10.dll
18-Oct-2002 03:23 10.0.2002.1017 909,824 Pj10od10.dll
19-Feb-2003 00:24 10.0.2003.218 254,464 Pj10tm10.dll
19-Feb-2003 00:24 10.0.2003.218 4,108,800 Pjoledb.dll
11-Mar-2003 02:22 10.0.2003.310 10,101,248 Winproj.exe
After the server-side hotfix is installed, the following files
will have the listed attributes or later:
After the hotfix is installed, you have to run four separate SQL
queries to complete the update. To do so, follow these steps:
Click Start, point to
Programs, point to Microsoft SQL Server, and
then click Query Analyzer.
Connect to the Project SQL Server.
Click Project Server database from the
drop-down list.
Type or paste the following SQL query code in the right
pane of the Query Analyzer:
insert into MSP_WEB_CONVERSIONS (STRING_TYPE_ID, CONV_VALUE, LANG_ID, CONV_STRING) values (9, 90150, 1033, N'User Defined 1')
insert into MSP_WEB_CONVERSIONS (STRING_TYPE_ID, CONV_VALUE, LANG_ID, CONV_STRING) values (9, 90151, 1033, N'User Defined 2')
insert into MSP_WEB_CONVERSIONS (STRING_TYPE_ID, CONV_VALUE, LANG_ID, CONV_STRING) values (9, 90152, 1033, N'User Defined 3')
On the Query menu, click
Execute to run the query.
After the query runs, type or paste the following SQL query
code in the right pane of the Query Analyzer:
set IDENTITY_INSERT MSP_WEB_SECURITY_FEATURES_ACTIONS ON
insert into MSP_WEB_SECURITY_FEATURES_ACTIONS (WSEC_FEA_ACT_ID, WSEC_FEA_ACT_PARENT, WSEC_IS_ACTION, WSEC_ON_OBJECT, WSEC_FEA_ACT_NAME_ID) values( 150, 100, 1, 0, 90150)
insert into MSP_WEB_SECURITY_FEATURES_ACTIONS (WSEC_FEA_ACT_ID, WSEC_FEA_ACT_PARENT, WSEC_IS_ACTION, WSEC_ON_OBJECT, WSEC_FEA_ACT_NAME_ID) values( 151, 100, 1, 0, 90151)
insert into MSP_WEB_SECURITY_FEATURES_ACTIONS (WSEC_FEA_ACT_ID, WSEC_FEA_ACT_PARENT, WSEC_IS_ACTION, WSEC_ON_OBJECT, WSEC_FEA_ACT_NAME_ID) values( 152, 100, 1, 0, 90152)
set IDENTITY_INSERT MSP_WEB_SECURITY_FEATURES_ACTIONS OFF
On the Query menu, click
Execute to run the query.
After the query runs, type or paste the following SQL query
code in the right pane of the Query Analyzer:
-- CREATE THE NEW TABLE
--****************************************************************************************************
--* MSP_WEB_SECURITY_USERDEFINED
--****************************************************************************************************
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = object_id(N'dbo.MSP_WEB_SECURITY_USERDEFINED')
AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE dbo.MSP_WEB_SECURITY_USERDEFINED
GO
CREATE TABLE dbo.MSP_WEB_SECURITY_USERDEFINED
(
WSEC_PERMISSION_NUMBER int NOT NULL,
WSEC_ITEM_TYPE int NOT NULL,
WSEC_ITEM_ID int NOT NULL,
)
-- ON [PRIMARY]
GO
CREATE CLUSTERED INDEX IX_MSP_WEB_SECURITY_USERDEFINED
ON dbo.MSP_WEB_SECURITY_USERDEFINED(WSEC_PERMISSION_NUMBER)
-- ON [PRIMARY]
GO
-- POPULATE THE NEW TABLE WITH THE ITEMS TO DISABLE FOR EACH PERMISSION
INSERT INTO MSP_WEB_SECURITY_USERDEFINED (WSEC_PERMISSION_NUMBER, WSEC_ITEM_TYPE, WSEC_ITEM_ID) VALUES (150,0,1001) -- Disables Macro (XCMD_UDEFINE)
INSERT INTO MSP_WEB_SECURITY_USERDEFINED (WSEC_PERMISSION_NUMBER, WSEC_ITEM_TYPE, WSEC_ITEM_ID) VALUES (150,0,16) -- Disables MacroRecord (XCMD_STARTRECORD)
INSERT INTO MSP_WEB_SECURITY_USERDEFINED (WSEC_PERMISSION_NUMBER, WSEC_ITEM_TYPE, WSEC_ITEM_ID) VALUES (150,0,2396) -- Disables MacroSecurity (XCMD_MACROSECURITY)
INSERT INTO MSP_WEB_SECURITY_USERDEFINED (WSEC_PERMISSION_NUMBER, WSEC_ITEM_TYPE, WSEC_ITEM_ID) VALUES (150,0,2245) -- Disables MacroShowVba (XCMD_SHOWVBAIDE)
INSERT INTO MSP_WEB_SECURITY_USERDEFINED (WSEC_PERMISSION_NUMBER, WSEC_ITEM_TYPE, WSEC_ITEM_ID) VALUES (150,0,2246) -- Disables MacroShowCode (XCMD_SHOWCODE)
INSERT INTO MSP_WEB_SECURITY_USERDEFINED (WSEC_PERMISSION_NUMBER, WSEC_ITEM_TYPE, WSEC_ITEM_ID) VALUES (150,0,17) -- Disables MacroEndRecording (XCMD_ENDRECORD)
INSERT INTO MSP_WEB_SECURITY_USERDEFINED (WSEC_PERMISSION_NUMBER, WSEC_ITEM_TYPE, WSEC_ITEM_ID) VALUES (151,1,275775509) -- Disables Proj Info dialog grid
INSERT INTO MSP_WEB_SECURITY_USERDEFINED (WSEC_PERMISSION_NUMBER, WSEC_ITEM_TYPE, WSEC_ITEM_ID) VALUES (152,1,303955978) -- Disables Save As dialog grid
On the Query menu, click
Execute to run the query.
After the query runs, type or paste the following SQL query
code in the right pane of the Query Analyzer:
-- Insert the three new permissions as available to the organization
insert into MSP_WEB_SECURITY_ORG_PERMISSIONS (WSEC_FEA_ACT_ID, WSEC_ALLOW, WSEC_DENY, WSEC_ACCESS, WSEC_PAID) VALUES (150, 1, 0, 1, 1)
insert into MSP_WEB_SECURITY_ORG_PERMISSIONS (WSEC_FEA_ACT_ID, WSEC_ALLOW, WSEC_DENY, WSEC_ACCESS, WSEC_PAID) VALUES (151, 1, 0, 1, 1)
insert into MSP_WEB_SECURITY_ORG_PERMISSIONS (WSEC_FEA_ACT_ID, WSEC_ALLOW, WSEC_DENY, WSEC_ACCESS, WSEC_PAID) VALUES (152, 1, 0, 1, 1)
-- Give all administrators these three permissions
declare @AdminUserRelID as int
declare @AdminRelID as int
select @AdminUserRelID = WSEC_REL_ID from MSP_WEB_SECURITY_SP_CAT_RELATIONS SCR, MSP_WEB_RESOURCES R where R.WRES_ID=1 and SCR.WSEC_SP_GUID=R.WRES_GUID and SCR.WSEC_CAT_ID=0
select @AdminRelID = WSEC_REL_ID from MSP_WEB_SECURITY_SP_CAT_RELATIONS SCR, MSP_WEB_SECURITY_GROUPS G where SCR.WSEC_SP_GUID=G.WSEC_GRP_GUID and G.WSEC_GRP_ID=1 and SCR.WSEC_CAT_ID=0
insert into MSP_WEB_SECURITY_SP_CAT_PERMISSIONS (WSEC_REL_ID,WSEC_FEA_ACT_ID,WSEC_ALLOW,WSEC_DENY,WSEC_ACCESS) VALUES (@AdminUserRelID, 150, 1, 0, 1)
insert into MSP_WEB_SECURITY_SP_CAT_PERMISSIONS (WSEC_REL_ID,WSEC_FEA_ACT_ID,WSEC_ALLOW,WSEC_DENY,WSEC_ACCESS) VALUES (@AdminRelID, 150, 1, 0, 1)
insert into MSP_WEB_SECURITY_SP_CAT_PERMISSIONS (WSEC_REL_ID,WSEC_FEA_ACT_ID,WSEC_ALLOW,WSEC_DENY,WSEC_ACCESS) VALUES (@AdminUserRelID, 151, 1, 0, 1)
insert into MSP_WEB_SECURITY_SP_CAT_PERMISSIONS (WSEC_REL_ID,WSEC_FEA_ACT_ID,WSEC_ALLOW,WSEC_DENY,WSEC_ACCESS) VALUES (@AdminRelID, 151, 1, 0, 1)
insert into MSP_WEB_SECURITY_SP_CAT_PERMISSIONS (WSEC_REL_ID,WSEC_FEA_ACT_ID,WSEC_ALLOW,WSEC_DENY,WSEC_ACCESS) VALUES (@AdminUserRelID, 152, 1, 0, 1)
insert into MSP_WEB_SECURITY_SP_CAT_PERMISSIONS (WSEC_REL_ID,WSEC_FEA_ACT_ID,WSEC_ALLOW,WSEC_DENY,WSEC_ACCESS) VALUES (@AdminRelID, 152, 1, 0, 1)
Microsoft
has confirmed that this is a problem in the Microsoft products that are listed
at the beginning of this article.
This problem was first corrected in Project
2002 Service Pack 1.