P_SalesOrderInSupplyMfgIssue2

DDL: P_SALESORDERINSUPPLYMFGISSUE2 SQL: PSOFISSUESU022 Type: view COMPOSITE

P_SalesOrderInSupplyMfgIssue2 is a Composite CDS View in SAP S/4HANA. It reads from 1 data source (I_ManufacturingOrder) and exposes 15 fields with key field ManufacturingOrder.

Data Sources (1)

SourceAliasJoin Type
I_ManufacturingOrder I_ManufacturingOrder from

Annotations (8)

NameValueLevelField
ClientHandling.algorithm #SESSION_VARIABLE view
ObjectModel.usageType.dataClass #MIXED view
ObjectModel.usageType.serviceQuality #D view
ObjectModel.usageType.sizeCategory #S view
VDM.private true view
VDM.viewType #COMPOSITE view
AccessControl.authorizationCheck #NOT_REQUIRED view
AbapCatalog.sqlViewName PSOFISSUESU022 view

Fields (15)

KeyFieldSource TableSource FieldDescription
KEY ManufacturingOrder ManufacturingOrder
ManufacturingOrderCategory ManufacturingOrderCategory
SalesOrder SalesOrder
SalesOrderItem SalesOrderItem
MfgOrderActualReleaseDate MfgOrderActualReleaseDate
MfgOrderActualStartDate MfgOrderActualStartDate
MfgOrderActualEndDate MfgOrderActualEndDate
MfgOrderScheduledReleaseDate MfgOrderScheduledReleaseDate
MfgOrderScheduledStartDate MfgOrderScheduledStartDate
MfgOrderScheduledEndDate MfgOrderScheduledEndDate
MfgOrderItemActualDeliveryDate MfgOrderItemActualDeliveryDate
MfgOrderActualCompletionDate MfgOrderActualCompletionDate
whenpopulatedOrderIsTechnicallyCompleted
OrderIsClosedIsMarkedForDeletion
whensetOrderIsDeleted
@ClientHandling.algorithm: #SESSION_VARIABLE 
@ObjectModel.usageType.dataClass: #MIXED
@ObjectModel.usageType.serviceQuality: #D
@ObjectModel.usageType.sizeCategory: #S
@VDM.private: true
@VDM.viewType: #COMPOSITE
@AccessControl.authorizationCheck:#NOT_REQUIRED
@AbapCatalog.sqlViewName: 'PSOFISSUESU022'

define view P_SalesOrderInSupplyMfgIssue2

as select from I_ManufacturingOrder --released version of I_MfgOrder

{
   key ManufacturingOrder,
    
   ManufacturingOrderCategory,
   SalesOrder,
   SalesOrderItem, 
   
   
//All dates needed above for 1. DueDateCalculation and  2.Checking that PO is still open    

   MfgOrderActualReleaseDate,
   MfgOrderActualStartDate,
   MfgOrderActualEndDate,
   MfgOrderScheduledReleaseDate, 
   MfgOrderScheduledStartDate,
   MfgOrderScheduledEndDate,
   MfgOrderItemActualDeliveryDate,                                                                          
   MfgOrderActualCompletionDate,   -- when populated: OrderIsTechnicallyCompleted, OrderIsClosed
   IsMarkedForDeletion,            -- when set: OrderIsDeleted, OrderIsMarkedForDeletion   
   IsCompletelyDelivered,          -- when set: OrderIsDelivered
   MfgOrderConfirmedEndDate,       -- when populated: OrderIsConfirmed
   

-------------------------
--Calculate Overdue Flags      
-------------------------
// ReleaseDate Overdue ? ("Overdue" means: there is no Actual<Date>, despite Scheduled<Date> is overdue (in past) )

   case when MfgOrderActualReleaseDate = '00000000' and MfgOrderScheduledReleaseDate < $session.system_date 
        then 'X'
        else ' '
   end as MfgOrderReleasedDateOverdue,

// StartDate Overdue ? 

    case when MfgOrderActualStartDate = '00000000' and MfgOrderScheduledStartDate < $session.system_date   
         then 'X'
         else ' '
    end as MfgOrderStartDateOverdue,  

// EndDate Overdue ? (treat ActualEndDate and ActualDeliveryDate together)

    case when IsCompletelyDelivered = ' ' and MfgOrderScheduledEndDate <= $session.system_date
         then 'X'
         else ' '
    end as MfgOrderEndDateOverdue 
   
 }
 



-----Old version OP2020, CE2011 has new version
//with parameters

//   P_ReferenceDate : sydate


//as select from I_MfgOrder

//

//{

//   key ManufacturingOrder,

//    

//   ManufacturingOrderCategory,

//   SalesOrder,

//   SalesOrderItem, 

//   

//   MfgOrderActualReleaseDate,

//   MfgOrderActualStartDate,

//   MfgOrderActualEndDate,

//   MfgOrderScheduledReleaseDate, 

//   MfgOrderScheduledStartDate,

//   MfgOrderScheduledEndDate,

//   

//   MfgOrderItemActualDeliveryDate,                                                                          --AT19.06.2019: needed in upper model for necessary condition of issue

//      

//// )

//   case when MfgOrderActualReleaseDate = '00000000' and MfgOrderScheduledReleaseDate < $session.system_date --AT19.06.2019 only when really overdue (changed from <= to <)

//        then 'X'

//        else ' '

//   end as MfgOrderReleasedDateOverdue,

//

//// )

//    case when MfgOrderActualStartDate = '00000000' and MfgOrderScheduledStartDate < $session.system_date   --AT19.06.2019 only when really overdue (changed from <= to <)

//         then 'X'

//         else ' '

//    end as MfgOrderStartDateOverdue,  

//

//// )

//    -- AT26.8. also consider ltrmi (MfgOrderItemActualDeliveryDate) together with gltri (MfgOrderActualEndDate)

//    case when MfgOrderActualEndDate = '00000000' and MfgOrderItemActualDeliveryDate = '00000000' and MfgOrderScheduledEndDate <= $session.system_date

//         then 'X'

//         else ' '

//    end as MfgOrderEndDateOverdue 

//   

// }

// 

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