Sadl_V_Exp_SO_UI

DDL: SADL_V_EXP_SO_UI SQL: SADL_V_E_SOUI Type: view BASIC

CDS View Testing UI Annotations

Sadl_V_Exp_SO_UI is a Basic CDS View that provides data about "CDS View Testing UI Annotations" in SAP S/4HANA. It reads from 1 data source (snwd_so) and exposes 14 fields with key field SalesOrder.

Data Sources (1)

SourceAliasJoin Type
snwd_so snwd_so from

Annotations (14)

NameValueLevelField
AbapCatalog.sqlViewName SADL_V_E_SOUI view
AbapCatalog.compiler.compareFilter true view
AccessControl.authorizationCheck #CHECK view
EndUserText.label CDS View Testing UI Annotations view
Search.searchable true view
ObjectModel.compositionRoot true view
ObjectModel.transactionalProcessingEnabled true view
ObjectModel.writeActivePersistence SADL_V_E_SOUI view
VDM.viewType #BASIC view
UI.selectionVariant.text Selection Variant 1 view
UI.selectionVariant.filter CurrencyCode = "EUR" AND NetAmount between "100.50" AND "5000.50" and DeliveryStatus = "D" and LastChangedDateTime > "20160101000000.0000000" view
UI.textArrangement #TEXT_ONLY view
OData.publish true view
OData.entitySet.name ExpSalesOrder view

Fields (14)

KeyFieldSource TableSource FieldDescription
KEY SalesOrder snwd_so so_id
CurrencyCode snwd_so currency_code
CurrencyText
GrossAmount snwd_so gross_amount Customer Name
NetAmount snwd_so net_amount
TaxAmount snwd_so tax_amount
LifecycleStatus snwd_so lifecycle_status
BillingStatus snwd_so billing_status
DeliveryStatus snwd_so delivery_status
OpportunityID snwd_so op_id
CreationDateTime snwd_so created_at
LastChangedDateTime snwd_so changed_at
dummy snwd_so dummy
bp_guid snwd_so buyer_guid
@AbapCatalog.sqlViewName: 'SADL_V_E_SOUI'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'CDS View Testing UI Annotations'

@Search.searchable: true
@ObjectModel:{
  compositionRoot: true,
  transactionalProcessingEnabled: true,
  writeActivePersistence: 'SADL_V_E_SOUI'
}

@ObjectModel.semanticKey: ['SalesOrder']
@VDM.viewType: #BASIC

@ObjectModel.createEnabled
@ObjectModel.deleteEnabled
@ObjectModel.updateEnabled

@UI.headerInfo:{
  typeName:       'Sales Order',
  typeNamePlural: 'Sales Orders',
  typeImageUrl:   'ImageUrl',
  title:          { type: #STANDARD, value: 'SalesOrder' },
  description:    { type: #WITH_URL, value: 'OpportunityID', url: 'https://sap.com/bilder/bildchen.img' }

}

@UI.chart:[
{ qualifier: 'donutqualifier',
  chartType:#DONUT,
  title: 'Top Sales Orders',
  dimensions: ['SalesOrder'],
  dimensionAttributes:[
    {dimension: 'SalesOrder', role: #CATEGORY}
  ],
  measures:['GrossAmount'],
  measureAttributes:[
    {measure: 'GrossAmount', role: #AXIS_1, asDataPoint: true}
  ],
  actions:[
    {dataAction: 'MPC_EXT:Do_something', label: 'Do something', invocationGrouping:#CHANGE_SET, type:#FOR_ACTION }
  ]
},
{ chartType:#LINE,
//  qualifier: 'linequalifier',

  title: 'Top Sales Orders',
  dimensions: ['SalesOrder'],
  dimensionAttributes:[
    {dimension: 'SalesOrder', role: #SERIES}
  ],
  measures:['TaxAmount', 'NetAmount', 'GrossAmount'],
  measureAttributes:[
    {measure: 'TaxAmount', role: #AXIS_1, asDataPoint},
    {measure: 'NetAmount', role: #AXIS_2},
    {measure: 'GrossAmount', role: #AXIS_3}
  ],
  actions:[
    {type:#FOR_ACTION, dataAction: 'BOPF:Do_something', label: 'Do something',  invocationGrouping:#CHANGE_SET}
//    ,{ label: 'Knoedel' }

  ]
},
{ qualifier: 'bubblequalifier',
  chartType:#BUBBLE,
  title: 'Top Sales Orders',
  dimensions: ['SalesOrder' ],
  dimensionAttributes:[
    {dimension: 'SalesOrder', role: #CATEGORY}
  ],
  measures:['TaxAmount', 'NetAmount', 'GrossAmount'],
  measureAttributes:[
    {measure: 'TaxAmount', role: #AXIS_1},
    {measure: 'NetAmount', role: #AXIS_2, asDataPoint},
    {measure: 'GrossAmount', role: #AXIS_3}
  ],
  actions:[
    {type:#FOR_ACTION, dataAction: 'BOPF:Do_something', label: 'Do something', invocationGrouping:#CHANGE_SET}
  ]
}
]

@UI.selectionVariant:{
  text: 'Selection Variant 1',
  filter: 'CurrencyCode   = "EUR" AND
           NetAmount      between "100.50" AND "5000.50" and
           DeliveryStatus = "D" and
           LastChangedDateTime  > "20160101000000.0000000"'
}

@UI.textArrangement: #TEXT_ONLY

@OData: { 
  publish : true, 
  entitySet.name : 'ExpSalesOrder'
}

define view Sadl_V_Exp_SO_UI
  as select from snwd_so
{
      @UI.lineItem: { position: 10, label: 'Sales Order' }
      @Search.ranking: #HIGH
  key snwd_so.so_id               as SalesOrder,

      @UI.selectionField:{position: 10}
      @UI.textArrangement: #TEXT_ONLY
      @ObjectModel.text.element:  'CurrencyText'
      @Semantics.currencyCode: true
      snwd_so.currency_code     as CurrencyCode,
            
      'CurrText' as CurrencyText,

      @Semantics.amount.currencyCode: 'CurrencyCode'
      @ObjectModel.mandatory
      @EndUserText.label: 'Customer Name'
      //    @UI.identification: [{position:10, importance:#HIGH, type: #STANDARD},

      //                         {position:20, importance:#HIGH, type: #FOR_INTENT_BASED_NAVIGATION}

      //                        ]

      @UI.lineItem: { position: 20, label: 'Gross Amount' }
      @UI.dataPoint: { title: 'GrossAmount', 
                       description: 'The gross amount', 
                       longDescription: 'The gross amount of the sales order',
                       valueFormat:{scaleFactor:1000,numberOfFractionalDigits:0},
                       referencePeriod:{description: 'Reference period'}
                      }
//      @DefaultAggregation: #SUM

      snwd_so.gross_amount        as GrossAmount,

      @UI.lineItem: { position: 30, label: 'Net Amount' }
      @Semantics.amount.currencyCode: 'CurrencyCode'
      @UI.dataPoint: { title: 'NetAmount', valueFormat:{scaleFactor:1000,numberOfFractionalDigits:1} }
      @UI.selectionField:{position: 20}
//      @DefaultAggregation: #SUM

      snwd_so.net_amount          as NetAmount,

      @UI.lineItem: { position: 40, label: 'Tax Amount' }
      @Semantics.amount.currencyCode: 'CurrencyCode'
      @UI.dataPoint: { valueFormat:{scaleFactor:1000,numberOfFractionalDigits:1} }
//      @DefaultAggregation: #SUM

      snwd_so.tax_amount          as TaxAmount,

      @UI.lineItem: { position: 50, label: 'Life Cycle Status' }
      
      //    @ObjectModel.foreignKey.association: '_LifecycleStatus'

      snwd_so.lifecycle_status    as LifecycleStatus,

      //    @ObjectModel.foreignKey.association: '_BillingStatus'

      snwd_so.billing_status      as BillingStatus,

      //    @ObjectModel.foreignKey.association: '_DeliveryStatus'

      @UI.selectionField:{position: 30}
//      @Consumption.filter.defaultValue: 'D'

//      @Consumption.filter.defaultValueHigh: 'F'

      
      @Consumption.filter: { selectionType: #INTERVAL, defaultValue: 'D', defaultValueHigh: 'F' }
      snwd_so.delivery_status     as DeliveryStatus,

      @Search.defaultSearchElement: true
      @Search.fuzzinessThreshold: 0.8
      @ObjectModel.readOnly:  true
      @ObjectModel.mandatory: false
      snwd_so.op_id               as OpportunityID,

      @ObjectModel.readOnly: true
      snwd_so.created_at          as CreationDateTime,

      @ObjectModel.readOnly: true
      @UI.selectionField:{position: 40}
//      @Consumption.filter.defaultValue: '20160101000000.0000000'

//      @Consumption.filter.defaultValueHigh: '20170101000000.0000000'

      @Consumption.filter: { selectionType: #INTERVAL, defaultValue: '20160101000000.0000000', defaultValueHigh: '20170101000000.0000000' }
      snwd_so.changed_at          as LastChangedDateTime,
      
      @Consumption.filter.hidden: true
      @UI.masked
      snwd_so.dummy,
      
      snwd_so.buyer_guid as bp_guid
      

}                                
  
  
 /*+[internal] {
"BASEINFO":
{
"FROM":
[
"SNWD_SO"
],
"ASSOCIATED":
[],
"BASE":
[],
"VERSION":0
}
}*/