Service error: obj.getFieldValue(...) is null

Service error: obj.getFieldValue(...) is null
0
Tags: #<Tag:0x00007f768eba94b8>

Bonjour,

J’ai défini des contraintes de visibilité sur des attributs. Ca fonctionne mais au bout d’un certain temps j’ai l’erreur

Service error: obj.getFieldValue(…) is null

Les expressions des impacts :

[VALUE:CourrierDEJQBoCourrier_CourrierDEJQBoInterne_id].equals("")
[VALUE:CourrierDEJQBoCourrier_CourrierDEJQBoExterne_id].equals("")

![VALUE:CourrierDEJQBoCourrier_CourrierDEJQBoGenrePiece_id].equals("") || ![VALUE:CourrierDEJQBoCourrierConcerne].equals("")

[VALUE:CourrierDEJQBoCourrierButLibelle].equals(“INF”) || [VALUE:CourrierDEJQBoCourrierButLibelle].equals(“SIGN”) || ![VALUE:CourrierDEJQBoCourrierDateSuivi].equals("")

[VALUE:CourrierDEJQBoCourrierButLibelle].equals(“INF”) || [VALUE:CourrierDEJQBoCourrierButLibelle].equals(“SIGN”) || ![VALUE:CourrierDEJQBoCourrier_CourrierDEJQBoTransmissionSuivi_id].equals("")

[VALUE:CourrierDEJQBoCourrierButLibelle].equals(“INF”) || [VALUE:CourrierDEJQBoCourrierButLibelle].equals(“SIGN”) || ![VALUE:CourrierDEJQBoCourrierCommentaire].equals("")

[VALUE:CourrierDEJQBoCourrierButLibelle].equals(“SUSP”) || ![VALUE:CourrierDEJQBoCourrier_CourrierDEJQBoLeaderSuspens_id].equals("")

[VALUE:CourrierDEJQBoCourrierButLibelle].equals(“SUSP”) || ![VALUE:CourrierDEJQBoCourrier_CourrierDEJQBoLeaderSuspens_id].equals("")

[VALUE:CourrierDEJQBoCourrierButLibelle].equals(“SUSP”) || ![VALUE:CourrierDEJQBoCourrierSuspensPrecision].equals("")

[VALUE:CourrierDEJQBoCourrierButLibelle].equals(“SUSP”) || ![VALUE:CourrierDEJQBoCourrierDateSuspens].equals("")

les contraintes sont True et front-end

que dois-je corriger?

Merci pour votre retour.

Bonjour,

En front comme en back, les contraintes sont évaluées avec une syntaxe javascript.

même si Simplicité surcharge le prototype du String :
String.prototype.equals = function(v) { return this == v; }

il n’en demeurre pas moins que null ne peut pas invoquer cette méthode.
Il convient donc de faire directement un test d’égalité qui fonctionne en JS :

[VALUE:field] == "TEXTE"

pour permettre de comparer un attribut absent de la UI dans certains contextes.
Si vous indiquez “true” la contrainte s’applique tout le temps (formulaire, liste, popup, recherche…) donc si certains attributs sont absents dans certains contextes, il faut rendre votre morceaux de script plus robuste si la valeur est null = ne pas utiliser une méthode de String ou tester que c’est non null :

[VALUE:field]!=null && [VALUE:field].equals("TEXTE")

ou plus généralement en Java on met le terme forcement non nul à gauche pour éviter un NPE :

"TEXTE".equals([VALUE:field])

.

Merci,

J’ai corrigé avec une syntaxe JS… plus de problème depuis un bon moment :-)