Show TOC Start of Content Area

Background documentation Checklist Locate the document in its SAP Library structure

Use the checklist to avoid common errors in your development projects.

General

This graphic is explained in the accompanying text

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.

This graphic is explained in the accompanying text

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.

This graphic is explained in the accompanying text

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
For Portal applications, you need an entry for each application that is accessed. Identify the name of the application in the
application name element of the corresponding portalapp.xml file.

Examples of Portal applications that must often be referenced are user management, HTMLB, JCO and the portal navigation service.

This graphic is explained in the accompanying text

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

This graphic is explained in the accompanying text

Is the XML that defines the configuration for the extension (configurable) semantically correct?

This graphic is explained in the accompanying text

Does the portal service wrapper that you define for your extension include a key to identify the service?
To enter the key, open the
IRFServiceWrapper interface in the src.api directory of your project and add a value for KEY:
public static final String KEY = "com.customer.package.name";. 

This graphic is explained in the accompanying text

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
Without the method, the new repository manager will not support the functions it is designed to support.

 

Extensions: Namespace Filter

This graphic is explained in the accompanying text

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.

This graphic is explained in the accompanying text

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

This graphic is explained in the accompanying text

Do flexible UI components call the method getNewInstance to get an instance of the component?
You use
getNewInstance instead of the default constructor to get an instance of the component.

This graphic is explained in the accompanying text

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.

This graphic is explained in the accompanying text

For a collection renderer, do you extend the abstract class LightCollectionRenderer ?

Do not extend the class AbstractCollectionRenderer because performance is better with LightCollectionRenderer

This graphic is explained in the accompanying text

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

This graphic is explained in the accompanying text

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.

 

End of Content Area