C_Customersuppliercompanycode

DDL: C_CUSTOMERSUPPLIERCOMPANYCODE SQL: CCUSTSUPPLCOCODE Type: view CONSUMPTION Package: ODATA_CORRESPONDENCE

Customer/Supplier/Company Code Information

C_Customersuppliercompanycode is a Consumption CDS View that provides data about "Customer/Supplier/Company Code Information" in SAP S/4HANA. It reads from 7 data sources and exposes 17 fields with key fields Account, CompanyCode, CompanyCode. Part of development package ODATA_CORRESPONDENCE.

Data Sources (7)

SourceAliasJoin Type
I_CompanyCode _CompanyCode inner
I_CompanyCode _CompanyCode inner
I_Customer _Customer from
I_CustomerCompany _CustomerCompany inner
I_Supplier _Supplier union_all
I_SupplierCompany _SupplierCompany inner
I_CustomerCompany _SupplierCustomerCompany left_outer

Annotations (14)

NameValueLevelField
AbapCatalog.sqlViewName CCUSTSUPPLCOCODE view
AbapCatalog.compiler.compareFilter true view
AccessControl.authorizationCheck #CHECK view
AccessControl.personalData.blocking #REQUIRED view
Metadata.ignorePropagatedAnnotations true view
VDM.viewType #CONSUMPTION view
ClientHandling.algorithm #SESSION_VARIABLE view
ObjectModel.usageType.dataClass #MASTER view
ObjectModel.usageType.serviceQuality #D view
ObjectModel.usageType.sizeCategory #XXL view
ObjectModel.supportedCapabilities #OUTPUT_EMAIL_DATA_PROVIDER view
VDM.lifecycle.status #DEPRECATED view
VDM.lifecycle.successor I_EmlTmplCustSuplrCompanyCode view
EndUserText.label Customer/Supplier/Company Code Information view

Fields (17)

KeyFieldSource TableSource FieldDescription
KEY Account I_Customer Customer
KEY CompanyCode I_CustomerCompany CompanyCode
Type
Name I_Customer CustomerName
FullName I_Customer CustomerFullName
CompanyCodeName I_CompanyCode CompanyCodeName
AuthorizationGroup I_Customer AuthorizationGroup
ReferenceAccountGroup I_Customer CustomerAccountGroup
SupplierasAccount
KEY CompanyCode I_SupplierCompany CompanyCode
Type
Name I_Supplier SupplierName
FullName I_Supplier SupplierFullName
CompanyCodeName I_CompanyCode CompanyCodeName
AuthorizationGroup I_Supplier AuthorizationGroup
ReferenceAccountGroup I_Supplier SupplierAccountGroup
CoCodeSpcfcAuthorizationGroup I_SupplierCompany AuthorizationGroup
@AbapCatalog.sqlViewName: 'CCUSTSUPPLCOCODE'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking: #REQUIRED
@Metadata.ignorePropagatedAnnotations: true
@VDM.viewType: #CONSUMPTION
@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel.usageType: {
  dataClass: #MASTER,
  serviceQuality: #D,
  sizeCategory: #XXL
}
@ObjectModel.supportedCapabilities:#OUTPUT_EMAIL_DATA_PROVIDER

@VDM.lifecycle.status: #DEPRECATED
@VDM.lifecycle.successor: 'I_EmlTmplCustSuplrCompanyCode'

@EndUserText.label: 'Customer/Supplier/Company Code Information'
define view C_Customersuppliercompanycode
  as select from I_Customer        as _Customer
    inner join   I_CustomerCompany as _CustomerCompany on _Customer.Customer = _CustomerCompany.Customer
    inner join   I_CompanyCode     as _CompanyCode     on _CustomerCompany.CompanyCode = _CompanyCode.CompanyCode
{
  key _Customer.Customer                               as Account,
  key _CustomerCompany.CompanyCode                     as CompanyCode,
      'D'                                              as Type,
      _Customer.CustomerName                           as Name,
      _Customer.CustomerFullName                       as FullName,
      _CompanyCode.CompanyCodeName                     as CompanyCodeName,
      @UI.hidden: true
      _Customer.AuthorizationGroup                     as AuthorizationGroup,
      @UI.hidden: true
      _Customer.CustomerAccountGroup                   as ReferenceAccountGroup,
      @UI.hidden: true
      _CustomerCompany.AuthorizationGroup              as CoCodeSpcfcAuthorizationGroup
}

union all

select from  I_Supplier        as _Supplier
  inner join I_SupplierCompany as _SupplierCompany on _Supplier.Supplier = _SupplierCompany.Supplier
  inner join I_CompanyCode     as _CompanyCode     on _SupplierCompany.CompanyCode = _CompanyCode.CompanyCode
  left outer join I_CustomerCompany as _SupplierCustomerCompany
    on _Supplier.Supplier = _SupplierCustomerCompany.Customer
    and _SupplierCompany.CompanyCode = _SupplierCustomerCompany.CompanyCode
{
  key _Supplier.Supplier                               as Account,
  key _SupplierCompany.CompanyCode                     as CompanyCode,
      'K'                                              as Type,
      _Supplier.SupplierName                           as Name,
      _Supplier.SupplierFullName                       as FullName,
      _CompanyCode.CompanyCodeName                     as CompanyCodeName,
      @UI.hidden: true
      _Supplier.AuthorizationGroup                     as AuthorizationGroup,
      @UI.hidden: true
      _Supplier.SupplierAccountGroup                   as ReferenceAccountGroup,
      @UI.hidden: true
      _SupplierCompany.AuthorizationGroup              as CoCodeSpcfcAuthorizationGroup
} where
  -- I must filter out duplicates but I must not add the colum Type to the keys
  -- because it would break the backward compatibility  
  -- Unfortunately, the operators 'in' and 'exist' are not supported, hence
  -- I must join the customers and select only the suppliers who are not customers
  _SupplierCustomerCompany.Customer is null