1 - MÉTODO MAIS TRABALHOSO - A SEGUNDO OPÇÃO É MAIS FÁCIL.
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
- 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
- xlxs.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.
========= 2 OPÇÃO UTILIZANDO OUTRA BIBLIOTECA
https://docs.spreadsheet-importer.com/pages/GettingStarted/
@EndUserText.label : 'teste'
@AbapCatalog.enhancement.category : #NOT_EXTENSIBLE
@AbapCatalog.tableCategory : #TRANSPARENT
@AbapCatalog.deliveryClass : #A
@AbapCatalog.dataMaintenance : #ALLOWED
define table zszk {
key mandt : mandt not null;
key matnr : matnr not null;
kunnr : kunnr;
tipo : char20;
budat : budat;
@Semantics.amount.currencyCode : 'bkpf.waers'
netwr : netwr;
}
Criei a ROOT e PROJECTION view
@AbapCatalog.viewEnhancementCategory: [#NONE]
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'teste'
@Metadata.ignorePropagatedAnnotations: true
@ObjectModel.usageType:{
serviceQuality: #X,
sizeCategory: #S,
dataClass: #MIXED
}
define root view entity ZSZK_TESTE
as select from zszk
{
key matnr as Matnr,
kunnr as Kunnr,
tipo as Tipo,
budat as Budat,
cast( 0 as abap.dec(15,2) ) as Netwr
}
=============================
@EndUserText.label: 'Projec V'
@AccessControl.authorizationCheck: #NOT_REQUIRED
define root view entity ZSZK_TESTE_V
provider contract transactional_query as projection on ZSZK_TESTE
{
@UI.lineItem: [{ position: 10 }]
key Matnr,
@UI.lineItem: [{ position: 20 }]
Kunnr,
@UI.lineItem: [{ position: 30 }]
Tipo,
@UI.lineItem: [{ position: 40 }]
Budat,
@UI.lineItem: [{ position: 50 }]
Netwr
}
Criei o behavior managed
managed implementation in class zbp_szk_teste unique;
strict ( 2 );
define behavior for ZSZK_TESTE //alias <alias_name>
persistent table zszk
lock master
authorization master ( instance )
//etag master <field_name>
{
create;
update;
delete;
field ( readonly : update ) Matnr;
mapping for zszk {
Kunnr = kunnr;
Matnr = matnr;
Tipo = tipo;
Budat = budat;
Netwr = netwr;
}
}
===============================
projection;
strict ( 2 );
define behavior for ZSZK_TESTE_V //alias <alias_name>
{
use create;
use update;
use delete;
}
Criei os serviços e binding.
- Passo VS code
1. Install from npm
npm install ui5-cc-spreadsheetimporter
2. Add resourceRoots to your manifest.json under sap.ui5
"resourceRoots": {
"cc.spreadsheetimporter.v1_1_1": "./thirdparty/customcontrol/spreadsheetimporter/v1_1_1"
}
5. Optional Avoid error component does not exist
If you deploy your app to a SAP System (S/4 On-Premise or SAP BTP ABAP environment), you may get the error component does not exist.
To avoid this error, you can add the following to your manifest.json file:
"sap.app": {
"embeds": ["thirdparty/customcontrol/spreadsheetimporter/v1_1_1"]
}
MANIFEST.JSON
- testei com data e valor e funciona sem erro.
Nenhum comentário:
Postar um comentário