@AbapCatalog.sqlViewName: 'ISOLOITEMSITU'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl:
{
authorizationCheck: #CHECK,
personalData.blocking: #('TRANSACTIONAL_DATA')
}
@ClientHandling.algorithm: #SESSION_VARIABLE
@VDM: {
viewType: #COMPOSITE
}
@ObjectModel:{
representativeKey: 'BusinessSolutionOrder',
usageType:
{
dataClass: #TRANSACTIONAL,
serviceQuality: #C,
sizeCategory: #XXL
}
}
@ObjectModel.semanticKey: ['BusinessSolutionOrder', 'BusinessSolutionOrderItem']
@EndUserText.label:'Solution Order Item Situation View'
define view I_BusSolnOrderItemSituation
as select from I_ServiceDocumentItemEnhcd as SolutionOrderItem
left outer to many join I_ServiceDocumentItemSuccssr_2 as ServiceDocItemSuccessor on SolutionOrderItem.ServiceObjectType = 'BUS2000172'
and ServiceDocItemSuccessor.ServiceDocumentItemCharUUID = SolutionOrderItem.ServiceDocumentItemCharUUID
left outer to one join I_ServiceDocumentItemEnhcd as FollowUpDocumentItem on ServiceDocItemSuccessor.ServiceDocItmSuccssrCharUUID is not null
and FollowUpDocumentItem.ServiceDocumentItemCharUUID = ServiceDocItemSuccessor.ServiceDocItmSuccssrCharUUID
left outer to one join I_SDDocumentProcessFlow as SalesDocumentFlow on SolutionOrderItem.ServiceObjectType = 'BUS2000172'
and SolutionOrderItem.ServiceDocumentItemObjectType = 'BUS2000131'
and SalesDocumentFlow.PrecedingDocument = SolutionOrderItem.ServiceDocument
and SalesDocumentFlow.PrecedingDocumentCategory = 'SOLO'
and SalesDocumentFlow.SubsequentDocumentCategory = 'C'
left outer to one join I_SalesOrderItem as SalesOrderItem on SalesOrderItem.SalesOrder = SalesDocumentFlow.SubsequentDocument
and SalesOrderItem.SalesOrderItem = SolutionOrderItem.ServiceDocumentItem
left outer to one join I_BusSolnOrdItmFUPSubscription as SubscriptionItem on SubscriptionItem.BusSolnOrderItemCharUUID = SolutionOrderItem.ServiceDocumentItemCharUUID
and SolutionOrderItem.ServiceDocumentItemObjectType = 'BUS2000189'
left outer to one join I_BusSolnOrdFUPSubscription as Subscription on Subscription.ServiceDocumentRelationUUID = SubscriptionItem.ServiceDocumentItmRelationUUID
left outer to one join I_BusSolnOrdItmFUPEntProject as EnterpriseProjectItem on EnterpriseProjectItem.BusSolnOrderItemCharUUID = SolutionOrderItem.ServiceDocumentItemCharUUID
left outer to one join I_EnterpriseProject as EnterpriseProject on EnterpriseProject.ProjectUUID = EnterpriseProjectItem.ProjectUUID
association [0..1] to I_BusinessUserBasic as _ResponsibleEmployee on $projection.ResponsibleEmployee = _ResponsibleEmployee.BusinessPartner
{
// Key fields
key SolutionOrderItem.ServiceObjectType as ServiceObjectType,
key SolutionOrderItem.ServiceDocument as BusinessSolutionOrder,
key cast(ltrim(SolutionOrderItem.ServiceDocumentItem, '0') as abap.char(45)) as BusinessSolutionOrderItem,
key case
when SolutionOrderItem.ServiceDocumentItemObjectType = 'BUS2000131'
then cast(ltrim(SalesOrderItem.SalesOrder, '0') as abap.char(10))
else
cast(ltrim(FollowUpDocumentItem.ServiceDocument, '0') as abap.char(10))
end as SuccessorReferenceDocument,
// For authorization and navigation to object page
@Semantics.uuid: true
SolutionOrderItem.ServiceDocumentItemCharUUID as BusSolnOrderItemCharUUID,
SolutionOrderItem.ServiceDocumentItemObjectType,
SolutionOrderItem.ServiceDocItemCategory,
@ObjectModel.foreignKey.association: '_RespEmployee'
SolutionOrderItem.ResponsibleEmployee,
_ResponsibleEmployee.UserID as ResponsibleEmployeeUserID,
FollowUpDocumentItem.ServiceObjectType as ServiceDocSuccessorBusObjType,
Subscription.SubscrpnBillgSubscription,
// Situation: Delivery date is reached, but no or only partial delivery has taken place | Template: SOLN_SOLO_SLSITM_NOT_DLVRD
SolutionOrderItem.SrvcDocItmDeliveryStatus,
SolutionOrderItem.LtstConfirmedDeliveryDateTime,
// Situation: Requested service date of the Solution Order service item is close | Template: SOLN_SOLO_SRVCITM_NOT_SCHEDLD
SolutionOrderItem.RequestedServiceStartDateTime,
SolutionOrderItem.RequestedServiceStartDate,
@ObjectModel.foreignKey.association: '_ServiceEmployee'
FollowUpDocumentItem.ServiceEmployee,
// Situation: Planned execution date of the Solution Order service item reached | Template: SOLN_SOLO_SRVCITM_NOT_CMPLTD
SolutionOrderItem.PlannedServiceEndDateTime,
SolutionOrderItem.PlannedServiceEndDate,
// Situation: Project Start date of customer project changed | Template: SOLN_SOLO_PROJITM_DATE_CHGD
EnterpriseProject.Project as SuccessorProject,
EnterpriseProject.ProjectInternalID,
EnterpriseProject.ProcessingStatus,
@ObjectModel.foreignKey.association: '_SrvcDocItmLifecycleStatus'
SolutionOrderItem.ServiceDocumentItemStatus,
SolutionOrderItem.ServiceDocumentItemUUID,
// Fields required for authorization
@ObjectModel.foreignKey.association: '_SalesOrganization'
SolutionOrderItem.SalesOrganization,
@ObjectModel.foreignKey.association: '_DistributionChannel'
SolutionOrderItem.DistributionChannel,
@ObjectModel.foreignKey.association: '_Division'
SolutionOrderItem.Division,
@ObjectModel.foreignKey.association: '_SalesOffice'
SolutionOrderItem.SalesOffice,
@ObjectModel.foreignKey.association: '_SalesGroup'
SolutionOrderItem.SalesGroup,
@ObjectModel.foreignKey.association: '_SalesOfficeOrgUnit_2'
SolutionOrderItem.SalesOfficeOrgUnitID,
@ObjectModel.foreignKey.association: '_SalesOrganizationOrgUnit_2'
SolutionOrderItem.SalesOrganizationOrgUnitID,
@ObjectModel.foreignKey.association: '_SalesGroupOrgUnit_2'
SolutionOrderItem.SalesGroupOrgUnitID,
@ObjectModel.foreignKey.association: '_ServiceOrganizationOrgUnit_2'
SolutionOrderItem.ServiceOrganization,
@ObjectModel.foreignKey.association: '_ServiceDocumentType'
SolutionOrderItem.ServiceDocumentType,
//Associations
_ResponsibleEmployee,
@API.element.releaseState: #DEPRECATED
@API.element.successor: '_SalesOfficeOrgUnit_2'
SolutionOrderItem._SalesOfficeOrgUnit,
SolutionOrderItem._SalesOfficeOrgUnit_2,
@API.element.releaseState: #DEPRECATED
@API.element.successor: '_SalesOrganizationOrgUnit_2'
SolutionOrderItem._SalesOrganizationOrgUnit,
SolutionOrderItem._SalesOrganizationOrgUnit_2,
@API.element.releaseState: #DEPRECATED
@API.element.successor: '_SalesGroupOrgUnit_2'
SolutionOrderItem._SalesGroupOrgUnit,
SolutionOrderItem._SalesGroupOrgUnit_2,
@API.element.releaseState: #DEPRECATED
@API.element.successor: '_ServiceOrganizationOrgUnit_2'
SolutionOrderItem._ServiceOrganizationOrgUnit,
SolutionOrderItem._ServiceOrganizationOrgUnit_2,
SolutionOrderItem._SalesOrganization,
SolutionOrderItem._SalesOffice,
SolutionOrderItem._SalesGroup,
SolutionOrderItem._DistributionChannel,
SolutionOrderItem._Division,
SolutionOrderItem._RespEmployee,
SolutionOrderItem._ServiceDocumentType,
@API.element.releaseState: #DEPRECATED
@API.element.successor: '_SrvcDocItmLifecycleStatus'
SolutionOrderItem._ServiceDocItemStatus,
SolutionOrderItem._SrvcDocItmLifecycleStatus,
FollowUpDocumentItem._ServiceEmployee
}
where
SolutionOrderItem.ServiceObjectType = 'BUS2000172'
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_BUSINESSUSERBASIC",
"I_BUSSOLNORDFUPSUBSCRIPTION",
"I_BUSSOLNORDITMFUPENTPROJECT",
"I_BUSSOLNORDITMFUPSUBSCRIPTION",
"I_ENTERPRISEPROJECT",
"I_SALESORDERITEM",
"I_SDDOCUMENTPROCESSFLOW",
"I_SERVICEDOCUMENTITEMENHCD",
"I_SERVICEDOCUMENTITEMSUCCSSR_2"
],
"ASSOCIATED":
[
"I_BUSINESSPARTNER",
"I_BUSINESSUSERBASIC",
"I_DISTRIBUTIONCHANNEL",
"I_DIVISION",
"I_SALESGROUP",
"I_SALESOFFICE",
"I_SALESORGANIZATION",
"I_SALESORGANIZATIONUNIT",
"I_SERVICEDOCUMENTSTATUS",
"I_SERVICEDOCUMENTTYPE",
"I_SRVCDOCLIFECYCLESTATUS",
"I_SRVCMGMTORGANIZATIONUNIT"
],
"BASE":
[
"I_SERVICEDOCUMENTITEMENHCD"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/