cancel
Showing results for 
Search instead for 
Did you mean: 

UI command not working

Former Member
0 Kudos

Hi,

I have created a uicommand following the steps of the diferent documentation found in the SDN (One-Step-Screenflow), but I still don't know how to make it work.

If I create a UICommand extending AbstracCommand, seems to work well until I try to use the RevisionScreenflow class from it. The error that it appears is:

class java.lang.NoClassDefFoundError

com/sapportals/wcm/rendering/screenflow/cm/RevisionScreenflow

I guess it's something wrong in the portalapp.xml.

I have also tried a different way, I create a component and extend the UIRevisionCommand and then configure the command inside the portal, the option does not appear in the menu where it is suppose to appear.

In general what I am trying to do is to create a package of my own with the UIRevisionCommand, RevisionScreenflow and ResourceRevisionControl. After that I will modify the control so it does what I want. I have done this in the two ways explained above. I don't know what I do wrong, may be there is another way to do the whole think, any ideas, please tell me.

As I said I fear the problem comes from the portalapp.xml, SharingReferences property, I guess I don't fill this property with the correct libraries. Please help.

Thanks in advance.

Gregori Coll Ingles.

Accepted Solutions (1)

Accepted Solutions (1)

0 Kudos

Hi Gregori,

there are two reasons why this won't work:

1) The RevisionScreenflow class does not extend the abstract class com.sapportals.wcm.rendering.screenflow.AbstractScreenflow

which is the only base class which s supported for One-Step-Screenflow

2) The class com.sapportals.wcm.rendering.screenflow.cm.RevisionScreenflow is located in a private jar archive which cannot be referenced by custom coding.

Best regards,

Thilo

Former Member
0 Kudos

Hi Thilo,

thanks for yor answer. If I don't get it wrong, the only posible solution would be to create my own package with the RevisionScreenflow, the UIRevisionCommand and all the other classes that are private, and then reference them from inside the package(reference the ones in the package obviously). Is this a good way to do it?

Thanks in advance.

Best regards,

Gregori Coll Ingles.

0 Kudos

Hi Gregori,

unfortunatly not, this won't help you, because only classes extending the base class com.sapportals.wcm.rendering.screenflow.AbstractScreenflow can be used in One-Step-Screenflows, the RevisionScreenflow doen't extend thos class. So the only possibility is, that you reimplement the RevisionScreenflow in your own coding.

Regards,

Thilo

Former Member
0 Kudos

Hi Thilo,

Sorry, I'll try to explain myself better. The final idea is to create in the detail iview an option in one of the menus, that loads the version iview. The problem is that I need to extend some of the functionalities of the standard versions iview. To do that I first tried to use the OneStepScreenflow, but I thinks it is not necessary. The idea I have from your earlier answer is that I would be able to extend the AbstractUICommand and use the RevisionScreenflow if I put does classes in my own package so they are not private. This way I would be able to extend all this classes. The question is would this work? Would the uicommand work well if it references a class that extends the AbstractUICommand?

Thanks in advance.

Gregori Coll Ingles.

0 Kudos

Hi Gregori,

you have to distiguish between 2 things.

1) The UICommand itself can be referenced to every class with extends AbstractUICommand or AbstractCommand.

2) The Screenflow RevisionScreenflow cannt be used in UICommands that are custom developed due to the restrictions mentioned above.

So this means, you can either reference a standard UICommand which uses the RevisionScreenflow as is, or you implement your own UICommand (extend abstract class AbstractCommand) and implement an new screenflow based on an extension of com.sapportals.wcm.rendering.screenflow.AbstractScreenflow

class.

Regards,

Thilo

Former Member
0 Kudos

Hi Thilo,

thanks again. I think I get the idea. One more thing, what is the difference between AbstractUICommand and AbstractCommand, I know they are different coded classes, but how can I decide which is better to use?

thanks again.

Gregori Coll Ingles.

0 Kudos

Hi Gregori,

AbstractUICommand: old 6.20 class, can be used in 6.40 architecture for convienent usage

AbstractCommand: optimized class for 6.40 architecture, would not run in an 6.20 environment.

Regards,

Thilo

Former Member
0 Kudos

Hi Thilo,

Thanks for all your answers, your are a SAP EP Master.

Regards,

Gregori Coll Ingles.

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi, Gregori:

Will you please point me to the guide or tutorial of deveolping this custom UI command? You mentioned the documentation in SDN, but I couldn't find it.

Appreciate your help!

-Sean

Former Member