Novidades em 4D v18 R5

ORDA data model classes

escopo e contexto de execução para funções

No modo cliente/servidor, por padrão, as funções são executadas no servidor, mas agora você pode optar por executar algumas delas no cliente graças a uma nova palavra-chave: local. Além disso, você pode escolher sobre quais funções publicar ou não como API para clientes REST com a nova palavra-chave exposed

 
 

Seleções de entidade compartilháveis

Sometimes you want to share an entity selection with another process or even make it available to all processes. For example, imagine you are doing a complex query to find all overdue invoices, then allow the end-user to select some of them (or all) and finally need to send a payment reminder as email. Sending the emails is best done in another process, to avoid blocking the user. Instead of building a list of primary keys to pass to the new process, a shared entity selection allows you to directly pass it to another process. Shared entity selections can even be attached to the Storage

Às vezes você quer compartilhar a seleção de uma entidade com outro processo ou mesmo torná-la disponível para todos os processos. Por exemplo, imagine que você esteja fazendo uma consulta complexa para encontrar todas as faturas vencidas, depois permita que o usuário final selecione algumas delas (ou todas) e finalmente precise enviar um lembrete de pagamento como e-mail. O envio dos e-mails é melhor feito em outro processo, para evitar o bloqueio do usuário. Em vez de construir uma lista de chaves primárias para passar para o novo processo, uma seleção de entidade compartilhada permite que você a passe diretamente para outro processo. As seleções de entidades compartilhadas podem até ser anexadas ao objeto Storage, para serem compartilhadas com todos os processos.

Assim, em resumo, uma seleção de entidade pode ser compartilhável ou não compartilhável:

  • Uma seleção de entidade compartilhável pode ser armazenada em um objeto compartilhado ou em uma coleção compartilhada e pode ser compartilhada entre vários processos ou trabalhadores. Além disso, ela não permite a adição de novas entidades. A tentativa de adicionar uma entidade a uma seleção de entidade compartilhável desencadeará um erro.
  • Uma seleção de entidade não compartilhável não pode ser compartilhada entre processos, nem pode ser armazenada em um objeto ou coleção compartilhada. A tentativa de armazenar uma seleção de entidade não compartilhável em um objeto ou coleção compartilhada acionará um erro. Entretanto, uma seleção de entidade não compartilhável aceita a adição de novas entidades.

 

 

editor formulário

Prever CSS no editor de formulário

Agora é possível pré-visualizar a renderização final CSS no editor de formulário. Um novo ícone está disponível na barra de ferramentas, permitindo que veja seu formulário com ou sem CSS, até mostrando como aparece em Mac ou Windows. Para sobrepor uma propriedade, em modo CSS, um novo tipo shield (similar aos shields para Object Method ou Entry Order) é exibido no editor de formulário, e é fácil ver quais objetos são impactados por um CSS.

Macros

Macros estão agora disponíveis no editor de formulário. Com um formulário macro você pode:

  • Adicionar ou apagar uma ou mais propriedade a um ou mais objetos
  • Adicionar ou apagar um ou mais objetos de formulário com seu método associado
  • Selecionar ou desmarcar objetos do formulário no editor
  • Mostrar um diálogo modal para entrar com um parâmetro no momento
  • Calcular a posição ideal dos objetos formulários e movê-los
  • Criar uma classe CSS a partir de um objeto de formulário para usar como modelo
  • Verificar se os caminhos da imagem no formulário são válidos
  • Abra os arquivos CSS em seu editor CSS em vez de procurar os arquivos em disco
  • Open CSS files in your CSS editor instead to searching the files on disk
  • Verificar se as referências XLIFF têm sua correspondência nos arquivos XLIFF
  • e muito mais …

As macros de formulário são visíveis a partir do menu contextual. As macros do banco de dados host são exibidas primeiro, seguidas pelas macros dos componentes. Para executar uma macro, basta clicar no item do menu. E, para criá-las, as macros são declaradas em um arquivo formMacros.json no primeiro nível da pasta Sources em seu projeto
.

 

Novo comando para abrir o editor de formulário

Um novo comando 4D para abrir um formulário no editor de formulário está disponível. Isso pode ser útil especialmente para ferramentas de análise ou introspecção. O novo comando é chamado FORM EDIT.

4D for iOS

Deep linking 

Deep linking permite partilhar uma URL, um clique na URL vai abrir diretamente um registro específico em uma aplicação 4D for iOS. Em combinação com notificações push, informa a uma pessoa de vendas sobre um novo orçamento, a um agente de seguros sobre um novo caso, um clique único abre diretamente a aplicação e exibe este registro no aplicativo.

 

Otimização de sincronização de dados 

O processo de sincronização de dados 4D for iOS foi otimizado, dando uma sincronização de dados até 25 vezes mais rápida.

Funcionalidades relacionadas a programação

Nomear parâmetros para funções e métodos

Não precisa usar uma variável intermediária. Agora pode nomear seus parâmetros e resultados quando declarar:

  • um método de projeto,
  • um trigger,
  • um método de banco de dados,
  • um método de formulário,
  • um construtor de uma classe,
  • uma função de uma classe.

depurador remoto

Esta funcionalidade permite decidir onde quer depurar seu código servidor (do lado do cliente ou do lado do servidor).

Dois itens de menu foram adicionados (em ambos os lados) para gerenciar o depurador anexado:

  • Anexar / Desanexar o depurador: Anexar ou desanexar instantaneamente o depurador para seu cliente ou servidor.
  • Anexar o depurador no início. Anexar o depurador quando inicia seu cliente ou servidor. 

Lembre que o depurador pode ser anexado apenas a um 4D por vez. Por exemplo, se quiser anexar o depurador ao seu servidor sem desanexá-lo do cliente, uma mensagem de erro aparece com alguma informação sobre o proprietário do depurador.

Além disso, para ajudar a diferenciar se o depurador ou a janela de erros estão do lado do servidor ou do cliente, foi mudado o visual dessas janelas.

 

Funcionalidades de lançamento

personalizar a pasta 4D cache para servidor 4D fusionado

Se sua máquina é host para uma aplicação de servidor fusionado com versões 4D diferentes, pode ter problemas com a estrutura de pastas 4D. Para evitar partilhar sua pasta de sistema entre aplicações de servidor fusionadas construídas com versões 4D diferentes, agora é possível arrumar o nome da pasta durante o processo de compilação com a nova chave  buildApp para estabelecer sua própria estrutura de pastas..

 

personalizar a pasta 4d cache para clientes 4D fusionados

Conectar sua aplicação remota a vários servidores às vezes resulta em uma pasta de recursos local gigantesca no sistema que pode consumir tempo, volume e rede. Agora pode partilhar a mesma pasta de recursos local entre todos os servidores idênticos com a nova chave buildApp para partilhar a pasta de recursos local.

Integrar o registro de ocorrências sem abortar no primeiro erro

Quando rodar um 4D Server em produção, tudo deveria estar totalmente automático, sem precisar de um administrador. Isso é especialmente importante com Auto Update e rodando em modo Headless (computador sem periféricos como monitor). Depois de uma queda de energia ou uma falha menor, erros no registro podem parar um Servidor 4D já reiniciado. Uma nova opção permite suprimir mensagens de erro não críticas (apenas as registra no histórico), reduzindo o tempo sem funcionar do sistema.

Emails (IMAP)

pesquisar e baixar Emails

A pesquisa permite recuperar uma lista de emails baseada em critérios, tais como todos os emails não lidos ou todos os emails dados a uma pessoa dada a menos de 4 semanas. O comando retorna uma coleção de identidades de mail, podem ser usados diretamente com o novo método  getMails para baixar.

 

Copiar, mover e apagar emails

Três novas funções foram adicionadas ao transporter IMAP, copy()move()delete().

Listbox

Improved type ahead

Anteriormente, uma  list box só recebia eventos keystroke quando estava em modo editar. Isso prevenia de ser usada para filtrar automática a lista ou selecionar uma entrada quando um usuário estava usando o teclado e numa list box não editável.

Agora o evento On before Keystroke  é gerado assim que uma list box tiver o foco e uma tecla for apertada, mesmo se nenhum dado estiver sendo digitado na célula. Isso permite que 4D saiba quais teclas foram pressionadas e tornar possível (por programação) que tome decisões como iniciar uma nova pesquisa ou mudar a seleção atual.

O novo comando Is editing text foi adicionado para determinar se há um input contínuo quando o evento On before keystroke for gerado. Permite, por exemplo que uma list box seja editável  – e ainda é compatível com funcionalidades  type-ahead. Finalmente, tanto  On before keystroke quanto On after keystroke agora tem diálogos de ajuda de sistema para selecionar diacríticos como é, ä, ou caracteres asiáticos. O evento é adiado até que o usuário final selecione os caracteres finais. Não precisa gerenciar isso.

 

4D Write Pro

Selecionar caracteres para separações decimais

Se tiver documentos de várias fontes, talvez os números não estejam formatos da mesma forma. Agora, 4D Write Pro deixa que especifique esta configuração para cada documento. Pode escolher alinhas os números com:

  1. o ponto,
  2. a vírgula,
  3. o primeiro sinal encontrado,
  4. ou finalmente, ao separador definido no sistema operacional

Para maximizar a compatibilidade (principalmente com MS Word) a opção #3 foi escolhida como o padrão quando criar novos documentos. Quando migrar documentos 4D Write documents para 4D Write Pro, o separador definido pelo sistema é escolhido como padrão.

 

Gerenciar hífens sílaba

A inserção de soft-hyphens/ hífens sílaba foi simplificada ao oferecer novas ações padrão, assim como novos botões nas widgets de interface 4D Write Pro.

Duas novas ações padrão estão à disposição:

  • insertSoftHyphen
  • removeSoftHyphens

Além disso, a funcionalidade foi adicionada para os widgets de interface 4D Write Pro tanto no widget barra de ferramentas quanto no widget sidebar.

 

Selecionar páginas para mostrar

4D só exibe as páginas mencionadas na coleção, na ordem da coleção. Isso reduz o conjunto de funcionalidades, faz mais simples o uso pelo usuário final. Se apenas opções de estilo forem necessárias, é melhor nem exibir todas as outras funcionalidades. Agora o widget 4D Write pro dá a possibilidade de selecionar as páginas para exibir com o novo método componente WP ShowTabPages. Apenas passar o nome do widget e uma coleção de páginas para exibir quando chamar o método. Dessa maneira 4D exibe só as páginas mencionadas na coleção, na ordem da coleção.

 

4D View Pro

Fórmulas 4D em folhas de cálculo

VP SET CUSTOM FUNCTIONS cria para você funções personalizadas em 4D View Pro que executam uma fórmula 4D. Não é preciso mais criar um método para usar uma variável simples em 4D View Pro, apenas passe como um parâmetro para sua Formula. Além disso o comando permite facilitar o type-ahead para o usuário final (oferecendo texto de ajuda e nomes de parâmetro). E finalmente, em estruturas muito grandes, este comando é bem mais rápido que usar o comando genérico SET FIELD TITLES.

 

Quer saber mais? Leia todos os blog posts sobre 4D v18 R5