@ClientHandling.algorithm: #SESSION_VARIABLE
@EndUserText.label: 'Return Reference Document Item'
@VDM.viewType: #CONSUMPTION
@AccessControl: {
authorizationCheck: #CHECK,
personalData.blocking: #NOT_REQUIRED
}
@AbapCatalog: {
sqlViewName: 'CRETSREFDOCITM',
preserveKey: true,
compiler.compareFilter: true
}
@ObjectModel: {
updateEnabled,
usageType: {
dataClass: #MIXED,
serviceQuality: #C,
sizeCategory: #XXL
}
}
@Search.searchable: true
@Metadata.ignorePropagatedAnnotations: true
define view C_ReturnsReferenceDocumentItem
as select from I_SalesDocumentItem as SalesDocumentItem
inner join I_SalesDocumentBasic as SalesDocument on SalesDocument.SalesDocument = SalesDocumentItem.SalesDocument
// inner join I_CustRetCpyCtrlSrceDocType as CustRetCpyCtrlSrceDocTyp on CustRetCpyCtrlSrceDocTyp.SourceSalesDocumentType = SalesDocument.SalesDocumentType
// and CustRetCpyCtrlSrceDocTyp.SourceBillingDocumentType = ''
// and CustRetCpyCtrlSrceDocTyp.ReferenceScheduleLineCategory = ''
// and CustRetCpyCtrlSrceDocTyp.ReferenceItemCategory = SalesDocumentItem.SalesDocumentItemCategory
left outer to one join I_SalesDocumentItemCategory as SalesDocumentItemCategory on SalesDocumentItemCategory.SalesDocumentItemCategory = SalesDocumentItem.SalesDocumentItemCategory
// left outer to one join I_SalesDocumentCopyControl as SalesDocumentCopyControl on SalesDocumentCopyControl.TargetSalesDocumentType = 'CBAR'
// and SalesDocumentCopyControl.SourceSalesDocumentType = SalesDocument.SalesDocumentType
// and SalesDocumentCopyControl.SourceBillingDocumentType = ''
// and SalesDocumentCopyControl.ReferenceScheduleLineCategory = ''
// and SalesDocumentCopyControl.ReferenceItemCategory = SalesDocumentItem.SalesDocumentItemCategory
left outer to many join I_CustRetCpyCtrlSrceDocType as CustRetCpyCtrlSrceDocTyp on CustRetCpyCtrlSrceDocTyp.SourceSalesDocumentType = SalesDocument.SalesDocumentType
and CustRetCpyCtrlSrceDocTyp.SourceBillingDocumentType = ''
and CustRetCpyCtrlSrceDocTyp.ReferenceScheduleLineCategory = ''
and CustRetCpyCtrlSrceDocTyp.ReferenceItemCategory = SalesDocumentItem.SalesDocumentItemCategory
// association [0..1] to I_SalesDocItmReturnableQty as _ReturnableQtyOfSales on $projection.ReturnsReferenceDocument = _ReturnableQtyOfSales.SalesDocument
// and $projection.ReturnsReferenceDocumentItem = _ReturnableQtyOfSales.SalesDocumentItem
//Value Helps
association [0..1] to I_UnitOfMeasure as _QuantityUnitValueHelp on $projection.OrderQuantityUnit = _QuantityUnitValueHelp.UnitOfMeasure
association [0..*] to I_ProductAlternativeUoM as _ProductAlternativeUoM on $projection.Material = _ProductAlternativeUoM.Product
//Text associations
association [0..*] to I_SDDocumentCategoryText as _SDDocumentCategoryText on $projection.SDDocumentCategory = _SDDocumentCategoryText.SDDocumentCategory
association [0..*] to I_ShippingPointText as _ShippingPointText on $projection.ShippingPoint = _ShippingPointText.ShippingPoint
association [0..*] to I_MaterialText as _MaterialText on $projection.Material = _MaterialText.Material
association [0..*] to I_MaterialGroupText as _MaterialGroupText on $projection.MaterialGroup = _MaterialGroupText.MaterialGroup
association [0..1] to I_SalesDocumentRjcnReasonText as _SalesDocumentRjcnReasonText on $projection.SalesDocumentRjcnReason = _SalesDocumentRjcnReasonText.SalesDocumentRjcnReason
and _SalesDocumentRjcnReasonText.Language = $session.system_language
{
@Search.defaultSearchElement: true
key SalesDocumentItem.SalesDocument as ReturnsReferenceDocument,
@EndUserText.label: 'Item'
key SalesDocumentItem.SalesDocumentItem as ReturnsReferenceDocumentItem,
@UI.hidden: true
key CustRetCpyCtrlSrceDocTyp.TargetSalesDocumentType as TargetSalesDocumentType,
//SalesDocumentCopyControl.TargetSalesDocumentType as TargetSalesDocumentType,
@UI.hidden: true
SalesDocumentItem.SalesDocument as SalesDocument,
@UI.hidden: true
SalesDocumentItem.SalesDocumentItem as SalesDocumentItem,
SalesDocumentItem.HigherLevelItem as HigherLevelItem,
@Semantics.quantity.unitOfMeasure: 'OrderQuantityUnit'
cast(SalesDocumentItem.OrderQuantity as original_quantity) as OrderQuantity,
@Search.defaultSearchElement: true
@ObjectModel.text.association: '_MaterialText'
cast(SalesDocumentItem.Material as productnumber preserving type) as Material,
@ObjectModel.text.association: '_MaterialGroupText'
cast(SalesDocumentItem.MaterialGroup as productgroup preserving type) as MaterialGroup,
@Semantics.amount.currencyCode: 'Currency'
SalesDocumentItem.NetAmount,
@Semantics.currencyCode: true
SalesDocumentItem.TransactionCurrency as Currency,
//@Consumption.valueHelp: '_ProductAlternativeUoM'
@Semantics.unitOfMeasure: true
@ObjectModel.foreignKey.association: '_QuantityUnitValueHelp'
SalesDocumentItem.OrderQuantityUnit,
@ObjectModel.text.association: '_SDDocumentCategoryText'
SalesDocumentItem.SDDocumentCategory as SDDocumentCategory,
@ObjectModel.text.element: [ 'PlantName' ]
SalesDocumentItem.Plant as ProductionPlant,
SalesDocumentItem._Plant.PlantName,
SalesDocumentItem.Batch,
SalesDocument.RequestedDeliveryDate as DeliveryDate,
@Semantics.quantity.unitOfMeasure: 'OrderQuantityUnit'
// cast(_ReturnableQtyOfSales.ReturnableQuantity as returnable_quantity ) as ReturnableQuantity,
cast(0 as returnable_quantity) as ReturnableQuantity,
SalesDocumentItem.MaterialByCustomer as MaterialByCustomer,
@Semantics.unitOfMeasure: true
SalesDocumentItem.OrderQuantityUnit as ReturnQuantityUnit,
@Semantics.quantity.unitOfMeasure: 'ReturnQuantityUnit'
cast(0 as kwmeng) as ReturnQuantity,
SalesDocumentItem.BaseUnit as BaseUnit,
@Semantics.quantity.unitOfMeasure: 'BaseUnit'
SalesDocumentItem.RequestedQuantityInBaseUnit as RequestedQuantityInBaseUnit,
@UI.hidden: true
SalesDocumentItemCategory.PricingRelevance,
@ObjectModel.text.association: '_ShippingPointText'
SalesDocumentItem.ShippingPoint,
SalesDocument.OrganizationDivision,
SalesDocument.SalesOrganization,
SalesDocument.DistributionChannel,
SalesDocumentItem.BillOfMaterial,
SalesDocumentItem.BOMExplosionDate,
@ObjectModel.text.element: [ 'SalesDocumentRjcnReasonName' ]
SalesDocumentItem.SalesDocumentRjcnReason,
@UI.hidden: true
@Search.defaultSearchElement: false
_SalesDocumentRjcnReasonText.SalesDocumentRjcnReasonName,
// Associations
_QuantityUnitValueHelp,
_ProductAlternativeUoM,
_MaterialText,
_MaterialGroupText,
_ShippingPointText,
_SDDocumentCategoryText,
_SalesDocumentRjcnReasonText
}
where
SalesDocumentItem.SDDocumentCategory = 'C'
or SalesDocumentItem.SDDocumentCategory = 'I'
union all
select from I_BillingDocumentItem as BillingDocumentItem
inner join I_BillingDocument as BillingDocument on BillingDocument.BillingDocument = BillingDocumentItem.BillingDocument
// inner join I_CustRetCpyCtrlSrceDocType as CustRetCpyCtrlSrceDocTyp on CustRetCpyCtrlSrceDocTyp.SourceSalesDocumentType = BillingDocument.BillingDocumentType
// and CustRetCpyCtrlSrceDocTyp.SourceBillingDocumentType = ''
// and CustRetCpyCtrlSrceDocTyp.ReferenceScheduleLineCategory = ''
// and CustRetCpyCtrlSrceDocTyp.ReferenceItemCategory = BillingDocumentItem.SalesDocumentItemCategory
left outer to one join I_SalesDocumentItemCategory as SalesDocumentItemCategory on SalesDocumentItemCategory.SalesDocumentItemCategory = BillingDocumentItem.SalesDocumentItemCategory
// left outer to one join I_SalesDocumentCopyControl as SalesDocumentCopyControl on SalesDocumentCopyControl.TargetSalesDocumentType = 'CBAR'
// and SalesDocumentCopyControl.SourceSalesDocumentType = ''
// and SalesDocumentCopyControl.SourceBillingDocumentType = BillingDocument.BillingDocumentType
// and SalesDocumentCopyControl.ReferenceScheduleLineCategory = ''
// and SalesDocumentCopyControl.ReferenceItemCategory = BillingDocumentItem.SalesDocumentItemCategory
left outer to many join I_CustRetCpyCtrlSrceDocType as CustRetCpyCtrlSrceDocTyp on CustRetCpyCtrlSrceDocTyp.SourceBillingDocumentType = BillingDocument.BillingDocumentType
and CustRetCpyCtrlSrceDocTyp.SourceSalesDocumentType = ''
and CustRetCpyCtrlSrceDocTyp.ReferenceScheduleLineCategory = ''
and CustRetCpyCtrlSrceDocTyp.ReferenceItemCategory = BillingDocumentItem.SalesDocumentItemCategory
//Associations
//association [0..1] to I_BillingDocItmReturnableQty as _ReturnableQtyOfBilling on $projection.ReturnsReferenceDocument = _ReturnableQtyOfBilling.BillingDocument
// and $projection.ReturnsReferenceDocumentItem = _ReturnableQtyOfBilling.BillingDocumentItem
////association [0..1] to I_SalesDocItmReturnableQty as _ReturnableQtyOfSales on $projection.SalesDocument = _ReturnableQtyOfSales.SalesDocument
//// and $projection.SalesDocumentItem = _ReturnableQtyOfSales.SalesDocumentItem
association [0..1] to I_SalesDocumentItem as _SalesDocumentItem on $projection.SalesDocument = _SalesDocumentItem.SalesDocument
and $projection.SalesDocumentItem = _SalesDocumentItem.SalesDocumentItem
//Value Helps
association [0..1] to I_UnitOfMeasure as _QuantityUnitValueHelp on $projection.orderquantityunit = _QuantityUnitValueHelp.UnitOfMeasure
association [0..*] to I_ProductAlternativeUoM as _ProductAlternativeUoM on $projection.Material = _ProductAlternativeUoM.Product
//Text Associations
association [0..*] to I_SDDocumentCategoryText as _SDDocumentCategoryText on $projection.SDDocumentCategory = _SDDocumentCategoryText.SDDocumentCategory
association [0..*] to I_ShippingPointText as _ShippingPointText on $projection.ShippingPoint = _ShippingPointText.ShippingPoint
association [0..*] to I_MaterialText as _MaterialText on $projection.Material = _MaterialText.Material
association [0..*] to I_MaterialGroupText as _MaterialGroupText on $projection.MaterialGroup = _MaterialGroupText.MaterialGroup
association [0..1] to I_SalesDocumentRjcnReasonText as _SalesDocumentRjcnReasonText on $projection.SalesDocumentRjcnReason = _SalesDocumentRjcnReasonText.SalesDocumentRjcnReason
and _SalesDocumentRjcnReasonText.Language = $session.system_language
{
@Search.defaultSearchElement: true
key BillingDocumentItem.BillingDocument as ReturnsReferenceDocument,
key BillingDocumentItem.BillingDocumentItem as ReturnsReferenceDocumentItem,
@UI.hidden: true
key CustRetCpyCtrlSrceDocTyp.TargetSalesDocumentType as TargetSalesDocumentType,
//SalesDocumentCopyControl.TargetSalesDocumentType as TargetSalesDocumentType,
@UI.hidden: true
BillingDocumentItem.SalesDocument as SalesDocument,
@UI.hidden: true
BillingDocumentItem.SalesDocumentItem as SalesDocumentItem,
BillingDocumentItem.HigherLevelItem as HigherLevelItem,
@Semantics.quantity.unitOfMeasure: 'OrderQuantityUnit'
cast(BillingDocumentItem.BillingQuantity as original_quantity) as OrderQuantity,
@ObjectModel.text.association: '_MaterialText'
cast(BillingDocumentItem.Material as productnumber preserving type) as Material,
@ObjectModel.text.association: '_MaterialGroupText'
cast(BillingDocumentItem.MaterialGroup as productgroup preserving type) as MaterialGroup,
@Semantics.amount.currencyCode: 'Currency'
BillingDocumentItem.NetAmount,
@Semantics.currencyCode: true
BillingDocumentItem.TransactionCurrency as Currency,
@Semantics.unitOfMeasure: true
@ObjectModel.foreignKey.association: '_QuantityUnitValueHelp'
BillingDocumentItem._SalesDocumentItem.OrderQuantityUnit,
@ObjectModel.text.association: '_SDDocumentCategoryText'
BillingDocument.SDDocumentCategory as SDDocumentCategory,
@ObjectModel.text.element: [ 'PlantName' ]
BillingDocumentItem._SalesDocumentItem.Plant as ProductionPlant,
BillingDocumentItem._SalesDocumentItem._Plant.PlantName,
BillingDocumentItem.Batch,
BillingDocument.BillingDocumentDate as DeliveryDate,
@Semantics.quantity.unitOfMeasure: 'OrderQuantityUnit'
// cast(_ReturnableQtyOfBilling.ReturnableQuantity as returnable_quantity) as ReturnableQuantity,
cast(0 as returnable_quantity) as ReturnableQuantity,
// cast(case when _ReturnableQtyOfBilling.ReturnableQuantity > _ReturnableQtyOfSales.ReturnableQuantity
// then _ReturnableQtyOfSales.ReturnableQuantity
// else _ReturnableQtyOfBilling.ReturnableQuantity
// end as returnable_quantity) as ReturnableQuantity,
// Placeholder, needed because of union, not part of BillingDocument
'' as MaterialByCustomer,
//@Consumption.valueHelp: '_ProductAlternativeUoM'
@Semantics.unitOfMeasure: true
@ObjectModel.foreignKey.association: '_QuantityUnitValueHelp'
BillingDocumentItem.BillingQuantityUnit as ReturnQuantityUnit,
cast(0 as kwmeng) as ReturnQuantity,
BillingDocumentItem.BaseUnit as BaseUnit,
@Semantics.quantity.unitOfMeasure: 'BaseUnit'
BillingDocumentItem.BillingQuantityInBaseUnit as RequestedQuantityInBaseUnit,
@UI.hidden: true
SalesDocumentItemCategory.PricingRelevance,
@ObjectModel.text.association: '_ShippingPointText'
BillingDocumentItem.ShippingPoint,
BillingDocument.Division as OrganizationDivision,
BillingDocument.SalesOrganization,
BillingDocument.DistributionChannel,
_SalesDocumentItem.BillOfMaterial,
_SalesDocumentItem.BOMExplosionDate,
@ObjectModel.text.element: [ 'SalesDocumentRjcnReasonName' ]
cast('' as abgru_va) as SalesDocumentRjcnReason,
@UI.hidden: true
@Search.defaultSearchElement: false
cast('' as bezei40) as SalesDocumentRjcnReasonName,
_QuantityUnitValueHelp,
_ProductAlternativeUoM,
_MaterialText,
_MaterialGroupText,
_ShippingPointText,
_SDDocumentCategoryText,
_SalesDocumentRjcnReasonText
}
where
BillingDocument.SDDocumentCategory = 'M'
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_BILLINGDOCUMENT",
"I_BILLINGDOCUMENTITEM",
"I_CUSTRETCPYCTRLSRCEDOCTYPE",
"I_PLANT",
"I_SALESDOCUMENTBASIC",
"I_SALESDOCUMENTITEM",
"I_SALESDOCUMENTITEMCATEGORY",
"I_SALESDOCUMENTRJCNREASONTEXT"
],
"ASSOCIATED":
[
"I_MATERIALGROUPTEXT",
"I_MATERIALTEXT",
"I_PRODUCTALTERNATIVEUOM",
"I_SALESDOCUMENTRJCNREASONTEXT",
"I_SDDOCUMENTCATEGORYTEXT",
"I_SHIPPINGPOINTTEXT",
"I_UNITOFMEASURE"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/