Avalados por :
O problema abordado nesta publicação do fórum de consultas SAP é muito interessante e comum no desenvolvimento de programas nesta plataforma. O usuário está procurando uma maneira de gerar automaticamente um número de pedido único para cada execução de seu programa e armazenar esse número em uma tabela para referência futura.
Para alcançar isso, o usuário está tentando usar a declaração INITIALIZATION no SAP, que é usada para inicializar valores antes que a tela de seleção seja exibida ao usuário. Neste caso, o usuário deseja que o campo "Código do Pedido" seja inicializado com o número de pedido mais alto de uma tabela mais 1.
A ideia de usar SELECT SINGLE MAX( CODPED ) para obter o número de pedido mais alto da tabela está correta. No entanto, parece que o usuário está tendo problemas com a sintaxe de seu código, o que está resultando em um erro de "declaração inatingível".
O erro de sintaxe pode estar relacionado com a forma como a declaração SELECT SINGLE está sendo utilizada. É importante lembrar que essa declaração deve ser seguida pela tabela da qual se deseja obter o valor máximo e o campo específico que está sendo procurado. Além disso, é importante garantir que a declaração esteja sendo usada dentro de um bloco de código que seja executado antes que a tela de seleção seja exibida ao usuário.
Uma maneira correta de expressar isso no SAP poderia ser a seguinte:
INITIALIZATION.
SELECT SINGLE MAX( CODPED ) INTO P_CODPED FROM ZNUMPED.
P_CODPED = P_CODPED + 1.
Neste código, é feita uma consulta à tabela ZNUMPED para obter o número de pedido mais alto e atribuí-lo à variável P_CODPED. Em seguida, esse valor é incrementado em 1 para obter o próximo número de pedido disponível.
Espero que esta explicação tenha sido útil e tenha esclarecido um pouco mais sobre a inicialização de valores no SAP e como obter o número de pedido mais alto de uma tabela. Se tiverem alguma outra pergunta ou dúvida, não hesitem em compartilhar!