@VDM: {
lifecycle.contract.type: #SAP_INTERNAL_API,
viewType: #TRANSACTIONAL
}
@AccessControl: {
authorizationCheck: #CHECK,
personalData.blocking: #('TRANSACTIONAL_DATA')
}
@ObjectModel: {
usageType: {
dataClass: #TRANSACTIONAL,
serviceQuality: #C,
sizeCategory: #L
}
}
@Metadata.ignorePropagatedAnnotations: true
@EndUserText.label: 'Sales Contract Ship-to Party - TP'
define view entity R_SalesContractShipToPartyTP
as select from I_SalesDocumentPartner as SalesContractPartner
association to parent R_SalesContractTP as _SalesContract on $projection.SalesContract = _SalesContract.SalesContract
association [0..1] to I_Language as _CorrespondenceLanguage on $projection.CorrespondenceLanguage = _CorrespondenceLanguage.Language
association [0..1] to I_FormOfAddress as _FormOfAddress on $projection.FormOfAddress = _FormOfAddress.FormOfAddress
association [0..1] to I_TransportationZone as _TransportationZone on $projection.transportzone = _TransportationZone.TransportZone
and $projection.country = _TransportationZone.CountryCode
{
key cast(SalesContractPartner.SalesDocument as sales_contract preserving type ) as SalesContract,
// key SDDocPartnerSequenceNumber,
@ObjectModel.text.element: [ 'FullName' ]
SalesContractPartner.Customer as Partner,
SalesContractPartner.ReferenceBusinessPartner,
@Semantics.text:true
@Semantics.name.fullName: true
SalesContractPartner.FullName,
@Semantics.name.givenName: true
SalesContractPartner._OrgNamePostalAddress.AddresseeName1 as BusinessPartnerName1,
@Semantics.name.familyName: true
SalesContractPartner._OrgNamePostalAddress.AddresseeName2 as BusinessPartnerName2,
@Semantics.name.additionalName: true
SalesContractPartner._OrgNamePostalAddress.AddresseeName3 as BusinessPartnerName3,
@Semantics.name.additionalName: true
SalesContractPartner._OrgNamePostalAddress.AddresseeName4 as BusinessPartnerName4,
@ObjectModel.foreignKey.association: '_FormOfAddress'
@Semantics.name.jobTitle: true
SalesContractPartner.FormOfAddress,
@Semantics.address.zipCode:true
SalesContractPartner._OrgNamePostalAddress.PostalCode,
@Semantics.address.city:true
SalesContractPartner._OrgNamePostalAddress.CityName,
SalesContractPartner._OrgNamePostalAddress.DistrictName,
@Semantics.address.country:true
@ObjectModel.foreignKey.association: '_Country'
SalesContractPartner._OrgNamePostalAddress.Country,
@ObjectModel.foreignKey.association: '_Region'
@Semantics.address.region: true
SalesContractPartner._OrgNamePostalAddress.Region,
@Semantics.address.street: true
SalesContractPartner._OrgNamePostalAddress.StreetName,
@Semantics.address.street: true
SalesContractPartner._OrgNamePostalAddress.StreetPrefixName1,
@Semantics.address.street: true
SalesContractPartner._OrgNamePostalAddress.StreetPrefixName2,
@Semantics.address.street: true
SalesContractPartner._OrgNamePostalAddress.StreetSuffixName1,
@Semantics.address.street: true
SalesContractPartner._OrgNamePostalAddress.StreetSuffixName2,
@Semantics.address.streetNoNumber: true
SalesContractPartner._OrgNamePostalAddress.HouseNumber,
@Semantics.telephone.type: [#WORK]
SalesContractPartner.InternationalPhoneNumber,
@Semantics.telephone.type: [#WORK]
cast(' ' as ad_tlxtns) as PhoneNumberExtension,
//Field to be removed -> performance issue in denormalization below
//SalesContractPartner._OrganizationAddress._CurrentDfltLandlinePhoneNmbr.PhoneExtensionNumber as PhoneNumberExtension,
@Semantics.telephone.type: [#CELL]
SalesContractPartner.InternationalMobilePhoneNumber,
@Semantics.telephone.type: [#FAX]
SalesContractPartner.InternationalFaxNumber,
@Semantics.telephone.type: [#FAX]
cast(' ' as ad_fxxtns) as FaxNumberExtension,
//Field to be removed -> performance issue in denormalization below
//SalesContractPartner._OrganizationAddress._CurrentDfltFaxNumber.FaxExtensionNumber as FaxNumberExtension,
@Semantics.eMail.address: true
@Semantics.eMail.type: [#WORK]
SalesContractPartner.EmailAddress,
@Semantics.address.postBox: true
SalesContractPartner._OrgNamePostalAddress.POBox,
@Semantics.address.zipCode:true
SalesContractPartner._OrgNamePostalAddress.POBoxPostalCode,
@EndUserText.label : 'Correspondence Language'
@ObjectModel.foreignKey.association: '_CorrespondenceLanguage'
SalesContractPartner.CorrespondenceLanguage,
SalesContractPartner._OrgNamePostalAddress.TaxJurisdiction,
@ObjectModel.foreignKey.association: '_TransportationZone'
SalesContractPartner._OrgNamePostalAddress.TransportZone,
@Semantics.text: true
SalesContractPartner.UnloadingPointName,
SalesContractPartner.VATRegistration,
SalesContractPartner.AddressID,
SalesContractPartner.AddressPersonID,
SalesContractPartner.AddressObjectType,
SalesContractPartner.SDDocPartnerAddrIsDocSpecific,
// DCL
@Consumption.hidden: true
_SalesContract.SalesContractType,
@Consumption.hidden: true
_SalesContract.SalesOrganization,
@Consumption.hidden: true
_SalesContract.DistributionChannel,
@Consumption.hidden: true
_SalesContract.OrganizationDivision,
// Exposed associations
_SalesContract,
_CorrespondenceLanguage,
_FormOfAddress,
_TransportationZone,
SalesContractPartner._OrgNamePostalAddress._Country,
SalesContractPartner._OrgNamePostalAddress._Region
}
where
SalesContractPartner.PartnerFunction = 'WE'
and SalesContractPartner.SDDocumentCategory = 'G'
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_ADDRORGNAMEPOSTALADDRESS",
"I_SALESDOCUMENTPARTNER",
"R_SALESCONTRACTTP"
],
"ASSOCIATED":
[
"I_COUNTRY",
"I_FORMOFADDRESS",
"I_LANGUAGE",
"I_REGION",
"I_TRANSPORTATIONZONE",
"R_SALESCONTRACTTP"
],
"BASE":
[
"I_ADDRORGNAMEPOSTALADDRESS"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/