Last modified on 10 May 2019, at 13:19

Smart Studio

Revision as of 13:19, 10 May 2019 by NWE (Talk | contribs) (Object Finder)

With UBIK® Smart Studio, project engineering is made easier: Smart Modelling means to build meta models, do programmatic customizing and ACM configurations without having to work all the repetetive details. UBIK® Smart Modelling automates as much as it can in order to give the engineer leeway to actually do the project.

On the Augmensys [release portal], a test candidate for the beta version of UBIK® Smart Studio is available. Here's the history of recent changes: Smart Studio Beta History

UBIK® Smart Studio

IDE

The IDE of UBIK® Smart Studio was greatly inspired by Microsoft Visual Studio and similar development environments. This means that well-known and proven concepts, such as free docking of Tools, Documents and Controls is supported by Smart Studio and it's following the same usability principles.

Options

UBIK® Smart Studio features a centralized Options center where all installed modules inject their configuration settings. By default, this can be reached through Tools → Options, or, if the respective module supports it, from the context-menu of the module.

Tools

UBIK® Smart Studio provides the following tools:

Pickers

Pickers are meant to provide certain objects for usage in other controls, so they mainly server as a Drag&Drop source during the engineering process.

Picker Types to pick Target controls
Class Picker MetaClasses Inheritance Graph, Application Graph, Inspector
Property Picker MetaProperties Inheritance Graph, Application Graph, Inspector
Classification Picker Classifications Inheritance Graph, Application Graph
ACM Picker Applications and Contexts Application Graph, Environment View
Selective Lists Selective Lists Inheritance Graph, Inspector
Query Picker Queries Inheritance Graph, Application Graph, Inspector
Unit Picker Unit Items Inheritance Graph, Inspector
Workflow Picker Workflows Snippet Editor
RelationPicker Relations Inspector

Object Finder

The Object Finder is a tool for finding and using MetaClasses and Instances in your worksheets.

Error List

The Error List module shows notifications in the following categories

Category Meaning
Error Errors that occurred in the UBIK® core or in the IDE of Smart Studio; should be reported to Support in any case!
Warning Warnings that occurred in the UBIK® core or in the IDE of Smart Studio; typically not critical for the operation of UBIK®
Message Informational messages
Database Messages from the UBIK® data layer
Service Messages from the UBIK® Web Services
Workflow Messages from the UBIK® Workflow Engine
Custom Messages generated by customizing code

Output

The Output tool shows debug and error messages in plain text format.

Immediate Window

The Immediate Window allows for scripting of C# code on the fly, without compilation; evaluation of the script happens as soon as the KeyPress key is pressed, but statements are also cumulative. This means that if e.g. the line var a = SUIS.SelectedObject is executed, the variable a is preserved for all subsequent statements and can therefore be used in the next lines; so the following statement a.Name will deliver a correct value.



Usage

Basic handling idea

In the middle of the screen, there is a worksheet that can be used to draw the project structure on. Add new or existing models by dragging them from the pickers on the left of the screen to the worksheet area in the middle. Connect the models using lines in order to define the models' dependencies on each other. When a model is selected, it can be edited using inspector tools on the right of the screen.

The first step when using UBIK® Smart Studio always is to open a project (or create a new one). Then you can open an existing worksheet or create a new one and start modelling. Later, you can save your models to the project. Independent on the project, you can punctually save the current state of a worksheet (its "Situation") to the UBIK® environment (database), if it is connected.

Organizing your work

In order to organize your work and to separate modelling from working directly on the (productive) system, there are Smart Projects. They serve as a container for your work and as an independent entity with the possibility to punctually interact with UBIK® Environments (databases). This allows the user to transport (and re-use) smart models between different UBIK® Environments.

Inheritance Graph and Application Graph

There are two kinds of worksheets with different responsibilities: The Inheritance Graph allows the user to create meta models. It's called "Inheritance Graph" because the MetaClasses' inheritance structure is displayed graphically. The Application Graph can be used to define what the user can see on the mobile device. It's called "Application Graph" because the browsing hierarchy for the mobile application is displayed graphically. One can define specific mobile versions of MetaClasses (namely Scopes) as well as their properties and children with it.

Bulk Editor

In order to modify potentially larger amounts of content instances conveniently, the Bulk Editor can be used. It shows all instances of a MetaClass in a table, filterable by derivates. The table rows are the instances, whereas the columns describe the meta properties. A single cell corresponds to the property value of a specific instance for a MetaProperty. As every other worksheet, the bulk editor can be used with data from a UBIK® Environment. The results can be saved into the active project and/or back into the UBIK® Environment.

Relation Instance Graph

Relational connections between content instances can be modelled using the Relation Instance Graph. Drop an instance on it in order to see relations to other instances. New relations can be created; existing relations can be edited.

Meta Proxy Graph

MetaProxies, their properties and their inheritance can be modeled and edited in the Meta Proxy Graph. A picker displaying all MetaProxies in the project and the UBIK® Environment is available for choosing elements to display in the Meta Proxy Graph worksheet.

Project Model Import Worksheet

Sometimes it can be handy for a project engineer to let the customer fill in an Excel sheet listing all the MetaClasses and MetaProperties. The engineer then can extend the Excel configuration with details, including MetaProxies and ACM scope configurations. This Excel map can be imported by SmartStudio, using the Excel/OleDB Project Model Import Worksheet. The result of this import can be saved into the active project or the UBIK® Environment, and inspected in various other worksheets if desired. An important feature of this import worksheet is the configuration of column mappings (assignment of column names or indexes to something meaningful in UBIK, like the name of a MetaClass) and the automatic detection of erroneous column assignments.

Here's an example for an Excel map that can be imported: SmartStudio Excel Project Import Test Map.zip



Smart Projects

Smart Projects are containers for Smart Modelling data. A Smart Project contains worksheets and Smart Models and is stored in a file with the extension "*.smp". Projects are independent from UBIK® Environments, per se. That allows the user to transport and re-use smart models in different UBIK® Environments. Also, a project can be designed "offline" without working on an actual productive system. Only one project can be opened at a time. A project must be opened in order to create worksheets.

UBIK® Smart Studio Projects

Start page

After opening UBIK® Smart Studio, the Start page is available. It shows recently used project and UBIK Environment connections (database connections). It can also be used to open or create Smart Projects.

Project page

Once a project is opened, there is a project page listing all the work sheets (e.g., Inheritance Graphs or Application Graphs) as well as all the models in the project. You can save a currently selected project using Ctrl + S or the save symbol in the tool bar. However, make sure all the worksheets are saved to the project so you don't lose any data. This two-stage saving might seem unpractical at first, but there will be the situation where you don't want to save a worksheet to the project, so the ability to choose which worksheet to save is necessary. You can also remove worksheets and even single models from the project on the project page, by the way.

Worksheets

Worksheets like the Inheritance Graph or the Application Graph can be used to edit a part of the project. E.g., there could be two Inheritance Graph worksheets, each containing only a subset of the whole project. For example, you could model Pump meta classes on one worksheet and model Valve meta classes on another worksheet. Of course, you can also have a worksheet showing all the models at once, if you prefer it that way.

So, a project can have multiple worksheets with overlapping content (i.e., models that exist in multiple worksheets). Changing a worksheet can affect other worksheets after saving the change in order to keep consistency (this happens automatically). You can save a (selected) worksheet to the project using the confirm button (the icon is a hook/check symbol) in the tool bar. After saving the worksheet, the project will be marked as changed and can be saved using Ctrl + S or the save symbol in the tool bar, when the project page is selected.

Some operations can take a while, for example when a lot of data is loaded into a worksheet. Such tasks can be canceled using the stop symbol in the toolbar or Esc.

Merging worksheets with the UBIK® environment

Worksheets can originate from an import, from the project or from the environment. Wherever it might have came from, you can save the worksheet content to either the project or the environment. However, in some cases the worksheet content needs to be combined with what you already have. Currently, it is possible to merge a worksheet with the environment (UBIK® database). The result is a combination between what you have defined in your worksheet and what the environment contains already regarding that situation. In case of a conflict, normally the environment "wins". E.g., if you have a metaclass A deriving from another metaclass B in your worksheet, but the environment specifies C as a parent of A, the result of a merge would be A deriving from C. Using the inspector, you can specify whether a worksheet should override the environment on a merge. In that case, the merge result from the example above would be A deriving from B.

Merging worksheets with the SmartStudio project

New worksheets can be added to the project by saving them. In this case, the worksheet content is propagated to all other worksheets (and to the project), so that your project situation is consistent.



Project models

The project's models can be selected and added to worksheets using Smart Studio's object pickers. You can remove models from the project (and all its worksheets) on the project page, or directly from a single worksheet (using the inspector). In a worksheet, you can choose the source (project or environment) for a model. As a consequence, its details and dependencies will be updated and the model will be marked with the symbol for its source. As soon as you save a worksheet to the project, all affected models will be marked as project models.

UBIK® Environment

Once a UBIK® Environment is connected, the Smart Studio's object pickers provide all the models from the environment. These models can be used in work sheets. Worksheet situations can be saved to the UBIK® Environment that is currently connected. Only one UBIK® Environment can be connected at a time.

Environment Page

There is an Environment page for publishing ACM and programmatic customizing as well; it can be accessed using the Start page or the menu, if a UBIK® Environment is connected.

It provides the following sub-sections for controlling the UBIK® environment; Customizing and Application.

Customizing

The Customizing sub-section allows to check and deploy the programmatic customizing for the active environment (not project-related). It consists of a view for showing the custom code and several commands for checking, compiling and deploying it.

The following commands are available:

  • Assemble custom code from the MetaClasses (using the menu button or F5)
  • Check the custom code for syntax errors (using the menu button or F6)
  • Compile & deploy the customizing locally (using the menu button or F7)
  • Deploy the previously compiled customizing to the server (using the menu button or F8).

All commands depend on the previous commands (in the above order), for safety reasons.

Application

The Application sub-section allows to check and deploy the ACM Meta Definitions for the active environment (not project-related). More precisely, the Meta Definitions for a specific Context can be managed, which means that you have to select an Application's Context before you can do anything.

The sub-section consists of a selection area, where you can specify the Context to be managed - drag & drop an Application object into the selection area in order to show the available Contexts. Also, there is a view showing the assembled Meta Definitions as XML for inspection. There are commands available for assembling and deploying the Meta Definitions.

The following commands are available:

  • Assemble all Meta Definitions for the selected Context (using the menu button or F9)
  • Deploy the previously assembled Meta Definitions to all UBIK® satellites via the web services (using the menu button or F10) - don't forget to restart the web services to make sure the changes are applied correctly!

All commands depend on the previous commands (in the above order), for safety reasons.

Useful tools

If installed, SmartStudio uses this tool to export/import filesystems from and to Azure Blobs

If installed, SmartStudio uses this tool to export/import databases from and to SQL Servers and Azure databases

If installed, SmartStudio uses this tool to spawn local WebServices for a full end-to-end testing experience