A criação de modelos avançados geralmente requer ir além do básico. Os administradores podem economizar tempo e evitar erros dominando alguns truques poderosos e métodos de solução de problemas. Abaixo estão algumas dicas e soluções práticas para simplificar a personalização do seu modelo usando o FreeMarker e ferramentas relacionadas.
Removendo o caractere CRLF (End of Line)
Ao trabalhar com modelos, talvez você queira controlar a presença de caracteres de fim de linha (CRLF) em sua saída. Normalmente, colocar tags de saída em linhas separadas introduz quebras de linha. Para remover o caractere CRLF no final, use a tag FreeMarker <#rt> logo após o conteúdo:
#OUTPUT START # ABC #OUTPUT END # |
|---|
|
Saída:
Com esse ajuste, a saída não incluirá uma quebra de linha automática após "ABC", resultando em uma formatação de arquivo mais limpa e controlada, especialmente ao gerar arquivos estruturados.Se você não quiser incluir um caractere CRLF para denotar o final de uma linha na saída, coloque a marca #OUTPUT END# logo após o último caractere no modelo. Usando a tag <#rt> FreeMarker:
Modelo:
#OUTPUT START # ABC < #rt > #OUTPUT END # |
|---|
|
Saída:
Obtendo IDs de Campos de Seleção
Acessar um campo de seleção de um registro ou resultado de pesquisa retorna o texto desse campo de seleção. Para obter a ID, acrescente .internalId ao acessar o campo.
Computação para a ID de sequência
Usando o getSequenceId(forTodaySequenceOnly), você pode criar sua própria função para calcular o ID da sequência nos registros PFA gerados. Consulte uma função de exemplo básica usando getSequenceId(true):
< #function computeSequenceId > <#assign lastSeqId = getSequenceId(true) > <#assign newSeqId = lastSeqId + 1 > <#return newSeqId > </#função> |
|---|
|
No final do modelo, após a tag END# #OUTPUT, adicione um retorno para a última ID de sequência que foi usada para atualizar a ID da sequência:
#RETURN START # sequenceId: $ { newSeqId } #RETURN END # |
|---|
|
Depuração de erros de modelo
Se o arquivo de saída não for criado com êxito ao usar o FreeMarker como mecanismo de modelo, a página Administração do Arquivo de Pagamento mostrará um status de Processado com Erros, com detalhes indicando que o sistema falhou ao renderizar o modelo de arquivo de pagamento.
Esse erro é causado por uma das seguintes condições:
- O recurso Modelos avançados de PDF/HTML não está ativado.
- O modelo contém sintaxe incorreta.
- Parênteses ausentes em condicionais que usam < ou >.
Incorreto:
Correto:
< #if greeting == "hello" > </#if> |
|---|
|
Um ou mais registros de entidade têm um problema.
Quando você encontrar a mensagem de erro: "EP_00017. Os registros da entidade têm problemas...",
Você pode exibir mais detalhes sobre as entidades afetadas por meio do Log de Execução:
1, Navegue até Customização > Scripts > Implantações de Script.
2. Na coluna Script, localize o registro Processamento de Pagamento Genérico (por exemplo, customdeploy_2663_payment_processing_ss — observe que o ID do script pode ser diferente).
3. Clique em Exibir para abrir o registro.
4. Vá para a subguia Log de Execução, onde você verá a lista detalhada de entidades com problemas.
Possíveis causas e correções
- Problema: entidade inativa
Ação: Exiba o registro da entidade para verificar o status e atualizar, se necessário.
- Problema: a caixa de pagamento da entidade não está marcada
Ação: na guia Detalhes de Pagamento Bancário de um registro de fornecedor ou funcionário, verifique se a caixa Pagamento de Fatura por TEF está marcada. Para registros de clientes, na guia Detalhes de Pagamento Bancário (Débito), verifique se a caixa Débito Direto está marcada.
- Problema: o formato do banco da empresa foi alterado
Ação: Exiba o registro Detalhes Bancários da Empresa para verificar os detalhes do Modelo EFT ou DD.
- Problema: o banco da entidade tem um formato diferente do banco da empresa (possivelmente devido à importação de CSV)
Ação: verifique se o formato nos detalhes de pagamento bancário do registro da entidade é o mesmo que os detalhes do modelo EFT ou DD no registro bancário da empresa.
- Problema: o registro bancário da entidade foi removido
Ação: Exiba os Detalhes de Pagamento Bancário de um registro de fornecedor ou funcionário para verificar se o registro bancário da entidade principal ainda está listado na subguia Detalhes do Banco da Entidade. Caso não esteja listado, você deve criar um novo e definir o tipo como Primário. Faça o mesmo para os registros do cliente, na guia Detalhes de Pagamento Bancário (Débito).
ISENÇÃO DE RESPONSABILIDADE: O código de amostra aqui descrito é fornecido "no estado em que se encontra", sem garantia de qualquer tipo, em toda a extensão permitida por lei. A Oracle + NetSuite Inc. não garante o sucesso individual que os desenvolvedores podem ter na implementação do código de amostra em suas plataformas de desenvolvimento ou no uso de suas próprias configurações de servidor Web.
A Oracle + NetSuite Inc. não garante ou faz qualquer representação em relação ao uso, resultados de uso, precisão, pontualidade ou integridade de quaisquer dados ou informações relacionadas ao código de amostra. A Oracle + NetSuite Inc. se isenta de todas as garantias, expressas ou implícitas, e, em particular, se isenta de todas as garantias de comercialização, adequação a uma finalidade específica e garantias relacionadas ao código ou a qualquer serviço ou software relacionado a ele.
A Oracle + NetSuite Inc. não será responsável por quaisquer danos ou custos diretos, indiretos ou consequenciais de qualquer tipo decorrentes de qualquer ação tomada por você ou outros relacionados ao código de amostra.
Adoraríamos saber como você integra os modelos avançados em seus processos do NetSuite! Compartilhe seus insights e experiências no NetSuite Admin Corner.