Plantage validation de dossier V6 V12 - Alimentation Tables U*

SOLVED

Bonjour,

Je suis en train de migrer un dossier V6 et V12.

Toutes les étapes ont été respectées (Param db SQL ; import console).

J'ai lancé la validation de dossier et le processus plante au moment de copier le contenu des tables U* sur les tables V12 standard (traitements TRTMIG*).

Voici le message :

====================================================

Process Start on SETMA BUD UBUD U01

Validation de la table UBUD

COPY DATA FROM BUD TO UBUD ...

<0001 @X3.TRT/TRTMIG$adx (999)

<0001 Erreur 76 : Erreur SQL Server

<0001 [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Invalid column name 'CCE4_0'.

<0001 INSERT INTO SETMA.

<0001 UBUD(

Toutes les tables U* créent un plantage global, et la migration ne peut aboutir.

Pouvez-vous m'apporter de l'aide svp, car je tourne en rond ?

Merci

Gilles

Parents
  • +1
    verified answer

    Le problème vient que X3 a utilisé des traitements de la V6 pour générer ces tables ==> supprimer tous les traitements standards dans le dossier fils qui n'ont pas lieu d'être et relancer la migration du début. 

    Pour avancer sa migration quand même voici un script qui permet d'ajouter les champs manquants dans ces tables:

    ###################################################################################
    #Script permettant de completer les tables U de migration par les champs manquants
    #AEF 08/10/2024 Probleme sur migration V6 - V12 (solution contournement blocage) 
    ###################################################################################
    
    Local Char DOSSIER(30) : DOSSIER = nomap
    If !GSERVEUR
      Call SAIDOSHIS(DOSSIER,"") From SAIDOSHIS
    Endif
    If DOSSIER <> ""
      If clalev([F:ADS])=0  Local File ADOSSIER [ADS] : Endif
      If func DOSSUB.FILL_ADS([L]DOSSIER)=0 : End : Endif
      If !GSERVEUR
        Call TEMPON("O") From GESECRAN
        Call OUVRE_TRACE("UUMAJTABLEU Modification Tables U V12") From LECFIC
      Endif
    
      Call MAJ_UUMAJTABLEU(DOSSIER)
    
      If !GSERVEUR
        Call TEMPOFF     From GESECRAN
        Call FERME_TRACE From LECFIC
        Call LEC_TRACE From LECFIC
      Endif
    Endif
    End
    
    
    Subprog MAJ_UUMAJTABLEU(DOSSIER)
    Value Char DOSSIER
    Local Integer ERR
    #verification des tables et champs
    If clalev([F:ZATZ])  = 0 : Local File =DOSSIER+".ATABZON"      [ZATZ]  : Endif
    
    If clalev([F:UATZ])  = 0 : Local File =DOSSIER+".ATABZON"      [UATZ]  : Endif
    If clalev([F:UATB])  = 0 : Local File =DOSSIER+".ATABLE"      [UATB]  : Endif
    
    local char WTABORIGINE
    For [F:UATB] where CODACT='MIG'
    		#enlever le premier caractere U
    		WTABORIGINE=right$([F:UATB]CODFIC,2)
    		if [F:UATB]CODFIC='UTMFACILIT'  : WTABORIGINE='ITMFACILIT'  : Endif
    		if [F:UATB]CODFIC='UDELIVERYD'  : WTABORIGINE='SDELIVERYD'  : Endif
    		if [F:UATB]CODFIC='UERREQUEST'  : WTABORIGINE='SERREQUEST'  : Endif
    		if [F:UATB]CODFIC='UPORDERU'    : WTABORIGINE='PORDER'      : Endif
    		if [F:UATB]CODFIC='UPORDERPU'   : WTABORIGINE='PORDERP'     : Endif
    		if [F:UATB]CODFIC='UPORDERQU'   : WTABORIGINE='PORDERQ'     : Endif
    		if [F:UATB]CODFIC='UPORDERCU'   : WTABORIGINE='PORDERC'     : Endif
    		if [F:UATB]CODFIC='UUPORDERU'   : WTABORIGINE='UPORDER'     : Endif
    		if [F:UATB]CODFIC='UUPORDERPU'  : WTABORIGINE='UPORDERP'    : Endif
    		if [F:UATB]CODFIC='UUPORDERQU'  : WTABORIGINE='UPORDERQ'    : Endif
    		if [F:UATB]CODFIC='UUPORDERCU'  : WTABORIGINE='UPORDERC'    : Endif
    		if [F:UATB]CODFIC='UVCRINVCND'  : WTABORIGINE='SVCRINVCND'  : Endif
    		if [F:UATB]CODFIC='UVCRINVCNDD' : WTABORIGINE='SVCRINVCNDD' : Endif
    		if [F:UATB]CODFIC='UONTAINERD'  : WTABORIGINE='CONTAINERD'  : Endif
    
    		Call ECR_TRACE("Trt table "+DOSSIER-[F:UATB]CODFIC-WTABORIGINE,0) From GESECRAN
    		For [F:ZATZ]CODZONE where [F:ZATZ]CODFIC=WTABORIGINE
    
    			#verifie les champs manquants et on les ajoute si besoin
    			Read [F:UATZ]CODZONE=[F:UATB]CODFIC;[F:ZATZ]CODZONE
    			If fstat
    				Call ECR_TRACE("	Ajout zone table "+DOSSIER-[F:UATB]CODFIC-[F:ZATZ]CODZONE,0) From GESECRAN
    				Call MIGADDCOL (DOSSIER,[F:UATB]CODFIC,[F:ZATZ]CODZONE,[F:ZATZ]CODTYP,[F:ZATZ]LONG,[F:ZATZ]DIME,ERR) From TRTMIG
    			Endif
    
    			#Ajout de colonne se fait avec le code activite MIG par defaut ce qui possede probleme si le champ doit etre multi dimension ou inactif
    			#activite different il faut mettre celui de la table d origine
    			Read [F:UATZ]CODZONE=[F:UATB]CODFIC;[F:ZATZ]CODZONE
    			If !fstat and [F:UATZ]CODACT<>[F:ZATZ]CODACT
    				Call ECR_TRACE("	Maj zone code activité "+DOSSIER-[F:UATB]CODFIC-[F:ZATZ]CODZONE,0) From GESECRAN
    				Trbegin [F:UATZ]
    				[F:UATZ]CODACT=[F:ZATZ]CODACT
    				Rewrite [F:UATZ]
    				Commit
    				
    			Endif
    		next
    		#Call ECR_TRACE("Validation table "+DOSSIER-[F:UATB]CODFIC,0) From GESECRAN
    		Call MIGVALTAB(DOSSIER,[F:UATB]CODFIC,ERR)   From TRTMIG
    		
    Next
    
    End

  • +1 in reply to x3Pro.co
    verified answer

    Bonjour,

    Autre solution  : avant de commencer la migration du dossier, exécuter le traitement TRTMIGDEL (Développement / Utilitaires / Divers / Exécuter traitement) en précisant le dossier à migrer : il supprime toutes ces tables en "U" qui ont servies à la migration précédentes.

    Il faut ensuite remettre le code activité MIG à OUI sur le dossier à migrer.

    Bonne journée,

    Danielle

Reply
  • +1 in reply to x3Pro.co
    verified answer

    Bonjour,

    Autre solution  : avant de commencer la migration du dossier, exécuter le traitement TRTMIGDEL (Développement / Utilitaires / Divers / Exécuter traitement) en précisant le dossier à migrer : il supprime toutes ces tables en "U" qui ont servies à la migration précédentes.

    Il faut ensuite remettre le code activité MIG à OUI sur le dossier à migrer.

    Bonne journée,

    Danielle

Children
No Data