Futurama Logo

Welcome to the Futurama Support Site

The Futurama Support Site is the website where you can find Futurama and Futurama Vision documentation. If you have any questions about the support pages or if you want to provide us feedback please send us an e-mail.




Index Updating Futurama - Compatibility behavior
Previous  |  Next

 1      About Futurama
 1.1        Version information
 1.2        Getting Started
 1.2.1          Futurama Website
 1.2.1.1            Behavior of Futurama regarding TimeOuts, Login and Logoff
 1.2.1.2            Replacing an existing Futurama Session
 1.2.2          Futurama Webservice
 1.2.2.1            warmUpDocuments
 1.2.3          Futurama Export
 1.3        Overview - Futurama Modules
 1.3.1          Overview - Futurama Accounts
 1.3.2          Overview - Futurama Server
 1.3.3          Overview - Futurama Monitor
 1.3.4          Overview - Futurama Insight
 1.3.5          Overview - Futurama Console
 1.3.6          Overview - Futurama Webservice
 1.4        Loadbalancing Futurama applications
 1.4.1          Getting the most out of Futurama Web using the Load-Balancer
 1.4.2          Application Request Routing
 1.5        Text management and Multi-language
 2      Installation – Configuration – Testing
 2.1        Installation - Futurama Website Edition
 2.1.1          Installation Futurama HTML
 2.1.2          Installation Futurama Monitor
 2.1.3          Installation Futurama Insight
 2.1.4          Installation Futurama Accounts
 2.1.5          Installation SAML2LoadBalancer
 2.2        Installation - Futurama Export Edition
 2.2.1          Installation Futurama Console
 2.2.2          Installation Futurama Server
 2.3        Installation - Futurama Webservice Edition
 2.3.1          Installation Futurama Webservice
 2.4        Installation Futurama Editor
 2.5        Configuration
 2.5.1          Configuration - Cache
 2.5.2          Configuration - Calculation
 2.5.3          Configuration - Debug
 2.5.4          Configuration - File manager
 2.5.5          Configuration - Fileproviders
 2.5.6          Configuration - Format
 2.5.7          Configuration - History
 2.5.8          Configuration - Identity Provider
 2.5.9          Configuration - Log
 2.5.10           Configuration - Mail
 2.5.11           Configuration - Mapping
 2.5.12           Configuration - Monitor
 2.5.13           Configuration - PlugIns
 2.5.14           Configuration - Rendering
 2.5.15           Configuration - ScenarioRecording
 2.5.16           Configuration - Security
 2.5.17           Configuration - Server
 2.5.18           Configuration - Vision
 2.5.19           Configuration - WebAPI
 2.6        Logging
 2.7        Troubleshooting
 2.8        Security - hardening
 3      Updating and file compatibility
 3.1        Updating Futurama - Compatibility behavior
 3.2        Converting Futurama documents
 3.3        12819 - DataTable file updates
 3.4        12889 - DataTable file updates
 3.5        Conversion web.config to .NET Framework 4
 3.6        Deprecated conversion formulas
 4      Futurama Editor - How to
 4.1        At first glance
 4.2        Developing in the Futurama Editor
 4.2.1          Working with objects
 4.2.2          Evaluating objects
 4.2.3          Finding objects
 4.3        Transferring objects
 4.4        Testing objects
 4.5        Validating objects
 4.6        Troubleshooting objects
 4.7        Advanced/special functionality
 4.8        Checking the layout of objects
 5      Futurama - Formulas
 5.1        Futurama Formulas - Date and time
 5.1.1          Date
 5.1.2          Day
 5.1.3          Days360
 5.1.4          Days360Excel
 5.1.5          DaysInMonth
 5.1.6          DaysInPeriod
 5.1.7          Min
 5.1.8          Max
 5.1.9          Month
 5.1.10           Now
 5.1.11           WeekDay
 5.1.12           Year
 5.2        Futurama Formulas - Math
 5.2.1          Abs
 5.2.2          Add
 5.2.3          Divide
 5.2.4          Floor
 5.2.5          Ln
 5.2.6          Log
 5.2.7          Log10
 5.2.8          Mod
 5.2.9          Multiply
 5.2.10           Pi
 5.2.11           Power
 5.2.12           Rand
 5.2.13           Round
 5.2.14           RoundDown
 5.2.15           RoundUp
 5.2.16           SquareRoot
 5.2.17           Subtract
 5.3        Futurama Formulas - Statistical
 5.3.1          AverageDeviation
 5.3.2          Beta
 5.3.3          Binomial
 5.3.4          Covariance
 5.3.5          Factorial
 5.3.6          Gamma
 5.3.7          GeometricMean
 5.3.8          Lognormal
 5.3.9          Max
 5.3.10           Median
 5.3.11           Min
 5.3.12           Normal
 5.3.13           StandardDeviation
 5.3.14           Uniform
 5.3.15           Variance
 5.4        Futurama Formulas - Text
 5.4.1          CalculateBase64Hashcode
 5.4.2          CalculateXmlHashcode
 5.4.3          Concatenate
 5.4.4          ConcatenateBase64
 5.4.5          ContainsText
 5.4.6          Convert.CSV.2.XML
 5.4.7          ConvertFromBase64
 5.4.8          ConvertToBase64
 5.4.9          ConvertXml
 5.4.10           DecodeURL
 5.4.11           DecryptXml
 5.4.12           EncodeURL
 5.4.13           EncryptXml
 5.4.14           Find
 5.4.15           HashBase64EncodedFile
 5.4.16           HashBase64EncodedFileWithBase64
 5.4.17           HashText
 5.4.18           HashTextWithBase64
 5.4.19           Left
 5.4.20           Len
 5.4.21           Linefeed
 5.4.22           Lower
 5.4.23           Mid
 5.4.24           Proper
 5.4.25           ReadConfigKey
 5.4.26           ReadDirectoryNames
 5.4.27           ReadFile
 5.4.28           ReadFileAsBase64
 5.4.29           ReadFileNames
 5.4.30           ReadFileWithEncoding
 5.4.31           ReadXPathScalar
 5.4.32           ReadXPathVector
 5.4.33           Repeat
 5.4.34           Right
 5.4.35           Substitute
 5.4.36           Trim
 5.4.37           TrimLeft
 5.4.38           TrimRight
 5.4.39           Upper
 5.4.40           ValidatePattern
 5.4.41           XsdMessages
 5.5        Futurama Formulas - Logical
 5.5.1          And
 5.5.2          IsEmpty
 5.5.3          If
 5.5.4          IsEqual
 5.5.5          IsEven
 5.5.6          IsGreater
 5.5.7          IsGreaterEqual
 5.5.8          IsIBANChecksumValid
 5.5.9          IsLess
 5.5.10           IsLessEqual
 5.5.11           IsMemberOfGroup
 5.5.12           IsNotEqual
 5.5.13           IsOdd
 5.5.14           IsValidXml
 5.5.15           Not
 5.5.16           Or
 5.5.17           ValidateNPR
 5.6        Futurama Formulas - Table
 5.6.1          FindNextRow
 5.6.2          FindPreviousRow
 5.6.3          FindRow
 5.6.4          Sort
 5.6.5          VLookUp
 5.7        Futurama Formulas - Document
 5.7.1          CountErrors
 5.7.2          GetPathToDataFiles
 5.7.3          GetPortNumber
 5.7.4          GetRelativePathToDataFiles
 5.7.5          GetSessionID
 5.7.6          IsLicenceAvailable
 5.7.7          ReadError
 5.7.8          ReadIdentityProviderResult
 5.7.9          ReadRequestIP
 5.7.10           ReadRequestParameter
 5.7.11           ReadUserAgent
 5.7.12           ReadVersionNumber
 5.7.13           SessionTimeOut
 5.7.14           URL
 5.7.15           UserName
 5.8        Futurama Formulas - Conversion
 5.8.1          Convert.Excel.to.XML
 5.8.2          ConvertJSONtoXml
 5.8.3          ConvertTextToDate
 5.8.4          ConvertTextToNumber
 5.8.5          ConvertToBoolean
 5.8.6          ConvertToDouble
 5.8.7          ConvertToLong
 5.8.8          ConvertToString
 5.8.9          FormatDate
 5.8.10           FormatNumber
 5.8.11           Value
 5.9        Futurama Formulas - Matrix
 5.9.1          AddMatrices
 5.9.2          AddScalarToMatrix
 5.9.3          Cumulative
 5.9.4          CumulativeProductMatrix
 5.9.5          Distinct
 5.9.6          DivideMatrices
 5.9.7          DivideMatrixScalar
 5.9.8          DivideScalarMatrix
 5.9.9          Exponent
 5.9.10           First
 5.9.11           Floor
 5.9.12           If
 5.9.13           Index
 5.9.14           Inverse
 5.9.15           IsEqual
 5.9.16           IsGreater
 5.9.17           IsGreaterEqual
 5.9.18           IsNotEqual
 5.9.19           IsLess
 5.9.20           IsLessEqual
 5.9.21           Join
 5.9.22           Last
 5.9.23           Length
 5.9.24           MatrixProduct
 5.9.25           Max
 5.9.26           MaxScalarMatrix
 5.9.27           Mean
 5.9.28           Mid
 5.9.29           Min
 5.9.30           MinScalarMatrix
 5.9.31           MultiplyMatrices
 5.9.32           MultiplyMatrixVector
 5.9.33           MultiplyScalarMatrix
 5.9.34           Percentile
 5.9.35           PowerMatrix
 5.9.36           PowerMatrixScalar
 5.9.37           PowerScalarMatrix
 5.9.38           ReadMatrixFromXml
 5.9.39           Repeat
 5.9.40           Replace
 5.9.41           Reshape
 5.9.42           ReverseCumulativeProductMatrix
 5.9.43           ReverseMatrix
 5.9.44           Size
 5.9.45           Split
 5.9.46           SquareRootMatrix
 5.9.47           Step
 5.9.48           SubtractMatrices
 5.9.49           SubtractMatrixScalar
 5.9.50           SubtractScalarMatrix
 5.9.51           Sum
 5.9.52           Transpose
 5.9.53           UnitMatrix
 5.9.54           Vector
 5.10         Creating custom formulas in Futurama
 6      Futurama - Objects
 6.1        Action
 6.2        Aggregation
 6.3        Button
 6.4        ChangeValue
 6.5        CheckBox
 6.6        ClearCache
 6.7        DatabaseField
 6.8        DatabaseView
 6.9        DataTable
 6.10         DateBox
 6.11         DocConverter
 6.12         Document
 6.13         Download
 6.14         DropDownList
 6.15         EmailConverter
 6.16         ExcelConverter
 6.17         FileSaver
 6.18         FileUploader
 6.19         Fixed
 6.20         Formula
 6.21         GraphConverter
 6.22         HTMLInclude
 6.23         InterfacesNode
 6.24         LogMessage
 6.25         Navigator
 6.26         Node
 6.27         RadioButton
 6.28         RadioGroup
 6.29         Range
 6.30         Reference
 6.31         SubDocument
 6.32         TextBox
 6.33         UserTable
 6.34         UserVariable
 6.35         WebLabel
 6.36         WebListBox
 6.37         WebPage
 6.38         WebPanel
 6.39         WebReference
 6.39.1           WebReference - WCF Configuration
 6.40         WebService
 6.41         WebSlider
 6.42         WordConverter
 6.43         XmlBuilder
 6.44         XmlConverter
 6.45         XmlField
 6.46         XmlNode
 7      Futurama - Vision References
 7.1        Data
 7.1.1          ReadData
 7.1.2          WriteMessage
 7.1.3          GetPersonIdentifiers
 7.1.4          CreatePerson
 7.2        DataStore
 7.2.1          DeleteDataItem
 7.2.2          DeleteDataItemHierarchy
 7.2.3          DeleteDataItems
 7.2.4          GetDataItem
 7.2.5          GetDataItemHierarchy
 7.2.6          GetDataItems
 7.2.7          StoreData
 7.3        Accounts
 7.3.1          Activate Account
 7.3.2          Change Account
 7.3.3          Create Account
 7.3.4          GetQuestion
 7.3.5          GetQuestions
 7.3.6          Login
 7.3.7          ReadData
 7.3.8          ReinitializeAccount
 7.4        General
 7.4.1          TestConnection
 8      Futurama Vision
 8.1        Installation Futurama Vision
 8.1.1          Installation Futurama Vision Management Site
 8.1.2          Installation or Upgrade of the Futurama Vision Database
 8.2        Futurama Vision Management Site
 8.2.1          Futurama Vision Management Site - Admin
 8.2.2          Futurama Vision Management Site – Security
 8.2.3          Futurama Vision Management Site – Skinning
 8.2.4          Importing data into Futurama Vision
 8.2.4.1            Importing data by webservice
 8.2.4.2            Importing data from a Zip-file
 8.2.4.3            Importing data with Futurama Vision Batch
 8.2.4.4            Futurama Vision Webservice Security
 8.2.5          Further processing of data into Futurama Vision
 8.3        Futurama Vision File manager
 8.4        Activity overview
 8.5        Storing data in Vision from a Futurama application
 8.6        Futurama Vision – Data
 8.7        Futurama Accounts - Management Site
 8.7.1          Futurama Accounts - Table in Vision Database
 8.8        Futurama Server - Management Site
 8.8.1          Special Futurama Server Jobs
 8.9        Futurama Register - Management Site
 8.9.1          Configuration - Futurama Register
 8.10         Retrieving AppEvents from Futurama Vision
 8.11         Adding CustomPages to Vision
 9      Futurama Intermediate Control Output (FICO)
 9.1        FICO example - Change/Add HTML headers
 9.2        FICO example - Change Graph
 9.3        HTML5 Template
 10       Futurama Web API
 10.1         Postbacks of Futurama webcontrols
 10.2         Retrieving Resources using Web API
 10.3         WebAPI Session management
 11       Tutorials - Overview
 11.1         Tutorials - Examples and Downloads
 11.2         Beginners
 11.2.1           Creating formulas with Futurama
 11.2.1.1             Exercise 1: Pythagorean Theorem (Easy)
 11.2.1.2             Exercise 2: Newspaper stall (Medium)
 11.2.1.3             Exercise 3: Recursive functions (Difficult)
 11.2.1.4             Exercise 4: Leap Year (Difficult)
 11.2.1.5             Exercise 5: The Guessing Game I (Medium)
 11.2.2           Creating a Website Application
 11.2.2.1             Exercise 1: Creating a Website (Easy)
 11.2.3           Styling your website with CSS
 11.2.3.1             Exercise 1: Adding CSS (Easy)
 11.2.4           Adding interactivity to your website
 11.2.4.1             Exercise 1: Summation (Easy)
 11.2.4.2             Exercise 2: The Guessing Game II (Medium)
 11.2.4.3             Exercise 3: Nationality (Medium)
 11.2.4.4             Exercise 4: Nationality - RepeatTarget (Medium)
 11.2.4.5             Exercise 5: Reversed Guessing (Difficult)
 11.2.5           Working with Tables
 11.2.5.1             Exercise 1: Average (Easy)
 11.2.5.2             Exercise 2: Boundary values (Difficult)
 11.2.5.3             Exercise 3: Standard Deviation (Medium)
 11.2.6           Reading and processing XML-data in Futurama
 11.2.6.1             Exercise 1: Shares (Medium)
 11.2.7           Adding Graphs in Futurama
 11.2.7.1             Exercise 1: World Population (Easy)
 11.2.8           Working with Actions in Futurama
 11.2.8.1             Exercise 1: Changing Colors (Easy)
 11.2.8.2             Exercise 2: On and Off (Medium)
 11.2.8.3             Exercise 3: The ChangeValue object (Difficult)
 11.2.8.4             Exercise 4: The Guessing Game III (Medium)
 11.2.8.5             Exercise 5: CheckBox (Medium)
 11.2.9           Multiple Pages and Navigation
 11.2.10            Using XSLT to display data
 11.2.10.1              Exercise 1: Overview Summation (Easy)
 11.2.10.2              Exercise 2: Persons (Medium)
 11.2.10.3              Exercise 3: Leap Year Overview (Difficult)
 11.2.11            Webservices in Futurama
 11.2.11.1              Exercise 1: Example (Easy)
 11.2.12            Creating a Webservice Application
 11.2.12.1              Exercise 1: Add (Easy)
 11.2.12.2              Exercise 2: Webservice Nationality (Medium)
 11.2.13            Creating a Console Application
 11.2.13.1              Exercise 1: Adding extra fields (Easy)
 11.2.14            Generating Documents
 11.2.14.1              Exercise 1: Tax Rate (Medium)
 11.2.14.2              Exercise 2: Tax Rates Table (Difficult)
 11.3         Advanced
 11.3.1           Responsive Design
 11.3.1.1             Exercise 1: Orientation
 11.3.1.2             Exercise 2: Target different screen sizes
 11.4         Older Tutorials (Futurama Version 3.2)
 11.4.1           Futurama Editor Tutorial 1: The first sum
 11.4.2           Futurama Editor Tutorial 2: An annuity
 11.4.3           Futurama Editor Tutorial 3: Working with tables
 11.4.4           Futurama Editor Tutorial 4: Modelling a DB pension plan
 11.4.5           Futurama Editor Tutorial 5: Working with XML
 11.4.6           Futurama Web Tutorial 1: Hello world
 11.4.7           Futurama Web Tutorial 2: Buttons and Actions
 11.4.8           Futurama Web Tutorial 3: Textboxes
 11.4.9           Futurama Web Tutorial 4: DropdownLists
 12       Miscellaneous
 12.1         Responsive website
 12.2         Reducing memory usage for XmlNodes and XmlFields
 12.3         Explaining caching for websites and webservices
 12.4         Certificates - basic information
 12.5         Performance XML operations
 12.6         Creating XSD files and using them in combination with Futurama
 13       Templates
 14       Safe2Save WebAPI Sample
View  |  Print  |  PDF

451 documents found.


Updating Futurama - Compatibility behavior

Developer
Futurama
Futurama-Formulas
Folder-Objects
Updating

 

User: Developer

Prerequisites

- not applicable

Introduction

New Futurama releases are backwards compatible. In some situations changes in the Futurama behavior are made that may break existing applications. In this topic is explained how this is solved within Futurama.

 

Description

In a new Futurama release it is important to ensure backwards compatibility. In some new Futurama releases changes in the Futurama behavior lead to compatibility issues. At this page these issues are treated. A Compatibility mode property is introduced in order to guarantee backwards compatibility. This is explained in the second paragraph below. First for several Futurama releases a list is given with the compatibility issues. This list can be used in order to determine whether a specific compatibility issue is relevant for your application.

When upgrading your current Futurama version to the most recent released version make sure you check the successive releases and compatibility issues.

Compatibility issues and conversion

Mentioned below for the Futurama releases the compatibility issues.

Futurama 18.03

  • For this version a new Compatibilty mode (‘18_02’) is introduced. See paragraph ‘Compatibility mode’ for detailed information.

In this version the Visible property for a User Interface Object (UIObject) is changed from a boolean to a Variable of type boolean.

Existing Actions created in a Futurama version before 18.03 are automatically converted to the new structure as far as possible. There are a number of different situations:

  1. The UIObject for which the Visible property is set by the Action is Public: in this situation the Action is not converted; Documents containing this situation will be set to Compatibility mode Futurama_18_02.
  2. All of the next situations apply:
    - the Action setting the Visible property for the UIObject is in the document structure directly before the UIObject (no other Futurama objects are defined between the Action and the UIObject)
    - the UIObject is not public
    - the variable that sets Visible is of type boolean
    - the Action setting the Visible property for the UIObject does not have a Condition
    - the Action setting the Visible property for the UIObject only has one child (i.e. the Variable that sets the visible property)
    - the UIObject is only set by only one Action

    If all these situation apply and the Action has a Variable without relative references as child, the Visible property of the UIObject is changed into the Visible variable and the action is deleted. If all these situations apply and the Action has a Visible variable that contains relative references, the Action gets a condition false and the Visible property of the UIObject is changed into a reference that points to the Variable. 
  3. When situation 1 and 2 do not apply a different conversion is done. In this situation in the Futurama document a ‘conversion to 18.03’ folder is created with UserVariables for each UIObbject for which the Visible property is set by an Action for which situation 3 applies. Within the Action that sets the Visible property for the UIObject a ChangeValue is created. This ChangeValue has as TargetUserVariable the UserVariable that is created  for the UIobject in the conversion folder. The data that is set in this UserVariable is the Variable that is within the Action. Furthermore the Visible property of the UIObject refers to this UserVariable. 

Futurama 17.12

  • For this version a new Compatibilty mode (‘17_11’) is introduced. See paragraph ‘Compatibility mode’ for detailed information.

Existing XMLConverters created in a Futurama version before 17.12 are automatically converted to the new structure as far as possible. There are a number of different situations:

  1. The XMLConverter is Public: in this situation the XMLConverter is not converted;
  2. All of the next situations apply:
    - the Action setting the data for the XMLConverter is in the document structure directly before the XmlConverter (no other Futurama objects are defined between the Action and the XmlConverter)
    - the XmlConverter is not public
    - the Action setting the data for the XmlConverter does not have a Condition
    - the Action setting the data for the XmlConverter only has one child (i.e. the XmlBuilder that sets the data)
    - the XMLConverter only has one Action that sets the data

    If all these situation apply and the Action has an XmlBuilder as child, the condition of the Action is set to false and the Data property of the XMLConverter refers to the XmlBuilder. If all these situations apply and the Action has a Reference to an XMLBuilder, the Action is deleted and the Data property of the XmlConverter refers to the target of the previous mentioned Reference. 
  3. When situation 1 and 2 do not apply a different conversion is done. In this situation in the Futurama document a ‘conversion 17.12’ folder is created with UserVariables for each XmlConverter for which situarion 3 applies. Within the Action that sets the data for the XmlConverter a ChangeValue is created. This ChangeValue has as TargetUserVariable the UserVariable that is created  for the XmlConverted in the conversion folder. The data that is set in this UserVariable is the XmlData that is within the Action. Furthermore the Data property of the XmlConverter refers to this UserVariable. 

Futurama 17.11

For this version a new Compatibilty mode (‘17_10’) is introduced. See paragraph ‘Compatibility mode’ for detailed information.

Futurama 17.10

  • For this version a new Compatibilty mode (‘17_09’) is introduced. See paragraph ‘Compatibility mode’ for detailed information.

Futurama 17.07

  • For this version a new Compatibilty mode (‘17_06’) is introduced. See paragraph ‘Compatibility mode’ for detailed information.

Futurama 17.05

  • See paragraph ‘Compatibility mode’ for detailed information. For this version a new Compatibilty mode (‘17_04’) is introduced

Futurama 16.11

  • The names of two Futurama Service methods are changed. If you use Futurama Server by doing a POST HTTP request to Futurama Service this change of names can be relevant for your situation. This method name of StartJob is changed in StartJob2, the method name of GetJobs is changes in GetJobs2;
  • In this version a change is made in the default Futurama javascript file FuturamaScripts.js. This change will not be affected in the situation that a browser caches javascript files and this caching has not expired yet. To force browsers to reload this javascript file change the name of the javascript file to FuturamaScripts.js?v=2016_11. See this page how to change the name of the javascript file. Attention: in Futurama 16.12 this situation is solved within Futurama. So for using Futurama version 16.12 + this change is not needed
  • Some security improvements are made in this version.  See the settings ‘allowSettingUserVariablesThroughURL’ and ‘onlyAllowCallsToVisibleButtons’. Check in your application whether you set uservariables through URL or use invisible buttons for postbacks. In these situations the  default value of this settings will lead to the situation that this functionality in your application will not work. So either change the default values of these settings or (recommended) change your application in order to let it work again.
  • Futurama now automatically prevents Cross Site Request Forgery by adding a security token to every postback request that is made. A postback is invalid if the expected validation code differs from the actual validatin token. In this situation in the Futurama log an error ‘Request validation token x was received, but y was expected. Postback is invalid’ is logged. Check in this situation the network traffic to see which successive postbacks occur and hat causes the invalid postback. An example is the situation that in the web.config of your application users are not allowed to access the Scripts folder. That means that at the login page the FuturamaScripts.js and the Jquery.js cannot be read, causing a couple of postbacks at the login page. Before this Futurama version this same situation occurs, but this didn’t lead to a Futurama error because there was no CSRF check. 

Futurama 5.3

  • See paragraph ‘Compatibility mode’ for detailed information. For this version a new Compatibilty mode is introduced.

Futurama 5.2.1.4

  • See paragraph ‘Compatibility mode’ for detailed information. For this version a new Compatibilty mode is introduced.

Futurama 5.2.1.2

  • See paragraph ‘Compatibility mode’ for detailed information. For this version a new Compatibilty mode is introduced.

Futurama 5.1.4

  • See paragraph ‘Compatibility mode’ for detailed information. For this version a new Compatibilty mode is introduced.

Compatibility mode

Futurama uses the property ‘Compatibility mode’ in a document to ensure backwards compatibility.

Sometimes it is needed to change the behavior in a way that potentially breaks existing applications. When this kind of change is required, and you application contains this changed functionality, only then a compatibility mode is added as property of the Document object. The compatibility of the document is set to the old version. In this way, the old behavior is still supported.

It is recommended that you change the document to make sure you use the latest compatibility mode. You will get a validation warning when you use a document that has a different Mode than ‘Futurama_Current’.

The changes per compatibility mode to be aware of when changing to Futurama_Current are listed below.

Compatibility mode Futurama 18_02

  • In Futurama 18_03 the Visible property is changed. Up to this version the Visible property could only be filled in Futurama with an action. The new default usage is to use the Visible property on an UIObject to define the visibility. Existing Actions are converted. UIObjects that are Public can not be automatically converted. For these UIObjects  the compatibility level is set to Futurama_18_02. This will ensure the correct behavior of those UIObjects. For documents with Compatibility mode Futurama_18_02 the use of an Action to set the Visible  property is still allowed if the target of the Action is Public. For compatibility mode > Futurama_18_02 you can not set the Visible property of an UIObject with an Action.

Compatibility mode Futurama 17_11

  • In Futurama 17_12 the XmlConverter is changed. Up to this version the XmlConverter could only be filled in Futurama with an action. The new default usage is to use the Data property on the XmlConverter to define the XML to use. Existing Actions are converted. XmlConverters that are Public can not be automatically converted. For these XmlConverters the compatibility level is set to Futurama_17_11. This will ensure the correct behaviour of those XmlConverters. We recommend you to change the behaviour of those XmlConverters manually.

Compability mode Futurama 17_10

  • The XmlBuilder has a Condition property. In some situations the value of this property was ignored. If your upgrade results in a 17_10 compatibility mode, this means you have one or more XmlBuilders with a non-empty condition that was previously ignored. These are conditions on XmlBuilders that are not child of other XmlBuilders. Check the conditions on these specific XmlBuilders. When upgrading to Futurama 17.11 and setting compatibilityMode to Futurama_current, the condition on all XmlBuilders will be respected.

Compatibility mode Futurama 17_09

  • Improved error handling of invalid culture on Windows 10: Futurama allows to configure the regional settings in the format section of the configuraton file. Behavior has changed on windows 10 when an invalid culture is configured. This fix provides improved messages, as well as changed behavior for the formulas FormatDouble and FormatDate when an invalid culture is configured. In case a valid culture is defined the changed behavior doesn't affect your application. Below the old and the new behavior:

    • Old behavior when invalid culture is configured: the result of FormatDouble and FormatDate is null on windows 7,8, but a valid formatted string on windows 10

    • New behavior when invalid culture is configured: the result of FormatDouble and FormatDate is null regardless the OS

    • Up to Futurama 2017.10 it was not possible to use the Round Formula with a negative number of digits. This was resulting in errors and a Null value. From 2017.10 the negative significance is supported. See the support page for examples how to use this Formula. Note that:
      • the implementation of Round with positive significance is unchanged
      • RoundDown and RoundUp already had support for negative significance

    Compatibility mode Futurama 17_06

    In Futurama 17.07 the behavior of the HashText formula (formerly known as Encrypt) is changed. In this formula the hash is calculated and converted to a string. For MD5 and SHA1 a BitConverter was used for this conversion, for SHA256 a Base64 conversion was used. This inconsistency is solved in Futurama 17.07. Futurama Documents that are created before 17.07 which consists the HashText function are getting the compatibility mode 17_06. With this mode the old behavior is supported. If you have a Futurama Document with the HashText function which only uses MD5 or SHA1 hashing then you can safely set the compatibility mode to Futurama Current. If you have a Futurama Document with the HashText function which uses SHA256 hashing, then it is recommended to change the HashText function to the HashTextWithBse64 function. This function gives the same results as the Hashtext function before 17.07. After changing to this formula the compatibility mode can be safely set to Futurama Current.

    Compatibility mode Futurama 17_04

    In Ranges a range can be given from a startvalue to an endvalue with a certain step size. Ranges can have type long, double or date. In the situation the type of the range was double, and the stepsize and the endvalue were broken numbers in some cases the endvalue was not part of the Range. For example a range from 0 to 11/12 with step size 1/12. Up to Futurama_17_04 the end value 11/12 was not part of the Range. From Futurama 17_05 this is solved. If the compatibility mode is 17_05, the old behavior is used.

    Compatibility mode Futurama 5_3

    XmlFields with Rank 0 that have an XPath that returns multiple items returned null, without an exception prior to Futurama 6. Starting in Futurama 6, these fields will throw an exception.

    Compatibility mode Futurama 5_2_1_4

    Up to this version of Futurama, the function Matrix.Percentile was sometimes incorrect.

    For example take the array {2,4,8,3} and calculate the 90% percentile. Up to this version the Percentile was calculated by:

    1. ordening the array from small to large: {2,3,4,8}
    2. first index in the array is 0, last index in the array is n-1 (in this example 3)
    3. 90% percentile is index 90% * 3 = 2,7
    4. interpolation between the values at index 2 and index 3 as follows: 90% * 4 + 10% * 8 = 4,4 

    Up to this version of Futurama, the function Matrix.Percentile was sometimes incorrect.

    From Futurama version 5.3.0 + the Percentile is correctly calculated by:

    1. ordening the array from small to large: {2,3,4,8}
    2. first index in the array is 0, last index in the array is n-1 (in this example 3)
    3. 90% percentile is index 90% * 3 = 2,7
    4. interpolation between the values at index 2 and index 3 as follows: 30% * 4 + 70% * 8 = 6,8 

    In this example a very small array is used to make the difference between the two calculation methods clear. In practice this function will only be used in the situation of large matrices with values that are relatively close to each other, so the difference between those two calculation methods is small.

    The Percentile function is repaired in Futurama 5.3.0, leading to a change in the behavior of Futurama. To maintain the original behavior, Compatibility mode 5_2_1_4 must be used.

    Compability mode Futurama 5_2_1_2

    Up to this version of Futurama, the repeattarget of a loop (XmlBuilder, Action, WebListBox) was not reset correctly at the end of the loop.

    Normally, all calculated items in the document structure are not recalculated everytime the value is evaluated. Instead, they 'cache' the calculated values once evaluated. Only when a determinant has changed its value, the cache is cleared, which leads to a new evaluation the next time the item is calculated.

    In loops, the value of the repeattarget is set for all values in repeatdata in an iteration. Each time the value is reset, leading to a clearance of the cache of all dependants (recursively). At the end, however, the repeattarget is set to its original value (before the iteration started). In this last step, the cache of its dependants are not cleared. Which is not correct!

    This is repaired in Futurama 5.3.0, leading to a change in the behavior of Futurama. To maintain the original behavior, Compatibility mode 5_2_1_2 must be used.

    Example:

    1. Open this document in the Futurama Editor
    2. Execute 'test' (ID=2)
    3. Evaluate 'result' (ID=5)

    Now repeat these steps using Compatibility mode 'Futurama_Current'

    Compability mode Futurama 5_1_4

    The formula ‘Index’ for a datatype ‘long’ is changed. The old behavior was that the formula returned a result 0 when the provided index is out of range. In newer versions the function will lead to an exception when the index is out of range. For example: Index(table, –1) will lead to 0 in ‘Futurama_5_1_4’and will lead to an exception in all Compatibility modes later than ‘Futurama_5_1_4’. We changed this behavior to make sure the Index function for a long has the same behavior as for the other datatypes.

    Related Topics

    - Document: The object where you can set this property.

    Feedback

    If you have any questions about this subject or if you want to provide us feedback please send us an e-mail.

    Updated: 2015-03-31


    Previous  |  Next