@EndUserText.label: 'Dispute Case'
@AccessControl.authorizationCheck: #MANDATORY
@Metadata.allowExtensions: true
@VDM.viewType: #CONSUMPTION
@VDM.usage.type:[ #TRANSACTIONAL_PROCESSING_SERVICE ]
@AccessControl.privilegedAssociations: [ '_CreatedBy', '_Processor', '_Coordinator', '_Responsible', '_ChangeHistory' ]
@ObjectModel.usageType.serviceQuality: #C
@ObjectModel.usageType.sizeCategory: #L
@Search.searchable: true
@ObjectModel.usageType.dataClass: #MIXED
@ObjectModel.semanticKey: ['CaseID']
define root view entity C_CADisputeCaseDraftTP provider contract transactional_query as projection on R_CADisputeCaseTP as _CADisputeCaseTP
association [0..*] to C_CANotDisputedPayment as _NotDisPayment on
$projection.ContractAccount = _NotDisPayment.ContractAccount
and $projection.BusinessPartner = _NotDisPayment.BusinessPartner
and $projection.CAContract = _NotDisPayment.CAContract
and $projection.CaseUUID = _NotDisPayment.CaseUUID
association [0..*] to C_CANotDisputedCredit as _NotDisCredit on
$projection.ContractAccount = _NotDisCredit.ContractAccount
and $projection.BusinessPartner = _NotDisCredit.BusinessPartner
and $projection.CAContract = _NotDisCredit.CAContract
and $projection.CaseUUID = _NotDisCredit.CaseUUID
association [0..*] to C_CADisputeCaseChangeHist as _ChangeHistory on
$projection.CaseUUID = _ChangeHistory.DisputeCaseUUID
association [0..*] to C_CANotDisputedCreditMemo as _NotDisCreditMemo on
$projection.ContractAccount = _NotDisCreditMemo.ContractAccount
and $projection.BusinessPartner = _NotDisCreditMemo.BusinessPartner
and $projection.CAContract = _NotDisCreditMemo.CAContract
and $projection.CaseUUID = _NotDisCreditMemo.CaseUUID
and $projection.CompanyCode = _NotDisCreditMemo.CompanyCode
association [0..*] to C_CANotDisputedDocument as _NotDisDocument on
$projection.ContractAccount = _NotDisDocument.ContractAccount
and $projection.BusinessPartner = _NotDisDocument.BusinessPartner
and $projection.CAContract = _NotDisDocument.CAContract
and $projection.CompanyCode = _NotDisDocument.CompanyCode
and $projection.CaseUUID = _NotDisDocument.CaseUUID
association [0..1] to C_CAInvcgUserContact as _CreatedBy on
$projection.CaseCreatedBy = _CreatedBy.ContactCardID
association [0..1] to C_CAInvcgUserContact as _Processor on
$projection.CaseProcessor = _Processor.ContactCardID
association [0..1] to C_CAInvcgUserContact as _Responsible on
$projection.CaseResponsible = _Responsible.ContactCardID
association [0..1] to C_CAInvcgUserContact as _Coordinator on
$projection.DisputeCaseCoordinator = _Coordinator.ContactCardID
association [0..*] to C_CANotDisputedInvcgDoc as _NotDisInvcgDoc on
$projection.ContractAccount = _NotDisInvcgDoc.ContractAccount
and $projection.BusinessPartner = _NotDisInvcgDoc.BusinessPartner
and $projection.CAContract = _NotDisInvcgDoc.CAContract
and $projection.CaseUUID = _NotDisInvcgDoc.CaseUUID
and $projection.CompanyCode = _NotDisInvcgDoc.CompanyCode
association [0..*] to C_CANotDisputedBillableItem as _NotDisBillableItem on
$projection.ContractAccount = _NotDisBillableItem.ContractAccount
and $projection.BusinessPartner = _NotDisBillableItem.BusinessPartner
and $projection.CAContract = _NotDisBillableItem.CAContract
and $projection.CaseUUID = _NotDisBillableItem.CaseUUID
and $projection.CompanyCode = _NotDisBillableItem.CompanyCode
association [0..*] to C_CANotDisputedInvcgDocItem as _NotDisInvcgDocItem on
$projection.ContractAccount = _NotDisInvcgDocItem.ContractAccount
and $projection.BusinessPartner = _NotDisInvcgDocItem.BusinessPartner
and $projection.CAContract = _NotDisInvcgDocItem.CAContract
and $projection.CaseUUID = _NotDisInvcgDocItem.CaseUUID
and $projection.CompanyCode = _NotDisInvcgDocItem.CompanyCode
{
key CaseUUID,
@ObjectModel.text.element: ['BusinessPartnerFullName']
BusinessPartner,
@Semantics.text: true
BusinessPartnerFullName,
@ObjectModel.text.element: ['ContractAccountName']
ContractAccount,
@Semantics.text: true
ContractAccountName,
@ObjectModel.text.element: ['CAProviderContractName']
cast ( CAContract as vtref_kk preserving type ) as CAContract,
@Semantics.text: true
cast ( _ProviderContract.CAProviderContractName as vtbez_vt_gfn_kk preserving type ) as CAProviderContractName,
@ObjectModel.text.element: ['CASubApplicationText']
CASubApplication,
@Semantics.text: true
_CASubApplicationText[1:Language = $session.system_language].CASubApplicationText,
@Semantics.amount.currencyCode: 'DisputeCaseCurrency'
DisputedAmount,
@Semantics.amount.currencyCode: 'DisputeCaseCurrency'
TotalReceivablesAmount,
@Semantics.amount.currencyCode: 'DisputeCaseCurrency'
DisputeCaseCorrectionAmount,
@Semantics.amount.currencyCode: 'DisputeCaseCurrency'
DisputeCaseReversedAmount,
@Semantics.amount.currencyCode: 'DisputeCaseCurrency'
CreditedAmount,
@Semantics.amount.currencyCode: 'DisputeCaseCurrency'
WriteOffAmount,
@Semantics.amount.currencyCode: 'DisputeCaseCurrency'
DisputeCaseReplacedAmount,
// @Semantics.amount.currencyCode: 'DisputeCaseCurrency'
// PaidAmount,
@Semantics.amount.currencyCode: 'DisputeCaseCurrency'
CARemainingDisputedAmount,
DisputeCaseCurrency,
// LogicalSystem,
@ObjectModel.text.element: ['CADisputeTypeText']
CADisputeType,
@Semantics.text: true
CADisputeTypeText,
@ObjectModel.text.element: ['CompanyCodeName']
CompanyCode,
@Semantics.text: true
cast( CompanyCodeName as bukrs_text_gfn_kk preserving type ) as CompanyCodeName,
@ObjectModel.text.element: ['DsputCaseCoordinatorFullName']
DisputeCaseCoordinator,
@Semantics.text: true
cast( _DisputeCaseCoordinator.UserDescription as case_coordinator_text_gfn_kk preserving type ) as DsputCaseCoordinatorFullName,
@ObjectModel.text.element: ['CaseRootCauseDescription']
cast( DisputeCaseRootCause as udm_root_ccode_gfn_kk preserving type ) as DisputeCaseRootCause,
@Semantics.text: true
cast( CaseRootCauseDescription as udm_root_ccode_txt_gfn_kk preserving type ) as CaseRootCauseDescription,
CaseProcessingDeadlineDate,
@Semantics: {
text: true,
name.fullName: true
}
ContactPersonFullName,
ContactPersonEmailAddress,
ContactPersonPhoneNumber,
ContactPersonFaxNumber,
@ObjectModel.text.element: ['FaxCountryName']
ContactPersonFaxCountry,
@Semantics.text: true
_ContactPersonFaxCountryText[1:Language = $session.system_language].CountryName as FaxCountryName,
// DisputeCaseBPCorrespondenceKey,
DisputeCaseInformationText,
DisputeCaseTransactionDate,
CADisputeCase,
CaseType,
CaseID,
CaseExternalReference,
@ObjectModel.text.element: ['CaseCreatedByUserName']
CaseCreatedBy,
@Semantics.text: true
cast( _CaseCreatedBy.UserDescription as case_created_by_text_gfn_kk preserving type ) as CaseCreatedByUserName,
CaseCreationDate,
@ObjectModel.text.element: ['CaseLastChangedByUserName']
CaseLastChangedBy,
@Semantics.text: true
cast( _CaseLastChangedBy.UserDescription as case_last_chg_by_text_gfn_kk preserving type ) as CaseLastChangedByUserName,
CaseLastChangedOn,
CaseStatusProfile,
@ObjectModel.text.element: ['CaseClosedByUserName']
CaseClosedBy,
@Semantics.text: true
cast( _CaseClosedBy.UserDescription as case_closed_by_text_gfn_kk preserving type ) as CaseClosedByUserName,
CaseClosedTime,
CasePlannedCloseDate,
@ObjectModel.text.element: ['CaseProcessorName']
CaseProcessor,
@Semantics.text: true
cast( _CaseProcessor.UserDescription as case_processor_text_gfn_kk preserving type ) as CaseProcessorName,
@ObjectModel.text.element: ['CaseResponsibleName']
CaseResponsible,
@Semantics.text: true
_CaseResponsible.UserDescription as CaseResponsibleName,
CaseTitle,
// CaseAuthorizationLevel,
@ObjectModel.text.element: ['CaseStatusName']
CaseStatus,
@Semantics.text: true
CaseStatusName,
@ObjectModel.text.element: ['CaseUserStatusName']
CaseSystemStatus,
@Semantics.text: true
CaseUserStatusName,
@ObjectModel.text.element: ['DisputeCasePriorityName']
CasePriority,
@Semantics.text: true
DisputeCasePriorityName,
@ObjectModel.text.element: ['DisputeCaseCategoryName']
CaseCategory,
@Semantics.text: true
cast( DisputeCaseCategoryName as scmg_category_desc_gfn_kk preserving type ) as DisputeCaseCategoryName,
@ObjectModel.text.element: ['CaseReasonName']
CaseReason,
@Semantics.text: true
CaseReasonName,
@ObjectModel.text.element: ['DsputCaseEscalationRsnName']
CaseEscalationReason,
@Semantics.text: true
DsputCaseEscalationRsnName,
// StreetName,
// HouseNumber,
CountryName,
// PostalCode,
// CityName,
// CADisputeExternalCallerCode,
// DisputeCaseOrigin,
CADocumentNumber,
TemporaryDisputeCaseUUID,
AddressLine1,
AddressLine2,
CaseIsDisplayOnly,
UserDefinedText,
CACaseConversionStatus,
CaseAttributeProfile,
@EndUserText.label: 'Source Component'
CADisputeCaseOrigin,
@Semantics.text:true
CADisputeCaseOriginText,
CAAuthorizationGroup,
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_FKK_CADISPUTECASE_EXIT'
virtual DisputeIsBasedOnOpenAmount : xdamnt_open,
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_FKK_CADISPUTECASE_EXIT'
virtual IsCloudSystem : is_cloud_system,
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_FKK_CADISPUTECASE_EXIT'
virtual IsDraftEntity : abap_boolean,
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_FKK_CADISPUTECASE_EXIT'
virtual CADisputeCaseProcessingIsActv : abap_boolean,
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_FKK_CADISPUTECASE_EXIT'
virtual CADisputeCaseDisplayIsHidden : abap_boolean,
@ObjectModel.virtualElement
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_FKK_CADISPUTECASE_EXIT'
@ObjectModel.filter.transformedBy: 'ABAP:CL_FKK_CADSPUTCASE_CADOC_VH'
//@Consumption.valueHelp: '_DisputedDocument'
virtual CADocument : opbel_gfn_kk,
@ObjectModel.virtualElement
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_FKK_CADISPUTECASE_EXIT'
@ObjectModel.filter.transformedBy: 'ABAP:CL_FKK_CADSPUTCASE_CADOC_VH'
//@Consumption.valueHelp: '_DisputedInvoicing'
virtual CAInvoicingDocument : invdocno_kk,
@ObjectModel.filter.enabled: false
_NotDisPayment,
@ObjectModel.filter.enabled: false
_NotDisCredit,
@ObjectModel.filter.enabled: false
_ChangeHistory,
@ObjectModel.filter.enabled: false
_NotDisCreditMemo,
@ObjectModel.filter.enabled: false
_NotDisDocument,
@ObjectModel.filter.enabled: false
_CreatedBy,
@ObjectModel.filter.enabled: false
_Coordinator,
@ObjectModel.filter.enabled: false
_Responsible,
@ObjectModel.filter.enabled: false
_Processor,
@ObjectModel.filter.enabled: false
_NotDisInvcgDoc,
@ObjectModel.filter.enabled: false
_NotDisInvcgDocItem,
@ObjectModel.filter.enabled: false
_NotDisBillableItem,
@ObjectModel.filter.enabled: false
_BusinessPartner,
@ObjectModel.filter.enabled: false
_ContractAccount,
@ObjectModel.filter.enabled: false
_ProviderContract,
@ObjectModel.filter.enabled: false
_CASubApplicationText,
@ObjectModel.filter.enabled: false
_ContactPersonFaxCountryText,
_DisputedDocument : redirected to composition child C_CADisputedDocumentDraftTP,
_DisputedPayment : redirected to composition child C_CADisputedPaymentDraftTP,
_DisputedFollowUp : redirected to composition child C_CADisputeCaseFllwUpDocDrftTP,
_DisputeCredit : redirected to composition child C_CADisputedCreditDraftTP,
_DisputedInvoicing : redirected to composition child C_CADisputedInvcgDocDraftTP,
_DisputedInvoicingItem : redirected to composition child C_CADisputedInvcgDocItemDrftTP,
_DisputedBit : redirected to composition child C_CADisputedBllbleItmDraftTP
}