Empêcher la mise à jour des références 4D Write
Bonsoir à tous,
Je suis en train de migrer une base vers une nouvelle structure. C'est une migration/refonte, qui implique évidemment des changements de nom de table et de nom de champs.
Je me heurte à un problème de taille lors de l'import des champs BLOB contenant une zone 4D Write de l'ancienne structure vers la nouvelle structure.
En effet, une fois l'import des BLOB 4D Write effectué (aucun souci de ce côté là), et lors de l'ouverture du formulaire de la nouvelle structure contenant la zone 4D Write, ce dernier essaie de convertir chaque ancienne référence vers un champ dans le document par un équivalent dans la nouvelle structure.
Mais étant donné que la majorité des tables et noms de champs ont changé, les références se retrouvent "cassées".
J'espère que mon explication est assez claire, car là, je bloque...
Merci à ceux qui auraient une ébauche de solution...
Cordialement
- Mac OS 10.6
- 4D v11.4
Comment changer les champs de fusion (références insérées ) dans une zone 4D write
Voici un bout de code qui devrait vous y aider
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| $vLI_OBJ_nb:=WR Compter ($vLI_ZONE_WRT_he;wr nb objets )
Si ($vLI_OBJ_nb>0)
Boucle ($vLI_cmpt_2;1;$vLI_OBJ_nb)
$vBO_To_Update:=Vrai
WR SELECTIONNER ($vLI_ZONE_WRT_he;1;$vLI_cmpt_2)
WR LIRE REFERENCE ($vLI_ZONE_WRT_he;$Table;$Champ;$vTX_FSN_nom;$Type)
Au cas ou
: ($vTX_FSN_nom="@u_Tab@")
$vTX_FSN_nom:=Remplacer chaine($vTX_FSN_nom;"u_TAb";"TBox_utl_TAB")
WR SELECTIONNER ($vLI_ZONE_WRT_he;1;$vLI_cmpt_2)
WR INSERER VARIABLE ($vLI_ZONE_WRT_he;$vTX_FSN_nom)
: ($vTX_FSN_nom="@u_RC@")
$vTX_FSN_nom:=Remplacer chaine($vTX_FSN_nom;"u_RC";"TBox_utl_RC")
WR SELECTIONNER ($vLI_ZONE_WRT_he;1;$vLI_cmpt_2)
WR INSERER VARIABLE ($vLI_ZONE_WRT_he;$vTX_FSN_nom)
: ($vTX_FSN_nom="@u_quot@")
$vTX_FSN_nom:=Remplacer chaine($vTX_FSN_nom;"u_TAb";"TBox_utl_QUOT")
WR SELECTIONNER ($vLI_ZONE_WRT_he;1;$vLI_cmpt_2)
WR INSERER VARIABLE ($vLI_ZONE_WRT_he;$vTX_FSN_nom)
: ($vTX_FSN_nom="@u_Trait@")
$vTX_FSN_nom:=Remplacer chaine($vTX_FSN_nom;"u_TAb";"TBOX_Trait")
WR SELECTIONNER ($vLI_ZONE_WRT_he;1;$vLI_cmpt_2)
WR INSERER VARIABLE ($vLI_ZONE_WRT_he;$vTX_FSN_nom)
Sinon
$vBO_To_Update:=Faux
Fin de cas
Fin de boucle |
Par principe : NE JAMAIS METTRE D'INSERTION DE CHAMP EN DIRECT DANS 4D WRITE...