I_CmplRqVersEnhanced

DDL: I_CMPLRQVERSENHANCED SQL: ICRVERSIONENH Type: view BASIC Package: EHFND_BO_COMPLIANCE_REQ

Compliance Requirement Version View

I_CmplRqVersEnhanced is a Basic CDS View (Dimension) that provides data about "Compliance Requirement Version View" in SAP S/4HANA. It reads from 1 data source (I_CmplRqVers) and exposes 47 fields with key field CmplRqVersUUID. It has 8 associations to related views. It is exposed through 8 OData services (UI_CN_UPADAGDSCLFNJTT617, UI_EHS_FND_CD_SUPLR_PROCESS, UI_EHS_FND_CRR_DYN_MAN, ...). It is used in 7 Fiori applications: Manage Water Hazard Class, Registration for Confidential Business Information, Manage Exposure Scenarios, .... Part of development package EHFND_BO_COMPLIANCE_REQ.

Data Sources (1)

SourceAliasJoin Type
I_CmplRqVers CmplRqVers from

Associations (8)

CardinalityTargetAliasCondition
[0..*] I_CmplRqVersText _CmplRqVersText $projection.CmplRqVersUUID = _CmplRqVersText.CmplRqVersUUID
[0..1] I_CmplRqVersText _CmplRqVersTextInCurrentLang $projection.CmplRqVersUUID = _CmplRqVersTextInCurrentLang.CmplRqVersUUID and _CmplRqVersTextInCurrentLang.Language = $session.system_language
[0..1] P_CmplRqVersEnglishText _CmplRqVersTextEnglish $projection.CmplRqVersUUID = _CmplRqVersTextEnglish.CmplRqVersUUID
[0..1] I_EHSCmplRqIssgOrgFallback _CmplRqIssgOrgText $projection.CmplRqVersUUID = _CmplRqIssgOrgText.CmplRqVersUUID
[0..1] I_CmplncRqmtStatus _CmplncRqmtStatus $projection.CmplRqVersMaintStatus = _CmplncRqmtStatus.CmplRqStatus
[0..1] I_CmplncRqmtType _CmplncRqmtType $projection.CmplRqType = _CmplncRqmtType.CmplRqType
[0..1] I_CmplRqDomain _CmplRqDomain $projection.CmplRqDomain = _CmplRqDomain.CmplRqDomain
[0..*] I_CmplRqVersStructure _CmplRqVersStructure $projection.CmplRqVersUUID = _CmplRqVersStructure.CmplRqVersUUID

Annotations (13)

NameValueLevelField
AbapCatalog.sqlViewName ICRVERSIONENH view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
AccessControl.authorizationCheck #NOT_REQUIRED view
EndUserText.label Compliance Requirement Version View view
VDM.viewType #BASIC view
ObjectModel.transactionalProcessingEnabled true view
ObjectModel.usageType.https dataClass view
ObjectModel.usageType.sizeCategory #S view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.representativeKey CmplRqVersUUID view
ClientHandling.algorithm #SESSION_VARIABLE view
Analytics.dataCategory #DIMENSION view

OData Services (8)

ServiceBindingVersionContractRelease
UI_CN_UPADAGDSCLFNJTT617 UI_CN_UPADAGDSCLFNJTT617 V2 C1 NOT_RELEASED
UI_EHS_FND_CD_SUPLR_PROCESS UI_EHS_FND_CD_SUPLR_PROCV2 V2 C1 NOT_RELEASED
UI_EHS_FND_CRR_DYN_MAN UI_EHS_FND_CRR_DYN_MAN V2 C1 NOT_RELEASED
UI_EHS_FND_CRR_OVERVIEW UI_EHS_FND_CRR_OVERVIEW V2 C1 NOT_RELEASED
UI_EHS_SDS_CS_MAN UI_EHS_SDS_CS_MAN V2 C1 NOT_RELEASED
UI_EHS_SDS_ES_MAN UI_EHS_SDS_ES_MAN V2 C1 NOT_RELEASED
UI_EHS_SDS_ESDSANX_MAN UI_EHS_SDS_ESDSANX_MAN V2 C1 NOT_RELEASED
UI_EHS_SDS_TSR_MAN UI_EHS_SDS_TSR_MAN V2 C1 NOT_RELEASED

Fiori Apps (7)

App IDApp NameTypeDescription
F5756 Manage Water Hazard Class Transactional Manage Water Hazard Class
F6342 Registration for Confidential Business Information Transactional
F6749 Manage Exposure Scenarios Transactional Manage Exposure Scenarios
F6750 Manage Contributing Scenarios Transactional Manage Contributing Scenarios
F6751 Manage eSDS Annex Transactional Manage eSDS Annex
F7081 Assess Regulatory Data Transactional, Reuse Component The app serves only as the technical basis for app variants of the apps for assessing products against compliance requirements based on the "Regulatory Data Assessment" compliance pattern (see related apps).
F7436 Classify Dangerous Good - Unpackaged Product (JTT 617 3) Transactional

Manage Water Hazard Class

Business Role: Product Stewardship Specialist - Product Compliance

With this feature, you can assess products, raw materials and substances according to the applicable water hazard class regulations and manage the compliance assessments.

Registration for Confidential Business Information

Business Role: Master Data Specialist - Product Compliance

With this feature, you can document the registration of confidential business information. Use the Registration of Confidential Business Information app to enter the registration number and affected product or substance data to document the registration on product level or component level, depending on the country- or region-specific requirements.

Manage Exposure Scenarios

Business Role: Product Stewardship Specialist - Product Compliance

With the Manage Exposure Scenarios app, you can provide detailed information on an exposure scenario to describe the operational conditions and risk management measures that ensure safe use of the substance or mixture. You can edit the data to ensure that it is up to date and the unpackaged product stays compliant. You can also create a new or assign an existing contributing scenario. You can then release a version of the exposure scenario to use it in the Manage eSDS Annex app.

Manage Contributing Scenarios

Business Role: Product Stewardship Specialist - Product Compliance

With the Manage Contributing Scenarios app, you can provide detailed information on contributing activities for a specific use that are part of an exposure scenario. You can then release a version of the contributing scenario to use it in the exposure scenarios.

Manage eSDS Annex

Business Role: Product Stewardship Specialist - Product Compliance

With the Manage eSDS Annex app, you can create new or assign existing exposure scenarios to an unpackaged product. You can specify the data that is required as an annex to a safety data sheet to ensure that the unpackaged product stays compliant.

Fields (47)

KeyFieldSource TableSource FieldDescription
KEY CmplRqVersUUID CmplRqVersUUID
CmplRqVers CmplRqVers
CmplRqUUID CmplRqUUID
ComplianceRequirement ComplianceRequirement
CmplRqVersMaintStatus
CmplRqType
CmplRqMigrationSource CmplRqMigrationSource
CmplRqPattern CmplRqPattern
IssuingOrganization _CmplRqIssgOrgText IssuingOrganization
IssgOrganizationFreeSearchName _CmplRqIssgOrgText IssgOrganizationFreeSearchName
ContentProvider ContentProvider
CmplRqVersBuildDate CmplRqVersBuildDate
EffectiveDate EffectiveDate
CmplRqVersValidToDate CmplRqVersValidToDate
CmplRqApplicationComponent CmplRqApplicationComponent
CmplRqSourceURL CmplRqSourceURL
TransitionPeriodEndDate TransitionPeriodEndDate
CmplRqIsInitiallyPrvddBySAP CmplRqIsInitiallyPrvddBySAP
CmplRqExternalUUID CmplRqExternalUUID
CountryName CountryName
CmplRqVersDocumentationObject CmplRqVersDocumentationObject
CmplRqVersPermitNumber CmplRqVersPermitNumber
char21asCmplRqDomain
CmplRqPermitType
LastChangedByUser I_CmplRqVers LastChangedByUser
LastChangeDateTime I_CmplRqVers LastChangeDateTime
CmplRqVersEnglishName _CmplRqVersTextEnglish CmplRqVersName
CmplRqVersNameInCurLang _CmplRqVersTextInCurrentLang CmplRqVersName
CmplRqVersEHSLocationUUID
CmplRqVersExpiryDaysValue
SDSSubsqntShptOriglRule SDSSubsqntShptOriglRule
CmplRqVersTopic CmplRqVersTopic
_CmplRqApplCompText _CmplRqApplCompText
_CmplRqVersAppltyArea _CmplRqVersAppltyArea
_CmplRqVersCrTypeText _CmplRqVersCrTypeText
_CmplRqVersText _CmplRqVersText
_CmplRqVersTextInCurrentLang _CmplRqVersTextInCurrentLang
_CmplRqVersStructure _CmplRqVersStructure
_CompReqDesc _CompReqDesc
_CompReqHelpUrl _CompReqHelpUrl
_CompReqPattern _CompReqPattern
_CompReqRegON _CompReqRegON
_CompReqRegVN _CompReqRegVN
_CmplRqIssgOrgText _CmplRqIssgOrgText
_CmplncRqmtStatus _CmplncRqmtStatus
_CmplncRqmtType _CmplncRqmtType
_CmplRqDomain _CmplRqDomain
@AbapCatalog.sqlViewName: 'ICRVERSIONENH'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true

// Authorization not required, CRV is customizing-like data and  shall be generally available without restriction

@AccessControl.authorizationCheck: #NOT_REQUIRED

@EndUserText.label: 'Compliance Requirement Version View'

@VDM.viewType: #BASIC

@ObjectModel:
{
    transactionalProcessingEnabled: true,
    usageType:
    {
      -- see https://wiki.wdf.sap.corp/wiki/x/R5Bbbg

      dataClass: #MASTER,
      sizeCategory: #S,
      serviceQuality: #C
    },
    representativeKey: 'CmplRqVersUUID'
}
@ClientHandling.algorithm: #SESSION_VARIABLE

@Analytics:{
    dataCategory: #DIMENSION
}
/*----------------------------------------------------------------------------------------------------------------------
    Returns all Compliance Requirement Versions with CRV name with default logic
------------------------------------------------------------------------------------------------------------------------*/
define view I_CmplRqVersEnhanced
  as select from I_CmplRqVers as CmplRqVers
  association [0..*] to I_CmplRqVersText           as _CmplRqVersText              on  $projection.CmplRqVersUUID = _CmplRqVersText.CmplRqVersUUID
  //  association [0..1] to I_CmplRqVersName    as _CmplRqVersNames   on  $projection.CmplRqVersUUID = _CmplRqVersNames.CmplRqVersUUID

  association [0..1] to I_CmplRqVersText           as _CmplRqVersTextInCurrentLang on  $projection.CmplRqVersUUID            = _CmplRqVersTextInCurrentLang.CmplRqVersUUID
                                                                                       and _CmplRqVersTextInCurrentLang.Language = $session.system_language
  association [0..1] to P_CmplRqVersEnglishText    as _CmplRqVersTextEnglish       on  $projection.CmplRqVersUUID = _CmplRqVersTextEnglish.CmplRqVersUUID
  association [0..1] to I_EHSCmplRqIssgOrgFallback as _CmplRqIssgOrgText           on  $projection.CmplRqVersUUID = _CmplRqIssgOrgText.CmplRqVersUUID
  association [0..1] to I_CmplncRqmtStatus         as _CmplncRqmtStatus            on  $projection.CmplRqVersMaintStatus = _CmplncRqmtStatus.CmplRqStatus
  association [0..1] to I_CmplncRqmtType           as _CmplncRqmtType              on  $projection.CmplRqType = _CmplncRqmtType.CmplRqType
  association [0..1] to I_CmplRqDomain             as _CmplRqDomain                on  $projection.CmplRqDomain = _CmplRqDomain.CmplRqDomain

  association [0..*] to I_CmplRqVersStructure      as _CmplRqVersStructure         on  $projection.CmplRqVersUUID = _CmplRqVersStructure.CmplRqVersUUID
{
      @ObjectModel.text.element: [ 'CmplRqVersName' ]
  key CmplRqVersUUID,
      CmplRqVers,
      CmplRqUUID,
      ComplianceRequirement,
      @ObjectModel.foreignKey.association: '_CmplncRqmtStatus'
      --@ObjectModel.text.association: '_CmplncRqmtStatus'
      CmplRqVersMaintStatus,
      @ObjectModel.foreignKey.association: '_CmplncRqmtType'
      --@ObjectModel.text.association: '_CmplncRqmtType'
      CmplRqType,
      CmplRqMigrationSource,
      CmplRqPattern,
      //IssuingOrganization, Using Issuing Organization from text node as the one from root node is obsolete

      _CmplRqIssgOrgText.IssuingOrganization                                       as IssuingOrganization,
      _CmplRqIssgOrgText.IssgOrganizationFreeSearchName,
      ContentProvider,
      CmplRqVersBuildDate,
      EffectiveDate,
      CmplRqVersValidToDate,
      CmplRqApplicationComponent,
      CmplRqSourceURL,
      TransitionPeriodEndDate,
      CmplRqIsInitiallyPrvddBySAP,
      CmplRqExternalUUID,
      CountryName,
      CmplRqVersDocumentationObject,
      CmplRqVersPermitNumber,
      @ObjectModel.foreignKey.association: '_CmplRqDomain'
      --@ObjectModel.text.association: '_CmplRqDomain'
      cast( CmplRqDomain as abap.char(21))                                         as CmplRqDomain,
      cast( CmplRqPermitType as abap.char(10))                                     as CmplRqPermitType,
      CmplRqVers.LastChangedByUser,
      CmplRqVers.LastChangeDateTime,

      // name with fallback language

      cast(
        case
          when _CmplRqVersTextInCurrentLang.CmplRqVersName is not null
           and _CmplRqVersTextInCurrentLang.CmplRqVersName is not initial
            then _CmplRqVersTextInCurrentLang.CmplRqVersName
          when _CmplRqVersTextEnglish.CmplRqVersName is not null
           and _CmplRqVersTextEnglish.CmplRqVersName is not initial
            then _CmplRqVersTextEnglish.CmplRqVersName
          when ( _CmplRqVersTextInCurrentLang.CmplRqVersName is null or
                 _CmplRqVersTextInCurrentLang.CmplRqVersName is initial )
           and ( _CmplRqVersTextEnglish.CmplRqVersName is null or
                 _CmplRqVersTextEnglish.CmplRqVersName is initial )
            then ComplianceRequirement
        end
      as ehfnd_crr_crv_name preserving type )                                      as CmplRqVersName,

      _CmplRqVersTextEnglish.CmplRqVersName                                        as CmplRqVersEnglishName,
      _CmplRqVersTextInCurrentLang.CmplRqVersName                                  as CmplRqVersNameInCurLang,
      //      _CmplRqVersNames.CmplRqVersName,

      //      _CmplRqVersNames.CmplRqVersEnglishName,

      //      _CmplRqVersNames.CmplRqVersNameInCurLang,

      cast( CmplRqVersEHSLocationUUID as ehfnd_location_uuid_ref preserving type ) as CmplRqVersEHSLocationUUID,

      dats_days_between( CurrentDate, CmplRqVersValidToDate )                      as CmplRqVersExpiryDaysValue,
      SDSSubsqntShptOriglRule,
      CmplRqVersTopic,

//      // Official name with fallback language

//      cast(

//        case

//         when CmplRqRegulationOfficialName is not null

//           and CmplRqRegulationOfficialName is not initial

//            then CmplRqRegulationOfficialName

//          when CmplRqRglnEnglishOfclName is not null

//           and CmplRqRglnEnglishOfclName is not initial

//            then CmplRqRglnEnglishOfclName

//        end

//      as ehfnd_crv_regulation_off_name preserving type )                           as CmplRqRegulationOfficialName,

//

//      // Version name with fallback language

//      cast(

//        case

//         when CmplRqRegulationVersionName is not null

//           and CmplRqRegulationVersionName is not initial

//            then CmplRqRegulationVersionName

//         when CmplRqRglnEnglishVersName is not null

//           and CmplRqRglnEnglishVersName is not initial

//            then CmplRqRglnEnglishVersName

//        end

//      as ehfnd_crv_regulation_vers_name preserving type )                          as CmplRqRegulationVersionName,

//

//      // CR Pattern name with fallback language

//      cast(

//        case

//         when _CompReqPattern.CmplRqPatternName is not null

//           and _CompReqPattern.CmplRqPatternName is not initial

//            then _CompReqPattern.CmplRqPatternName

//         when _CompReqPattern.CmplRqPatternEnglishName is not null

//           and _CompReqPattern.CmplRqPatternEnglishName is not initial

//            then _CompReqPattern.CmplRqPatternEnglishName

//        end

//      as ehfnd_req_pattern_name_short preserving type )                           as CmplRqPatternName,


      /* Associations */
      _CmplRqApplCompText,
      _CmplRqVersAppltyArea,
      _CmplRqVersCrTypeText,
      _CmplRqVersText,
      _CmplRqVersTextInCurrentLang,
      _CmplRqVersStructure,
      _CompReqDesc,
      _CompReqHelpUrl,
      _CompReqPattern,
      _CompReqRegON,
      _CompReqRegVN,
      _CmplRqIssgOrgText,
      _CmplncRqmtStatus,
      _CmplncRqmtType,
      _CmplRqDomain
}