Bom dia Gizela,
Aí está o problema, precisa colocar o E_COMMIT = 'X' para que a autorização seja gravada antes que o programa de impressão seja chamado. Quando isto acontece o programa de impressão aborta por não ter "nota autorizada". Aqui você encontra a sugestão da SAP Note:
Por outro lado, outro ponto que seu código revelou é o teste para não chamada automática, isto poderia chamar as funções em momentos não desejados:
*** Para a saída do Danfe o status do documento deve ter o valor 1
*** (autorizado) ou o sistema deve estar rodando em contingência
IF ( i_active-docsta NE '1' AND i_active-conting IS INITIAL ) OR
( i_active-code = '101' OR i_active-code = '102' ).
EXIT.
ENDIF.
Ele deixará passar várias situações, por exemplo notas em contingência já foram impressas e não devem ser impressas por agora então mudaria o AND para OR. E o está faltando os status de cancelamento pós prazo (155), poderia usar o flag CANCEL='X' para pular. E tem outras informações onde poderia checar para saber se esta chamada ao CALL_RSNAST00 é o ponto onde deseja realmente imprimir.
Atenciosamente, Fernando Da Rós