Business Objects Enterprise FAQs-2 182. Denied rights and granted rights, which rights has higher precedence? Denied rights take precedence over granted rights. This can cause seemingly contradictory results when inheritance is enabled. Suppose that the “View objects” right is explicitly denied to a Sales group for a particular folder of reports. For the same folder, the “View objects” right has been explicitly granted to a Manager user, and the “Respect current security by inheriting rights from parent groups” check box is selected. The Manager user is a member of the Sales group. In this scenario, the Manager user is both granted and denied the “See object” right to the folder. Because denied rights take precedence, the Manager user is effectively denied the ability to see the folder, so long as the user account inherits rights from its parent group (Sales). To remedy this situation, you could clear the “Respect current security by inheriting rights from parent groups” check box on the Advanced Rights page for the Manager user, or you could remove the Manager user from the Sales group. Rights that are not specified are denied by default. On the Advanced Rights page for any object, the Inherited Rights column may label certain rights as “Not Specified.” This entry denotes rights that are neither granted nor denied by inheritance. To prevent possible security breaches, Crystal Enterprise automatically denies rights that are not specified. 183. What are General object management concepts? General object management concepts apply to all objects, such as moving, copying, and deleting objects ex: how to search for objects, how to modify object properties, and how to set object rights for users and groups. 184. What are the Report object management concepts? Managing report objects includes applying processing extensions, specifying alert notification, changing database information, updating parameters, using filters, and working with hyperlinked reports. 185. What are the Program object management concepts? Program object management concepts includes program object configuration, and security considerations for program objects. 186. What are object package management concepts? Object package management concepts include managing object packages and instances, and how to manage them through the Crystal Management Console (CMC). Additionally, this also includes how to create an object package and how to add objects to an object package. 187. What are report objects? A report object is an object that is created using a Crystal designer component (such as Crystal Reports or Crystal Analysis). Report objects contain report information (such as database fields). When you schedule a report, Crystal Enterprise generates an instance or instances of the object. A report object can be made available to everyone or to individuals in selected user groups. Note: When you publish a report object to Crystal Enterprise, only the structure of the report (the template information) is saved; that is, the published report object contains no saved data. 188. What are report instances? Crystal Enterprise creates report instances from report objects—that is, an instance is created when a report object is processed by the Report Job Server. Essentially, an instance is a report object that contains report data that is retrieved from one or more databases. Each instance contains data that is current at the time the report or query is processed. 189. How to set a report object’s refresh options? To set a report object’s refresh options 1 In the Objects management area of the CMC, select a report object by clicking its link. 2 On the Properties page, click the Refresh Options link. 3 Choose the report elements that you want to refresh from the source report file. 4 Click Refresh Report. 190. What is the purpose of report viewing options available in Crystal Enterprise? The report viewing options available in Crystal Enterprise allow you to balance users’ need for up-to-date information with the need to optimize data retrieval times and overall system performance. Crystal Enterprise allows you to enable data sharing, which permits different users accessing the same report object to use the same data when viewing or refreshing a report. Enabling data sharing reduces the number of database calls, thereby reducing the time needed to generate a report instance for subsequent users of the same report, while greatly improving overall system performance under load. You can control data sharing settings on either a per-report or a perserver basis. If you specify which servers a report uses for viewing, you can use per-server settings to standardize data sharing settings for groups of reports, and centrally administer these settings. Per- report settings permit you to specify that particular reports will not share data. They also allow you to tailor the data sharing interval for each report to meet the needs of that report’s users. In addition, per- report settings enable you to decide on a report-by-report basis whether it is appropriate to allow users to access the database whenever they refresh reports. Data sharing may not be ideal for all organizations, or for all reports. To get full value from data sharing, you must permit data to be reused for some period of time. This means that some users may see “old” data when they view a report on demand, or refresh a report instance that they are viewing. 191. Explain the default report viewing options available in Crystal Enterprise? The default report viewing options for Crystal Enterprise emphasize data freshness and integrity. By default, when you add a report to Crystal Enterprise it is configured to use per-server settings for report sharing. The default server settings ensure that users always receive up-to-date information when they refresh a report, and guarantee that the oldest data given to any user is 0 minutes old. If you choose to enable perreport settings, the default settings allow data sharing, allow a viewer refresh to retrieve fresh data from the database, and ensure that the oldest data given to a client is 5 minutes old. 192. How to set a report viewing options for a report? To set report viewing options for a report 1 In the Objects management area of the CMC, select a report by clicking its link. 2 Click the Process tab. 3 In the “Data Refresh for Viewing” area, click “Use report specific viewing settings.” Then select the options that you want to set for this report. 4 Click Update. 193. What is alert notification? Alerts are custom messages, created in Crystal Reports, that appear when certain conditions are met by data in a report. Alerts may indicate action to be taken by the user or information about report data. If the alert condition (as defined in Crystal Reports) is true, the alert is triggered and its message is displayed. 194. What transport mechanism Crystal enterprise uses for notification? In Crystal Enterprise, you can choose to send alert notification when scheduling a report. If you enable alert notification, messages are sent through an SMTP server. You can configure email delivery options, specify the “To,” “Cc,” and “From” fields for the email, add subject and message information, set a URL for the viewer you want the email recipient to use, and set the maximum number of alert records to send. Note: • The Alert Notification link is available only if the report object contains alerts. • Alerts are triggered in the report object even if you disable alert notification. • To enable alert notification, you must also ensure that the Report Job Server’s SMTP Destination is enabled and configured. 195. How to set filters? In the Filters page, you set the default selection formulas for the report. Selection formulas are similar to parameter fields in that they are used to filter results so that only the required information is displayed. Unlike parameters, end users will not be prompted for selection formula values when they view or refresh the report. When users schedule reports through a web-based client such as the Crystal Enterprise web desktop, they can choose to modify the selection formulas for the reports. By default, if any formulas are set in the CMC, they will be used by the web-based client. In addition to changing selection formulas, if you have developed your own processing extensions, you can select the processing extensions that you want to apply to your report. When you use filters in conjunction with processing extensions, a subset of the processed data is returned. Selection formulas and processing extensions act as filters for the report. 196. What is the purpose of hyperlinked reports? Crystal Reports lets you use hyperlinks to navigate from one report object to another. You can move to a Report Part within the report itself, to other report objects or their parts, or to specific instances of reports or Report Parts. This navigation is available only in the new script-based DHTML viewers (zero-client, server-side viewers) included in Crystal Enterprise 10. By linking directly from one object to another, the required data context is passed automatically so that you navigate to the object and data that is relevant. Initially, when you add hyperlinks between reports in Crystal Reports, you create a link from one file directly to another. However, when you publish linked report files simultaneously to the same object package, the links are modified to point to managed report objects. (Each link is changed, so that it references the appropriate destination report by Enterprise ID, rather than by file path.) Also, the modified links become relative inside the object package. When you schedule the object package, Crystal Enterprise processes its reports, and again modifies hyperlinks within each report instance: hyperlinks between report objects in an object package are converted to hyperlinks between report instances in a specific instance of the object package. To view hyperlinked reports, you must publish both the home and destination reports to the same Crystal Enterprise system. (A home report is one that contains a hyperlink to another report: the destination report.) 197. What are program objects? A program object is an object in Crystal Enterprise that represents an application. 198. What are the advantages of publishing a program object to Crystal Enterprise? Publishing a program object to Crystal Enterprise allows you to use Crystal Enterprise to schedule and run the program object and to manage user rights in relation to the program object. When you publish a program object or its associated files to Crystal Enterprise, they are stored in the File Repository Server (FRS). Each time a Crystal Enterprise program runs, the program and files are passed to the Program Job Server, and Crystal Enterprise creates a program instance. Unlike report instances, which you can view in their completed format, program instances exist as records in the object history. Crystal Enterprise stores the program’s standard out and standard error in a text output file. This file appears when you click a program instance in the object History. 199. What are the types of applications that can be published to Crystal Enterprise as program objects? Three types of applications can be published to Crystal Enterprise as program objects: • Executable Executable programs are binary files, batch files, or shell scripts. They generally have file extensions such as: .com, .exe, .bat, .sh. You can publish any executable program that can be run from the command line on the machine that runs the Program Job Server. • Java You can publish any Java program to Crystal Enterprise as a Java program object. For Java program objects to have access to Java SDK objects, your class must implement the IProgramBase interface from the Crystal Enterprise Java SDK (com.crystaldecisions.sdk.plugin.desktop.program.IProgramBase). • Script Script program objects are JScript and VBScript scripts. They are run on Windows using an embedded COM object and can—once published—reference the Crystal 200. How to set Authentication for program objects? Be aware of the potential security risks associated with the publication of program objects. As the administrator, you must protect the system against abuse. The level of file permissions for the account under which a program object runs will determine what modifications, if any, the program can make to files. You can control the types of program objects users can run, and you can configure the credentials required to run program objects. 201. How to enable or disable a type of program object? Enabling or disabling a type of program object As a first level of security, you can configure the types of program objects available for use. To enable or disable a type of program object 1 In the Objects management area of the CMC, click Object Settings. 2 Click the Program Objects tab. 3 Select the type or types of program objects you want users to run. 202. How to set authentication for Java programs ? Crystal Enterprise allows you to set security for all program objects. For Java programs, Crystal Enterprise forces the use of a Java Policy File, which has a default setting that is consistent with the Java default for unsecure code. Use the Java Policy Tool (available with the Java Development Kit) to modify the Java Policy File, to suit your specific needs. The Java Policy Tool has two code base entries. The first entry points to the Crystal Enterprise Java SDK and allows program objects full rights to all Crystal Enterprise JAR files. The second code base entry applies to all local files. It uses the same security settings for unsecure code as the Java default for unsecure code. 203. What are object packages? Object packages function as distinct objects in Crystal Enterprise. Think of them as folders you can schedule, along with all of their contents. Object packages can be composed of any combination of report and program objects that are published to the Crystal Enterprise system. (Non-Crystal Enterprise objects, such as Excel, Word, Acrobat, Text, Rich Text, PowerPoint, and Hyperlink objects, cannot be added to object packages.) 204. What are Object components? The objects within an object package are called object package component objects. Placing multiple component objects in a single object package allows you to schedule them simultaneously. For reports, object packages allow users to view synchronized data across reports. Component objects are not autonomous. They have more limited configuration options than other objects, and they do not appear in the list of all objects on the first page of the Objects management area of the CMC. Rather, you can only view them by opening their object package. 205. What are Object package instances? Crystal Enterprise creates an object package instance each time it runs an object package. The object package instance contains individual instances of each of its component objects. Component instances are tied to object package instances, rather than to component objects. For example, if you run an object package, and thereby create an instance, then remove a report object from the object package, the existing object package instance does not change; it still contains the report instance from the report object that you removed. Future instances of the object package, however, will reflect the change. For hyperlinked report instances in object package instances, the hyperlinks point to the other report instances in the same object package instance. 206. Explain the authentication options available for object packages? Object packages simplifies both Enterprise and database authentication. You enter your Enterprise authentication only once to schedule the object package, including all of its component objects. Consequently, you must have scheduling rights for each of the objects inside the object package. If you attempt to schedule a package that contains one or more component objects to which you do not have schedule rights, the component instance(s) fail(s). For database authentication, you specify database logon information for each report component object in the object package. (If you copied the report into the object package, it initially inherits the database logon information of the original report.) 207. What is the purpose of scheduling an Object? Scheduling an object lets you run it automatically at specified times. You can schedule report objects, program objects, and object packages. When you schedule an object, Crystal Enterprise generates an instance that contains information that is captured when the object is run. Report instances contain relevant database information; for example, instances for program objects contain the standard out and standard error produced by that instance of the program. Your instance uses all of the settings that you have set in the CMC for the original object. 208. What are the various types of scheduling options available in Crystal Enterprise? Scheduling Systems You can specify the servers that objects use for scheduling, and you can create calendars to provide your users with sets of common scheduling dates. Scheduling objects You can schedule objects in various ways, such as scheduling objects on demand, daily or monthly, in batches, or with events. 209. How to Manage Calendars? Calendars make it easy for you to schedule complex recurring jobs efficiently. A calendar is a customized list of run dates for scheduled jobs. When users schedule objects, they can use a calendar to run the job on a predefined set of dates. By providing calendars for your users, you can create more complex processing schedules than you can with the standard scheduling options. Calendars are particularly useful when you want to run a recurring job on an irregular schedule, or if you want to provide users with sets of regular scheduling dates to choose from. Calendars also allow you to create more complex processing schedules, combining unique scheduling dates with recurring ones. For example, if you want a report object to run every business day except for your country’s statutory holidays, you can create a calendar with the holidays marked as “non-run” days, on which the report object cannot be run. Crystal Enterprise will run the job every day you have specified as a “run” day in your calendar. 210. Is there any limitation for number of calendar events to schedule in Crystal Enterprise? No. You can set up as many calendars as you want in Crystal Enterprise. Calendars you create appear in the Calendar selection list available when you choose to schedule an object using a calendar. When you apply the calendar to a job, Crystal Enterprise runs the job on the run dates as scheduled. You can apply calendars to any object that can be scheduled, including report objects, program objects, and object packages. 211. Can the access level be specified for Calendar ? You can grant or deny users and groups access to calendars. Depending how you organize your calendars, you may have specific sets of dates that you want to be available only for certain employees or departments. For example, your finance team may use a series of financial tracking dates that aren’t useful for other departments. Users will only be able to see the calendars they have the rights to see, so you can use rights to hide calendars that aren’t applicable to a particular group. 212. How to grant access to a calendar? To grant access to a calendar 1 Go to the Calendars management area of the CMC. 2 Select the calendar you want to grant access to. 3 Click the Rights tab. 4 Click Add/Remove to add users or groups that you want to give access to the selected calendar. The Add/Remove page appears. 5 In the Select Operation list, select Add/Remove Groups, Add Users, or Remove Users. 6 Select the user or group you want to grant access to the specified calendar. If you have many users on your system, select the Add Users operation; then use the “Look for” field to search for a particular account. 7 Click OK. 8 On the Rights tab, change the Access Level for each user or group, as required. 9 To choose specific rights, choose Advanced. For complete details on the predefined access levels and advanced rights, see “Rights and Access Levels” on page 413. 10 Click Update. 213. Is it possible to schedule Objects in batches ? Yes. You can schedule objects in batches using the object packages feature. Object packages function as distinct objects in Crystal Enterprise. They can be composed of any combination of report and program objects published to the Crystal Enterprise system. (Other types of objects, such as Excel, Word, Acrobat, Text, Rich Text, PowerPoint, and Hyperlink objects, cannot be added to object packages.) Using object packages to schedule batches of objects simplifies authentication. In terms of reports, it allows users to view synchronized data across report instances. 214. Scheduling an object with events ? When you schedule an object with events, the object will be run only when the additional condition (that is, the event) occurs. You can tell an object to wait for any, or all of the three event types: file-based, custom-based, and schedule-based. If you want a scheduled object to trigger an event, you must choose a schedule based event. Note: A file-based event is triggered upon the existence of a specified file. A custom-based event is triggered manually. A schedule-based event is triggered by another object being run. When you schedule an object that waits for a specified event, the object will run only when the event is triggered, and only when the rest of the schedule conditions are met. If the event is triggered before the start date of the object, the object will not run. If you have specified an end date for this object, and if the event is not triggered before the end date occurs, the object will not run because not all of the conditions will have been met. Also, if you choose a weekly, monthly, or calendar schedule, the object will have a specified time frame in which it can be processed. The event must be triggered within this specified time for the object to run. For example, if you schedule a weekly report object that runs every Monday, the event must be triggered within the 24-hour period on Monday; if the event is triggered outside of the 24-hour period, then the report will not run. You can also schedule an object which triggers a schedule-based event upon completion of the object being run. When the object is run, Crystal Enterprise will trigger the specified event. For a schedule-based event, if the event is based on the instance being run successfully, for example, the event won’t be triggered if the instance fails. 215. Does FTP scheduling supported? Yes. Crystal Enterprise enables you and your users to schedule an object to a File Transfer Protocol (FTP) server. To connect to the FTP server, you must specify a user who has the necessary rights to upload files to the server. Note: You must have this destination feature enabled in the Job Server in order to schedule an object to an FTP server 216. Does SMTP scheduling supported? Yes. With Simple Mail Transfer Protocol (SMTP) mail support, you and your users can do the following: • Send an object as an attachment in the email. • Specify the “To,” “Cc,” and “From” in the email. • Add subject information. • Include additional information in the body message, which will accompany the object that is being delivered. Crystal Enterprise supports Multipurpose Internet Mail Extensions (MIME) encoding. Note: You must have this destination feature enabled and configured in the Report Job Server in order to schedule an object to be sent via email. 217. What are the supported formats a report instance can be saved? The following formats are supported: • Crystal Report • Excel • Excel (Data Only) • Word • Acrobat • Rich Text • Plain Text • Paginated Text • Tab-separated Text • Tab-separated Values • Character-separated Values For Excel, Paginated Text, Tab-separated Values, and Characterseparated Values, you specify certain formatting properties for the report. For example, if you select Character-separated Values, you can enter characters for the separator and delimiter; you can also select the two check boxes: “Same number formats as in report” and “Same date formats as in report.” 218. Does viewing the history of instances supported ? Yes. The History page displays all of the instances for a selected object. The Instance Time column displays the title of the instances and the date of the last update for each instance. The Status column displays the status of each instance. The Run By column indicates which user scheduled the instance. For report objects, the Format column displays which format the report is, or will be stored in and the Parameters column indicates what parameters were or will be used for each instance. For program objects, the Arguments column lists the command-line options that were or will be passed to the command line interface for each instance. Crystal Enterprise creates instances from objects. That is, a report instance is created when a report object is scheduled and run by the Report Job Server. Essentially, a report instance is a report object that contains report data that is retrieved from one or more databases. Each instance contains data that is current at the time the report is processed. You can view specific report instances on the History page of the report object. Crystal Enterprise creates a program instance each time that a program object is scheduled and run by the Program Job Server. Unlike report instances, which can be viewed in their completed format, program instances exist as records in the object history. Crystal Enterprise stores the program’s standard out and standard error in a text output file. This file appears when you click a program instance in the object History. 219. How to schedule notification for an object’s success or failure ? You can set scheduling options that automatically send notification when an object instance succeeds or fails. You can send notification using audit or email notification. You can also combine multiple notification methods, and provide different notification settings for successful and failed instances. For example, you may have a large number of reports that run a new instance every day. You need to check each instance to make sure it ran properly, and then send out emails to the users who need to know that the new report is available. With thousands of reports, it would take too much time to manually check the reports and contact the users who need the information. Using notification settings in Crystal Enterprise, you can set each object to automatically notify you when the report fails to run properly, and you can automatically inform users when new report instances run successfully. 220. How Crystal Enterprise determines success or failure for Report Objects? A report instance runs successfully if it doesn’t encounter any errors while processing the report or accessing the database. A report instance may fail if the user does not provide the correct parameters or logon information. 221. How Crystal Enterprise determines success or failure for Program Objects? For program objects, the program must run in order to succeed. If the program does not run, the instance is considered a failure. If the program runs, but does not perform the tasks it is supposed to, it is still considered a successful instance because the program object ran. Crystal Enterprise does not monitor problems with the program object’s code. 222. How Crystal Enterprise determines success or failure for Object Packages? An object package may fail if one of its components fails. To change this setting, click the object package’s Properties tab and clear the “Scheduled package fails upon individual component failure” option. You can also set scheduling options for individual objects within an object package. Note: You cannot set audit or email notification for object packages, but you can set any type of notification for the individual objects in the object package. You can also schedule object packages with events on the Schedule tab. 223. Explain about Object level notification? You can set notification at the object level, and you can apply it to all objects that can be scheduled in Crystal Enterprise. You can select unique notification options for each object, sending different types of notification for different conditions. For object packages, you can set only event notification, which will trigger an event based on success or failure of the object package. To monitor object successes and failures from a more general perspective, use the auditing functionality within Crystal Enterprise. If notification fails, then the object instance fails. For example, if an email notification sends a message to an invalid email address, then the notification fails and the object instance is recorded as a failure in the object’s history. 224. What are the types of Notification options available in Crystal enterprise? The types of notification options available are • Audit notification • Email notification • Event notification 225. How to use Audit Notification? To use audit notification, you must configure the auditing database and enable auditing for the servers. If you use auditing to monitor your Crystal Enterprise system, you can use audit notification. When you select audit notification, information about the scheduled object is written to the auditing database. You can choose to have a notification sent to the auditing database when the job runs successfully, when it fails to run, or both. Note: For the Crystal Report Server and the Crystal Program Server, you can also set audit notification on the Auditing tab. 226. How to use Email notification? You can send an email as a notification of an object instance’s success or failure. You can choose the sender and recipients of the email message. You can send an email when the instance fails and when it succeeds. For example, you could send your administrator an email if the report fails, but when the report succeeds you can automatically send a notification to everyone who needs the report to let them know it is now available. 227. How to use Event notification? You can choose a Crystal Enterprise event that will be triggered based on the completion of the object instance. Note: Notification of a scheduled object’s success or failure is not the same as alert notification. Alert notification must be built into the design of the report. For example, alert notification can send an email to you whenever a specific value in the report exceeds $1000000. In this case, the notification has nothing to do with the contents of the report - it’s just about whether or not the report object instance has failed or succeeded. 228. What is Crystal Repository? The Crystal Repository is a database in which you manage shared report elements such as text objects, bitmaps, custom functions, and custom SQL commands. When you save any Business View, it is also saved to the Crystal Repository.You can refresh a report’s repository objects with the latest version from your Crystal Repository when you publish reports to Crystal Enterprise. Alternatively, you can refresh a report’s repository objects on demand over the Web. The Crystal Repository is now hosted by the Crystal Management Server (CMS) system database. Before publishing reports that reference repository objects, move your existing Crystal Repository to the Crystal Management Server (CMS) database. 229. Can the data from one repository be copied to another repository? Yes. Crystal Enterprise enables you to copy the contents of one Crystal Repository database into another database. This procedure is also referred to as migrating a Crystal Repository database. You can migrate repository data from a different repository database (from version 9 of Crystal Reports, or version 9 of Crystal Enterprise) into your current CMS database. Or, you can migrate the repository data from your current CMS database into a different data source. 230. What is the purpose of Event based Object scheduling? Event-based scheduling provides you with additional control over scheduling objects: you can set up events so that objects are processed only after a specified event occurs. Working with events consists of two steps: creating an event and scheduling an object with events. That is, once you create an event, you can select it as a dependency when you schedule an object. The scheduled job is then processed only when the event occurs. 231. How many types of events can be created in the Events management area of the Crystal Management Console (CMC)? You can create three kinds of events: - File events - Schedule events - Custom Events 232. How to create a file-based event? When you define a file-based event, you specify a filename that the Event Server should monitor for a particular file. When the file appears, the Event Server triggers the event. For instance, you might want to make some reports dependent upon the regular file output of other programs or scripts. 233. How to create a schedule-based event? When you define a schedule-based event, you select an object whose existing recurrence schedule will serve as the trigger for your event. In this way, schedule-based events allow you to set up contingencies or conditions between scheduled objects. For instance, you might want certain large reports to run sequentially, or you might want a particular sales summary report to run only when a detailed sales report runs successfully. 234. How to create Custom events? When you create a custom event, you create a shortcut for triggering an event manually. Basically, your custom event occurs only when you or another administrator clicks the corresponding “Trigger this event” button in the CMC. 235. What is the process that occurs after creating File-based events? File-based events wait for a particular file (the trigger) to appear before the event occurs. Before scheduling an object that waits for a file-based event to occur, you must first create the file-based event in the Events management area of the CMC. Then you can schedule the object and select this event. File-based events are monitored by the Event Server. When the file that you specify appears, the Event Server triggers the event. The Crystal Management Server (CMS) then releases any schedule requests that are dependent on the event. For instance, suppose that you want your daily reports to run after your database analysis program has finished and written its automatic log file. To do this, you specify the log file in your file-based event, and then schedule your daily reports with this event as a dependency. When the log file appears, the event is triggered and the reports are processed. Note: If the file already exists prior to the creation of the event, the event is not triggered. In this case, the event is triggered only when the file is removed and then recreated. If you want an event to be triggered multiple times, you must remove and recreate the file each time. 236. What is the process that occurs after creating Schedule-based events? Schedule-based events are dependent upon scheduled objects. That is, a schedulebased event is triggered when a particular object has been processed. When you create this type of event, it can be based on the success or failure of a scheduled object, or it can be based simply on the completion of the job. Most importantly, you must associate your schedule-based event with at least two scheduled objects. The first object serves as the trigger for the event: when the object is processed, the event occurs. The second object is dependent upon the event: when the event occurs, this second object runs. For instance, suppose that you want report objects R1 and R2 to run after program object P1 runs. To do this, you create a schedule-based event in the Events management area. You specify the “Success” option for the event, which means that the event is triggered only when program P1 runs successfully. Then, you schedule reports R1 and R2 with events, and select your new schedule-based event as the dependency. Schedule program P1 with events, and set program P1 to trigger the schedulebased event upon successful completion. Now, when program P1 runs successfully, the schedule-based event is triggered, and reports R1 and R2 are subsequently processed. 237. What is the process that occurs after creating Custom events? A custom event occurs only when you explicitly click its “Trigger this event” button. As with all other events, an object based on a custom event runs only when the event is triggered within the time frame established by the object’s schedule parameters. Custom events are useful because they allow you to set up a shortcut that, when clicked, triggers any dependent schedule requests. For instance, you may have a scenario where you want to schedule a number of reports, but you want to run them after you have updated information in your database. To do this, create a new custom event, and schedule the reports with that event. When you update the data in the database and you need to run the reports, return to the event in the CMC and trigger it manually. Crystal Enterprise then runs the reports. 238. Can a custom event be triggered multiple times? Yes. You can trigger a custom event multiple times. For example, you might schedule two sets of event-based program objects to run daily— one set runs in the morning, and one set runs in the afternoon. When you first trigger the related custom event in the morning, one set of programs is run; when you trigger the event again in the afternoon, the remaining set of programs is run. If you neglect to trigger the event in the morning and trigger it only in the afternoon, both sets of programs run at that time. 239. How can the metrics be viewed. What is the information metrics consist of? The CMC allows you to view server metrics over the Web. These metrics include general information about each machine, along with details that are specific to the type of server. The CMC also allows you to view system metrics, which include information about your product version, your CMS, and your current system activity. 240. How to view current server metrics? The Servers management area of the CMC displays server metrics that provide statistics and information about each Crystal Enterprise server. The general information displayed for each server includes information about the machine that the server is running on—its name, operating system, total hard disk space, free hard disk space, total RAM, number of CPUs, and local time. The general information also includes the time the server started and the version number of the server. 241. For Input and Output File Repository servers what kind of metrics will be listed? The Metrics tab of each File Repository Server lists the root directory of the files that the server maintains, indicates the maximum idle time, and displays the number of active files and active client connections. It also lists the total available hard disk space, as well as the number of bytes sent and received. Each File Repository Server also has an Active Files tab, which lists the filename, the number of readers, and the number of writers for each active file. 242. For Web Component Servers what kind of metrics will be listed? The Metrics tab of the Web Component Server (WCS) includes statistical data about the requests that it handles. It lists the total number of requests, the current number of requests, the total number of bytes sent, the average bytes per request, the total time taken, and the average time taken per request. This information is useful in determining how efficiently the WCS is handling the requests that are sent to it. 243. For Cache servers what kind of metrics will be listed? The Metrics tab of the Cache Server displays the maximum number of processing threads, the maximum cache size, the minutes before an idle job is closed, the minutes between refreshes from the database, whether or not the database is accessed whenever a viewer’s file (object) is refreshed, the location of the cache files, the total threads running, the number of requests served, the number of bytes transferred, the cache hit rate, the number of current connections, and the number of requests that are queued. The Metrics tab also provides a table that lists the Page Servers that the Cache server has connections to, along with the number of connections made to each Page Server. 244. For Event server what kind of metrics will be listed? The Metrics tab of the Event Server contains statistics on the files that the server is monitoring. This tab includes a table showing the file name and the last time the event occurred. 245. For Page Server what kind of metrics will be listed? The Metrics tab of the Page Server contains information on how the server is running. It lists the maximum number of simultaneous report jobs, the location of temporary files, the number of minutes before an idle connection is closed, the minutes before a report job is closed, the maximum number of database records shown when previewing or refreshing a report, the oldest processed data given to a client, whether a viewer refresh always hits the database, and the setting for the Report Job Database Connection. It also shows the number of current connections, the number of requests queued, the current number of processing threads running, the total number of requests served, and the total bytes transferred. 246. For Report Application Server what kind of metrics will be listed? The Metrics tab of the Report Application Server (RAS) shows the number of reports that are open, and the number of reports that have been opened. It also shows the number of open connections, along with the number of open connections that have been created. 247. For Report Job Server what kind of metrics will be listed? The Metrics tab of the Job Server lists the current number of jobs that are being processed, the total number of requests received, the total number of failed job creations, the processing mode, and the location of its temporary files. 248. For Program Job Server what kind of metrics will be listed? The Metrics tab of the Program Job Server lists the current number of program objects that are being processed, the total number of requests received, the total number of failed program object creations, the processing mode, and the location of its temporary files. 249. For Crystal Management Server what kind of metrics will be listed? The Metrics tab of the CMS lists only the general information about the machine it is running on. The Properties tab, however, shows a list of users who have active sessions on the system. Click any user’s link to view the associated account details. 250. How to view Server metrics? To view server metrics 1 Go to the Servers management area of the CMC. 2 Click the link to the server whose metrics you want to view. 3 Click the Metrics tab. 251. How to view System metrics ? Viewing system metrics The Settings management area of the CMC displays system metrics that provide general information about your Crystal Enterprise installation. The Properties tab includes information about the product version and build. It also lists the data source, database name, and database user name of the CMS database. The Metrics tab lists current account activity, along with statistics about current and processed jobs. The Cluster tab lists the name of the CMS you are connected to, the name of the CMS cluster, and the names of other cluster members. 252. Does Crystal Enterprise supports clustering CMS and failover support? Yes. If you have a large or mission-critical implementation of Crystal Enterprise, you will probably want to run several CMS machines together in a CMS cluster. A CMS cluster consists of two or more CMS servers working together to maintain the system database. If a machine that is running one CMS fails, a machine with another CMS will continue to service Crystal Enterprise requests. This “failover” support helps to ensure that Crystal Enterprise users can still access information when there is equipment failure. 253. What are the clustering requirements to meet to add a new CMS server to a cluster? You must meet the following clustering requirements: • For best performance, the database server that you choose to host the system database must be able to process small queries very quickly. The CMS communicates frequently with the system database and sends it many small queries. If the database server is unable to process these requests in a timely manner, Crystal Enterprise performance will be greatly affected. • For best performance, run each CMS cluster member on a machine that has the same amount of memory and the same type of CPU. • Configure each machine similarly: • Install the same operating system, including the same version of operating system service packs and patches. • Install the same version of Crystal Enterprise (including patches, if applicable). • Ensure that each CMS connects to the CMS database in the same manner: whether you use native or ODBC drivers, ensure that the drivers are the same on each machine, and are a supported version. • Ensure that each CMS uses the same database client to connect to its system database, and that it is a supported version. • Check that each CMS uses the same database user account and password to connect to the CMS database. This account must have create, delete, and update rights on the system database. • Run each CMS service/daemon under the same account. (On Windows, the default is the “LocalSystem” account.) • Verify that the current date and time are set correctly on each CMS machine (including settings for daylight savings time). • Ensure that each and every CMS in a cluster is on the same Local Area Network. • If you wish to enable auditing, each CMS must be configured to use the same auditing database and to connect to it in the same manner. The requirements for the auditing database are the same as those for the system database in terms of database servers, clients, access methods, drivers, and user IDs. 254. How to set root directories and idle times of the File Repository Servers? The Properties tabs of the Input and Output File Repository Servers enable you to change the locations of the default root directories. These root directories contain all of the report objects and instances on the system. You may change these settings if you want to use different directories after installing Crystal Enterprise, or if you upgrade to a different drive (thus rendering the old directory paths invalid). 255. Hoe to modify the performance settings for the Report Application Server? The Server tab of the Report Application Server (RAS) in the Crystal Management Console allows you to modify the number of minutes before an idle connection is closed, and the maximum number of simultaneous processing threads. 256. What is “Minutes Before an Idle Connection is Closed” setting? The “Minutes Before an Idle Connection is Closed” setting alters the length of time that the RAS waits for further requests from an idle connection. Before you change this setting, it is important to understand that setting a value too low can cause a user’s request to be closed prematurely, and setting a value that is too high can affect the server’s scalability (for instance, if the ReportClientDocument object is not closed explicitly, the server will be waiting unnecessarily for an idle job to close). 257. What is the “Maximum Simultaneous Report Jobs” setting? The “Maximum Simultaneous Report Jobs” setting limits the number of concurrent reporting requests that a RAS processes. The default value is acceptable for most, if not all, reporting scenarios. The ideal setting for your reporting environment, however, is highly dependent upon your hardware configuration, your database software, and your reporting requirements. 258. What is the procedure to modify performance settings for the RAS? To modify performance settings for the RAS 1 Go to the Servers management area of the CMC. 2 Click the link to the RAS whose settings you want to change. 3 Make your changes on the Server tab. 4 Click Apply to submit changes and restart the server so that the changes take effect immediately. 259. How to set the email destination? Setting the default email (SMTP) destination 1 Go to the Servers management area of the CMC. 2 Click the link to the Job Server whose settings you want to change. 3 On the Destinations tab, click the Crystal Enterprise.Smtp link. 4 On the Properties tab, complete the required fields with the information that corresponds to your SMTP server. 260. What are the required fields for SMTP server ? • Domain Name Enter the fully qualified domain of the SMTP server. • Server Name Enter the name of the SMTP server. • Port Enter the port that the SMTP server is listening on. (This standard SMTP port is 25.) • Authentication Select Plain or Login if the Job Server must be authenticated using one of these methods in order to send email. • SMTP User Name Provide the Job Server with a user name that has permission to send email and attachments through the SMTP server. • SMTP Password Provide the Job Server with the password for the SMTP server. • From Provide the return email address. In this example, the SMTP server resides in the crystaldecisions.com domain. Its name is EMAIL_SERV and it is listening on the standard SMTP port. Plain text authentication is being used, and an account called CrystalJobAccount has been created on the SMTP server for use by the Report Job Server. 261. What is the purpose of Auditing? Auditing allows you to monitor and record key facts about your Crystal Enterprise system. Having information about who is using your system and which objects they are accessing allows you to answer systemlevel questions like “which groups within the company use our Crystal Enterprise system the most?” or “how many concurrent user licenses are we using at any given time?”. Auditing also allows you to better administer individual user accounts and reports by giving you more insight into what actions users are taking and which reports they are accessing. This information lets you be more proactive in managing the operation and deployment of your Crystal Enterprise system, while helping you better evaluate the value that Crystal Enterprise provides to your organization. 262. How does auditing work? The Crystal Management Server (CMS) acts as the system auditor, while each Crystal Enterprise server that controls actions that you can monitor is an auditee. To audit an action in Crystal Enterprise, you must first determine which server controls that action. Then you must enable auditing of that action in the Servers management area of the Crystal Management Console. As the auditee, the Crystal Enterprise server will then begin to record these audit actions in a local log file. As the auditor, the CMS controls the overall audit process. Each server writes audit records to a log file local to the server. At regular intervals the CMS communicates with the auditee servers to request copies of records from the auditee’s local log files. When the CMS receives these records it writes data from the log files to the central auditing database. The CMS also controls the synchronization of audit actions that occur on different machines. Each auditee provides a time stamp for the audit actions that it records in its log file. To ensure that the time stamps of actions on different servers are consistent, the CMS periodically broadcasts its system time to the auditees. The auditees then compare this time to their internal clocks. If differences exist, they make a correction to the time stamp they record in their log files for subsequent audit actions. Once the data is in the auditing database you can run pre-configured reports against the database or design custom reports to suit your own needs. 263. Which actions can I audit? You can use auditing to track the actions of individual users of Crystal Enterprise as they log in and out of the system, access data, or create file-based events. You can also monitor system actions like the success or failure of scheduled objects. For each action, Crystal Enterprise records the time of the action, the name and user group of the user who initiated the action, the server where it was performed, and a variety of other parameters. Once you have collected this data, you can use a custom or pre-configured report to view the raw data, or to answer more complex queries such as “how many concurrent licenses are we using at a given time?”. 264. What are the list of audit actions for folders? Folders A folder is created. CMS A folder is deleted. A folder is modified. (The name, location, or description of a folder is modified.) 265. What are the list of audit actions for Reports? Reports A report has been viewed successfully. Cache Server report could not be viewed. A report is opened successfully using: • the Web Report Design Wizard. • the Advanced DHTML viewer. • a custom application that uses RAS SDK. 266. What are the list of audit actions for Report Application Server? RAS A report fails to open. A report has been created successfully using: • the Web Report Design Wizard. • a custom application that uses the RAS SDK. Or A report has been saved successfully using the Web Report Design Wizard. A report fails to be created. Or A report fails to save (using the Web Report Design Wizard). A report is saved successfully (using a custom application based on the RAS SDK). A report fails to save using a custom application based on the RAS API. 267. What are the list of audit actions for Users? Users A concurrent user logon succeeds. CMS A named user logon succeeds. A user logon fails. A user’s password is changed. User logs off. 268. How CMS controls the synchronization of audit actions? Controlling synchronization of audit actions The CMS controls the synchronization of audit actions that occur on different machines. The CMS periodically broadcasts its system time to the auditees in UTC (Coordinated Universal Time). The auditees compare this time to their internal clocks, and then make the appropriate correction to the time stamp (in UTC) they record for subsequent audit actions. This correction affects only the time stamp that the auditee records in its audit log file. The auditee does not adjust the system time of the machine on which it is running. By default, the CMS broadcasts its system time every 60 minutes. 269. What are the various command-line options available to change the interval of Audit actions? -AuditeeTimeSyncInterval minutes You can turn off this option by setting minutes to zero. This built-in method of time synchronization will be accurate enough for most applications. For more accurate and robust time synchronization, configure the auditee and auditor machines to use an NTP (Network Time Protocol) client, and then turn off internal synchronization by setting -AuditeeTimeSyncInterval 0 Tip: If you have a CMS cluster, apply the same command-line options to each server. Only one CMS in the cluster acts as the auditor. However, if this CMS fails, another CMS takes over auditing. This CMS will apply its own command-line options. If these options are different than those of the original auditor, audit behavior may not be what you expect. 270. How to identify the audit action recorded in Crystal Enterprise System database? The auditing database collects records of all auditable actions that occur in your Crystal Enterprise system. There are two ways of identifying which kind of action each database record represents: the numeric AuditID and the text-based AuditString. Knowing the audit IDs and the exact audit strings can help you construct queries for particular actions in your custom reports. Some audit strings are the same every time they are generated. For example, if a user changes their password, the audit string is always “User password has been changed.” Other audit strings vary because they include additional information about the action. For example, if a user logon fails, the audit string includes a section that describes the reason for the failure. When a logon fails because the user mistyped a user name, the complete audit string is “User logon failed. Reason: Unknown user.” If a logon fails because the user entered the wrong password, the complete audit string is “User logon failed. Reason: Invalid password.” 271. What does the CMS audit id and string “65537 Concurrent user logon succeeded” represents? 65537 Concurrent user logon succeeded. The user logged on successfully, using a concurrent user license. 272. What does the CMS audit id and string “65538 Named user logon succeeded” represents? 65538 Named user logon succeeded. The user logged on successfully, using a named user license. 273. What does the CMS audit id and string “65540 User logged off” represents? 65540 User logged off the enterprise system. 274. What does the CMS audit id and string “65541 User password changed” represents? 65541 User password has been changed. 275. What does the CMS audit id and string “65539 User logon failed” represents? 65539 User logon failed. Reason: VariableString No valid license key found. Logon failed because there was no valid license key available. Only guest and administrator can logon in Standard mode. In Standard mode, the only valid user names are guest and administrator. The logon failed because the user attempted to log on using a different user ID. Unknown user. Logon failed because the user entered a user name that is not valid on this system. User account disabled. Logon failed because the user’s account is disabled. Concurrent user limit reached. Logon failed because all concurrent user licenses are already in use. Invalid password. Logon failed because the user entered an invalid password. 276. What does the folder audit id and string “65542 New folder created” represents? 65542 New folder created. A new folder is created, or an existing folder is copied. Note that this audit string will not be recorded when a new user account is created, even though creating a user creates a user folder. 277. What does the folder audit id and string “65543 Folder VariableString deleted from path” represents? 65543 Folder VariableString deleted from path VariableString2 VariableString1 contains the folder name A folder is deleted. Note that this audit string will be recorded when a user account (and therefore the user’s folder) is deleted. VariableString2 contains the folder’s path 278. What does the folder audit id and string “65544 Folder modified” represents? 65544 Folder modified. The name, location, or description of the folder was changed. 279. What does the folder audit id and string “65545 Job failed. Reason: VariableString unresponsive Job Server Child process” represents? 65545 Job failed. Reason: VariableString unresponsive Job Server Child process. A scheduled report or scheduled program failed to run because communication with the running instance was lost, and the scheduled time for running the job expired. Note: This action must be audited by the CMS as Job Servers are not aware of losing communications with a job. 280. What does the Cache Server audit id and string “65545 Job failed. Reason: VariableString unresponsive Job Server Child process” represents? 65545 Job failed. Reason: VariableString unresponsive Job Server Child process. A scheduled report or scheduled program failed to run because communication with the running instance was lost, and the scheduled time for running the job expired. Note: This action must be audited by the CMS as Job Servers are not aware of losing communications with a job. 281. What does the Cache Server audit id and string “196609 Report with VariableString data viewed successfully” represents? 196609 Report with VariableString data viewed successfully. saved User successfully viewed a report that has saved data. live User successfully viewed a report that has live data. 282. What does the Cache Server audit id and string “196610 Report viewed unsuccessfully” represents? 196610 Report viewed unsuccessfully. Reason VariableString Many options User attempted to view a report object, but was not successful for the reason listed in the variable section of the audit string. 283. What does the following Job Server audit id and string represents? 327681 Job successful. Elapsed time: VariableString seconds. Elapsed time in seconds The object ran as scheduled and the job completed successfully within the indicated time. 284. What does the following Job Server audit id and string represents? 327682 Job failed Elapsed time: VariableString seconds. The scheduled job did not complete successfully. The attempt took the indicated amount of time. 285. What does the following Job Server audit id and string represents? 327683 Job failed. Elapsed time: VariableString seconds. Job will be retried by the CMS. The scheduled job did not complete successfully. The attempt took the indicated amount of time. The job will will be retried by the CMS at a later time. 286. What does the Job Server audit id and string “262145 Event registered” represents? 262145 Event registered User creates a file-based event that can be used to schedule objects. 287. What does the Job Server audit id and string “262146 Event unregistered” represents? 262146 Event unregistered User deletes a file-based event. 288. What does the Job Server audit id and string “262147 Event updated” represents? 262147 Event updated Event object was modified by a user, or by the system. Events are updated when a user modifies the name or description of the file-based event. 289. What does the Job Server audit id and string “262148 Event triggered” represents? 262148 Event triggered File-based event was initiated. 290. What does the Report Application Server audit id and string “458753 Report was opened for viewing and/or modification” represents? 458753 Report was opened for viewing and/or modification User opened a report for viewing or modification. Note: In a few cases, this audit string may be generated when the report opens but cannot be viewed. This may occur when: • There are problems with the database setup for the report. For example, you may see this message when the database driver for the report is not present on the client machine • A processing extension associated with the report aborts viewing, or fails. • The report used Business Views and the user did not have permissions to refresh the underlying data connections. • The machine running the RAS ran out of space in its temporary directory. 291. What does the Report Application Server audit id and string “458754 Report was saved to the CMS” represents? 458754 Report was saved to the CMS. An existing report was saved. Note: This AuditID is generated when a custom application created using the RAS SDK saves a report (using the Save method). 292. What does the Report Application Server audit id and string “458755 Report was created and saved to the CMS” represents? 458755 Report was created and saved to the CMS A new report was created and saved. Note: • This AuditID is generated when a custom application created using the RAS SDK saves a new report (using the Save As method). • This AuditID is also generated when an existing report is saved using the Web Design Report Wizard. 293. What does the Report Application Server audit id and string “458756 Report could not be opened” represents? 458756 Report could not be opened. Reason: VariableString Many options The report could not be opened by the RAS, for the reason listed in the variable section of the audit string. 294. What does the Report Application Server audit id and string “458757 Report could not be saved to the CMS” represents? 458757 Report could not be saved to the CMS. Reason: VariableString Many options An existing report could not be saved by RAS, for the reason listed in the variable section of the audit string. Note: This AuditID is generated when a custom application created using the RAS SDK cannot save a new report (using the Save As method). 295. What does the Report Application Server audit id and string “458758 Report could not be created in the CMS” represents? 458758 Report could not be created in the CMS. Reason: VariableString Many options A newly created report could not be saved by RAS, for the reason listed in the variable section of the audit string. Note: This AuditID is also generated when an existing report fails to save from the Web Design Report Wizard. 296. What are Server Groups in the context of Crystal Enterprise System? Server groups provide a way of organizing your Crystal Enterprise servers to make them easier to manage. That is, when you manage a group of servers, you need only view a subset of all the servers on your system. More importantly, server groups are a powerful way of customizing Crystal Enterprise to optimize your system for users in different locations, or for objects of different types. If you group your servers by region, you can easily set up default processing settings, recurrent schedules, and schedule destinations that are appropriate to users who work in a particular regional office. You can associate an object with a single server group, so the object is always processed by the same servers. And you can associate scheduled objects with a particular server group to ensure that scheduled objects are sent to the correct printers, file servers, and so on. Thus, server groups prove especially useful when maintaining systems that span multiple locations and multiple time zones. If you group your servers by type, you can configure objects to be processed by servers that have been optimized for those objects. For example, processing servers need to communicate frequently with the database containing data for published reports. Placing processing servers close to the database server that they need to access improves system performance and minimizes network traffic. Therefore, if you had a number of reports that ran against a DB2 database, you might want to create a group of Page Servers that process reports only against the DB2 database server. If you then configured the appropriate reports to always use this Page Server group for viewing, you would optimize system performance for viewing these reports. After creating server groups, configure objects to use specific server groups for scheduling, or for viewing and modifying reports. You can change the status, obtain metrics, and configure your servers in the Server Groups management area—just as you would in the Servers management area. The only difference is that you see only the servers that you added to the server group. 297. What are Server SubGroups in the context of Crystal Enterprise System? Working with server subgroups Subgroups of servers provide you with a way of further organizing your servers. A subgroup is just a server group that is a member of another server group. For example, if you group servers by region and by country, then each regional group becomes a subgroup of a country group. To organize servers in this way, first create a group for each region, and add the appropriate servers to each regional group. Then, create a group for each country, and add each regional group to the corresponding country group. There are two ways to set up subgroups: you can modify the subgroups of a server group, or you can make one server group a member of another. The results are the same, so use whichever method proves most convenient. 298. Explain the One-machine setup configuration? One-machine setup This basic configuration separates the Crystal Enterprise servers from the rest of your reporting environment and from your web server, and installs all Crystal Enterprise servers on a single machine. This grants the Crystal Enterprise servers their own set of processing resources, which they do not have to share with database and web server processes. These are the general steps to setting up this configuration for the default Windows installation of Crystal Enterprise: • Install all of the Crystal Enterprise servers on a single, dedicated machine. • Install and configure the Web Connector on your web server machine. • Run the CMS database on your database server. If you are still using the MSDE CMS database on Windows, migrate the CMS database to a supported database server. See the Platforms.txt file included with your product distribution for a list of supported database servers. For a UNIX installation (or for a Windows installation that uses the Crystal Enterprise Java SDK), install your Crystal Enterprise servers on the same machine as your Java web application server and the Web Component Adapter. 299. Explain the Three-machine setup configuration? Three-machine setup This second configuration divides the Crystal Enterprise processing load in a logical manner, based on the types of work performed by each server. In this way, you prevent the server components from having to compete with each other for the same hardware and processing resources. In addition, this scenario prepares your system for further expansion to provide redundancy. Note: It is recommended that you use three multi-processor machines (dual-CPU or better), with at least 2 GB RAM installed on each machine. These are the general steps to setting up this configuration for the default Windows installation of Crystal Enterprise: • Install the CMS and the Event Server on one machine. Tip: Here, the Event Server is installed on the same machine as the CMS. In general, however, the Event Server should be installed on the machine where your monitored, file-based events occur. • Install the WCS and the Cache Server on the second machine. • Install the Page Server, the Job Server, the Report Application Server (RAS), and the Input and Output File Repository Servers on the third machine. For a UNIX installation (or for a Windows installation that uses the Crystal Enterprise Java SDK), install the Java web application server and the Web Component Adapter on the same machine as your Cache Server. Note: As with the one-machine setup, install your Crystal Enterprise servers on machines that are separate from your web server and database servers. This grants the Crystal Enterprise servers their own set of processing resources, which they do not have to share with database and web server processes. 300. Explain the Six-machine setup configuration? Six-machine setup This third configuration mirrors the three-machine setup. You maintain the logical breakdown of processing based on the types of work performed by each server, but you increase the number of available machines and servers for redundancy and fault-tolerance. For instance, if a server stops responding, or if you need to take one or two machines offline completely, you need not interrupt Crystal Enterprise requests in order to service the system. This tested configuration is designed to meet the reporting requirements of 85% of all deployment scenarios. If you have further requirements or more advanced configuration needs, contact your Crystal Decisions sales representative for additional assistance. Note: It is recommended that you use six multi-processor machines (dual-CPU or better), with at least 2 GB RAM installed on each machine. These are the general steps to setting up this configuration for the default Windows installation of Crystal Enterprise: • Install the three-machine setup first. Verify that Crystal Enterprise is functioning correctly. • Install a second CMS/Event Server pair on the fourth machine. This machine must have a fast network connection (minimum 10 Mbps) to the CMS that you have already installed. Cluster the two CMS services, so they share the task of maintaining the CMS database. Ensure that each CMS accesses the CMS database in exactly the same manner (the same database client software, the same database user name and password, and so on). • Install a second WCS/Cache Server pair on the fifth machine. Modify your Web Connector configuration to ensure that the Web Connector communicates with the two distinct WCS hosts. or Install a second Java web application server and Web Component Adapter on the fifth machine, along with a second Cache Server. Consult your web application server documentation for information on loadbalancing and clustering your application servers. Ensure that the web.xml file is configured correctly for each WCA. • Install a second Page Server, Job Server, and RAS on the remaining machine, along with a pair of Input and Output File Repository Servers. Ensure that all Page Servers and Job Servers can access your reporting database in exactly the same manner. Install and configure any required database client software similarly on each machine, along with any ODBC DSNs that are required for your reports. Note: As with the one-machine setup, install your Crystal Enterprise servers on machines that are separate from your web server and database servers. This grants the Crystal Enterprise servers their own set of processing resources, which they do not have to share with database and web server processes. 301. How to increase the over all system capacity to be more scalable? As the number of report objects and users on your system increases, you can increase the overall system capacity by clustering two (or more) Crystal Management Servers (CMS). You can install multiple CMS services/daemons on the same machine. However, to provide server redundancy and fault-tolerance, you should ideally install each cluster member on its own machine. CMS clusters can improve overall system performance because every Crystal Enterprise request results, at some point, in a server component querying the CMS for information that is stored in the CMS database. When you cluster two CMS machines, you instruct the new CMS to share in the task of maintaining and querying the CMS database. 302. How to increase the over all scheduling reporting capacity to be more scalable? All Crystal reports that are scheduled are eventually processed by a Report Job Server. You can expand Crystal Enterprise by running individual Report Job Servers on multiple machines, or by running multiple Report Job Servers on a single multi-processor machine. If the majority of your reports are scheduled to run on a regular basis, there are several strategies you can adopt to maximize your system’s processing capacity: • Install the Report Job Server in close proximity to (but not on the same machine as) the database server against which the reports run. Ensure also that the File Repository Servers are readily accessible to all Report Job Servers (so they can read report objects from the Input FRS and write report instances to the Output FRS quickly). Depending upon your network configuration, these strategies may improve the Report Job Server’s processing speeds, because there is less distance for data to travel over your corporate network. • Verify the efficiency of your reports. When designing reports in Crystal Reports, there are a number of ways in which you can improve the performance of the report itself, by modifying record selection formulas, using the database server’s resources to group data, incorporating parameter fields, and so on. • Use event-based scheduling to create dependencies between large or complex reports. For instance, if you run several very complex reports on a regular, nightly basis, you can use Schedule events to ensure that the reports are processed sequentially. This is a useful way of minimizing the processing load that your database server is subject to at any given point in time. • If some reports are much larger or more complex than others, consider distributing the processing load through the use of server groups. For instance, you might create two server groups, each containing one or more Report Job Servers. Then, when you schedule recurrent reports, you can specify that it be processed by a particular server group to ensure that especially large reports are distributed evenly across resources. • Increase the hardware resources that are available to a Report Job Server. If the Report Job Server is currently running on a machine along with other Crystal Enterprise components, consider moving the Report Job Server to a dedicated machine. If the new machine has multiple CPUs, you can install multiple Report Job Servers on the same machine (typically no more than one service/ daemon per CPU). 303. How to increase the on-demad viewing capacity to be more scalable? When you provide many users with View On Demand access to reports, you allow each user to view live report data by refreshing reports against your database server. For most requests, the Page Server retrieves the data and performs the report processing, and the Cache Server stores recently viewed report pages for possible reuse. However, if users use the Advanced DHTML viewer, the Report Application Server (RAS) processes the request. If your reporting requirements demand that users have continual access to the latest data, you can increase capacity in the following ways: • Increase the maximum allowed size of the cache. • Verify the efficiency of your reports. When designing reports in Crystal Reports, there are a number of ways in which you can improve the performance of the report itself, by modifying record selection formulas, using the database server’s resources to group data, incorporating parameter fields, and so on. • Increase the number of Page Servers that service requests on behalf of any single Cache Server. You can install additional Page Servers on multiple machines, or you can run multiple Page Servers on a single multi-processor machine (typically no more than one service/daemon per CPU). • Increase the number of Page Servers, Cache Servers, and Report Application Servers on the system, and then distribute the processing load through the use of server groups. For instance, you might create two server groups, each containing one or more Cache Server/Page Server pairs along with one or more Report Application Servers. You can then specify individual reports that should always be processed by a particular server group. 304. How to improve the web response speeds to be more scalable? Because all user interaction with Crystal Enterprise occurs over the Web, you may need to investigate a number of areas to determine exactly where you can improve web response speeds. These are some common aspects of your deployment that you should consider before deciding how to expand Crystal Enterprise: • Assess your web server’s ability to serve the number of users who connect regularly to Crystal Enterprise. Use the administrative tools provided with your web server software (or with your operating system) to determine how well your web server performs. If the web server is indeed limiting web response speeds, consider increasing the web server’s hardware and/or setting up a “web farm” (multiple web servers responding to web requests to a single IP address). • Take into account the number of users who regularly access your system. If you are running a large deployment, ensure that you have set up a CMS cluster. If you find that a single application server (that is, the WCS or the Java web application server) inadequately services the number of scripting requests made by users who access your system on a regular basis, consider the following options: • Increase the hardware resources that are available to the application server. If the application server is currently running on the web server, or on a single machine with other Crystal Enterprise components, consider moving the application server to a dedicated machine. If the new machine has multiple CPUs, you can install multiple WCS services/daemons or Java application servers on the same machine (typically no more than one per CPU). • If you are using the default Windows installation of Crystal Enterprise, set up two (or more) WCS machines to take advantage of the dynamic load balancing that is built into the Web Connector components. The Web Connector distributes the processing load evenly across WCS hosts: each new Crystal Enterprise session is sent to the least used WCS. This also provides you with the benefits of being able to take one WCS machine offline for service, without bringing down the entire system. • If you are using the UNIX installation of Crystal Enterprise (or have configured your Windows installation to use the Crystal Enterprise Java SDK), consider setting up two (or more) Java application servers. Note: Crystal Enterprise does not support the session-replication functionality provided by some Java web application servers. 305. How to configure the web farm for load balancing? Configuring your web farm for load balancing A web farm is a group of two or more web servers working together to handle browser requests. If you are using the default installation of Crystal Enterprise on Windows, the Web Connectors that reside on each of the web servers need to be configured so they are aware of the Web Component Servers they should communicate with. Note: Crystal Enterprise supports web farms with and without affinity masks. After the connectors have been configured, they can load-balance requests between the Web Component Servers. When a web server establishes a connection with a Web Component Server, it uses a round robin algorithm to identify the next available Web Component Server. The only exceptions to this occur when a web server uses a CGI web connector, or if a session state was created on a previous request to the Web 306. How to utilze the existing resources more efficiently ? One of the most effective ways to improve the performance and scalability of your system is to ensure that you get the most from the resources that you allocate to Crystal Enterprise. Optimizing network speed and database efficiency When thinking about the overall performance and scalability of Crystal Enterprise, don’t forget that Crystal Enterprise depends upon your existing IT infrastructure. 307. What are the bandwidth considerations to be more scalable? Crystal Enterprise uses your network for communication between servers and for communication between Crystal Enterprise and client machines on your network. Make sure that your network has the bandwidth and speed necessary to provide Crystal Enterprise users with acceptable levels of performance. Consult your network administrator for more information. 308. How to use the appropriate processing server to be more scalable? When users view a report using the Advanced DHTML viewer, the report is processed by the Report Application Server rather than the Page Server and Cache Server. The Report Application Server is optimized for report modification. For simple report viewing you can achieve better system performance if users select the DHTML viewer, the Active X viewer, or the Java viewer. These report viewers process reports against the Page Server. If the ability to modify reports is not needed at your site, you can disable the Advanced DHTML viewer for all users of Crystal Enterprise. 309. How to disable the Advanced DHTML viewer ? Disabling the Advanced DHTML Viewer 1 In the Crystal Management Console, select Crystal Applications. 2 Select Web Desktop. 3 On the Preferences tab, go to the Viewers area. Clear the option labeled Allow users to use the Advanced DHTML Viewer. 4 Click Update. 310. How to Optimize Crystal Enterprise for report viewing ? Optimizing Crystal Enterprise for report viewing Crystal Enterprise allows you to enable data sharing, which permits different users accessing the same report object to use the same data when viewing a report on demand or when refreshing a report. Enabling data sharing reduces the number of database calls, thereby reducing the time needed to provide report pages to subsequent users of the same report while greatly improving overall system performance under load. However, to get full value from data sharing, you must permit data to be reused for some period of time. This means that some users may see “old” data when they view a report on demand, or refresh a report instance that they are viewing. 311. What is a firewall? A firewall is a security system that protects one or more computers from unauthorized network access. A firewall restricts people to entering and leaving your network at a carefully controlled point. It also prevents attackers from getting close to your other defenses. Typically, a firewall protects a company’s intranet from being improperly accessed through the Internet. A firewall can enforce a security policy, log Internet activity, and be a focus for security decisions. A firewall can’t protect against malicious insiders or connections that don’t go through it. A firewall also can’t set itself up correctly or protect against completely new threats. 312. What are TCP/IP and packets? TCP/IP (Transmission Control Protocol/Internet Protocol) is the communications protocol used on the Internet. The units of data transmitted through a TCP/IP network are called packets. Packets are typically too small to contain all the data that is sent at any one time, so multiple packets are required, each containing a portion of the overall data. When data is sent by TCP/IP, the packets are constructed such that a layer for each protocol is wrapped around each packet. Typically, TCP/IP packets have the following layers: • Application layer (for example, FTP, telnet, and HTTP). • Transport layer (TCP or UDP). • Internet layer (IP). • Network Access layer (for example, ethernet and ATM). At the application layer, the packet consists simply of the data to be transferred. As the packet moves through the layers, each layer adds a header to the packet, preserving the data from the previous level. These headers are used to determine the packet’s destination and to ensure that it arrives intact. When the packet reaches its destination, the process is reversed: the layers are sequentially removed until the transferred data is available to the destination application. 313. What are Ports? Ports are logical connection points that a computer uses to send and receive packets. With TCP/IP, ports allow a client program to specify a particular server program on a computer in a network. High-level applications that use TCP/IP have ports with pre-assigned numbers. For instance, when you visit a typical HTTP site over the Web, you communicate with the web server on port 80, which is the pre-assigned port for HTTP communication. Other application processes are given port numbers dynamically for each connection. When a service or daemon initially is started, it binds to its designated port number. When any client program wants to use that server, it must also request to bind to the designated port number. Valid port numbers range from 0 to 65536, but ports 0 to 1024 are reserved for use by certain privileged services. 314. What are the various types of Firewalls? Firewalls primarily function using at least one of three methods: packet filtering, Network Address Translation (NAT), and proxy services. Crystal Enterprise works with these firewall types. Packet filtering rejects TCP/IP packets from unauthorized hosts and rejects connection attempts to unauthorized services. NAT translates the IP addresses of internal hosts to hide them from outside monitoring. NAT is also called IP masquerading. Proxy services make high-level application connections on behalf of internal hosts to completely break the network layer connection between internal and external hosts. Packet filtering Packet filtering deletes packets before they are delivered to the destination computer. 315. What are the conditions packet filtering uses to delete the packets? Packet filtering can delete packets based on the following: • The address the data is coming from. • The address the data is going to. • The session and application ports being used to transfer the data. • The data contained within the packet. 316. What are the types of packet filtering firewalls will work with Crystal Enterprise ? Typically there are two types of packet filtering: stateful and stateless. Stateful packet filters remember the state of connections at the network and session layers by recording the established session information that passes through the filter gateway. The filter then uses that information to discriminate valid return packets from invalid connection attempts. Stateless packet filters do not retain information about connections in use; instead, they make determinations packet-by-packet based only on the information contained within the packet. Firewalls that employ packet filtering will work with Crystal Enterprise. 317. What is the purpose of Network Address Translation? Network Address Translation Network Address Translation (NAT) converts private IP addresses in a private network to globally unique, public IP addresses for use external to that network. The main purpose of NAT is to hide internal hosts. As outgoing packets are routed through the firewall, NAT hides internal hosts by converting their IP addresses to an external address. Once the translation is complete, the firewall sends the data payload on to its original destination; thus, NAT makes it appear that all traffic from your site comes from one (or more) external IP addresses. The firewall maintains a translation table to keep track of the address conversions that it has performed. When an incoming response arrives at the firewall, the firewall uses this translation table to determine which internal host should receive the response. Because this type of firewall essentially sends and receives data on behalf of internal hosts, NAT can also be described as a simple proxy. 318. What are the various types of Network Address Translation? There are two basic types of NAT: • Static translation (port forwarding) grants a specific internal host a fixed translation that never changes. For example, if you run an email server inside a firewall, you can establish a static route through the firewall for that service. • Dynamic translation (automatic, hide mode, or IP masquerade) shares a small group of external IP addresses amongst a large group of internal clients for the purpose of expanding the internal network address space. Because a translation entry does not exist until an internal client establishes a connection out through the firewall, external computers have no way to address an internal host that is protected using a dynamically translated IP address. Note: Some protocols do not function correctly when the port is changed. These protocols will not work through a dynamically translated connection. Crystal Enterprise and static translation NAT can be configured so that they work together. 319. Describe SOCKS and SOCKS proxy servers? SOCKS proxy servers SOCKS is a networking protocol that enables computers on one side of a SOCKS server to access computers on the other side of a SOCKS server without requiring a direct IP connection. A SOCKS server redirects connection requests from computers on one side of it to computers on the other side of it. A SOCKS server typically authenticates and authorizes requests, establishes a proxy connection, and relays data between the internal and external networks. Crystal Enterprise supports and works with SOCKS servers. SOCKS servers work by listening for service requests from internal clients. When an external request is made, the SOCKS server sends the requests to the internal network as if the SOCKS server itself was the originating client. When the SOCKS server receives a response from the internal server, it returns that response to the original client as if it were the originating external server. This effectively hides the identity and the number of clients on the internal network from examination by anyone on the external network. 320. What are the typical firewall scenarios applicable for Crystal Enterprise system? Typical firewall scenarios If all users of your Crystal Enterprise system are on your internal network, there is no need to perform any special configuration of your firewalls or of Crystal Enterprise. Simply place all Crystal Enterprise components on computers inside your firewall. However, if you need to provide access to Crystal Enterprise to external users, you must consider where to place each Crystal Enterprise component, and how to configure both Crystal Enterprise and your firewalls in order to provide this access. Web Connector separated from the WCS by a firewall In most cases, clients access protected information through a web server running in a Demilitarized Zone (DMZ). A DMZ is a network area that is neither part of the internal network nor directly part of the Internet. Typically, the DMZ is set up between two firewalls: an outer firewall and an inner firewall. The only Crystal Enterprise component that needs to provide direct service to external clients is the Web Connector, which must be installed on the web server. The most logical and secure way to position the web server and the Web Connector is to place them in the DMZ. All the other Crystal Enterprise components can then be placed on the internal network. Application tier separated from the CMS by a firewall You may chose to place your application server in the Demilitarized Zone (DMZ), while placing the Crystal Management Server (CMS) and all other Crystal Enterprise servers on the internal network. Crystal Enterprise requires that the CMS and the remaining server components are not separated from one another by firewalls. In a Windows installation of Crystal Enterprise, the Web Component Server (WCS) acts as an application server. So this scenario also covers the case where the WCS is in the DMZ. Note: • Placing your application server in the DMZ is less secure than placing it on your internal network. For maximum security, you may prefer to place your Crystal Enterprise application server on your internal network. • The issues raised by separating the web server (and Web Connector) from the WCS by a firewall are independent of the issues raised by firewalling the WCS from the CMS. If you have a firewall in each location, you must consider the configuration issues for each firewall independently, and perform both sets of configuration. Thick client separated from the CMS by a firewall You can publish reports or analytic objects to Crystal Enterprise by saving these objects to Crystal Enterprise from within Crystal Reports or Crystal Analysis, or by using the Crystal Import Wizard or Crystal Publishing Wizard. However, if there is a firewall between the computer running one of these thick clients and the Crystal Management Server (CMS), this operation fails. You must configure your CMS, your File Repository Servers, and your firewall if you want to support this network configuration. 321. How to configure the Network Address Translation? Configuring for Network Address Translation If you use Network Address Translation (NAT) only on the outer firewall of the DMZ, then no special configuration is required for Crystal Enterprise to communicate properly. However, if you separate Crystal Enterprise components using NAT, you need to configure these components to communicate properly through the firewall. Note: You can configure Crystal Enterprise to communicate properly across NAT firewalls that use static IP translation; however, Crystal Enterprise cannot communicate across a firewall whose IP translation is dynamic. Web Connector separated from the WCS by NAT When the Web Connector (WC) is in the DMZ, you must configure the Web Connector to make initial contact with the Web Component Server (WCS) using a specific hostname and port number. Next you must configure the WCS to respond appropriately to communications from the Web Connector. This is accomplished using the following command -port FQDN:6401 -requestport fixed The -port command configures the WCS to listen for contact from the WC on the specified port (6401 is the default value). If a value is specified, -port also configures the WCS to send the WC an externally routable, fully qualified domain name (FQDN) for the WC to use when communicating with the WCS in subsequent interchanges. You must specify this FQDN when the Web Connector and the WCS are separated by a firewall that uses Network Address Translation. Otherwise the WCS sends the WC an internal address for subsequent communications, and the WC cannot communicate with the WCS through the firewall. The -requestport command is used to configure the WCS to use a fixed port number for all subsequent communications with the WC. When the WC and WCS are separated by a firewall that uses NAT, you must specify this port number. You can use any free port number for fixed. Finally, you must configure your firewall to allow communications that use the addresses and ports that you’ve specified. 322. How to configure the web connector on Windows? To configure the Web Connector on Windows 1 Start the CCM. 2 Stop the World Wide Web Publishing Service. 3 On the toolbar, click Configure web connector. 4 In the Web Component Servers area, click Add. If your WCS Host Name is already listed, select it and click Edit. 5 In the WCS Host Name field, type the name of the machine that is running the WCS. This machine must be routable from the web server that is running the Web Connector. 6 If you have customized the WCS so that it listens on a port other than the default, type your new port number in the Port field. Otherwise, ensure that the default port number (6401) appears. 7 Click OK twice to return to the CCM. 8 Start the World Wide Web Publishing Service. 323. How to configure the Web Connector on UNIX? To configure the Web Connector on UNIX If your web server is running on UNIX, stop the web server and then set the WCSHOST or WCSHosts variable to the name of the machine that is running the WCS. This machine must be routable from the web server that is running the Web Connector. The WCSHOST or WCSHosts variable is defined in the configuration file that corresponds to your web server. 324. How to configure the WCS? To configure the WCS 1 Start the CCM. 2 Stop the Crystal Web Component Server. 3 On the toolbar, click Properties. 4 In the Command box, add the following option: -port FQDN:6401 -requestport portnum For the -port command, replace FQDN with either the fully qualified domain name of the machine that is running the WCS. This machine must be routable from the web server that is running the Web Connector. In the -requestport command, substitute any valid free port number for portnum. 5 If you want to customize the WCS so that it listens on a port other than the default, substitute your new port number for the default value of 6401. Tip: If you change the default port number of the WCS you must perform additional system configuration. Before changing the port number, see “Changing the default server port numbers” on page 321. 6 Click OK to return to the CCM. 7 Start the Crystal Web Component Server. 325. What are the key points to be considered while troubleshooting? In general, consider the following key points when troubleshooting: • Ensure that client and server machines are running supported operating systems, database servers, database clients, and appropriate server software. For details, consult the Platforms.txt file, included with your product distribution. • Verify that the problem is reproducible, and take note of the exact steps that cause the problem to recur. On Windows NT/2000, use the sample reports and sample data included with the product to confirm whether or not the same problem exists. • Determine whether the problem is isolated to one machine or is occurring on multiple machines. For instance, if a report fails to run on one processing server, see if it runs on another. If the problem is isolated to one machine, pay close attention to any configuration differences in the two machines, including operating system versions, patch levels, and general network integration. • If the problem relates to connectivity or functionality over the Web, check that Crystal Enterprise is integrated properly with your web environment • If the problem relates to report viewing or report processing, verify your database connectivity and functionality from each of the affected machines. Use Crystal Reports to verify that the report can be viewed properly. If the Job or Page Servers are running on Windows, open the report in Crystal Reports on the server machine and check that you can refresh the report against the database Error detected by database driver When a processing server receives an unknown message from the database driver, an error message similar to the following appears: Error Detected By Database DLL 326. How to troubleshoot database driver errors? To troubleshoot database driver errors 1 Verify the database drivers for consistency. Ensure that the database driver (ODBC or native) used when the report was designed in Crystal Reports matches the database driver that is installed on the Job Server, Page Server, and RAS. If the Job Server or the Page Server is installed on UNIX, then the database driver will not match exactly (the UNIX version will be a .so file instead of a .dll). However, the Windows/UNIX versions of each driver should correspond in regards to version numbers or driver release. 2 Disable the report’s “Use Indexes or Server for Speed” option. Open the report in Crystal Reports and, on the File menu, click Options. On the Database tab, clear the “Use Indexes or Server for Speed” option. Disabling this option may resolve database driver errors. 3 Verify the report’s SQL statement and ensure that it has not been edited manually. Open the report in Crystal Reports and, on the Database menu, click Show SQL Query. Copy the query into a text editor; then use your database server’s query tool to run the query. If the option appears in Crystal Reports, click Reset in the Show SQL Query dialog box. Compare the regenerated query with the version displayed in your text editor. If the queries differ, save the report so it uses the regenerated SQL query. Note: If you need to edit a report’s SQL statement, do so with a stored procedure, rather than by editing it manually. If you have developed a web application that modifies the SQL statement through code, ensure that only the WHERE clause is changed. 4 Ensure that null values are not being passed to subreports. If the report contains one or more subreports, open it in Crystal Reports and, on the File menu, click Report Options. Select the “Convert Database NULL Values to Default” check box and the “Convert Other NULL Values to Default” check box. 5 If the report is based off on ODBC driver, enable tracing to obtain more information about the error. On Windows, ODBC tracing can be started through the ODBC Data Source Administrator. On UNIX, similar tracing can be enabled in the system information file (.odbc.ini). Once you enable tracing, run the report again from a browser to generate the tracing log. After you run the report, disable tracing and review the log file for additional “Error” or “Busy” messages. Tracing may provide additional details that allow you to troubleshoot the problem. 6 If the report is based off Informix 7.3, check the database driver. If a report that uses the Informix database driver (Windows version) causes a database driver error, modify the report to use the Crystal Reports “CR Informix” driver. 7 Verify the table definition of the database that the report is based off. If your web application dynamically changes a report’s data source at runtime, ensure that the schema of each database matches the schema of the database that the report was originally designed for. Rather than running the same report against diverse data sources, consider designing a separate report for each database. 8 Verify the data type of parameter values passed through code. If your web application passes parameter values to a report, ensure that you are casting the correct data type for the parameter value. It is always a good idea to cast values to ensure they are of the correct type. For specific details, see the function reference for your development language. 327. How to ensure that server resources are available on local drives? Ensuring that server resources are available on local drives When the Crystal Enterprise servers are running on Windows, many can be configured to use specific directories to store files. For example, you can specify the root directory for each File Repository Server, the temporary directories for the Cache and Page Servers, or the directory from which the Job Servers load processing extensions. In all cases, the directory that you specify must be on a local drive (such as C:\InputFRS or C:\Cache). Do not use Universal Naming Convention (UNC) paths or mapped drives. Although some Crystal Enterprise servers can recognize and use UNC paths, do not configure the servers to access network resources in this manner. Use local drives instead, because UNC paths can limit performance due to limitations in the underlying protocol. 328. What are the benefits of accessible reports ? Benefits of accessible reports: As more business and government leaders adopt new standards for delivering web content to people with disabilities, accessible design is becoming critical to information management and delivery. Accessible design provides many benefits: • Accessible reports are easier for everyone to use. Many accessibility guidelines result in improved usability. An accessible report must provide logical and consistent navigation. Its content must be clearly written and easy to understand. • Accessible reports are more compatible with a variety of technologies, new and old. Accessible content is easier to export to simple formats that are more compatible with mobile phone browsers, personal digital assistants (PDAs), and other devices with low-bandwidth connections. Some people may not have a keyboard or a mouse. They may have a text-only screen, a small screen, or a slow Internet connection. Accessible design makes it easier for people with limited technology to access information. • Accessible content is easier to reuse for other formats. In the viewers, accessible reports are more accurately copied or exported to other formats. • Accessible reports improve server efficiency. You may reduce the number of HTTP requests on the server, by providing clear navigation so people can find what they need faster. Providing text-only alternatives can reduce the number of graphics, which take up valuable bandwidth. • Creating accessible reports is easier than modifying existing reports to make them accessible. If you build accessible features into your reports now, it will be significantly less expensive than to redesign existing reports later. 329. How to adapt the accessibility guidelines for accessibility reports? The most comprehensive accessibility guidelines are the Web Content Accessibility Guidelines (WCAG), developed by the international World Wide Web Consortium (W3C). The WCAG is widely considered the definitive set of recommendations for delivering web content to people with disabilities. The WCAG has influenced the development of similar web content standards around the world. Organizations and governments worldwide are adopting the accessibility recommendations of the W3C. • Content must be easy to understand and navigate. • Text equivalents or alternatives should be provided for non-text objects. • Objects should be logically organized to clarify relationships between objects. • Reports must not rely on any one specific type of hardware, such as a mouse, a keyboard, or a color screen. 330. How to improve the report accessibility of Crystal Enterprise system? To begin improving the accessibility of your Crystal reports, start with accessibility guidelines that are quick and easy to implement. A small change in your design conventions or company template may have a significant impact on accessibility. Simple navigation and clearlywritten content are critical for accessibility, but they are easy to implement and useful for all report users. 331. What are the general guidelines to follow when placing objects on a report? There are a few general guidelines to keep in mind when you place objects on a report. Organizing objects logically When you place objects on reports, make sure their placement is clear and logical, especially when you need to imply a relationship between two objects in a report. For example, if you include a text description of a chart, ensure that it is close enough to the chart to make the connection clear. Many assistive technologies read from left to right and from top to bottom; therefore, if you include a text description and title for a chart, you should decide which one you want the user to read first. This will ensure that the objects in a report are read in the correct order. Placing objects in order When you publish a report to Crystal Enterprise, the HTML version organizes the objects in the report according to the consecutive order that you added them in Crystal Reports, not according to where they were positioned on the report. The report appears the same on the screen, but the underlying HTML code lists the reports objects in the order they were inserted. Instead of reading the report from right to left and top to bottom, screen readers and other assistive devices may follow the order specified in the HTML. To make a report accessible, you must add objects to reports in the order that you want a screen reader to read them. Therefore, to create accessible reports, you must plan the order of your report before you begin working in Crystal Reports. Plan it on paper. Make sure you know which objects you want to add and where you want them. Include all calculations, images, and charts on your plan. When you create a new report based on your plan, you can start adding objects from the upper left corner and work your way to the bottom right corner of the report. Once the objects are placed, you can make changes to them afterwards without affecting their order. Note: If you create a text-only alternative of your report, add it to your report as a subreport and, most importantly, add the subreport before you add any other object to your report. After you add all objects to the report, you can test their placement order by tabbing through the objects. 332. How to test the placement order of objects in a report ? To test the placement order of objects in a report 1 Make sure no objects in the report are selected. 2 Press the Tab key. Crystal Reports selects the object that was placed on the report first. 3 Tab through the remaining objects. The order that Crystal Reports uses to tab through the objects is the same order adopted by a screen reader that views the published version of the report. The most common accessibility issue encountered by report designers is also one of the easiest to resolve: providing text-only versions of non-text objects. A non-text object is an object that conveys meaning through a picture or sound. Non-text objects include pictures, charts, graphical buttons, graphical representations of text, sounds, animations, and audio or video clips. People who use assistive technologies are accustomed to text-only substitutes and, therefore, will respond well to the text-only alternatives you provide. There are a number of ways you can use text to substantially improve your reports’ accessibility: • Provide text equivalents for objects in reports. • Provide text alternatives for reports. • Ensure that text is written and formatted clearly. Text is a useful tool for creating accessible reports. Most assistive technologies require text input, including screen readers, speech synthesizers, and Braille displays. You can easily resize and format text, and text is the most flexible medium for import and export. Providing text equivalents When you create reports, there are many opportunities to use text equivalents to clarify non-text objects. • Place a descriptive text object next to a non-text object, and be sure to add them to the report in consecutive order. Whenever possible, a text equivalent should communicate the same information as its corresponding object in the report. If a report displays data in a pie chart, for example, include a text box next to the chart that summarizes its contents. Describe the purpose of the non-text object. For example, if an image performs an action when you click it, describe the action. For a button that opens your web site, provide a text box labeled “Click to view our web site.” • If a report includes audio links, provide a transcript for significant audio clips. • If a report links to a multimedia or video presentation, provide a transcript. You may also want to provide captioning for the audio portion and an audio description of the visual portion. Captioning should be synchronized with the audio. 333. How to add the text only alternative to a sub report? To add a text-only alternative to a subreport 1 Create a text-only version of the report and save it. 2 Open a new report. 3 On the Insert menu, click Subreport. 4 In the Insert Subreport dialog box, select Choose an existing report and click Browse to locate the report you created in step 1. 5 Click the subreport, then choose Format Subreport from the Format menu. 6 In the Format Editor, on the Subreport tab, select On-demand Subreport. 7 To hide the subreport link, on the Font tab, choose the color that matches the background color of the report. Note: Instead of hiding the subreport link, you can conditionally suppress the section that contains the subreport.