sábado, 17 de fevereiro de 2024

RAP - Facets(Object list page) - Várias formas

 Adicionando campos no cabeçalho.



Resultado











========================================

Adionando abas 




Resultado



















=================================
Adicionando outra lista no object pages
- Primeiro passo criar uma entidade da lista que vai ser criado, no meu caso os impostos de um item da NF

@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'Impostos '
define root view entity ZI_Impostos
  as select from I_BR_NFTax

{

  key BR_NotaFiscal               as Docnum,
  key BR_NotaFiscalItem           as Itmnum,
  key BR_TaxType                  as Taxtype,
  key TaxGroup                    as TaxGrp,
      @Semantics.amount.currencyCode: 'Currency'
      BR_NFItemBaseAmount         as Base,
      BR_NFItemTaxRate            as Rate,
      @Semantics.amount.currencyCode: 'Currency'
      BR_NFItemTaxAmount          as TaxValue,
      BR_NFItemExcludedBaseAmount as ExcBase,
      @Semantics.amount.currencyCode: 'Currency'
      BR_NFItemOtherBaseAmount    as OthBas,
      SalesDocumentCurrency       as Currency

}

Criei uma projection view tbm mas não sei se é necessário

@EndUserText.label: 'Impostos da Nota Fiscal Importação (Projection)'
@AccessControl.authorizationCheck: #NOT_REQUIRED
@Metadata.allowExtensions: true
define root view entity ZC_Impostos
  provider contract transactional_query
  as projection on ZI_Impostos
{
  key Docnum,
  key Itmnum,
  key Taxtype,
  key TaxGrp,
      Base,
      Rate,
      TaxValue,
      ExcBase,
      OthBas,
      Currency
}

Criei um METADATA
@Metadata.layer: #CORE
annotate entity ZC_Impostos with
{
  @UI:{ lineItem: [{ position: 10 }] }
  @EndUserText.label: 'Tipo Imposto'
  Taxtype;
  @UI:{ lineItem: [{ position: 20 }] }
  @EndUserText.label: 'Grupo Imposto'
  TaxGrp;
  @UI:{ lineItem: [{ position: 30 }] }
  @EndUserText.label: 'Base'
  Base;
  @UI:{ lineItem: [{ position: 40 }] }
  @EndUserText.label: 'Taxa'
  Rate;
  @UI:{ lineItem: [{ position: 50 }] }
  @EndUserText.label: 'Valor Imposto'
  TaxValue;
  @UI:{ lineItem: [{ position: 60 }] }
  @EndUserText.label: 'Base excluída'
  ExcBase;
  @UI:{ lineItem: [{ position: 70 }] }
  @EndUserText.label: 'Outras Bases'
  OthBas;
  @UI:{ lineItem: [{ position: 80 }] }
    @EndUserText.label: 'Moeda'
  Currency;

}

Fiz a associação a minha projection principal 
@EndUserText.label: 'Dados gestão importação (projection)'
@AccessControl.authorizationCheck: #NOT_REQUIRED
@Metadata.allowExtensions: true
define root view entity ZC_DadosGestaoImportacao
  provider contract transactional_query
  as projection on ZI_DadosGestaoImportacao
  association [0..*] to ZC_Impostos as _ImpList on $projection.docnum = _ImpList.Docnum
                                                     and $projection.itmnum = _ImpList.Itmnum  

{
  key zuonr,
  key belnr,
  key gjahr,
  key buzei,
      bldat,
      budat,
      usnam,
      xblnr,
      bukrs,
      --@ObjectModel.foreignKey.association: '_Lfa1'
      @ObjectModel.text.element: ['NomeFornecedor']
      lifnr,
      waers,

      _ImpList
    
No METADATA principal criei o facet para associação
-- TAB dados Impostos
  {
      id: 'Impostos',
      purpose: #STANDARD,
      type: #LINEITEM_REFERENCE,
      label: 'Impostos',
      position: 50,
      targetElement: '_ImpList'

  }
  ]

E não esquecer de adicionar a entidade no SERVICE DEFINITION
@EndUserText.label: 'Dados de Gestao de importação'
define service ZSD_DadosGestaoImportacao {
  expose ZC_DadosGestaoImportacao;
  expose ZC_Impostos;
}

Resultado















Nenhum comentário:

Postar um comentário