Projet

Général

Profil

Actions

Anomalie #6387

fermé

Problème de masque lors de l'application de setState() sur les documents retournés par un SearchDoc

Ajouté par Jérôme Augé il y a environ 10 ans. Mis à jour il y a environ 10 ans.

Statut:
Intégré
Priorité:
Normal
Assigné à:
Version cible:
Début:
26/04/2016
Echéance:
% réalisé:

100%

Temps estimé:
Version source:
Solution proposée:
Principaux fichiers impactés:
Complexité:
Contrôle:
Thème:
Socle technique
Régression:
Non

Description

Soit une famille avec un cycle comprenant deux états :
- "state_a" (état initial)
- "state_b"

L'état "state_a" n'a pas de masque.

L'état "state_b" est configuré pour appliquer un masque qui rend l'attribut ATTR_X obligatoire.

Soit un ensemble de documents de cette famille dans l'état initial "state_a" avec l'attribut ATTR_X vide.

On itère sur ces documents avec le code suivant :

$s = new SearchDoc('', 'MA_FAM');
$s->setObjectReturn();
$s->search();
while ($doc = $s->getNextDoc()) {
  $err = $doc->setState('state_b');
  if ($err != '') {
    error_log($err);
  }
}

On observe alors que le premier document passe bien dans l'état "state_b".

Par contre, à partir du deuxième document, la transition est mise en erreur avec le message : "ATTR_X doit être rempli".

Ci-joint un module pour importer une famille qui reproduit ce problème :

$ ./wsh.php --api=support_2298
105960) Support 2298 sans titre 105960 [state: state_a]
    => [state: state_b] 
105961) Support 2298 sans titre 105961 [state: state_a]
    => [state: state_a] Text doit être rempli

[FAIL]

Ce script de test crée deux document dans l'état "state_a" et les passes dans l'état "state_b" : on observe que la transition pour le deuxième document est mise en erreur.

Il semble que l'application du masque sur le premier document soit persistant lorsqu'on récupère le deuxième document : le deuxième document ne devrait pas avoir de masque appliqué et ne devrait pas remonter l'erreur "ATTR_X doit être rempli" car dans l'état "state_a" aucun masque n'est appliqué.


Fichiers

support-2298.webinst (2,02 ko) support-2298.webinst Jérôme Augé, 26/04/2016 10:17

Mis à jour par Jérôme Augé il y a environ 10 ans

  • Description mis à jour (diff)

Mis à jour par Jérôme Augé il y a environ 10 ans

Si je resette "$this->mid = 0" dans la méthode affect(), alors il n'y a plus ce problème.

Par contre, je pense qu'il y a d'autres propriétés qui devraient être resettés...

Mis à jour par Éric Brison il y a environ 10 ans

  • Assigné à mis à Jérôme Augé
  • Version cible mis à 3.2.21

Mis à jour par Jérôme Augé il y a environ 10 ans

  • % réalisé changé de 0 à 100

Mis à jour par Éric Brison il y a environ 10 ans

  • Statut changé de Nouveau à Intégré

Appliqué par commit commit:dynacase-core|95f65665338298cb340090263836f74eefd612ed.

Actions

Formats disponibles : Atom PDF