on 01-26-2016 9:38 PM
Preciso conseguir ler textos adicionais dos itens e header da fatura durante a gravação da VF01.
Acontece que quando este método é invocado, a fatura não foi criada fisicamente em banco e o READ_TEXT pela Fatura, item fica impossível.
Alguém já passou por isso?
Olá André,
Acredito que ja passei por isso, em uma implementação que fiz nós utilizavamos a numeração automática da NF-e (Assim que a NF-e é criada ela ja é numerada e enviada), neste contexto o SAP só realiza o COMMIT nas tabelas do sistema depois de enviar a nota, o que gera este problema, pois o READ_TEXT não consegue achar nada nas tabelas.
Existem duas formas de resolver:
1 - Configure a forma de numeração e envio da NF-e através de Batch Job, desta forma o sistema irá salvar a NF-e primeiro (realizando o COMMIT nas tabelas) e enviará a NF-e depois.
O caminho do SPRO é este (Campo RFC Exec.):
SPRO> Cross-Application Components > General Application Functions > Nota fiscal > Output > Assign Numbering and Printing Parameters
Nesta forma o READ_TEXT na Badi deve funcionar.
2 - A segunda forma é realizar um enhancement no momento da criação da fatura, este enhancement deverá extrair os textos da fatura no momento de salvar e colocá-los em uma variável de memória que será utilizada na Badi da NF-e. Deve-se tomar cuidado com esta solução, pois caso a NF-e seja rejeitada e tenha de ser reenviada, a Badi deve estar preparada para pegar os textos das tabelas standard e não da variável de memória. Infelizmente não lembro qual foi o local exato do enhancement.
Espero ter ajudado,
Daniel Zambrini
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Daniel,
O método ADD_DATA da BAdI nova é chamado ao salvar a VF01, independente do decouple. O que impede que os textos do faturamento sejam lidos durante a BAdI é o fato que a função COMMIT_TEXT ser executada pelo standard ANTES da BAdI.
Aqui eu fiz como você sugeriu, porém, fiz usando a exit RV60AFZZ subrotina USEREXIT_SAVE_DOCUMENT_PREPARE.
Aqui, dei um loop na XTHEAD, chamando a função READ_TEXT com os dados da linha da XTHEAD, guardando os textos relevantes em uma tabela interna e depois exportando para a memória.
Na BAdI ADD_DATA, apenas importava essa tabela da memoria.
[]'s
JN
User | Count |
---|---|
13 | |
2 | |
2 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.