@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_%'