ORDA: utiliser un get() lors de la creation de l'enregistrement

<code 4D>
Form.ES_ListeLGFacture:=ds.Facture.get([Facture]PK_UUID).lgfactures

</code 4D>

Cette ligne ORDA fonctionne une fois que la facture a été enregistré mais elle ne fonctionne pas durant la création de la facture. Est-ce normal ?

[]30774006;“Pourquoi le get retour Null…”[/]

Je ne comprend pas pourquoi le get retourne Null alors que la facture est en cour de création ? regardez la valeur de [Facture]PK_UUID elle existe.

En attendant, j’ai remplacé ma ligne par cela (qui semble fonctionner) :

<code 4D>
Form.ES_ListeLGFacture:=ds.LgFacture.query(“UUID_Facture = :1”;[Facture]PK_UUID)

</code 4D>

Mais, je ne comprends pas pourquoi :-?

Il doit y avoir un truc qui m’échappe, ce qui m’étonne est que la seconde solution marche (à moins que tu ne stockes les lignes de facture avant d’avoir stocké la facture, ou si tu préfères les fils avant leur père, chose que je ne fais jamais).

Le fait que ta facture affiche une clé primaire dans le débogueur ne signifie pas qu’elle existe dans le data, c’est simplement une clé qui a été “réservée” pour ton enregistrement en mémoire (en ajout), elle n’existera en données que si cet enregistrement est stocké. On voit d’ailleurs dans ta copie écran “[Facture]…0 enregistrement sélectionné”, ce qui indique qu’on a bien affaire à un enregistrement facture en ajout, qui n’existe qu’en mémoire.

Pour compliquer les choses, je suis en plus en transaction (mais j’ai testé sans cela ne change rien au problème ;-))

En code 4D Normal cela fonctionne, on peut heureusement chercher et trouver des enregistrements même durant une transaction alors qu’ils ne sont normalement pas encore stocker (du moins enregistrés car la transaction n’a pas encore été validée).

A noté que le code fonctionne une fois la facture enregistrée mais du coup cela implique qu’un même code ORDA ne fonction pas de la meme façon en fonction du contexte. C’est flippant.

Comment tu ferais en code ORDA pour rafraîchir la liste box ES de ta selection de ligne de facture lorsque celle-ci n’est pas encore enregsitrée ?

: Manuel PIQUET

Comment tu ferais en code ORDA pour rafraîchir la liste box ES de ta
selection de ligne de facture lorsque celle-ci n’est pas encore
enregsitrée ?
Ha, ok, s’il y a de la transaction en saisie je pige mieux. Bon, l’ennui est que je ne peux répondre à ta question, sauf “je ne fais jamais comme ça”.

C’est un point de vue personnel, mais je ne vois pas l’intérêt de laisser un utilisateur ajouter des lignes à une facture qui pendouille en état transactionnel : la raison qu’on me donne toujours est “ha oui, mais il peut annuler quel que soit l’avancement de sa saisie”. Un utilisateur qui a saisi la facture PLUS X lignes pour finalement abandonner est un cas rare ou un amoureux de la saisie pour des prunes. S’il veut ajouter des lignes, je stocke la facture.