https://github.com/edmilson-nascimento/document_update
Atualização de NF usando J_1B_NF_DOCUMENT_UPDATE
https://github.com/edmilson-nascimento/document_update
abap banco-de-dados nfe nota persistence sap
Last synced: 5 months ago
JSON representation
Atualização de NF usando J_1B_NF_DOCUMENT_UPDATE
- Host: GitHub
- URL: https://github.com/edmilson-nascimento/document_update
- Owner: edmilson-nascimento
- Created: 2017-08-31T12:26:08.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2024-10-23T20:45:44.000Z (12 months ago)
- Last Synced: 2024-10-24T08:32:26.319Z (12 months ago)
- Topics: abap, banco-de-dados, nfe, nota, persistence, sap
- Language: ABAP
- Homepage:
- Size: 11.7 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Atualização de NF

Este tem como objeto fazer um modelo de base para que seja poupado trabalho quando houver uma solução de atualização de Nota Fiscal.
- Utilização de BAPI
- Atualização de cabeçalho, item, taxas e etc
- Filtro para NF informada na `selection-screen`
## Recuperação das informaçõesAntes de iniciar os ajustes, é muito importante que os dados sejam recuperados para que as tabelas obrigatórias BAPI sejam passadas corretamente. **Tabelas passadas sem informações, serão aceitas como deleção para esta BAPI.**
A recuperação dessas informações pode ser feita através da BAPI `'J_1B_NF_DOCUMENT_READ'` conforme abaixo.
```abap
call function 'J_1B_NF_DOCUMENT_READ'
exporting
doc_number = doc_number
importing
doc_header = doc_header
tables
doc_partner = doc_partner
doc_item = doc_item
doc_item_tax = doc_item_tax
doc_header_msg = doc_header_msg
doc_refer_msg = doc_refer_msg
* doc_ot_partner =
* doc_import_di =
* doc_import_adi =
* doc_cte_res =
* doc_cte_docref =
exceptions
document_not_found = 1
docum_lock = 2
others = 3 .
if sy-subrc <> 0 .
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
```
## Alteração das informaçõesApos a *Recuperação das informações*, ficam disponíveis as tabelas internas para que os dados sejam alterados. Basta atualizar o registro que deseja antes de chamar a próxima `BAPI`.
## Atualização das informações
É possivel fazer alteração dos valores que espera que sejam atualizados no pontos onde as informações são passadas para as estrutura/tabelas da BAPI. Nesse caso, estou alterando apenas o campo `taxsi4` que corresponde a *Situação de impostos COFINS*, mas pode ser aplicados a varios campos diferentes.
```abap
loop at lt_j_1bnflin into ls_j_1bnflin .
ls_j_1bnflin-taxsi4 = '04' .
append ls_j_1bnflin to doc_item .
endloop .
```As informações são recuperadas pelas estruturas/tabelas `ls_j_1bnfdoc` e `lt_j_1bnflin`, mas as informações que serão atualizadas estão nos parâmetros de entrada da função `J_1B_NF_DOCUMENT_UPDATE`.
Apos a execução, é necessário um `commit` de bando de dados, que nesse caso é feito pela `BAPI` responsavel.
```abap
call function 'BAPI_TRANSACTION_COMMIT'
* exporting
* wait =
* importing
* return =
.
```