Skip to Content

OData Annotation - SmartTable Line Item

Hi Experts,

I have a requirement to extend one of the standard Fiori Applications without creating a new SEGW or UI projects. I have to add a custom field as a new column to the existing Line Item SmartTable .

I have added and made that field/column as default one as well using annotation and it is showing on the SmartTable. Even though I could see the value in the EntitySet payload, this field value is not displaying on my new column. Requesting your valuable suggestions.

Thanks in Advance,

Glady

Add comment
10|10000 characters needed characters exceeded

  • Below is the code that I used to extend the model:

    DATA: lo_entity      TYPE REF TO /iwbep/if_mgw_odata_entity_typ.
    
    
    lo_entity = me->core_object->model->get_entity_type( 'Item' ).
    lo_entity->create_property( iv_property_name ='Custome Field' iv_abap_fieldname = 'ZZCUSTOM' ).
    
    DATA(lo_header_anno) = cl_fis_uibb_annotation=>create_line_item_annotation(
    
                io_odata_model     = me->core_object->model
    
                io_vocan_model     = me->core_object->vocab_anno_model
    
                iv_namespace       = 'FAC_FINANCIAL_DOCUMENT_SRV_01'
    
                iv_entity_type     = 'Item' ).
    
        lo_header_anno->add_line_item_record( EXPORTING iv_value_property  = 'CustomField'
    
                                                        iv_label_property  = 'Custom Field
    
                                                        iv_importance      = 'High' ).
  • Former Member

    Hi Glady,

    could you share some screenshots or codes? It helps for investigating the problem.

    Cheers

    Cuong

  • Get RSS Feed

1 Answer

  • avatar image
    Former Member
    Nov 13, 2017 at 01:20 PM

    Hi Glady,

    have you checked if the metadata of your service is already up-to-date and contains new line item?
    You will find a node in the metadata looks something like below, this node will contains the new field you added.

    <Annotations xmlns="http://docsoasis-open.org/odata/ns/edm Target="YourEntity">
      <Annotation Term="com.sap.vocabularies.UI.v1.LineItem">
    ....
      </Annotation>
    </Annotations>

    If the new field is not there, maybe you have to clean the cache. Some useful transactions and reports for clearing caches:

    Clear metadata cache
    Transaction /IWFND/CACHE_CLEANUP
    Transaction /IWBEP/CACHE_CLEANUP

    UI2 Cache:
    Report /UI2/INVALIDATE_GLOBAL_CACHES
    Report /UI2/INVALIDATE_CLIENT_CACHES

    Cheers
    Cuong

    Add comment
    10|10000 characters needed characters exceeded