@VDM: {
lifecycle.contract.type: #SAP_INTERNAL_API,
viewType: #TRANSACTIONAL
}
@AccessControl: {
authorizationCheck: #CHECK,
personalData.blocking: #('TRANSACTIONAL_DATA'),
privilegedAssociations: [ '_OutputRequest', '_CreatedByUser', '_LastChangedByUser'] }
@ObjectModel: {
sapObjectNodeType:{
name: 'SalesOrder'
},
usageType: {
dataClass: #TRANSACTIONAL,
serviceQuality: #C,
sizeCategory: #L
},
semanticKey: ['SalesOrder']
}
@AbapCatalog.extensibility: {
extensible: true,
dataSources: ['_Extension'],
elementSuffix: 'SDH',
quota: {
maximumFields: 204, //This is calculated with formula - 2* <Customer Percentage from SCFD_REGISTRY> * <max number of fields in SCFD_REGISTRY>
maximumBytes: 100000 //Set to maximum allowed bytes
}
}
@Metadata.ignorePropagatedAnnotations: true
@EndUserText.label: 'Sales Order - TP'
define root view entity R_SalesOrderTP
as select from I_SalesOrder as SalesOrder
left outer to one join I_OutputRequest as OutputRequest on OutputRequest.OutputControlApplicationObject = SalesOrder.SalesOrder
and OutputRequest.OutputControlApplObjectType = 'SALES_DOCUMENT'
composition [0..*] of R_SalesOrderItemTP as _Item
composition [0..*] of R_SalesOrderTextTP as _Text
composition [0..*] of R_SalesOrderPartnerTP as _Partner
composition [0..*] of R_SalesOrderPricingElementTP as _PricingElement
composition [0..1] of R_SalesOrderBillingPlanTP as _BillingPlan
composition [0..1] of R_SalesOrderShipToPartyTP as _ShipToParty
association [0..1] to R_OutputRequestTP as _OutputRequest on $projection.OutputRequestUUID = _OutputRequest.OutputRequestUUID
association [0..1] to I_SalesOrderPartner as _SoldToParty on $projection.SalesOrder = _SoldToParty.SalesOrder
and _SoldToParty.PartnerFunction = 'AG'
association [0..1] to I_SlsOrganizationDistrChnl as _SlsOrganizationDistrChnl on $projection.SalesOrganization = _SlsOrganizationDistrChnl.SalesOrganization
and $projection.DistributionChannel = _SlsOrganizationDistrChnl.DistributionChannel
//Extension Association
association [1] to E_SalesDocumentBasic as _Extension on $projection.SalesOrder = _Extension.SalesDocument
{
key SalesOrder.SalesOrder,
@ObjectModel.foreignKey.association: '_SalesOrderType'
SalesOrder.SalesOrderType,
@ObjectModel.text.element: ['CustomerName']
SalesOrder.SoldToParty,
@Semantics.text:true
_SoldToParty.FullName as CustomerName,
_SoldToParty.AddressID as SoldToPartyAddressID,
@ObjectModel.foreignKey.association: '_SalesOrganization'
SalesOrder.SalesOrganization,
@ObjectModel.foreignKey.association: '_DistributionChannel'
SalesOrder.DistributionChannel,
_SlsOrganizationDistrChnl.ReferenceDistributionChannel,
@ObjectModel.foreignKey.association: '_OrganizationDivision'
SalesOrder.OrganizationDivision,
@ObjectModel.foreignKey.association: '_SalesOffice'
SalesOrder.SalesOffice,
@ObjectModel.foreignKey.association: '_SalesGroup'
SalesOrder.SalesGroup,
@ObjectModel.foreignKey.association: '_SalesDistrict'
SalesOrder.SalesDistrict,
SalesOrder.PurchaseOrderByCustomer,
@ObjectModel.foreignKey.association: '_CustomerPurchaseOrderType'
SalesOrder.CustomerPurchaseOrderType,
SalesOrder.CustomerPurchaseOrderDate,
SalesOrder.PurchaseOrderByShipToParty,
@ObjectModel.foreignKey.association: '_CustomerGroup'
SalesOrder.CustomerGroup,
@ObjectModel.foreignKey.association: '_AdditionalCustomerGroup1'
SalesOrder.AdditionalCustomerGroup1,
@ObjectModel.foreignKey.association: '_AdditionalCustomerGroup2'
SalesOrder.AdditionalCustomerGroup2,
@ObjectModel.foreignKey.association: '_AdditionalCustomerGroup3'
SalesOrder.AdditionalCustomerGroup3,
@ObjectModel.foreignKey.association: '_AdditionalCustomerGroup4'
SalesOrder.AdditionalCustomerGroup4,
@ObjectModel.foreignKey.association: '_AdditionalCustomerGroup5'
SalesOrder.AdditionalCustomerGroup5,
@ObjectModel.foreignKey.association: '_SDDocumentReason'
SalesOrder.SDDocumentReason,
SalesOrder.PricingDate,
SalesOrder.ServicesRenderedDate,
SalesOrder.BillingDocumentDate,
@ObjectModel.foreignKey.association: '_SDPricingProcedure'
SalesOrder.SDPricingProcedure,
@ObjectModel.foreignKey.association: '_CustomerPriceGroup'
SalesOrder.CustomerPriceGroup,
@ObjectModel.foreignKey.association: '_PriceListType'
SalesOrder.PriceListType,
SalesOrder.RequestedDeliveryDate,
@ObjectModel.foreignKey.association: '_DeliveryDateTypeRule'
SalesOrder.DeliveryDateTypeRule,
@ObjectModel.foreignKey.association: '_ShippingCondition'
SalesOrder.ShippingCondition,
SalesOrder.CompleteDeliveryIsDefined,
SalesOrder.OrderCombinationIsAllowed,
SalesOrder.SlsDocIsRlvtForProofOfDeliv,
@ObjectModel.foreignKey.association: '_ShippingType'
SalesOrder.ShippingType,
SalesOrder.ReceivingPoint,
@ObjectModel.foreignKey.association: '_IncotermsClassification'
SalesOrder.IncotermsClassification,
@ObjectModel.foreignKey.association: '_IncotermsVersion'
SalesOrder.IncotermsVersion,
SalesOrder.IncotermsLocation1,
SalesOrder.IncotermsLocation2,
SalesOrder.FixedValueDate,
@ObjectModel.foreignKey.association: '_TaxDepartureCountry'
SalesOrder.TaxDepartureCountry,
@ObjectModel.foreignKey.association: '_VATRegistrationCountry'
SalesOrder.VATRegistrationCountry,
@ObjectModel.foreignKey.association: '_HeaderBillingBlockReason'
SalesOrder.HeaderBillingBlockReason,
@ObjectModel.foreignKey.association: '_DeliveryBlockReason'
SalesOrder.DeliveryBlockReason,
@ObjectModel.foreignKey.association: '_SalesOrderApprovalReason'
SalesOrder.SalesOrderApprovalReason,
@ObjectModel.foreignKey.association: '_CustomerPaymentTerms'
SalesOrder.CustomerPaymentTerms,
@ObjectModel.foreignKey.association: '_BillingCompanyCode'
SalesOrder.BillingCompanyCode,
SalesOrder.PaymentMethod,
@ObjectModel.foreignKey.association: '_CustomerAccountAssgmtGroup'
SalesOrder.CustomerAccountAssignmentGroup,
SalesOrder.AssignmentReference,
SalesOrder.AccountingDocExternalReference,
@Semantics.amount.currencyCode: 'TransactionCurrency'
SalesOrder.TotalNetAmount,
@ObjectModel.foreignKey.association: '_TransactionCurrency'
SalesOrder.TransactionCurrency,
SalesOrder.ReferenceSDDocument,
@ObjectModel.foreignKey.association: '_CustomerCreditAccount'
SalesOrder.CustomerCreditAccount,
@ObjectModel.foreignKey.association: '_OverallSDProcessStatus'
SalesOrder.OverallSDProcessStatus,
@ObjectModel.foreignKey.association: '_OverallDeliveryBlockStatus'
SalesOrder.OverallDeliveryBlockStatus,
@ObjectModel.foreignKey.association: '_OverallBillingBlockStatus'
SalesOrder.OverallBillingBlockStatus,
@ObjectModel.foreignKey.association: '_OverallDeliveryStatus'
SalesOrder.OverallDeliveryStatus,
@ObjectModel.foreignKey.association: '_TotalCreditCheckStatus'
SalesOrder.TotalCreditCheckStatus,
@ObjectModel.foreignKey.association: '_OverallSDDocumentRejectionSts'
SalesOrder.OverallSDDocumentRejectionSts,
@ObjectModel.foreignKey.association: '_TotalBlockStatus'
SalesOrder.TotalBlockStatus,
@ObjectModel.foreignKey.association: '_HdrGeneralIncompletionStatus'
cast(SalesOrder.HdrGeneralIncompletionStatus as hdr_general_incompltn_status preserving type ) as HdrGeneralIncompletionStatus,
@ObjectModel.foreignKey.association: '_OvrlItmGeneralIncompletionSts'
cast(SalesOrder.OvrlItmGeneralIncompletionSts as itms_ovrl_incompletion_status preserving type ) as OvrlItmGeneralIncompletionSts,
@ObjectModel.foreignKey.association: '_OverallSDDocReferenceStatus'
SalesOrder.OverallSDDocReferenceStatus,
@ObjectModel.foreignKey.association: '_SalesDocApprovalStatus'
SalesOrder.SalesDocApprovalStatus,
@ObjectModel.foreignKey.association: '_OverallChmlCmplncStatus'
SalesOrder.OverallChmlCmplncStatus,
@ObjectModel.foreignKey.association: '_OverallDangerousGoodsStatus'
SalesOrder.OverallDangerousGoodsStatus,
@ObjectModel.foreignKey.association: '_OvrlSftyDataSheetSts'
SalesOrder.OverallSafetyDataSheetStatus,
@ObjectModel.foreignKey.association: '_OvrlTradeCmplncEmbargoStatus'
SalesOrder.OverallTrdCmplncEmbargoSts,
@ObjectModel.foreignKey.association: '_OvTrdCmplncSnctndListChkSts'
cast(SalesOrder.OvrlTrdCmplncSnctndListChkSts as totwatchlistscrngchksts preserving type ) as OvrlTrdCmplncSnctndListChkSts,
@ObjectModel.foreignKey.association: '_OvrlTrdCmplncLegalCtrlChkSts'
SalesOrder.OvrlTrdCmplncLegalCtrlChkSts,
@ObjectModel.foreignKey.association: '_DownPaymentStatus'
SalesOrder.SalesOrderDownPaymentStatus,
@ObjectModel.foreignKey.association: '_OverallOrdReltdBillgStatus'
SalesOrder.OverallOrdReltdBillgStatus,
SalesOrder.BusinessSolutionOrder,
case tstmp_is_valid(cast(SalesOrder.LastChangeDateTime as abap.dec(15,0)))
when 0 then cast( dats_tims_to_tstmp( SalesOrder.CreationDate, SalesOrder.CreationTime, 'UTC', $session.client, 'NULL' ) as last_changed_date_time )
else cast( SalesOrder.LastChangeDateTime as last_changed_date_time )
end as LastChangeDateTime,
SalesOrder.SalesOrderDate,
SalesOrder.SalesOrderProcessingType,
@ObjectModel.foreignKey.association: '_ControllingArea'
SalesOrder.ControllingArea,
@ObjectModel.foreignKey.association: '_CreatedByUser'
SalesOrder.CreatedByUser,
SalesOrder.CreationDate,
SalesOrder.CreationTime,
cast( dats_tims_to_tstmp( SalesOrder.CreationDate, SalesOrder.CreationTime, abap_system_timezone( $session.client, 'NULL' ),
$session.client, 'NULL' ) as creation_date_time ) as SalesDocumentCreationDateTime,
@ObjectModel.foreignKey.association: '_LastChangedByUser'
SalesOrder.LastChangedByUser,
SalesOrder.LastChangeDate,
SalesOrder.IsEUTriangularDeal,
OutputRequest.OutputRequestUUID,
//Compositions
_Item,
_Text,
_Partner,
_ShipToParty,
_PricingElement,
_BillingPlan,
//Re-use RAP associations
_OutputRequest,
//Associations
SalesOrder._SalesOrderType,
SalesOrder._SalesOrganization,
SalesOrder._DistributionChannel,
SalesOrder._OrganizationDivision,
SalesOrder._SalesGroup,
SalesOrder._SalesOffice,
SalesOrder._SalesDistrict,
SalesOrder._SDPricingProcedure,
SalesOrder._CreatedByUser,
SalesOrder._CustomerPriceGroup,
SalesOrder._PriceListType,
SalesOrder._CustomerPurchaseOrderType,
SalesOrder._CustomerGroup,
SalesOrder._LastChangedByUser,
SalesOrder._SDDocumentReason,
SalesOrder._TransactionCurrency,
SalesOrder._ShippingType,
SalesOrder._ShippingCondition,
SalesOrder._DeliveryDateTypeRule,
SalesOrder._IncotermsClassification,
SalesOrder._IncotermsVersion,
SalesOrder._CustomerPaymentTerms,
SalesOrder._BillingCompanyCode,
SalesOrder._HeaderBillingBlockReason,
SalesOrder._DeliveryBlockReason,
SalesOrder._CustomerCreditAccount,
SalesOrder._OverallSDProcessStatus,
SalesOrder._OverallBillingBlockStatus,
SalesOrder._OverallDeliveryBlockStatus,
SalesOrder._OverallDeliveryStatus,
SalesOrder._TotalCreditCheckStatus,
SalesOrder._SalesDocApprovalStatus,
SalesOrder._SalesOrderApprovalReason,
SalesOrder._OverallChmlCmplncStatus,
SalesOrder._OverallDangerousGoodsStatus,
SalesOrder._OvrlSftyDataSheetSts,
SalesOrder._OverallSDDocumentRejectionSts,
SalesOrder._TotalBlockStatus,
SalesOrder._HdrGeneralIncompletionStatus,
SalesOrder._OvrlItmGeneralIncompletionSts,
SalesOrder._OverallSDDocReferenceStatus,
SalesOrder._OvTrdCmplncSnctndListChkSts,
SalesOrder._OvrlTradeCmplncEmbargoStatus,
SalesOrder._OvrlTrdCmplncLegalCtrlChkSts,
SalesOrder._DownPaymentStatus,
SalesOrder._OverallOrdReltdBillgStatus,
SalesOrder._ControllingArea,
SalesOrder._TaxDepartureCountry,
SalesOrder._VATRegistrationCountry,
SalesOrder._CustomerAccountAssgmtGroup,
SalesOrder._AdditionalCustomerGroup1,
SalesOrder._AdditionalCustomerGroup2,
SalesOrder._AdditionalCustomerGroup3,
SalesOrder._AdditionalCustomerGroup4,
SalesOrder._AdditionalCustomerGroup5
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_OUTPUTREQUEST",
"I_SALESORDER",
"I_SALESORDERPARTNER",
"I_SLSORGANIZATIONDISTRCHNL"
],
"ASSOCIATED":
[
"I_ADDITIONALCUSTOMERGROUP1",
"I_ADDITIONALCUSTOMERGROUP2",
"I_ADDITIONALCUSTOMERGROUP3",
"I_ADDITIONALCUSTOMERGROUP4",
"I_ADDITIONALCUSTOMERGROUP5",
"I_BILLINGBLOCKREASON",
"I_COMPANYCODE",
"I_CONTRACTDOWNPAYMENTSTATUS",
"I_CONTROLLINGAREA",
"I_COUNTRY",
"I_CURRENCY",
"I_CUSTOMER",
"I_CUSTOMERACCOUNTASSGMTGROUP",
"I_CUSTOMERGROUP",
"I_CUSTOMERPAYMENTTERMS",
"I_CUSTOMERPRICEGROUP",
"I_CUSTOMERPURCHASEORDERTYPE",
"I_DELIVERYBLOCKREASON",
"I_DELIVERYDATETYPERULE",
"I_DISTRIBUTIONCHANNEL",
"I_DIVISION",
"I_HDRGENINCOMPLETIONSTATUS",
"I_INCOTERMSCLASSIFICATION",
"I_INCOTERMSVERSION",
"I_OVERALLBILLINGBLOCKSTATUS",
"I_OVERALLCHMLCMPLNCSTATUS",
"I_OVERALLDANGEROUSGOODSSTATUS",
"I_OVERALLDELIVERYBLOCKSTATUS",
"I_OVERALLDELIVERYSTATUS",
"I_OVERALLORDRELTDBILLGSTATUS",
"I_OVERALLSDDOCREFERENCESTATUS",
"I_OVERALLSDDOCUMENTRJCNSTATUS",
"I_OVERALLSDPROCESSSTATUS",
"I_OVRLITMGENINCOMPLETIONSTS",
"I_OVRLSFTYDATASHEETSTS",
"I_OVRLTRADECMPLNCEMBARGOSTATUS",
"I_OVRLTRDCMPLNCLEGALCTRLCHKSTS",
"I_OVTRDCMPLNCSNCTNDLISTCHKSTS",
"I_PRICELISTTYPE",
"I_SALESDISTRICT",
"I_SALESDOCAPPROVALSTATUS",
"I_SALESGROUP",
"I_SALESOFFICE",
"I_SALESORDERAPPROVALREASON",
"I_SALESORDERTYPE",
"I_SALESORGANIZATION",
"I_SDDOCUMENTREASON",
"I_SHIPPINGCONDITION",
"I_SHIPPINGTYPE",
"I_SLSPRICINGPROCEDURE",
"I_TOTALBLOCKSTATUS",
"I_TOTALCREDITCHECKSTATUS",
"I_USER",
"R_OUTPUTREQUESTTP",
"R_SALESORDERBILLINGPLANTP",
"R_SALESORDERITEMTP",
"R_SALESORDERPARTNERTP",
"R_SALESORDERPRICINGELEMENTTP",
"R_SALESORDERSHIPTOPARTYTP",
"R_SALESORDERTEXTTP"
],
"BASE":
[
"I_SALESORDER"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/