Skip to content

Instantly share code, notes, and snippets.

@IhwanID
Last active October 5, 2025 08:58
Show Gist options
  • Save IhwanID/9c293c4edfb93be13572c8215c1f9919 to your computer and use it in GitHub Desktop.
Save IhwanID/9c293c4edfb93be13572c8215c1f9919 to your computer and use it in GitHub Desktop.
Sales Order Data Model
@AbapCatalog.viewEnhancementCategory: [#NONE]
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'Sales Order Data Model'
@Metadata.ignorePropagatedAnnotations: true
@Metadata.allowExtensions: true
@ObjectModel.usageType:{
serviceQuality: #X,
sizeCategory: #S,
dataClass: #MIXED
}
@OData.publish : true
define view entity ZC01_SalesOrder_Ihwan as select from Z101_SalesOrder_Ihwan
association [1..1] to I_SalesDocumentPartner as _customer on $projection.SalesOrderNo = _customer.SalesDocument and _customer.PartnerFunction = 'AG'
{
key SalesOrderNo,
@ObjectModel.text.element: ['SalesOrganizationDesc']
SalesOrganization,
@Semantics.text: true
_salesOrg._Text[ 1: Language = $session.system_language].SalesOrganizationName as SalesOrganizationDesc,
@ObjectModel.text.element: ['DistributionChannelDesc']
DistributionChannel,
@Semantics.text: true
_distChannel._Text[ 1: Language = $session.system_language].DistributionChannelName as DistributionChannelDesc,
@ObjectModel.text.element: ['DivisionDesc']
Division,
@Semantics.text: true
_division._Text[ 1: Language = $session.system_language].Division as DivisionDesc,
SalesOrderDate,
SalesOrderCreateDate,
SalesOrderCreator,
@Semantics.amount.currencyCode: 'Currency'
NetPrice,
Currency,
/*Association*/
_customer
}
@Metadata.layer: #CUSTOMER
@UI.headerInfo: {
typeName: 'SalesOrder',
typeNamePlural: 'SalesOrders',
title: { type: #STANDARD, label: 'Sales Order List App', value: 'SalesOrderNo' }
}
annotate entity ZC01_SalesOrder_Ihwan with
{
@UI: {
lineItem: [ { position: 10, importance: #HIGH } ],
selectionField: [ { position: 10 } ]
}
@Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.9 }
SalesOrderNo;
@UI: {
lineItem: [ { position: 10, importance: #HIGH } ],
textArrangement: #TEXT_LAST,
selectionField: [ { position: 20 } ]
}
@Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.9 }
SalesOrganization;
@UI: {
lineItem: [ { position: 10, importance: #HIGH } ],
textArrangement: #TEXT_ONLY,
selectionField: [ { position: 30 } ]
}
@Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.9 }
@EndUserText.label: 'Business Line'
@EndUserText.quickInfo: 'Business Line'
DistributionChannel;
@UI.lineItem: [{ position: 40 }]
Division;
@UI.lineItem: [{ position: 50 }]
NetPrice;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment