@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking: #('TRANSACTIONAL_DATA')
@AccessControl.privilegedAssociations: [ '_DfltAddrRprstn' ]
@EndUserText.label: 'Partner for Sales Order Item - TP'
@Metadata.ignorePropagatedAnnotations: true
@ObjectModel.semanticKey: [ 'SalesOrder', 'SalesOrderItem', 'PartnerFunction' ]
@ObjectModel.usageType: { dataClass: #TRANSACTIONAL, serviceQuality: #C, sizeCategory: #L }
@VDM.lifecycle.contract.type: #SAP_INTERNAL_API
@VDM.viewType: #TRANSACTIONAL
@Consumption.dbHints: [ 'USE_HEX_PLAN', 'NO_SUBPLAN_SHARING' ]
define view entity R_SalesOrderItemPartnerTP
as select from I_SalesDocItemCompletePartner as SalesOrderItemPartner
inner join I_SalesDocumentBasic as SalesOrder
on SalesOrder.SalesDocument = SalesOrderItemPartner.SalesDocument
and SalesOrder.SDDocumentCategory = 'C'
association to parent R_SalesOrderItemTP as _Item
on $projection.SalesOrder = _Item.SalesOrder
and $projection.SalesOrderItem = _Item.SalesOrderItem
association [1..1] to R_SalesOrderTP as _SalesOrder
on $projection.SalesOrder = _SalesOrder.SalesOrder
association [0..1] to I_PartnerFunction as _PartnerFunction
on $projection.PartnerFunctionForEdit = _PartnerFunction.PartnerFunction
association [0..1] to I_FormOfAddress as _FormOfAddress
on $projection.FormOfAddress = _FormOfAddress.FormOfAddress
association [0..1] to I_Language as _CorrespondenceLanguage
on $projection.CorrespondenceLanguage = _CorrespondenceLanguage.Language
association [0..1] to I_TransportationZone as _TransportationZone
on $projection.transportzone = _TransportationZone.TransportZone
and $projection.country = _TransportationZone.CountryCode
association [0..1] to I_AddrCurDfltLandlinePhoneNmbr as _CurrentDfltLandlinePhoneNmbr on $projection.AddressID = _CurrentDfltLandlinePhoneNmbr.AddressID
and $projection.AddressPersonID = _CurrentDfltLandlinePhoneNmbr.AddressPersonID
association [0..1] to I_AddrCurDfltMobilePhoneNumber as _CurrentDfltMobilePhoneNumber on $projection.AddressID = _CurrentDfltMobilePhoneNumber.AddressID
and $projection.AddressPersonID = _CurrentDfltMobilePhoneNumber.AddressPersonID
association [0..1] to I_AddrCurDefaultFaxNumber as _CurrentDfltFaxNumber on $projection.AddressID = _CurrentDfltFaxNumber.AddressID
and $projection.AddressPersonID = _CurrentDfltFaxNumber.AddressPersonID
association [1] to I_WorkplaceAddress as _WorkPlaceAddress on $projection.ReferenceBusinessPartner = _WorkPlaceAddress.BusinessPartner
{
key cast(SalesOrderItemPartner.SalesDocument as vdm_sales_order preserving type) as SalesOrder,
key cast(SalesOrderItemPartner.SalesDocumentItem as sales_order_item preserving type) as SalesOrderItem,
key cast(SalesOrderItemPartner.PartnerFunction as parvw_unv preserving type) as PartnerFunction,
@ObjectModel.foreignKey.association: '_PartnerFunction'
cast(SalesOrderItemPartner.PartnerFunction as parvw_unv preserving type) as PartnerFunctionForEdit,
SalesOrderItemPartner.Customer,
SalesOrderItemPartner.Supplier,
SalesOrderItemPartner.Personnel,
SalesOrderItemPartner.ContactPerson,
@ObjectModel.text.element: [ 'FullName' ]
SalesOrderItemPartner.Partner,
@ObjectModel.virtualElement: true
cast('' as ad_name1) as BusinessPartnerName1,
@ObjectModel.virtualElement: true
cast('' as ad_name2) as BusinessPartnerName2,
@ObjectModel.virtualElement: true
cast('' as ad_name3) as BusinessPartnerName3,
@ObjectModel.virtualElement: true
cast('' as ad_name4) as BusinessPartnerName4,
@Semantics.name.fullName: true
@Semantics.text: true
SalesOrderItemPartner.FullName,
_PartnerFunction.SDDocumentPartnerType,
@ObjectModel.foreignKey.association: '_FormOfAddress'
@Semantics.name.jobTitle: true
SalesOrderItemPartner.FormOfAddress,
@Semantics.address.street: true
SalesOrderItemPartner._OrgNamePostalAddress.StreetName,
@Semantics.address.street: true
SalesOrderItemPartner._OrgNamePostalAddress.StreetPrefixName1,
@Semantics.address.street: true
SalesOrderItemPartner._OrgNamePostalAddress.StreetPrefixName2,
@Semantics.address.street: true
SalesOrderItemPartner._OrgNamePostalAddress.StreetSuffixName1,
@Semantics.address.street: true
SalesOrderItemPartner._OrgNamePostalAddress.StreetSuffixName2,
@Semantics.address.streetNoNumber: true
SalesOrderItemPartner._OrgNamePostalAddress.HouseNumber,
@Semantics.address.zipCode: true
SalesOrderItemPartner._OrgNamePostalAddress.PostalCode,
@ObjectModel.foreignKey.association: '_Country'
@Semantics.address.country: true
SalesOrderItemPartner._OrgNamePostalAddress.Country,
@ObjectModel.foreignKey.association: '_Region'
@Semantics.address.region: true
SalesOrderItemPartner._OrgNamePostalAddress.Region,
SalesOrderItemPartner._OrgNamePostalAddress.DistrictName,
@Semantics.address.city: true
SalesOrderItemPartner._OrgNamePostalAddress.CityName,
@Semantics.address.postBox: true
SalesOrderItemPartner._OrgNamePostalAddress.POBox,
@Semantics.address.zipCode: true
SalesOrderItemPartner._OrgNamePostalAddress.POBoxPostalCode,
@ObjectModel.foreignKey.association: '_CorrespondenceLanguage'
SalesOrderItemPartner.CorrespondenceLanguage,
SalesOrderItemPartner._OrgNamePostalAddress.TaxJurisdiction,
@ObjectModel.foreignKey.association: '_TransportationZone'
SalesOrderItemPartner._OrgNamePostalAddress.TransportZone,
SalesOrderItemPartner.PartnerIsSpecificForSDDocItem,
SalesOrderItemPartner.ReferenceBusinessPartner,
SalesOrderItemPartner.AddressID,
SalesOrderItemPartner.AddressPersonID,
SalesOrderItemPartner.AddressObjectType,
SalesOrderItemPartner.SDDocPartnerAddrIsDocSpecific,
SalesOrderItemPartner.VATRegistration,
@Semantics.text: true
SalesOrderItemPartner.UnloadingPointName,
cast(
case
when SalesOrderItemPartner.AddressID = ''
then
_WorkPlaceAddress.DestinationLocationCountry
else
_CurrentDfltLandlinePhoneNmbr.PhoneNumberCountry
end
as ad_comctry preserving type ) as PhoneNumberCountry,
cast(
case
when SalesOrderItemPartner.AddressID = ''
then
_WorkPlaceAddress.PhoneNumber
else
_CurrentDfltLandlinePhoneNmbr.PhoneAreaCodeSubscriberNumber
end
as ad_tlnmbr preserving type ) as PhoneNumber,
cast(
case
when SalesOrderItemPartner.AddressID = ''
then
_WorkPlaceAddress.PhoneNumberExtension
else
_CurrentDfltLandlinePhoneNmbr.PhoneExtensionNumber
end
as ad_tlxtns preserving type ) as PhoneNumberExtension,
cast(
case
when SalesOrderItemPartner.AddressID = ''
then
_WorkPlaceAddress.MblPhoneDestinationLocCountry
else
_CurrentDfltMobilePhoneNumber.PhoneNumberCountry
end
as ad_comctry preserving type ) as MobilePhoneCountry,
cast(
case
when SalesOrderItemPartner.AddressID = ''
then
_WorkPlaceAddress.MobilePhoneNumber
else
_CurrentDfltMobilePhoneNumber.PhoneAreaCodeSubscriberNumber
end
as ad_tlnmbr preserving type ) as MobilePhoneNumber,
cast(
case
when SalesOrderItemPartner.AddressID = ''
then
_WorkPlaceAddress.FaxNumberCountry
else
_CurrentDfltFaxNumber.FaxNumberCountry
end
as ad_comctry preserving type ) as FaxNumberCountry,
cast(
case
when SalesOrderItemPartner.AddressID = ''
then
_WorkPlaceAddress.FaxAreaCodeSubscriberNumber
else
_CurrentDfltFaxNumber.FaxAreaCodeSubscriberNumber
end
as ad_fxnmbr preserving type ) as FaxNumber,
cast(
case
when SalesOrderItemPartner.AddressID = ''
then
_WorkPlaceAddress.FaxExtensionNumber
else
_CurrentDfltFaxNumber.FaxExtensionNumber
end
as ad_fxxtns preserving type ) as FaxNumberExtension,
@Semantics.telephone.type: [ #WORK ]
SalesOrderItemPartner.InternationalPhoneNumber,
@Semantics.telephone.type: [ #CELL ]
SalesOrderItemPartner.InternationalMobilePhoneNumber,
@Semantics.telephone.type: [ #FAX ]
SalesOrderItemPartner.InternationalFaxNumber,
@Semantics.eMail: { address: true,
type: [ #WORK ] }
SalesOrderItemPartner.EmailAddress,
@Consumption.hidden: true
SalesOrderItemPartner.SDDocPartnerAddressRefType,
@Consumption.hidden: true
SalesOrderItemPartner.BPAddrDeterminationTransaction,
@Consumption.hidden: true
SalesOrderItemPartner.BPRefAddressIDForDocSpcfcAddr,
SalesOrderItemPartner.PartnerIsOneTimeAccount,
@Consumption.hidden: true
_SalesOrder.SalesOrderType,
@Consumption.hidden: true
_SalesOrder.SalesOrganization,
@Consumption.hidden: true
_SalesOrder.DistributionChannel,
@Consumption.hidden: true
_SalesOrder.OrganizationDivision,
// Associations
_Item,
_SalesOrder,
_PartnerFunction,
_CorrespondenceLanguage,
_TransportationZone,
_FormOfAddress,
SalesOrderItemPartner._ContactPerson,
SalesOrderItemPartner._DfltAddrRprstn,
SalesOrderItemPartner._BusinessPartnerAddress,
SalesOrderItemPartner._BPRefAddressForDocSpcfcAddr,
SalesOrderItemPartner._OrgNamePostalAddress._Country,
SalesOrderItemPartner._OrgNamePostalAddress._Region
}