SAP ERP Central Component
Regras de Unicode: seguidas por ecc 6.0
Desenvolvimento ABAP sob Unicode
Antes do Unicode, o comprimento de um caractere era exatamente de um byte, o que permitia conversões implícitas ou programação orientada à disposição em memória. Com Unicode, essa situação mudou: Um caractere já não é um byte, então especificações adicionais devem ser adicionadas para definir a unidade de medida para referências implícitas ou explícitas ao (comprimento de) caracteres.
Os dados tipo caractere em ABAP são sempre representados no padrão UTF-16 (também usado em Java ou outras ferramentas de desenvolvimento como o Visual Basic da Microsoft); mas esse formato não está relacionado à codificação do banco de dados subjacente.
Um programa ABAP habilitado para Unicode (UP) é um programa no qual todas as verificações Unicode são eficazes. Esse programa retorna os mesmos resultados em um sistema não Unicode (NUS) como em um sistema Unicode (US). Para realizar as verificações de sintaxe relevantes, você deve ativar a flag Unicode nas telas do programa e nos atributos de classe.
Em um US, você só pode executar programas para os quais a flag Unicode foi estabelecida. No futuro, a flag Unicode deve ser estabelecida para todos os programas SAP para que possam ser executados em um US. Se a flag Unicode estiver configurada para um programa, a sintaxe é verificada e o programa é executado de acordo com as regras descritas neste documento, independentemente de o sistema ser um US ou um NUS. A partir de agora, a flag Unicode deve ser estabelecida para todos os programas e classes novos que forem criados.
Se a flag Unicode não estiver configurada, um programa só pode ser executado em um NUS. As alterações sintáticas e semânticas descritas a seguir não se aplicam a tais programas. No entanto, você pode usar todas as extensões de linguagem que foram introduzidas no processo de conversão para Unicode.
Como resultado das modificações e restrições associadas à flag Unicode, os programas são executados em sistemas Unicode e não Unicode com a mesma semântica em grande parte. No entanto, em casos raros, podem ocorrer diferenças. Portanto, os programas projetados para serem executados em ambos os sistemas devem ser testados em ambas as plataformas.
Outras Mudanças
1. Declarações de bits
2. Adicionar sequências de campos
3. Laços com VARY e VARYING
4. Criação de sub-rotinas
5. Salvar programas
6. Atribuição de tipos para GET/SET PARAMETER
7. Declarações inalcançáveis
8. Módulos de função com nomes de parâmetros incorretos
1. Declarações de bits
Anteriormente, o sistema verificava para as declarações de bits SET BIT i OF f [TO g] e GET BIT i OF f [INTO g] se o campo f era do tipo caractere; os campos X, strings X e estruturas planas geralmente eram considerados como tipo caractere. Para programas Unicode, isso não é mais útil, pois os tipos X e XSTRING não são mais considerados como tipo caractere e o acesso bit a bit a campos ou estruturas do tipo caractere já não é independente da plataforma. Portanto, com essas operações em programas Unicode, o campo f deve ser do tipo X ou XSTRING.
Para operações de máscara de bits f O x, f Z x e f M x, anteriormente você podia usar todos os tipos numéricos e, portanto, todos os tipos de tipo caractere para o operando esquerdo f. Em programas Unicode, o operando f agora deve ser do tipo X ou XSTRING.
2. Adicionar sequências de campos
Ao adicionar sequências de campos, restrições são aplicadas às seguintes declarações em Unicode:
ADD n1 THEN n2 UNTIL nz [ DE ACORDO COM seleção ] DANDO m ...
ADD n1 THEN n2 UNTIL nz A m [ INTERVALO cadeia ].
1. Os operandos n1, n2 e nz devem ser compatíveis entre si.
2. A distância entre nz e n1 deve ser um múltiplo inteiro da distância entre n2 e n1.
3. Um erro de sintaxe ou tempo de execução ocorre se os campos n1, n2 e nz não estiverem em uma estrutura. Esta estrutura deve ser reconhecível estaticamente ou sua área válida deve ser marcada explicitamente usando a adição de INTERVALO.
4. Em tempo de execução, o sistema garante que a área do INTERVALO não seja ultrapassada.
ADD n1 DESDE i1 DANDO m [ INTERVALO cadeia ].
1. O campo n1 deve estar dentro da estrutura. A estrutura deve ser definida explicitamente usando a adição de INTERVALO se não for reconhecível estaticamente.
2. Para essa variante, o sistema também verifica em tempo de execução se n1 e os valores direcionados estão dentro da estrutura.
3. Laços