HFM TASK AUDIT TABLE
We are using HFM system 9 and we notice that the size of the task audit table has exceeded the normal limits,we would like to take a backup of data before deleting the records.Is this possible?
is the deletion of records recommeneded or truncation of the table.How do we take a backup of the table,can we make HFM web retrieve from this table when needed?
Does anyone know how to convert the float type(starttime,endtime) to date datatype?
Thanks in advance
Here is the query I use against the task audit table to get my users by day.. Our DBA came up with the code to convert the starttime field using CASt(convert(VARCHAR
SELECT COUNT(DISTINCT ActivityUserID) as NumUsers
, CAST(convert(VARCHAR,CAST(starttime AS DATETIME),106) AS DATETIME) AS [DAY]
FROM dbo.LAUREATE_TASK_AUDIT
WHERE CAST(convert(VARCHAR,CAST(starttime AS DATETIME),106) AS DATETIME) >= '8/1/2009'
GROUP BY CAST(convert(VARCHAR,CAST(starttime AS DATETIME),106) AS DATETIME)
ORDER BY CAST(convert(VARCHAR,CAST(starttime AS DATETIME),106) AS DATETIME)
What I noticed with our database (SQL 2000 SP4, HFM 9.2.1) is that the date conversion is off by 2 days. So user activity for today shows as 2 days in the future when I query the table. I logged this with Oracle but no resolution. For what I need, it works fine.
We have made a backup of the table in the past and truncated the existing table. Your SQL DBA can do that easily.Then yes you can just query either table as needed.
Similar Messages
-
HFM task audit task 'Unknown(930)(
I am seeing the following 'task' show up in the HFM task audit log '- Unknown (930)(64)'. HFM vsn 9.3.3.
I have never seen this before - what caused this task?
ThanksHow big is the Appname_TASK_AUDIT table, also check Appname_Data_Audit table ?
-
How to setup HFM Task Audit logs?
How to setup HFM Task Audit logs on 9.3.1. I have been asked to provide this information from the Auditing company.
Any help would be appreciated.
Thanks,
RaguThe task audit is a feature which is always on -- it is not configurable. It tracks most common user tasks in HFM, but not everything.
The feature is accessible from the web, but only by users who are part of the application administrators group as configured in the EPM Configurator utility. This is not the same as having the application administrator role. Whoever installed and configured HFM can show you the configuration of this option, in terms of which user group can access Task Audit, Data Audit, System Messages from the web client.
Data Audit is an entirely independent feature, configured by enabling at the account and scenario level from within metadata. Once configured, users in the Application Administrators group (as above) can view this report from the web.
--Chris -
Automate HFM Task Audit Export
I am trying to find a way to export the daily task audit info and email it to our auditors on a nightly basis. I figure if I can find out which table in the HFM database contains this audit info I can write something to automatically export it. Does anyone know where I can find this audit task data? I have searched tables in the HFM database and I am unable to determine this.
Thanks in advance
HFM Version 11.1.2.2
DB SQL Server 2008 R2Hi there,
Check the Consultant Tools that are installed with HFM. There is a quite simple tool which allows you to extract the task and data audit without any effort at all.
Regards,
Thanos -
Hi All,
HFM Version 9.3.1. When you click on administration>task audit, there are a bunch of tasks which can be auditied. I am trying to pull the last logon information from this and apparently the file is to large to export.
Where are these logs stored? Are they in SQL or on the app server somewhere? Does anyone every clear these logs? Will NOT doing so affect performance in any way.
Thanks,
GregGreg,
Logs are stored in the HFM relational database. The table name is <AppName>TaskAudit where <AppName> is the name of the HFM app.
By default, the data in this table is not trimmed and it can grow quite large.
From an overall systems level, I doubt the size of this table is going to negatively impact system performance unless you are trying to work with that table directly. ;)
It is not uncommon for people to make a script (schedule task) that executes a sql query that cleans up the table except for critical pieces of information such as system loads, etc.
The tricky fields in the table are ActivityCode and the time fields. ActivityCode correlates with the activity (i.e. Logon, Consolidation, etc). It is not something that is advertised that I know of; however, I created a list by analyzing the program. The list will follow at the bottom of this post.
The times are a bit tricky as you need to convert them so that they are "human readable". In SQL, I use the follow statement to convert them to a human readable time/date : cast(endtime-2 as smalldatetime)
Hope this helps.
Activity Codes
ActivityID ActivityName
0 Idle
1 Rules Load
2 Rules Scan
3 Rules Extract
4 Consolidation
5 Chart Logic
6 Translation
7 Custom Logic
8 Allocate
9 Data Load
10 Data Extract
11 Data Extract via HAL
12 Data Entry
13 Data Retrieval
14 Data Clear
15 Data Copy
16 Journal Entry
17 Journal Retrieval
18 Journal Posting
19 Journal Unposting
20 Journal Template Entry
21 Metadata Load
22 Metadata Extract
23 Member List Load
24 Member List Scan
25 Member List Extract
26 Security Load
27 Security Scan
28 Security Extract
29 Logon
30 Logon Failure
31 Logoff
32 External
33 Metadata Scan
34 Data Scan
35 Extended Analytics Export
36 Extended Analytics Schema Delete
37 Transactions Load
38 Transactions Extract
39 Document Attachments
40 Document Detachments
41 Create Transactions
42 Edit Transactions
43 Delete Transactions
44 Post Transactions
45 Unpost Transactions
46 Delete Invalid Records
47 Data Audit Purged
48 Task Audit Purged
49 Post All Transactions
50 Unpost All Transactions
51 Delete All Transactions
52 Unmatch All Transactions
53 Auto Match by ID
54 Auto Match by Account
55 Intercompany Matching Report by ID
56 Intercompany Matching Report by Acct
57 Intercompany Transaction Report
58 Manual Match
59 Unmatch Selected
60 Manage IC Periods
61 Lock/Unlock IC Entities
62 Manage IC Reason Codes
63 Null -
Hi,
We have a requirement to check the user activities related to changes made in dataforms/data grids (or specifically changes made to items in Manage Documents)
Are these activities logged in the task audit? If so could you please let me know the activity code.
Thanks in advance,
AparnaIn your question you use the term "activities", but you have not articulated which ones you need to capture. HFM's task audit does not capture every task that is available in the system, so you should look through the listing of activities that it does capture. Opening and entering data into a web form for example, is not captured in Task Audit.
If instead you are implying changes made to data via a web form, then you are asking about Data Audit, which is very different. Data Audit is dependent upon your own enablement of Account/Scenario combinations in metadata. Each account that is enabled for Data Audit, for the relevent scenarios that have been enabled, will be inlcuded in the data audit report anytime a user changes data for that account.
--Chris -
Hello,
I try to retrieve data from TASK_AUDIT Tabel.
Anyone know how I extract the user name and date from it?
Thanks
NimrodBelow is the description of the table as was defined for HFM v.4.0. However the forum editing area destroys table formation. Hope this helps.
TASK_AUDIT Data_Type Allows_Nulls Description
AUDITID int NOT NULL Unique row identifier
ACTIVITYUSERID int NOT NULL User ID
ACTIVITYSESSIONID int NOT NULL Session ID
ACTIVITYCODE Int NOT NULL Activity Code
SERVERNAME NVARCHAR NOT NULL Server name
APPNAME NVARCHAR NOT NULL Application Name
STARTTIME Float NOT NULL Task Start Time
ENDTIME float NOT NULL Task End Time
STRDESCRIPTION NVARCHAR NULL Description for Task
STRMODULENAME NVARCHAR NULL HFM Module involved in task -
Urgent regarding Data & Task Audits Back Up
Hi Experts
Here my question is regarding Data Audit and Task audits in V 11.1.2.1
-->If we take the back up of Data & Task audit tables data in to other backup_tables in same schema how this can be viewed through task audit and data audit through HFM?
-->Whether any third part tools available to audit the tasks (DATA & TASK ) information...?
-->Whether EPM maestro can be used here..?
Thanks in advance
Edited by: RajaKK on May 29, 2012 6:19 PMUse the Audit Extract utility bundled with HFM 11.1.2.1 to export this information periodically to a CSV file that you can view offline through any text editor, or even Excel. There is a command line feature for this as well, so you could incorporate this into a batch routine.
For anyone attending Kaleidoscope in San Antonio, TX next month, I will present the various utilities that ship with HFM including this one. Hope to see you there!
--Chris -
Analysing Task Audit, Data Audit and Process Flow History
Hi,
Internal Audit dept has requested a bunch of information, that we need to compile from Task Audit, Data Audit and Process Flow History logs. We do have all the info available, however not in a format that allows proper "reporting" of log information. What is the best way to handle HFM logs so that we can quickly filter and export required audit information?
We do have housekeeping in place, so the logs are partial "live" db tables, and partial purged tables that were exported to Excel to archive the historical log info.
Many Thanks.I thought I posted this Friday, but I just noticed I never hit the 'Post Message Button', ha ha.
This info below will help you translate some of the information in the tables, etc. You could report on it from the Audit tables directly or move them to another appropriate data table for analysis later. The concensus, though I disagree, is that you will suffer performance issues if your audit tables get too big, so you want to move them periodically. You can do this using a scheduled Task, manual process, etc.
I personally just dump it to another table and report on it from there. As mentioned above, you'll need to translate some of the information as it is not 'human readable' in the database.
For instance, if I wanted to pull Metadata Load, Rules Load, Member List load, you could run a query like this. (NOTE: strAppName should be equal to the name of your application .... )
The main tricks to know at least for task audit table are figuring out how to convert times and determing which activity code corresponds to the user friendly name.
-- Declare working variables --
declare @dtStartDate as nvarchar(20)
declare @dtEndDate as nvarchar(20)
declare @strAppName as nvarchar(20)
declare @strSQL as nvarchar(4000)
-- Initialize working variables --
set @dtStartDate = '1/1/2012'
set @dtEndDate = '8/31/2012'
set @strAppName = 'YourAppNameHere'
--Get Rules Load, Metadata, Member List
set @strSQL = '
select sUserName as "User", ''Rules Load'' as Activity, cast(StartTime-2 as smalldatetime) as "Time Start",
cast(EndTime-2 as smalldatetime) as ''Time End'', ServerName, strDescription, strModuleName
from ' + @strAppName + '_task_audit ta, hsv_activity_users au
where au.lUserID = ta.ActivityUserID and activitycode in (1)
and cast(StartTime-2 as smalldatetime) between ''' + @dtStartDate + ''' and ''' + @dtEndDate + '''
union all
select sUserName as "User", ''Metadata Load'' as Activity, cast(StartTime-2 as smalldatetime) as "Time Start",
cast(EndTime-2 as smalldatetime) as ''Time End'', ServerName, strDescription, strModuleName
from ' + @strAppName + '_task_audit ta, hsv_activity_users au
where au.lUserID = ta.ActivityUserID and activitycode in (21)
and cast(StartTime-2 as smalldatetime) between ''' + @dtStartDate + ''' and ''' + @dtEndDate + '''
union all
select sUserName as "User", ''Memberlist Load'' as Activity, cast(StartTime-2 as smalldatetime) as "Time Start",
cast(EndTime-2 as smalldatetime) as ''Time End'', ServerName, strDescription, strModuleName
from ' + @strAppName + '_task_audit ta, hsv_activity_users au
where au.lUserID = ta.ActivityUserID and activitycode in (23)
and cast(StartTime-2 as smalldatetime) between ''' + @dtStartDate + ''' and ''' + @dtEndDate + ''''
exec sp_executesql @strSQLIn regards to activity codes, here's a quick breakdown on those ....
ActivityID ActivityName
0 Idle
1 Rules Load
2 Rules Scan
3 Rules Extract
4 Consolidation
5 Chart Logic
6 Translation
7 Custom Logic
8 Allocate
9 Data Load
10 Data Extract
11 Data Extract via HAL
12 Data Entry
13 Data Retrieval
14 Data Clear
15 Data Copy
16 Journal Entry
17 Journal Retrieval
18 Journal Posting
19 Journal Unposting
20 Journal Template Entry
21 Metadata Load
22 Metadata Extract
23 Member List Load
24 Member List Scan
25 Member List Extract
26 Security Load
27 Security Scan
28 Security Extract
29 Logon
30 Logon Failure
31 Logoff
32 External
33 Metadata Scan
34 Data Scan
35 Extended Analytics Export
36 Extended Analytics Schema Delete
37 Transactions Load
38 Transactions Extract
39 Document Attachments
40 Document Detachments
41 Create Transactions
42 Edit Transactions
43 Delete Transactions
44 Post Transactions
45 Unpost Transactions
46 Delete Invalid Records
47 Data Audit Purged
48 Task Audit Purged
49 Post All Transactions
50 Unpost All Transactions
51 Delete All Transactions
52 Unmatch All Transactions
53 Auto Match by ID
54 Auto Match by Account
55 Intercompany Matching Report by ID
56 Intercompany Matching Report by Acct
57 Intercompany Transaction Report
58 Manual Match
59 Unmatch Selected
60 Manage IC Periods
61 Lock/Unlock IC Entities
62 Manage IC Reason Codes
63 Null -
Our Production system is suffering performance issues which we attribute to the large volume of records in the audit tables. We want to implement an archival solution to alleviate this, which would involve transferring older audit records to a separate database. To achieve this, we need to write SQL queries against the <app>DATAAUDIT and <app>TASKAUDIT tables in the HFM database. We are aware that we need to join other tables to see descriptions, e.g. <app>SCENARIODESC. We have also deduced the translation of Activity Codes from "HFMAuditExtractSchemaDefs.xml", which accompanies the HFM Audit Extract Utility.
Unfortunately, there are some things which we do not know how to translate:
1) Period (lPeriod) on the <app>DATAAUDIT table, e.g. 67108869 but need to show "Jun" etc.
2) User (ActivityUserId) on the <app>TASKAUDIT table, e.g. -329543984
3) Module (strModuleName) on the <app>TASKAUDIT table, e.g. #@RID@#19
Can anyone advise how we should translate these pieces of data in order to give similar results to those seen on the Data Audit and Task Audit screens in Workspace?1.) Period - I'm not sure where this is coming from, but I'm pretty confident it is not sitting in the database which I find odd. I want to find this as well, but haven't had any free time to search around, sorry.
2.) User - This one I can help you with.
--Get Task Item Data by Hour for a given day by user
select datepart(HOUR, cast(endtime-2 as smalldatetime)), count(activitycode) from <APP_NAME>_task_audit where activitycode in (1,4,6,8,9,12,14,15,16,21,23,44) and cast(endtime-2 as smalldatetime) between '2011-12-7 00:00:00' and '2011-12-7 23:59:59' and ActivityUserID in (select lUserID from HSV_ACTIVITY_USERS where sUserName = '<USER_NAME>') group by datepart(HOUR, cast(endtime-2 as smalldatetime))In the sample SQL Query above, I am looking for all of the task audit activity (for the specified tasks) for a specific user by hour. The part of the query you want to focus on is
and ActivityUserID in (select lUserID from HSV_ACTIVITY_USERS where sUserName = '<USER_NAME>')The ActivityUserID in the task audit table will match up to the lUserID field in the HSV_ACTIVITY_USERS table. sUserName will be the actual text username. Depending on how you are configured, the name may look like johndoe or johndoe@Native Directory or johndoe@AD, etc. If you query that table, you'll figure it out pretty quickly.
3.) Module ID. I can only partially assist on this one.
This is not also in the HFM database. I suspected it might be floating in workspace; however, can't really find it there either.
I can tell you a couple things though....
#@RID@# Is just a placeholder for Resource ID. The important part is the number behind it. If you do a search on your folders for @RID@, you'll get one hit where it is defined as a constant, but that is it. (I was hoping a file search would reveal a table of the ID's; however, I wasn't that lucky). There is probably a table of values that correspone somewhere, but I haven't found it.
If you do a distinct select, you'll see there's not too many ...
select distinct strmodulename from <APP_NAME>_task_audit#@RID@#10
#@RID@#13
#@RID@#14
#@RID@#16
#@RID@#18
#@RID@#23
#@RID@#30
#@RID@#32
#@RID@#4294967295
#@RID@#45
#@RID@#46
#@RID@#49
#@RID@#52
#@RID@#58
#@RID@#59
#@RID@#65
#@RID@#66
#@RID@#67
#@RID@#68
#@RID@#69
#@RID@#7
#@RID@#9
HyperionReports
How can you determine these values?
The quick and dirty way would be to run a Task Audit Extract for a given date range as this will reveal the Module Name.
Then execute a SQL Query on the Task Audit Table for the same data range. You could then match up the records and deduce the values.
--Get Task Items by Date Range
select (select sUserName from HSV_ACTIVITY_USERS where lUserID = ActivityUserID) as UserName, ActivityCode, ServerName, AppName, cast(StartTime-2 as smalldatetime), cast(EndTime-2 as smalldatetime), strDescription, strModuleName from <APP_NAME>_task_audit where cast(endtime-2 as smalldatetime) between '2011-12-7 00:00:00' and '2011-12-7 23:59:59' order by endtime ascOnce you determine the values, I would create a table in your database to hold them so that you could use them in future queries. I would also recommend you do the same with the activitycodes. -
Hello,
What is the exact meaning of Data Retrieval in task audit? Is it just data retrieved by reports?
Thanks
LilachHi Lilach,
It would mean data retrieval through adhoc analysis or grids,HsGetValue Functions etc.
You could also check Task Audit table you can see activity codes which has details below.
ActivityID
ActivityName
0
Rules Load
1
Rules Scan
2
Rules Extract
3
Consolidation
4
Chart Logic
5
Translation
6
Custom Logic
7
Allocate
8
Data Load
9
Data Extract
10
Data Extract via HAL
11
Data Entry
12
Data Retrieval
13
Data Clear
14
Data Copy
15
Journal Entry
16
Journal Retrieval
17
Journal Posting
18
Journal Unposting
You can query AppName_Task_Audit & HSV_Activity_Users tables by joining them and applying condition on Activity id from App_Task_Audit.
Thanks
Amith -
10g parameters for Task Audit System 9
Does anyone have suggestions regarding how to optimize for USER I/O during a metadata load the TASK_AUDIT table on 10g?
The ADDM report suggests Segment Tuning and Application tuning (Application tuning not possible since it is HFM code.) Looking at a relatively large application, the database improvement would be about 10 minutes if we could minimize the USER I/O waits for this table.
If you do not have a database recommendation, does anyone know if I can stop the logging of the task audit until metadata load completes?
Thanks,We daily backup this table to a versionning table, and truncate it, it is much smaller and than the performance impact is much less
do you need to keep the whole thing?? -
Fetching SSIS error message into Audit table using SP
Hi Experts,
I want to fetch SSIS Error Info along with Task Name into Audit table 'Error_Info' column. This is nvarchar(max) datatype, i wrote below Stored Procedure for this (Column names passing dynamically in SP)
CREATE PROC [dbo].[usp_AuditErrorHandler]
@AuditTableName nvarchar(MAX)
,@Audit_Status nvarchar(100)
,@Audit_ErrorDescription sql_variant
,@Audit_PkgEnd_dttm nvarchar(100)
,@task sql_variant
,@errordescription sql_variant
,@Audit_ID nvarchar(10)
,@LogID INT
AS
BEGIN
DECLARE @STRQuery NVARCHAR(MAX)
SET @STRQuery = '
UPDATE '+@AuditTableName+'
SET '+@Audit_Status+' = ''Failed''
,'+@Audit_PkgEnd_dttm+' = GETDATE()
,'+@Audit_ErrorDescription+' = ''Task['+ @task +']:'+@errordescription +'''
WHERE ' +@Audit_ID+ ' = ' + CAST(@LogID AS NVARCHAR)
The above procedure is working fine in SSMS and inserting complete error info into table, but when i am executing thru SSIS Pkg i am getting error like
"[Execute SQL Task] Error: Executing the query "exec usp_AuditErrorHandler ?,?,?,?,?,?,?,?" failed with the following error: "Incorrect syntax near '@P1'.". Possible failure reasons: Problems with the query, "ResultSet"
property not set correctly, parameters not set correctly, or connection not established correctly."
So, i tot of checking with string lenght and modifed the code by adding left () to @errordescription as below.
UPDATE '+@AuditTableName+'
SET '+@Audit_Status+' = ''Failed''
,'+@Audit_PkgEnd_dttm+' = GETDATE()
,'+@Audit_ErrorDescription+' = ''Task['+ @task +']:'+LEFT(@errordescription ,100)+'''
WHERE ' +@Audit_ID+ ' = ' + CAST(@LogID AS NVARCHAR)
Here, it is inserting till 119 chars, if i give more than 119 chars pkg is failing with above error.
I want to get insert Complete error info into the column.
Can anybody suggest on this??
Thanks in advance !!!Thanks Arthur for the response, i have tried with the Sql_Variant data type also, here procedure itself not creating and throwing below error.
"The data types nvarchar(max) and sql_variant are incompatible in the add operator."
This is the procedure i am using to fetch error info into Audit table.
ALTER PROC [dbo].[usp_AuditErrorHandler]
@AuditTableName nvarchar(MAX)
,@Audit_Status nvarchar(100)
,@Audit_PkgEnd_dttm nvarchar(100)
,@Audit_Task_ErrorCode nvarchar(100)
,@Audit_ErrorDescription SQL_VARIANT
,@errorcode nvarchar(max)
,@task SQL_VARIANT
,@errordescription SQL_VARIANT
,@Audit_ID nvarchar(10)
,@LogID INT
AS
BEGIN
SET NOCOUNT ON;
DECLARE @STRQuery SQL_VARIANT
BEGIN TRY
SET @STRQuery = '
UPDATE '+@AuditTableName+'
SET '+@Audit_Status+' = ''Failed''
,'+@Audit_PkgEnd_dttm+' = GETDATE()
,'+@Audit_Task_ErrorCode+' = '''+@errorcode+'''
,'+@Audit_ErrorDescription+' = ''Task['+ @task +']:'+ @errordescription +'''
(Error is giving in this line)
WHERE ' +@Audit_ID+ ' = ' + CAST(@LogID AS NVARCHAR)
EXEC (@STRQuery)
END TRY
Below is the Audit Table Schema -
Hello,
We are on HFM 11.1.2.1.103 and I am getting an error message when trying to export a users activity from the "Task Audit" menu. When I click on export a new tab comes up with the URL http://server:port/hfm/Administration/TaskAuditExport.asp and then I get an error message:
An error occurred on the server when processing the URL. Please contact the
system administrator.
If you are the system administrator please click here to find out more
about this error.
And when I click on "here" it takes me to this URL Running Classic ASP Applications on IIS 7 and IIS 8 : The Official Microsoft IIS Site
Any thoughts on how I resolve this would be much appreciated.
Thank you,
JasonSDM,
Thank you for the response. This is helpful and I was able to extrac the data, but this utility doesn't give you the ability to focus on one users' activity as you can from the web. Why is it not recommended to use the web and is there a way to get that working properly?
The reason the utility is not working for my purpose is I want to view a few users' activities over the last year and when I run the utility it gives me everyone and extracts the data across numerous files, which is not particularly easy to work with.
Thanks. -
I am working on Oracle 9i database and having nearly 100 tables of 15 columns each on average.
We have two seperate tables for Audit purpose. First table contains only table name which got effected by updates and deletes. Second table contains first table's Id, column name, old value and new value.
If value of one column of a table changes, it would be one record in each audit table. If values of 20 columns are updated then one record in the first table and 20 records in the second table with old and new values.
Please help me out the best way to accomplish this task.
Thanks for the help.Because I don't know which column is being updated by user.Yes you do.
SQL> set serveroutput on
SQL> create or replace trigger trig_emp2_insupd
2 before insert or update
3 on emp2
4 for each row
5 begin
6 if (UPDATING('ENAME'))
7 then
8 dbms_output.put_line('Ename is updated') ;
9 end if ;
10 if (UPDATING('SAL'))
11 then
12 dbms_output.put_line('Sal is updated') ;
13 end if ;
14 end ;
15 /
Trigger created.
SQL> update emp2 set ename = null where rownum < 2 ;
Ename is updated
1 row updated.
SQL>
SQL> update emp2 set sal = null where rownum < 2 ;
Sal is updated
1 row updated.
SQL>
SQL> update emp2 set sal = null, ename = null where rownum < 2 ;
Ename is updated
Sal is updated
1 row updated.
SQL>
Maybe you are looking for
-
Hello ppl. I have a problem with my nokia n97. The phone shuts down randomly without a reason. I have the installed the latest software version for it, but the problem persists. Anyone can tell me what to do?
-
Copying music libraries across the SAME computer??
As a user of Windows XP there are several different personal desktops corresponding to everyone using the computer. Each user desktop is different and personalized and over the years of using itunes i created my own music library on someone elses use
-
ITunes very slow to resume playing a tune
While using iTunes latest version to the date (8.1.1), it takes about 6 (six) seconds to resume/start to play a tune. This happens even if while I'm playing the tune, I hit pause, and then hit play again (thus freezing for 6 seconds). My iTunes libra
-
Anybody have any good documentation on "Occurence"? Thank-You.
-
CS5 - Can't get reference to frame in group
I'm writing a script to place a caption frame (textFrame) back underneath a graphic frame (Rectangle) after one of them has been manually resized or moved on the page. The frames are grouped. To adjust one of them I simply double click the required f