on 2024 Dec 12 5:23 PM
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 :
And the application is not working anymore,
The generated class is like this :
|
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,
Request clarification before answering.
| User | Count |
|---|---|
| 23 | |
| 19 | |
| 15 | |
| 9 | |
| 7 | |
| 4 | |
| 3 | |
| 2 | |
| 2 | |
| 1 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.