Pela chave da NFE ler tabela /XNFE/EVENTS
CHNFE = <chave da NF>
pegar o valor do GUID
Utilizar função /XNFE/PROCSTEP_EV_ERPUPDAT - colocar o GUID
Executar debugando conforme tela abaixo.
Pela chave da NFE ler tabela /XNFE/EVENTS
CHNFE = <chave da NF>
pegar o valor do GUID
Utilizar função /XNFE/PROCSTEP_EV_ERPUPDAT - colocar o GUID
Executar debugando conforme tela abaixo.
Precisei fazer isso para um programa Z que lista doc. contábil e o usuário queria anexar arquivos nos doc. contábeis.
DATA(lo_gos) = NEW cl_gos_srv_attachment_create( ).
DATA: l_sib TYPE sibflporb,
l_ip TYPE swc_value,
l_status TYPE sgs_status,
l_icon TYPE sgs_icon.
"Empresa + Doc.contábil + Exercicio
l_sib-instid = '100010000592332021'.
l_sib-typeid = 'BKPF'.
l_sib-catid = 'BO'.
"igual ao L_SIB-INSTID
l_ip = '100010000592332021'.
lo_gos->set_object(
EXPORTING is_lporb = l_sib
ip_default_attribute = l_ip
IMPORTING
ep_status = l_status
ep_icon = l_icon ).
lo_gos->execute( ).
"Não esquecer do COMMIT
COMMIT WORK AND WAIT.
Transação SCASE_CUSTOMIZING
- Definição SCMG_CASE_FCODE_S
Definição SCMG_INITIALIZE_C
Implementação com filtro. No caso da UKM_CASE
No meu caso, defini um valor padrão para o segmento de crédito '0000'
DATA: l_help TYPE string.
TRY.
CALL METHOD im_case->get_single_attribute_value
EXPORTING
im_srmadid = 'FCR_SEGMENT'
RECEIVING
re_value = l_help.
IF l_help IS INITIAL.
l_help = '0000'.
ENDIF.
* set currency to prevent UI-error due to initial currency
CALL METHOD im_case->set_single_attribute_value
EXPORTING
im_value = l_help
im_srmadid = 'FCR_SEGMENT'.
CATCH cx_srm_framework .
CATCH cx_scmg_case_attribute .
ENDTRY.
RESULTADO.
Situação de tela com 2 ALV em tela SPLIT, no ALV superior com campo hotspot, e no ALV inferior lista de itens do item superior selecionado.
ALV inferior utilizando classes SALV, tentei utilizar o filtro, mas a tela não atualizava, tentei forçar o PBO utilizando o método
CALL METHOD cl_gui_cfw=>set_new_ok_code
EXPORTING
new_code = 'REFRESH'.
mas também não funcionou.
Para resolver tive que carregar os dados novamente com o filtro. Um detalhe é q tive q carregar todos os dados, anteriormente tentei montar uma tabela interna com o filtro, até atualizava a tela, mas não sei o que acontece mas ao rolar o scroll lateral no final da página dava um DUMP, me parece q ele se perde no contador de linhas. Mas sempre carregando tudo funciona sem problema.
READ TABLE gt_dados INDEX fu
INTO DAT
CHECK sy-subrc = 0.
DATA(lo_filters) = o_alv_
lo_filters->remove_filter('
l_low = ls_dados-matnr.
lo_filters->add_filter(
columnname = 'MATNR'
low = l_low
).
o_alv_item->set_data( CHANGI
o_alv_item->refresh( ).
Eu tinha um aplicativo criado no VS code que testava e funcionava sem problema, quando eu importei no S4, dava erro ao carregar a aplicação no browser..
no console do browser - chrome apresentava erro na biblioteca sap.m.f.layouttype.js
substitui a chamada no INDEX.HTML na linha do src
Substitui por:
Verificar a nota 1937247 - How to manage SAP standard templates [Video]
Importar o arquivo .zip da nota 1686797
Apesar da nota 1937247 falar para importar no client 000, pode fazer direto no ambiente q está com erro
Exemplo, descrição do material
Importante lembrar de colocar a categoria de dados e a semantica de texto
@AbapCatalog.sqlViewName: 'ZDDV_CDS_SZK_T8'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@ObjectModel.dataCategory: #TEXT
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Material'
@OData.publish: true
define view ZDD_CDS_SZK_T8 as select from makt
{
key matnr as CodMat,
@Semantics.text: true
@EndUserText.label: 'Descrição'
cast(maktx as abap.char(30)) as Mattxt
} where spras = $session.system_language
--- Na view principal
define view ZDD_CDS_SZK_T3
as select from vbak as A
association [1..*] to zdd_cds_szk_t6 as _ItemOV on $projection.DocVen = _ItemOV.Vbeln
association [1] to ZDD_CDS_SZK_T4 as _SalesOrg on $projection.OrgVen = _SalesOrg.SalesOrganization
association [1] to ZDD_CDS_SZK_T7 as _ItemOVSum on $projection.DocVen = _ItemOVSum.Vbeln
association [1] to ZDD_CDS_SZK_T8 as _MatF4 on $projection.CodMat = _MatF4.CodMat
{
@UI.facet: [
{
id: 'Info',
type: #DATAPOINT_REFERENCE,
purpose: #HEADER,
position: 10,
qualifier: 'OrgVenda'
},
-- facet de corpo
{
id: 'Dados',
label: 'Info geral',
type: #COLLECTION,
purpose: #STANDARD,
position: 10
},
{
label: 'Dados NF',
type: #IDENTIFICATION_REFERENCE,
purpose: #STANDARD,
position: 10,
parentId: 'Dados'
},
{
id: 'Item',
type: #LINEITEM_REFERENCE,
purpose: #STANDARD,
targetElement: '_ItemOV',
position: 20
}
]
@ObjectModel.text.association: '_MatF4'
@UI.lineItem: [{ position: 10 }]
key A.vbeln as DocVen,
@UI.lineItem: [{ position: 30 }]
@UI.selectionField: [{position: 30}]
@ObjectModel.foreignKey.association: '_SalesOrg'
@Consumption.filter: { selectionType: #RANGE, multipleSelections: true }
@UI.dataPoint: { qualifier: 'OrgVenda', title: 'Organização de vendas' }
A.vkorg as OrgVen,
@UI.lineItem: [{ position: 40 }]
@UI.selectionField: [{position: 40}]
@UI.dataPoint: { title: 'Canal de distribuição' }
A.vtweg as CanDist,
@UI.lineItem: [{ position: 50 }]
@UI.selectionField: [{position: 50}]
@UI.identification: [{ position: 10 }]
A.spart as SetAtiv,
@UI.dataPoint: { title: 'Cliente' }
A.kunnr as CodCli,
@UI.hidden: true
A.auart as TpOV,
(concat('Doc.Venda :', A.vbeln ) ) as TxtDoc,
case
when _ItemOVSum.SomaTotal < 10 then 1
else 3
end as StatusCor,
@UI.lineItem: [{ position: 60 },
{ criticality: 'StatusCor', value: 'TotalQtd' }]
_ItemOVSum.SomaTotal as TotalQtd,
_ItemOVSum.totitem as TotItem,
@UI.selectionField: [{position: 50}]
@ObjectModel.foreignKey.association: '_MatF4'
@Search.defaultSearchElement: true
--@Consumption.filter: { selectionType: #RANGE, multipleSelections: true }
_ItemOV.Matnr as CodMat,
_ItemOV,
_ItemOVSum,
_SalesOrg,
_MatF4
}