Noteworthy Information about Migration
There are several changes which might have an impact when you run applications on the new releases:
- There is a new URL scheme for Web Dynpro applications in place (…/webdynpro/resources/<dc-vendor>/<dc-name>/<app-name> instead of …/webdynpro/dispatcher/<dc-vendor>/<dc-name>/<app-name>). However, the old URL scheme still works for compatibility reasons. Furthermore, resource paths have changed in order to provide better support for the Web module.
- Applications which use the WDURLGenerator API as required will continue to get the correct URLs.
- Applications which create URLs using a custom written algorithm will need to be checked for compatibility as they might experience problems in certain scenarios.
- At the end of a controller's lifecycle, context elements are now cleaned up earlier. This might lead to runtime exceptions if elements of the context are accessed after they have become invalid. Such accesses have been an error already in 7.0, but could have gone unnoticed.
- Due to security reasons, the input data is checked more thoroughly by the server starting with 7.11. This might lead to runtime exceptions if an application relies on the more relaxed behavior of the framework in 7.0.
- In 7.20 additional security improvements have been applied which might break existing test tools,for example for load tests.
- Starting with 7.1, the Unified Rendering (UR) library called "Lightspeed" is used as the default UI rendering library. UR Classic is no longer available from 7.2 onwards. This especially has an impact on test tools relying on the used HTML.
- Using Java native types instead of the DDIC wrapper types for a view element's primary property makes the corresponding view element read only. Using the DDIC wrapper was mandatory in 7.0 but had not been enforced.
- Input fields with a numeric type show a calculator for value help starting in 7.11.
- Starting from 7.10, the lead selection change behavior in tables has slightly changed for components using the old component model. Previously, the lead selection was directly changed when you selected a table row. Now, the lead selection is only changed after the next server roundtrip. This implies that in a master-detail scenario, the detail form/table still shows the data for the old lead selection, while in the master table the data for the new row is edited. For components using the new component model, there are even more changes to the lead selection handling.
- There is a new table column concept. It is important not to mix new and old columns within the same table. Manual migration of the columns to the new concept is optional.
- There is a new context menu concept. This might interfere with the old context menus specifically available for some view elements (for example, if only one of the two context menus is shown at a time). So replacing the old context menus by the new concept might have advantages.
- There are several new ways of integrating Web Dynpro applications into the SAP Enterprise Portal. See the SAP Enterprise Portal documentation and note 1383062 (especially the attachment).
Migrating Web Dynpro components to the new component model will have the following side effects:
- It is an irreversible process: There is no way back once the Web Dynpro component has been migrated to the new programming model, you cannot later revert to the original programming model.
- Behavioral changes: The migration process might slightly change how the Web Dynpro component behaves at runtime. Therefore you will need to test your component's functionality extensively after the migration. This is particularly relevant for reusable components, especially if they are stored in separate Web Dynpro Development Components.
- Migrate those components that are heavily used by other components with extreme care!
- Hook method invocation changes: For components with the new programming model the hook methods doBeforeNavigation() and doPostProcessing() will only be called when the round-trip triggers an action event handler. Prior to the migration, these hook methods were always called. This may affect the runtime behaviour of your component and cannot be checked by the migration tool.
- Context specific changes: Do not invoke IWDNode.bind() for context nodes that have a supply function in the new programming model, calling the bind() method for a context node with a supply function will cause a runtime exception. This may affect the runtime behaviour of your component and cannot be checked by the migration tool.
- Table UI element changes: The Table UI element has a slightly different runtime behaviour for the new programming model. When the user clicks on a button within a row that is not selected, the lead selection will only change if the table is in read-only mode. This may affect the runtime behaviour of your component and cannot be checked by the migration tool.
- For the Calendar UI element, the new aggregation WeekDayPattern takes precedence over the old RecurrenceDayPattern. If aggregation WorkingTimes contains entries, they are considered for rendering the UI element.
- For the DateNavigator, the new property legendID takes precedence over the old aggregation Legend. Starting with 7.10, the property legendID has to be specified instead of using aggregation Legend.
- New naming convention for UI element IDs: In the new programming model, the programmatic creation of UI element IDs that start with '_' (underscore) is no longer permitted. Doing so will cause a runtime exception. This may affect the runtime behaviour of your component and cannot be checked by the migration tool.
The following table contains deprecated UI element features. Consider them when migrating Web Dynpro Components or creating new Web Dynpro Components. When a Web Dynpro Component is created, it gets the current version of the used IDE. If a Web Dynpro Component is migrated to the new component model, its version is changed to the then current version of the used IDE.
Special care has to be taken for deprecated aggregations. Therefore, they have already been mentioned at the beginning of this section. If a cell in the feature column contains no value, the whole view element is deprecated.
| Library/View Element | Feature | Name | Deprecated Since Version | Reason |
|---|---|---|---|---|
|
Adobe |
||||
|
InteractiveForm |
Property |
displayType |
7.20 |
Use display type "native" instead |
|
BusinessGraphics |
||||
|
BusinessGraphics |
Property |
alwaysDisplayGraphic |
7.10 |
Table rendering mode in accessibility mode is deprecated. The application developer is responsible for choosing a suitable way to present the data of the Business Graphic in an accessible way. |
|
BusinessIntelligence |
||||
|
GridCell |
|
|
7.11 |
Do not use this UI element anymore. |
|
GridCellEditor |
|
|
7.11 |
Do not use this UI element anymore. |
|
GridCellStyle |
|
|
7.11 |
Do not use this UI element anymore. |
|
GridCellStyle |
Property |
borderStyleBottom |
7.11 |
Do not use this UI element anymore. |
|
GridCellStyle |
Property |
borderStyleLead |
7.11 |
Do not use this UI element anymore. |
|
GridCellStyle |
Property |
borderStyleTop |
7.11 |
Do not use this UI element anymore. |
|
GridCellStyle |
Property |
borderStyleTrail |
7.11 |
Do not use this UI element anymore. |
|
GridCellTemplate |
|
|
7.11 |
Do not use this UI element anymore. |
|
GridCellTextStyle |
|
|
7.11 |
Do not use this UI element anymore. |
|
GridCellTextStyle |
Property |
fontStyle |
7.11 |
Do not use this UI element anymore. |
|
GridCellTextStyle |
Property |
fontWeight |
7.11 |
Do not use this UI element anymore. |
|
GridCellTextStyle |
Property |
textDecoration |
7.11 |
Do not use this UI element anymore. |
|
Grid |
|
|
7.11 |
Do not use this UI element anymore. |
|
Calendar |
||||
|
RecurrenceDayPattern |
Aggregation |
WorkingTimes |
7.10 |
The binding model has changed. Use aggregation workingTime instead. |
|
AbstractCalendar |
Aggregation |
RecurrenceDayPatterns |
7.10 |
Use aggregation WeekDayPattern instead for static recurring working times |
|
Mobile |
||||
|
RFIDReader |
Event |
onRead |
7.10 |
Use onTrigger event with the property triggerMode = WDTriggerMode.read instead. |
|
Pattern |
||||
|
PatternSequenceStep |
|
|
7.10 |
Unsupported UI Element. Use the Guided Procedure Pattern instead (withRoadMap and RoadMapStep) |
|
PatternSequence |
|
|
7.10 |
Unsupported UI Element.Use the Guided Procedure Pattern instead (with RoadMap). |
|
RealtimeMessaging |
||||
|
MessageBasedTrigger |
Property |
messageName |
7.10 |
Has been renamed to <code> eventName </code> |
|
Standard |
|
|
|
|
|
AbstractMasterTableColumn |
Property |
design |
7.20 |
Use cellDesign property instead. |
|
AbstractTableColumn |
Event |
onAction |
7.10 |
This action was introduced to provide the option of sorting or selecting a column. This action is deprecated because of Table.onColSelect and Table.onSort. The Table.onColSelect and Table.onSort are two UI element properties which take a Web Dynpro controller action as their value. |
|
AbstractTreeNodeType |
Property |
iconAlt |
7.10 |
Instead of the iconAlt text, use the tooltip of the TreeNodeType or TreeItemType |
|
DateNavigatorLegend |
|
|
7.10 |
Use the UI Element legend instead of the DateNavigatorLegend. Connect the Legend and the DateNavigator via legendId of the DateNavigator. |
|
DateNavigatorLegend |
Property |
category |
7.10 |
Use the TableCellDesign enumeration instead to mark a day with a color. |
|
DateNavigatorMarking |
Property |
category |
7.10 |
Use the property daySemantics instead to mark a certain day. The Legend UI Element is used to describe the semantic meaning of daySemantics color code. |
|
Popin |
Property |
visible |
7.11 |
This Boolean property named "visible" has been replaced by a property named "visibility" of enumeration type in order to support the same functionality as elsewhere. As long as this property is set to false or bound to a context attribute of value false, the "visibility" property has no effect and the view elements remain invisible. |
|
RoadMapStep |
Property |
design |
7.10 |
Instead of the design property, use the enabled and the type property of the RoadMapStep and the selected property of the RoadMap. |
|
Tab |
Property |
visible |
7.11 |
This Boolean property named "visible" has been replaced by a property named "visibility" of enumeration type in order to support the same functionality as elsewhere. As long as this property is set to false or bound to a context attribute of value false, the "visibility" property has no effect and the view elements remain invisible. |
|
TableColumn |
Property |
design |
7.10 |
Use cellDesign property instead. |
|
AbstractCaption |
Property |
imageAlt |
7.10 |
Instead of the imageAlt text, the tooltip is displayed if the image is not available. |
|
AbstractInputField |
Property |
displayLabelAsDefault |
7.11 |
This property is deprecated since SAP NetWeaver 7.1 EHP1, use property inputPrompt instead. |
|
Button |
Property |
Size |
7.10 |
Small UI elements are no longer supported. |
|
DateNavigator |
Aggregation |
Legend |
7.10 |
Instead of the Legend aggregation to DateNavigatorLegend, use the property legendId to connect the UI Element Legend with the DateNavigator. The DateNavigator Legend is deprecated. |
|
DropDownByIndex |
Property |
size |
7.10 |
Small UI elements are no longer supported. |
|
DropDownByKey |
Property |
size |
7.10 |
Small UI elements are no longer supported. |
|
FileDownload |
Property |
data |
7.10 |
Use the new property "resource" instead |
|
FileUpload |
Property |
data |
7.10 |
Use the property "resource" instead |
|
FileUpload |
Property |
fileName |
7.10 |
Use the property "resource" instead |
|
FormattedTextView |
Property |
hAlign |
7.10 |
Use the hAlign property of the containing LayoutData instead (such as MatrixHeadData.hAlign, MatrixData.hAlign, RowHeadData.hAlign) |
|
HorizontalGutter |
Property |
hasRule |
7.10 |
Use attribute ruleType instead. DisplayType = none is equivalent to hasRule=false and displayType=areaRule is equivalent to hasRule=true |
|
Image |
Property |
alt |
7.10 |
Instead of the imageAlt text, the tooltip is displayed if the image is not available |
|
InputField |
Property |
size |
7.10 |
Small UI elements are no longer supported. |
|
Link |
Property |
size |
7.10 |
Small UI elements are no longer supported. |
|
Table |
Property |
compatibilityMode |
7.10 |
There will be no alternative functionality available in future.The two values in enumeration have the same effect for applications implemented in releases later than NW04s |
|
Table |
Aggregation |
Columns |
7.10 |
Functionality is covered in "groupedColumns". Use "groupedColumns" aggregation instead. |
|
Table |
Aggregation |
MasterColumn |
7.10 |
Functionality is covered in "rowArrangement". Use "rowArrangement" aggregation instead. |
|
Tree |
Property |
defaultItemIconAlt |
7.10 |
Instead of the defaultItemIconAlt text, use the tooltip of the TreeItemType. |
|
Tree |
Property |
defaultNodeIconAlt |
7.10 |
Instead of the defaultNodeIconAlt text, use the tooltip of the TreeNodeType. |
|
FlowLayout |
Property |
defaultPaddingBottom |
7.10 |
No alternative available |
|
FlowLayout |
Property |
defaultPaddingLeft |
7.10 |
Use cellDesign of FlowLayoutData instead |
|
FlowLayout |
Property |
defaultPaddingRight |
7.10 |
Use cellDesign of FlowLayoutData instead |
|
FlowLayout |
Property |
defaultPaddingTop |
7.10 |
No alternative available |
|
FlowData |
Property |
paddingBottom |
7.10 |
No alternative available |
|
FlowData |
Property |
paddingLeft |
7.10 |
Use cellDesign instead |
|
FlowData |
Property |
paddingRight |
7.10 |
Use cellDesign instead |
|
FlowData |
Property |
paddingTop |
7.10 |
No alternative available |