Home

Using the DeepSee Architect - InterSystems Documentation

image

Contents

1. 3 Recompile and rebuild as described in Recompiling and Rebuilding earlier in this book 4 If you have not yet done so define a subject area as described in the chapter Defining Subject Areas When you define the subject area make sure to give access to all suitable roles 5 If the subject area is already open in the Analyzer you may need to reopen it 66 Using the DeepSee Architect 11 Using Other Tables to Define Dimensions Measures and Listing Fields The preceding chapters describe how to define dimensions measures and listing fields that are based on properties that are in the base class or in classes that are related to it by property relationships Sometimes however it is necessary to access properties in other tables properties that you cannot access via dot syntax This chapter describes the techniques for doing so e Using complex code and SQL e Using the Link options e Using a class query 11 1 Using Complex Code and SQL You can use the following technique to define a dimension measure or listing field on a property in a table that is external to the base class 1 Write a class method or a routine that uses dynamic SQL or embedded SQL to access the external property 2 Use Complex Code to invoke that method or routine For example suppose that the base class is DeepSee Study Patient and suppose that another class DeepSee Study PatientDetails contains properties that you want to use a
2. Specifying the Data on Which a Dimension Is Based later in this chapter Also see the chapter Using Other Tables to Define Dimensions Measures and Listing Fields Click Update to save your changes 4 2 1 Using the New Button You can also create a dimension as follows 1 Click New in the lower right DeepSee initializes the screen as follows General Manual Child Browse Translation Replacement Dimension Name Listing Field C Data Type Values v Transformation Type Property DeepSee Study Patient Link Property Link To rs Code Type a name into Dimension Name Optionally type a property name into the second Property field For other options see Specifying the Data on Which a Dimension Is Based later in this chapter 26 Using the DeepSee Architect Specifying the Data on Which a Dimension Is Based ot GON ON e Change other settings as needed Click Add in the lower right to add the dimension DeepSee then adds the dimension to the Dimensions table Click the dimension in the table to reselect it Click the Active check box for the dimension and save it again 4 2 2 Using ChkField DateField and TextField The Architect provides options you can use to create dimensions of specific types Values Boolean and Date slightly more quickly than using the New button To use these options 1 oC es os Double click ChkField DateField or TextField
3. Or drag and drop this item to the Dimensions table DeepSee initializes the screen as follows General Manual Child Brovee Translation Replacement Ranges Script Dimension Name Additional Text Date Type Values v Property DeepSee Study Patient TextField 1 Link Property lex Code The example shown here applies to TextField For ChkField the initial dimension name is Additional Boolean and the initial value for Data Type is Boolean For DateField the initial dimension name is Additional Date and the initial value for Data Type is Date The second Property field is also initialized but the initial name is probably is not suitable in any case Ignore the suggested syntax presented in this field Edit the name of the dimension as needed Edit the property name in the second Property field For other options see the next section Change other settings as needed Click Update to save your changes 4 3 Specifying the Data on Which a Dimension Is Based There are three options for specifying the value on which the dimension is based Base it directly on a single class property as in the preceding section Use Complex Code and base the dimension on a Cach ObjectScript expression possibly using multiple class properties as described in the following subsection This option takes precedence over the preceding option Using the DeepSee Architect 27 Defining Dimensions e Use the Manual Child B
4. Ranges and Transformations 13 5 Defining Ranges for a Dimension or Listing Field You can define ranges for dimensions and for listing fields that use numeric data e Ifyou define ranges for a dimension you are defining the members of the dimension Each range creates one dimension member the name of the range is the name of the member Also see Creating Hourly Buckets earlier in this book e Ifyou define ranges for a listing field then in each row of a detail listing the name of the appropriate range is displayed instead of the listing field data 13 5 1 Basics To define a set of ranges for a dimension or a listing field 1 Open a Bl enabled class as described in Opening a BI enabled Class earlier in this book 2 Select the dimension or a listing field Either e Click the Dim tab and then click the dimension e Click the Listing Field tab and then click the listing field 3 Click the Ranges tab In this tab you define a set of ranges each with a name or caption 4 To add a row to the table a Right click in the empty area and select Add Line The system then adds a blank line b Click the blank line beneath the Caption heading Then the cursor blinks to indicate that you can type here c Type the name of this member To move to other fields in the row press Tab or click the blank line beneath the appropriate heading d For From type the lower end of the range if any This can be a Cach Obje
5. This chapter describes how to create most kinds of dimensions It discusses the following topics e An overview of the Dim tab e How to define a dimension e How to specify the value on which a dimension is based e How to choose a dimension data type e How to define a dimension based on a date e How to define a dimension based on a time e How to define a dimension based on a collection e How to modify a dimension e How to control whether a dimension is included in the subset that can be selectively rebuilt e How to activate or deactivate a dimension e How to delete a dimension e How to make your changes visible in the Analyzer Also see the chapters Defining Special Dimensions and Using Other Tables to Define Dimensions Measures and Listing Fields For general guidelines see the chapter Core Modeling Principles For a tutorial see the DeepSee Developer Tutorial 4 1 Overview of the Dim Tab You use the Dim tab to add modify and delete dimensions This tab has three main areas 4 1 1 Class Hierarchy The class hierarchy on the left shows the base class the BI enabled class and most of the classes available from it via property relationships Using the DeepSee Architect 21 Defining Dimensions DeepSee Study Patient i 961d ke O Age H Allergies BirthDate BirthDateTimeStamp BirthTime ae Diagnoses H mm DiagnosesAsArray i Ae a DiagnosesAsLB eas
6. This displays a search dialog box 3 Optionally type the package name or complete package and class name into Search Class and then click Search 68 Using the DeepSee Architect Using the Link Options The system displays a list of classes that match your search criteria Note that the class you are now adding does not have to be BI enabled but must have some relationship to the primary class 4 Click the class name and then click OK Now the Class list displays both classes ample Orders sS sS 5 Expand the secondary class as needed so that you can see the property or instance method that you want to use ample OrderDetails 6 Drag and drop the property or instance method from the secondary class to the Dimension table this adds a new dimension For example if you dragged and dropped the ProductName property You would then see the following new dimension General Manual Child Brovse Translation Replacement Ranges Se Dimension Name ProductName Listing Field d Data Type Values v Transformation Property Sample OrderDetails ProductID ProductName Link Property OrderID Link To Complex Code In general you need to specify one or both of the following values e Link Property indicates the property in the child class that refers to the base class In this case this value was set automatically because of the drag and drop action e Link To indicates the ID property in the base class to which
7. You can define additional measures within the Analyzer using these measures as building blocks 8 1 About Measure Definitions For this discussion it is useful to distinguish two kinds of measures base measures and calculated measures Base measures are defined in the Architect The formula for a base measure has the following form MeasureName Every subject area includes the default measure Count which counts the records in the base class Each base measure is either numeric or date typed Other than Count each base measure is based on values in the raw data is calculated at index build time and stored in the fact table When you define a numeric or date dimension in the Architect DeepSee creates a base measure that uses that data Also see Defining Custom Aggregates for Use as Base Measures later in this book You can use Count in pivot tables You can also use any numeric base measure in pivot tables the values are summed You cannot use date type base measures in pivot tables but they are available for use in calculated measures Calculated measures are defined in the Analyzer The formula for a calculated measure can include references to base measures and it can include information on how to aggregate values for example Test Score Average The values for calculated measures can be numbers dates or strings Numeric values are summed by default There is no default aggregation for dates or strings Calculated me
8. e Does the listing field display the correct value when the source data is null Because listing fields are directly associated with source records and because they are not aggregated in any way it is a simpler process to validate them 1 In the Analyzer use any dimensions and measures and display a detail listing 2 Examine each listing field and consider the preceding questions Using the DeepSee Architect 93 When to Recompile and Rebuild For your convenience this appendix summarizes when to recompile and when to rebuild indices in order to make the changes visible in the Analyzer and in pivot tables Item Added Modified Including Renaming or Deleted Need to Need to Recompile Rebuild Indices Dimension Yes Yes Compound dimension or member if indexed Yes Yes Compound dimension or member if dynamic No No Dynamic dimension Yes No Relationship between dimensions Yes Yes Subject area No No Dimension type listing field Yes Yes Independent listing field Yes No Detail listing any change other than role access Yes No Detail listing changing role access No No Transform used by dimension or dimension type listing field Yes Yes Transform used by independent listing field Yes No For information on recompiling and rebuilding see the section Recompiling and Rebuilding earlier in this book Using the DeepSee Architect 95 Index A Architect accessing 4
9. 82 13 4 Defining Replacements for a Dimension or Listing Field sessseseeseeseeseeesrreesesrsrererrrsrreeess 83 134 Oer OPUS coia cocks EEEE EEE EEEE O ETUE EERE E E E EAEN 83 13 5 Defining Ranges for a Dimension or Listing Field cscscccssessssssssesesscesosesessecesssesesssdeniees 84 WS Sl IB ASUGS ss Sick si ces a A ta sapeuced siete A dasbetevesiageenae 84 133 2 Ofbher OPORE os ces facts esse keac aE E Ra A aE AR E E ERRETA 85 13 6 Detining and Modifying Transformations sissien eiei eaa 85 13 6 1 Defining Text to image Replacements sessssssesessesseeestsesessestrestssrttrtesseseeereeseresereseeeee 86 13 6 2 Deleting a Transfotmatiom siessen nice ea agenais ae aao ees tas isei eee taas 87 13 63 NERT SEPE oo ie REE E tas EE EEEE OSTENE EIEE ASE CEEE TUSE ETES 87 13 7 Applying a Transformation to a Dimension or Listing Field sseseseeseeeeeeeereseereerrreeresesresesee 87 14 Validating Your DeepSee Data Model ssscssscsscsssssscesscsscccscscssecsssseesscesscsseesscssscssscssssessesss 89 MAE WI Sette WO E E E E 89 TL2 Vaidatne a DIMENSION ocassie ia resan iea EEEE NEEE E eaS SUNA TE E E tents 89 Using the DeepSee Architect 143 Validating B Measure 5 ic3is2esstch a kdtatecieghieiek E Reon E E EE RE E 93 IAA Vahdaung a Listine Fiela oein eacee erenieroe rnn nene e Aea AAEE EEEE E ENER EER E 93 Appendix A When to Recompile and Rebuild cccsssssssscesessssscssseseescesssesescossssnessorsnsesenessec
10. B DiagnosesAsMany i ssi Ly Gender HomeCity i i Ly Id i RA O Name i ere O Population fii O PostalCode im Setup O PatientGroup inf DatientIN Here you can do the following Expand a collapsed folder by clicking the Expand button to its left Collapse an expanded folder by clicking the Collapse button El to its left e Double click a property to create a new dimension definition based on it e Drag and drop a property instance method or SQL shortcut to the Dimensions table on the right to create a new dimension definition based on it Any instance methods are shown alphabetically after the properties Although this view provides a convenient way to access some properties you can in fact access any property and you can access data in any table by using Complex Code For details on what DeepSee displays in this hierarchy see Available Properties and Methods of a Bl enabled Class in the previous chapter 4 1 2 Dimensions Table The Dimensions table on the right summarizes the currently defined dimensions 22 Using the DeepSee Architect Overview of the Dim Tab Dimensions Sort By 10001 10002 10003 10004 10005 10006 10007 ID b Age Birth Date Gender Patient Group Test Score Doctor Group Primary Care Physician Age BirthDate Gender PatientGroup TestScore PrimaryCarePhysician DoctorGroup ID p Dimension Name ee Data Type Number Date Values V
11. Click the Dim tab and then click the dimension or measure e Click the Listing Field tab and then click the listing field 3 Click the Translation Replacement tab 4 Type a value into Null field replacement For example No region 5 Click Update to save your changes If you edited a dimension or measure notice that the Trns Repl check box is checked in the table at the top of the page this happens automatically when you enter information on the Translation Replacement or the Range tab Important DeepSee ignores the Null field replacement option if you have entered an expression into Complex Code if you are using the Words dimension data type or if you are using the Manual Child Browse feature In such cases write an expression in Complex Code that detects the nulls and replaces them appropriately For an example see Force M C B to Return at Least One Value earlier in this book 82 Using the DeepSee Architect Defining Replacements for a Dimension or Listing Field 13 4 Defining Replacements for a Dimension or Listing Field To define a set of text replacements for a dimension or a listing field 1 Open a BlI enabled class as described in Opening a Bl enabled Class earlier in this book 2 Select the dimension or a listing field Either e Click the Dim tab and then click the dimension e Click the Listing Field tab and then click the listing field 3 Click the Translation Replacement tab 4 To add a row
12. Otherwise the replacements defined there take precedence over the text to image replacements that you are adding 3 Click the Bitmaps tab 4 Right click and click Add Line 5 In the right column Field Value type the exact text that you are going to replace Matching is exact and case sensitive 6 Make sure the new row is still selected 7 Click Select Image This brings up a dialog box 8 Click the image that you want to use and click OK The internal ID of this image is automatically written to the Id column 9 In the Remark type an optional remark 10 Repeat as needed 86 Using the DeepSee Architect Applying a Transformation to a Dimension or Listing Field For example td Field Value 92 Austria 33 Brazil 94 Canada 95 Denmark 96 Finland 97 France 98 Germany 99 Ireland 100 Italy 101 Mexico 100 Aamen On this tab you can also do the following e Delete a line To do so right click the line and click Delete Line e Delete all lines To do so right click and click Clear You are prompted to confirm this action e Preview the image used in a given row To do so click the line The image is displayed in the Bitmap Preview box e Remove an image for a given line To do so click the line and click Clr If you make any change click Update to save this change 13 6 2 Deleting a Transformation To delete a transformation 1 At the top of the Architect page click Data Modeler gt Transformation 2 Click
13. Property To see how to use the M C B Manual Child Browse feature it is best to consider an example The DeepSee Study Patient class contains the Allergies property which is defined as follows Property Allergies As list Of DeepSee Study PatientAllergy Within the Architect this property is shown as a folder Using the DeepSee Architect 35 Defining Dimensions Ee DeepSee Study Patient a B Id O Age 6 Allergies i ge DB ElementClassType i B ElementType B LiteralBehavior DB OrefStorage DB Ovmer For this example to use this list property as a dimension 1 Drag and drop the entire property folder from the Class list to the Dimensions table This adds a dimension whose default name is the folder name 2 Set Data Type to Values 3 Click the Manual Child Browse tab Here you specify how to iterate through the elements of the list and how to get the dimension data that corresponds to each element You can access all elements of the list or a subset according to your own logic 4 For Loop Coding specify a fragment of Cach ObjectScript code that iterates through the list or click Sample to insert an editable sample For example for i 1 1 this Allergies Count do Important You must include two spaces before Do and one space after Do There must not be any empty lines after that To refer to the list property use the syntax this PropertyName as shown You can include complete statements
14. Purpose Show Listing Bar option Controls whether the title bar is shown within this detail listing Grid Layout tab Lists the listing fields in this detail listing in order See Modifying the Layout of a Detail Listing and Adding Summary Lines to a Detail Listing Role Access tab Lists the roles that have access to this detail listing See Specifying Role Access to a Detail Listing Data Browser tab Lists the detail listings to which the user can jump from within this detail listing See Adding a Link to Another Detail Listing 12 2 Defining a Detail Listing The Basics You define detail listings on the Detail List tab Although it is useful to become acquainted with all the options on this tab in many cases you can define detail listings very simply without knowing these options in detail This section describes the basic method which is a suitable start in all cases 1 Open a BlI enabled class as described in Opening a Bl enabled Class earlier in this book 2 Click the Detail List tab The right area of the Architect displays the following Listing Information Listing Name B M show Listing Bar Merge Column g From To Grid Layout Role Access Data Browser PopUp yDimension ListingField H Ej ListingFields Library a Leen omeen Tema 3 In Listing Name type the name of this detail listing 4 Optionally clear Show Listing Bar if you do not want
15. To define a compound member Using the DeepSee Architect 45 Defining Compound Members a oY a Open a BI enabled class as described in Opening a BI enabled Class earlier in this book Click the Compound Mem tab The left side of the page lists any dimensions that contain compound members along with their members Click New in the lower right to ensure that any existing data is cleared t Compound Mem Member Details Dimensions Dynamic Condition Name cm For Dimensions type the name of the dimension that owns this compound member For example Color Groups Optionally clear the Dynamic check box if you want this member to be indexed dynamic members are not indexed For Condition Name type the name of a member For example Primary Colors In the Filter box type a filter expression that selects the data for this member For example Favorite Color Blue OR Favorite Color Red OR Favorite Color Yellow Or click the Edit option and define the filter expression interactively For syntax and other details see the book Expressions and Scripts in DeepSee Note The Edit Filter dialog box does not let you enter a filter expression until you have defined at least one subject area Before that the dialog box is displayed as a blank box Also it shows only the dimensions whose definitions were active the last time the DeepSee indices were built Click Add Repeat as needed until you have defined
16. a DeepSee Study Patient O Id i EA C Age H Allergies BirthDate BirthDateTimeStamp T BirthTime ce Diagnoses r Aa You can expand the folders which contain more properties and possibly more class definitions The root item is special this class is the base class in this cube The base class determines the meaning of the predefined Count measure as we will see later in this chapter 3 2 Bl enabling Your Classes The first step depends on where your data is now e Ifyou have Cach classes you can open them from within Architect This automatically adds the DeepSee superclass Bl Adaptor to the superclass list See the following section In some cases you cannot modify the class or you have an existing complex query that you want to use DeepSee supports an alternative approach in which you create and BI enable a class query see Using a Class Query later in this book e Ifyou are creating new classes create them in Studio For any class that needs it include the DeepSee superclass Bl Adaptor in the superclass list e If you are starting with an existing Cach application that does not use Cach class definitions map the existing globals to class definitions and then add the DeepSee superclass BI Adaptor to the superclass list e If your data is stored outside of Cach use the DeepSee Connector to generate BI enabled class definitions and to load the data into Cach In all
17. a listing field affects how its data is displayed To specify the data type for an independent listing field choose a value for Data Type on the General tab Depending on your choice the page then shows another field that you can use to specify an appropriate formatting option The following table describes the options In the following table the phrase dimension data refers to the data on which the dimension is based whether that is a single property or an expression Table 10 2 Data Types for Listing Fields Listing Field Data Purpose and Comments Type Text Displays the data as text This is recommended for date values other than Cach dates Check Box Display a check box instead of the data e The check box is cleared if the data equals 0 or false e The check box is selected if the data equals 1 or true 64 Using the DeepSee Architect Controlling Whether a Listing Field Is Selectively Rebuilt Listing Field Data Purpose and Comments Type CacheDate Displays the data as a date If you select this the system displays a drop down list that you can use to select a display style This is suitable for use with Cach date type data dates in HOROLOG format CacheTime Displays the data as time If you select this the system displays a drop down list that you can use to select a display style Number Displays the data as a number Currency Displays the data as currency If you select this
18. a single subject area gives access to all roles on the Role Access tab but that uses the value session Data CurrRole which contains the DeepSee role with which the user logged in 54 Using the DeepSee Architect Defining Dimension to dimension Drill Options For example Region Name SCASE session Data CurrRole rolel North role2 South role3 West East 9 5 2 Advanced Role Options You can also make the following additional changes in the row for a given role e In the Default Detail Listing field double click to display the drop down list Then select a detail listing to use as the default for users of this role This option overrides the default detail listing for the subject area e In the Filter for Detail Listing field type a filter expression to be applied to any detail listing that is displayed by users of this role Or click the F option and define the filter expression interactively e In the Filter for Pivot field type a filter expression to be applied to any pivot table that is displayed by users of this role Or click the F option and define the filter expression interactively For filter syntax and other details see the book Expressions and Scripts in DeepSee You can also filter the subject area see Filtering a Subject Area 9 6 Defining Dimension to dimension Drill Options DeepSee provides support for dimension to dimension drill through For example a user might double click
19. additive coloring agent 116 147 animal dander 129 139 131 124 126 ant bites 153 146 147 133 146 bee stings 138 130 107 114 115 dairy products 152 160 100 148 132 dust mites 136 127 113 120 125 aan ean sae ans aan Upon first seeing this pivot table the user might think that this pivot table shows correlations between different sets of patient allergies It does not This pivot table as with all other pivot tables in this subject area shows sets of patients For example the ant bites row represents patients who have an allergy to ant bites The Minor column represents patients who have at least one allergy that is marked as minor There are 147 patients who have an allergy to ant bites and at least one allergy that is marked as minor This does not mean that there are 147 patients with minor allergies to ant bites It is possible to create a pivot table that does show correlations between different sets of patient allergies To do so however you would have to define a model based on the patient allergy rather than the patient 2 3 Make Sure to Handle Null Values Correctly For any measure or dimension the value you use as a basis could potentially have no value in some cases It is important to understand how DeepSee handles nulls and to adjust your model according to your business needs and usability requirements 2 3 1 Null Values in a Measure For a measure if the source value is missing DeepSee treats the null value
20. all members 6 3 Next Steps After you define modify or delete a compound member do the following to make your changes visible in the Analyzer 1 If the member is index rebuild as described in Recompiling and Rebuilding earlier in this book 2 Define a subject area as described later in this book Make sure the subject area includes the dimension that contains this member When you define the subject area make sure to give access to all suitable roles 3 If the subject area is already open in the Analyzer you may need to reopen it 46 Using the DeepSee Architect Defining Relationships between Dimensions Where appropriate you use the Rel tab to define relationships between dimensions which improves performance when you use the dimensions together For example suppose that you create one dimension based on a unique item code and another dimension based on the corresponding unique item description In this case you should also define a one to one relationship between these dimensions This chapter describes how to define relationships between dimensions 7 1 Defining a Relationship To define a relationship between dimensions do the following 1 Open a Bl enabled class as described in Opening a Bl enabled Class earlier in this book 2 Click the Rel tab The tab lists any relationships that are already defined 3 Right click and then click Add Line 4 Double click in the row within the column for So
21. an A aIdi i Age H O Allergies C BirthDate C BirthDateTimeStamp ve A BirtthTime H O Diagnoses a iH S i Here you can do the following Expand a collapsed folder by clicking the Expand button to its left Collapse an expanded folder by clicking the Collapse button El to its left e Double click a property to create a new listing field definition based on it e Drag and drop a property instance method or SQL shortcut to the Listing Field table on the right to create a new listing field definition based on it Any instance methods are shown alphabetically after the properties For details on what DeepSee displays in this hierarchy see Available Properties and Methods of a BJ enabled Class earlier in this book 10 2 2 Listing Field Table The Listing Field table on the right summarizes the currently defined independent listing fields Listing Field Fields Caption onion Patient ID PatientID Each row corresponds to a listing field Here you click the listing field that you want to work on e Fields Caption is the name of the listing field as seen in any detail listings that include it When you first create a listing field this is the same as the name of the property instance method or SQL shortcut 60 Using the DeepSee Architect Overview of the List Field Library Tab e Property is the property or instance method on which it is based This field is empty if the listing field is based on com
22. as zero This can adversely affect any measure that aggregates by averaging or by using the minimum value For example in the Patients sample you can create an Average Test Score measure based on the TestScore property of the patient Some patients do have a null value for the TestScore property and the null scores are treated as 0 However the lowest possible score on the test is 50 If you compute the average using all patients the results are incorrect Using the DeepSee Architect 9 Core Modeling Principles To properly compute the average test score you should use only patients that have a value for the TestScore property In this case you would create a filtered measure that considers only those patients For details see Using the DeepSee Analyzer you create this kind of measure in the Analyzer Also see the DeepSee Developer Tutorial 2 3 2 Null Values in a Dimension For a dimension if the source value is missing for a given record in the base class DeepSee omits that record from the dimension by default That is DeepSee does not automatically create a member to contain the null values Then when you use this dimension DeepSee filters out the records that have null values For example in the Patients sample you can create a Patient Group dimension based on the PatientGroup property of the patient For some patients this property is not specified If you display this dimension in a pivot table you might see som
23. calculated measure that divides this base measure by that same factor Also see Defining Custom Aggregates for Use as Base Measures later in this book 8 3 Next Steps After you define modify or delete a base measure do the following to make your changes visible in the Analyzer 1 Recompile and rebuild as described in Recompiling and Rebuilding earlier in this book 2 If you have not yet done so define a subject area as described later in this book Be sure to give access to all suitable roles 3 If the subject area is already open in the Analyzer you may need to reopen it 4 In the Analyzer optionally create calculated measures based on this base measure For information see Using the DeepSee Analyzer or Expressions and Formulas in DeepSee 50 Using the DeepSee Architect Defining Subject Areas This chapter describes how to create subject areas It discusses the following topics e An overview of the Subject tab e The basic process to define a subject area e How to modify a subject area e How to filter a subject area e How to specify the roles that have access to a subject area e How to specify dimension to dimension drill options e How to specify the dimensions included in a subject area e How to define custom aggregates for use in measures e How to activate or deactivate a subject area e How to delete a subject area e How to make your changes visible in the Analyzer 9 1 Overview of the Subj
24. classname HiRebuild 0 3 6 1 Incremental Rebuilds After initial development it is not usually desirable to rebuild all the indices when the data changes because that can be time consuming Instead your application should detect data changes and update the indices for only the affected objects There are three parts to this approach e You must enable DeepSee to rebuild the indices incrementally To do this enable the site option ETL gt Incremental Index Update and then recompile the base class See the DeepSee Site Configuration and Maintenance Guide Despite the fact that this option is in the ETL group it does apply to all BI enabled classes in this namespace it is not specific to classes created via the DeepSee Connector e Ifa data change affects a record in the base class DeepSee automatically detects that change and updates the indices for that record This occurs because the base class inherits from BI Adaptor which provides the methods OnAfterSave and OnDelete and the triggers HyperDelete HyperInsert and HyperUpdate all of which automatically update the DeepSee indices 16 Using the DeepSee Architect Rebuilding Selectively For example when an object is saved Cach runs the method OnAfterSave which updates the DeepSee indices for this object Similarly when an record is deleted inserted or updated via SQL Cach fires the corresponding trigger which updates the DeepSee indices for this recor
25. clearing unsaved work 17 details on display of class 15 purpose 3 array as dimension 34 base measures 49 56 Bl enabling how to 14 overview 13 C Cach ObjectScript expressions in custom aggregate 56 in dimension definition 28 to convert date format 31 to define ranges 33 calculated measures 49 ChkField option 27 class queries using in DeepSee 70 compiling how to 16 when 95 Complex Code option and null replacement 82 and SQL 67 basics 28 to convert date format 31 compound members creating 45 making visible in the Analyzer 46 overview 45 Convert to Flag transformation 82 Count measure 49 custom aggregates 56 custom data types dimension types 30 D Data Type option 29 DateField option 27 date value as dimension 30 default measure 49 detail listings adding summary lines 76 defining 74 deleting 79 linking to another detail listing 78 linking to a URL 79 making visible in the Analyzer 80 modifying 75 sort order 75 specifying role access 77 dimensions activating or deactivating 39 applying transformations 87 available in a subject area 56 basing on a collection 34 basing on date data 30 basing on time data 32 defining 25 defining ranges 84 deleting 39 dynamic 41 making visible in the Analyzer 39 modifying 38 rebuilding selectively 38 relationship between 47 replacing null values 82 replacing values 83 specifying source data 27 valida
26. click in the empty area and select Save Data Browser 12 8 Adding a Link to a URL Within a detail listing a user can right click select an option and go to a URL in a new browser window To add a right click option that opens a URL 1 Open a Bl enabled class as described in Opening a BI enabled Class earlier in this book 2 Click the Detail List tab 3 Click the Browse button ea next to Listing Name click the detail listing and then click OK 4 Click the Popup tab This table displays one row for each URL that you can access from within this detail listing 5 For each URL to which you want to link right click and then click Add Line This adds a new empty row Then enter the following information e Menu Caption String to display in the context menu e Pre Script Cach ObjectScript statement to execute before opening the URL e URL Action URL to open in a new browser window e Post Script Cach ObjectScript statement to execute after opening the URL 6 Click Save Tip To remove a line from the table right click it and then click Delete Line DeepSee prompts you for confirmation 12 9 Deleting a Detail Listing To delete a detail listing 1 Open a Bl enabled class as described in Opening a BI enabled Class earlier in this book 2 Click the Detail List tab Click the Browse button click the detail listing and then click OK 4 Click Delete Using the DeepSee Archite
27. dimension 33 overview 81 rebuilding how to 16 incrementally 16 selectively 17 38 65 when 95 Reference dimension data type 29 relationships between dimensions defining 47 making visible in the Analyzer 48 replacements defining 83 null values 82 overview 81 text to image 86 roles and detail listings 77 and subject areas 54 S Selective Rebuild button 17 SQL shortcuts 18 subject areas activating or deactivating 57 default measure 49 defining 53 deleting 57 filtering 54 making visible in the Analyzer 58 modifying 53 specifying access 54 specifying available dimensions 56 T TextField option 27 time value as dimension 32 transformations defining 85 overview 81 predefined 82 translations see replacements V Values dimension data type 29 Ww Words dimension data type 34 35 98 Using the DeepSee Architect
28. given dimension that listing field is not added a second time The definition or definitions are copied immediately Click the List Field Library tab and make edits as needed 10 3 3 Creating an Independent Listing Field from Scratch To define an independent listing field manually do the following 1 2 3 4 Open a BI enabled class as described in Opening a BI enabled Class earlier in this book Click the List Field Library tab Expand the class hierarchy in the left area so that you can see the class property that you want to use Drag and drop the property instance method or SQL shortcut from the class hierarchy to the Listing Field table on the right Or double click the property instance method or SQL shortcut In either case the Listing Field table now includes a listing field that is based on your selection Click this new row so that it is selected The bottom right area of the page then shows details Optionally rename the listing field by changing the value in Dimension Name on the General tab This name is shown in the Analyzer and is also used as the default column header in the detail listings The name should make sense on its own notice that it does not indicate the table that owns this property Optionally make additional changes as described in the rest of this chapter Click Update to save your changes Also see the subsections in Defining a Dimension earlier in this book 10 4 Modifyin
29. more quickly be sure to add an index to the child table on the field that you are using in the SELECT statement In the example here add an index to PatientID in the PatientDetails table 11 2 Using the Link Options The Architect provides options Link Property and Link To that you can use to access properties of classes that are external to the base class You can use these options to define dimensions but not measures or listing fields You cannot use the dimension for filtering You can use the Link options only if the child table points to the ID property in the parent table This is because the Link options internally use object relationships If the child table does not point to the ID property of the parent table use Complex Code and embedded SQL as described earlier in this chapter 11 2 1 Using the Link Options This method is best illustrated via an example Suppose that Sample Orders is the base class that you are using The class Sample OrderDetails contains useful information such as the product name and product category which you want to use as dimensions Sample Orders does not have any property that gives us access to Sample OrderDetails To access properties of Sample OrderDetails from within Sample Orders it is necessary to indicate how the tables are associated To do so 1 Open the base class that you are working with for example Sample Orders as described earlier in this book 2 Click Add in the bottom left area
30. name of another detail listing DeepSee then displays that other detail listing with details for the selected row To add a link to another detail listing I 2 3 Open a BI enabled class as described in Opening a Bl enabled Class earlier in this book Click the Detail List tab Click the Browse button ES next to Listing Name click the detail listing and then click OK Click the Data Browser tab This table displays one row for each detail listing that you can access from within this detail listing For each detail listing to which you want to link right click and then click Add Line This adds a new empty row Then enter the following information Listing ID Specifies the detail listing to display Double click this field DeepSee displays a list of all detail listings available to you given your role access Click a detail listing and then click OK Menu Caption Specifies a string to display in the context menu For example type the name of the detail listing Query Specifies the filter expression that indicates which records to select when displaying this associated detail listing If the associated detail listing is in a different subject area use the following guidelines The dimension name you use should be the name of the dimension as defined in the other subject area Use this dimension name on the left side of the filter expression To select members of that dimension you can use
31. of a measure but to do so you must aggregate that value across the relevant rows of the child table Consider the following two tables e Customer Each row represents a customer e Order Each row represents a customer order The field SaleTotal represents the total monetary value of the order Suppose that we use Customer as the base table and that we want to create a measure based on the SaleTotal field Because a customer potentially has multiple orders there are multiple values for SaleTot al for a given customer To use this field as a measure we must aggregate those values together The most likely options are to add the values or to average them depending on the purpose of this measure 8 Using the DeepSee Architect Be Careful With Collection based Dimensions 2 2 Be Careful With Collection based Dimensions In DeepSee unlike many other BI tools you can base a dimension upon a list value Such dimensions are useful but it is important to make sure that the users understand the behavior of the dimension For example a patient can have multiple allergies Each allergy has an allergen and a severity Suppose that the base table is Patients and the model includes the Allergen and Allergy Severity dimensions We could create a pivot table that looks like this Inactive Life Minor Moderate Unable to threatening determine ie Patient Patient Patient Patient Patient za Count Count Count Count Count 135 128 116
32. the Time dimension data type and specify a Range Dimension Suffix DeepSee generates a set of hourly buckets as follows Birth Time Hourly Ranges Birth Time Hour Range 00 00 00 59 01 00 01 59 02 00 02 59 03 00 03 59 04 00 04 59 05 00 05 59 To create a dimension with hourly buckets as shown in this example 1 Set Data Type to Time For this dimension data type DeepSee correctly handles properties of type TimeStamp Time or even a string with the format hh mm ss where hh is the hour mm is the minutes and ss is the seconds You do not need to specify any conversion of format 2 Click the Ranges tab 3 For Range Dimension Suffix type a string such as Hours 4 Click Update to save your changes 32 Using the DeepSee Architect Defining a Dimension Based on a Time 4 6 2 Creating Time Buckets by Parsing the Time as a String You can also create the dimension data as string data and pick out the part to use as the dimension For example Birth 00 113 112 104 120 98 113 To create such a dimension l 2 Set Data Type to Values For Complex Code use an expression that extracts the part that you want to use as the dimension For example the following extracts the hour piece from a date in ODBC format SPIECE SPIECE Sthis BirthDateTimeStamp 2 1 Click Update to save your changes 4 6 3 Defining Time Ranges You can also create custom time ranges as
33. the child class points The default is this ID In this example the default is used The following figure shows these two properties Using the DeepSee Architect 69 Using Other Tables to Define Dimensions Measures and Listing Fields To use property of OrderDetails from within Orders Link Property Link To Orders base class OrderDetails child class 11 2 2 A Look at the Internals Internally when you use the Link options DeepSee uses that information to determine which IDs of the child table to use as follows select ID into ChildId from TEST OrderDetails where OrderID Id In this example OrderID and ID are the values we provided for in the Link Property and Link To fields When the DeepSee indices are generated DeepSee uses the preceding information as follows For each row in the parent table the system finds the IDs for all the associated rows in the child table DeepSee then iterates through those rows and extracts the source data as specified 11 3 Using a Class Query In some cases it is simpler to create a class query that combines multiple tables as needed and then to use that as the basis of the DeepSee model The following steps describe the technique 1 Create a class that inherits from RegisteredObject and BI Adaptor 2 In this class create a query that selects the desired fields This query must specify which field is the ID field The class definition should include only one quer
34. to the table a Right click in the empty area and select Add Line b Click the blank line beneath the Original Text heading c Type the exact text that you are going to replace Matching is exact and case sensitive d Press Tab or click the blank line beneath the Translate to heading e Type the replacement text Repeat as necessary For example Hania chid imee Translation Replacement Original Text Translate To A Group A B Group B 5 Click Update to save your changes If you edited a dimension notice that the Trns Rep check box is checked in the table at the top of the page this happens automatically when you enter information on the Translation Replacement or the Range tab 13 4 1 Other Options You can also do the following on the Translation Replacement tab e To delete a single line right click it and select Delete Line The line is immediately deleted e To delete all lines right click and select Clear You are prompted to confirm this action e To copy all lines of this table to the system clipboard right click and select Copy to Clipboard e To paste the contents of the system clipboard right click and select Paste from Clipboard CAUTION Ifthe clipboard does not currently contain lines from a replacement table like this perhaps from a different dimension or listing field the current contents of your replacement table are cleared and nothing is pasted Using the DeepSee Architect 83 Using Replacements
35. 0 as expected 3 Double check that the dimension is accessing the records that you expect Look at the count for a given member In the System Management Portal execute a suitable query to determine how many records this particular member should include Compare that to the count shown in the pivot table For example consider the Real Estate and Leasing member in the following pivot table Using the DeepSee Architect 91 Validating Your DeepSee Data Model Nome Professional Scientific and Technical Services Transportation and Warehousing 358 591 384 532 395 5 712 356 767 188 355 362 Grand Total 10 000 In the System Management Portal you could enter an SQL query like the following SELECT Count as Count GROUP BY Profession gt Industry The results might be as follows Profession gt Industry FROM DeepSee_Study PatientDetails 358 ACCOMMODATION AND FOOD SERVICES CONSTRUCTION 532 FINANCE AND INSURANCE 6 395 HEALTH CARE AND SOCIAL ASSISTANCE 7 356 OTHER SERVICES O 8 767 PROFESSIONAL SCIENTIFIC AND TECHNICAL SERVICES 9 188 REALESTATE AND LEASING 10 355 RETAIL TRADE o 11 362 TRANSPORTATION AND WAREHOUSING There are indeed 188 patients employed in this industry If the counts are not the same display a detail listing in the Analyzer and determine which records DeepSee is using Compare this to the records in the source table Note The query
36. 3 Click Search The dialog box then displays all classes in this namespace or all classes in this package 4 Click the class name and then click OK 3 4 Opening a Bl enabled Class If a given class already extends Bl Adaptor you can open it in fewer steps no search is required To open a BI enabled class definition in the Architect 1 First do either of the following Click the Open Class button gt in the menu bar Click the Open Recent Class button La in the menu bar 2 Click the class name and then click OK 3 5 Display of Properties and Methods of a Bl enabled Class The following rules govern the display of a class in the Architect e Fora Bl enabled class all properties are shown except for the parent side of a parent child relationship e This display is recursive that is properties of properties are shown e Ifa property is a collection a list or an array it is shown as a folder that contains the properties and methods of the collection e Ifa property is of type List which is the object equivalent of LISTBUILD it is not shown as a folder e Ifa property is a relationship it is not shown as a folder e If aclass is not accessible from the base class via Cach dot syntax it is not shown by default Using the DeepSee Architect 15 Enabling Classes for Use in DeepSee e The Architect does not display properties and methods inherited from superclasses You can use these properties and methods
37. 5 3 Date Dimension Details scssi eena E a ES eT E EE REEERE EEEE 31 4 6 Defining a Dimension Based ona TiM sssi nsieccsinp aena eai eae 32 46 Creating Hourly BUCKEIS croia sense cence e a aeee i E e E E RSE EEEE EEES 32 Using the DeepSee Architect 4 6 2 Creating Time Buckets by Parsing the Time as a String ooo eee ee ee eeeeseeeeecneeneeeeeeaes 33 AiG AD etm s Mme Ranges oi e6cc sac ssid sve seacasnssstesetiecasecdiessacsses sesasesdessiease suessdetensasesseteseescecvess 33 4 7 Defining a Dimension Based on a Collection oo ee eeeecseseeesecsecoreseeseceeeecesesaeeesenesaeseseneerenee 34 4 7 1 Using the Words Dimension Data Type 2cisic cs ccceicssecsesessessseesiubeasicaasdeenesvessectacs sbasees 34 4 7 2 Using the Words Dimension Data Type with Complex Code ee eeeeseeseeeeeeees 35 4 7 3 Using the M C B Feature witha List type Property s c ciscscascsnscetseestecessencses 35 4 7 4 Using the M C B Feature with an Array type Property 0 ee eee eeeeeeeseeeeeceeeteeeeeeees 36 4 7 5 Foreme M C B to Return at Least Ome Value c sc csucheiesneicnsitieaia inldaeceles 37 4 7 6 Understanding Dimensions Based on Collections 0 0 0 0 ee eeeeeeeseeeeeeeseeceeesecnecnaeenees 37 4 8 Modifying a DIMension is oc cidscieisecdl cgi ceckssstiecscasdbaxs E EEE ase ueiades 38 4 9 Controlling Whether a Dimension Is Selectively Rebuilt sssessseeseseseseseesesresrsrerereresrresreeesse 38 4 10 Activating or Deactivating a DI
38. 9 8 Defining Custom Aggregates for Use as Base Measures ecsseseseeecseeseeeeseceeeateneeaeenseees 56 9 9 Activate or Deactiv ting a Subject AED o i2c csc cesssccsscecicescbscsesce ses ted ote sdesssctesusecateavssstcastesinete 57 9 10 Deleting a Subject ATCA os ierrntosn sanese trenean tar dives e EEE EKE e K a EE E ESen Esika 57 EEE T a EEE A E E EE E EE EE E EEE 58 10 Defining Listing Fields ssscsssssssssssssesssesorsnsseoscosseonsensvensesssnssnsvenssnasnsesnasosesonensssnssenssenseosses 59 10 1 Overview of Listine Fields issc 32is iisciag echoes certochiei asa a cas st beibae T E E E E 59 Using the DeepSee Architect 10 2 Overview ot the List Field Library Wab iss ci iedeis nia dlinaniiviasiidanicaknl 60 UN 2s TVS BOTCON ccs cesaednsssdccssnsestnssutsszesseesecsacacncsansdaacssasaedseasssesusustsaneasesiaenstedhesieasnessssa0 60 19 22 Listing Field Table cs scescctiessessccssscst sacs lap eaabhcosestenabsvaatss tadtnsassaeh bias a E TE EE EE 60 WTS TAG 228 cae E eeeSte es nacesben SG E Had E E As aan shh semen eens 61 10 3 Defines Lisine Field The Basics serrit eene ia aien eea reae Ea E EEEa 62 10 3 1 Creating a Dimension type Listing Field ssuisseetessereirecrssstsesrisririsrseesissisrerescon 62 10 3 2 Creating an Independent Listing Field by Copying a Dimension eters 63 10 3 3 Creating an Independent Listing Field from Scratchy 0 05 ccsccesscceeseesesseesseoveness 63 104 Modifying a
39. About Measure DeNmitons reei seee ea sarean tel ae ie ee 49 6 2 D tiniie a Base Wis sure 52 2 5 nssietie tears ose e van EE Eea PeTo PEE EEEE E RO ESEE esd alee 49 BB ING RU USPS rere a E AEE E sche doen a aed EE EEE 50 9 Defining Subject AV as c sccccsccssssscssscssccassossesssesoossdesssossensoesencesassseasisensscusseascessanssensessdenseosseassesescesees 51 9 1 Overview of the Subject Area TaD orninan Eea eae Ea see bbe e SEE EEEE EE 51 9 11 Subject LAGE enas EEEE ENE EE E AE E EEEE NEA 51 9 12 Subject Detailg i esisssssecestesaisesvesssasvescasesecoruwnsvcnseedhastadive dass E SEEE EAEE EEA OE KEREKE ENEE 52 9 2 Defining a Subject Area The BASICS eriocicireccretren ioris ec es eeN res ETE EEEN ENEN a 53 9 3 Modifying Subject ATEA is c cc cssseessessiesesnsenszetsesebavecsabadacssanses Ee A EEE EEE EEEE ER Es EEOAE Ean 53 OA Filtering a SuDjeCt ATER o orrioriie eles sehcasan sinr S ea e EEE EEEn EEDE ETETEN EEEE EEEE SEE Ei 54 9 5 Specdiiying Role Access to a Subject Area cicccciscsesscssssezsiscsssdcsesavonsscssaevuensiasseessesnasiacntesitessnanee 54 9 5 1 Applying a Runtime Filter to Specify Role ACCESS iisisti teesis 54 OA Advyancet Role OPONSE riscio rgia eisean reeeo EErEE i DRE EEROR NEE ERRER 55 9 6 Defining Dimension to dimension Drill Options s sesssssssisssescisiincisieiniisreessiciseseisneneniassssis 55 9 7 Specifying the Available Dimensions in a Subject Area 0 ees eseeeecceseseeeeeeecnceneeseeseeneeeeneens 56
40. InterSystems J Using the DeepSee Architect Version 2010 2 25 April 2011 InterSystems Corporation 1 Memorial Drive Cambridge MA 02142 www intersystems com Using the DeepSee Architect Cach Version 2010 2 25 April 2011 Copyright 2011 InterSystems Corporation All rights reserved This book was assembled and formatted in Adobe Page Description Format PDF using tools and information from the following sources Sun Microsystems RenderX Inc Adobe Systems and the World Wide Web Consortium at www w3c org The primary document development tools were special purpose XML processing applications built by InterSystems using Cach and Java InterSystems InterSystems CACHE ENSEMBLE Cach WEBLINK Distributed Cache Protocol M SQL M NET and M PACT are registered trademarks of InterSystems Corporation InterSystems InterSystems InterSystems INTERSYSTEMS HEALTHSHARE DEEPSEE RAKCARE InterSystems Jalapefio Technology Enterprise Cache Protocol ECP and InterSystems Zen are trademarks of InterSystems Corporation All other brand or product names used herein are trademarks or registered trademarks of their respective companies or organizations This document contains trade secret and confidential information which is the property of InterSystems Corporation One Memorial Drive Cambridge MA 02142 or its affiliates and is furnished for the sole purpose of the operation and maintenance of the products of InterSystems C
41. Listing Field 2 5 2sccanscpsnsscedceoesaneacenenscaanceeaeos iaceiacbeljersesteliacdestonwateaaytieeoreent 63 10 5 Specifying the Data on Which a Listing Field Is Based 0 0 0 te eeesecseeceseesececeecesesaeeeeeesaees 64 10 6 Specifying the Data Type for an Independent Listing Field 0 eee eeeseeecseeneeeeeseceeeeeeeeeaees 64 10 7 Controlling Whether a Listing Field Is Selectively Rebuilt 0 eee eeeeeeeeeeeeseeeneeeee 65 10 8 Activating of Deactivating a Listing Field 20 05 sccesessecserd scsestsccesncasensetesdcertiusstengebscsevessevtesst 65 109 Deleting a Listing Field ici nce ei cdigdecieenst a cteeseieeoenegens Gita node EEA E S 66 TOTO NEXE BEDS eienen orne aeoiee eeaeee E EE EEE EE AEE SEE TENERE ETRE ENA TEE 66 11 Using Other Tables to Define Dimensions Measures and Listing Fields sssscsssesseees 67 i Usimne Complex Codevand SQL croisieres e r Ee EASE EEEE EEE ESEESE 67 LEZ Using the LME OpPUONS iiris can egeadsavasce dot nscosqcved juate A E REE E EE EEE EEE ERASER 68 11 21 Usine the Link Opt OM Sie cesinonenic ate naa E EE A 68 IZZA Lookat the Waite 8 i ereere neni ren irea ERR E ERA REE EENE ERRET 70 11 3 Usine a Class QUETI sorori ienei oreore rase ae aE aeea Eae E e TE EAEE ERE RENEE EEEE aE 70 12 Defining Detail Listings cssscsersesersesessessssesscsesscsessssessssesessesessssessssessssessnscssesessssesessesnseses 73 12 Overview pf the Detail List Libtaty Wales lt cissc cccccesnssisss ios cxvebdevs
42. Mension lt 5 0cs cscssisteccecssaadsceiceekscatesusbescesie db tssclavachacessataceseevends 39 A UI Delktine De SHOW oscari rnai a eir aE R REA E RE E EET RREO 39 4 12 Next SEPE ninnan a E E E E E OA 39 5 Defining Dynamic Dimensions ccscccscsssccssccssccssessccsscesecssccsscesccssscsscesscesssssssesssessessonssonscess 41 5 1 Overview of Dynamic Dimensions 2 5 50 cfscsseccscs scssecoeessccsscatevsnsscutgavssedcssteceesavsececocesusseaovenetsesoes 41 5 2 Creating a Dynamic DIMENSION 4 sects sceiesin ai teses n ienee esea E S ESIET ER RRE ES 41 33 Basie Demons taNo a 2 ciccsssd sn csisesecdevstaves sscesscetessnesvengeccusesintevasieossbaseegunssouesssiueseeedasevsesanssCeusees 42 SANE SIEDS eee e e E E A EE E E seus sacs tuaee cious E EE 43 6 Defining Compound Members esseseesoseesosossoesossesossesooecesoscssoesoscesossesooseososcssoesesoesossesoseessosessoesesossse 45 6 L Overview of Compound Mem ber iii cscesdscccadisdccescossesdsessceevanaccsaesssveccospeutesteeaiostsosdeescotoriececses 45 02 Creating a Compound Member ise sic ecisesctsecdsscsctscscish segs lacsviessca E a a e i 45 EA aa o I SE E T A e E E es eaetsedetoteateatencest stars 46 7 Defining Relationships between Dimensions s sessesoesesoeseocesoesosoesscooesesoesesoeseecosoesososesesossesosssecossees 47 7A Defining a Relations iip os iscics ices secstabisscuses oenen Enine iol ERER EE EE E EEANN 47 E Eo e E E T T E E 48 ADLAN any er LE E a e AE E A E 49 6 1
43. YYYY is a four digit year MM is a two digit month and DD is a two digit day To use this property as a date dimension you could do the following e Specify the following for Complex Code SZDATEH Sthis BirthDateVar5 8 e Set Data Type equal to Date For information on the ZDATEH function see the book Cach ObjectScript Reference 4 5 3 Date Dimension Details This section describes the behavior of the dimension variations that DeepSee automatically generates using the Birth Date dimension as an example e The Birth Date Day dimension has one member for each day of the month 1 through 31 Any given member uses data for the corresponding day of the month ignoring the year and month used in the data For example the member 2 uses data for all records where the birth date is the second day of the month for any month and year e The Birth Date Month dimension has one member for month January through December Any given member uses data for the corresponding month For example the member March uses data for all records where the birth date is in March for any year e TheBirth Date Period dimension has one member for year month combination For example the member 2005 11 uses data for all records where the birth date is in November 2005 e The Birth Date Quarter dimension has four members Q1 Q2 Q3 and Q4 Any given member uses data for the corresponding quarter For example the member Q1 uses data for all records where
44. a transformation name in the list on the left 3 Click Delete in the lower right The transformation is immediately deleted 13 6 3 Next Steps After you add modify or delete a transformation recompile and rebuild as described in Recompiling and Rebuilding earlier in this book 13 7 Applying a Transformation to a Dimension or Listing Field To apply a transformation to a dimension or a listing field 1 Define the transformation if it is not yet defined See the previous section 2 Open a Bl enabled class as described in Opening a BI enabled Class earlier in this book Using the DeepSee Architect 87 Using Replacements Ranges and Transformations 3 Select the dimension or a listing field Either e Click the Dim tab and then click the dimension e Click the Listing Field tab and then click the listing field 4 In the General tab select the transformation from the Transformation Type drop down list 5 Click Update to save your changes 88 Using the DeepSee Architect 14 Validating Your DeepSee Data Model This chapter briefly describes some useful tools and techniques to help you validate your dimensions measures and listing fields 14 1 Useful Tools To assist you during testing make sure that the Listing Field option is selected for each measure Also make sure that you have the following tools e A listing field based on an identifier or other unique value in the source data for example O
45. al Using the DeepSee Architect 5 Core Modeling Principles This chapter discusses the core principles that affect your DeepSee models e A measure value must have a one to one relationship with the base table e Be careful with collection based dimensions e Make sure to handle null values appropriately This chapter assumes that you are familiar with the concepts of DeepSee as discussed in the Overview of DeepSee 2 1 Measures Must Have a One to one Relationship with the Base Table The value on which a measure is based must be one to one with the records in the base table Otherwise DeepSee would not aggregate that measure in the way that you intend it to This section demonstrates this principle 2 1 1 Measures from Parent Tables Do not base a measure on a field in a parent table For example consider the following two tables e Order Each row represents an order submitted by a customer The field SaleTotal represents the total monetary value of the order e OrderItem Each row represents an item in that order In this table the field OrderItemSubtotal represents the monetary value of this part of the order Suppose that we use OrderItemas the base table Also suppose that we define the measure Sale Total based on the parent s SaleTotal field The goal for this measure is to display the total sale amount for all the sales of the selected order items Let us consider the contents of the fact table The following s
46. alue you select controls the value to use in the column to its right as follows 76 Using the DeepSee Architect Specifying Role Access to a Detail Listing Table 12 2 Options for the Detail Listing Summary Lines Value of Option Value to Use for Grand or Page Label Type a string to use as a label System available only for Select one of the following numeric aggregation functions dimension type listing fields Total e Average e Max Min e Count Std Dev e Variance Per Percentage of the total value Median 12 6 Specifying Role Access to a Detail Listing To specify the roles that have access to a detail listing 1 Open a BlI enabled class as described in Opening a BI enabled Class earlier in this book 2 Click the Detail List tab 3 Click the Browse button al next to Listing Name click the detail listing and then click OK 4 Click the Role Access tab 5 Click the check box next to each role that should have access to this detail listing Clear the check box for any roles that should not have access Grid Layout Role Access Access Role demo 6 Click Save Using the DeepSee Architect 77 Defining Detail Listings 12 7 Adding a Link to Another Detail Listing Within a detail listing a user can display another detail listing in any subject area to which the user has access Specifically the user can right click a row and then select the
47. alued properties as dimensions and gives details on the resulting dimension variations 4 5 1 Recognized Date Formats If you start with a property of type Date or TimeStamp and you create a dimension based on the property then DeepSee automatically sets Data Type equal to Date the default date format If the property is a string that contains date values you must set Data Type appropriately as follows 30 Using the DeepSee Architect Defining a Dimension Based on a Date Property Format of Date Property if String Type Appropriate Setting for DataType Type of Dimension Date Date TimeStamp Date or Date YYYY MM DD String YYYY MM DD with optional trailing time data Date or Date YYYY MM DD YYYY MM DD with optional trailing time data Date YYYY MM DD DD MM YYYY with optional trailing time data Date DD MM YYYY DD MM YYYY with optional trailing time data Date DD MM YYYY Here DD is a two digit day MM is a two digit month and YYYY is a four digit year The logical value for a property of type TimeStamp includes the time which the predefined dimension data types ignore For a property of type String if the date piece is followed by a space and then a time piece the time piece is ignored 4 5 2 Converting Other Date Formats If the date dimension is not in one of the preceding formats you must use the Complex Code option to convert its format For example suppose the property BirthDateVar5 is in the format YYYYMMDD where
48. alues Number Values Values Each row corresponds to a dimension For Sort By click either ID or Name to control how the rows are sorted In this table e Dimension Name is the name of the dimension as seen in the Analyzer and in any pivot tables that include this dimension When you first create a dimension this is the same as the name of the property instance method or SQL shortcut Note You can include a question mark or a single quote in the name but avoid other non alphanumeric characters In particular do not use a period Also dimension names must be unique and dimensions and measures cannot have the same name e Property is the class property or instance method on which the dimension is based This field is ignored if the dimension is based on complex code e DataType affects how members are defined as well as their default names The data type is set automatically based on the data type of the field you are using but you can change it See Specifying the Dimension Data Types e Active controls whether this dimension is active visible in the Analyzer and in pivot tables See Deactivating or Activating a Dimension e Complex indicates whether this dimension is based on a Cach ObjectScript expression instead of on a single class property See Basing a Dimension on a Cach ObjectScript Expression e M C B indicates whether the Manual Child Browse tab contains information for this
49. ames of the dimension members See the chapter Using Replacements Ranges and Transformations 24 Using the DeepSee Architect Defining a Dimension Option Purpose Ranges tab Defines the dimension members as a set of ranges of values applies to numeric valued and time valued dimensions See the chapter Using Replacements Ranges and Transformations 4 2 Defining a Dimension This section describes the basic method for defining dimensions 1 Open a Bl enabled class as described in the previous chapter 2 Click the Dim tab 3 Expand the class hierarchy in the left area as needed DeepSee Study Patient La Ly Id Ly Age H Allergies BirthDate i e O BirthDateTimeStamp C BirthTime E DB Diagnoses H 5B DiagnosesAsArray i s B DiagnosesAsLB me O DiagnosesAsMany a F Gender 4 Drag and drop a property instance method or SQL shortcut from the class hierarchy to the Dimensions table on the right Or double click the property instance method or SQL shortcut In either case the Dimensions table now includes a dimension that is based on your selection For example Sort By ID v Ce See Property Data Type 10008 Name HomeCity Name Values 5 Click this new row so that it is selected The bottom right area of the page then shows details for this dimension Using the DeepSee Architect 25 Defining Dimensions T Optionally rename the dimensi
50. anyway This view of the class provides a useful starting point for creating dimensions measures and listing fields In many cases you can simply create an element by double clicking a property within this hierarchy But it is important to know that although this view provides a convenient way to access some properties you can in fact access any property and you can access data in any table by using Complex Code 3 6 Recompiling and Rebuilding To recompile rebuild or both 2 Click the Process button in the menu bar DeepSee displays a dialog box that shows the results from the last time you recompiled or rebuilt 2 In this dialog box do one of the following e To recompile the base class the BI enabled class click Compile e To recompile the base class and rebuild the indices click Rebuild Tip This dialog box is not always automatically refreshed when the compilation or rebuild status changes To refresh the display and see the current status click Refresh 3 When you are done click Cancel You can also recompile in the Studio in the same way that you recompile any other class definitions In case of compilation errors the Studio sometimes provides more detailed messages than the Architect does To rebuild all the indices programmatically use the Cach Terminal go to the appropriate namespace and enter the following command where classname is the package and class name of the BI enabled class Do class
51. asures are calculated at runtime and they are not stored in the fact table It is good practice to create a calculated measure based on the default measure but with a more informative name For example for the Patients subject area you could create a calculated measure named Patient Count whose definition is Count 8 2 Defining a Base Measure To define a base measure define a numeric or date dimension as described in Defining a Dimension The Basics When you do so make sure of the following Using the DeepSee Architect 49 Defining Measures Ensure that the measure value is one to one with the records in the base class For an explanation see the For general guidelines see the chapter Core Modeling Principles Use a numeric or date valued field or expression as the dimension data Also see the chapter Using Other Tables to Define Dimensions Measures and Listing Fields For Data Type choose Number Date or one of the date variations Ensure that the measure name uses only alphanumeric characters and is not the same as the name of any dimension Otherwise the measure is not available in the Analyzer When you define a numeric measure DeepSee truncates any data after two decimal places so that the measure can also be used as a dimension If this is undesirable use the following workaround Within the base measure definition apply a multiplicative factor to it such as 100 Then in the Analyzer create a
52. ated Dimension type listing fields are stored within a global with 500 records stored by default in each node of the global If the listing field data contains many characters DeepSee can exceed the limit permitted for a global node which causes the following error Error lt MAXSTRING gt d1rTR2 4 bi SwWr WebMain2 ErrorNo 5002 CSP Page csp sys bi CSP Broker cls Namespace NZZ Class CSP Broker Routine bi SWr WebMain2 Location dlrTR2 4 If you receive this error when you build the DeepSee indices change the definition of the dimension and set the value of Count Per Node to a number that is smaller than 500 This setting is on the General tab below the table Or create an independent listing field instead as described later in this section 62 Using the DeepSee Architect Modifying a Listing Field 10 3 2 Creating an Independent Listing Field by Copying a Dimension To create independent listing fields by copying one or more dimension definitions l 2 3 Open a BI enabled class as described in Opening a Bl enabled Class earlier in this book Click the Dim tab Then do one of the following e Tocopy the dimension definition right click the dimension in the Dimensions table and click Add To Listing Fields e To copy all the dimension definitions right click anywhere in the Dimensions table and click Add All To Listing Fields If you already have a dimension type listing field that uses a
53. before the fragment but do not include manual line breaks That is type on a single line within Loop Coding The text wraps automatically so that you can see all of it 5 For Each Fetch specify one or more Cach ObjectScript statements that assign a value to the variable val or click Sample to insert an editable sample For example set val this Allergies GetAt i Allergen Description Your code can refer to the variables used in Loop Coding If you use multiple statements do not include manual line breaks That is type on a single line within Each Fetch The text wraps automatically so that you can see all of it 6 Click the General tab and then delete the contents of the second Property field This step is optional because this field is ignored if there is data on the Manual Child Browse tab Notice that in the Dimensions table the M C B check box becomes selected automatically for this dimension This indicates that this dimension has information specified on the Manual Child Browse tab 4 7 4 Using the M C B Feature with an Array type Property For an array type property you would use a similar technique For Loop Coding you would use something like the following Set wI For Set wl this Categories Next wI Quit wI _ Do 36 Using the DeepSee Architect Defining a Dimension Based on a Collection Important You must include two spaces before Set Also there must be two spaces before Do and one space afte
54. cases the Architect automatically has access to any classes in this namespace that extend BI Adaptor as well as to all object valued properties of those classes recursively The Architect accesses and modifies the same class definitions that you see directly in the Studio This means that if you make a change in one location and save it that change is immediately available in the other For convenience you can recompile and rebuild the base class as needed from Architect 3 3 Opening a Class Definition When you open a class definition in the Architect the Architect automatically adds Bl Adaptor to its superclass list if that is not yet included To open a class definition in the Architect 1 First do any of the following 14 Using the DeepSee Architect Opening a Bl enabled Class Click the Open Class button gt in the menu bar The Architect displays a dialog box Click Add in the lower left of this dialog box Then click Search e Click the Base Class link in the lower left The Architect displays a dialog box Click Add in the lower left of this dialog box Then click Search e Click Add in the lower left In all cases the Architect displays a search dialog box The appearance of this dialog box depends on the path you used 2 Inthe search dialog box optionally type the name of the package that contains the class If you do not specify a package name the Architect searches all packages in this namespace
55. ck the Browse button R next to Listing Name Click the detail listing and then click OK Make the changes Click Update to save your changes 12 4 Modifying the Layout of a Detail Listing To modify the layout of a detail listing l 2 3 Open a BI enabled class as described in Opening a BI enabled Class earlier in this book Click the Detail List tab Click the Browse button al next to Listing Name click the detail listing and then click OK Now you can do the following on the Grid Layout tab e Move a row up To do so right click it and click Move Up This action moves the corresponding listing field to the left within the detail listing e Move a row down To do so right click it and click Move Down This action moves the corresponding listing field to the right within the detail listing Using the DeepSee Architect 75 Defining Detail Listings 5 Remove a row To do so right click it and click DeleteLine Add a listing field To do so in Available Fields expand the two folders so that you can see all the available listing fields Tip If you do not see all the listing fields you expect to see click the Refresh button in the menu bar Double click each listing field that you want to include The additions are added at the bottom of the table Edit the column header for any listing field To do so click it in the table and edit the Caption field Click Save 12 5 Adding Summary Lines t
56. ct 79 Defining Detail Listings 12 10 Next Steps After you define modify or delete a detail listing do the following to make your changes visible in the Analyzer 1 Recompile as described in Recompiling and Rebuilding earlier in this book 2 If you defined a new detail listing make sure to give access to the detail listing to all suitable roles as described earlier in this chapter 3 If you have not yet done so define a subject area as described later in this book When you define the subject area make sure to give access to it to all suitable roles 4 If the subject area is already open in the Analyzer you may need to reopen it 80 Using the DeepSee Architect 13 Using Replacements Ranges and Transformations Replacements ranges and transformations allow you to modify the data shown in the Analyzer and in pivot tables for dimensions and for listing fields The Architect provides these tools in several contexts This chapter discusses the following topics e An overview e Predefined transformations provided by DeepSee e How to replace null values for a dimension measure or listing field e How to define a set of replacements for a dimension or listing field e How to define a set of ranges for a dimension or listing field e How to define a transformation to use in a dimension or a listing field e How to apply a transformation to a dimension or a listing field 13 1 Overview of Replacements Range
57. ctScript expression or a constant If you use an expression note that DeepSee evaluates it at compile time e If this range includes this value click the check box in the first inclusive column f For To type the upper end of the range if any This can be a Cach ObjectScript expression or a constant If you use an expression note that DeepSee evaluates it at compile time g If this range includes this value click the check box in the second inclusive column Repeat as necessary For example 84 Using the DeepSee Architect Defining and Modifying Transformations s 0 9 O 9 10 19 10 19 E 20 29 20 29 30 39 30 39 a 5 Ifyou are editing a dimension optionally type a string into Range Dimension Suffix This string is appended to the dimension name 6 Click Update to save your changes If you edited a dimension notice that the Trns Rep check box is checked in the table at the top of the page this happens automatically when you enter information on the Translation Replacement or the Range tab 13 5 2 Other Options You can also do the following on the Range tab To delete a single line right click it and select Delete Line The line is immediately deleted To delete all lines right click and select Clear You are prompted to confirm this action To copy all lines of this table to the system clipboard right click and select Copy to Clipboard To paste the contents of the system clipboard right c
58. d e Ifadata change affects a record in another class to which the base class refers it is the responsibility of your application to do the following 1 Determine the IDs of the affected objects in the base class 2 Update the DeepSee indices for those objects by using the zzBuildOne method of the base class inherited from Bl Adaptor The first argument for this method is the ID of the object whose indices need to be updated For an example see the DeepSee Developer Tutorial and the DeepSee Study sample classes in the SAMPLES database 3 7 Rebuilding Selectively To rebuild a subset of dimensions and listing fields 1 Click the Selective Rebuild button li in the menu bar 2 You are prompted to confirm this action Click OK Also see Controlling Whether a Dimension Is Selectively Rebuilt and Controlling Whether a Listing Field Is Selectively Rebuilt 3 8 Specifying the Number of Processes By default DeepSee uses one process when it builds the indices If you are rebuilding the DeepSee indices on a machine that has multiple CPUs you can increase the number of processes that DeepSee uses To do so 1 Click the Sys tab 2 For Number of Processors specify an integer Typically you use a number that is the same as or slightly larger than the number of processors 3 Click Save You can also specify this option system wide See the chapter Configuring the DeepSee Site in the book DeepSce Site Configu
59. d has both internal and external values Null Field Replacement Optionally specifies a string to use as replacement for any null values Invalid Pointer Replacement Optionally specifies a string to use as replacement for any invalid pointers Justification Specifies how to convert the horizontal alignment of any strings Optionally choose Left Center or Right Translations tab Optionally defines a set of text replacements Follow the instructions in Defining Replacements for a Dimension or a Listing Field earlier in this chapter Ranges tab Optionally defines a set of ranges Follow the instructions in Defining Ranges for a Dimension or a Listing Field earlier in this chapter Bitmaps tab Optionally defines a set of text to image replacements This affects only independent listing fields See the following subheading 13 6 1 Defining Text to image Replacements Within a transformation you can define a set of replacements that substitute images in the place of text You specify the text to replace and a bitmap image to display in its place This replacement affects only independent listing fields dimensions and dimension type listing fields ignore any text to image replacements To define text to image replacements within a transformation 1 Load the image files into the DeepSee library For information see the DeepSee Site Configuration and Maintenance Guide 2 Make sure the Translations tab is empty
60. dimension You use this tab to describe how to index the values in dimension that is based on a list type property See Defining a Dimension Based on a Collection e Trns Rng indicates whether you have entered information on the Translation Replacement or Range tabs See the chapter Using Replacements Ranges and Transformations e Listing indicates whether this dimension definition also defines a listing field See the chapter Defining Listing Fields e Select controls whether this dimension is included in the subset that can be selectively rebuilt See Controlling Whether a Dimension Is Selectively Rebuilt In this table when you click the dimension that you want to work on the tabs in the lower right display details for that dimension Using the DeepSee Architect 23 Defining Dimensions 4 1 3 Tabs The tabs in the lower right display details about the currently selected dimension General Manual Child Brovse Dimension Name Home City Translation Replacement Ranges Script SQL Listing Field CJ Count Per Node Data Type Values Mi Transformation Type None vi Property Link Property eae lex Code Other Options DeepSee Study Patient HomeCity Name Link To Delete New update The following table summarizes the options on these tabs Unless otherwise noted the sections listed here are in this chapter Table 4 1 Options on the Dimen
61. e BI enabled class includes properties that contain collections You can define dimensions based on col lections This section describes the following e How to use the Words dimension data type e How to use the Words dimension data type with custom code e How to use the M C B feature with a list property e How to use the M C B feature with an array property e How to force M C B to return at least one value null handling e How to interpret such dimensions 4 7 1 Using the Words Dimension Data Type The simplest kind of collection is a space separated list The Words dimension data type removes non alphanumeric char acters other than spaces from the dimension data parses the data into space delimited words and creates a member for each unique word DeepSee considers case for example it treats Al lergyCodel and allergycode 1 as different words For example suppose that your BI enabled class included the property FavoriteColors which might have values like the following e Red e Green Red Blue e Pink Red If you use this property as a dimension and you set Data Type to Words you create the members Red Green Blue and Pink 34 Using the DeepSee Architect Defining a Dimension Based on a Collection 4 7 2 Using the Words Dimension Data Type with Complex Code You may be able to convert a collection property to a space separated list so that you can use the Words dimension data type You might find it convenient
62. e Data Type option of a dimension affects how members are defined The following table summarizes the options Table 4 2 Data Types for Dimensions Dimension Data Type Values Reference Date Number Boolean Words Date and format Time Purpose and Comments Creates a dimension that has a member for each unique value of the dimension data By default these are collated as strings Can be used with any type of data This is the most commonly used option Creates a dimension that has a member for each unique internal identifier Use this type of dimension if you expect the dimension data values to change and if you do not want to rebuild the indices when that occurs For example if you use the customer name as a dimension you might use the Reference type for this dimension Then if a customer company changes its name it would not be necessary to rebuild the indices to accommodate that change Can be used with any type of data When a dimension is defined this way however it cannot also be used as a listing field See the section Defining a Dimension Based on a Date later in this chapter Creates a series object dimension and a measure Appropriate only for numeric data Note that you can use Null Field Replacement with this type as you can with the other types Creates a dimension that has two members No groups records for which the dimension data equals 0 N NO F or FALSE not case sensi
63. e a filter expression that selects the data for this subject area For example Gender M Or click the Edit option and define the filter expression interactively For syntax and other details see the book Expressions and Scripts in DeepSee Note The Edit Filter dialog box does not let you enter a filter expression until you have defined at least one subject area Before that the dialog box is displayed as a blank box Also it shows only the dimensions whose definitions were active the last time the DeepSee indices were built Also see Applying a Runtime Filter to Specify Role Access later in this chapter 9 5 Specifying Role Access to a Subject Area To specify the roles that have access to a subject area 1 Open a BlI enabled class as described in Opening a Bl enabled Class earlier in this book 2 Click the Subject tab 3 Click the subject area in the Subject List area 4 Click the Role Access tab 5 Click the check box next to each role that should have access to this subject area Clear the check box for any roles that should not have access Role Access Drill Dovm Dimension Access Custom Aggregates Access Role Default Detail Listing Filter for Detail Listing Filter for Pivot Select Dim demo Basic Details F F click 6 Click Save 9 5 1 Applying a Runtime Filter to Specify Role Access Rather than creating multiple subject areas with different filters you may be able to define
64. ect Area Tab You use the Subject tab to define redefine and delete subject areas This screen has two main areas 9 1 1 Subject List The left area lists the subject areas that have already been defined if any Dim Dyn Dim Subject Patients Here you click the subject area that you want to work on Using the DeepSee Architect 51 Defining Subject Areas 9 1 2 Subject Details The right area displays details for the currently selected subject area Subject Details Detail Listin No Default Basic Details Subject Name Patients Access All Dim Active Role Access Drill Dovm Dimension Access Custom Aggregates Access Role Default Detail Listing Filter for Detail Listing demo F The following table summarizes the options Unless otherwise noted the sections listed here are in this chapter Table 9 1 Options for Subject Areas Option Purpose Subject Name Name of currently selected subject area you can change this name Detail Listing This list shows all the available detail listings The highlighted detail listing is the default detail listing if any for this subject area Subject Filter options Optionally specifies how this subject area is filtered See Filtering a Subject Area Access All Dim check box Controls whether the subject area includes all dimensions See Specifying the Available Dimensions in a Subject Area Active check box Controls whether
65. efining Subject Areas Defining Listing Fields Using Other Tables to Define Dimensions Measures and Listing Fields Defining Detail Listings Using Replacements Ranges and Transformations Validating Your DeepSee Data Model When to Recompile and Rebuild For a detailed outline see the table of contents For more information see the following books Overview of DeepSee an introductory guide for all users who are interested in learning about DeepSee DeepSee Model Design Guide an introductory guide for implementers and business users DeepSee Developer Tutorial a tutorial for implementers who are creating DeepSee models pivot tables and dashboards Using the DeepSee Connector a guide for implementers who are using the DeepSee Connector to import externally stored data Note that the DeepSee Connector is available only with Ensemble Using the DeepSee Analyzer a guide for implementers and advanced users who want to create pivot tables to embed in applications or who simply want to explore their data Using the DeepSee Dashboard Designer a guide for implementers who are using the Dashboard Designer to create dashboards Expressions and Scripts in DeepSee an implementer guide that describes the syntax and options for all formulas expressions and scripts supported in DeepSee This book also lists all the locations where you can use these expressions and scripts DeepSee Site Configuration and Maintenance Guide a guide for im
66. ension clear the Active check box on the General tab Or to activate the dimension click the Active check box Click Update to save your changes 4 11 Deleting a Dimension To delete a dimension do the following 1 2 Open a BI enabled class as described in the previous chapter Click the Dim tab or Compound Mem tab as appropriate If you create a dimension on the Compound Mem tab that is where you can delete it For information on the purpose of this tab see the chapter Defining Compound Members Click the dimension in the Dimensions table Click Delete You are prompted to confirm this action 4 12 Next Steps After you define modify or delete a dimension do the following to make your changes visible in the Analyzer l 2 Recompile and rebuild as described in Recompiling and Rebuilding earlier in this book Define a subject area as described later in this book If you have added a dimension make sure the subject area includes the dimension When you define the subject area make sure to give access to all suitable roles If the subject area is already open in the Analyzer you may need to reopen it Using the DeepSee Architect 39 Defining Dynamic Dimensions This chapter describes how to define dynamic dimensions It discusses the following topics e Overview of dynamic dimensions e How to create dynamic dimensions for use in filters e A basic demonstration e How to make you
67. epSee adds a new blank line to the table in this tab 4 For Dimension Name type the name of the dimension For example MyDim 5 For Script type one or more Cach ObjectScript statements that specify the records of the base table to use You typically call your custom routine or class method In your custom code do the following e Optionally use the variable named PARAM which will contain the value specified by a filter that uses this dimension e To use one record of the base table set the variable val equal to an ID of that record e To use multiple records of the base table set OLIST equal to the number of records Then set the nodes OLIST n where n is an integer Set these nodes equal to the IDs of the desired records For example to use three records Set OLIST 3 Set OLIST 1 idl Set OLIST 2 id2 Set OLIST 3 id3 Where objectid1 objectid2 and objectid3 are IDs of the three records e Ifno ID is appropriate set val or OLIST equal to null 6 Click Save 5 3 Basic Demonstration As a simple example suppose that we want a dynamic dimension that behaves as follows e Ifthe user selects A DeepSee should access the record with ID equal to 1 e Ifthe user selects B DeepSee should access the records with IDs equal to 2 3 and 4 e If the user selects C DeepSee should access no records To see the basic capability do the following using the DeepSee Study sample 1 In the Studio define a routine demodynd
68. eral tab click the Other Options link which displays a dialog box 5 To deactivate the listing field clear the Active check box Using the DeepSee Architect 65 Defining Listing Fields Or to activate the listing field click the Active check box 6 Click OK to exit the dialog box 7 Click Update to save your changes To activate or deactivate a dimension type listing field activate or deactivate the dimension See the chapter Defining Dimensions 10 9 Deleting a Listing Field To delete an independent listing field do the following 1 Open a BlI enabled class as described in Opening a Bl enabled Class earlier in this book 2 Click the List Field Library tab 3 In the upper right area click the listing field 4 Click Delete to save your changes You are prompted to confirm this action To delete a dimension type listing field do one of the following e Delete the dimension e Modify the dimension and clear the List Field check box on the General tab See the chapter Defining Dimensions 10 10 Next Steps After you define modify or delete any kind of listing field do the following to make your changes visible in the Analyzer 1 If you have added a listing field add it to a detail listing as described in the chapter Defining Detail Listings 2 If you have deleted a listing field remove it from all detail listings as described in the chapter Defining Detail List ings
69. es 95 G C T A A O A E AO A A 97 vi Using the DeepSee Architect List of Tables Table 4 Options on the Dimension Tabs isc sccseccsscascivs cgi soecs or a R E R REEERE 24 Table 4 2 Data Types tor Dimensions ionrata oE NEEE Ee EE a vase aa E Ea REEE EEEa Ca enS 29 Table O 15 Opuons Tor SuDject ATES oi o oo ces ches lice ees ir eP e eeta ees en OE Eeeh ES EEE ECK EEEE EEN NNE E AEE EROE E EAE 52 Table 10 1 Options on the List Field Library TADS s cs3 0 5 cascsuseccest sauce ssusciecbeuscsteptetuienssasvenuseenstbeastiens 61 Table 10 2 Data Types tor Listing Fields sia ccs cS ides secicoabsssiiedsncdscderasvicncsGes seb asra EEE EREE EEE 64 Table 12 12 Options for Detail Wasting eisiea eoet nocere ease a en abe ESEE EE EErEE EET EESE T ER ai 74 Table 12 2 Options for the Detail Listing Summary Lim s sc cceceecteneececceseseeeseeeeteeeneet 77 Table 13 1 Options in a Named Transformation ssesesceseseeseeseceecseeseesecaecesescsaeceseeeeaesaeeesereseees 86 Using the DeepSee Architect vii About This Book This book describes how an implementer can use DeepSee Architect to create a DeepSee model for use in pivot tables It contains the following sections Introduction to the DeepSee Architect Core Modeling Principles Enabling Classes for Use in DeepSee Defining Dimensions Defining Dynamic Dimensions Defining Compound Members Defining Relationships between Dimensions Defining Measures D
70. eseceseeseceeceeeceseeseeeeeeeeeeseeseenneees 9 2 3 Make Sure to Handle Null Values Correctly scirniscia 9 2 31 Null Valves in a Measte 5 622s scn5sssccdscesssecescccsccadaacdesueaseuteescaseesvsecevsceadeesuacesacedestuevoceene obiatts 9 2 3 2 Null Values ii g DImEDSiON serieren nenei aa aa e e iaa Ea EE lees 10 3 Enabling Classes for Use in DeepSee ssccsscsssccsscssccsccssscsnccsscsessssssessonssessccssorssessoesscesecssesees 13 EOS E o Tee E E AA E E E ET 13 3 2 Benabling Your Classes oncnosnunienenicirg nen ea E E Gaus eae aeei 14 3 3 Opening a Class De Mm an vcsir tec cssccesteczcceacecesdceaseesescceusteascosece cscvosas ca i Enee SE E EIREAG 14 34 Opening a Bil enabled Class siiu sisenes e na e Ta AREE ETETE as 15 3 5 Display of Properties and Methods of a BI enabled Class 0 cee eeeeessseeececeeceeeeeeseeeseeeeneeeeee 15 X0 Recomping and Ie TINE 04 lt secceiscssesvesesvceesuetevetOenceyeveenSecuues ccensexdenantoden Soaetvsnivtenasebauvesisvete 16 306 1 m remental REMUS vorne aaa EE RE E EENAA E 16 Git AOT TERS A E h E A A E A E E E EE 17 3 8 OpPECEyING the Nimber of ProcessES sreisrrsinorrseinenisrine sinaos E Srne EEA ET EEA EREN E SAE 17 99 Chearime Unsaved WOTK ses cosccecsesseseestsceecs cane E s oui KEEA EER EE EESE TEEF E EEE EEA PEE EREN aR RRE 17 3 10 Defining SQL SHOMCUIS incre aeae eaa in a EE E EE a So aii 18 3 11 Removing BI Adaptor from a Class sssseeeeseseseeesseesssteesseeestetsreseseesstses
71. ething like this Patient Patient Group Count Group A 3 995 In this case however there are 10000 patients which is greater than the total shown here This pivot table includes only the patients that have a value for the PatientGroup property Favorite Color Count 1 275 1 235 Grand Total 10 000 Also consider the following pivot table Suppose that you redefine this by adding the Patient Group dimension as columns Group A Group B Patient Patient rorite Color z Count Count Green 1 504 1 600 No Data Available 987 946 Orange 487 530 Purple 478 518 Yellow 539 491 Grand Total 3 995 4 085 10 Using the DeepSee Architect Make Sure to Handle Null Values Correctly By adding the Patient Group dimension to this pivot table we automatically filtered out the patients with no value for the PatientGroup property In these cases your users might prefer to see a placeholder member For a given dimension the placeholder member would be used to collect all records that have a null value for this dimension and the dimension would not omit any records For example 3 995 4 085 1 920 10 000 Depending on how you create the dimension there are different options for handling null values For details see the chapter Defining Dimensions Also see the DeepSee Developer Tutorial Using the DeepSee Architect 11 Enabling Classes for Use in DeepSee Within the Architect you can perform mo
72. g a Listing Field The way to modify a listing field depends on its type If the listing field is a dimension type listing field modify the dimension definition See Modifying a Dimension earlier in this book If the listing field is an independent listing field modify its definition on the List Field Library tab as described in the following steps Using the DeepSee Architect 63 Defining Listing Fields To modify the definition of an independent listing field 1 Open a Bl enabled class as described in Opening a BI enabled Class earlier in this book 2 Click the List Field Library tab 3 Click the listing field in the Listing Fields table 4 Make the changes 5 Click Update to save your changes To modify the definition of a dimension type listing field modify the dimension See the chapter Defining Dimensions 10 5 Specifying the Data on Which a Listing Field Is Based A listing field of any kind is based on data in the same way that a dimension is There are two cases e A listing field is based on a single class property instance method or SQL shortcut e A listing field is based on a Cach ObjectScript expression possibly using multiple class properties The techniques are the same as they are for dimensions See the section Basing a Dimension on a Cach ObjectScript Expression earlier in this book 10 6 Specifying the Data Type for an Independent Listing Field The data type of
73. hows an example Using the DeepSee Architect 7 Core Modeling Principles Sale dim A dimB Total meas B meas nnno jonni nnnm 279 07 nnmnnn nnnm nannan nnno jonni nnnm 279 07 nnmnnn nnnm nannan An LA nnnnn 279 07 nnnnn nnmnnn nnnnn An Lary 279 07 nnmnnn annn nnn nnn ven nnnnn 52 14 nonnn nnmnnn nnnnn nnn Annan nnnnn 52 14 nnnnn nnnnn nnnnn The first four rows represent the items in the same order The next two rows represent the items of another order and so on Suppose that this model has a dimension called Item Type Let us examine what happens when DeepSee retrieves records for all items of type R ltem Sale dim Total meas B measC nnn nnn 279 07 nnnnn annan i nnn nnnnn 27907 nnnnn nnn nnnnn ninann annnm T9077 nnnnn nnnnn nnn nnnnn nnn Annan Ann ANNA nnnnn 62 14innnnn nannan jnnnnn type T nnnnn nnnnn 52 14nnnnn jnnnnn nnnnn To compute the value of the Sale Total measure for type R DeepSee adds together the three values shown here 279 07 279 07 and 52 14 But this action double counts one of the orders Depending on the case the Sale Total measure might aggregate correctly that is it might show the correct total sales figure for the selected order items But you cannot ensure that the measure does this because you cannot prevent double counting as shown as in this example 2 1 2 Measures from Child Tables You can use a value in a child table as the basis
74. in as follows if PARAM A set val 1 if PARAM B set OLIST 3 OLIST 1 2 OLIST 2 3 OLIST 3 4 if PARAM C set val 2 Define a dynamic dimension with the following details s Dimension Name DemoDynDim e Script Do demodyndim 3 Compile the DeepSee Study Patient class 42 Using the DeepSee Architect Next Steps 4 In the Analyzer create a pivot table that uses this class Apply the following filter expression DemoDynDim A Run the pivot table and display a detail listing You should see that only this pivot table uses only one record the first patient Try again with the following filter expression DemoDynDim B In this case the pivot table should use three records Last try the following filter expression DemoDynDim C In this case the pivot table should be empty 5 4 Next Steps After you define modify or delete a dynamic dimension do the following to make your changes visible in the Analyzer 1 Recompile as described in Recompiling and Rebuilding earlier in this book 2 Define a subject area as described later in this book If you have added a dimension make sure the subject area includes those dimensions When you define the subject area make sure to give access to all suitable roles 3 If the subject area is already open in the Analyzer you may need to reopen it Using the DeepSee Architect 43 Defining Compound Members This chapter de
75. in the following example Birth Time Ranges To create custom time ranges I 2 Set Data Type to Values Optionally use Complex Code to convert the data to a format that is easier to work with For example suppose that the property BirthDate contains dates in ODBC format YYYY MM DD hh mm ss where YYYY is a four digit year MM is a two digit month DD is a two digit day hh is the hour mm is the minutes and ss is the seconds To extract from this property the number of seconds since midnight you would use the following for Complex Code SZTIMEH SPIECE this BirthDate 2 3 DeepSee evaluates this expression before comparing to any ranges Click the Ranges tab and define ranges You can use Cach ObjectScript expressions for the From and To values For example Using the DeepSee Architect 33 Defining Dimensions Caption inclusive before 8 am SZTIMEH F 08 00 2 O 8 am to 4 pm SZTIMEH y SZTIMEH 08 00 2 16 00 2 O 4 pm to midnight ZTIMEH 7 16 00 2 oO The dimension has one member for each range that you define 4 Click Update to save your changes Note By default the members of this dimension are sorted alphabetically but when you use this dimension in a given pivot table you can easily modify the sort order see the chapter Creating and Customizing Dimensions in the book Using the DeepSee Analyzer 4 7 Defining a Dimension Based on a Collection In many cases th
76. inds of listing fields To define a dimension type listing field click the Listing Field check box when you define the dimension See the subsection Creating a Dimension type Listing Field e You can define an independent listing field in a couple of equivalent ways Youcan copy a dimension definition and use it as the basis of a listing field definition which you can then modify See the subsection Creating an Independent Listing Field by Copying a Dimension Then if you redefine or delete either the dimension or the listing field the other is unaffected You can create a listing field definition from scratch See the subsection Creating an Independent Listing Field from Scratch 10 3 1 Creating a Dimension type Listing Field For any type of dimension other than Reference you can define the dimension for use as a listing field as well For infor mation on this type see Specifying the Dimension Data Types To use a dimension as a listing field 1 Open a Bl enabled class as described in Opening a BI enabled Class earlier in this book 2 Click the Dim tab 3 Click the dimension in the Dimensions table to select it 4 In the General tab click the Listing Field check box Notice that at the top of the page the Listing check box is checked this indicates that this definition specifies both a dimension and a listing field 5 Click Update to save your changes The listing field is now cre
77. ing Fields 10 1 Overview of Listing Fields There are two kinds of listing fields e A dimension type listing field is a listing field whose definition is owned by a dimension definition If you redefine the dimension the listing field is automatically redefined as well Similarly if you delete the dimension the listing field is automatically deleted The data used by the listing field is stored in a DeepSee global which means that its performance is fast This kind of listing field however requires more disk space than the other kind The number of different values of the listing field affects the size of the global more values make the global larger e An independent listing field is a listing field that has an independent definition not dependent on the definition of any dimension For this kind of listing field DeepSee does not access the data until the user displays the detail listing then DeepSee directly accesses the source data Using the DeepSee Architect Defining Listing Fields 10 2 Overview of the List Field Library Tab You use the List Field Library tab to add modify and delete the independent listing fields it does not display the dimension type listing fields This tab has three main areas 10 2 1 Class Hierarchy The class hierarchy on the left shows the base class the BI enabled class and most of the classes available from it via property relationships a g DeepSee Study Patient
78. ion to options that apply to dashboards Edit Dashboard New Dashboard Open Dashboard Recent Dashboard Save Parameter Reload Save Parameter Dashboard Management Go To Refresh Home Main Data Modeler Controls Log Out Administrator 1 3 Accessing the DeepSee Architect To access the Architect e Ifyou are currently viewing a DeepSee module click Data Modeler gt Architect 4 Using the DeepSee Architect Switching to Another Namespace e Ifyou are currently viewing a dashboard right click and then click Go To gt Data Modeler gt Architect The Architect looks like this Le Cant a KG BK Dim Dyn Dim Subject Compound Mem Rel List Field Library Detail List Dimensions Sort By ID k ID Dimension Name e L Property General Manual Child Brovse Translation Replacement Ran Dimension Name Data Type Values v 1 4 Switching to Another Namespace To switch to a different namespace 1 Log out To do so do one of the following depending on what you are currently viewing e Ifyou are currently viewing a DeepSee module click Log Off in the upper right e Ifyou are currently viewing a DeepSee dashboard right click and then click the Log Out option The system logs you out of DeepSee 2 Click Switch Namespace 3 For Namespace type the name of the namespace you want to work in 4 Click Logon to DeepSee This displays a login page 5 Log in as usu
79. it as appropriate for your base class for example Company Count or Companies See Defining Measures in the book Using the DeepSee Analyzer 4 8 Modifying a Dimension To modify the definition of a dimension 1 Open a Bl enabled class as described in the previous chapter 2 Click the Dim tab 3 Click the dimension in the Dimensions table 4 Make the changes 5 Click Update to save your changes 4 9 Controlling Whether a Dimension Is Selectively Rebuilt The Architect provides an option to rebuild only a subset of the dimensions Within the definition of each dimension you specify whether that dimension is included within the selective rebuild To do so 1 Open a Bl enabled class as described in the previous chapter 2 Click the Dim tab 3 To enable this dimension to be rebuilt selectively click the Select check box for the dimension in the Dimensions table 4 Click Update to save your changes See Rebuilding Selectively earlier in this book 38 Using the DeepSee Architect Activating or Deactivating a Dimension 4 10 Activating or Deactivating a Dimension When you create a dimension it is automatically activated You can deactivate it so that it is no longer available in the Analyzer To activate or deactivate a dimension 1 2 3 4 Open a BI enabled class as described in the previous chapter Click the Dim tab Click the dimension in the Dimensions table To deactivate the dim
80. lds based on properties and source expressions Detail listings associated with different user roles as needed Subject areas associated with different user roles as needed The Architect also provides options for exporting and importing model elements these options are documented in the DeepSee Site Configuration and Maintenance Guide 1 2 Logging In to DeepSee To log in to DeepSee Using the DeepSee Architect 3 Introduction to the DeepSee Architect 1 Click the InterSystems Launcher When you do so the system displays a menu 2 Click DeepSee If you have not yet specified a namespace the system displays a page that prompts you for a namespace Otherwise the system displays the DeepSee login page 3 If you are prompted for a namespace type the name of the namespace you want to work in and then click Logon to DeepSee The system then displays the DeepSee login page 4 On the DeepSee login page enter a DeepSee username and password For example you can use the username demo with the password demo 5 For Role select demo 6 Click Login DeepSee displays the home page which depends upon the user ID you used to log in The home page is either a DeepSee module or a dashboard If the page is a DeepSee module it has a row of buttons at the top as follows Data M odeler Administrator j If the page is a dashboard the context menu provides access to all the same options provided by these buttons in addit
81. lick and select Paste from Clipboard CAUTION Ifthe clipboard does not currently contain lines from a range table like this perhaps from a different dimension or listing field the current contents of your range table are cleared and nothing is pasted 13 6 Defining and Modifying Transformations To define or redefine a transformation 1 At the top of the Architect page click Data Modeler gt Transformation The system then displays a page like the following D Convert to flag Transformation Definition Transformation Name Case Convertion f v External Value oO Null Field Replacement Invalid Pointer Replacement Justification Left v Translations Ranges Bitmap 2 Either Type a new transformation name into Transformation Name e Click a transformation name in the list on the left Using the DeepSee Architect Using Replacements Ranges and Transformations 3 4 Make edits as needed The options are described after these steps Click Add or Update in the lower right Table 13 1 Options in a Named Transformation Option Purpose Transformation Name Name of this transformation as you want to see in the Architect Case Conversion Optionally specifies how to convert the case of any strings Choose Upper Case or Lower Case External Value Click this option if you want DeepSee to use the external value for this field rather than the internal value This option takes effect only if the fiel
82. new type 4 Specify details for this type The details depend upon the base type 5 Click Add For example the standard type Values uses string collation which is often unsuitable for numeric data For example if you create a dimension based on age you would usually prefer to sort the ages in numeric order rather than in string order For such a dimension you would create a custom type based on Values but you would set Collating Sequence equal to Numeric You would use this type as the type for your dimension Listing field definitions described later in this book are similar in many ways to dimension definitions However custom data types are available only for dimensions 4 5 Defining a Dimension Based on a Date Date values are special when you create a dimension that uses a date DeepSee automatically generates a set of dimension variations that group data by weekday week month quarter and so on For example if you define the Birth Date dimension DeepSee creates the following dimensions as seen in the Analyzer w 9 Birth Date Day 4 6 Birth Date laa Ly Birth Date Month Ly Birth Date Period au Birth Date Quarter w 9 Birth Date Week O Birth Date Week of Month Ly Birth Date Weekday ta Ly Birth Date Year DeepSee automatically recognizes dates of type Date and TimeStamp but also accepts several string forms and you can convert from any other format This section describes how to use date v
83. npeversensvacuatgatgetes st eacbedesseusszecsss 73 12 2 Dennis a Detail Listing The Bases lt iiciccscicicsissiicasatecingeneeelnen e a ens 74 12 3 Modifying a Detail Lactate ics ss sccsdesesscteesccs ca caseeccctousasesosssunestnssesnees cerasuteeiveduasis obstectseunsasees s 75 12 4 Modifying th Layout of a Detail isthe ic cise tins eepaetevsciees Gecives crest uacoonsessbastienitibe aS 75 12 5 Addins Summary Lines to a Detail LIStng isons tnniresrsesrsis tei crensieienrarerisdineni teisinei 76 12 6 Specitying Role Access to a Detail Listing sssciciecniisrerii totesin eee i 77 12 7 Adding Link to Another Detail LASNE ic cacc stic ctsecstivietsiieescsceesusoscbeassvshestavacberhaaseycumsanioons 78 12 8 Addine a Link toa URL scicnco erener ereire ten roere Ee ERr EA r EEE i ra RNE S R aiee iei 79 129 Deleting a Detall Listing ceeston ienee seso batt ensonevoansearsGusaebedsesescabestersushSesecssieeteaens 79 1210 Next Sieps recorrer eee e ae e E A EEEE EE E EE EEEE EE ER EEEO OERE s 80 13 Using Replacements Ranges and Transformations sesseseesosoesoeseesesoesesooscocoscesocseesesoesesossesoosse 81 13 1 Overview of Replacements Ranges and Transformations sesrseresressresrisescsrssresesesrenrisese 81 13 2 Predefined Trans Horie tOIAS 5s lt 5 lt iccessseyeesteieh asics Seecatiace stats sba ea aE an ie E a ana easton rRos 82 13 3 Replacing Null Values for a Dimension Measure or Listing Field 00 0 0 eee eeeeeeeeeeeeeee
84. o a Detail Listing A detail listing can include either or both of the following kinds of summary lines A summary line for the current page of the detail listing A summary line for the entire detail listing You define these summary lines separately To add such summary lines 1 2 3 Open a BI enabled class as described in Opening a BI enabled Class earlier in this book Click the Detail List tab Click the Browse button al next to Listing Name click the detail listing and then click OK To add a summary line for the entire detail listing a b c Decide which detail listing fields you want to summarize in this line Double click in the first Option column in the row for one of those detail listing fields In this column click an option that specifies the kind of syntax to use For example System refers to system functions The options are explained after these steps Double click in the Grand column in the same row In this column either select an appropriate option or type the appropriate syntax For example Total displays a numeric total this option is available if you selected System in the previous column The options are explained after these steps Repeat as necessary for all detail listings that you want to summarize in this summary line To add a page summary line follow the preceding steps but use the second Option column and the Page column Click Save In either Option column the v
85. on an age group in a pivot table and immediately see a drill through by age bucket for that age group Or if the user is viewing the pivot table in graph mode the user might right click an age group and select Drill Down DeepSee would then display a graph showing the age buckets for that age group In either case if more than one drill option is available DeepSee displays a list of the available options and the user can choose one This type of drilling is configured separately for each dimension that is the available behavior is potentially different for each dimension To define dimension to dimension drill options 1 Open a Bl enabled class as described in Opening a BI enabled Class earlier in this book 2 Click the Subject tab 3 Click the subject area in the Subject List area 4 Click the Drill Down tab This tab displays all dimensions in the subject area Note Despite the tab name here you are defining drill through not drill down 5 To enable drill options in a given dimension drag and drop other dimensions to that dimension For example drag and drop Age Bucket to Age Group Then you see the dimension that you dragged shown as a node beneath the dimension you dragged it to for example Using the DeepSee Architect 55 Defining Subject Areas i Age Bucket i Age Group _ Ly Age Bucket a Age Year Mmi Allersioc 6 Click Update to save your changes To define other drill
86. on by changing the value in Dimension Name on the General tab This name is shown in the Analyzer and is also used as the default column or row label in any pivot tables that include this dimension The dimension name should make sense on its own notice that it does not indicate the table that owns this property In the example here Name might be ambiguous so you might rename this dimension to Home City Also the dimension name can use only alphanumeric characters SN Manual Child Brovse _Translation Replacement Dimension Name tome City Listing Field Count Per Node Data Type Values v Transformation Type None v Property DeepSee Study Patient HomeCity Name Link Property Link To cs Code Other Options New In the General tab the editable two Property fields contain the following data a The first field which is required shows the package and class name of the BI enabled class from which you started in the form package class For example DeepSee Study Patient b The second field which is optional shows the name of the property or instance method on which this dimension is based relative to this class This is expressed in the form property or property subproperty and so on in exactly the same way you would refer to that property in Cach ObjectScript For example HomeCity Name This field is optional because there are other ways to specify the data on which the dimension is based see
87. options you use the Analyzer See Using the DeepSee Analyzer 9 7 Specifying the Available Dimensions in a Subject Area By default when you create a subject area it includes all dimensions that are defined in the model You can define the subject area so that it includes only a subset of those To do so 1 Open a Bl enabled class as described in Opening a BI enabled Class earlier in this book Click the Subject tab Click the subject area in the Subject List area Clear the Access All Dim check box Click the Dimension Access tab This tab displays all dimensions that are defined for the model Click the check box for each dimension to include in this subject area a OY oe a ee Click Update to save your changes 9 8 Defining Custom Aggregates for Use as Base Measures A subject area can include custom aggregates A custom aggregate uses a Cach ObjectScript expression to retrieve data directly from the globals that store data for your application When you define custom aggregates they are available as additional base measures within the measures editor in the DeepSee Analyzer in addition to Count for example To define a custom aggregate 1 Make sure you understand the structure of the globals that store your data 2 Open a Bl enabled class as described in Opening a BI enabled Class earlier in this book 3 Click the Subject tab 4 Click the subject area in the Subject List area 5 Click the Custom Agg
88. orporation No part of this publication is to be used for any other purpose and this publication is not to be reproduced copied disclosed transmitted stored in a retrieval system or translated into any human or computer language in any form by any means in whole or in part without the express prior written consent of InterSystems Corporation The copying use and disposition of this document and the software programs described herein is prohibited except to the limited extent set forth in the standard software license agreement s of InterSystems Corporation covering such programs and related documentation InterSystems Corporation makes no representations and warranties concerning such software programs other than those set forth in such standard software license agreement s In addition the liability of InterSystems Corporation for any losses or damages relating to or arising out of the use of such software programs is limited in the manner set forth in such standard software license agreement s THE FOREGOING IS A GENERAL SUMMARY OF THE RESTRICTIONS AND LIMITATIONS IMPOSED BY INTERSYSTEMS CORPORATION ON THE USE OF AND LIABILITY ARISING FROM ITS COMPUTER SOFTWARE FOR COMPLETE INFORMATION REFERENCE SHOULD BE MADE TO THE STANDARD SOFTWARE LICENSE AGREEMENT S OF INTERSYSTEMS CORPORATION COPIES OF WHICH WILL BE MADE AVAILABLE UPON REQUEST InterSystems Corporation disclaims responsibility for errors which may appear in this document and it re
89. plementers and system administrators This book describes how to configure and maintain a DeepSee site It also includes a chapter that lists common problems and their solutions Using the DeepSee Architect 1 About This Book e DeepSee User Guide a user manual for your end users This book describes how to work with deployed dashboards and pivot tables For general information see the InterSystems Documentation Guide 2 Using the DeepSee Architect Introduction to the DeepSee Architect This chapter introduces the DeepSee Architect It discusses the following topics Purpose of the Architect How to log in to DeepSee How to access the DeepSee Architect How to switch to another namespace Be sure to consult InterSystems Supported Platforms for information on system requirements Also this book assumes that you are familiar with the concepts described in the book Overview of DeepSee 1 1 Purpose of the DeepSee Architect You use the DeepSee Architect to create DeepSee models which in turn are needed for creating pivot tables and for using the Analyzer for analysis When you are done using the Architect you will have created all the following elements BI enabled classes Dimensions based on properties or source expressions using properties of those classes Measures based on properties and source expressions You can add more measures with the DeepSee Analyzer which is discussed in another book Detail listing fie
90. plex code If you use an SQL shortcut Property shows the property used in that shortcut e DataType controls how the data is displayed The data type is set automatically based on the data type of the field you are using but you can change it See Specifying the Data Type for a Listing Field e Active controls whether this listing field is active visible in the Analyzer and in pivot tables When you create a listing field it is active by default See Deactivating or Activating a Listing Field later in this chapter e Complex indicates whether this dimension is based on a Cach ObjectScript expression See Specifying the Data on Which a Listing Field Is Based later in this chapter 10 2 3 Tabs The tabs in the lower right display details about the currently selected listing field General Translation Replacement Ranges Dimension Name Patient ID Other Options Data Type Text v Transformation Type None Ka Property DeepSee Study Patient PatientID Link Property Complex Code The following table summarizes the options on these tabs Unless otherwise noted the sections listed here are in this chapter Table 10 1 Options on the List Field Library Tabs Option Purpose General tab Other Options link Provides miscellaneous options See Deactivating or Activating a Listing Field and Controlling Whether a Listing Field Is Selectively Rebuilt General tab Data Type option Controls how the da
91. r Do There must not be any empty lines after that To refer to the array property use the syntax this PropertyName as shown For Each Fetch you would use something like the following Set val this Categories GetAt wI 4 7 5 Forcing M C B to Return at Least One Value You can write the Loop Coding and Each Fetch options so that DeepSee returns at least one value For example a patient might not have any allergies In this case you might prefer for the M C B feature to return the string No Allergies If Allergies is a list you could use the following for Loop Coding Set key Set count this Allergies Count Set count Case count 0 1 count For i 1l 1 count DO And use the following for Each Fetch Set allergy Sthis Allergies GetNext key Set val Case allergy No Allergies allergy Allergen Description For alternative approaches see the DeepSee Developer Tutorial 4 7 6 Understanding Dimensions Based on Collections When you use dimensions that are based on collections it is important to remember that as always the items being counted are the items in the base class not the items of the collection For example a company has multiple employees and each employee has a single home town Suppose that your base class is Company and suppose that you use Manual Child Browse to create a dimension called Employee Home Town If you performed a breakout by Employee Home Town you might see a pivot table like the follo
92. r if numeric a measure You cannot however use these fields as listing fields Using the DeepSee Architect 71 12 Defining Detail Listings This chapter describes how to create detail listings It discusses the following topics e An overview of the Detail List tab e The basic process to define a detail listing e How to modify a detail listing e How to modify the layout of a detail listing How to add summary lines to a detail listing e How to specify the roles that have access to a detail listing e How to add a link from one detail listing to another e How to add a link from a detail listing to a URL e How to delete a detail listing e How to make your changes visible in the Analyzer 12 1 Overview of the Detail List Library Tab You use the Detail List tab to define redefine and delete detail listings Listing Information Listing Name E M show Listing Bar Merge Column g From To Grid Layout Role Access Data Browser PopUp Dimension ListingField H jListingFields Library The Listing Name field shows the name of currently selected detail listing To select a detail listing click the Browse button al click the detail listing and then click OK Using the DeepSee Architect 73 Defining Detail Listings The following table summarizes the other options Unless otherwise noted the sections listed here are in this chapter Table 12 1 Options for Detail Listings Option
93. r changes visible in the Analyzer Also see the chapter Defining Dimensions 5 1 Overview of Dynamic Dimensions A dynamic dimension is a special kind of dimension that can be used only in filter expressions At runtime it converts the given filter value to the ID or IDs of the records to use This type of dimension works as follows e The dimension can have any name as long as that name follows the normal naming rules and does not conflict with an existing dimension e The dimension is defined by Cach ObjectScript statements e These statements specify the ID or IDs of the records to use To specify a single record of the base table set the variable val equal to the ID of the record To specify multiple records of the base table set nodes of the multidimensional array variable OLIST e These statements can use the variable PARAM which contains the value specified on the right side of a filter expression that uses this dimension This value can either be hardcoded or can be chosen by the user at runtime Dynamic dimensions cannot be used for rows or columns 5 2 Creating a Dynamic Dimension To define a dynamic dimension Using the DeepSee Architect 41 Defining Dynamic Dimensions 1 Open a Bl enabled class as described in Opening a BI enabled Class earlier in this book 2 Click the Dyn Dim tab The tab lists any dynamic dimensions that are already defined 3 Right click and then click Add Line De
94. ration and Maintenance Guide 3 9 Clearing Unsaved Work To clear any unsaved work in the Architect click the Refresh button The unsaved changes are immediately cleared Using the DeepSee Architect 17 Enabling Classes for Use in DeepSee 3 10 Defining SQL Shortcuts If the property names in your classes are confusing and if you have many properties you might find it convenient to define SQL shortcuts before you start to create dimensions measures and listing fields In DeepSee an SQL shortcut is an alias that provides a new name for a class property or property of a property to make it easier to identify the properties you want to use in DeepSee To define SQL shortcuts 1 At the top of the Architect page click Data Modeler gt SQL Field Shortcuts The system then displays a page like the following SQL Shortcut Definition Class Name Actual Code Click the Browse button ea next to Class Name 3 Click a class name and then click OK The class is displayed in Class Field List 4 Expand the class folder and subfolders in Class Field List as needed As the following example shows not all class definitions contain only simple easy to read property names Sy STKAcctDR sTKAcctOth je STKBarCode i STKBat stKcictupm H C STKCICTUDR H I sTKCIITUDM H E STKCIITUDR 0 STKCode STKDesc C STKItem CI STKPIITUDM I STKPIITUDR C STKReordDet 18 Using the DeepSee A
95. rchitect Removing BlI Adaptor from a Class 5 To create an SQL shortcut for any property double click that property When you do the system adds a row to the Shortcut table For example if you double clicked the property STKZOL within the property STKAcctOth you would see the following S L Shortcut Definition Class Name Stock Main Actual Code STKAcctOth gt STKZOL HL STKAcct 6 Type a string into Name in the same row Typically this string is easier to remember and understand than the field name For example Accounting Office 7 Optionally type a tooltip into Tooltip 8 Click Save When you next view the class in the Architect the shortcuts are shown at the top as follows Ep Stock Main pas fl Accounting Office je O Id STKBarCode i osese O STKBat H STKCICTUDM H STKCICTUDR F a STKCTITLINM If you hover the pointer over a shortcut the Architect displays the tooltip for the shortcut You can use these shortcuts when you define dimensions and listing fields 3 11 Removing BI Adaptor from a Class In some cases you might find that you want to remove BI Adapter from the superclass list of a class Using the DeepSee Architect Enabling Classes for Use in DeepSee Before you do this do the following 1 Open the class in the Architect 2 Delete every dimension measure listing field and listing 20 Using the DeepSee Architect Defining Dimensions
96. rderID or PatientID This enables you to easily identify the source records when viewing detail listings e A detail listing that displays the preceding listing field and all measures Even if you do not intend to provide this to users you will find this tool useful during testing e Other detail listings that contain all the listing fields that you intend to provide to users e A low level dimension so that any member uses a small number of records that you can easily look at For example if the base class is Sample Orders you might base a dimension on OrderlD Even if you do not intend to provide this dimension to the users you will find it useful during testing e The System Management Portal especially its SQL tools e The DeepSee Analyzer Before you test your model be sure that the DeepSee indices are current 14 2 Validating a Dimension For a dimension it is useful to consider the following questions e Do the members access the expected records and no others e Does the dimension handle nulls in the way that you want it to The following procedure is a good starting point Using the DeepSee Architect 89 Validating Your DeepSee Data Model 1 In the Analyzer place the dimension on the row axis and display a grand total Use the default measure Count The following example shows the home city of the patients as a dimension using patients as the base class Cypress 1 123 Elm Heights 1 117 Grand To
97. regates tab 6 Right click and then click Add Line A new empty line is added to the table on this tab Click within this line and type 56 Using the DeepSee Architect Activating or Deactivating a Subject Area 7 For Aggregate Name specify a user friendly name for example FreightFromGlobal Any user who is going to define measures in the Analyzer should be able to understand what this custom aggregate is Note Do not use spaces in the name If you do the custom aggregate cannot be used 8 For Aggregate Access Code specify a Cach ObjectScript expression that retrieves data from the appropriate global In this expression use d to refer to the object ID For example SLG Sample OrdersD Id 4 9 Click Update to save your changes The new custom aggregate is shown in the measures editor in the DeepSee Analyzer as follows A Metrics Editor Webpage Dialog ee u A Count i _ Freight Lj FreightFromGlobal 9 9 Activating or Deactivating a Subject Area When you create a subject area it is automatically activated You can deactivate it so that it is no longer available in the Analyzer To activate or deactivate a subject area 1 Open a Bl enabled class as described in Opening a BI enabled Class earlier in this book 2 Click the Subject tab 3 Click the subject area in the Subject List area 4 To deactivate the subject area clear the Active check box Or to activate the subjec
98. rowse option to generate a set of values typically from a collection property See Defining a Dimension Based on a Collection later in this chapter When you do this DeepSee generates an expression that returns multiple values the dimension is based on these values This option takes precedence over the preceding two options If you use Complex Code or Manual Child Browse option DeepSee ignores the setting of Null Field Replacement on the Translation Replacement tab Each unique value case sensitive of the property or expression corresponds to a separate member of this dimension 4 3 1 Basing a Dimension on a Cach ObjectScript Expression To redefine a dimension so that it is based on a Cach ObjectScript expression 1 In the Complex Code field type a Cach ObjectScript expression that returns a different value for each dimension member The expression can use the variable this which refers an instance of the BI enabled class you started from Or click Script which displays an editor where you can build an expression from existing dimensions data fields and Cach ObjectScript functions You can use any Cach ObjectScript expression which means that you can also invoke methods or routines in this namespace 2 Delete the contents of the second Property field This step is optional because this field is ignored if there is data in Complex Code Consider the following example General Manual Child Brovse Tran
99. s and Transformations Replacements ranges and transformations allow you to modify the data shown in the Analyzer and in pivot tables for dimensions and for listing fields A replacement substitutes one string for another If you use a replacement within a dimension you are effectively renaming a dimension member If you use a replacement within a listing field you are replacing any occurrences of the old string in any detail listing that uses this field The comparison is case sensitive and it considers the entire string there is no partial matching option With one exception replacements do not affect measures that is DeepSee ignores them if the dimension data type is Number A special case of replacement is the Null field replacement option which replaces null values with the string or number you specify You can use this option with all dimension data types including Number which is the type used by measures Ranges examine numeric source data and place it into named buckets For a dimension when you define ranges you are effectively defining the members of that dimension Each member of the dimension corresponds to a range of values For Using the DeepSee Architect 81 Using Replacements Ranges and Transformations a listing field when you define ranges then in each row of a detail listing the name of the appropriate range is displayed instead of the listing field data Transformations are reusable definitions tha
100. s a dimension There is no property that connects these classes that is you cannot access properties of DeepSee Study PatientDetails from DeepSee Study Patient via cascading dot syntax Instead in both classes the property PatientID which is not the primary key identifies the patient You could write a method that uses dynamic SQL like the following Using the DeepSee Architect 67 Using Other Tables to Define Dimensions Measures and Listing Fields ClassMethod GetFavoriteColor patientID As String As String Set ReturnValue No Data Available Set myquery SELECT FavoriteColor AS ReturnValue Set myquery myquery_ FROM DeepSee_Study PatientDetails Set myquery myquery_ WHERE PatientDetails PatientID Set rset class SResultSet New SDynamicQuery SQL Set status rset Prepare myquery If SS S ISERR status Do SSystem Status DisplayError status Write Prepare error Set status rset Execute patientID If S ISERR status Do SSystem Status DisplayError status Write Execute error While rset Next Set ReturnValue rset Data ReturnValue Quit ReturnValue Then you could define a dimension as follows e Dimension Name Favorite Color e Property first field DeepSee Study Patient e Property second field empty e Complex Code class DeepSee Study Utils ForModel GetFavoriteColor this PatientID The method is executed when the indices are generated Tip To make this method run
101. scribes how to define compound members in the Architect It discusses the following topics e Overview of compound members e How to create compound members based on filter expressions e How to make your changes visible in the Analyzer Also see the chapter Defining Dimensions You can also create compound members in the Analyzer see the book Using the DeepSee Analyzer 6 1 Overview of Compound Members A compound member is defined by a DeepSee filter expression When you create a compound member you assign it to a dimension which can be an existing dimension or a new one You use compound members in two different cases e Ifyou want to group data at a higher level than is directly supported by the object model In such a case you can define a dimension whose members are groups of lower level data For example you can define the continent dimension The North American member would be defined by a filter that selected the North American countries For example Country IN Canada Mexico USA e Ifyou want to define a dimension whose members are determined by complex logic For example one member might be defined as follows Item Group ABC AND Item Status IN Planned Executed In either case you define each member separately A compound member can be indexed and thus available for use as columns or rows but does not have to be 6 2 Creating a Compound Member You use the Compound Mem tab to define compound members
102. seeeeseretereseseessesess 19 4 Defining Dimensions scssscssccssssssessssssescsccsscsscesscecsesccsccsssssesssesscssscssecsscesocsneesecssecssssnssesssoess 21 AA Overview tor the iii Dati coect duces EER EEE E E EEEE ETRE aS 21 4 11 Class Hietate IY cicceispien i eener iere rerien ee r E E E EEEE EE ER EE EEr 21 tS UD Dimensions DN ats cas AE AEAN 22 PA WSS ee caucus su oe evn tect ca E pes fev E devs neeveuculepteseades catateevatnevansectes terrenteeteeerites 24 42 SMS a IDIOM SLO cicero eenei aee iae ee EEEE EEEE E E EEEE a 25 ASD A Usm hie New Buton scianta a a Ea os ogei 26 4 2 2 Using ChkField DateField and TextField enccninciiininiiniriiiiisruniisisios 27 4 3 Specifying the Data on Which a Dimension Is Based ecccesessceeeeeeeseeeeeceeeseceeeeaeensensees 27 4 3 1 Basing a Dimension on a Cach ObjectScript Expression 00 0 eee eee eeeeseceeeseeteeeeees 28 44 Specifying the Dimension Data Types s cisScasccis assekewslerbactes costesehiaseesbectegseustbs sebuvesusbboieuvactvess 29 44 1 Creating a Custom Data Typo ssccesssscssscdsscscvesseasseavatnsatcbeiaesbeseastenbeudvalnantessenssteeeeseades eevee 30 4 5 Defining a Dimension Based ona Dates siieisierecsersirets i etir anecasncnesucvestsebsssieatiauensenvegevseue 30 4 5 1 Recognized Date Formals ricirca n iari iane ae a a aE aai 30 45 2 Convefing Other Date POrmiats 2 iis csatsesiscisscescseesseieesesesdencesteesesoessensanvssnrveauseoienss 31 4
103. serves the right in its sole discretion and without notice to make substitutions and modifications in the products and practices described in this document For Support questions about any InterSystems products contact InterSystems Worldwide Customer Support Tel 1 617 621 0700 Fax 1 617 374 9391 Email support InterSystems com Table of Contents About This Book E T A E EE 1 1 Introduction to the DeepSee Architect s s ssssssesssssessssccsisesosocscssossressosessosssoososiossssece csosesecsssssessossorses 3 1 1 Purpose of the DeepSes Architect i siice ieiescecciscecscacuesassietevtaat ates aaa aid E E E E Ei 3 NZ Logging Into IDG E PSS se ose cesecccescdaxscacce ceutacs coatecetscceece vs savauadeas seviagessewaus cacnscu Ea eikean aiei aaeei 3 1 3 Accessing the DeepSee Archit scssi onise esnin a ieii 4 1 4 Switching to Another Namespace isicicorocririrogennoingeenieciinienene ninn oo a eieo a Ei oE EEEa 5 2 Core Modeling Principles i siccccsscsssecsissscsssvsssersesavssseoescssussuaseussenssesssusensssousensebsaseseccdecsseaesss eaiuaseossunses 7 2 1 Measures Must Have a One to one Relationship with the Base Table 00 eee eeeeeeeeeeee 7 2 1 1 Measures from Parent Tables ccccccscessecssessececeesececssecsecseesceeseesceneeeaeeseeenecaeeeneesaeeaes 7 2 1 2 Measures from Child Tables cic sccccties ave casecdss articeetees nni a des a eaae 8 2 2 Be Careful With Collection based Dimensions ccsecesecsecese
104. shows that the industry is null for 3294 patients in this table which is fewer than the patients shown for the None member previously 5712 This discrepancy occurs because not all patients have records in the PatientDetails table 92 Using the DeepSee Architect Validating a Measure 14 3 Validating a Measure For a measure particularly a measure based on Complex Code it is useful to consider the following questions e Does the measure return the correct value at the lowest level e Is the measure aggregated as expected to higher levels The following procedure is a good starting point 1 In the Analyzer place the lowest level dimension on the row axis For Metrics use the measure you are testing and the Count measure Find a member that has a fairly low value for Count Display the detail listing for this member For each measure look at a single record and check that the value shown in the detail listing is as expected ah ge he If the lowest level values for a measure are as expected aggregate those values for all the records in this detail listing Use the aggregation type specified in the measure Compare the resulting number to the number shown for this measure in the pivot table 14 4 Validating a Listing Field For a listing field it is useful to consider the following questions e Does the listing field display the correct value Are the appropriate transformations ranges or replacements applied
105. sion Tabs Option General tab Listing Field option General tab Count Per Node option General tab Data Type option General tab Transformation Type option General tab Property options and Complex Code option General tab Link Property and Link To options Manual Child Browse Translation Replacement tab Purpose Reuses this definition as a listing field as well See the chapter Defining Listing Fields Used only if this dimension is also used as a listing field See the section Creating a Dimension type Listing Field later in this book Controls how members are defined as well as their default names The data type is set automatically based on the data type of the field you are using but you can change it Several of the following sections discuss the types Applies a transformation that affects how the dimension members are defined and displayed See the chapter Using Replacements Ranges and Transformations If you apply a transformation do not use the Translation Replacement and Ranges tabs Specifies the data on which this dimension is based See Defining a Dimension Used to access data in an external class See Using the Link Options later in this book Applies only to dimensions based on list type properties This tab specifies how to index the values in the list See Defining a Dimension Based on a Collection Defines a set of replacements that alter the n
106. slation Replacement Ranges Script SQL Dimension Name poctor Listing Field Fi Count Per Node f eel Data Type Values x Transformation Type None Mi Property DeepSee Study Patient Link Property Link To Complex Code SCASE cthis PrimaryCarePhysician LastName No Doctor ethis PrimaryCarePhysician FirstName_ _ this PrimaryCarePhysician LastName This dimension Primary Care Physician groups the source records into buckets based on the following string which is based on two properties SCASE Sthis PrimaryCarePhysician LastName No Doctor Sthis PrimaryCarePhysician FirstName_ _ Sthis PrimaryCarePhysician LastName Each first name last name combination that is present in the data receives a separate bucket Each member of this dimension corresponds to one of these buckets If a patient has no recorded primary care physician the patient is assigned to the No Doctor member Also notice that the Complex check box is checked in the table at the top of the page this happens automatically when you enter data into the Complex Code field When you use Complex Code DeepSee ignores the setting of Null Field Replacement on the Translation Replacement tab This means that if you want to replace null values with a string such as No Assigned Staff you must handle this yourself within Complex Code 28 Using the DeepSee Architect Specifying the Dimension Data Type 4 4 Specifying the Dimension Data Type Th
107. st activities in nearly any order In all cases however you start by enabling Cach class definitions for use with DeepSee This process is known as BI enabling the base class you may need more than one base class This chapter discusses the following topics e What it means to BI enable a class e How to Bl enable a class e How to open a class definition from the Architect e How to open a BI enabled class in the Architect e How the Architect displays the properties and methods of the BI enabled class e How to recompile the class and rebuild the indices e How to selectively rebuild the indices e How to specify the number of processes used when DeepSee rebuilds the indices e How to clear unsaved work in the Architect e How to create SQL shortcuts to manage confusing property names e How to remove BI Adaptor from a class 3 1 Overview A Bl enabled class is a class that inherits from BI Adaptor When you BI enable a class you can create dimensions measures and listing fields that use data in this class or in any related classes You can either directly use properties or you can write Cach ObjectScript expressions that retrieve the data To enable you to access properties directly the DeepSee Architect displays the BI enabled class and most related classes in a convenient treelike display the other classes do not need to be BI enabled For example Using the DeepSee Architect 13 Enabling Classes for Use in DeepSee
108. sting Filter for Pivot Select Dim g demo F F click In Subject Area type the name of this subject area In Detail Listing optionally click the detail listing to use as the default within this subject area On the Role Access tab click the check box next to each role that should have access to this subject area By default no roles are selected Click Add This new subject area has access to all the dimensions associated with the BI enabled class and all the data that is currently in the database If you have already built the DeepSee indices you can immediately use the subject area in the Analyzer 9 3 Modifying a Subject Area To modify the definition of a subject area l 2 3 4 5 Open a BI enabled class as described in Opening a BI enabled Class earlier in this book Click the Subject tab Click the subject area in the Subject List area Make the changes Click Update to save your changes Using the DeepSee Architect 53 Defining Subject Areas 9 4 Filtering a Subject Area By default a subject area provides access to all records in the associated tables You can filter a subject area to restrict the number of records that it can access for security or for performance To filter a subject area 1 Open a Bl enabled class as described in Opening a BI enabled Class earlier in this book 2 Click the Subject tab 3 Click the subject area in the Subject List area 4 In the Filter box typ
109. t area click the Active check box 5 Click Update to save your changes 9 10 Deleting a Subject Area To delete a subject area 1 Open a Bl enabled class as described in Opening a BI enabled Class earlier in this book 2 Click the Subject tab 3 Click the subject area in the Subject List area 4 Click Delete Using the DeepSee Architect 57 Defining Subject Areas 9 11 Next Steps After you define modify or delete a subject area your changes are usually immediately visible in the Analyzer If the subject area is already open in the Analyzer in some cases you may need to reopen it 58 Using the DeepSee Architect 10 Defining Listing Fields This chapter describes how to create listing fields It discusses the following topics e An overview of listing fields e An overview of the List Field Library tab e The basic process to define a listing field e How to modify a listing field e How to specify the data on which a listing field is based particularly if you do not want to base it on a single class property as in the basic technique e How to choose a data type for a listing field e How to control whether a listing field is included in the subset that can be selectively rebuilt e How to activate or deactivate a listing field e How to delete a listing field e How to make your changes visible in the Analyzer Also see the chapter Using Other Tables to Define Dimensions Measures and List
110. t include replacements ranges and other options such as case conversion and field justification You define them separately and apply them to dimensions or listing fields where needed Transformations have a lower priority than replacements and ranges that are included directly within dimension or listing field definitions for example if a dimension includes a set of replacements and has a transformation applied to it the transformation is ignored 13 2 Predefined Transformations For convenience DeepSee provides the following transformations e Convert to Flag Given a set of country names displays an image file instead of that country name e External Value Causes DeepSee to display the external value the display value instead of the internal value for a field that has both a value list and a corresponding display list For example consider the following property definition Property Gender As String DISPLAYLIST Female Male VALUELIST F M If you base a dimension on this property by default the member names are F and M If instead you use the External Value transformation the member names are Female and Male 13 3 Replacing Null Values for a Dimension Measure or Listing Field To replace null values for a dimension measure or a listing field 1 Open a Bl enabled class as described in Opening a BI enabled Class earlier in this book 2 Select the dimension measure or a listing field Either e
111. ta is displayed The data type is set automatically based on the data type of the field you are using but you can change it See Specifying the Data Type for a Listing Field General tab Transformation Type Applies a transformation that affects how the listing field data is defined and option displayed See the chapter Using Replacements Ranges and Transformations If you apply a transformation do not use the Translation Replacement and Ranges tabs General tab Property field and Specifies the data on which this listing field is based See Specifying the Complex Code field Data on Which a Listing Field Is Based Translation Replacement tab Defines a set of replacements that alter the listing field data See the chapter Using Replacements Ranges and Transformations Ranges tab Defines a set of ranges to display instead of the listing field data applies only to numeric valued listing fields See the chapter Using Replacements Ranges and Transformations Using the DeepSee Architect 61 Defining Listing Fields 10 3 Defining a Listing Field The Basics Listing fields and dimensions are defined in similar ways the difference is that a dimension definition includes more information than the listing field definition Sometimes you want to define both a dimension and a listing field using the same basic definition the Architect provides a couple of ways to do this As a result there are two k
112. tal 10 000 DeepSee computes the grand total by adding the Count for each member 2 Compare the grand total to the record count for this subject area You can see the record count in the Filter area on the left If these numbers are not the same make sure that you understand why they do not match There are two reasons why these numbers can be different e Insome of the source records the data used this dimension might contain null values If you do not convert those null values to a string this dimension essentially ignores those records This outcome may or may not be desirable depending on your business needs For example consider the following dimension which is based on the doctor group assigned to the primary care physician that is recorded for each patient 2 144 2 064 2 128 Grand Total 6 636 By comparing the total shown here to the record count we can tell that the dimension probably does not handle nulls correctly e Ifthe dimension is based on a collection any given source record can be included in multiple dimensions The following example shows a dimension based on patient allergies using patients as the base class 90 Using the DeepSee Architect Validating a Dimension Allergies e E 3 872 449 406 435 454 441 407 432 395 421 1 487 435 414 437 423 465 453 11 826 Because a patient can have multiple allergies the total here 11826 is different from the number of patients 1000
113. the birth date is in Q1 for any year e The Birth Date Week dimension has one member for each week number of the year Any given member uses data for the corresponding week For example the member 7 uses data for all records where the birth date is in the seventh week of the year for any year Using the DeepSee Architect 31 Defining Dimensions e The Birth Date Week of Month dimension has one member for week number of the month Any given member uses data for the corresponding week of the month For example the member 3 uses data for all records where the birth date is in the third week of the month for any month and year e The Birth Date Weekday dimension has one member for each day of the week Sunday through Saturday Any given member uses data for the corresponding weekday ignoring the year and month used in the data For example the member Wednesday uses data for all records where the birth date is on a Wednesday for any month and year e The Birth Date Year dimension has one member for each year 4 6 Defining a Dimension Based on a Time You can define dimensions based on time data Typically you would do this to look at periodicity over the course of the day and you would group data by hour or perhaps into larger buckets This section describes three possible techniques e Creating hourly buckets e Creating buckets by parsing the time as a string e Creating custom ranges 4 6 1 Creating Hourly Buckets If you use
114. the syntax this propertyname to refer to a property in the current subject area Use this syntax on the right side of the filter expression For example suppose that we want to link from detail listing 1 in the subject Orders to detail listing 2 in the subject area Order Details Also suppose that The Order Details subject area has an Order ID dimension The Orders subject area has an Order ID property We would use the following filter expression Order ID this OrderID The user right clicks in detail listing 1 perhaps on order 10366 and selects Order Details Then DeepSee evaluates Sthis OrderID Next when it retrieves records from the Order Details subject area to display in detail listing 2 DeepSee applies the filter expression Order ID 10366 6 Right click in the empty area and select Save Data Browser 7 Click Save On the Data Browser tab you can also do the following Move a line up or down to control the order of the options in the detail listing To do so right click a line and then click Move Up or Move Down 78 Using the DeepSee Architect Adding a Link to a URL e Remove a line from the table To do so right click it and then click Delete Line The line is immediately removed e Remove all lines from the table To do so right click in the empty area and then click Clear DeepSee prompts you for confirmation Note that your changes on this tab are not saved unless you right
115. the system displays another field in which you can type the number of decimal places to display the default is 1 10 7 Controlling Whether a Listing Field Is Selectively Rebuilt The Architect provides an option to rebuild only a subset of the listing fields Within the definition of each listing field you specify whether that listing field is included within the selective rebuild To modify this for an independent listing field 1 Open a Bl enabled class as described in Opening a BI enabled Class earlier in this book Click the List Field Library tab Click the listing field 2 3 4 On the General tab click the Other Options link which displays a dialog box 5 To enable this listing field to be rebuilt selectively click Selective Rebuild and click OK 6 Click Update to save your changes For a dimension type listing field the listing field is rebuilt selectively if the dimension is rebuilt selectively See the chapter Defining Dimensions See Rebuilding Selectively earlier in this book 10 8 Activating or Deactivating a Listing Field When you create a listing field it is automatically activated You can deactivate it so that it is no longer available in the Analyzer To activate or deactivate an independent listing field 1 Open a Bl enabled class as described in Opening a BI enabled Class earlier in this book 2 Click the List Field Library tab 3 Click the listing field 4 On the Gen
116. this subject area is active visible in the Analyzer When you create a subject area it is active by default See Deactivating or Activating a Subject Area Role Access tab Lists the roles that have access to this subject area See Specifying Role Access to a Detail Listing Drill Down tab Optionally defines the dimension to dimension double click drill options available in this subject area See Defining Dimension to dimension Drill Options Dimension Access tab Optionally specifies the subset of dimensions included in this subject area See Specifying the Available Dimensions in a Subject Area Custom Aggregates tab Optionally specifies custom aggregates for use in defining measures See Defining Custom Aggregates for Use in Base Measures 52 Using the DeepSee Architect Defining a Subject Area The Basics 9 2 Defining a Subject Area The Basics This section describes the basic method for defining a subject area 1 Open a BI enabled class as described in Opening a BI enabled Class earlier in this book 2 Click the Subject tab 3 gt Click New in the lower right to ensure that the screen is clear Subject Details Subject Name Detail Listin No Default Basic Details Access All Dim V Active Role Access Drill Down Dimension Access Custom Aggregates Access Role Default Detail Listing Filter for Detail Li
117. ting 89 DISPLAYLIST using values of 82 drill options defining 55 dynamic dimensions creating 41 example 42 making visible in the Analyzer 43 overview 41 dynamic SQL using in DeepSee 67 E embedded SQL using in DeepSee 67 External Value transformation 82 F filter expressions and compound members 45 and dynamic dimensions 41 and subject areas 54 using runtime data 54 H hourly buckets 32 33 l image files 86 L Link Property and Link To 68 list as dimension 34 listing fields activating or deactivating 65 applying transformations 87 Using the DeepSee Architect 97 defining 62 defining ranges 84 deleting 66 making visible in the Analyzer 66 modifying 63 overview 59 rebuilding selectively 65 replacing null values 82 replacing values 83 specifying source data 64 validating 93 logging in 3 M C B feature forcing at least one value 37 with a list property 35 with an array property 36 Manual Child Browse feature forcing at least one value 37 with a list property 35 with an array property 36 measures defining 49 defining custom aggregates 56 making visible in the Analyzer 50 overview 49 replacing null values 82 validating 93 N namespace switching 5 null values replacing 82 replacing when using M C B 37 P processors specifying number for use when rebuilding 17 R Range Dimension Suffix feature 32 ranges defining 84 for time
118. tive e Yes groups records for which the dimension data equals 1 y YES T or TRUE not case sensitive Treats the property as a space separated collection of words and creates a dimension for each word DeepSee considers case for example it treats AllergyCodel and allergycode 1 as different words See Defining a Dimension Based on a Collection later in this chapter See the section Defining a Dimension Based on a Date later in this chapter Use this only if you also specify a Range Dimension Suffix Note that you can also use Values to create dimensions based on time See the section Defining a Dimension Based on a Time later in this chapter In this table the phrase dimension data refers to the data on which the dimension is based whether that is a single field or an expression The drop down list also includes any custom types that have been defined Using the DeepSee Architect 29 Defining Dimensions 4 4 1 Creating a Custom Data Type If the standard types do not meet your needs you can create and use custom data types as follows 1 At the top of the Architect page click Data Modeler gt Abstract Data Type The Date Type Name list shows any custom types that have been defined The right area shows the details for the currently selected type if any 2 Type a name into Type Name 3 Click the Base Type drop down list and then choose a type upon which to base the
119. to create class methods or routines to perform the conversion For example suppose that your BI enabled class represents patients and that it has a property called Diagnoses which is an array To create a dimension based on diagnoses you could do the following 1 Click the Dim tab 2 Click New in the lower right area DeepSee automatically sets Property to the name of the BI enabled class and you should not change this 3 For Dimension Name type the dimension name 4 For Data Type click Words 5 For Complex Code type an expression that returns a space separated list For example class Dev Utils ArrayToString this DiagnosesAsArray This class method iterates through the array extracts the values and returns a string consisting of a space separated list of the values 6 Click Add in the lower right area The class method used here is defined as follows ClassMethod ArrayToString input delimiter As String If Data delimiter set delimiter set string Set i for Set i input Next i Quit i If i l Set string input GetAt i Else Set string string_delimiter_input GetAt i If string Set string None Quit string This technique is not suitable if the resulting string is longer than 32 kB unless long strings are enabled Also remember that non alphabetic characters are stripped from the string and are not used in the member names 4 7 3 Using the M C B Feature with a List type
120. to include the title bar within this detail listing 5 In Available Fields expand the two folders so that you can see all the available listing fields The Dimension ListingField folder lists the listing fields that are based directly on dimension definitions The ListingFields Library folder lists the listing fields that you created manually on the List Field Library tab Tip If you do not see all the listing fields you expect to see click the Refresh button sp in the menu bar 6 Double click each listing field that you want to include Note The listing field is then copied to the detail list This means that if you later redefine the listing field the changes are not reflected in this detail list 74 Using the DeepSee Architect Modifying a Detail Listing After you add a listing field optionally click it in the table and edit the Caption field which is the column header for this listing field Click the Role Access tab Click the check box next to each role that should have access to this detail listing By default no roles are selected Grid Layout Role Access Data Browser PopUp 10 Click Add Note DeepSee does not provide a way to specify the sort order of the detail listing 12 3 Modifying a Detail Listing To modify the definition of a detail listing l 2 3 Open a BI enabled class as described in Opening a BI enabled Class earlier in this book Click the Detail List tab Cli
121. urce Dimension DeepSee then displays a drop down list of the dimensions not including any dynamic dimensions 5 Click a dimension in the column for Source Dimension 6 Double click in the row within the column for Relationship DeepSee then displays a drop down list of the available types of relationships Parent of One to One and Many to Many 7 Click a relationship type 8 Double click in the row within the column for Target Dimension DeepSee then displays a drop down list of the dimensions not including any dynamic dimensions 9 Click a dimension in the column for Target Dimension 10 Click Save For example the following relationship states that the Home ZIP dimension is the parent of the Home City dimension Using the DeepSee Architect 47 Defining Relationships between Dimensions Relationship Target Dimension Home ZIP Parent of Home City 7 2 Next Steps After you define modify or delete a relationship do the following to make your changes visible in the Analyzer 1 Recompile and rebuild as described in Recompiling and Rebuilding earlier in this book 2 Define a subject area as described later in this book When you define the subject area make sure to give access to all suitable roles 3 Ifthe subject area is already open in the Analyzer you may need to reopen it 48 Using the DeepSee Architect Defining Measures This chapter describes how to define measures in the Architect
122. wing Employee Home Town Count Beverly 4 Cambridge 59 Dedham 16 Because Company is the base class this pivot table is counting companies The row for Beverly indicates that 4 companies have at least one employee whose home town is Beverly It does not indicate the number of employees who live in Beverly It is also important to remember that as always the items being correlated are the items in the base class not the items of the collection Let us expand the previous example by adding the Employee Gender dimension If we add this dimension to the preceding pivot table we might see this Using the DeepSee Architect 37 Defining Dimensions Female Male Employee Home Town Count Count Beverly 2 4 Cambridge 34 30 Dedham 8 7 Let us examine the cells in the Beverly row Notice that the count for Female and the count for Male combine to more than the count for Beverly in the preceding example The Beverly Female 2 cell means that there are two companies that have at least one employee living in Beverly and at least one female employee There is no guarantee that these employees are the same people If Teradyne Corp has 1296 male employees who live in Beverly and one female employee who lives on Martha s Vineyard that company is counted once for the Beverly Female cell Tip As you can see the default measure name Count can be misleadingly generic When you use this measure in a pivot table it is good practice to rename
123. y DeepSee ignores additional queries 3 Inthe Architect use those fields as dimensions or measures Note You cannot use the fields as listing fields 70 Using the DeepSee Architect Using a Class Query This technique is also useful if you cannot modify the base class if you have an existing complex query that you want to use or if you want to combine multiple classes via an SQL UNION For example suppose that DeepSee Study Patient contains unique patient records and that DeepSee Study PatientSet2 contains an additional set of unique patient records perhaps that come from a different source To perform analysis on the combined set of patients you could create an additional class like the following Class DeepSee Study PatientClassQuery Extends sRegisteredObject BI Adaptor Query Patients As SQLQuery CONTAINID 1 SELECT PatientID Age Gender TestScore FROM DeepSee_Study Patient UNION ALL SELECT PatientID Age Gender TestScore FROM DeepSee_Study PatientSet2 DeepSee executes the class query when it builds the indices In this example the Patient ID field is the ID field which we indicate in the query by including CONTAINID 1 When you open this class in the Architect you see the following ie Al DeepSee Study ClassQuery PatientID O Age Ly Gender Ly TestScore TextField DateField Lane ChkField Each field in the query is available for use as a dimension o

Download Pdf Manuals

image

Related Search

Related Contents

Meco MONARO 7652K1 User's Manual  Philips CID3280  MANUAL DE USUARIO  Untitled - AB TECNO Srl  Eminent EM1036UK      

Copyright © All rights reserved.
Failed to retrieve file