Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

SOMMAIRE

Sommaire
stylenone

Principe de l’intégration de pièce

Le traitement d'intégration de pièces dans Divalto Achat-Vente intègre le contenu d'un fichier HFI DHFI de type GTFI.dhfd.

Volet
panelIconIdatlassian-light_bulb_on
panelIcon:light_bulb_on:
panelIconText:light_bulb_on:
bgColor#DEEBFF

IMPORTANT

  • Le format HFI DHFI est un format propriétaire Divalto, qui n’est reconnu que par le Runtime Harmony et les outils de développement autour d’XWIN.

  • Le traitement d’intégration de pièce GTPP150 est une tâche de fond, sans interaction utilisateur

  • Tous les traitements qui proposent une intégration de pièce (import tableur, import par service web, import par CSV, fonction de validation de pièce, etc…) font appel à ce traitement d’intégration

  • Par “intégration” on entends plusieurs actions possibles : création, modification, suppression, validation (=passage d’un type de pièce a un autre)

  • Un fichier GTFI peut traiter plusieurs actions différentes sur plusieurs pièces différentes, mais attention aux anomalies partielles qui deviennent difficile à traiter en retour

...

  • Créer de nouvelles pièces dans l’ERP : devis, commandes, BL, factures qui peuvent concerner : client, fournisseur, tiers interne

  • Modifier une pièce

  • Supprimer une pièce

  • Valider une pièce partiellement (exemple : validation de commandes partiellement en BL ). La validation peut être totale (toute Une partie de la pièce change de type) ou partielle. En cas de validation partielle ; on précise les lignes à valider, ces lignes peuvent être validées totalement ou partiellement.

  • Totale validation de pièce. Toute la pièce change de type.


La première lettre en gras ci-dessus indique le type d’algorithme

...

  • Seules les données renseignées ( <> de espace ou 0) sont modifiées.

  • Si on modifie les quantités, les enregistrement MVTL deviennent obligatoires. On doit respecter somme des ventilations = à quantité du MOUV.

  • Les chapitres, les postes et les MOUV avec un ENRNO = 0 ou non trouvé sont créés en fin de pièce.

  • Lorsqu'un texte est intégré il remplace le texte existant (pas de fusion possible).

  • La fonction ENT_Client_Modification_Affecter traite la modification

  • Les données modifiées sont traitées dans la séquence G1T1_Client_Modification_affecter..

Suppression de mouvement lors de la validation

Un champ, le MOUV.CEF positionne à la valeur ‘S' est un artifice qui permet d’indiquer la suppression du mouvement indiqué

Algorithme de validation de type ‘V'

...

(=passage d’un type de pièce à un autre sur une partie des lignes)

La séquence d'enregistrements minimale est :
IPAR
MOUV

...

  • On ne pourra en aucun cas modifier la référence article, le code opération…

  • On ne peut pas supprimer de ligne ou de ventilation

  • Les lignes sont toujours créées en fin de pièce

  • La validation d'une ligne est identifiée par son numéro d'enregistrement, et pas à partir de la référence article.

  • Pour identifier une ventilation on indiquera également le numéro VTLNO sinon les ventilations seront validées dans l'ordre de lecture des VTL .

  • Le reliquat est mis à jour automatiquement au prorata des quantités validées

  • Attention, pour le cas d’une validation commande ou BL en facture, il faut éviter de modifier les quantité livrées


Traitement des remises en pied
Validation sur une pièce existante on conserve le % de la pièce finale.
Validation en créant la pièce finale, on reprend le % de la pièce initiale.
Le % indiqué dans ENT de GTFI écrasant le % ainsi défini.

Suppression de mouvement lors de la validation

Un champ, le MOUV.CEF positionne à la valeur ‘S' est un artifice qui permet d’indiquer la suppression du mouvement indiqué

Algorithme de validation de type 'T' Validation de pièce (=passage total d’un type de pièce à un autre)

La séquence d'enregistrements minimale est :
IPAR

Pour chaque enregistrement MOUV à valider, on recherchera par le numéro d'enregistrement le MOUV de la pièce initiale qui doit être validé.
Lorsque l'enregistrement à valider existe, il est repris entièrement pour la validation. Si vous souhaitez modifier certaines données, surchargez la procédure « G1T1_Validation_Affectation_Ap ».

Informations complémentaires

  • On ne pourra en aucun cas modifier la référence article, le code opération…

  • On ne peut pas supprimer de ventilation

  • La validation d'une ligne est identifiée par son numéro d'enregistrement, et pas à partir de la référence article.

  • Pour identifier une ventilation on indiquera également le numéro VTLNO sinon les ventilations seront validées dans l'ordre de lecture des VTL .

  • Attention, pour le cas d’une validation commande ou BL en facture, il faut éviter de modifier les quantité livrées

Traitement des remises en pied
Validation sur une pièce existante on conserve le % de la pièce finale.
Validation en créant la pièce finale, on reprend le % de la pièce initiale.
Le % indiqué dans ENT de GTFI écrasant le % ainsi défini.

Suppression de mouvement lors de la validation

Un champ, le MOUV.CEF positionne à la valeur ‘S' est un artifice qui permet d’indiquer la suppression du mouvement indiqué

Algorithme de validation de type 'S'

La séquence d'enregistrements minimale est :
IPAR

Exemples simples d’action

Création de pièce avec texte (C)

Exemple Diva d’une ligne IPAR de création d’un pièce commande fournisseur avec mouvement

Bloc de code
IPAR        = ' '
IPAR.CE1    = 'I'
IPAR.DOS    = MZ.DOS
IPAR.ETB    = MZ.ETB
IPAR.PICOD  = '2'							; Commande
IPAR.TICOD  = 'F'							; Fournisseur
IPAR.TRAIT  = 'C'						; Création

HWrite(GTFI, IPAR)

ENT         = ' '
ENT.CE1     = 'A'
ENT.CE4     = Condition(CdeProvisoireCtmFl = OUI, '7', '1')
ENT.TIERS   = TiersFou		;fournisseur choisi
ENT.TvaTie = Fournisseur.TvaTie
ENT.DEPO    = GtCtm100T1.DEPO				;depo de la ligne client
ENT.Projet  = GtCtm100T1.Projet
ENT.PiDt		= today
ENT.DelDemDt	= today
ENT.OP      = 'F'

HWrite(GTFI, ENT)
	
MOUV        	= ' '
MOUV.CE1    	= 'C'
MOUV.CE2    	= '1'						
MOUV.GrRef  	= GrRef
MOUV.CdQte 		= QteE
MOUV.VenUn  	= AchUn
MOUV.Depo   	= Depo
MOUV.CdDt		= DelDt
MOUV.Projet     = Projet

HWrite(GTFI, MOUV)
	
Note_Chargement_ (C_APPLIC_DAV,Note,RtfMot=RtfMot)
if Note_Tag_Extraction(C_APPLIC_DAV ,Note,Tag, RtfMot=RtfMot) = true
	rtfnom 		 = Note_Rechercher_Nom_Rtf (C_APPLIC_DAV,RtfMot=RtfMot)
	init itxt    = ' '
	itxt.ce1     = 'T'
	itxt.txtnat  = 2			; Rtf
	itxt.txttyp  = TxtTyp	 		; Note ligne pièce
	itxt.txttrait= 1
	if rtfnom <> ' '
				IPARricho.name = rtfnom
		st = fopen (richo,'P')
		if st = 0
			do
				init itxt.texte = $00
			while freadst (richo,texte) = 0
				if mid (texte,1000,1) <> $00
					itxt.texte = texte
				else
					itxt.texte = mid (texte,1,length (texte)) & $00
				endif

				hwrite (Gtfi,itxt)
			wend
			hclose (richo)
		endif
	endif
endif

;Soit ne pas donner de MVTL, soit faire une boucle pour par exemple changer les délais
	MVTL        	= ' '
	MVTL.CE1    	= 'I'
			V'
	MVTL.GrRef		= GrRef
	MVTL.RefQte		= RefQte
	MVTL.DelDemDt  = Ventilation.DelDemDt
	Convertir_RefQte_Qte(Ventilation.Qte,	Ventilation.ref, Ventilation.sref1, Ventilation.sref2, Ventilation.refQte, MOUV.VenUn, ART.RefUn)
	MVTL.DelAccDt	= Ventilation.DelAccDt
	MVTL.DelRepDt	= Ventilation.DelRepDt
	MVTL.DelDt     = Ventilation.DelDt

	HWrite(GTFI, MVTL)

Suppression de pièce (S)

Exemple Diva d’une ligne minimale de fichier GTFI pour une suppression

Bloc de code
IPAR        = ' '
IPAR.CE1    = 'I'
IPAR.DOS    = MZ.DOS
			IPAR.ETB    = MZ.ETB
			IPAR.TRAIT  = 'S'	;Suppression
			IPAR.TICOD  = 'F'	;Fournisseur
			IPAR.PICOD  = 2 	;2=cde
			IPAR.FullPiNo	= PieceIntegration.FullPiNoGenereFullPiNo
			
			HWrite(GTFI, IPAR)HWrite(GTFI, IPAR)

Validation partielle de devis en commande (V)

Exemple Diva d’une ligne IPAR de fichier GTFI pour une validation partielle, puis plusieurs mouvements MOUV basés pour l’exemple sur : les chapitres et postes

OU la référence article ALB0001 de la pièce d’origine

Bloc de code
IPAR        = " "
IPAR.Trait  = "V"
IPAR.Ce1    = "I"
IPAR.Dos    = ENTdv.Dos
IPAR.Etb    = ENTdv.Etb
IPAR.TiCod  = 'C'
IPAR.PiCod  = 1
IPAR.PiCodf = 2
IPAR.FullPino   = ENTDv.FullPiNo

Hwrite (GTFI, IPAR)


;Exemple partiel (non fonctionnel) de lecture des mouvements de la pièce origine
do while ReaderNext_Mouvement(Rs_Mouvement, IdrMouv) = 0
  ;condition exemple : les ref ALB0001 ou chapitre/postes
  if ( left(MOUV.REF) = 'ALB0001' or MOUV.CE2 in (2,3) )
    MOUV = Rs_Mouvement.MOUV    ;reprise du MOUV à valider
    MOUV.CdQte = MOUV.DvQte     ;en commande on reprend la quantité en devis
    Hwrite (GTFI, MOUV)
  endif
wend

Validation totale de commande en BL (T)

Exemple Diva d’une ligne IPAR de fichier GTFI pour une validation totale de commande en BL

Bloc de code
IPAR.ce1    = "I"
IPAR.trait  = "T"
IPAR.dos    = 998
IPAR.ticod  = "C"
IPAR.picod  = 2
IPAR.fullpino   = fullpino
IPAR.picodf = 3

hwrite(gtfi, ipar)

Appel de l’intégrateur GTPP150

...

Le fichier GTFI est de type HFI DHFI ('N' en longueur variable).
Il contient des enregistrements, qui doivent respecter l’ordre suivant. L’intégrateur traite chaque IPAR avec les enregistrement qui le suivent pour traiter pièce par pièce. Il termine la pièce au prochain IPAR ou en fin de demande.

Consultez la page dédiée pour plus d’informations sur le contenu de chaque enregistrement Contenu d'un fichier GTFI

Nom enregistrement

Détails

IPAR

OBLIGATOIRE et au début.

Paramètre de l'intégration demandée, notamment l’action attendue

ENT

OBLIGATOIRE sauf pour Suppression

Suit IPAR

En-tête de pièce pour l’action demandée.

Un seul entête par IPAR

ITXT

Suit ENT

Texte en-tête, pied, ligne ou note

EEC

Suit ENT

Echéance multiple

EAD

Suit ENT

Adresses

ENTCPLEXT

Suit ENT

Complément externe d’entête pièce

MOUV

Suit ENT

Mouvement

MOUVTCLIRE

Suit MOUV, pour TICOD C uniquement

Remise client mouvement

MOUVTAX

Suit MOUV

Taxe complémentaire mouvement (ecotaxe)

MVTL

Suit MOUV

Ventilation