Quando se trata de ORDA, 4D v18 R3 está cheio de boas notícias! Os novos métodos de membros estão à sua disposição para melhorar ainda mais a sua experiência de codificação.
Para começar, a extracção de dados de uma selecção de entidade foi grandemente enriquecida permitindo-lhe construir uma colecção totalmente personalizada com os seus dados de selecção de entidade .
Além disso, estamos a fornecer-lhe uma forma de indicar a uma entidade de selecção que os seus dados precisam de ser imediatamente actualizados a partir do servidor, invalidando os dados em cache.
Interessado em alguns detalhes? Continue a ler, tudo o que precisa de saber está abaixo.
extrair dados de uma selecção de entidade
O novo extract() O método de membro está disponível numa selecção de entidade.
Pode agora construir uma colecção personalizada a partir de uma selecção de entidades!
Exemplo 1
No método de extract() método de membro, pode especificar os atributos de dataclass que deseja extrair e os seus nomes na colecção resultante.
Dada esta base de dados simples:
Construímos uma colecção $mailing de objectos com nomes de propriedade específicos: “destinatário”, “cidade”, “zipCode”.
C_COLLECTION($mailing)
$mailing :=ds.Interns.all().extract("último nome"; "destinatário";
"empregador.cidade"; "cidade";
"empregador.zipCode"; "zipCode")
e aqui está o resultado
$mailing colecção:
[ {recipient:Hodge,city:Blakeslee,zipCode:18610}, {recipient:Metzler,city:Medfield,zipCode:02052}, {recipient:Broyles,city:Madison,zipCode:13402} ]
Exemplo 2
Note-se que os atributos de dataclass, que são uma entidade relacionada, podem ser extraídos como um conjunto de entidades.
Um caso de utilização possível é a manipulação de uma colecção de entidades a partir de diferentes classes de dados.
No exemplo abaixo, construímos a colecção Form.partners, que contém entidades da Empresa e da Escola de Classificações de Dados.
C_COLLECTION($companies;$schools)
// $companies is a collection of entities of Company dataclass
$companies :=ds.Interns.all(). .extract("empregador")
// $schools is a collection of entities of School dataclass
$schools :=ds.Interns.all().extract("escola")
Form .
partners:=$companies.concat($schools)
// Form.partners is a collection
Depois, a colecção Form.partners está pronta para ser exibida numa caixa de listagem!
Verifique a documentação para a refresh() e extract() métodos de membros para saber mais!
Actualizar a selecção de uma entidade
O novo refresh() O método de membro está disponível numa selecção de entidade. Anula os dados de selecção da entidade na cache ORDA para que, da próxima vez que utilizar os dados, despolete uma actualização a partir do servidor.
Por defeito, a cache ORDA expira após 30 segundos, por isso use o refresh() método de membro apenas no caso de necessitar de dados actualizados imediatamente.
Exemplo
Tem alguns atributos da selecção de entidades Form.invoices exibidos numa caixa de listagem e, num determinado momento, pretende exibir actualizações feitas por outros clientes sobre esses atributos de selecção de entidades. Fácil! Basta usar a função refresh() método dos membros.
Form.invoices.refresh()
// The Form.invoices entity selection displayed data will be refreshed from the server