I_CHGRECDREFROUTINGTP

CDS View

Change Record Reference Object Routing TP

I_CHGRECDREFROUTINGTP is a CDS View in S/4HANA. Change Record Reference Object Routing TP. It contains 4 fields. 1 CDS views read from this table.

CDS Views using this table (1)

ViewTypeJoinVDMDescription
C_ChangeRecordObjPgRouting view from CONSUMPTION Change Record Object Page Routing

Fields (4)

KeyField CDS FieldsUsed in Views
BillOfOperationsType BillOfOperationsType 1
BillOfOperationsVariant BillOfOperationsVariant 1
BillOfOperationsVersion BillOfOperationsVersion 1
Plant Plant 1
@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":""
}
}*/