@ClientHandling.algorithm: #SESSION_VARIABLE
@EndUserText.label: 'Returns Order'
@VDM: {
viewType: #BASIC,
lifecycle.contract.type: #PUBLIC_LOCAL_API
}
@AccessControl: {
authorizationCheck: #CHECK,
personalData.blocking: #('TRANSACTIONAL_DATA'),
privilegedAssociations: [ '_CreatedByUser', '_LastChangedByUser' ]
}
@AbapCatalog: {
sqlViewName: 'ISDCUSTRETURN',
preserveKey: true,
compiler.compareFilter: true
}
@ObjectModel: {
compositionRoot: true,
representativeKey: 'CustomerReturn',
modelingPattern: #ANALYTICAL_DIMENSION,
supportedCapabilities: [#ANALYTICAL_DIMENSION,
#CDS_MODELING_ASSOCIATION_TARGET,
#CDS_MODELING_DATA_SOURCE,
#SQL_DATA_SOURCE,
#EXTRACTION_DATA_SOURCE],
usageType: {
dataClass: #TRANSACTIONAL,
serviceQuality: #B,
sizeCategory: #L
}
}
@Analytics.dataCategory: #DIMENSION
@Metadata.ignorePropagatedAnnotations: true
@Metadata.allowExtensions: true
@ObjectModel.sapObjectNodeType.name: 'CustomerReturn'
@Analytics: {
dataExtraction: {
enabled: true,
delta.changeDataCapture: {
mapping:[
{
table: 'vbak', role: #MAIN,
viewElement: ['CustomerReturn'],
tableElement: ['vbeln'] },
{ filter: [{operator: #EQ, tableElement: 'posnr', value: '000000'}],
table: 'vbkd', role: #LEFT_OUTER_TO_ONE_JOIN,
viewElement: ['CustomerReturn'],
tableElement: ['vbeln']
},
{ filter: [{operator: #EQ, tableElement: 'vposn', value: '000000'}],
table: 'veda', role: #LEFT_OUTER_TO_ONE_JOIN,
viewElement: ['CustomerReturn'],
tableElement: ['vbeln']
}
]
}
}
}
define view I_CustomerReturn
as select from I_SalesDocument as SalesDocument
//Associations
association [0..*] to I_CustomerReturnItem as _Item on $projection.CustomerReturn = _Item.CustomerReturn
association [0..1] to I_RetsMgmtProcess as _RetsMgmtProcess on $projection.RetsMgmtProcess = _RetsMgmtProcess.RetsMgmtProcess
association [0..1] to I_CustomerReturnApprovalReason as _CustRetApprovalReason on $projection.CustomerReturnApprovalReason = _CustRetApprovalReason.CustomerReturnApprovalReason
//Extensibility
association [0..1] to E_SalesDocumentBasic as _Extension on SalesDocument.SalesDocument = _Extension.SalesDocument
{
//Key
key cast(SalesDocument as vdm_customer_return preserving type) as CustomerReturn,
//Category
@ObjectModel.foreignKey.association: '_CustomerReturnType'
cast(SalesDocumentType as vdm_customer_return_type preserving type) as CustomerReturnType,
//Admin
CreatedByUser,
LastChangedByUser,
@Semantics.systemDate.createdAt: true
CreationDate,
CreationTime,
@Semantics.systemDate.lastChangedAt: true
LastChangeDate,
@Semantics.systemDateTime.lastChangedAt: true
LastChangeDateTime,
SenderBusinessSystemName,
//Org
@ObjectModel.foreignKey.association: '_SalesOrganization'
SalesOrganization,
@ObjectModel.foreignKey.association: '_DistributionChannel'
DistributionChannel,
@ObjectModel.foreignKey.association: '_OrganizationDivision'
OrganizationDivision,
@ObjectModel.foreignKey.association: '_SalesGroup'
SalesGroup,
@ObjectModel.foreignKey.association: '_SalesOffice'
SalesOffice,
//Sales
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_Customer_VH',
element: 'Customer' }
}]
@ObjectModel.foreignKey.association: '_SoldToParty'
SoldToParty,
@ObjectModel.foreignKey.association: '_CustomerGroup'
CustomerGroup,
@ObjectModel.foreignKey.association: '_AdditionalCustomerGroup1'
AdditionalCustomerGroup1,
@ObjectModel.foreignKey.association: '_AdditionalCustomerGroup2'
AdditionalCustomerGroup2,
@ObjectModel.foreignKey.association: '_AdditionalCustomerGroup3'
AdditionalCustomerGroup3,
@ObjectModel.foreignKey.association: '_AdditionalCustomerGroup4'
AdditionalCustomerGroup4,
@ObjectModel.foreignKey.association: '_AdditionalCustomerGroup5'
AdditionalCustomerGroup5,
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_CreditControlAreaStdVH',
element: 'CreditControlArea' }
}]
@ObjectModel.foreignKey.association: '_CreditControlArea'
CreditControlArea,
SalesDocumentDate as CustomerReturnDate,
ServicesRenderedDate,
@ObjectModel.foreignKey.association: '_SDDocumentReason'
SDDocumentReason,
PurchaseOrderByCustomer,
CustomerPurchaseOrderType,
CustomerPurchaseOrderDate,
CustomerPurchaseOrderSuplmnt,
@ObjectModel.foreignKey.association: '_SalesDistrict'
SalesDistrict,
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_RetsMgmtProcessStdVH',
element: 'RetsMgmtProcess' }
}]
@ObjectModel.foreignKey.association: '_RetsMgmtProcess'
RetsMgmtProcess,
//Pricing
@DefaultAggregation: #SUM
@Semantics.amount.currencyCode: 'TransactionCurrency'
TotalNetAmount,
@Semantics.currencyCode: true
@ObjectModel.foreignKey.association: '_TransactionCurrency'
TransactionCurrency,
PricingDate,
PriceDetnExchangeRate,
SDPricingProcedure,
SalesDocumentCondition as CustomerReturnCondition,
//Shipping
RequestedDeliveryDate,
@ObjectModel.foreignKey.association: '_IncotermsClassification'
IncotermsClassification,
IncotermsTransferLocation,
IncotermsLocation1,
IncotermsLocation2,
@ObjectModel.foreignKey.association: '_IncotermsVersion'
IncotermsVersion,
@ObjectModel.foreignKey.association: '_DeliveryBlockReason'
DeliveryBlockReason,
@Analytics.internalName: #LOCAL
@ObjectModel.foreignKey.association: '_ShippingType'
ShippingType,
@Analytics.internalName: #LOCAL
@ObjectModel.foreignKey.association: '_ShippingCondition'
ShippingCondition,
//Approval Management
@Analytics.internalName: #LOCAL
@ObjectModel.foreignKey.association: '_CustRetApprovalReason'
SalesDocApprovalReason as CustomerReturnApprovalReason,
//Billing
BillingDocumentDate,
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_CompanyCodeStdVH',
element: 'CompanyCode' }
}]
@ObjectModel.foreignKey.association: '_BillingCompanyCode'
BillingCompanyCode,
@ObjectModel.foreignKey.association: '_HeaderBillingBlockReason'
HeaderBillingBlockReason,
//Payment
@ObjectModel.foreignKey.association: '_CustomerPaymentTerms'
CustomerPaymentTerms,
PaymentMethod,
//Tax Classfication
CustomerTaxClassification1,
CustomerTaxClassification2,
CustomerTaxClassification3,
CustomerTaxClassification4,
CustomerTaxClassification5,
CustomerTaxClassification6,
CustomerTaxClassification7,
CustomerTaxClassification8,
CustomerTaxClassification9,
//Accounting
FiscalYear,
FiscalPeriod,
ExchangeRateDate,
@ObjectModel.foreignKey.association: '_ExchangeRateType'
ExchangeRateType,
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_BusinessAreaStdVH',
element: 'BusinessArea' }
}]
@ObjectModel.foreignKey.association: '_BusinessArea'
BusinessArea,
@ObjectModel.foreignKey.association: '_CustomerAccountAssgmtGroup'
CustomerAccountAssignmentGroup,
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_BusinessAreaStdVH',
element: 'BusinessArea' }
}]
@ObjectModel.foreignKey.association: '_CostCenterBusinessArea'
CostCenterBusinessArea,
CostCenter,
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_ControllingAreaStdVH',
element: 'ControllingArea' }
}]
@ObjectModel.foreignKey.association: '_ControllingArea'
ControllingArea,
OrderID,
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_ControllingObjectStdVH',
element: 'ControllingObject' }
}]
@ObjectModel.foreignKey.association: '_ControllingObject'
ControllingObject,
//Reference
ReferenceSDDocument,
@ObjectModel.foreignKey.association: '_ReferenceSDDocumentCategory'
ReferenceSDDocumentCategory,
@Analytics.internalName: #LOCAL
AccountingDocExternalReference,
AssignmentReference,
//Status
@ObjectModel.foreignKey.association: '_OverallSDProcessStatus'
OverallSDProcessStatus,
@ObjectModel.foreignKey.association: '_OverallSDDocumentRejectionSts'
OverallSDDocumentRejectionSts,
@ObjectModel.foreignKey.association: '_TotalBlockStatus'
TotalBlockStatus,
@ObjectModel.foreignKey.association: '_OverallTotalDeliveryStatus'
OverallTotalDeliveryStatus,
@ObjectModel.foreignKey.association: '_OverallDeliveryStatus'
OverallDeliveryStatus,
@ObjectModel.foreignKey.association: '_OverallDeliveryBlockStatus'
OverallDeliveryBlockStatus,
@ObjectModel.foreignKey.association: '_OverallOrdReltdBillgStatus'
OverallOrdReltdBillgStatus,
@ObjectModel.foreignKey.association: '_OverallBillingBlockStatus'
OverallBillingBlockStatus,
@ObjectModel.foreignKey.association: '_OverallTotalSDDocRefStatus'
OverallTotalSDDocRefStatus,
@ObjectModel.foreignKey.association: '_OverallSDDocReferenceStatus'
OverallSDDocReferenceStatus,
@ObjectModel.foreignKey.association: '_TotalCreditCheckStatus'
TotalCreditCheckStatus,
@ObjectModel.foreignKey.association: '_MaxDocValueCreditCheckStatus'
MaxDocValueCreditCheckStatus,
@ObjectModel.foreignKey.association: '_PaymentTermCreditCheckStatus'
PaymentTermCreditCheckStatus,
@ObjectModel.foreignKey.association: '_FinDocCreditCheckStatus'
FinDocCreditCheckStatus,
@ObjectModel.foreignKey.association: '_ExprtInsurCreditCheckStatus'
ExprtInsurCreditCheckStatus,
@ObjectModel.foreignKey.association: '_PaytAuthsnCreditCheckSts'
PaytAuthsnCreditCheckSts,
@ObjectModel.foreignKey.association: '_CentralCreditCheckStatus'
CentralCreditCheckStatus,
@ObjectModel.foreignKey.association: '_CentralCreditChkTechErrSts'
CentralCreditChkTechErrSts,
@ObjectModel.foreignKey.association: '_HdrGeneralIncompletionStatus'
HdrGeneralIncompletionStatus,
@ObjectModel.foreignKey.association: '_OverallPricingIncompletionSts'
OverallPricingIncompletionSts,
@ObjectModel.foreignKey.association: '_HeaderDelivIncompletionStatus'
HeaderDelivIncompletionStatus,
@ObjectModel.foreignKey.association: '_HeaderBillgIncompletionStatus'
HeaderBillgIncompletionStatus,
@ObjectModel.foreignKey.association: '_OvrlItmGeneralIncompletionSts'
OvrlItmGeneralIncompletionSts,
@ObjectModel.foreignKey.association: '_OvrlItmBillingIncompletionSts'
OvrlItmBillingIncompletionSts,
@ObjectModel.foreignKey.association: '_OvrlItmDelivIncompletionSts'
OvrlItmDelivIncompletionSts,
@Analytics.internalName: #LOCAL
@ObjectModel.foreignKey.association: '_SalesDocApprovalStatus'
SalesDocApprovalStatus,
@ObjectModel.association.type: [#TO_COMPOSITION_CHILD]
_Item,
_Partner,
_StandardPartner,
_SalesDocumentType as _CustomerReturnType,
_CreatedByUser,
_LastChangedByUser,
_SalesOrganization,
_DistributionChannel,
_OrganizationDivision,
_SalesGroup,
_SalesOffice,
_SoldToParty,
_CustomerGroup,
_AdditionalCustomerGroup1,
_AdditionalCustomerGroup2,
_AdditionalCustomerGroup3,
_AdditionalCustomerGroup4,
_AdditionalCustomerGroup5,
_CreditControlArea,
_SDDocumentReason,
_SDPricingProcedure,
_ShippingType,
_ShippingCondition,
//Todo: _CustomerPurchaseOrderType,
_SalesDistrict,
_RetsMgmtProcess,
_TransactionCurrency,
//Todo:CustomerReturnCondition,
_IncotermsClassification,
_IncotermsVersion,
_DeliveryBlockReason,
_CustRetApprovalReason,
_BillingCompanyCode,
_HeaderBillingBlockReason,
_CustomerPaymentTerms,
//Todo: _PaymentMethod,
_ExchangeRateType,
_BusinessArea,
_CustomerAccountAssgmtGroup,
_CostCenterBusinessArea,
_CostCenter,
_ControllingArea,
_ControllingObject,
//Todo: ReferenceSDDocument,
_ReferenceSDDocumentCategory,
_OverallSDProcessStatus,
_OverallSDDocumentRejectionSts,
_TotalBlockStatus,
_OverallTotalDeliveryStatus,
_OverallDeliveryStatus,
_OverallDeliveryBlockStatus,
_OverallOrdReltdBillgStatus,
_OverallBillingBlockStatus,
_OverallTotalSDDocRefStatus,
_OverallSDDocReferenceStatus,
_TotalCreditCheckStatus,
_MaxDocValueCreditCheckStatus,
_PaymentTermCreditCheckStatus,
_FinDocCreditCheckStatus,
_ExprtInsurCreditCheckStatus,
_PaytAuthsnCreditCheckSts,
_CentralCreditCheckStatus,
_CentralCreditChkTechErrSts,
_HdrGeneralIncompletionStatus,
_OverallPricingIncompletionSts,
_HeaderDelivIncompletionStatus,
_HeaderBillgIncompletionStatus,
_OvrlItmGeneralIncompletionSts,
_OvrlItmBillingIncompletionSts,
_OvrlItmDelivIncompletionSts,
_SalesDocApprovalStatus
}
where
SalesDocument.SDDocumentCategory = 'H';
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_SALESDOCUMENT"
],
"ASSOCIATED":
[
"E_SALESDOCUMENTBASIC",
"I_ADDITIONALCUSTOMERGROUP1",
"I_ADDITIONALCUSTOMERGROUP2",
"I_ADDITIONALCUSTOMERGROUP3",
"I_ADDITIONALCUSTOMERGROUP4",
"I_ADDITIONALCUSTOMERGROUP5",
"I_BILLINGBLOCKREASON",
"I_BUSINESSAREA",
"I_CENTRALCREDITCHECKSTATUS",
"I_CENTRALCREDITCHKTECHERRSTS",
"I_COMPANYCODE",
"I_CONTROLLINGAREA",
"I_CONTROLLINGOBJECT",
"I_COSTCENTER",
"I_CREDITCONTROLAREA",
"I_CURRENCY",
"I_CUSTOMER",
"I_CUSTOMERACCOUNTASSGMTGROUP",
"I_CUSTOMERGROUP",
"I_CUSTOMERPAYMENTTERMS",
"I_CUSTOMERRETURNAPPROVALREASON",
"I_CUSTOMERRETURNITEM",
"I_DELIVERYBLOCKREASON",
"I_DISTRIBUTIONCHANNEL",
"I_DIVISION",
"I_EXCHANGERATETYPE",
"I_EXPRTINSURCREDITCHECKSTATUS",
"I_FINDOCCREDITCHECKSTATUS",
"I_HDRBILLGINCOMPLETIONSTATUS",
"I_HDRDELIVINCOMPLETIONSTATUS",
"I_HDRGENINCOMPLETIONSTATUS",
"I_INCOTERMSCLASSIFICATION",
"I_INCOTERMSVERSION",
"I_MAXDOCVALUECREDITCHECKSTS",
"I_OVERALLBILLINGBLOCKSTATUS",
"I_OVERALLDELIVERYBLOCKSTATUS",
"I_OVERALLDELIVERYSTATUS",
"I_OVERALLORDRELTDBILLGSTATUS",
"I_OVERALLPRCINCOMPLETIONSTS",
"I_OVERALLSDDOCREFERENCESTATUS",
"I_OVERALLSDDOCUMENTRJCNSTATUS",
"I_OVERALLSDPROCESSSTATUS",
"I_OVERALLTOTALDELIVERYSTATUS",
"I_OVERALLTOTALSDDOCREFSTATUS",
"I_OVRLITMBILLGINCOMPLTNSTS",
"I_OVRLITMDELIVINCOMPLETIONSTS",
"I_OVRLITMGENINCOMPLETIONSTS",
"I_PAYMENTTERMCREDITCHECKSTS",
"I_PAYTAUTHSNCREDITCHECKSTS",
"I_RETSMGMTPROCESS",
"I_SALESDISTRICT",
"I_SALESDOCAPPROVALSTATUS",
"I_SALESDOCUMENTPARTNER",
"I_SALESDOCUMENTSTANDARDPARTNER",
"I_SALESDOCUMENTTYPE",
"I_SALESGROUP",
"I_SALESOFFICE",
"I_SALESORGANIZATION",
"I_SDDOCUMENTCATEGORY",
"I_SDDOCUMENTREASON",
"I_SHIPPINGCONDITION",
"I_SHIPPINGTYPE",
"I_SLSPRICINGPROCEDURE",
"I_TOTALBLOCKSTATUS",
"I_TOTALCREDITCHECKSTATUS",
"I_USER"
],
"BASE":
[
"I_SALESDOCUMENT"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/