I_ChgRecdRefRoutingTP

DDL: I_CHGRECDREFROUTINGTP SQL: ICRREFROUTINGTP Type: view TRANSACTIONAL

Change Record Reference Object Routing TP

I_ChgRecdRefRoutingTP is a Transactional CDS View that provides data about "Change Record Reference Object Routing TP" in SAP S/4HANA. It reads from 2 data sources (I_ProductionRoutingVersion, I_ChgRecdRefRoutingBsc) and exposes 26 fields with key field ChangeRecordReferenceUUID. It has 2 associations to related views.

Data Sources (2)

SourceAliasJoin Type
I_ProductionRoutingVersion Routing left_outer
I_ChgRecdRefRoutingBsc routingReference from

Associations (2)

CardinalityTargetAliasCondition
[1..1] I_ChangeRecordDraftTP _ChangeRecordTP $projection.ChangeRecordUUID = _ChangeRecordTP.ChangeRecordUUID
[0..1] E_ChgRecdRefRoutingBsc _RoutingExtension $projection.ChangeRecordReferenceUUID = _RoutingExtension.ChangeRecordReferenceUUID

Annotations (11)

NameValueLevelField
AbapCatalog.sqlViewName ICRREFROUTINGTP view
AbapCatalog.compiler.compareFilter true view
EndUserText.label Change Record Reference Object Routing TP view
AccessControl.authorizationCheck #NOT_REQUIRED view
VDM.viewType #TRANSACTIONAL view
ObjectModel.writeDraftPersistence PLMCRREFROU_D view
AccessControl.personalData.blocking #NOT_REQUIRED view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.dataClass #MIXED view
ObjectModel.usageType.sizeCategory #L view
ClientHandling.algorithm #SESSION_VARIABLE view

Fields (26)

KeyFieldSource TableSource FieldDescription
KEY ChangeRecordReferenceUUID I_ChgRecdRefRoutingBsc ChangeRecordReferenceUUID
ChangeRecordUUID I_ChgRecdRefRoutingBsc ChangeRecordUUID
ChangeRecordReferenceType I_ChgRecdRefRoutingBsc ChangeRecordReferenceType
ChangeRecordReferenceSubtype I_ChgRecdRefRoutingBsc ChangeRecordReferenceSubtype
ChangeRecordRefObjectUUID I_ChgRecdRefRoutingBsc ChangeRecordRefObjectUUID
ChangeRecordReference I_ChgRecdRefRoutingBsc ChangeRecordReference
ParentChangeRecordRefUUID I_ChgRecdRefRoutingBsc ParentChangeRecordRefUUID
IsMainReference I_ChgRecdRefRoutingBsc IsMainReference
CreatedByUser I_ChgRecdRefRoutingBsc CreatedByUser
CreationDateTime I_ChgRecdRefRoutingBsc CreationDateTime
LastChangedByUser I_ChgRecdRefRoutingBsc LastChangedByUser
LastChangeDateTime I_ChgRecdRefRoutingBsc LastChangeDateTime
ChangeRecordItemRelevance I_ChgRecdRefRoutingBsc ChangeRecordItemRelevance
ChangeRecordVirtualRefInd I_ChgRecdRefRoutingBsc ChangeRecordVirtualRefInd
Plant I_ProductionRoutingVersion Plant
OrderID I_ProductionRoutingVersion OrderID
ChangeRecordItemProcgStatus ChangeRecordItemProcgStatus
ChgRecdItmTgtSts ChgRecdItmTgtSts
ChgRecdItmDSgntr ChgRecdItmDSgntr
ChgRecdCurrentItemProcgStatus ChgRecdCurrentItemProcgStatus
ChgRecdReasonForChange I_ChgRecdRefRoutingBsc ChgRecdReasonForChange
ExpdCompltnDte I_ChgRecdRefRoutingBsc ExpdCompltnDte
ChgRecdAuthznGrpText I_ChgRecdRefRoutingBsc ChgRecdAuthznGrpText
ChgRecdNmbrChgSts I_ChgRecdRefRoutingBsc ChgRecdNmbrChgSts
ChangeNumber I_ChgRecdRefRoutingBsc ChangeNumber
_ChangeRecordTP _ChangeRecordTP
@AbapCatalog.sqlViewName: 'ICRREFROUTINGTP'
@AbapCatalog.compiler.compareFilter: true
@EndUserText.label: 'Change Record Reference Object Routing TP'
@AccessControl.authorizationCheck: #NOT_REQUIRED
@VDM.viewType: #TRANSACTIONAL
@ObjectModel: { semanticKey: ['BillOfOperationsType','BillOfOperationsGroup','BillOfOperationsVariant','BillOfOperationsVersion'],
                writeDraftPersistence: 'PLMCRREFROU_D',
                createEnabled,
                deleteEnabled,
                updateEnabled
              }
@AccessControl.personalData.blocking: #NOT_REQUIRED
@ObjectModel.usageType: {serviceQuality: #C,
                         dataClass: #MIXED,
                         sizeCategory: #L}
@ClientHandling.algorithm: #SESSION_VARIABLE
define view I_ChgRecdRefRoutingTP
  as select from    I_ChgRecdRefRoutingBsc     as routingReference
    left outer join I_ProductionRoutingVersion as Routing on  routingReference.ChgRecRefInternalKey1 = Routing.BillOfOperationsGroup
                                                          and routingReference.ChgRecRefInternalKey2 = Routing.BillOfOperationsType
                                                          and routingReference.ChgRecRefInternalKey3 = Routing.BillOfOperationsVariant
                                                          and routingReference.ChgRecRefInternalKey4 = Routing.BillOfOperationsVersion
  association [1..1] to I_ChangeRecordDraftTP  as _ChangeRecordTP   on $projection.ChangeRecordUUID = _ChangeRecordTP.ChangeRecordUUID
  association [0..1] to E_ChgRecdRefRoutingBsc as _RoutingExtension on $projection.ChangeRecordReferenceUUID = _RoutingExtension.ChangeRecordReferenceUUID
{
  key   routingReference.ChangeRecordReferenceUUID,
        case
           when Routing.BillOfOperationsType is null then cast(SUBSTRING( routingReference.ChangeRecordReference, 9, 1) as plnty)
           else cast(Routing.BillOfOperationsType as plnty)
           end as BillOfOperationsType,

        case
        when Routing.BillOfOperationsGroup is null then  cast(SUBSTRING( routingReference.ChangeRecordReference, 1, 8) as plnnr)
        else cast(Routing.BillOfOperationsGroup as plnnr)
        end    as BillOfOperationsGroup,

        case
         when Routing.BillOfOperationsVariant is null then cast (SUBSTRING( routingReference.ChangeRecordReference, 10, 2) as plnal)
         else cast(Routing.BillOfOperationsVariant as plnal)
         end   as BillOfOperationsVariant,

        case
          when Routing.BillOfOperationsVersion is null then cast (SUBSTRING( routingReference.ChangeRecordReference, 12, 4) as plnversn)
          else cast(Routing.BillOfOperationsVersion as plnversn)
          end  as BillOfOperationsVersion,
        routingReference.ChangeRecordUUID,
        routingReference.ChangeRecordReferenceType,
        routingReference.ChangeRecordReferenceSubtype,
        routingReference.ChangeRecordRefObjectUUID,
        routingReference.ChangeRecordReference,
        routingReference.ParentChangeRecordRefUUID,
        routingReference.IsMainReference,
        @Semantics.user.createdBy: true
        @ObjectModel.readOnly: true
        routingReference.CreatedByUser,
        routingReference.CreationDateTime,
        @Semantics.user.lastChangedBy: true
        @ObjectModel.readOnly: true
        routingReference.LastChangedByUser,
        routingReference.LastChangeDateTime,
        routingReference.ChangeRecordItemRelevance,
        routingReference.ChangeRecordVirtualRefInd,
        @ObjectModel.readOnly: true
        Routing.Plant,
        @ObjectModel.readOnly: true
        Routing.OrderID,
        ChangeRecordItemProcgStatus,
        ChgRecdItmTgtSts,
        ChgRecdItmDSgntr,
        ChgRecdCurrentItemProcgStatus,
        routingReference.ChgRecdReasonForChange,
        routingReference.ExpdCompltnDte,
        routingReference.ChgRecdAuthznGrpText,
        routingReference.ChgRecdNmbrChgSts,
        routingReference.ChangeNumber,
        @ObjectModel.association.type:  [ #TO_COMPOSITION_PARENT, #TO_COMPOSITION_ROOT ]
        _ChangeRecordTP
}
//where

//Routing.OrderID = ''  // Commenting because Routing stores both master and order-specific routings as type ROU. With this condition here

// the draft table for Routing will never store the order specific routing ,so after save the order specific routing was always getting empty.

// Order specific routings need not be shown in Routing section so this condition is used in the Routing consumption view C_ChangeRecordObjPgRouting

/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_CHGRECDREFROUTINGBSC",
"I_PRODUCTIONROUTINGVERSION"
],
"ASSOCIATED":
[
"E_CHGRECDREFROUTINGBSC",
"I_CHANGERECORDDRAFTTP"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/