@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'Service Transaction Long Texts'
@Metadata.ignorePropagatedAnnotations: true
@ObjectModel.usageType.dataClass: #TRANSACTIONAL
@ObjectModel.usageType.serviceQuality: #C
@ObjectModel.usageType.sizeCategory: #L
@VDM.viewType: #BASIC
define view entity I_ServiceDocumentLongText
// Texts which are reference texts to a One Order text
as select from crms4d_text as ServiceDocumentText
left outer to one join crms4d_text as ReferenceServiceDocumentText
on ReferenceServiceDocumentText.text_object = ServiceDocumentText.ref_text_object
and ReferenceServiceDocumentText.text_id = ServiceDocumentText.ref_text_id
and ReferenceServiceDocumentText.language = ServiceDocumentText.language
and ReferenceServiceDocumentText.objtype_h = ServiceDocumentText.ref_objtype_h
and ReferenceServiceDocumentText.object_id = ServiceDocumentText.ref_object_id
and ReferenceServiceDocumentText.number_int = ServiceDocumentText.ref_number_int
association [1..1] to I_TextObjectCategory as _TextObjectCategory on $projection.TextObjectCategory = _TextObjectCategory.TextObjectCategory
association [1..1] to I_TextObjectType as _TextObjectType on $projection.TextObjectCategory = _TextObjectType.TextObjectCategory
and $projection.TextObjectType = _TextObjectType.TextObjectType
association [1..1] to I_Language as _Language on $projection.Language = _Language.Language
association [1..1] to I_CustMgmtBusObjType as _ServiceObjType on $projection.ServiceObjectType = _ServiceObjType.BusinessObjectType
association [1..1] to I_TextObjectCategory as _ReferenceTextObjectCategory on $projection.ReferenceTextObjectCategory = _ReferenceTextObjectCategory.TextObjectCategory
association [1..1] to I_TextObjectType as _ReferenceTextObjectType on $projection.ReferenceTextObjectCategory = _ReferenceTextObjectType.TextObjectCategory
and $projection.ReferenceTextObjectType = _ReferenceTextObjectType.TextObjectType
{
key ServiceDocumentText.text_uuid as ServiceDocumentLongTextUUID,
@ObjectModel.foreignKey.association: '_TextObjectCategory'
ServiceDocumentText.text_object as TextObjectCategory,
@ObjectModel.foreignKey.association: '_TextObjectType'
ServiceDocumentText.text_id as TextObjectType,
@ObjectModel.foreignKey.association: '_Language'
@Semantics.language:true
ServiceDocumentText.language as Language,
@ObjectModel.foreignKey.association: '_ServiceObjType'
ServiceDocumentText.objtype_h as ServiceObjectType,
ServiceDocumentText.object_id as ServiceDocument,
ServiceDocumentText.number_int as ServiceDocumentItem,
ServiceDocumentText.mimetype as SrvcDocLongTextMimeType,
ReferenceServiceDocumentText.text_content as ServiceDocumentLongText,
@ObjectModel.foreignKey.association: '_ReferenceTextObjectCategory'
ServiceDocumentText.ref_text_object as ReferenceTextObjectCategory,
@ObjectModel.foreignKey.association: '_ReferenceTextObjectType'
ServiceDocumentText.ref_text_id as ReferenceTextObjectType,
ServiceDocumentText.ref_text_name as ReferenceLongTextKey,
ServiceDocumentText.ref_objtype_h as ReferenceServiceObjectType,
ServiceDocumentText.ref_object_id as ReferenceServiceDocument,
ServiceDocumentText.ref_number_int as ReferenceServiceDocumentItem,
ServiceDocumentText.log_timestamp as SrvcDocLogTextIdentifier,
ServiceDocumentText.created_at as SrvcDocLongTxtCreationDateTime,
ServiceDocumentText.created_by as SrvcDocLongTextCreatedByUser,
ServiceDocumentText.changed_at as SrvcDocLongTextChangedDateTime,
ServiceDocumentText.changed_by as SrvcDocLongTextChangedByUser,
_TextObjectCategory,
_TextObjectType,
_Language,
_ServiceObjType,
_ReferenceTextObjectCategory,
_ReferenceTextObjectType
}
where ServiceDocumentText.ref_text_object = 'CRM_ORDERH' or
ServiceDocumentText.ref_text_object = 'CRM_ORDERI'
// All other texts (texts which are not reference texts, or which have a reference to a foreign text object)
union all select from crms4d_text as ServiceDocumentText
association [1..1] to I_TextObjectCategory as _TextObjectCategory on $projection.TextObjectCategory = _TextObjectCategory.TextObjectCategory
association [1..1] to I_TextObjectType as _TextObjectType on $projection.TextObjectCategory = _TextObjectType.TextObjectCategory
and $projection.TextObjectType = _TextObjectType.TextObjectType
association [1..1] to I_Language as _Language on $projection.Language = _Language.Language
association [1..1] to I_CustMgmtBusObjType as _ServiceObjType on $projection.ServiceObjectType = _ServiceObjType.BusinessObjectType
association [1..1] to I_TextObjectCategory as _ReferenceTextObjectCategory on $projection.ReferenceTextObjectCategory = _ReferenceTextObjectCategory.TextObjectCategory
association [1..1] to I_TextObjectType as _ReferenceTextObjectType on $projection.ReferenceTextObjectCategory = _ReferenceTextObjectType.TextObjectCategory
and $projection.ReferenceTextObjectType = _ReferenceTextObjectType.TextObjectType
{
key ServiceDocumentText.text_uuid as ServiceDocumentLongTextUUID,
// @ObjectModel.foreignKey.association: '_TextObjectCategory'
ServiceDocumentText.text_object as TextObjectCategory,
// @ObjectModel.foreignKey.association: '_TextObjectType'
ServiceDocumentText.text_id as TextObjectType,
// @ObjectModel.foreignKey.association: '_Language'
ServiceDocumentText.language as Language,
// @ObjectModel.foreignKey.association: '_ServiceObjType'
ServiceDocumentText.objtype_h as ServiceObjectType,
ServiceDocumentText.object_id as ServiceDocument,
ServiceDocumentText.number_int as ServiceDocumentItem,
ServiceDocumentText.mimetype as SrvcDocLongTextMimeType,
ServiceDocumentText.text_content as ServiceDocumentLongText,
// @ObjectModel.foreignKey.association: '_ReferenceTextObjectCategory'
ServiceDocumentText.ref_text_object as ReferenceTextObjectCategory,
// @ObjectModel.foreignKey.association: '_ReferenceTextObjectType'
ServiceDocumentText.ref_text_id as ReferenceTextObjectType,
ServiceDocumentText.ref_text_name as ReferenceLongTextKey,
ServiceDocumentText.ref_objtype_h as ReferenceServiceObjectType,
ServiceDocumentText.ref_object_id as ReferenceServiceDocument,
ServiceDocumentText.ref_number_int as ReferenceServiceDocumentItem,
ServiceDocumentText.log_timestamp as SrvcDocLogTextIdentifier,
ServiceDocumentText.created_at as SrvcDocLongTxtCreationDateTime,
ServiceDocumentText.created_by as SrvcDocLongTextCreatedByUser,
ServiceDocumentText.changed_at as SrvcDocLongTextChangedDateTime,
ServiceDocumentText.changed_by as SrvcDocLongTextChangedByUser,
_TextObjectCategory,
_TextObjectType,
_Language,
_ServiceObjType,
_ReferenceTextObjectCategory,
_ReferenceTextObjectType
}
where ServiceDocumentText.ref_text_object <> 'CRM_ORDERH' and
ServiceDocumentText.ref_text_object <> 'CRM_ORDERI'