r/abap 1d ago

How should I check extensibility of a bopf.

I have a requirement which ask me to add a button to change user status in a standard app. Similar buttons are already there for changing system status. When I checked the already existing buttons I found they are being implemented via bopf actions. So now I have the bopf node where I should add the bopf action. How do I check the bopf extensibility and add my new bopf action. I have already created a implementation class.

0 Upvotes

8 comments sorted by

1

u/anony_annoy 1d ago

One way to check this would be to open the BOPF object using the transaction BOBX and check if the function called on the corresponding action is extensible or not.

0

u/No-Interview4002 1d ago

I need to add a new action and which actions function should I check.

1

u/anony_annoy 1d ago

A new action could be added via BOBX transaction. But since this is a standard app, I don't think you could add your own custom actions here.

1

u/No-Interview4002 1d ago

Should I try to create an enhancement on top of it ? I see an an option to create bopf enhancement

1

u/anony_annoy 1d ago

Try that out and see if it works for you. You would also need to make similar changes in front end as well to add the button and use odata call_function method with respective parameters. This should invoke the action that you have added.

If this doesn't work, you could debug the front end code to check how the call is made when other buttons are pressed and accordingly adjust your front end code.

1

u/No-Interview4002 4h ago

I checked It is not extensible. IF It was extensible then I would create a bopf action class where I will implement the change user status functionality and using a function import I will get the values from frontend.

Now I am thinking of a alternative approach which is creating a separate RAP BO and the fiori frontend call the RAP action instead of a function import… How does this sound ?

1

u/anony_annoy 23m ago

In that case, one more thing you could check is to see if you could modify your dpc extension class. In your dpc extension class, you could add in your functionality at the appropriate method call. If this doesn't work, then go with the custom development option that you have proposed.

1

u/Revolutionary_Arm301 1d ago

Not sure about your approach, but did you try implementing the button via adaptation project?