cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

CX_RAP_HANDLER_NOT_IMPLEMENTED

saifeddine5
Newcomer
0 Kudos
1,127

 

Dear SAP

Iam trying to create a rap application, using a behaviour class in order to assign global authorisation methode and use the DRAFT feature, 

I created this consumption view : 

 

@AccessControl.authorizationCheck: #NOT_REQUIRED

@EndUserText.label: 'Root view for table Z _CUST_SO'

@Metadata.allowExtensions: true

@search.searchable: true


define root view entity ZI_CUST_SO_RAP_DRIVER

  //as projection  on  ZE_CUST_SO

  as select from z _cust_so



 // association [1..1] to ZI_ _EDI_BUT0ID_VH           as _soldeTo     on  $projection.CustGln = _soldeTo.idnumber

//  association [1..1] to ZI_ _EDI_BUT0ID_VH           as _KNVP        on  $projection.CustPlant = _KNVP.idnumber

 //                                                                      and $projection.Vkorg     = _KNVP.Vkorg


{

      @search.defaultSearchElement: true

  key z _cust_so.cust_gln                              as CustGln,

      @search.defaultSearchElement: true

  key z _cust_so.cust_plant                            as CustPlant,

      @search.defaultSearchElement: true

  key z _cust_so.cust_mat35                            as CustMat35,

      @search.defaultSearchElement: true

      z _cust_so.vkorg                                 as Vkorg,

      @search.defaultSearchElement: true

      z _cust_so.matnr                                 as Matnr,

      z _cust_so.so_type1                              as SoType1,

      z _cust_so.so_ovun                               as SoOvun,

      @EndUserText.label: 'SO QTY Thresh. / UOM'

      cast(  z _cust_so.so_qty  as abap.dec( 13, 3 ) ) as SoQty,

      z _cust_so.so_wun                                as SoWun,

      z _cust_so.so_type2                              as SoType2,

      z _cust_so.so_sun_in                             as SoSunIn,

      z _cust_so.so_sun_out                            as SoSunOut,

      z _cust_so.so_unit_edi                           as SoUnitEdi,

      z _cust_so.so_unit_sap                           as SoUnitSap,

      @Semantics.systemDateTime.lastChangedAt: true

      z _cust_so.last_changed_at                       as LastChangedAt,

      @Semantics.systemDateTime.localInstanceLastChangedAt: true

      z _cust_so.local_last_changed_at                 as LocalLastChangedAt



}

 

And metadadata extension : 

@Metadata.layer: #CORE

@EndUserText.label: 'DRIVER'

@ui:{

headerInfo: { typeName: 'Customer’s Sales Order (EDI 850)',

              typeNamePlural: 'Customer’s Sales Order - EDI 850',

              title: { type: #STANDARD, label: 'Customer’s Sales Order (EDI 850) Details', value:'EdiID'  } } }



annotate entity ZI_CUST_SO_RAP_DRIVER with

{

  @ui.facet: [

     { label: 'General Information',

      id: 'GeneralInfo',

      type: #COLLECTION,

      position: 10

    },

    {

      id: 'BPKeyInfo',

      purpose: #STANDARD,

      type: #FIELDGROUP_REFERENCE,

      parentId: 'GeneralInfo',

      label: 'Business Partners Key information',

      position: 10,

      targetQualifier: 'BPKeyInfo'

    },

    {

      id: 'SalesData',

      purpose: #STANDARD,

      type: #FIELDGROUP_REFERENCE,

      parentId: 'GeneralInfo',

      label: 'Sales Data',

      position: 20,

      targetQualifier: 'SalesData'

    },

    {

      id: 'ShipTypDeter',

      purpose: #STANDARD,

      type: #FIELDGROUP_REFERENCE,

      parentId: 'GeneralInfo',

      label: 'Shipping Type Determination',

      position: 30,

      targetQualifier: 'ShipTypDeter'

    },

    {

      id: 'EDIUOMMAP',

      purpose: #STANDARD,

      type: #FIELDGROUP_REFERENCE,

      parentId: 'GeneralInfo',

      label: 'EDI UoM Mapping',

      position: 50,

      targetQualifier: 'EDIUOMMAP'

    },

    {

      id: 'QuanConv',

      purpose: #STANDARD,

      type: #FIELDGROUP_REFERENCE,

      parentId: 'GeneralInfo',

      label: 'Quantity conversions (Slurry)',

      position: 40,

      targetQualifier: 'QuanConv'

    }


  ]



  // Business Partners Key information


  @ui: { lineItem: [{ position: 10 }], identification: [{ position: 10 }], selectionField: [{ position: 10 }] }

  @ui.fieldGroup: [{ qualifier: 'BPKeyInfo', position: 10 }]

  CustGln;


// sold to 

  @ui: { lineItem: [{ position: 20 }], identification: [{ position: 20 }], selectionField: [{ position: 20 }] }

  @ui.fieldGroup: [{ qualifier: 'BPKeyInfo', position: 30 }]

  CustPlant;




  // Sales Data


  @ui: { lineItem: [{ position: 30 }], identification: [{ position: 30 }], selectionField: [{ position:30 }] }

  @ui.fieldGroup: [{ qualifier: 'SalesData', position: 10 }]

  CustMat35;


  @ui: {  lineItem:       [ { position: 40 } ],  identification: [ { position: 40 } ] , selectionField: [{ position:01 }] }

  @Consumption.valueHelpDefinition: [{ entity: {name: 'ZI_ _EDI_VKORG_VH' , element: 'VKORG' }, distinctValues: true}]

  @search.ranking: #HIGH

  @ui.fieldGroup: [{ qualifier: 'SalesData', position: 15 }]

  //@Consumption.filter.mandatory: true

  Vkorg;



  @ui: {  lineItem:       [ { position: 50 } ],  identification: [ { position: 50 } ], selectionField: [{ position:40 }]  }

  @Consumption.valueHelpDefinition: [{entity: {name: 'ZI_ _EDI_MATNR_VH', element: 'MATNR'}}]

  @ui.fieldGroup: [{ qualifier: 'SalesData', position: 25 }]

  Matnr;




  // SHIPPING TYPE DETERMINATION


  @ui: {  lineItem:       [ { position: 60 } ],  identification: [ { position: 60 } ] }

  @Consumption.valueHelpDefinition: [{ entity: {name: 'ZI_Mode_TransportbyShipping_VH' , element: 'VSART' }, distinctValues: false}]

  @ui.fieldGroup: [{ qualifier: 'ShipTypDeter', position: 10 }]

  SoType1;



  @ui: {  lineItem:       [ { position: 90 } ],  identification: [ { position: 90 } ] }

  @Consumption.valueHelpDefinition: [{ entity: {name: 'ZI_Mode_TransportbyShipping_VH' , element: 'VSART' }, distinctValues: false}]

  @ui.fieldGroup: [{ qualifier: 'ShipTypDeter', position: 30 }]

  SoType2;



  @ui: {  lineItem:       [ { position: 85 } ],  identification: [ { position: 85 } ] }

  @ui.fieldGroup: [{ qualifier: 'ShipTypDeter', position: 50 }]

  SoQty;


  @ui: {  lineItem:       [ { position: 70 } ],  identification: [ { position: 70 } ] }

  @ui.fieldGroup: [{ qualifier: 'ShipTypDeter', position: 60 }]

  SoOvun;


  @ui: {  lineItem:       [ { position: 80 } ],  identification: [ { position: 80 } ] }

  @ui.fieldGroup: [{ qualifier: 'ShipTypDeter', position: 70 }]

  SoWun;


  // Quan Conver


  @ui: {  lineItem:       [ { position: 100 } ],  identification: [ { position: 100 } ] }

  @ui.fieldGroup: [{ qualifier: 'QuanConv', position: 10 }]

  SoSunIn;


  @ui: {  lineItem:       [ { position: 110 } ],  identification: [ { position: 110 } ] }

  @ui.fieldGroup: [{ qualifier: 'QuanConv', position: 20 }]

  SoSunOut;


  // EDI UOM Mapping


  @ui: {  lineItem:       [ { position: 120 } ],  identification: [ { position: 120 } ] }

  @ui.fieldGroup: [{ qualifier: 'EDIUOMMAP', position: 10 }]

  SoUnitEdi;

  @ui: {  lineItem:       [ { position: 130 } ],  identification: [ { position: 130 } ] }

  @ui.fieldGroup: [{ qualifier: 'EDIUOMMAP', position: 20 }]

  SoUnitSap;


}

 

And a behaviour 

managed;

//with draft;


define behavior for ZI_CUST_SO_RAP_DRIVER alias EDITable

implementation in class zcl_EDITableBehav unique

persistent table z _cust_so

//draft table zdr_ _cust_so



//authorization master (global)



lock master// total etag LastChangedAt

etag master LocalLastChangedAt



{

  create  ;

  update;

  delete ;

//:(precheck)




  mapping for Z _CUST_SO

  {

    CustGln = cust_gln;

    CustPlant = cust_plant;

    CustMat35 = cust_mat35;

    Matnr = matnr;

    SoOvun = so_ovun;

    SoSunIn = so_sun_in;

    SoSunOut = so_sun_out;

    SoType1 = so_type1;

    SoType2 = so_type2;

    Vkorg = vkorg;

    SoWun = so_wun;

    SoQty = so_qty;

    SoUnitEdi = so_unit_edi;

    SoUnitSap = so_unit_sap;

    LastChangedAt = last_changed_at;

    LocalLastChangedAt = local_last_changed_at;


  }


}

 

Once I want to create a global authorisation and a draft tha application DUMP and this is the dump below : 

saifeddine5_0-1734024067498.png

 

 

And the application is not working anymore, 

 

The generated class is like this : 

saifeddine5_1-1734024067494.png

 

 

 

Instead of this example :

CLASS lhc_UXTeam DEFINITION INHERITING FROM cl_abap_behavior_handler.


  PRIVATE SECTION.


ENDCLASS.


CLASS lhc_UXTeam IMPLEMENTATION.

 

As you can see it’s a generated class, so the INHERITING FROM cl_abap_behavior_handler part is missing in our system, I don’t know if this right or wrong behaviour on our system but this was my conclusion. 

 

Could you help us with this ? 

 

Yours, 



Accepted Solutions (0)

Answers (0)

Ask a Question