As Servoy 6 is a major release a fresh Servoy Application Server installation is required.
See ... for more information.
As Servoy 6 is a major release a fresh Servoy Developer installation is required.
See ... for more information.
Moving the
Export/import preferences
Upgrading existing Solutions
Servoy 6 offers some amazing new features in the Servoy Developer IDE when it comes to designing forms and writing business logic.
Part of the latter is a greatly improved JavaScript code validation: the entire code base of a solution will be continuously checked for possible coding mistakes, like accessing or setting non existing variables, calling non-existing methods or calling methods with the wrong number or type of parameters.
While this is great once you get going, if you're upgrading an existing solution to Servoy 6, you will most likely get a lot of warnings on your code. Why is that?
JavaScript, the scripting language used in Servoy to write down the business logic is what they call "weak-typed". This means that a variable can hold any type of value, that a function can return any type of value and that the parameter values that can be send into a method call can be of any type. At least: this hold true for JavaScript in it's core.
The new script validation in Servoy Developer 6 however tries to determine if the the properties you access actually exist, if the method you call exist and if you call them with the right number and type of arguments. The validation mechanism tries to be as clever as possible to determine which code is correct and which code isn't, but due to the weak-typed (and dynamic) nature of JavaScript, somethings clever logic just isn't enough and the validator requires more input from the developer in order to do proper validation. This developer input is done in the form of JSDoc.
While previous versions of Servoy already had support for JSDoc, in Servoy 6 this support has been extended and improved, in order to better facilitate the validation process.
So, while you might get numerous warnings once you open your existing solutions in Servoy 6, remember that these are just "warnings", not errors, they do not mean that your solution is not working. While we advise to solve the warnings, so you can also reliable start using some of the other great features of Servoy 6, like automatic code refactoring or search for references, you can ignore the warnings. It's even possible to turn off all the warnings, see Window > Preferences > JavaScript > Error/Warnings.
http://domain:port/servoy-webclient/ss/s/{solutionName}/argument/1/m/{globalMethodName}/a/2/a/3/b/1/b/2/b/3 or http://domain:port/servoy-webclient/ss?s={solutionName}&a=1&method={globalMethodName}&a=2&a=3&b=1&b=2&b=3 or http://domain:port/servoy-client/{solutionName}.jnlp?a=1&a=3&b=1&a=2&b=2&b=3
arguments[0]: 1 arguments[1]: {argument: [1,2,3], b: [1,2,3]}]
Object |
Deprecated method or property |
Replacement |
Comment |
---|---|---|---|
Form |
extendsForm |
extends |
|
|
rowBGColorCalculation |
CSS Row Styling & onRender event |
|
Portal |
resizeble |
resizable |
Fix typo |
|
rowBGColorCalculation |
CSS Row Styling & onRender event |
|
TabPanel |
onTabChange |
onChange |
|
Object |
Deprecated method or property |
Replacement |
Comment |
||
---|---|---|---|---|---|
controller |
.getContainerName() |
controller.getWindow().getName() |
|
||
Button |
.setBorder() |
.border |
Matching getters or setters added, allowing both getting and setting the value. |
||
RuntimeLabel |
.getParameterValue() |
N/A |
Never worked properly |
||
Date |
.setYear() |
.getFullYear() |
This function is deprecated in the JavaScript specification |
||
Application |
.getStartupArguments() |
onOpen event handler of the solution |
Deeplink arguments are now passed to both the onOpen event handler of the Login and Main solution. |
||
|
.closeForm() |
JSWindow.hide() |
Servoy 6 contains a complete new Windowing API. A window or dialog is now an instance of the JSWindow class to which a lot of the methods have been moved. New methods were added to the application and controller objects to interact with windows |
||
|
.getWindowHeight() |
JSWindow.getHeight() |
|
||
|
.getWindowWidth() |
JSWindow.getWidth() |
|
||
|
.getWindowX() |
JSWindow.getX() |
|
||
|
.getWindowY() |
JSWindow.getY() |
|
||
|
.setWindowLocation() |
JSWindow.setLocation() |
|
||
|
.setWindowSize() |
JSWindow.setSize() |
|
||
|
.showFormInDialog() |
application.createWindow('name',JSWindow.DIALOG).show('formName') |
The method application.createWindow(..) returns an object of type JSWindow, which has an Scripting API to control additional things like the title, resizability, initial bounds and whether or not to show a textToolbar |
||
|
.showFormInWindow() |
application.createWindow('name',JSWindow.WINDOW).show('formName') |
|
||
UICONSTANTS |
.FULL_SCREEN |
JSWindow.FULL_SCREEN |
|
||
JSForm |
.rowBGColorCalculation |
CSS Row Styling & onRender event |
|
||
JSPortal |
.resizeble |
.resizable |
Fix typo |
||
|
.rowBGColorCalculation |
CSS Row Styling & onRender event |
|
||
JSTabPanel |
.onTabChange |
.onChange |
|
||
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="615c8193-1f64-4492-a58b-2d35466018ad"><ac:plain-text-body><![CDATA[ |
databaseManager |
.getFoundSetDataProviderAsArray() |
.convertToDataSet(['dataProviderId']).getColumnAsArray(1) |
Duplicate functionality |
]]></ac:plain-text-body></ac:structured-macro> |
ServoyException |
.INVALID_INPUT_FORMAT |
N/A |
never raised |
||
plugins.file |
.getHomeDirectory() |
.getHomeFolder() |
Match naming convention |
||
|
.getRemoteList() |
.getRemoteFolderContents() |
Match naming convention |
||
plugins.http |
.createHttpClient() |
.createNewHttpClient() |
The HTTP plugin was refactored to support all types of HTTP Requests and support more finegrained control over the requests. Instead of creating an HttpClient and referencing it by name, the HttpClient is now an object with it's own set of methods, for example methods to create all the different types of HttpRequests. Each XxxxRequest object has a .executeRequest() function that returns a Response object again with it's own methods. |
||
|
.deleteHttpClient() |
N/A |
No longer required |
||
|
.getHttpClientCookie() |
.getCookie() on HttpClient object |
|
||
|
.getHttpClientCookies() |
.getCookies() on HttpClient object |
|
||
|
.getLastPageCharset() |
replaced by .getCharset() on Response object returned by the .executeRequest() method on any of the XxxxRequest objects created by the .createXxxRequest() methods on the HttpClient object |
|
||
|
.getPoster() |
.createPostRequest() on HttpClient object |
|
||
|
.put() |
.createPutRequest() on HttpClient object |
|
||
|
.setClientProxyUserNamePassword() |
.setClientProxyCredentials() on HttpClient object |
|
||
|
.setHttpClientCookie() |
.setCookie() on HttpClient object |
|
||
plugins.window |
setToolBarVisible() |
.setToolBarAreaVisible() |
Name now matches what the function does |
||
MenuBar |
.validate() |
N/A |
No longer required |