@EndUserText: { label: 'Credit Limit Change Requests' }
@AccessControl: { authorizationCheck: #CHECK,
privilegedAssociations: [ '_CreatedByUserContactCard',
'_LastChangeUserContactCard',
'_ClosedByUserContactCard',
'_CaseProcessorContactCard',
'_CaseResponsibleContactCard',
'_CreditWorthinessScoreTrend',
'_CreditLimitTrend',
'_CreditAnalystContactCard' ] }
@ObjectModel: { usageType: { serviceQuality: #D,
sizeCategory: #XL,
dataClass: #MIXED },
semanticKey: [ 'CaseID' ],
representativeKey: 'CaseUUID' }
@VDM: { viewType: #CONSUMPTION,
usage: { type: [ #TRANSACTIONAL_PROCESSING_SERVICE ] } }
@Metadata: { allowExtensions: true }
define root view entity C_CreditLimitRequestTP
provider contract transactional_query
as projection on R_CreditLimitRequestTP as CreditLimitRequest
// VDM Associations
// Log
association [0..*] to C_CreditLimitRequestLog as _CreditLimitRequestLog on $projection.CaseUUID = _CreditLimitRequestLog.CaseUUID
// Score Trend
association [0..*] to C_CreditWorthinessScoreTrend as _CreditWorthinessScoreTrend on $projection.BusinessPartner = _CreditWorthinessScoreTrend.ChangeDocObject
// Aging Grid
association [0..*] to C_CrdtMAcctAgingGrid as _AgingGrid on $projection.BusinessPartner = _AgingGrid.BusinessPartner
and $projection.CreditSegment = _AgingGrid.CreditSegment
// Credit Limit Trend
association [0..*] to C_CreditLimitTrend as _CreditLimitTrend on $projection.BusinessPartner = _CreditLimitTrend.ChangeDocObject
and $projection.CreditSegment = _CreditLimitTrend.CreditSegment
{
// VDM Fields
key CaseUUID,
CaseID,
@ObjectModel: { text: { element: [ 'BusinessPartnerName' ] } }
BusinessPartner,
@ObjectModel: { text: { element: [ 'CreditSegmentName' ] } }
CreditSegment,
@ObjectModel: { text: { element: [ 'CaseProcessorName' ] } }
CaseProcessor,
@ObjectModel: { text: { element: [ 'CaseResponsibleName' ] } }
CaseResponsible,
CaseExternalReference,
CaseTitle,
@ObjectModel: { text: { element: [ 'CaseCreatedByUserName' ] } }
CaseCreatedBy,
CreditCaseCreationDateTime,
@ObjectModel: { text: { element: [ 'CaseLastChangedByUserName' ] } }
CaseLastChangedBy,
CreditCaseLastChangeDateTime,
@ObjectModel: { text: { element: [ 'CaseClosedByUserName' ] } }
CaseClosedBy,
CreditCaseCloseDateTime,
CasePlannedCloseDate,
@ObjectModel: { text: { element: [ 'CaseReasonName' ] } }
CaseReason,
CaseType,
@ObjectModel: { text: { element: [ 'CaseStatusProfileName' ] } }
CaseStatusProfile,
@ObjectModel: { text: { element: [ 'CaseStatusName' ] } }
CaseStatus,
CaseSystemStatus,
@ObjectModel: { text: { element: [ 'CasePriorityName' ] } }
CasePriority,
CaseAuthorizationLevel,
@ObjectModel: { text: { element: [ 'CaseEscalationReasonName' ] } }
CaseEscalationReason,
@ObjectModel: { text: { element: [ 'CaseCategoryName' ] } }
CaseCategory,
CaseStatusObjectNumber,
CaseSystemStatusName,
CaseUserStatusName,
cast( CreditLimitUtilizationPct as ukm_clcr_credit_us32 preserving type ) as CreditLimitUtilizationPct,
cast( BusinessPartnerRating as ukm_clcr_own_rating preserving type ) as BusinessPartnerRating,
@ObjectModel: { text: { element: [ 'CreditRiskClassName' ] } }
cast( CreditRiskClass as ukm_clcr_risk_class preserving type ) as CreditRiskClass,
CrdtMgmtBusinessPartnerGroup,
CreditSegmentCurrency,
// CreditLimitAmount,
CreditLimitRequestedAmount,
CreditLimitApprovedAmount,
ExpectedSalesAmount,
CustomerCreditExposureAmount,
@Semantics: { amount: { currencyCode: 'CreditSegmentCurrency' } }
_CreditManagementAccount.CreditLimitAmount as CreditLimitAmount,
@ObjectModel: { text: { element: [ 'CurrentCreditRiskClassName'] } }
_CreditManagementBP.CreditRiskClass as CurrentCreditRiskClass,
_CaseTypes.CaseAttributeProfile,
CreditLimitValidityEndDate,
_BlockedCreditDecisionDocument.NumberOfCreditDecisionDocs,
_BrokenPromisesToPay.NumberOfBrokenPromisesToPay,
_CreditManagementAccount._CrdtMAcctPaytBehaviorTP.DaysSalesOutstanding,
@Semantics: { amount: { currencyCode: 'CreditSegmentCurrency' } }
_CreditManagementAccount._CrdtMAcctPaytBehaviorTP.Last12MnthsMaxSlsAmtInSndrCrcy,
@Semantics: { amount: { currencyCode: 'CreditSegmentCurrency' } }
_CreditManagementAccount._CrdtMAcctPaytBehaviorTP.TotLast12MnthsSlsAmtInSndrCrcy,
@ObjectModel: { text: { element: [ 'CreditAnalystName' ] } }
CreditCoordinator,
_CreditAnalystContactCard.UserDescription as CreditAnalystName,
//Text Fields
@Semantics: { text: true }
_Priority._Text.CasePriorityName : localized,
@Semantics: { text: true }
_CreditRiskClass._Text.CreditRiskClassName : localized,
@Semantics: { text: true }
_CreditSegment._Text.CreditSegmentName : localized,
@Semantics: { text: true }
_Escalation._Text.CaseEscalationReasonName : localized,
@Semantics: { text: true }
_Individual._Text.CaseStatusName : localized,
@Semantics: { text: true }
_CaseCategory._Text.CaseCategoryName : localized,
@Semantics: { text: true }
_Reasons._Text.CaseReasonName : localized,
@Semantics: { text: true }
_StatProfile._Text.CaseStatusProfileName : localized,
@Semantics: { text: true }
_BusinessPartner.BusinessPartnerName,
@Semantics: { text: true }
_CreditManagementBP._CreditRiskClass._Text.CreditRiskClassName as CurrentCreditRiskClassName : localized,
@Semantics: { text: true }
_CreatedByUserContactCard.UserDescription as CaseCreatedByUserName,
@Semantics: { text: true }
_LastChangeUserContactCard.UserDescription as CaseLastChangedByUserName,
@Semantics: { text: true }
_ClosedByUserContactCard.UserDescription as CaseClosedByUserName,
@Semantics: { text: true }
_PersonResponsibleUser.PersonFullName as CaseResponsibleName,
@Semantics: { text: true }
_ProcessorUser.PersonFullName as CaseProcessorName,
// Elements for Free Search
_BusinessPartner.OrganizationBPName1,
_BusinessPartner.OrganizationBPName2,
_CreditAnalyst._BusinessUser.FirstName as UICT_CoordinatorFirstName,
_CreditAnalyst._BusinessUser.LastName as UICT_CoordinatorLastName,
_ProcessorUser.FirstName as UICT_ProcessorFirstName,
_ProcessorUser.LastName as UICT_ProcessorLastName,
_PersonResponsibleUser.FirstName as UICT_ResponsibleFirstName,
_PersonResponsibleUser.LastName as UICT_ResponsibleLastName,
_CreatedByUserContactCard.FirstName as UICT_CreatedByFirstName,
_CreatedByUserContactCard.LastName as UICT_CreatedByLastName,
_LastChangeUserContactCard.FirstName as UICT_ChangedByFirstName,
_LastChangeUserContactCard.LastName as UICT_ChangedByLastName,
_ClosedByUserContactCard.FirstName as UICT_ClosedByFirstName,
_ClosedByUserContactCard.LastName as UICT_ClosedByLastName,
// Virtual Elements
@ObjectModel: { virtualElementCalculatedBy: 'ABAP:CL_UKM_CLR_VE' }
virtual NoteTypeListText : text200,
@ObjectModel: { virtualElementCalculatedBy: 'ABAP:CL_UKM_DCD_VE' }
virtual PlannedCloseDateIsExceeded : boolean,
@ObjectModel: { virtualElementCalculatedBy: 'ABAP:CL_UKM_DCD_VE' }
virtual PlannedCloseDateCriticality : char1,
@ObjectModel: { virtualElementCalculatedBy: 'ABAP:CL_UKM_DCD_VE' }
virtual PlannedCloseDateIsNotExceeded : boolean,
@ObjectModel: { virtualElementCalculatedBy: 'ABAP:CL_UKM_DCD_VE' }
virtual NrOfDaysUntilPlannedClose : dispute_days_till_plnd_cls_dt,
@ObjectModel: { virtualElementCalculatedBy: 'ABAP:CL_UKM_DCD_VE' }
virtual NrOfDaysSincePlannedClose : dispute_days_since_plnd_cls_dt,
@Semantics: { amount: { currencyCode: 'CreditSegmentCurrency' } }
@ObjectModel: { virtualElementCalculatedBy: 'ABAP:CL_UKM_ACCOUNT_VE',
text: { element: [ 'DynamicCreditExposurePercent' ] } }
@EndUserText: { label: 'Dynamic Credit Exposure',
quickInfo: 'Credit Exposure (within horizon)' }
virtual DynamicCreditExposureAmount : ukm_dynamic_exposure_amount,
@ObjectModel: { virtualElementCalculatedBy: 'ABAP:CL_UKM_ACCOUNT_VE' }
@EndUserText: { label: 'Dynamic Utiliztation %',
quickInfo: 'Dynamic Credit Limit Utiliztation in % (within horizon)' }
virtual DynamicCreditExposurePercent : ukm_credlimit_used_dynamic,
@Semantics: { amount: { currencyCode: 'CreditSegmentCurrency' } }
@ObjectModel: { virtualElementCalculatedBy: 'ABAP:CL_UKM_ACCOUNT_VE',
text: { element: [ 'StaticCreditExposurePercent' ] } }
@EndUserText: { label: 'Static Credit Exposure',
quickInfo: 'Credit Exposure (total)' }
virtual StaticCreditExposureAmount : ukm_static_exposure_amount,
@ObjectModel: { virtualElementCalculatedBy: 'ABAP:CL_UKM_ACCOUNT_VE' }
@EndUserText: { label: 'Static Utiliztation %',
quickInfo: 'Static Credit Limit Utiliztation in % (total)' }
virtual StaticCreditExposurePercent : ukm_credlimit_used_static,
@ObjectModel: { virtualElementCalculatedBy: 'ABAP:CL_UKM_ACCOUNT_VE' }
virtual StaticCrdtExposureCriticality : ukm_limit_utilzn_criticality,
@ObjectModel: { virtualElementCalculatedBy: 'ABAP:CL_UKM_ACCOUNT_VE' }
virtual DynamicCrdtExposureCriticality : ukm_limit_utilzn_criticality,
@ObjectModel: { virtualElementCalculatedBy: 'ABAP:CL_UKM_ACCOUNT_VE' }
virtual UICT_DynamicCrdtExposureAmount : xfeld,
@ObjectModel: { virtualElementCalculatedBy: 'ABAP:CL_UKM_DCD_VE' }
virtual CreditLimitChangeReqDraftUUID : sych_bdl_draft_admin_uuid,
@ObjectModel: { virtualElement: true,
virtualElementCalculatedBy: 'ABAP:CL_UKM_CLR_VE' }
virtual CrdtLmtChgReqCurrentApprvlLvl : ukm_clr_current_approval_level,
@ObjectModel: { virtualElement: true,
virtualElementCalculatedBy: 'ABAP:CL_UKM_CLR_VE' }
virtual CrdtLmtChgReqUsrInvlmntText : ukm_clr_user_involvement_text,
@ObjectModel: { virtualElement: true,
virtualElementCalculatedBy: 'ABAP:CL_UKM_CLR_VE',
filter: { enabled: true,
transformedBy: 'ABAP:CL_UKM_CLR_VE' } }
@Consumption: { filter: { selectionType: #SINGLE } }
virtual CrdtLmtChgReqUsrIsInvld : ukm_clr_user_is_involved,
// Exposed associations
_BusinessPartner,
_CaseSystemStatus,
_CaseTypes,
_CrdtMBusPartnerGroup,
_CreditManagementBP,
_CreditManagementAccount,
_CreditRiskClass,
_CreditSegment,
_Currency,
_Escalation,
_Individual,
_CaseCategory,
_Priority,
_Reasons,
_StatProfile,
_CreatedByUserContactCard : redirected to C_RblsMgmtUserContactCard,
_LastChangeUserContactCard : redirected to C_RblsMgmtUserContactCard,
_ClosedByUserContactCard : redirected to C_RblsMgmtUserContactCard,
_CaseResponsibleContactCard : redirected to C_RblsMgmtUserContactCard,
_CaseProcessorContactCard : redirected to C_RblsMgmtUserContactCard,
@ObjectModel: { filter: { enabled: false } }
_CreditLimitRequestLog,
@ObjectModel: { filter: { enabled: false } }
_CreditWorthinessScoreTrend,
@ObjectModel: { filter: { enabled: false } }
_CreditAnalyst : redirected to C_CrdtMAccountMainAnalyst,
@ObjectModel: { filter: { enabled: false } }
_AgingGrid,
@ObjectModel: { filter: { enabled: false } }
_CreditLimitTrend,
@ObjectModel: { filter: { enabled: false } }
_CreditAnalystContactCard : redirected to C_RblsMgmtUserContactCard,
@ObjectModel: { sort: { enabled: false },
filter: { enabled: false } }
_QuickView : redirected to C_CrdtMgmtBPQuickViewTP,
_ApprovalHierarchy : redirected to composition child C_CrdtLmtChgReqApprvlHierTP
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_BUSINESSPARTNER",
"I_BUSINESSUSER",
"I_CASECATEGORY",
"I_CASECATEGORYTEXT",
"I_CASEESCALATIONREASON",
"I_CASEESCALATIONREASONTEXT",
"I_CASEINDIVIDUALSTATUS",
"I_CASEINDIVIDUALSTATUSTEXT",
"I_CASEPRIORITY",
"I_CASEPRIORITYTEXT",
"I_CASEREASONS",
"I_CASEREASONSTEXT",
"I_CASESTATUSPROFILE",
"I_CASESTATUSPROFILETEXT",
"I_CASETYPES",
"I_CRDTACCTNROFBLKDCRDTDCSNDOCS",
"I_CRDTMNROFBROKENPROMISESTOPAY",
"I_CREDITMANAGEMENTBP",
"I_CREDITMANAGEMENTSEGMENT",
"I_CREDITMANAGEMENTSEGMENTTXT",
"I_CREDITRISKCLASS",
"I_CREDITRISKCLASSTEXT",
"R_CRDTMACCOUNTMAINANALYST",
"R_CRDTMACCTPAYTBEHAVIORTP",
"R_CREDITLIMITREQUESTTP",
"R_CREDITMGMTACCOUNTTP",
"R_RBLSMGMTUSERCONTACTCARD"
],
"ASSOCIATED":
[
"C_CRDTLMTCHGREQAPPRVLHIERTP",
"C_CRDTMACCOUNTMAINANALYST",
"C_CRDTMACCTAGINGGRID",
"C_CRDTMGMTBPQUICKVIEWTP",
"C_CREDITLIMITREQUESTLOG",
"C_CREDITLIMITTREND",
"C_CREDITWORTHINESSSCORETREND",
"C_RBLSMGMTUSERCONTACTCARD",
"I_BUSINESSPARTNER",
"I_CASECATEGORY",
"I_CASEESCALATIONREASON",
"I_CASEINDIVIDUALSTATUS",
"I_CASEPRIORITY",
"I_CASEREASONS",
"I_CASESTATUSPROFILE",
"I_CASESYSTEMSTATUS",
"I_CASETYPES",
"I_CRDTMBUSPARTNERGROUP",
"I_CREDITMANAGEMENTBP",
"I_CREDITMANAGEMENTSEGMENT",
"I_CREDITRISKCLASS",
"I_CURRENCY",
"R_CRDTLMTCHGREQAPPRVLHIERTP",
"R_CRDTMACCOUNTMAINANALYST",
"R_CRDTMGMTBPQUICKVIEWTP",
"R_CREDITMGMTACCOUNTTP",
"R_RBLSMGMTUSERCONTACTCARD"
],
"BASE":
[
"R_CREDITLIMITREQUESTTP"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/