I_SlsDocItmNonStdPartner

DDL: I_SLSDOCITMNONSTDPARTNER Type: view COMPOSITE

Sls Doc Item Non Std Complete Partners

I_SlsDocItmNonStdPartner is a Composite CDS View that provides data about "Sls Doc Item Non Std Complete Partners" in SAP S/4HANA. It reads from 1 data source (I_SalesDocItemCompletePartner) and exposes 18 fields with key fields SalesDocument, SalesDocumentItem, PartnerFunction. It has 2 associations to related views.

Data Sources (1)

SourceAliasJoin Type
I_SalesDocItemCompletePartner ItemPartner from

Associations (2)

CardinalityTargetAliasCondition
[1] I_PersonWorkAgreement_1 _WorkAgreement $projection.Personnel = _WorkAgreement.PersonWorkAgreement
[1] I_ContactPerson _ContactPerson $projection.ContactPerson = _ContactPerson.ContactPerson

Annotations (13)

NameValueLevelField
ClientHandling.algorithm #SESSION_VARIABLE view
AbapCatalog.sqlViewName ISLSDOCITMNSPT view
AbapCatalog.preserveKey true view
AbapCatalog.compiler.compareFilter true view
AccessControl.authorizationCheck #CHECK view
VDM.viewType #COMPOSITE view
VDM.lifecycle.contract.type #PUBLIC_LOCAL_API view
ObjectModel.representativeKey PartnerFunction view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #XL view
Metadata.ignorePropagatedAnnotations true view
EndUserText.label Sls Doc Item Non Std Complete Partners view

Fields (18)

KeyFieldSource TableSource FieldDescription
KEY SalesDocument I_SalesDocItemCompletePartner SalesDocument
KEY SalesDocumentItem I_SalesDocItemCompletePartner SalesDocumentItem
KEY PartnerFunction
PartnerFunctionName
SDDocumentPartnerType _PartnerFunction SDDocumentPartnerType
Customer I_SalesDocItemCompletePartner Customer
Supplier I_SalesDocItemCompletePartner Supplier
ContactPerson I_SalesDocItemCompletePartner ContactPerson
Personnel I_SalesDocItemCompletePartner Personnel
AddressID I_SalesDocItemCompletePartner AddressID
AddressPersonID I_SalesDocItemCompletePartner AddressPersonID
EmailAddressendasEmailAddress
CountryendasCountry
PartnerIsSpecificForSDDocItem PartnerIsSpecificForSDDocItem
_DfltAddrRprstn I_SalesDocItemCompletePartner _DfltAddrRprstn
_SalesDocument I_SalesDocItemCompletePartner _SalesDocument
_SalesDocumentItem I_SalesDocItemCompletePartner _SalesDocumentItem
_PartnerFunction I_SalesDocItemCompletePartner _PartnerFunction
@ClientHandling.algorithm: #SESSION_VARIABLE
@AbapCatalog: {
  sqlViewName: 'ISLSDOCITMNSPT',
  preserveKey: true,
  compiler.compareFilter: true
}
@AccessControl: {
  authorizationCheck: #CHECK,
  personalData.blocking: #('TRANSACTIONAL_DATA'),
  privilegedAssociations:  [ '_DfltAddrRprstn' ]
}
@VDM: {
  viewType: #COMPOSITE,
  lifecycle.contract.type: #PUBLIC_LOCAL_API
}
@ObjectModel: {
   representativeKey: 'PartnerFunction',
   usageType: {
     dataClass:      #TRANSACTIONAL,
     serviceQuality: #C,
     sizeCategory:   #XL
   }
}
@Metadata.ignorePropagatedAnnotations:true
@EndUserText.label: 'Sls Doc Item Non Std Complete Partners'
define view I_SlsDocItmNonStdPartner
  as select from I_SalesDocItemCompletePartner as ItemPartner
  association [1] to I_PersonWorkAgreement_1 as _WorkAgreement on $projection.Personnel = _WorkAgreement.PersonWorkAgreement
  association [1] to I_ContactPerson         as _ContactPerson on $projection.ContactPerson = _ContactPerson.ContactPerson
{
      @ObjectModel.foreignKey.association: '_SalesDocument'
  key ItemPartner.SalesDocument,
      @ObjectModel.foreignKey.association: '_SalesDocumentItem'
  key ItemPartner.SalesDocumentItem,
      @ObjectModel.foreignKey.association: '_PartnerFunction'
  key cast(ItemPartner.PartnerFunction as parvw_unv preserving type )                     as PartnerFunction,

      _PartnerFunction._Text[1:Language =  $session.system_language ].PartnerFunctionName as PartnerFunctionName,

      _PartnerFunction.SDDocumentPartnerType,

      ItemPartner.Customer,

      ItemPartner.Supplier,

      ItemPartner.ContactPerson,

      ItemPartner.Personnel,

      ItemPartner.AddressID,
      ItemPartner.AddressPersonID,

      case
       when Customer != ''
           then Customer
       when Supplier != ''
           then Supplier
       when Personnel != '00000000'
           then cast(Personnel as kunnr)  // cast to get the same data element length and also APLHA conversion done

       when ContactPerson != '0000000000'
           then cast(ContactPerson as kunnr) // cast to get the same data element length and also APLHA conversion done

       else
           ''
       end                                                                                as BusinessPartner,
      //      ItemPartner.Partner                                                                 as BusinessPartner,

      @Semantics.name.fullName: true
      @Semantics.text: true
      //      ItemPartner.FullName                                                                as BusinessPartnerFullName,

      case
        when ContactPerson != '0000000000'
         then coalesce(_DfltAddrRprstn.AddresseeFullName, cast(substring(replace(concat(_ContactPerson.FirstName, concat(' &@', _ContactPerson.LastName)), '&@', ''),1,80) as ad_namtext ) )
        when Personnel != '00000000'
         then
          case when _WorkAgreement.PersonFullName is initial
             then  cast( _WorkAgreement._WorkforcePerson.LastName as ad_namtext )
           else
             _WorkAgreement.PersonFullName
         end
      else
         _DfltAddrRprstn.AddresseeFullName
      end                                                                                 as BusinessPartnerFullName,


      //      case AddressID

      //        when ''

      //          then

      //            case

      //              when ContactPerson != '0000000000'

      //                then cast(substring(replace(concat(_ContactPerson.FirstName,

      //                                            concat(' &@', _ContactPerson.LastName)), '&@', '') ,1,80) as ad_namtext )

      //              when Personnel != '00000000'

      //               then coalesce(_WorkAgreement.PersonFullName,

      //                             _WorkAgreement._WorkforcePerson.LastName)

      //              else ''

      //            end

      //        else

      //          case

      //            when ItemPartner.AddressObjectType = '1'

      //              then cast(concat_with_space(_OrganizationAddress.AddresseeName1,

      //                                          _OrganizationAddress.AddresseeName2, 1) as ad_namtext )

      //            when ItemPartner.AddressObjectType = '2'

      //              then _PersonAddress.PersonFullName

      //            when ItemPartner.AddressObjectType = '3'

      //              then _PersonWorkplaceAddress.PersonFullName

      //            else ''

      //          end

      //      end                                                                                       as FullName,


      @Semantics.telephone.type: #WORK
      case AddressID
         when ''
            then _WorkAgreement._WorkforcePerson._WorkplaceAddress.NormalizedPhoneNumber
         else _DfltAddrRprstn._CurrentDfltLandlinePhoneNmbr.InternationalPhoneNumber
      end                                                                                 as InternationalPhoneNumber,



      @Semantics.telephone.type: #CELL
      case AddressID
         when ''
            then _WorkAgreement._WorkforcePerson._WorkplaceAddress.MblNormalizedPhoneNumber
         else _DfltAddrRprstn._CurrentDfltMobilePhoneNumber.InternationalPhoneNumber
      end                                                                                 as InternationalMobilePhoneNumber,

      @Semantics.eMail.address: true
      @Semantics.eMail.type:  #WORK
      case AddressID
         when ''
            then _WorkAgreement._WorkforcePerson._WorkplaceAddress.DefaultEmailAddress
         else _DfltAddrRprstn._CurrentDfltEmailAddress.EmailAddress
      end                                                                                 as EmailAddress,

      @Semantics.address.country: true
      case AddressID
        when ''
           then _WorkAgreement._WorkforcePerson._WorkplaceAddress.DestinationLocationCountry
        else _DfltAddrRprstn.Country
      end                                                                                 as Country,

      PartnerIsSpecificForSDDocItem,

      ItemPartner._DfltAddrRprstn,

      ItemPartner._SalesDocument,

      ItemPartner._SalesDocumentItem,

      ItemPartner._PartnerFunction
      //for address 2202

//      @Semantics.text:true

//      @Consumption.filter.hidden: true

//      @ObjectModel.virtualElement: true

//      @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MCC_SLS_DOC_VE'

//      cast( ' ' as ad_line_s )                                                            as FormattedPostalAddressDesc


}
where
      PartnerFunction != 'AG'
  and PartnerFunction != 'WE'
  and PartnerFunction != 'RE'
  and PartnerFunction != 'RG'
  and PartnerFunction != 'VE'
  and PartnerFunction != 'ZM'
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_ADDRCURDEFAULTEMAILADDRESS",
"I_ADDRCURDFLTLANDLINEPHONENMBR",
"I_ADDRCURDFLTMOBILEPHONENUMBER",
"I_ADDRESS_2",
"I_CONTACTPERSON",
"I_PARTNERFUNCTION",
"I_PARTNERFUNCTIONTEXT",
"I_PERSONWORKAGREEMENT_1",
"I_SALESDOCITEMCOMPLETEPARTNER",
"I_WORKFORCEPERSON",
"I_WORKPLACEADDRESS"
],
"ASSOCIATED":
[
"I_ADDRESS_2",
"I_CONTACTPERSON",
"I_PARTNERFUNCTION",
"I_PERSONWORKAGREEMENT_1",
"I_SALESDOCUMENT",
"I_SALESDOCUMENTITEM"
],
"BASE":
[
"I_SALESDOCITEMCOMPLETEPARTNER"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/