Technical Articles
ABAP RAP : Enabling custom actions with a dialog for additional input fields
Prerequisites:
- Knowledge on ABAP Restful Application Programming
- Knowledge on Entity Manipulation Language (EML)
- [Optional] Hands on exercises in OpenSAP course https://open.sap.com/courses/cp13.
This blog gives you an idea to develop a custom action with a dialog for additional input fields that are needed based on scenario.
- Use case:
- There is a purchase contract that needs to be extended to next year by buyer.
- Business logic:
- Only extend those validities which are running on existing valid to
- [i.e. continue business with same supplier].
- Don’t touch items which are older than existing valid to.
- [i.e. no need to continue business with this supplier]
- Only extend those validities which are running on existing valid to
In my example:
Old valid to: Jun 30, 2021
New valid to: Dec 31, 2021
Item #10 runs on Jun 30,2021 hence it is expected to extend till Dec 31, 2021
Item #20 ends on Mar 31, 2021 hence it is not expected to touch.
Click the button Extend and to see results on Object page and item page
Implementation steps:
- Create a data model with Header (Parent), Item (Child), Conditions (Grand Child) having fields “Valid from”, “Valid to “.
- Create an abstract CDS entity with required input fields.
@EndUserText.label: 'Abstract entity to extend the validity'
@Metadata.allowExtensions: true
define abstract entity ZRK_A_Doc_Extend
// with parameters parameter_name : parameter_type
{
extend_till : /dmo/end_date;
comments : abap.string( 300 );
}
3.Enrich the entity with UI annotations such as labels.
@Metadata.layer: #CORE
annotate entity ZRK_A_Doc_Extend
with
{
@EndUserText.label: 'New validity to:'
extend_till;
@EndUserText.label: 'Enter your comments:'
comments;
}
4. In Behavior Definition, define action “extendDoc” with parameter using the abstract entity created in step#2.
action extendDoc parameter ZRK_A_Doc_Extend result [1] $self;
5. Implement the core ABAP logic for extend in Behavior Pool Class
METHOD extendDoc.
DATA : lt_update_doc TYPE TABLE FOR UPDATE zrk_i_doc_head.
DATA(lt_keys) = keys.
DATA(lv_today) = cl_abap_context_info=>get_system_date( ).
LOOP AT lt_keys ASSIGNING FIELD-SYMBOL(<fs_key>).
IF <fs_key>-%param-extend_till < lv_today.
APPEND VALUE #( %tky = <fs_key>-%tky ) TO failed-head.
APPEND VALUE #( %tky = <fs_key>-%tky
%msg = new_message( id = 'ZRK_CM_DOC'
number = '001' " Document cannot be extended into the past
severity = if_abap_behv_message=>severity-error )
%element-ValidTo = if_abap_behv=>mk-on ) TO reported-head.
DELETE lt_keys.
ELSE.
DATA(lv_new_valid_to) = <fs_key>-%param-extend_till.
ENDIF.
ENDLOOP.
" Once the validations are passed, proceed with extending document.
CHECK lt_keys IS NOT INITIAL.
READ ENTITIES OF zrk_i_doc_head IN LOCAL MODE
ENTITY Head
FIELDS ( ValidFrom ValidTo )
WITH CORRESPONDING #( keys )
RESULT DATA(lt_doc_head).
CHECK lt_doc_head IS NOT INITIAL.
LOOP AT lt_doc_head ASSIGNING FIELD-SYMBOL(<fs_head>).
" Capture old valid to
DATA(lv_old_valid_to) = <fs_head>-ValidTo.
" Read items from entity
READ ENTITIES OF zrk_i_doc_head IN LOCAL MODE
ENTITY Head BY \_Items
FIELDS ( ValidFrom ValidTo )
WITH VALUE #( ( %tky = <fs_head>-%tky ) )
RESULT DATA(lt_items).
" Loop through items that are running on old valid to
LOOP AT lt_items ASSIGNING FIELD-SYMBOL(<fs_item>)
WHERE ValidFrom LE lv_old_valid_to
AND ValidTo GE lv_old_valid_to.
" Modify item with new valid to
<fs_item>-ValidTo = lv_new_valid_to.
" Read conditions from entity
READ ENTITIES OF zrk_i_doc_head IN LOCAL MODE
ENTITY Items BY \_Conds
FIELDS ( ValidFrom ValidTo )
WITH VALUE #( ( %tky = <fs_item>-%tky ) )
RESULT DATA(lt_conds).
LOOP AT lt_conds ASSIGNING FIELD-SYMBOL(<fs_conds>)
WHERE ValidFrom LE lv_old_valid_to
AND ValidTo GE lv_old_valid_to..
<fs_conds>-ValidTo = lv_new_valid_to.
ENDLOOP.
" Modify conditions entity
MODIFY ENTITIES OF zrk_i_doc_head IN LOCAL MODE
ENTITY Conds
UPDATE FIELDS ( ValidTo )
WITH CORRESPONDING #( lt_conds ).
ENDLOOP.
" Modify Items entity
MODIFY ENTITIES OF zrk_i_doc_head IN LOCAL MODE
ENTITY Items
UPDATE FIELDS ( ValidTo )
WITH CORRESPONDING #( lt_items ).
ENDLOOP.
" Modify header entity
MODIFY ENTITIES OF zrk_i_doc_head IN LOCAL MODE
ENTITY Head
UPDATE
FIELDS ( ValidTo )
WITH VALUE #( FOR <fs_doc> IN lt_doc_head
( %tky = <fs_doc>-%tky
validTo = COND #( WHEN lv_new_valid_to IS NOT INITIAL
THEN lv_new_valid_to
ELSE <fs_doc>-ValidTo ) ) )
REPORTED DATA(lt_update_reported).
reported = CORRESPONDING #( DEEP lt_update_reported ).
" Return result to UI
READ ENTITIES OF zrk_i_doc_head IN LOCAL MODE
ENTITY Head
ALL FIELDS
WITH CORRESPONDING #( keys )
RESULT lt_doc_head.
result = VALUE #( FOR <fs_doc_head> IN lt_doc_head ( %tky = <fs_doc_head>-%tky
%param = <fs_doc_head> ) ).
ENDMETHOD.
6. Position the Action button on List Report and Object Page using annotations.
@UI: {
lineItem: [
{ type: #FOR_ACTION, dataAction: 'ExtendDoc' , label: 'Extend' , position: 90 } ] ,
identification : [
{ type: #FOR_ACTION, dataAction: 'ExtendDoc' , label: 'Extend' , position: 90 } ]
}
7. Generate the service Binding using OData V4 . [ If you use OData V2, then you have to enrich metadata in fiori app from webide or business studio ]
Service binding for document app with OData V4
Everything is set and its ready for user action:) Hope it helps in learning advanced ABAP RAP.
Thanks for detail explanation , It will help a lot for start further extension and gives heads up 🙂 .
Dear Ramjee, thanks for a great introduction to RAP. Looking forward to more tricks and tips!
Hello Ramjee,
I am trying to do basically the same thing, but for me it does not work as expected.
I added a button using @UI.identification and UI.lineItem annotations, that should open a dialog box with input fields.
I created the abstract entity :
@EndUserText.label: 'Abstract Entity for Release Information'
@Metadata.allowExtensions: true
define abstract entity ZOV_A_SYSTEM_RELEASE {
system_release : z_release_version;
}
and the metadata extension for UI labels:
@Metadata.layer: #CORE
annotate entity ZOV_A_SYSTEM_RELEASE with
{
@EndUserText.label: 'Release'
system_release;
}
I added the action in the Behaviour definition:
action SelectRelease parameter ZOV_A_SYSTEM_RELEASE;
The result in my app is the following: the dialog box opens, I can see the field maintained in the abstract entity, but no annotations are taken into consideration. No label is displayed. Just the field as written in the entity ( system_release ), not even the description from the data element.
Any idea what am I missing?
Hi Oana,
Did you try to refresh the app ? Sometimes metadata reflection on UI takes more time.
Is it in trail system so that I can have look ?
Best wishes,
Ramjee Korada
Hello Oana, Ramjee,
Have you resolved this issue?
I'm now into the same issue as the metadata entension for End user label not getting reflected on the popup.
Hello Oana,
It is just the version of your Odata binding type, use OData V4 - UI instead of V2
So now its works, and there checkboxes instead of radiobuttons=)
BR, Aynur
Hi Aynur,
Thanks for highlighting. I was using V4 for quite sometime and did not realize that others might be using still V2.
I have updated the blog with this point.
BR,
Ramjee
Hi Ramjee, This is very interesting. Thanks for the detailed explanation.
Thanks Ramjee for sharing. I'm not getting the popup being shown up although the abstract entity and its metadata is created properly. When triggering the action by pushing the corresponding button, it jumps directly to the behavior implementation where I can see the parameters defined in the abstract entity in blank (obviously 🙂 ) but no popup asks me for the input data.
Would you have an idea about how I can solve it? I already refresh the system a couple of times 🙂
Thx
Hi Daniel Ojados Conesa ramjee korada ,
We are facing the similar issue in case of parameterized action where multi select is enabled. In my case actions are working fine if multi select is disabled ,once we are enabling multi select the action directly goes into further processing and doesn't ask for input data.
Did you get solution for this issue ?
Thanks & Regards,
Arushi Nautiyal
Mahesh Palavalli Can you please help here ?
I have created an order maintenance application in RAP and have exposed the service as Odata V2. This development is done in 1909 version
Actions buttons are working as expected when we have not enabled multi select . Once we enable multi select for our application we get an error as below
Thanks,
Arushi Nautiyal
Current Behavior
Hi,
i have the same problem.
did you find a solutions on SAP HANA 1909 on premise ?
Dear Ramjee,
The popup and entity work fine, but there are some problems caused by changing binding type of my service to OData V4 - UI from V2.
Those are currency and unit of measure assignments for fields. So the error popup is like this:
How did manage this? And which data types did you use for that?
BR, Aynur
Hello Aynur,
This problem is solved when you enter respective Uom ( for quantity ) , Currency for ( Amount ) in object page.
However, It does not allow me to activate abstract entity with UoM field.
Once I added semantics, I am able to see the values entered from the dialog in debugging.
BR,
Ramjee
Hello Ramjee,
Actually, I had problem with UOM fields using that annotation. In Odata V2 it was ok to use any type of amout (INT4, DEC 15/2), while here with Odata V4 it causes errors, like: invalid type '\TYPE=STRING'.
Now, based on your screenshot I got that we should use 3 decimals after comma=)
That worked! Thanks!
BR, Aynur
Hi Ramjee,
Could you please explain, what needs to be added for OData V2 from the UI end ? Please try to provide a screenshot explanation for OData V2.
Thanks,
Vignesh.
Hi Ramjee,
we use OData V2 in our project and changing to Odata V4 is not possible at the time.
You wrote "If you use OData V2, then you have to enrich metadata in fiori app from webide or business studio". But I can't do this in my annotation file. Can you give an example, how this works?
Thanks, Romina.
Hi Romina,
Did you find a solution on OData V2. Please share if you did.
Regards,
Koonal
I am facing an issue
When am trying to add an action . it is giving error in service binding - Duplicate action external name .
There is no action with the same name . When am trying to expose the action in Behavior Implementation (Projection of Behavior Definition) . then this error comes, and without that the action button is not available in UI .
Can you please help me.
Thank you
Regards
Venkat Srikantan
HI Ramjee
Thanks for your sharing, I just confused with this development mode, you didn't declare any logic about dialog, how system know it should popup a dialog rather than others?
Hi David,
As mentioned in step #4, we are using parameters for an action. That means user has to fill the values and hence dialog is opened .
hi Ramjee
Could you plz share the detail of the parameters value
Hi David,
Its there in step #2 and step #3.
This is a very informative post. Thanks!!!
What if we want to make a parameter as Mandatory? Do we have to add an annotation to achieve this?
Found the annotation
gives error "Use of Annotation 'ObjectModel.mandatory' is not permitted (not released)" for me, so I need a different solution.
Hello Wolfgang,
have you found another solution?
Hi Hendrik,
I had a lengthy incident discussion with SAP on this.
For Steampunk @ObjectModel.mandatory is not released because steampunk is only RAP and in RAP this is supposed to be specified in the BDEF and not in the CDS (but internally all parameters are currently considered to be mandatory, but this is neither signalled in the annotation - and thus the UI - nor is it enforced). Since 2202: If you don't use strict you can currently use "field ( mandatory ) Type;" in the BDEF and it is then at least signalled in the annotation and thus in the UI (and is then enforced in a fiori elements UI). You still have to manually validate this in the BDEF implementation. However this is not yet finalized by SAP (thus it does not work with strict).
Regards,
Wolfgang
Hello Wolfgang,
thanks for the detailed answer. I did not understand in which behavior the part "field ( mandatory ) type" has to be since for the abstract entity there is no own behavior and the fields par1, par2 & par3 are not known in the behaviour where the action is defined.
BR
Hendrik
No, there can be a BDEV for an abstract entity and this is the place where this belongs
Regards,
Wolfgang
Thanks Wolfgang, this works.
For completion:
1. define abstract root entity with parameters
2. define own behavior definition for the abstract root view
3. use abstract cds in the behavior definition as parameter value for the action
Last question:
You wrote
By this you mean the validation has to be in the method which implements the action since abstract behavior definition throws an error when trying to do something like
Br
Hendrik
Yes, in the action implementation.
Mandatory is currently not validated by the RAP framework (neither with create/update nor with actions), you have to do this manually in the BDEV implementation...
Hello,
now this is strange(good?). The UI is enforcing the mandatory somehow without implementing a seperate validation. When trying to push the button with empty fields an error appears to enter a value for par1
The $metadata for the Functionimport looks like this:
in the BDEV only par1 is mandatory which implictly leads to a nullable="false" in the metadata?
Yes, the Fiori Elements UI is enfording this, since meanwhile the annotations are sent correctly (nullable is IMHO not enough, there is second thing sent somewhere).
But eg a API or a Fiori Freestyle app could ignore the annotation, thus the backend needs also to validate this.
Many thanks Ramjee. Your post is very helpful.
Maybe somebody could answer me. Is it possible to call this action with popup from back-end? I need to fill comment field before save. I'm trying to call this action from determination via EML and action is called, but popup is not showed.
ramjee korada : Thanks for useful blog, I have similar requirement to read notes and expose via API instead of displaying in Fiori app. Should i expose abstract entity via action or Function ?
Hello ramjee korada,
We have tried implementing an action by the exact same way as you have mentioned.
However, the button is coming disabled in our scenario.
Can you let us know what could be possibly missing here?
Thanks & Regards,
Udita Saklani
Hello, ramjee korada,
Great and very useful explanation!
However, I have another requirement for a custom action that I was still not able to do:
Is it possible to open a popup confirmation in a custom action?
As an example, I have a custom action called "Cancel document", which I want the user confirmation before (Yes/No).
Is this possible?
Thanks in advance,
Guilherme
Hello Guilherme,
This can be done using Fiori elements application . But I dont think possible at ABAP RAP level .
https://sapui5.hana.ondemand.com/sdk/#/topic/87130de10c8a44269c605b0322df6b1a
<Annotations Target="GWSAMPLE_BASIC.GWSAMPLE_BASIC_Entities/RegenerateAllData">
<Annotation Term="com.sap.vocabularies.Common.v1.IsActionCritical" Bool="true"/>
</Annotations>
Best wishes,
Ramjee
Hello Ramjee,
Do Value Helps not work at all with these dialogs?
The annotation @Consumption.valueHelpDefinition do nothing.
Thanks
Hi Tim,
This annotation worked in Odata V4 but not in V2.
Below is example for V4.
Hello,
I have created an OData V4 and I have an issue with the value help in the dialog screen. I used the annotation Consumption.valueHelpDefinition in metadat annotation abstract view.
When I run the app and click on the value help I get an empty screen as below:
Any idea what is wrong?
The same entity for the value help of the selection field 'Condition Contract' is working find.
Thank you for your help
Christophe
The value help you linked must be tied to a View and not "View Entity".
I had the same issue. The problem was due to using an external alias for the action. I removed the alias and it worked. I reckon there is a limitation with that generic service that provides value helps that cannot do the mapping between the internal and external action names.
Hello Ramjee,
I have tried to publish the Services Binding with the OData V4.
But I got the following error:
Can you help me further?
Or is there a way to include a value help in the ABSTRACT ENTITY even without OData V4?
thanks!
Finally I got answer for these value help dialogs in Odata V2.
In OData V2, If you need F4 help in an action Dialog, you have to expose the value help definition explicitly in Service definition along with "@Consumption.valueHelpDefinition".
Hi Ramjee,
Even after exposing the search help view in service definition, the F4 help is not working
Hi Mohan,
Are you trying from fiori app or adt preview?
In case of fiori app, you have to sync metadata in BAS or WebIDE .
Best wishes,
Ramjee Korada
Hi Ramjee,
I am trying explore the standard application like PO and SO creation using the Restful ABAP, but could not find any RAP V2 services. Could you please help me with standard examples' package or application name or is there any way to find the standard examples with RAP?
Thanks in Advance
Hi Mohan,
I think SAP has not yet migrated PO/SO apps to RAP in OnPremise. I am not sure on Cloud.
There is Business Partner application that is rebuilt using RAP in OnPremise.
Best wishes,
Ramjee Korada
Hi Ramjee,
Thanks for your immediate response. Could you please let me know in which package the business partner application is rebuilt..
Thanks
HI Ramjee,
I found this package ODATA_SD_SALESORDER for sales order, i can only find projection BDEF, could not get the actual BDEF. Please have a look into this package once. Thanks
Hi Tassilo,
Did you resolve this issue?
I am also facing the same issue.
Hello,
Very nice blog.
I have created an app with two custom actions. The buttons are active only when a record is selected. Is there a way to have the button always active independently from a record has been selected or not.
Example: I have a button 'Create'. When the user click on create, a dialog appears where the user enter a contract number. Then a new line is added with the contract number and its data. As you can see this action is NOT relevant for record selection so I expect the button to be always active.
Thank you
Christophe
Hi Christophe,
Custom Actions :
you can declare the action as "static" so that button is always active.
Create :
I think you use existing feature "Enabling Object Creation Using the Dialog in the List Report" for your case. please have a look
https://sapui5.hana.ondemand.com/sdk/#/topic/ceb9284b16f64f30865ce999dbd56064
Best wishes,
Ramjee
thank you
Hello Ramjee,
it is related to the value help on the dialog screen. I have describe my problem in an above post. Currently I test the app in ADT with the "Preview" functionality.
I want to mention that in the UI5 I get the below error:
in debugging i can see that the service variant is: com.sap.gateway.srvd.baa1.o2c_ccs_imptlev_srv.v0001.ae-
Is there any specific step to be done for the value help to work correctly?
Best regards
Christophe
Hello Christophe,
There are 2 points regarding value help in ODataV2.
Reference : Documentation
Ex: Take an example of assign/change a supplier in an item.
Field name entity : Supplier
Field name in parameter / abstract entity : ToBeSupplier.
Reference : Not found . But tested with different examples.
Best wishes,
Ramjee Korada
In manifest file, you have to delete the row that contain: "sap-value-list": "none"
manifest
Do you have an idea how to make the field which appears in pop up as a File uploader?
Hello Ramjee,
Its very helpful blog. Can we create a custom bottom which will be active without selecting the line. Just like the "Create" button, Actually my requirement is create a line item without going to object page but should appear a dialog box.
Whether this can be achieved using RAP.
Regards,
Rajesh
Hello Rajesh,
I dont prefer custom button in your case as this is available out of the box. please see below link for steps.
Enabling Object Creation Through Dialog in the List Report
Few restrictions : Draft is not supported , Maximum of 8 fields can be shown.
If above restrictions are concerns then you can create custom "Static" action so that button is always enabled without selecting any line.
Best wishes,
Ramjee Korada
Hi Ramjee,
How Can I add the dialog for input fields for standard actions like Create, Update and Delete with RAP framework?
Thanks in Advance
I think no from RAP but I am not sure.
If needed, you might to enhance UI logic to generate dialogs
Thanks Ramjee for for sharing the link.
I will try to implement. Also in your blog as is there any option where will can set the values of the pop-up fields before the pop-up appears.
I mean add comment in comment field before pop-up like PBO of Pop-up. Also do we have the option to dynamically display the fields on pop-up.
Regards,
Rajesh
Hello Ramjee,
is it possible to display a text area with multiple lines on the pop up.
I tried with the following UI annotation in the metadata extension, but this had no effect.
Thanks Florian
Hello Ramjee,
Very helpful blog. I have a question for anyone. Is it possible to display a read-only field in the RAP action popup?
I have tried a few annotations to do this like '@ObjectModel.readOnly: true' with no success.
Thank you
Hi Kendrick,
i have not tried yet but I think it’s possible by defining “behaviour definition “ for abstract entity.( see above comments on 22-apr-2022 for the process and it is about mandatory and your case is read only)
there you can mark as read only.
but the challenge is how will you fill it to show on the screen unless it is constant to default in metadata.
best wishes,
Ramjee
Hello Ramjee,
Thank you for taking a look at my comment.
It looks like this method does work for mandatory fields, but not read only.
If you can see I have added some text to the Trade currency field but the Price now has the mandatory * on it.
I will keep looking into possible solutions!
Thank you
Hi ramjee korada,
Can you please tell me, How to handle Warning or Error messages in an Unmanaged scenario?
Regards,
Himanshu Kawatra
Hello Ramjee,
Is it possible to fill the dialog box with a default value or leave it empty?
In my case (see picture) the dialog field ist filled with the value of the table, but this field should be empty. In an other case it should show an default value.
Or can I display a calculated value there? For example a calculated date.
regards
Hello Tim,
If you don't want to default the value from the record, then you can use different field name in abstract entity different than the one in actual entity.
I have tried some logic to default based on some calculation.. it did not work so far. I don't know yet if there is a solution.
There is a workaround to use extension point in fiori app by creating new fragment to default these values.
Yes, there is fiori development needed here.
Best wishes,
Ramjee Korada
ramjee korada ,
I am trying to achieve the same functionality but via OData V2. Can you kindly elaborate how do we achieve this through enriching the metadata ?
Any direction would be helpful. - Updated the behavior definition with action and pop up displayed.
Regards,
Koonal
kunal anand
As discussed, issue is resolved after "using the action in projection behavior definition"
Best wishes,
Ramjee Korada
Is there any way to get the labels in OData V2?
I'm getting entity names instead of label.
Have you used annotation "@EndUserText.label: ' ' ".
Below example. Ideally this should be fine.
Yes, I did exactly the same way.
Hi Ramjee,
I have a case which has action button to change user status of order. In this action button, their is drop down which gives list of user status.
But, currently we get all user status maintained in the system.
so, is their a way to pass value of Status Profile to the action button in such a way that we only get user status based on that profile only.
We have implemented this button via RAP like -
action ( features : instance ) Update_UserStatus parameter ZOper_User_Status;
Abstract Entity - ZOper_User_Status
@EndUserText.label: 'Structure for Operation User status'
define abstract entity ZOper_User_Status
{
@EndUserText.label: 'User Status'
User_Status : abap.char(30);
StatusProfile : j_stsma;
}
And, created this action button via Annotation on lineitem
@UI: {
lineItem: [
{ type: #FOR_ACTION, dataAction: 'Update_UserStatus', label: 'User Status
With Number', position: 70 },
] }
Regards.
Shweta
Hi all,
While updating the UI, instead of updating the particular instance, is there any way to update the complete entity? I didn't get any references on the web.
Thanks Ramjee for for sharing the link.
I have one question , I have created a separate abstract entity and created a action in BD also , but still I am not getting any pop up . I am using ODATA v2. Can you tell me what else I have to do in this ....
Hi Abhishek,
There is no special steps needed for OData v2. Please check if you exposed action in projection level Behavior definition?
Regarding value help, you can refer to my previous comments .
Best wishes,
Ramjee Korada
Thanks Ramjee for the reply ,
I have one doubt that can we show all the relevant Schedule line item data for the sales order in the popup once the user click on the Schedule lines button .
Hi Abhishek,
I have not tried it yet. As per my knowledge, Answer is NO.
The popup is for the input to the action but not result.
I think the best way to do is to Define a function in Behavior definition and consume it from fragment in Fiori extension project.
Best wishes,
Ramjee Korada
Hi Ramjee,
thank you very much for this post. We have implemented it in the way you discribed and it works well.
But now we have an additional requirement, for which we hvae not found a solution yet.
The requirement is to perform some validations before executing the action. That means, when the user presses the button we would like to check if the user has filled out everything correctly and only if the data are correct, we then show the pop up.
Our problem is mainly the time for the checks. In the action implementation the pop up has already been processed, so it is to late to trigger the checks here.
Also, we do not want to use the feature control, because we would like to give feedback, why the action is not possible.
Do you have any idea how we could do this?
Best regards and thanks in advance,
Alex
Hi Alex,
Thanks for the feedback.
I have tried with "Precheck' but this is also executed after popup.
One way is to implement with Fiori Custom code to fire
Also kindly request you raise a question so that SAP Experts can be notified and can answer this .
Best wishes,
Ramjee Korada
Hi Ramjee,
thank you for your helpful blog.
I found out, that it is possible to fill the input fields in the dialog, if you name the fields after fields in your root entity. However, those fields must be non-key fields and must not be hidden with @UI.hidden annotation.
Do you know any way to fill the input parameters, with for example the key fields?
I use this action to copy entries, so I only have to enter the new key values.
Best regards
Christof
Hi Christof,
Isn't it late or external numbering ?
Best wishes
Ramjee Korada
Hi Ramjee,
no, there is no numbering.
Best Regards
Christof
I hope you defined it as factory action?
Hello Ramjee,
I am facing a similar issue where i want custom action button to be always active and also on click of button should ask for parameters. Mine in V2 Unmanaged scenario.
i have defined button - CreateValCat in behaviour definition and also an abstract entity as below :
static action CreateValCat parameter ZValtCate;
define abstract entity ZValtCate
{
@EndUserText.label: 'Valuation Category'
VALUE_CATEGORY : acpos;
@UI.hidden : true
wteseq : numc3;
@UI.hidden : true
billmethod : zbillmeth;
}
so using
because of this blog i got to know about static and hence getting button active always. But on click this button, it does not give pop up to allow enter value for Value Category and so a blank entry gets created in the table.
Can you please let me know which step i am doing wrong.
Thanks.
Shilpi
Hi Ramjee,
Thank you for this informative blog. I was able to successfully implement the custom action button with dialog box by following your blog. However, I wanted to know if it is possible to have radio button group in the dialog box like in the image below:
Also, is it possible to have different title for the dialog box than the Custom action button name?
Hi Akhshay,
I don't think that flexibility we have in RAP annotations.
You have to implement custom Fiori Fragment.
Best wishes,
Ramjee Korada