Versions Compared

Key

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

...

OpenEdge Release

Version Information

11.3.3, 11.3.4, 11.4, 11.6.2, 11.6.3, 11.7, 11.7.1, 11.7.2, 11.7.3.007, 11.7.4, 12.0

Release 11.3 #52544@2019-06-16

OpenEdge 12.0 support!

We are please to announce that we are not aware of any issues using the SmartComponent Library on OpenEdge 12.0. We hereby declare OpenEdge 12.0 fully supported for the SmartComponent Library as of the release of May 1st 2019.

OpenEdge 11.7.4 support!

We are please to announce that we are not aware of any issues using the SmartComponent Library on OpenEdge 11.7.4. We hereby declare OpenEdge 11.7.4 fully supported for the SmartComponent Library as of the release of November 5th 2018.

...

A login is required to participate in the forum. Don't be shy - create your account today!

Image RemovedImage Added

Announcing the SmartFramework ERD Designer

...

SCL-2660 Fixed issue where a MetaViewer has been rendered at the wrong location

Description:

We have resolved an issue where a MetaViewer might have been rendered at the wrong position on a MetaForm.

Improvement

SCL-2653 Imported DataFields for all SmartFramework Business Entities

Description:

We have now imported the data fields for all SmartFramework Business Entities into the SmartFramework repository.

SCL-2655 Implement RESTful endpoint in UserGroupBusinessEntity to retrieve groups and possible assignments

Description:

We have implemented a RESTful endpoint that returns a users group assignments including the list of not assigned groups. Based on the user guid, the following call
http://localhost:8820/web/SmartFramework/Entities/GetUserGroupAssignments ?Value=ffcc4f24-af98-8187-e211-4714049f854c
returns

Code Block
languageabl
{
  "dsUserGroup": {
    "ePossibleAssignments": [
      {
        "UserGroupGuid": "a9c4c540-2241-2dbb-5414-1474a042361f",
        "GroupGuid": "9f0b8fc7-b7ce-19a1-e211-b55f47246bff",
        "UserGuid": "ffcc4f24-af98-8187-e211-4714049f854c",
        "UserName": "",
        "GroupName": "Admin"
      },
      {
        "UserGroupGuid": "a9c4c540-2241-2dbb-5414-1474a142361f",
        "GroupGuid": "9f0b8fc7-b7ce-19a1-e211-b65fd249a841",
        "UserGuid": "ffcc4f24-af98-8187-e211-4714049f854c",
        "UserName": "",
        "GroupName": "Translation"
      }
    ],
    "eSmartUserGroup": [
      {
        "UserGroupGuid": "b1ec906f-df55-aca4-e211-e05f8d10946a",
        "GroupGuid": "9f0b8fc7-b7ce-19a1-e211-b65f48370f36",
        "UserGuid": "ffcc4f24-af98-8187-e211-4714049f854c",
        "UserName": "mikefe",
        "GroupName": "Consultingwerk Admin",
        "ParentGroupGuid": "9f0b8fc7-b7ce-19a1-e211-b55f47246bff"
      },
      {
        "UserGroupGuid": "c9a39b58-71f9-f3be-e211-38f6c49cab8b",
        "GroupGuid": "9f0b8fc7-b7ce-19a1-e211-b65f78dd0345",
        "UserGuid": "ffcc4f24-af98-8187-e211-4714049f854c",
        "UserName": "mikefe",
        "GroupName": "User",
        "ParentGroupGuid": ""
      }
    ]
  }
}

...

SCL-2654 SmartDB setup script now imports all .smartrepo files provided

Description:

The SmartDB upgrade and migration script now imports the .smartrepo files provided by Consultingwerk as part of the SmartComponent Library releases.

SCL-2657 JSDO Catalog now contains Object/Token Security for CRUD Tokens

Description:

The JSDO Catalog does now contain the information about the Service Interface security tokens for the requested business entity. We have added the smartRestrictions section to the resource data.

...

Image Added

SCL-2658 Added method GetInitialValues to the DataMaintenanceBusinessTask

Description:

We have implemented the method GetInitialValues to the DataMaintenanceBusinessTask to support this in the same was as expected by Business Entities.

SCL-2659 Implemented rendering of custom toolbar buttons

Description:

We have implemented the rendering of custom (non Table IO or Navigation buttons) in the Ribbon on Dynamic Forms. The rendering is based on the ToolbarButtons property of the DefaultToolbar instance. When this property is non blank, this property defines the buttons which should be rendered on the Toolbar, e.g.:

No Format
first,previous,next,last,rule,add,copy,save,update,cancel,delete,rule,country-combo,rule,customer-orders,customer-credithold


The buttons themselves will be defined in JSON files together with the Ribbon Bands and Groups.
The .applicationsettings file is used to define the JSON files defining the toolbar buttons:

Code Block
languageabl
    "WindowsToolbarButtonDefinitions": {
        "tableio": "Consultingwerk/Windows/Framework/Repository/Rendering/default-buttons.json",
        "windowsdemo": "Consultingwerk/SmartComponentsDemo/Windows/windowsdemo-buttons.json"
    }    


The default-buttons.json file defines the standard Navigation and TableIO Buttons.
The file has three sections: tabs, groups and tools. Groups reference their parent tab and tools reference their parent group. Those groups and tabs will be created only when buttons are rendered referencing them.

Code Block
languageabl
{
    "tabs": {
        "start": {
            "key": "start",
            "caption": "Start"
        }
    },
    "groups": {
        "navigation": {
            "key": "navigation",
            "caption": "Navigation",
            "tab": "start"
        },
        "tableio": {
            "key": "tableio",
            "caption": "Maintenance",
            "tab": "start"
        }
    },
    "tools": {
        "rule": {
            "buttonType": "separator"
        },
        "separator": {
            "buttonType": "separator"
        },
        "add": {
            "buttonType": "button",
            "buttonName": "TableIOAdd",
            "buttonLabel": "Add",
            "buttonImageSmall": "Consultingwerk/SmartComponents/Images/add.png",
            "buttonImageLarge": "Consultingwerk/SmartComponents/Images/add_32.png",
            "group": "tableio"
        },
        "copy": {
            "buttonType": "button",
            "buttonName": "TableIOCopy",
            "buttonLabel": "Copy",
            "buttonImageSmall": "Consultingwerk/SmartComponents/Images/copyrec.png",
            "buttonImageLarge": "Consultingwerk/SmartComponents/Images/copyrec_32.png",
            "group": "tableio"
        },
        "update": {
            "buttonType": "button",
            "buttonName": "TableIOUpdate",
            "buttonLabel": "Update",
            "buttonImageSmall": "Consultingwerk/SmartComponents/Images/update.png",
            "buttonImageLarge": "Consultingwerk/SmartComponents/Images/update_32.png",
            "group": "tableio"
        },
        "save": {
            "buttonType": "button",
            "buttonName": "TableIOSave",
            "buttonLabel": "Save",
            "buttonImageSmall": "Consultingwerk/SmartComponents/Images/saverec.png",
            "buttonImageLarge": "Consultingwerk/SmartComponents/Images/saverec_32.png",
            "group": "tableio"
        },
        "cancel": {
            "buttonType": "button",
            "buttonName": "TableIOCancel",
            "buttonLabel": "Cancel",
            "buttonImageSmall": "Consultingwerk/SmartComponents/Images/cancel.png",
            "buttonImageLarge": "Consultingwerk/SmartComponents/Images/cancel_32.png",
            "group": "tableio"
        },
        "delete": {
            "buttonType": "button",
            "buttonName": "TableIODelete",
            "buttonLabel": "Delete",
            "buttonImageSmall": "Consultingwerk/SmartComponents/Images/deleterec.png",
            "buttonImageLarge": "Consultingwerk/SmartComponents/Images/deleterec_32.png",
            "group": "tableio"
        },
        "first": {
            "buttonType": "button",
            "buttonName": "NavigationFirst",
            "buttonLabel": "First",
            "buttonImageSmall": "Consultingwerk/SmartComponents/Images/first.png",
            "buttonImageLarge": "Consultingwerk/SmartComponents/Images/first_32.png",
            "group": "navigation"
        },
        "prev": {
            "buttonType": "button",
            "buttonName": "NavigationPrev",
            "buttonLabel": "Previous",
            "buttonImageSmall": "Consultingwerk/SmartComponents/Images/prev.png",
            "buttonImageLarge": "Consultingwerk/SmartComponents/Images/prev_32.png",
            "group": "navigation"
        },
        "previous": {
            "buttonType": "button",
            "buttonName": "NavigationPrev",
            "buttonLabel": "Previous",
            "buttonImageSmall": "Consultingwerk/SmartComponents/Images/prev.png",
            "buttonImageLarge": "Consultingwerk/SmartComponents/Images/prev_32.png",
            "group": "navigation"
        },
        "next": {
            "buttonType": "button",
            "buttonName": "NavigationNext",
            "buttonLabel": "Next",
            "buttonImageSmall": "Consultingwerk/SmartComponents/Images/next.png",
            "buttonImageLarge": "Consultingwerk/SmartComponents/Images/next_32.png",
            "group": "navigation"
        },        
        "last": {
            "buttonType": "button",
            "buttonName": "NavigationLast",
            "buttonLabel": "Last",
            "buttonImageSmall": "Consultingwerk/SmartComponents/Images/last.png",
            "buttonImageLarge": "Consultingwerk/SmartComponents/Images/last_32.png",
            "group": "navigation"
        }        
    }
}


A sample file with custom buttons is the file windowsdemo-buttons.json:

Code Block
languageabl
{
    "tabs": {
        "start": {
            "key": "start",
            "caption": "Start"
        }
    },
    "groups": {
        "customer": {
            "key": "customer",
            "caption": "Customer",
            "tab": "start"
        },
        "filter": {
            "key": "filter",
            "caption": "Filter",
            "tab": "start"
        }
    },
    "tools": {
        "country-combo": {
            "buttonType": "combo",
            "buttonName": "country-combo",
            "listItems": [
                {
                    "value": "AT",
                    "text": "Austria"
                },
                {
                    "value": "AU",
                    "text": "Australia"
                },
                {
                    "value": "BE",
                    "text": "Belgium"
                },
                {
                    "value": "CH",
                    "text": "Switzerland"
                },
                {
                    "value": "DE",
                    "text": "Germany"
                },
                {
                    "value": "DK",
                    "text": "Denmark"
                },
                {
                    "value": "ES",
                    "text": "Spain"
                },
                {
                    "value": "FI",
                    "text": "Finland"
                },
                {
                    "value": "FR",
                    "text": "France"
                },
                {
                    "value": "GB",
                    "text": "Great Britan"
                },
                {
                    "value": "IT",
                    "text": "Italia"
                },
                {
                    "value": "NL",
                    "text": "The Netherlands"
                },
                {
                    "value": "NO",
                    "text": "Norway"
                },
                {
                    "value": "SE",
                    "text": "Sweden"
                },
                {
                    "value": "USA",
                    "text": "United States of America"
                }
            ],
            "group": "filter"
        },
        "customer-credithold": {
            "buttonType": "command",
            "buttonAction": "PutCustomerOnHoldHandler",
            "buttonName": "customer-credithold",
            "buttonLabel": "Credit hold",
            "buttonTooltip": "Puts the customer on credit hold",
            "buttonImage": "Consultingwerk/SmartComponentsDemo/Web2/Images/sign_stop.png",
            "group": "customer"
        }
    }
}


This file defines a combo-box tool in the Ribbon and a custom button. When the custom button is clicked, the method referenced by the "buttonAction" attribute is executed in the Form's logic class. The method is expected to be PUBLIC and provides the two input parameters of the ToolClick event of the UltraToolbarsManager class: sender AS System.Object, e AS ToolClickEventArgs.
!screenshot-1.png|thumbnail!