I_ARunItmRsnCode

DDL: I_ARUNITMRSNCODE Type: view COMPOSITE Package: VDM_ARUN_MONITOR

Basic View for Reason Code of ARun

I_ARunItmRsnCode is a Composite CDS View that provides data about "Basic View for Reason Code of ARun" in SAP S/4HANA. It reads from 5 data sources (P_ARunATPResultRequirement, I_PurgDocScheduleLine, P_ARunDmnd, I_ARunSimlnLog, I_SalesDocumentScheduleLine) and exposes 39 fields. Part of development package VDM_ARUN_MONITOR.

Data Sources (5)

SourceAliasJoin Type
P_ARunATPResultRequirement ABOP from
I_PurgDocScheduleLine EKET left_outer
P_ARunDmnd SDO left_outer
I_ARunSimlnLog SIMLOG left_outer
I_SalesDocumentScheduleLine VBEP left_outer

Annotations (11)

NameValueLevelField
ClientHandling.algorithm #SESSION_VARIABLE view
EndUserText.label Basic View for Reason Code of ARun view
VDM.viewType #COMPOSITE view
VDM.lifecycle.contract.type #PUBLIC_LOCAL_API view
AccessControl.authorizationCheck #NOT_REQUIRED view
AccessControl.personalData.blocking #REQUIRED view
AbapCatalog.sqlViewName IARUNRSNCODE view
AbapCatalog.compiler.compareFilter true view
ObjectModel.usageType.dataClass #MIXED view
ObjectModel.usageType.serviceQuality #X view
ObjectModel.usageType.sizeCategory #XXL view

Fields (39)

KeyFieldSource TableSource FieldDescription
ATPCheckUUID P_ARunATPResultRequirement ATPCheckUUID
RequirementDocumentNumber ATPRelevantDocument
RequirementDocumentItem ATPRelevantDocumentItem
RequirementType ATPRelevantDocumentCategory
ABOPVariantUUID ABOPVariantUUID
ABOPVariantName ABOPVariantName
StartedByUser StartedByUser
ATPCheckStartUTCDateTime ATPCheckStartUTCDateTime
ATPCheckEndUTCDateTime ATPCheckEndUTCDateTime
ATPCheckStatus ATPCheckStatus
ABOPExecutionMode ABOPExecutionMode
ATPRlvtDocItmIsSupAssgmtRlvt ATPRlvtDocItmIsSupAssgmtRlvt
ABOPAssignmentPreviewIsActive ABOPAssignmentPreviewIsActive
SupAssgmtItemStatus SupAssgmtItemStatus
Material P_ARunATPResultRequirement Material
Plant P_ARunATPResultRequirement Plant
BaseUnit P_ARunATPResultRequirement BaseUnit
SalesOrganization SalesOrganization
DistributionChannel DistributionChannel
Division Division
SalesDistrict SalesDistrict
CustomerGroup CustomerGroup
CompanyCode CompanyCode
MaterialGroup MaterialGroup
ProductSeasonYear ProductSeasonYear
ProductSeason ProductSeason
ProductCollection ProductCollection
ProductTheme ProductTheme
NetAmount NetAmount
DocumentCurrency DocumentCurrency
NetPriceAmount NetPriceAmount
NetPriceQuantity NetPriceQuantity
RequirementSegment P_ARunDmnd RequirementSegment
OrderType OrderType
OrderTypeName OrderTypeName
SoldToParty SoldToParty
ShipToParty ShipToParty
CrossPlantConfigurableProduct CrossPlantConfigurableProduct
DeliveryGroup DeliveryGroup
@ClientHandling.algorithm: #SESSION_VARIABLE
@EndUserText.label: 'Basic View for Reason Code of ARun'
@VDM: {
  viewType: #COMPOSITE,
  lifecycle.contract.type: #PUBLIC_LOCAL_API
}
@AccessControl: {
  authorizationCheck: #NOT_REQUIRED,
  personalData.blocking: #REQUIRED
}
@AbapCatalog: {
  sqlViewName: 'IARUNRSNCODE',
  compiler.compareFilter: true
 }
@ObjectModel: {
   usageType: {
     dataClass:      #MIXED,
     serviceQuality: #X,
     sizeCategory:   #XXL
   }
}
define view I_ARunItmRsnCode
  as select from    P_ARunATPResultRequirement  as ABOP
    left outer join I_ARunSimlnLog              as SIMLOG on  ABOP.ATPCheckUUID                 = SIMLOG.ATPCheckUUID
                                                          and ABOP.ATPRelevantDocumentCategory  = SIMLOG.RequirementType
                                                          and ABOP.ATPRelevantDocument          = SIMLOG.RequirementDocumentNumber
                                                          and ABOP.ATPRelevantDocumentItem      = SIMLOG.RequirementDocumentItem
                                                          and ABOP.ATPRelevantDocScheduleLine   = SIMLOG.ATPRelevantDocScheduleLine
                                                          and ABOP.ABOPExecutionMode            = 'X'
                                                          and SIMLOG.RequestedRqmtQtyInBaseUnit > 0
    left outer join I_SalesDocumentScheduleLine as VBEP   on  ABOP.ATPRelevantDocument        = VBEP.SalesDocument
                                                          and ABOP.ATPRelevantDocumentItem    = VBEP.SalesDocumentItem
                                                          and ABOP.ATPRelevantDocScheduleLine = VBEP.ScheduleLine
                                                          and VBEP.ScheduleLineOrderQuantity  > 0
                                                          and ABOP.ABOPExecutionMode != 'X'
    left outer join I_PurgDocScheduleLine       as EKET   on  ABOP.ATPRelevantDocument        = EKET.PurchasingDocument
                                                          and ABOP.ATPRelevantDocumentItem    = LPAD(
      EKET.PurchasingDocumentItem, 6, '000000'
    )
                                                          and ABOP.ATPRelevantDocScheduleLine = EKET.ScheduleLine
                                                          and EKET.ScheduleLineOrderQuantity  > 0
                                                          and ABOP.ABOPExecutionMode != 'X'
    left outer join P_ARunDmnd                  as SDO    on  ABOP.ATPRelevantDocumentCategory = SDO.RequirementType
                                                          and ABOP.ATPRelevantDocument         = SDO.RequirementDocumentNumber
                                                          and ABOP.ATPRelevantDocumentItem     = SDO.RequirementDocumentItem

{

  ABOP.ATPCheckUUID,
  ATPRelevantDocument                                          as RequirementDocumentNumber,
  ATPRelevantDocumentItem                                      as RequirementDocumentItem,
  case
      when ABOP.ABOPExecutionMode = 'X'
      then SIMLOG.RequestedDate
      when VBEP.SalesDocument is not null
      then VBEP.RequestedDeliveryDate
    else
      EKET.ScheduleLineDeliveryDate
  end                                                          as RequestedDate,
  ATPRelevantDocumentCategory                                  as RequirementType,
  case
    when ABOP.ABOPExecutionMode = 'X'
      then SIMLOG.RequestedRqmtQtyInBaseUnit
    when VBEP.SalesDocument is not null
      then 
        ( case
            when VBEP.OrderToBaseQuantityDnmntr != 0 and VBEP.OrderToBaseQuantityDnmntr != 1
              then cast( VBEP.ScheduleLineOrderQuantity * division(VBEP.OrderToBaseQuantityNmrtr, VBEP.OrderToBaseQuantityDnmntr, 3) as ovr_conf_so_sl_qty )
            else cast( VBEP.ScheduleLineOrderQuantity as ovr_conf_so_sl_qty )
          end
        )
    else
      EKET.ScheduleLineOrderQuantity
  end                                                          as RequestedRqmtQtyInBaseUnit,
  ABOPVariantUUID,
  ABOPVariantName,
  StartedByUser,
  ATPCheckStartUTCDateTime,
  ATPCheckEndUTCDateTime,
  ATPCheckStatus,
  ABOPExecutionMode,
  ATPRlvtDocItmIsSupAssgmtRlvt,
  ABOPAssignmentPreviewIsActive,
  SupAssgmtItemStatus,
  ABOP.Material,
  ABOP.Plant,
  ABOP.BaseUnit,
  SalesOrganization,
  DistributionChannel,
  Division,
  SalesDistrict,
  CustomerGroup,
  CompanyCode,
  MaterialGroup,
  ProductSeasonYear,
  ProductSeason,
  ProductCollection,
  ProductTheme,
  NetAmount,
  DocumentCurrency,
  NetPriceAmount,
  NetPriceQuantity,
  SDO.RequirementSegment,
  OrderType,
  OrderTypeName,
  SoldToParty,
  ShipToParty,
  CrossPlantConfigurableProduct,
  DeliveryGroup
//  AdditionalCustomerGroup1,

//  AdditionalCustomerGroup2,

//  AdditionalCustomerGroup3,

//  AdditionalCustomerGroup4,

//  AdditionalCustomerGroup5,

//  ProductCharacteristic1,

//  ProductCharacteristic2,

//  ProductCharacteristic3,

//  FreeDefinedProductAttribute01,

//  FreeDefinedProductAttribute02,

//  FreeDefinedProductAttribute03,

//  RetailArticleColor,

//  RetailArticleMainSize,

//  RetailArticleSecondSize

}

where
          ATPRlvtDocItmIsSupAssgmtRlvt = 'X' //Supply Assignment Relevant Documents only

  and     ATPCheckStatus               = 'X' //Update Completed

  and     SupAssgmtItemStatus != ' '
  and     InventorySpecialStockType    = ' ' //No Special Stocks

  and(
          IsBusinessPurposeCompleted   is null
    or(
          IsBusinessPurposeCompleted   is not null
      and IsBusinessPurposeCompleted != 'X'
    )
  ) //Handle DPP