Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

SCL-2802 Improved DatasetModel Interface generator handling of output path names

Description:

We have resolved differences in how the DatasetModel interface generator and the DatasetModel classes generator were determining the output directory name.

Improvement

SCL-2783 Added valueListKey property to the rendering of Grid columns

Description:

The MetaGrid rendering now supports the ValueListKey/valueListKey attribute.

SCL-2784 Rendering support for Combo-Box LimitToList attribute

Description:

The MetaCombo and DataField objects now support rendering of the LimitToList Attribute for the underlying UltraComboEditor control.

SCL-2793 Implement JsonHelper methods to assign/set a Character property based on a path

Description:

Supports assigning the SerializedType property in a standard JsonObject, supports other use cases as well.
* JsonHelper:SetPropertyByPath (oJson, "Abc", "SerializedType", "Consultingwerk.CharacterHelper").
Will assign the SerializedType to the JsonObject referenced by the Abc property in the given JsonObject
* JsonHelper:SetPropertyByPath (oJson, "Abc[]", "SerializedType", "Consultingwerk.CharacterHelper").
Will assign the SerializedType to all JsonObjects contained in the JsonArray referenced by the Abc property in the given JsonObject
* JsonHelper:SetPropertyByPath (oJson, "Abc[].Def[]", "SerializedType", "Consultingwerk.CharacterHelper").
Will first iterate all JsonObjects in the Abc JsonArray, and for each JsonObject in that array, iterate all objects in the Def JsonArray.

New Feature

SCL-2798 Implemented Web Handler to support Web version of the Business Entity Designer

Description:

Implemented the following REST endpoints:

File Access


This returns a list of root folders. The open file dialog should be populating a combo-box with those folders names:
GET http://localhost:8820/web/Entities/BusinessEntityDesigner/Files/GetRootFolders
This returns the list of files based on a given root folder:
GET http://localhost:8820/web/Entities/BusinessEntityDesigner/Files/GetFileNames ?Value=../../ABL
Opens a file name and returns the Business Entity Design as a JSON document:
GET http://localhost:8820/web/Entities/BusinessEntityDesigner/Files/OpenFile ?Value=C%3A%5CWork_STREAM%5CSmartComponentLibrary%5CDevelop%5CABL%5CConsultingwerk%5CSmartComponentsDemo%5COERA%5CSports2000%5COrderBusinessEntity.bedgm
Saves a file (post XML document here):
POST http://localhost:8820/web/Entities/BusinessEntityDesigner/Files/SaveFile

Code Block
languageabl

{
  { "dsBusinessEntity": ...., 
  { "parameter": { "Value": "C:\\Work_STREAM\\SmartComponentLibrary\\Develop\\ABL\\Consultingwerk\\SmartComponentsDemo\\OERA\\Sports2000\\OrderBusinessEntity.bedgm" }
}


Database schema


GET http://localhost:8820/web/Entities/BusinessEntityDesigner/Databases/GetDatabaseSchema
This endpoint returns the schema of the connected databases.
It returns a list of databases, tables, fields and indexes. There's one special database, the DICT-DB. This is not contained in the eDatabases as it represents virtual tables.

Settings


http://localhost:8820/web/Entities/BusinessEntityDesigner/Settings/GetSettings

SCL-2799 Implemented REST endpoint to create an object instance in the respository

Description:

Implementing this as a POST to http://localhost:8820/web/Entities/SmartFramework/Repository/CreateInstance with the following JSON payload (descriptions in the comment above):
- ContainerObject: string
- InstanceObject: string
- InstanceName: string
- InstanceDescription: string
- PageGuid: string
- ObjectSequence: integer
The implementation is based on the following ISmartRepositoryService API:

Code Block
languageabl
     /**
     * Purpose: Creates an Object Instance
     * Notes:
     * @param pcContainerObject The Container Object Master GUID or Container Object Name
     * @param pcInstanceObject The Object Master GUID or Object Name of the object to create an instance of
     * @param pcInstanceName The name of the object instance (or ? to use the object name)
     * @param pcInstanceDescription The description of the instance
     * @param pcPageGuid The GUID of the page to create the instance on
     * @param piObjectSequence The sequence of the object instance on the given page
     * @return The Object Instance Guid
     */
    METHOD PUBLIC CHARACTER CreateInstance (pcContainerObject AS CHARACTER,
                                            pcInstanceObject AS CHARACTER,
                                            pcInstanceName AS CHARACTER,
                                            pcInstanceDescription AS CHARACTER,
                                            pcPageGuid AS CHARACTER,
                                            piObjectSequence AS INTEGER).

...

SCL-2800 Resolved an issue in the AblReflectionHelper GetInvokableMethod method

Description:

The have resolved an issue in the GetInvokableMethod method. In a certain cases when calling an invokable method that is overloaded though the Service Interface customers were getting an error on the extent of the oParameters variable. We've resolved this issue now.

Task

SCL-2797 Additional ANT patternsets to extract AppServer code

Description:

We are now providing two additional ANT patternset definitions that can be used to copy the parts of the SmartComponent Library code base that are required on the AppServer into a build folder:
- smartcomponents.include.appserver.nodemo
- smartcomponents.include.appserver.nodemo.studiofiles
The patternsets are defined in the build/smartcomponents.xml file. The second file set is required as we exclude the Consultingwerk/Studio package but need to include a subset. Ant patternsets generally prefer exclude over include. The following ANT target demonstrates how the patternsets may be used to copy the relevant sourcecode to an "AppServer" folder:

Code Block
languagexml

    <target name="copy">
    
        <copy todir="../AppServer">
        
              <fileset dir="." casesensitive="false">
                 <patternset refid="smartcomponents.include.appserver.nodemo" /> 
              </fileset>        
              <fileset dir="." casesensitive="false">
                 <patternset refid="smartcomponents.include.appserver.nodemo.studiofiles" /> 
              </fileset>        
        </copy>
    
    </target>

...