quinta-feira, 11 de abril de 2024

RAP - Fiori elements com Extend utilizando script XLSX.js para Upload arquivo excel

 A principio dá para usar quase tudo q está aqui, 

https://community.sap.com/t5/technology-blogs-by-members/excel-upload-using-rap-part-1/ba-p/13545399

mas para mim não funcionou 100%, foi necessário alguns ajustes.
- a parte do fiori guide development pode seguir igual
- pode criar o fragment
- pode atualizar o controller conforme está no blog

Agora a parte de alterar os arquivos 
- ui5.yaml 
- package.json

Não acho necessário.. 

depois do importe do arquivo utilizando o NPM INSTALL XLXS

copiar o arquivo xlxs.js  que fica criado dentro da pasta xlsx no node_modules









Criar uma pasta tipo "lib" ou "util" dentro da pasta do ext e colar os arquivos
- xlxs.js 
- jzip.js








No arquivo manifest.json incluir a biblioteca dentro de rescursos.









No Controller NÃO pode declarar o objeco XLSX pois dentro do arquivo xlsx.js esse objetos está global.















É possível q tenha erros de conversão na planilha então tem q fazer a conversão.






















Conversão quando é campo numérico null.






terça-feira, 9 de abril de 2024

RAP - Abstract entity com Value help

 Imagina um cara que sofreu para esse treco funcionar...  


@EndUserText.label: 'Popup material não aplicado'

define abstract entity ZI_RetMatNAPl

{

@Consumption.filter.mandatory: true

@Consumption.valueHelpDefinition: [{ entity: {name: 'I_Customer_VH' , element: 'Customer' }, useForValidation: true }]

@EndUserText.label: 'Cliente'

Kunnr : kunnr;

@Consumption.filter.mandatory: true

@Consumption.valueHelpDefinition: [{ entity: {name: 'I_PlantStdVH' , element: 'Plant' }, useForValidation: true }]

@EndUserText.label: 'Centro'

Werks : werks_d;

}

==== Detalhe importante é o nome do campo que tem estar igual ao declarado no association da entidad principal, no meu caso fiquei penando até descobrir q era por causa da inicial maiúscula









== Não  sei afirmar ao certo se tem q ser dessa forma, mas foi só assim q funcionou para mim 











Não esquecer de remover esse parâmetro no manifest qdo for fazer o deploy