HSE
(HSE)
January 21, 2020, 2:53pm
1
Bonjour,
Dans le module Démo j’ai vu qu’on peut valoriser un champ en se basant sur une valeur sélectionnée d’un objet lié. (Exemple en image ci-dessous)
Puis en vérifiant le code de l’objet j’ai remarqué que c’est fait via un postValidate (sauf erreur de ma part)
En testant le postValidate sur un autre cas, pour le même besoin je n’ai pas eu le résultat souhaité (= Valoriser un champ à partir d’un autre avant d’enregistrer).
Aviez-vous une idée ?
david
(David AZOULAY)
January 21, 2020, 2:59pm
2
Il n’y a pas de raison que ça ne marche pas sauf si votre paramétrage ou votre code fait autre chose.
Si vous devez valoriser un attribut avant la validation générique (ex: valorisation d’un attribut obligatoire) faites le plutôt dans le preValidate
Faites un copier/coller de votre code pour qu’on voit comment vous avez écrit la valorisation de votre attribut
HSE
(HSE)
January 21, 2020, 3:15pm
3
@Override
public List<String> preValidate() {
getField("obj1_nom_produit").setValue(getField("obj2_id.obj2_nom_produit").getValue());
return null;
}
david
(David AZOULAY)
January 21, 2020, 3:27pm
4
Je ne vois pas raison que ça ne marche pas si le paramétrage de ces attributs est correct.
Merci de copier coller le paramétrage de vos 2 attributs (copies d’ecran ou exports XML)
HSE
(HSE)
January 21, 2020, 3:49pm
5
<fld_name>df_ligne_devis_nom_produit</fld_name>
<fld_dbname>DF_ligne_devis_nom_produit</fld_dbname>
<fld_visible>3</fld_visible>
<fld_updatable>1</fld_updatable>
<fld_required>0</fld_required>
<fld_fonctid>0</fld_fonctid>
<fld_research>1</fld_research>
<fld_researchreq>0</fld_researchreq>
<fld_sort>C</fld_sort>
<fld_more>0</fld_more>
<fld_listmore>0</fld_listmore>
<fld_listsum/>
<fld_tray/>
<fld_type>3</fld_type>
<fld_type_id.flt_code/>
<fld_enumlist/>
<fld_list_id.lov_name/>
<fld_copy>1</fld_copy>
<fld_size>20</fld_size>
<fld_minsize/>
<fld_precision/>
<fld_fromdate_id.fld_name/>
<fld_dfault/>
<fld_indexable>0</fld_indexable>
<fld_autocomp>0</fld_autocomp>
<fld_groupby>0</fld_groupby>
<fld_updall>1</fld_updall>
<fld_case/>
<fld_righttoleft>0</fld_righttoleft>
<fld_rendering/>
<fld_calc/>
<fld_objlist/>
<fld_comment/>
<fld_classification/>
<row_module_id.mdl_name>DF</row_module_id.mdl_name>
et pour la valeur que je veux récupérer
<obf_object_id.obo_name>DF_Ligne_Devis</obf_object_id.obo_name>
<obf_field_id.fld_name>df_produit_nom</obf_field_id.fld_name>
<obf_field_id.fld_type>3</obf_field_id.fld_type>
<obf_order>920</obf_order>
<obf_group_by/>
<obf_dfault_order/>
<obf_input/>
<obf_ref_field_id.fld_name>DF_Ligne_Devis_DF_Produit_Finis_id</obf_ref_field_id.fld_name>
<obf_ref_object_id.obo_name>DF_Produit_Finis</obf_ref_object_id.obo_name>
<obf_cascad/>
<obf_card/>
<obf_visible/>
<obf_ref_export>1</obf_ref_export>
<obf_copy/>
<obf_ref_order/>
<obf_fld_visible>3</obf_fld_visible>
<obf_fld_required/>
<obf_fld_updatable/>
<obf_fld_research/>
<obf_fld_more>0</obf_fld_more>
<obf_fld_listmore/>
<obf_fld_researchreq/>
<obf_fld_dfault/>
<obf_field_id.fld_dfault/>
<obf_area_id.ofa_name>DF_Ligne_Devis-11</obf_area_id.ofa_name>
<obf_area_id.ofa_position>11</obf_area_id.ofa_position>
<row_module_id.mdl_name>DF</row_module_id.mdl_name>
david
(David AZOULAY)
January 21, 2020, 5:18pm
6
Je ne vois pas de field “df_ligne_devis_nom_produit” dans votre code
david
(David AZOULAY)
January 21, 2020, 5:24pm
7
En outre j’ai l’impression que vous avez un usage assez aléatoire de la casse dans vos nommages, pour le nom des tables et de colonnes il est toujours préférables d’utiliser soit du lower case soit du upper case mais pas un mélange des deux. Certaines bases de données sont case sensitive sur les nommages d’autres non.
Ma recommandation c’est d’utiliser systématiquement des nommages à la Java en camel case pour les noms logiques ex: MyBusinessObject
ou myNameField
et des nommages snake case pour les noms physiques ex: my_business_object
ou my_name_field
mais bon vous faites comme vous voulez.