aps_com_cs_read_cs

DDL: APS_COM_CS_READ_CS Type: view_entity Package: SR_APS_COM_PUB_ODATA_CS_READ

Communication Systems

aps_com_cs_read_cs is a CDS View that provides data about "Communication Systems" in SAP S/4HANA. It reads from 2 data sources (aps_com_l_string, aps_cs_d_root) and exposes 44 fields with key field CommunicationSystemID. It has 7 associations to related views. It is exposed through 1 OData service (APS_COM_API_CS_READ). Part of development package SR_APS_COM_PUB_ODATA_CS_READ.

Data Sources (2)

SourceAliasJoin Type
aps_com_l_string _String left_outer
aps_cs_d_root cs from

Associations (7)

CardinalityTargetAliasCondition
[0..1] aps_iam_busr_core _ChangeUser cs.lastchangedbyuser = _ChangeUser.UserID
[0..*] APS_COM_CS_READ_CS_CDOC _ChangeDocs cs.commsyst = _ChangeDocs.CommunicationSystemID
[0..*] aps_com_cs_read_cs_inbnd InboundUsers cs.commsyst = InboundUsers.CommunicationSystemID
[0..*] aps_com_cs_read_cs_outbnd OutboundUsers cs.commsyst = OutboundUsers.CommunicationSystemID
[0..*] aps_com_cs_read_cs_ca CommunicationArrangements cs.commsyst = CommunicationArrangements.CommunicationSystemID
[0..*] APS_COM_CS_READ_CS_ECHANNEL EventChannel cs.commsyst = EventChannel.CommunicationSystemID
[0..*] APS_COM_CS_READ_CS_OIDC OIDCProvider cs.commsyst = OIDCProvider.CommunicationSystemID

Annotations (3)

NameValueLevelField
AccessControl.authorizationCheck #NOT_REQUIRED view
EndUserText.label Communication Systems view
Metadata.ignorePropagatedAnnotations true view

OData Services (1)

ServiceBindingVersionContractRelease
APS_COM_API_CS_READ APS_COM_API_CS_READ V4 C2 C1

Fields (44)

KeyFieldSource TableSource FieldDescription
KEY CommunicationSystemID aps_cs_d_root commsyst
CommunicationSystemName aps_cs_d_root commsystname
HostName aps_cs_d_root commsysthostname
UIHostName aps_cs_d_root commsystuihostname
commsystportendasint4asTCPPort
LogicalSystemID aps_cs_d_root intermediatedoclogicalsystem
BusinessSystemID aps_cs_d_root businesssystemname
InboundOnly aps_cs_d_root inboundonly
HubSystem aps_cs_d_root ishubsystem
SAPClient aps_cs_d_root commsystsapclient
RFCLoadBalancing aps_cs_d_root isloadbalancing
RFCSAPSystemID aps_cs_d_root sapsystemid
RFCSAPSystemNumber aps_cs_d_root sapsystemnumber
RFCLogonGroup aps_cs_d_root logongroup
RFCMessageServerTargetHost aps_cs_d_root messageservertargethost
is_RFC_fast_serializ_active aps_cs_d_root fastserializer
OwnSystem aps_cs_d_root isownsystem
SystemCipherSuiteDefault aps_com_l_string string
OAuth2IdentityProviderActive aps_cs_d_root oauth2idpenabled
OAuth2IdentityProviderName aps_cs_d_root oauth2idpname
OAuth2IDPUserLogonType aps_cs_d_root oauth2idpuserlogontype
OAuth2AuthEndpoint aps_cs_d_root oauth2authendpoint
OAuth2TokenEndpoint aps_cs_d_root oauth2tokenendpoint
OAuth2Audience aps_cs_d_root oauth2audience
SAPCloudConnectorActive aps_cs_d_root isabapsystem
SAPCloudConnectorLocationID aps_cs_d_root scclocationid
SAMLBearerAssertionProvActive aps_cs_d_root samlbapenabled
SAMLBearerAssertionProvName aps_cs_d_root samlbapname
SAMLBearerAssProvUserLogonType aps_cs_d_root samlbapuserlogontype
OwnerContactPersonName aps_cs_d_root commsystownrcntctpersnname
OwnerContactPersonPhone aps_cs_d_root commsystownrcntctpersnphnmbr
OwnerContactPersonEMail aps_cs_d_root commsystownrcntctpersnemladdr
LastChangedDateTime aps_cs_d_root lastchangedatetime
LastChangedByUserID aps_cs_d_root lastchangedbyuser
LastChangedByUserName _ChangeUser UserName
LastChangedByUserDescription _ChangeUser FullName
LastChangedByEMailAddress _ChangeUser EmailAddress
LastChangedByGlobalUserID _ChangeUser GlobalUserID
InboundUsers InboundUsers
OutboundUsers OutboundUsers
CommunicationArrangements CommunicationArrangements
EventChannel EventChannel
OIDCProvider OIDCProvider
_ChangeDocs _ChangeDocs
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'Communication Systems'
@Metadata.ignorePropagatedAnnotations: true

/*+[hideWarning] { "IDS" : [ "KEY_CHECK" ]  } */
define view entity aps_com_cs_read_cs
  as select from    aps_cs_d_root    as cs
    left outer join aps_com_l_string as _String on cs.commsyst = _String.id

  // Change User Information

  association [0..1] to aps_iam_busr_core           as _ChangeUser               on cs.lastchangedbyuser = _ChangeUser.UserID
  association [0..*] to APS_COM_CS_READ_CS_CDOC    as _ChangeDocs                on cs.commsyst = _ChangeDocs.CommunicationSystemID //_ChangeDocs.db_key = $projection.db_key


  // Associations

  association [0..*] to aps_com_cs_read_cs_inbnd    as InboundUsers              on cs.commsyst = InboundUsers.CommunicationSystemID
  association [0..*] to aps_com_cs_read_cs_outbnd   as OutboundUsers             on cs.commsyst = OutboundUsers.CommunicationSystemID
  association [0..*] to aps_com_cs_read_cs_ca       as CommunicationArrangements on cs.commsyst = CommunicationArrangements.CommunicationSystemID
  association [0..*] to APS_COM_CS_READ_CS_ECHANNEL as EventChannel              on cs.commsyst = EventChannel.CommunicationSystemID
  association [0..*] to APS_COM_CS_READ_CS_OIDC     as OIDCProvider              on cs.commsyst = OIDCProvider.CommunicationSystemID
  
{
      @EndUserText: { label: 'Communication System ID', quickInfo: 'Communication System ID' }
  key cs.commsyst                      as CommunicationSystemID,

      //      @Consumption.hidden: true

      //      cs.db_key                        as DBKey,


      @EndUserText: { label: 'Communication System Name', quickInfo: 'Communication System Name' }
      cs.commsystname                  as CommunicationSystemName,

      @EndUserText: { label: 'Host Name', quickInfo: 'Communication System Host Name' }
      cs.commsysthostname              as HostName,
      @EndUserText: { label: 'UIHostName', quickInfo: 'Communication System UI Host Name' }
      cs.commsystuihostname            as UIHostName,
      @EndUserText: { label: 'TCP Port', quickInfo: 'Communication System TCP Port' }
      cast(
        case
          when cs.commsystport = '' then '0'
          else cs.commsystport
        end
      as int4)                         as TCPPort,

      @EndUserText: { label: 'Logical System ID', quickInfo: 'Logical System ID' }
      cs.intermediatedoclogicalsystem  as LogicalSystemID,
      @EndUserText: { label: 'Business System ID', quickInfo: 'Business System ID' }
      cs.businesssystemname            as BusinessSystemID,
      @EndUserText: { label: 'Inbound Only', quickInfo: 'Inbound Only' }
      cs.inboundonly                   as InboundOnly,
      @EndUserText: { label: 'Hub System', quickInfo: 'Hub System' }
      cs.ishubsystem                   as HubSystem,

      @EndUserText: { label: 'SAP Client', quickInfo: 'SAP Client' }
      cs.commsystsapclient             as SAPClient,

      @EndUserText: { label: 'RFC Load Balancing', quickInfo: 'RFC Load Balancing' }
      cs.isloadbalancing               as RFCLoadBalancing,
      @EndUserText: { label: 'RFC SAP System ID', quickInfo: 'RFC SAP System ID' }
      cs.sapsystemid                   as RFCSAPSystemID,
      @EndUserText: { label: 'RFC SAP System Number', quickInfo: 'RFC SAP System Number' }
      cs.sapsystemnumber               as RFCSAPSystemNumber,
      @EndUserText: { label: 'RFC Logon Group', quickInfo: 'RFC Logon Group' }
      cs.logongroup                    as RFCLogonGroup,
      @EndUserText: { label: 'RFC Message Server Target Host', quickInfo: 'RFC Message Server Target Host' }
      cs.messageservertargethost       as RFCMessageServerTargetHost,
      @EndUserText: { label: 'RFC Fast Serialization', quickInfo: 'Is RFC fast serialization enabled?' }
      @OData.property.name  : 'IsRFCFastSerializationActive'
      cs.fastserializer                as is_RFC_fast_serializ_active,

      @EndUserText: { label: 'Own System', quickInfo: 'Own System' }
      cs.isownsystem                   as OwnSystem,

      @EndUserText: { label: 'Cipher Suites Code', quickInfo: 'Cipher Suites Code' }
//      @ObjectModel.virtualElement: true

//      @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_APS_COM_CIPHER_CALCULATE'

      @OData.property.name  : 'CipherSuites'
      cast(case
      when cs.ciphersuitecode = '01' then 'TLS_1_0_to_1_2'
      when cs.ciphersuitecode = '02' then 'TLS_1_0_to_1_3'
      when cs.ciphersuitecode = '03' then 'TLS_1_2_only'
      when cs.ciphersuitecode = '04' then 'TLS_1_2_to_1_3'
      else ''
      end as abap.char(14)
      )                                as cipher_suite_code,
      @EndUserText: { label: 'Is Cipher Suites Default', quickInfo: 'Is Cipher Suites Definition default?' }
      @ObjectModel.virtualElement: true
      @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_APS_COM_CIPHER_CALCULATE'
      @OData.property.name  : 'IsCipherSuiteDefault'
      _String.boolean                  as is_cipher_suite_default,
      @EndUserText: { label: 'Is Cipher Suites Default', quickInfo: 'Is Cipher Suites Definition default?' }
      @ObjectModel.virtualElement: true
      @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_APS_COM_CIPHER_CALCULATE'
      _String.string                   as SystemCipherSuiteDefault,

      @EndUserText: { label: 'OAuth 2.0 IDP Enabled', quickInfo: 'OAuth 2.0 IDP Enabled' }
      cs.oauth2idpenabled              as OAuth2IdentityProviderActive,
      @EndUserText: { label: 'OAuth 2.0 IDP Name', quickInfo: 'OAuth 2.0 IDP Name' }
      cs.oauth2idpname                 as OAuth2IdentityProviderName,
      @EndUserText: { label: 'OAuth 2.0 IDP User Logon Type', quickInfo: 'OAuth 2.0 IDP User Logon Type' }
      cs.oauth2idpuserlogontype        as OAuth2IDPUserLogonType,

      @EndUserText: { label: 'OAuth 2.0 Auth Endpoint', quickInfo: 'OAuth 2.0 Auth Endpoint' }
      cs.oauth2authendpoint            as OAuth2AuthEndpoint,
      @EndUserText: { label: 'OAuth 2.0 Token Endpoint', quickInfo: 'OAuth 2.0 Token Endpoint' }
      cs.oauth2tokenendpoint           as OAuth2TokenEndpoint,
      @EndUserText: { label: 'OAuth 2.0 Audience', quickInfo: 'OAuth 2.0 Audience' }
      cs.oauth2audience                as OAuth2Audience,

      @EndUserText: { label: 'Use Cloud Connector', quickInfo: 'Use Cloud Connector' }
      cs.isabapsystem                  as SAPCloudConnectorActive,
      @EndUserText: { label: 'SAP Cloud Connector Location ID', quickInfo: 'SAP Cloud Connector Location ID' }
      cs.scclocationid                 as SAPCloudConnectorLocationID,

      @EndUserText: { label: 'SAML Bearer Assertion Provider Enabled', quickInfo: 'SAML Bearer Assertion Provider Enabled' }
      cs.samlbapenabled                as SAMLBearerAssertionProvActive,
      @EndUserText: { label: 'SAML Bearer Assertion Provider Name', quickInfo: 'SAML Bearer Assertion Provider Name' }
      cs.samlbapname                   as SAMLBearerAssertionProvName,
      @EndUserText: { label: 'SAML BAP. User Logon Type', quickInfo: 'SAML Bearer Assersion Provider User Logon Type' }
      cs.samlbapuserlogontype          as SAMLBearerAssProvUserLogonType,

      @EndUserText: { label: 'Owner Contact Person Name', quickInfo: 'Owner Contact Person Name' }
      cs.commsystownrcntctpersnname    as OwnerContactPersonName,
      @EndUserText: { label: 'Owner Contact Person Phone', quickInfo: 'Owner Contact Person Phone' }
      cs.commsystownrcntctpersnphnmbr  as OwnerContactPersonPhone,
      @EndUserText: { label: 'Owner Contact Person EMail', quickInfo: 'Owner Contact Person EMail' }
      cs.commsystownrcntctpersnemladdr as OwnerContactPersonEMail,

      @EndUserText: { label: 'Last Changed DateTime', quickInfo: 'Last Changed DateTime' }
      cs.lastchangedatetime            as LastChangedDateTime,
      @EndUserText: { label: 'Last Changed By User ID', quickInfo: 'Last Changed by User ID' }
      cs.lastchangedbyuser             as LastChangedByUserID,
      @EndUserText: { label: 'Last Changed By User Name', quickInfo: 'Last Changed by User Name' }
      _ChangeUser.UserName             as LastChangedByUserName,
      @EndUserText: { label: 'Last Changed By User Description', quickInfo: 'Last Changed by User Description' }
      _ChangeUser.FullName             as LastChangedByUserDescription,
      @EndUserText: { label: 'Last Changed By EMail', quickInfo: 'Last Changed by EMail Address' }
      _ChangeUser.EmailAddress         as LastChangedByEMailAddress,
      @EndUserText: { label: 'Last Changed By GlobalUserID', quickInfo: 'Last Changed by GlobalUserID' }
      _ChangeUser.GlobalUserID         as LastChangedByGlobalUserID,

      InboundUsers,
      OutboundUsers,
      CommunicationArrangements,
      EventChannel,
      OIDCProvider,
      _ChangeDocs
}
where
  (
       cs.commsysttype = '1'
    or cs.commsysttype = ''
  )
  and  cs.commsyst     not like 'SAP_%'