!--a11y-->
Checklist 
Use the checklist to avoid common errors in your development projects.
General
|
Do you reference all the required JAR files in your development project? For Knowledge Management, you must reference all bc*_api.jar The required subset from: km*_api.jar coll*_api.jar If you use portal interfaces, you also need to reference the corresponding portal JAR files. Note that work on your project will be slowed down, if you reference all JAR files. |
|
Do you have the correct version of the JAR files? The version of the files you reference in the SAP NetWeaver Developer Studio must be the same as the version used on the Portal for deployment and testing. To ensure that the versions are the same, copy the JAR files from the Portal to a local SAP NetWeaver Developer Studio directory and reference these in your project. |
|
Does the deployment descriptor of your project specify all the portal applications that are accessed at runtime? Enter the name of the applications in the Sharing Reference element of the project file dist\WEB-INF portalapp.xml For
Knowledge Management, you need the entry knowledgemanagement
Examples of Portal applications that must often be referenced are user management, HTMLB, JCO and the portal navigation service. |
|
Do you use deprecated APIs? Projects migrated from older versions sometimes use the deprecated AP. Replace the deprecated APIs with the new ones as specified in the Javadocs. |
Extensions: Repository Managers
|
Is the XML that defines the configuration for the extension (configurable) semantically correct? |
|
Does the portal
service wrapper that you define for your extension include a key to identify
the service? |
|
Does your implementation of the AbstractManager class include the implementation of the method getSupportedOptions ? If not, implement
the method which is inherited from com.sap.netweaver.bc.rf.mi.IManager |
Extensions: Namespace Filter
|
Does the implementation of getFilterForRead or getFilterForWrite return null? Returning null raises an exception in the framework. Implement the method so that it always returns the predecessor filter. |
|
Does the implementation of INamespaceFilter include an implementation of getCollection that adheres to the specification for the method? getCollection must return the collection if the filter is applied to getChilden() and return null if the filter is applied to getResource() or search() |
Flexible UI
|
Do flexible UI
components call the method getNewInstance to get an instance of the component? |
|
Do you implement the getSupportedParameters() method of the AbstractCollectionRenderer class for the renderers that you implement? The method is a prerequisite for reading the properties set for a renderer in the configuration. |
|
For a collection renderer, do you extend the abstract class LightCollectionRenderer ? Do not extend the class AbstractCollectionRenderer because performance is better with LightCollectionRenderer |
|
For commands, do you extend the class AbstractCommand in the package com.sapportals.wcm.rendering.uicommand? Do not implement AbstractUICommand in the package com.sapportals.wcm.rendering.uicommand.AbstractUICommand |
|
When you implement AbstractCommand to call an external iView with a command, you need to re-implement the method raisesEvent. The default implementation returns true, but your implementation must return false to cancel the normal screen flow. |