C_CAMyOpenWorklistHeader

DDL: C_CAMYOPENWORKLISTHEADER SQL: CCAMYOPNWL Type: view CONSUMPTION

My Open Worklist

C_CAMyOpenWorklistHeader is a Consumption CDS View that provides data about "My Open Worklist" in SAP S/4HANA. It reads from 1 data source (I_CAWorklistHeader) and exposes 18 fields. It has 2 associations to related views. It is exposed through 2 OData services (UI_CACLEARINGLOCK_ANALYSIS, UI_CAPAYMENTLOCK_ANALYSIS). It is used in 2 Fiori applications: Analyze Clearing Locks (Version 2), Analyze Payment Locks (Version 2).

Data Sources (1)

SourceAliasJoin Type
I_CAWorklistHeader _WLHead from

Parameters (1)

NameTypeDefault
P_DisplayCurrency waers_kk

Associations (2)

CardinalityTargetAliasCondition
[0..*] C_CAMyOpenWorklistItem _WorklistItems $projection.CAWorklistUUID = _WorklistItems.CAWorklistUUID
[0..1] C_CAInvcgUserContact _CreatedByContact $projection.CreatedByUser = _CreatedByContact.ContactCardID

Annotations (18)

NameValueLevelField
AbapCatalog.sqlViewName CCAMYOPNWL view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
VDM.viewType #CONSUMPTION view
AccessControl.personalData.blocking #BLOCKED_DATA_EXCLUDED view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #XXL view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
ClientHandling.algorithm #SESSION_VARIABLE view
ObjectModel.representativeKey CAWorklistUUID view
ObjectModel.uniqueIdField CAWorklistUUID view
AccessControl.authorizationCheck #CHECK view
EndUserText.label My Open Worklist view
Search.searchable true view
UI.headerInfo.typeName Worklist view
UI.headerInfo.typeNamePlural Worklists view
UI.headerInfo.title.value CAWorklistTitle view
UI.headerInfo.description.value CAWorklistNumber view

OData Services (2)

ServiceBindingVersionContractRelease
UI_CACLEARINGLOCK_ANALYSIS UI_CACLEARINGLOCK_ANALYSIS V2 C1 NOT_RELEASED
UI_CAPAYMENTLOCK_ANALYSIS UI_CAPAYMENTLOCK_ANALYSIS V2 C1 NOT_RELEASED

Fiori Apps (2)

App IDApp NameTypeDescription
F1653A Analyze Clearing Locks (Version 2) Transactional, Analytical An application to analyze clearing locks based on a snapshot of the locked open business partner items.
F6134 Analyze Payment Locks (Version 2) Transactional, Analytical An application to analyze payment locks based on a snapshot of the locked open business partner items.

Analyze Clearing Locks (Version 2)

Business Role: Accounts Payable and Receivable Manager (FI-CA)

With the Analyze Clearing Locks app, you display existing clearing locks for receivables and payables. Using the app, you can display the amounts related to the selected locks in different currencies.As data volume in Contract Accounting can be very high, to improve performance, a new version of the app evaluates a system snapshot of receivables and payables instead of the current live data.

Analyze Payment Locks (Version 2)

Business Role: Accounts Payable and Receivable Manager (FI-CA)

With the Analyze Payment Locks app, you display existing payment locks for receivables and payables. Using the app, you can display the amounts related to the selected locks in different currencies.As data volume in Contract Accounting can be very high, to improve performance, a new version of the app evaluates a system snapshot of receivables and payables instead of the current live data.

Fields (18)

KeyFieldSource TableSource FieldDescription
ContactCardID
CAWorklistUUID
rankingHIGH
CAWorklistNumber
textArrangementTEXT_FIRST Source Application
rankingHIGH
CAInternalAppCode
rankingHIGH
CAInternalAppTextasCAInternalAppText Source Application Text
rankingHIGH
CAWorklistPriority
CAClarificationActionCode Priority
dec50asCAWorklistProgressPercent Worklist Progress
CAWorklistAmountInDC Open Amount
TransactionCurrency
roundX
target_currencyP_DisplayCurrency
CAExchangeRateDate
@AbapCatalog.sqlViewName: 'CCAMYOPNWL'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@VDM.viewType: #CONSUMPTION
@AccessControl.personalData.blocking: #BLOCKED_DATA_EXCLUDED
@ObjectModel.usageType.serviceQuality: #C
@ObjectModel.usageType.sizeCategory: #XXL
@ObjectModel.usageType.dataClass: #TRANSACTIONAL
@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel: {
  semanticKey: ['CAWorklistUUID'],
  representativeKey: 'CAWorklistUUID',
 uniqueIdField: 'CAWorklistUUID'
//  transactionalProcessingDelegated: true,

//  // enable crud

//  createEnabled: true

}

@AccessControl.authorizationCheck: #CHECK

@EndUserText.label: 'My Open Worklist'

@Search.searchable: true

@UI.presentationVariant: [{
//    qualifier: 'TableQualifier',

    sortOrder: [{by: 'CAWorklistNumber', direction: #ASC }],
    visualizations: [{type: #AS_LINEITEM, qualifier:'DefaultLineItem' }],
    requestAtLeast: ['CAWorklistNumber',
                     'CAWorklistUUID',
                     'CAWorklistNumberOfInProcItems',
                      'CAWorklistProgressPercent',
                      'CAActionText',
                      'CAWorklistText',
                      'CAWorklistDueDate',
                      'CAWorklistProgressCriticality',
                      'CAWorklistDueDateCriticality',
                      'CAWorklistOpenAmountInDC']
     }]

//Page Header

@UI: {
    headerInfo: {
        typeName: 'Worklist',
        typeNamePlural: 'Worklists',
        title: { value: 'CAWorklistTitle' },
        description: { value: 'CAWorklistNumber' }
    }
}

//Smart Variant for defining different Tabs

@UI.selectionVariant: [{qualifier: 'open', text: 'Open', filter: 'CAWorklistProgressPercent LT 100' },
                       {qualifier: 'closed', text: 'Closed', filter: 'CAWorklistProgressPercent EQ 100'  }]

//defining the main C-View with associations to other Views-

define view C_CAMyOpenWorklistHeader
  with parameters
    @EndUserText.label:'DisplayCurrency'
    @Consumption.valueHelpDefinition: [{entity: { name: 'I_Currency', element: 'Currency'}}]
    P_DisplayCurrency : waers_kk
  as select from I_CAWorklistHeader                                                     as _WLHead
    join         P_CAWorklistTotals2( P_DisplayCurrency: $parameters.P_DisplayCurrency) as _TotalAmount on _WLHead.CAWorklistUUID = _TotalAmount.CAWorklistUUID
  association [0..*] to C_CAMyOpenWorklistItem as _WorklistItems    on $projection.CAWorklistUUID = _WorklistItems.CAWorklistUUID
  association [0..1] to C_CAInvcgUserContact   as _CreatedByContact on $projection.CreatedByUser = _CreatedByContact.ContactCardID
{
        //Object Page facets

        @UI.facet: [
          {id: 'OpenAmount' , purpose: #HEADER, label: 'Open Amount' , type: #DATAPOINT_REFERENCE,  targetQualifier: 'CAWorklistOpenAmountInDC', targetElement: '_TotalAmount'},
          {id: 'ClosedAmount' , purpose: #HEADER, label: 'Closed Amount' , type: #DATAPOINT_REFERENCE,  targetQualifier: 'CAWorklistClosedAmountInDC'},
          {id: 'Status', purpose: #HEADER, label: 'Status', type: #DATAPOINT_REFERENCE, targetQualifier: 'CAWorklistProgressPercent'},
          {id: 'lineItems', type : #LINEITEM_REFERENCE, label: 'Open Worklist Items', targetElement: '_WorklistItems', position: 40, purpose: #STANDARD}
        ]

        @UI.hidden: true
        @Semantics.uuid
  key   _WLHead.CAWorklistUUID,

        @Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.7 }
        @UI.fieldGroup: [{ qualifier: 'dummy', position: 1 }]
        _WLHead.CAWorklistNumber,

        @ObjectModel.text.element: ['CAInternalAppText']
        @UI: {
          lineItem: [{position: 1, importance: #HIGH, qualifier:'DefaultLineItem'}],
          textArrangement: #TEXT_FIRST
        }
        @EndUserText.label: 'Source Application'
        @Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.7 }
        _WLHead.CAInternalAppCode,

        @UI.hidden: true
        //        @UI: {

        //          lineItem: [{position: 1, importance: #HIGH}]

        //        }

        @Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.7 }
        @EndUserText.label: 'Source Application Text'
       
        _WLHead._FioriID._Text[1:Language = $session.system_language].CAInternalAppText       as CAInternalAppText,

        @UI: {
            lineItem: [{position: 2, importance: #HIGH, qualifier:'DefaultLineItem' }]
        }
        @Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.7 }
        _WLHead.CAWorklistTitle,

        @UI: {
          lineItem: [{position: 3, label: 'Due Date', criticality: 'CAWorklistDueDateCriticality', qualifier:'DefaultLineItem'}]
        }
        _WLHead.CAWorklistDueDate,

        @ObjectModel.text.element: ['CAWorklistPriorityText']
        @UI.hidden: true
        _WLHead.CAWorklistPriority,

        @UI: {
          lineItem: [{position: 4}],
          textArrangement: #TEXT_ONLY
        }
        @Semantics.text
        @EndUserText.label: 'Priority'
        _WLHead._Priority._Text[1:Language = $session.system_language].CAWorklistPriorityText as CAWorklistPriorityText,

        @ObjectModel.text.element: ['CAWorklistActionText']
        @UI.hidden: true
        _WLHead.CAClarificationActionCode,

        @UI: {
         lineItem: [{position: 5}],
         textArrangement: #TEXT_ONLY
        }
        @Semantics.text
        @EndUserText.label: 'Action'
        _WLHead._Action._Text[1:Language = $session.system_language].CAWorklistActionText     as CAWorklistActionText,

        @UI: {
          lineItem: [{position: 6, type: #AS_DATAPOINT, importance: #HIGH, criticality: 'CAWorklistProgressCriticality', label: 'Completed in %', qualifier:'DefaultLineItem'}],
          dataPoint: {
              visualization: #PROGRESS,
              targetValue: 100,
              criticality: 'CAWorklistProgressCriticality',
              title: 'Completed in %',
              valueFormat.numberOfFractionalDigits: 0
              }
        }
        @EndUserText.label: 'Worklist Progress'
        fltp_to_dec(_TotalAmount.CAWorklistProgressPercent as abap.dec(5,0) )                 as CAWorklistProgressPercent,

        @Semantics.amount.currencyCode: 'DisplayCurrency'
        @DefaultAggregation: #SUM
        @UI: {
          lineItem: [{position: 7, label: 'Open Amount', importance: #HIGH, qualifier:'DefaultLineItem'}],
          dataPoint: {title: 'Open Amount'}
        }
        @EndUserText.label: 'Open Amount'
        _TotalAmount.CAWorklistOpenAmountInDC                                                 as CAWorklistOpenAmountInDC,
        //

        @Semantics.amount.currencyCode: 'DisplayCurrency'
        //@DefaultAggregation: #SUM

        @UI: {
          lineItem: [{position: 8, label: 'Amount In Process', importance: #HIGH, qualifier:'DefaultLineItem'}]
        }
        _TotalAmount.CAWorklistInProcessAmountInDC,
        //

        @Semantics.amount.currencyCode: 'DisplayCurrency'
        //        @DefaultAggregation: #SUM

        @UI: {
          lineItem: [{position: 9, label: 'Closed Amount', importance: #HIGH, qualifier:'DefaultLineItem'}]
        }
        @UI.dataPoint.title: 'Closed Amount'
        _TotalAmount.CAWorklistClosedAmountInDC,

        @ObjectModel: { text.element:  [ 'CreatedByUserName' ] }
        _WLHead.CreatedByUser,

        @UI.hidden: true
        _CreatedByContact.FullName                                                            as CreatedByUserName,

        _WLHead.CreationDate,

        @UI.hidden: true
        @Semantics.currencyCode: true
        $parameters.P_DisplayCurrency                                                         as DisplayCurrency,

        @UI.hidden: true
        @EndUserText.label: 'Total Amount'
        @Semantics.amount.currencyCode: 'DisplayCurrency'
        @DefaultAggregation: #SUM
        currency_conversion(  amount => _TotalAmount.CAWorklistAmountInDC,
                              source_currency => _TotalAmount.TransactionCurrency,
                              round => 'X',
                              target_currency => :P_DisplayCurrency,
                              exchange_rate_date => _TotalAmount.CAExchangeRateDate,
                              error_handling => 'SET_TO_NULL')                                as CAWorklistAmountInDC,

        @Consumption.semanticObject: 'Text'
        @UI: {
                  hidden: true
//          lineItem: [{position: 10, importance: #HIGH, qualifier:'DefaultLineItem'}]

        }
        _WLHead.CAWorklistText,

        @EndUserText.label: 'Open Items'
        _TotalAmount.CAWorklistNumberOfOpenItems,

        @EndUserText.label: 'Items In Process'
        _TotalAmount.CAWorklistNumberOfInProcItems,

        @EndUserText.label: 'Completed Items'
        _TotalAmount.CAWorklistNumberOfClosedItems,

        @UI.hidden: true
        @EndUserText.label: 'Due Date Criticality'
        _WLHead.CAWorklistDueDateCriticality,

        @UI.hidden: true
        @EndUserText.label: 'Progress Criticality'
        case
            when _TotalAmount.CAWorklistOpenAmountInDC = 0 then 3
        else 2
        end                                                                                   as CAWorklistProgressCriticality,

        //Associations

        _WorklistItems,
        _CreatedByContact
}
where
  _WLHead.CreatedByUser = $session.user