@EndUserText.label: 'Maintain Business Partner in Credit Mgmt'
@VDM: {
viewType: #CONSUMPTION,
usage.type: [ #TRANSACTIONAL_PROCESSING_SERVICE]
}
@ObjectModel: { usageType: { dataClass: #MASTER,
sizeCategory: #L,
serviceQuality: #X
},
semanticKey: ['BusinessPartner'], //Enable semantic (intend-based) navigation
representativeKey: 'BusinessPartner'
}
@AccessControl: { authorizationCheck: #CHECK,
privilegedAssociations: [ '_CreditWorthinessScoreTrend' ]
}
@Metadata.allowExtensions: true
define root view entity C_CrdtMBusinessPartnerTP
provider contract transactional_query
as projection on R_CrdtMBusinessPartnerTP as _CrdtMBTP
// Score Trend
association [0..*] to C_CreditWorthinessScoreTrend as _CreditWorthinessScoreTrend on $projection.BusinessPartner = _CreditWorthinessScoreTrend.ChangeDocObject
// Credit Limit Trend
association [0..*] to C_CreditLimitTrend as _CreditLimitTrend on $projection.BusinessPartner = _CreditLimitTrend.ChangeDocObject
and $projection.MainCreditSegment = _CreditLimitTrend.CreditSegment
// Aging Grid
association [0..*] to C_CrdtMAcctAgingGrid as _AgingGrid on $projection.BusinessPartner = _AgingGrid.BusinessPartner
and $projection.MainCreditSegment = _AgingGrid.CreditSegment
// Financial Statement Data
association [0..*] to C_CrdtMgmtBusPrtnFinRatioTP as _CrdtMgmtBusPrtnFinRatioTP on $projection.BusinessPartner = _CrdtMgmtBusPrtnFinRatioTP.BusinessPartner
// Payment Behavior Trend
association [0..*] to C_CrdtMAcctPaytBehaviorTrend as _CrdtMAcctPaytBehaviorTrend on $projection.BusinessPartner = _CrdtMAcctPaytBehaviorTrend.BusinessPartner
and $projection.MainCreditSegment = _CrdtMAcctPaytBehaviorTrend.CreditSegment
{
// Business Partner
// @ObjectModel: { text.element: ['BusinessPartnerName1'] //Name1 is filled only for organizations, not for persons
@ObjectModel: { text.element: ['BusinessPartnerFullName']
}
@Consumption: { semanticObject: 'BusinessPartner',
valueHelpDefinition: [{ entity:{ name: 'I_CrdtMBusinessPartnerVH',
element: 'BusinessPartner' } }]
}
key BusinessPartner,
@Semantics.text:true
@Consumption.filter.hidden: true
// _BusinessPartner._CurrentDefaultAddress._Address.FullName as BusinessPartnerFullName, //filled only for organizations, not for persons
_BusinessPartner._CurrentDefaultAddress._AddressDefaultRepresentation.AddresseeFullName as BusinessPartnerFullName, //filled for both, organizations and persons
@Semantics.text:true
_BusinessPartner._CurrentDefaultAddress._Address.BusinessPartnerName1 as BusinessPartnerName1, //filled only for organizations, not for persons
@Semantics.text:true
@Consumption.filter.hidden: true
_BusinessPartner._CurrentDefaultAddress._Address.BusinessPartnerName2 as BusinessPartnerName2, //filled only for organizations, not for persons
_BusinessPartner._CurrentDefaultAddress._Address.SearchTerm1 as SearchTerm1,
@Consumption.filter.hidden: true
_BusinessPartner._CurrentDefaultAddress._Address.SearchTerm2 as SearchTerm2,
@ObjectModel.text.element: ['CountryName']
@Consumption.valueHelpDefinition: [{ entity: { name: 'I_CountryVH',
element: 'Country' } }]
_CreditMgmtBPAddress.Country as BusinessPartnerCountry,
@Semantics.text:true
_CreditMgmtBPAddress._Country._Text.CountryName as CountryName : localized,
@Semantics.text:true
_CreditMgmtBPAddress.CityName as BusinessPartnerCityName,
@Consumption: { semanticObject: 'Customer',
filter: { hidden: true}
}
_Customer.Customer as Customer,
@ObjectModel.text.element: ['CrdtMgmtBusPartnerGroupName']
@Consumption.valueHelpDefinition: [{ entity: { name: 'I_CrdtMBusPartnerGroupVH',
element: 'CrdtMgmtBusinessPartnerGroup' } }]
CrdtMgmtBusinessPartnerGroup,
@Consumption.filter.hidden: true
_CrdtMBusPartnerGroup._Text.CrdtMgmtBusPartnerGroupName as CrdtMgmtBusPartnerGroupName : localized,
_BusinessPartner.OrganizationFoundationDate,
// Own company's score
CreditWorthinessScoreValue,
CrdtWrthnssScoreValdtyEndDate,
CrdtWorthinessScoreLastChgDate,
@EndUserText: { label: 'Calc. Score',
quickInfo: 'Calculated Score' }
CalcdCrdtWorthinessScoreValue,
// Risk class
@ObjectModel.text.element: ['CreditRiskClassName']
@Consumption.valueHelpDefinition: [{ entity:{ name: 'I_CreditRiskClassValueHelp',
element: 'CreditRiskClass' } }]
CreditRiskClass,
@Consumption.filter.hidden: true
@Semantics.text: true
_RiskClass._Text.CreditRiskClassName as CreditRiskClassName : localized,
@ObjectModel.text.element: ['CalculatedCreditRiskClassName']
@Consumption: { valueHelpDefinition: [{ entity:{ name: 'I_CreditRiskClassValueHelp',
element: 'CreditRiskClass'
}
}],
filter.hidden: true
}
CalculatedCreditRiskClass,
@Consumption.filter.hidden: true
@Semantics.text: true
cast(_CalcRiskClass._Text.CreditRiskClassName as ukm_risk_class_calc_txt preserving type ) as CalculatedCreditRiskClassName : localized,
CreditRiskClassLastChangeDate,
// Rules
@ObjectModel.text.element: ['CreditCheckRuleName']
@Consumption.valueHelpDefinition: [{ entity:{ name: 'I_CreditCheckRuleVH' ,
element: 'CreditCheckRule' } }]
CreditCheckRule,
@Consumption.filter.hidden: true
@Semantics.text: true
_CheckRule._Text.CreditCheckRuleName as CreditCheckRuleName : localized,
@ObjectModel.text.element: ['CrdtScoreAndLimitCalcRuleName']
@Consumption.valueHelpDefinition: [{ entity:{ name: 'I_CrdtScrAndLmtCalcRuleVH' ,
element: 'CreditScoreAndLimitCalcRule' } }]
CreditScoreAndLimitCalcRule,
@Consumption.filter.hidden: true
@Semantics.text: true
cast(_CalcRule._Text.CrdtScoreAndLimitCalcRuleName as ukm_limit_and_score_calc_rulet preserving type ) as CrdtScoreAndLimitCalcRuleName : localized,
// Main Segment
@Consumption.filter.hidden: true
@ObjectModel.text.association: null // Inherited annotation _text - must not be present in Consumption View
MainCreditSegment,
@Consumption.filter.hidden: true
cast(_MainCreditSegment.CreditSegmentCurrency as ukm_main_segment_currency preserving type ) as MainCreditSegmentCurrency,
@Semantics.amount.currencyCode: 'MainCreditSegmentCurrency'
cast(_MainCreditSegmentAccount.CreditLimitAmount as ukm_credit_limit_main_segment preserving type) as MainCreditSegmentLimitAmount, //it might appear zero if there's no data in main segment
CustBusinessRelshpStartYear,
// used for integration of NotesReuse component
CrdtMAccountNoteUUID,
// Virtual Elements
@Semantics.amount.currencyCode: 'MainCreditSegmentCurrency'
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_UKM_BP_VE'
virtual StaticCreditExposureAmount : ukm_static_exposure_amt_main,
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_UKM_BP_VE'
virtual StaticCreditExposurePercent : ukm_credlimit_used_static,
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_UKM_BP_VE'
virtual StaticCrdtExposureCriticality : ukm_limit_utilzn_criticality,
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_UKM_BP_VE'
virtual UICT_CreditLimitAmount : xfeld,
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_UKM_BP_VE'
virtual CrdtAgencyIntegURLIsAvailable : xfeld,
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_UKM_BP_VE'
virtual UICT_CrdtAgencyIntegURLMig : xfeld, //used for second migration button
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_UKM_BP_VE'
virtual UICT_SemanticObjectAction : /ui2/semantic_action,
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_BP_BUPATP2_CALC_EXIT'
virtual FormattedAddress : ukm_bupa_address_string, //replaces field AddressText
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_UKM_BP_VE'
virtual BusinessPartnerText : ukm_bupa_description,
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_UKM_BP_VE'
virtual UICT_HasGlobalHierarchy : ukm_bp_not_part_of_hierarchy, //true -> hide UI facet
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_UKM_BP_VE'
virtual CrdtScoreValidityRemainingDays : ukm_score_validity_rmng_days,
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_UKM_BP_VE'
virtual UICT_HasScoreValidityEndDate : ukm_scorevaldtyenddate_empty, //true -> hide UI facet
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_UKM_BP_VE'
virtual CrdtMgmtAccountNoteIdentifier : nte_objectid, //reuse notes: provide business partner with leading zeros
@ObjectModel.text.element: ['CreditManagementCntryRiskName']
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_UKM_BP_VE'
virtual CreditManagementCountryRisk : ukm_country_risk,
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_UKM_BP_VE'
virtual CreditManagementCntryRiskName : ukm_country_risk_description,
// Associations to all entities at this business object node
_BusinessPartner,
_Customer,
_CreditMgmtBPAddress,
_MainCreditSegment,
_CrdtMBusPartnerGroup,
_RiskClass,
_CalcRiskClass,
_CheckRule,
_CalcRule,
// Associations to other Business Object nodes
_CreditMgmtAccountTP : redirected to composition child C_CreditMgmtAccountTP,
_CrdtMBusPartnerRatingTP : redirected to composition child C_CrdtMBusPartnerRatingTP,
_CrdtMBPCollateralTP : redirected to composition child C_CrdtMBPCollateralTP,
_CrdtMBPNegativeEventTP : redirected to composition child C_CrdtMBPNegativeEventTP,
_CrdtMBPSpprsdCheckStepTP : redirected to composition child C_CrdtMBPSpprsdCheckStepTP,
_CrdtMBPCreditInsuranceTP : redirected to composition child C_CrdtMBPCreditInsuranceTP,
_CrdtMFmlaScoreEvalResultTP : redirected to composition child C_CrdtMFmlaScoreEvalResultTP,
@ObjectModel.filter.enabled: false
_CrdtMBPRelationshipTP : redirected to C_CrdtMBPRelationshipTP,
_CreditDecisionDocument : redirected to C_CreditDecisionDocumentTP,
_CreditLimitRequest : redirected to C_CreditLimitRequestTP,
//Charts
@ObjectModel: { filter: { enabled: false } }
_CreditWorthinessScoreTrend,
@ObjectModel: { filter: { enabled: false } }
_CreditLimitTrend,
@ObjectModel: { filter: { enabled: false } }
_AgingGrid,
@ObjectModel: { filter: { enabled: false } }
_CrdtMgmtBusPrtnFinRatioTP,
@ObjectModel: { filter: { enabled: false } }
_CrdtMAcctPaytBehaviorTrend
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_ADDRESS",
"I_ADDRESS_2",
"I_BPCURRENTDEFAULTADDRESS",
"I_BUSINESSPARTNER",
"I_COUNTRY",
"I_COUNTRYTEXT",
"I_CRDTMBUSPARTNERGROUP",
"I_CRDTMBUSPARTNERGROUPNAME",
"I_CRDTSCOREANDLMTCALCRULE",
"I_CRDTSCRANDLMTCALCRULETXT",
"I_CREDITCHECKRULE",
"I_CREDITCHECKRULETEXT",
"I_CREDITMANAGEMENTSEGMENT",
"I_CREDITMGMTBPADDRESS",
"I_CREDITRISKCLASS",
"I_CREDITRISKCLASSTEXT",
"I_RBLSMGMTBPTOCUSTOMER",
"R_CRDTMBUSINESSPARTNERTP",
"R_CREDITMGMTACCOUNT"
],
"ASSOCIATED":
[
"C_CRDTMACCTAGINGGRID",
"C_CRDTMACCTPAYTBEHAVIORTREND",
"C_CRDTMBPCOLLATERALTP",
"C_CRDTMBPCREDITINSURANCETP",
"C_CRDTMBPNEGATIVEEVENTTP",
"C_CRDTMBPRELATIONSHIPTP",
"C_CRDTMBPSPPRSDCHECKSTEPTP",
"C_CRDTMBUSPARTNERRATINGTP",
"C_CRDTMFMLASCOREEVALRESULTTP",
"C_CRDTMGMTBUSPRTNFINRATIOTP",
"C_CREDITDECISIONDOCUMENTTP",
"C_CREDITLIMITREQUESTTP",
"C_CREDITLIMITTREND",
"C_CREDITMGMTACCOUNTTP",
"C_CREDITWORTHINESSSCORETREND",
"I_BUSINESSPARTNER",
"I_CRDTMBUSPARTNERGROUP",
"I_CRDTSCOREANDLMTCALCRULE",
"I_CREDITCHECKRULE",
"I_CREDITMANAGEMENTSEGMENT",
"I_CREDITMGMTBPADDRESS",
"I_CREDITRISKCLASS",
"I_RBLSMGMTBPTOCUSTOMER",
"R_CRDTMBPCOLLATERALTP",
"R_CRDTMBPCREDITINSURANCETP",
"R_CRDTMBPNEGATIVEEVENTTP",
"R_CRDTMBPRELATIONSHIPTP",
"R_CRDTMBPSPPRSDCHECKSTEPTP",
"R_CRDTMBUSPARTNERRATINGTP",
"R_CRDTMFMLASCOREEVALRESULTTP",
"R_CREDITDECISIONDOCUMENTTP",
"R_CREDITLIMITREQUESTTP",
"R_CREDITMGMTACCOUNTTP"
],
"BASE":
[
"R_CRDTMBUSINESSPARTNERTP"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/