C_Customer360DebitMemoRequest

DDL: C_CUSTOMER360DEBITMEMOREQUEST Type: view_entity CONSUMPTION Package: ODATA_SD_ADVNCD_CUSTOMER360

Customer 360 DMR

C_Customer360DebitMemoRequest is a Consumption CDS View that provides data about "Customer 360 DMR" in SAP S/4HANA. It reads from 2 data sources (I_Customer360BusDocSetting, I_DebitMemoRequest) and exposes 65 fields with key field DebitMemoRequest. It has 10 associations to related views. It is exposed through 1 OData service (SD_ADVNCD_CUSTOMER360). Part of development package ODATA_SD_ADVNCD_CUSTOMER360.

Data Sources (2)

SourceAliasJoin Type
I_Customer360BusDocSetting Customer360BusDocSetting inner
I_DebitMemoRequest DebitMemoRequest from

Associations (10)

CardinalityTargetAliasCondition
[0..1] C_Dischannelvaluehelp _DistributionChannel $projection.SalesOrganization = _DistributionChannel.SalesOrganization and $projection.DistributionChannel = _DistributionChannel.DistributionChannel
[0..1] C_OrgDivisionValueHelp _Division $projection.SalesOrganization = _Division.SalesOrganization and $projection.DistributionChannel = _Division.DistributionChannel and $projection.OrganizationDivision = _Division.Division
[0..1] C_SalesOfficeValueHelp _SalesOffice $projection.SalesOrganization = _SalesOffice.SalesOrganization and $projection.DistributionChannel = _SalesOffice.DistributionChannel and $projection.OrganizationDivision = _SalesOffice.OrganizationDivision and $projection.SalesOffice = _SalesOffice.SalesOffice
[0..1] C_SalesGroupValueHelp _SalesGroup $projection.SalesOffice = _SalesGroup.SalesOffice and $projection.SalesGroup = _SalesGroup.SalesGroup
[0..1] C_DebitMemoRequestTypeVH_F1988 _DebitMemoRequestType $projection.DebitMemoRequestType = _DebitMemoRequestType.DebitMemoRequestType
[0..1] C_SalesDocumentUserVH _CreatedByUser $projection.CreatedByUser = _CreatedByUser.UserID
[0..1] C_SalesDocumentUserVH _LastChangedByUser $projection.LastChangedByUser = _LastChangedByUser.UserID
[0..*] I_CustomerProjectItem _Project $projection.ReferenceSDDocument = _Project.CustomerProjectItem and _Project.CustomerProjectItemType = '0SOH'
[0..1] I_CustomerProjectStdVH _ProjectValueHelp $projection.CustomerProject = _ProjectValueHelp.CustomerProject
[1] E_SalesDocumentBasic _Extension $projection.DebitMemoRequest = _Extension.SalesDocument

Annotations (8)

NameValueLevelField
AccessControl.authorizationCheck #CHECK view
EndUserText.label Customer 360 DMR view
Metadata.allowExtensions true view
Search.searchable true view
ObjectModel.usageType.dataClass #MIXED view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #XXL view
VDM.viewType #CONSUMPTION view

OData Services (1)

ServiceBindingVersionContractRelease
SD_ADVNCD_CUSTOMER360 SD_ADVNCD_CUSTOMER360 V4 C1 NOT_RELEASED

Fields (65)

KeyFieldSource TableSource FieldDescription
KEY DebitMemoRequest I_DebitMemoRequest DebitMemoRequest
SoldToParty I_DebitMemoRequest SoldToParty
SoldToPartyName
PurchaseOrderByCustomer I_DebitMemoRequest PurchaseOrderByCustomer
BillingDocumentDate I_DebitMemoRequest BillingDocumentDate
OverallOrdReltdBillgStatus I_DebitMemoRequest OverallOrdReltdBillgStatus
OverallOrdReltdBillgStsDesc
OverallSDProcessStatus I_DebitMemoRequest OverallSDProcessStatus
OverallSDProcessStatusDesc
OverallSDDocumentRejectionSts I_DebitMemoRequest OverallSDDocumentRejectionSts
OvrlSDDocumentRejectionStsDesc
OverallBillingBlockStatus I_DebitMemoRequest OverallBillingBlockStatus
OverallBillingBlockStatusDesc
SalesDocApprovalStatus I_DebitMemoRequest SalesDocApprovalStatus
SalesDocApprovalStatusDesc
TransactionCurrency I_DebitMemoRequest TransactionCurrency
CurrencyName
TotalNetAmount I_DebitMemoRequest TotalNetAmount
DebitMemoRequestDate I_DebitMemoRequest DebitMemoRequestDate
HeaderBillingBlockReason I_DebitMemoRequest HeaderBillingBlockReason
BillingBlockReasonDescription
DebitMemoRequestType I_DebitMemoRequest DebitMemoRequestType Debit Memo Request Type
SalesDocumentTypeName
SalesOrganization I_DebitMemoRequest SalesOrganization
SalesOrganizationName
DistributionChannel I_DebitMemoRequest DistributionChannel
DistributionChannelName
OrganizationDivision I_DebitMemoRequest OrganizationDivision
DivisionName
SalesOffice I_DebitMemoRequest SalesOffice
SalesOfficeName
SalesGroup I_DebitMemoRequest SalesGroup
SalesGroupName
CreationDate I_DebitMemoRequest CreationDate
LastChangeDate I_DebitMemoRequest LastChangeDate
CreatedByUser I_DebitMemoRequest CreatedByUser
CreatedByUserDescription
LastChangedByUser I_DebitMemoRequest LastChangedByUser
LastChangedByUserDescription
ReferenceSDDocument I_DebitMemoRequest ReferenceSDDocument
SDDocumentReason I_DebitMemoRequest SDDocumentReason
SDDocumentReasonText
DebitMemoRequestProcessingType I_DebitMemoRequest DebitMemoRequestProcessingType
SalesDocumentRjcnReason
CustomerProject _Project CustomerProject Customer Project
int1asDebitMemoReqApprvlStsCritlty
_SalesOrganization I_DebitMemoRequest _SalesOrganization
_DistributionChannel _DistributionChannel
_Division _Division
_OrganizationDivision I_DebitMemoRequest _OrganizationDivision
_SalesOffice _SalesOffice
_SalesGroup _SalesGroup
_DebitMemoRequestType _DebitMemoRequestType
_ProjectValueHelp _ProjectValueHelp
_OverallOrdReltdBillgStatus I_DebitMemoRequest _OverallOrdReltdBillgStatus
_OverallSDProcessStatus I_DebitMemoRequest _OverallSDProcessStatus
_OverallSDDocumentRejectionSts I_DebitMemoRequest _OverallSDDocumentRejectionSts
_HeaderBillingBlockReason I_DebitMemoRequest _HeaderBillingBlockReason
_SDDocumentReason I_DebitMemoRequest _SDDocumentReason
_TransactionCurrency I_DebitMemoRequest _TransactionCurrency
_CreatedByUser _CreatedByUser
_LastChangedByUser _LastChangedByUser
_Project _Project
_OverallBillingBlockStatus I_DebitMemoRequest _OverallBillingBlockStatus
_SoldToParty I_DebitMemoRequest _SoldToParty
@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking: #('TRANSACTIONAL_DATA')
@EndUserText.label: 'Customer 360 DMR'
@Metadata.allowExtensions: true
@Search.searchable: true
@ObjectModel: {
 usageType: {
 dataClass: #MIXED,
 serviceQuality: #C,
 sizeCategory:   #XXL
   }
}
@VDM.viewType: #CONSUMPTION

define view entity C_Customer360DebitMemoRequest
  as select from I_DebitMemoRequest         as DebitMemoRequest
    inner join   I_Customer360BusDocSetting as Customer360BusDocSetting on  Customer360BusDocSetting.BusinessDocumentIsEnabled = 'X'
                                                                        and Customer360BusDocSetting.Cust360BusDocCategory     = 'L'
  association [0..1] to C_Dischannelvaluehelp          as _DistributionChannel  on  $projection.SalesOrganization   = _DistributionChannel.SalesOrganization
                                                                                and $projection.DistributionChannel = _DistributionChannel.DistributionChannel
  association [0..1] to C_OrgDivisionValueHelp         as _Division             on  $projection.SalesOrganization    = _Division.SalesOrganization
                                                                                and $projection.DistributionChannel  = _Division.DistributionChannel
                                                                                and $projection.OrganizationDivision = _Division.Division
  association [0..1] to C_SalesOfficeValueHelp         as _SalesOffice          on  $projection.SalesOrganization    = _SalesOffice.SalesOrganization
                                                                                and $projection.DistributionChannel  = _SalesOffice.DistributionChannel
                                                                                and $projection.OrganizationDivision = _SalesOffice.OrganizationDivision
                                                                                and $projection.SalesOffice          = _SalesOffice.SalesOffice
  association [0..1] to C_SalesGroupValueHelp          as _SalesGroup           on  $projection.SalesOffice = _SalesGroup.SalesOffice
                                                                                and $projection.SalesGroup  = _SalesGroup.SalesGroup
  association [0..1] to C_DebitMemoRequestTypeVH_F1988 as _DebitMemoRequestType on  $projection.DebitMemoRequestType = _DebitMemoRequestType.DebitMemoRequestType

  //Only used for CoPilot - NLP

  association [0..1] to C_SalesDocumentUserVH          as _CreatedByUser        on  $projection.CreatedByUser = _CreatedByUser.UserID
  association [0..1] to C_SalesDocumentUserVH          as _LastChangedByUser    on  $projection.LastChangedByUser = _LastChangedByUser.UserID

  // maximal 1 order can be assigned to a project. However, in link table the order ID is not treated as key. Change association to 0..* to avoid Checkman error

  association [0..*] to I_CustomerProjectItem          as _Project              on  $projection.ReferenceSDDocument  = _Project.CustomerProjectItem
                                                                                and _Project.CustomerProjectItemType = '0SOH'
  association [0..1] to I_CustomerProjectStdVH         as _ProjectValueHelp     on  $projection.CustomerProject = _ProjectValueHelp.CustomerProject

  //Extension Association

  association [1]    to E_SalesDocumentBasic           as _Extension            on  $projection.DebitMemoRequest = _Extension.SalesDocument
{
      @Search.defaultSearchElement: true
      @Search.fuzzinessThreshold: 0.8
      @Search.ranking: #HIGH
      @ObjectModel.readOnly: true
      @Consumption.semanticObject: 'DebitMemoRequest'
  key DebitMemoRequest.DebitMemoRequest                                                                                           as DebitMemoRequest,

      @ObjectModel: { text.element: ['SoldToPartyName']      }
      DebitMemoRequest.SoldToParty,
      
      @Semantics.text:true
      @ObjectModel.virtualElement: true
      @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_SD_DMR_UI_PARTNER_UTIL'
      cast('' as ad_namtext )                                                                                       as SoldToPartyName,
      
      

      @Search.defaultSearchElement: true
      @Search.fuzzinessThreshold: 0.8
      DebitMemoRequest.PurchaseOrderByCustomer,

      DebitMemoRequest.BillingDocumentDate,


      @ObjectModel.text.element: ['OverallOrdReltdBillgStsDesc']
      DebitMemoRequest.OverallOrdReltdBillgStatus,
      @UI.hidden: true
      DebitMemoRequest._OverallOrdReltdBillgStatus._Text[1:Language = $session.system_language].OverallOrdReltdBillgStsDesc       as OverallOrdReltdBillgStsDesc,

      @ObjectModel.text.element: ['OverallSDProcessStatusDesc']
      DebitMemoRequest.OverallSDProcessStatus,
      @UI.hidden: true
      DebitMemoRequest._OverallSDProcessStatus._Text[1:Language = $session.system_language].OverallSDProcessStatusDesc            as OverallSDProcessStatusDesc,


      @ObjectModel.text.element: ['OvrlSDDocumentRejectionStsDesc']
      DebitMemoRequest.OverallSDDocumentRejectionSts,
      @UI.hidden: true
      DebitMemoRequest._OverallSDDocumentRejectionSts._Text[1:Language = $session.system_language].OvrlSDDocumentRejectionStsDesc as OvrlSDDocumentRejectionStsDesc,


      @ObjectModel.text.element: ['OverallBillingBlockStatusDesc']
      DebitMemoRequest.OverallBillingBlockStatus,
      @UI.hidden: true
      DebitMemoRequest._OverallBillingBlockStatus._Text[1:Language = $session.system_language].OverallBillingBlockStatusDesc      as OverallBillingBlockStatusDesc,

      @ObjectModel.text.element: ['SalesDocApprovalStatusDesc']
      DebitMemoRequest.SalesDocApprovalStatus,
      @UI.hidden: true
      DebitMemoRequest._SalesDocApprovalStatus._Text[1:Language = $session.system_language].SalesDocApprovalStatusDesc            as SalesDocApprovalStatusDesc,


      @ObjectModel.foreignKey.association: '_TransactionCurrency'
      @ObjectModel.text.element: ['CurrencyName']
      DebitMemoRequest.TransactionCurrency,
      @UI.hidden: true
      DebitMemoRequest._TransactionCurrency._Text[1:Language = $session.system_language].CurrencyName                             as CurrencyName,

      //      DebitMemoRequest.TransactionCurrency,



      @DefaultAggregation: #NONE
      @Semantics.amount.currencyCode: 'TransactionCurrency'
      DebitMemoRequest.TotalNetAmount,

      @Semantics.businessDate.to: true
      DebitMemoRequest.DebitMemoRequestDate,

      @ObjectModel.text.element: ['BillingBlockReasonDescription']
      DebitMemoRequest.HeaderBillingBlockReason,
      @UI.hidden: true
      DebitMemoRequest._HeaderBillingBlockReason._Text[1:Language = $session.system_language].BillingBlockReasonDescription       as BillingBlockReasonDescription,

      @EndUserText.label : 'Debit Memo Request Type'
      @ObjectModel.foreignKey.association: '_DebitMemoRequestType'
      @ObjectModel.text.element: ['SalesDocumentTypeName']
      DebitMemoRequest.DebitMemoRequestType,
      @UI.hidden: true
      DebitMemoRequest._DebitMemoRequestType._Text[1:Language = $session.system_language].SalesDocumentTypeName                   as SalesDocumentTypeName,


      @ObjectModel.text.element: ['SalesOrganizationName']
      DebitMemoRequest.SalesOrganization,
      @UI.hidden: true
      DebitMemoRequest._SalesOrganization._Text[1:Language = $session.system_language].SalesOrganizationName                      as SalesOrganizationName,

      @ObjectModel.text.element: ['DistributionChannelName']
      DebitMemoRequest.DistributionChannel,
      @UI.hidden: true
      DebitMemoRequest._DistributionChannel._Text[1:Language = $session.system_language].DistributionChannelName                  as DistributionChannelName,

      @ObjectModel.text.element: ['DivisionName']
      DebitMemoRequest.OrganizationDivision,
      @UI.hidden: true
      DebitMemoRequest._OrganizationDivision._Text[1:Language = $session.system_language].DivisionName                            as DivisionName,


      @ObjectModel.text.element: ['SalesOfficeName']
      DebitMemoRequest.SalesOffice,
      @UI.hidden: true
      DebitMemoRequest._SalesOffice._Text[1:Language = $session.system_language].SalesOfficeName                                  as SalesOfficeName,


      @ObjectModel.text.element: ['SalesGroupName']
      DebitMemoRequest.SalesGroup,
      @UI.hidden: true
      DebitMemoRequest._SalesGroup._Text[1:Language = $session.system_language].SalesGroupName                                    as SalesGroupName,

      DebitMemoRequest.CreationDate,

      DebitMemoRequest.LastChangeDate,

      @Search.defaultSearchElement: true
      @Search.fuzzinessThreshold: 0.9
      @ObjectModel.foreignKey.association: '_CreatedByUser'
      @ObjectModel.text.element: ['CreatedByUserDescription']
      DebitMemoRequest.CreatedByUser,
      @Search.defaultSearchElement: true
      @Search.fuzzinessThreshold: 0.9
      @Search.ranking: #HIGH
      @UI.hidden: true
      DebitMemoRequest._CreatedByUser.UserDescription                                                                             as CreatedByUserDescription,
      @ObjectModel.foreignKey.association: '_LastChangedByUser'
      @ObjectModel.text.element: ['LastChangedByUserDescription']
      DebitMemoRequest.LastChangedByUser                                                                                          as LastChangedByUser,
      @UI.hidden: true
      DebitMemoRequest._LastChangedByUser.UserDescription                                                                         as LastChangedByUserDescription,

      @Consumption.filter.hidden: true
      @ObjectModel.readOnly: true
      cast ( ( case dats_is_valid( DebitMemoRequest.LastChangeDate)
        when 0
            then cast( dats_tims_to_tstmp( DebitMemoRequest.CreationDate, DebitMemoRequest.CreationTime, 'UTC', $session.client, 'NULL' ) as last_changed_date_time )
        else
          DebitMemoRequest.LastChangeDateTime
      end ) as last_changed_date_time preserving type )                                                                           as LastChangeDateTime,

      DebitMemoRequest.ReferenceSDDocument,


      @ObjectModel.text.element: ['SDDocumentReasonText']
      DebitMemoRequest.SDDocumentReason,
      @UI.hidden: true
      DebitMemoRequest._SDDocumentReason._Text[1:Language = $session.system_language].SDDocumentReasonText                        as SDDocumentReasonText,

      @UI.hidden: true
      DebitMemoRequest.DebitMemoRequestProcessingType,

      @UI.hidden: true
      cast( '  ' as abgru_va)                                                                                                     as SalesDocumentRjcnReason,

      @EndUserText.label: 'Customer Project'
      @ObjectModel.foreignKey.association: '_ProjectValueHelp'
      _Project.CustomerProject                                                                                                    as CustomerProject,

      @UI.hidden: true
      cast(
        case
          when DebitMemoRequest.SalesDocApprovalStatus  = 'A' then  2 -- | 2: yellow colour
          when DebitMemoRequest.SalesDocApprovalStatus  = 'B' then  3 -- | 3: green colour
          when DebitMemoRequest.SalesDocApprovalStatus  = 'C' then  1 -- | 1: red colour
          when DebitMemoRequest.SalesDocApprovalStatus  = 'D' then  2 -- | 2: yellow colour
                                                        else  0 -- | 0: neutral
        end  as abap.int1
      )                                                                                                                           as DebitMemoReqApprvlStsCritlty,

      DebitMemoRequest._SalesOrganization,
      _DistributionChannel,
      _Division,
      DebitMemoRequest._OrganizationDivision,
      _SalesOffice,
      _SalesGroup,
      _DebitMemoRequestType,
      _ProjectValueHelp,
      DebitMemoRequest._OverallOrdReltdBillgStatus,
      DebitMemoRequest._OverallSDProcessStatus,
      DebitMemoRequest._OverallSDDocumentRejectionSts,
      DebitMemoRequest._HeaderBillingBlockReason,
      DebitMemoRequest._SDDocumentReason,
      DebitMemoRequest._TransactionCurrency,
      _CreatedByUser,
      _LastChangedByUser,
      _Project,
      DebitMemoRequest._OverallBillingBlockStatus,
      DebitMemoRequest._SoldToParty
}
where
      DebitMemoRequest.DebitMemoRequestDate > dats_add_days( tstmp_to_dats(tstmp_current_utctimestamp(), abap_system_timezone( $session.client,'NULL' ), $session.client, 'NULL'), -Customer360BusDocSetting.BusDocumentDurationInDays, 'INITIAL')
  and DebitMemoRequest.DebitMemoRequestDate <= $session.system_date