Cette action est appelée pour chaque enregistrement de chaque table déclaréedans le 1er onglet du modèle. Cette action intervient lorsque la classe [M] aété chargée. La classe [F] contient l'enregistrement à importer. Cette action intervient avant la simulation de la saisie.
Action appelée depuis le traitement généré par l'import WWIxxxxxxx.
Simple, Tableau, Combiné
Cette action n'est pas appelée sur un import sans OBJet.
Bien que cela soit possible dans l'action AP_IMPORT, on peut encore compléter la classe [F] de l'enregistrement à importer
On peut charger par avance des informations dans la classe [M] parce qu'il n'y aura pas d'automatisme du superviseur pour ces informations ( ex : fenêtre supplémentaire de l'OBJet, champ invisible ou affiché, variable de bas de tableau ).
Sur un OBJet Entête - détail, identifier pour chaque détail, si on est en création, modification, suppression ou insertion en milieu de tableau.
Eviter l'import d'un enregistrement de niveau 1, ainsi que tous ces enregistrements de niveau inférieur, on positionnant la variable OK = 0.
Quelques variables utiles dans cette action :
[L]TRTMSK : traitement généré de l'écran
[L]IMPFIC : abréviation de la table courante
[S]nolign : on la positionnera à zéro pour la création d'une ligne détail sinon on l'alimente par le numéro de ligne détail à modifier.
[L]status : on identifie la suppression de ligne détail, par le status = 65, l'insertion ligne en milieu de tableau par le status=72
Dans l'import de commande de vente, on peut être amené à importer un champ contenant le numéro de client suivi du caractère "~" suivi d'autres données. Pour charger le numéro de client dans la classe [F], on utilise l'action IMPORT suivante :
$IMPORT
Case IMPFIC
When "SOH"
If G_GIMP6
I1=instr(1,GIMP(6),"~")
If I1 [F:SOH]BPCORD=left$(GIMP(6),I1-1) Else [F:SOH]BPCORD=GIMP(6) Endif
Endif
When Default
Endcase
Return
Dans l'import de commande de vente, on a la possibilité d'importer l'adresse du client commande dans la table des commandes, si la raison sociale est paramétrée dans le modèle d'import. Ces informations ne sont pas saisissables dans un onglets de l'OBJet des commandes, mais dans un écran à part appelé depuis la barre de menu. Il n'y a donc pas d'automatisme du superviseur, pour le chargement de la classe [M]. Donc, dans l'action LIENS, on charge la classe [M] par la classe [F] de l'enregistrement à modifier, puis dans l'action IMPORT, on charge la classe [M] par la classe [F] de l'enregistrement à importer.
If GREP="C" Raz [M:ADB1], [M:ADB2], [M:ADB3] Endif
If G_BPCNAM
[M:ADB1]ADBBPR = [F:SOH]BPCORD
[M:ADB1]BPRNAM(0) = [F:SOH]BPCNAM(0)
[M:ADB1]BPRNAM(1) = [F:SOH]BPCNAM(1)
[M:ADB1]BPAADDLIG(0) = [F:SOH]BPCADDLIG(0)
[M:ADB1]BPAADDLIG(1) = [F:SOH]BPCADDLIG(1)
[M:ADB1]BPAADDLIG(2) = [F:SOH]BPCADDLIG(2)
[M:ADB1]POSCOD = [F:SOH]BPCPOSCOD
[M:ADB1]CTY = [F:SOH]BPCCTY
[M:ADB1]SAT = [F:SOH]BPCSAT
[M:ADB1]CRY = [F:SOH]BPCCRY
[M:ADB1]CRYNAM = [F:SOH]BPCCRYNAM
Endif
Dans l'import de commande de vente basé sur un OBJet entête détail, lorsqu'on est en modification de commande, les opérations possibles pour les lignes de cette commande peuvent être la création, la modification ou la suppression. Dans notre cas, la quantité à zéro sur une ligne de détail indique qu'il faut supprimer la ligne. On positionnera alors le status à 65 et on exécutera les actions nécessaires dans cette action IMPORT.
Case IMPFIC
When "SOQ", "SOP" :
Gosub IMP_DECLARE From TRTX3IMP
# --> Il faut déterminer s'il s'agit d'une nouvelle ligne ou pas
If GREP = "M"
ICLEPRIM (0) = "SOPLIN"
ICLEPRIM (1) = "IMPNUMLIG" : ICLEBRK(1)=1
ICLEPRIM (2) = "ITMREF" : ICLESEC(2)="SHIDAT" : TSEC(2)="DSHIDAT"
ICLEPRIM (3) = "ITMREF"
NBASTAB = "NBLIG"
Gosub RECHERCHE_LIGNE From TRTX3IMP
If nolign=0 : G_NLDET=1 : Endif
# --> Traitement de suppression d'une ligne
Call TST_CHAMP(IMPFIC,"QTY",OKCHAMP) From SUBIMPOBJ
If OKCHAMP & [F:SOQ]QTY = 0 & nolign <> 0
status=65
# --> Contrôle de suppression de lignes
Call C_NBLIG From W1SOH4
If mkstat OK=0 : Return : Endif
Call AVANT_NBLIG From W1SOH4
Call APRES_NBLIG From W1SOH4
Endif
Return
Endif
Endcase
Dans l'OBJet de commande de vente, le numéro de commande est activé ou désactivé en fonction du type de commande. Comme la simulation de saisie traite les champs séquentiellement dans l'ordre dans lequel ils sont définis sur l'écran. Dans cette action IMPORT on est obligé d'activer ou désactiver le numéro de commande.
# En fonction de GMANCOU, il faut réactiver ou pas SOHNUM
If GREP="C"
Setmode INBAFF,IAFFCOD,IAFFMASK,IAFFCHP,IAFFIND,IAFFTXT,IAFFRANG,IAFFOPT1,IAFFOPT2
If GMANCOU=1
Diszo [M:SOH0]SOHNUM
Elsif GMANCOU=2
Actzo [M:SOH0]SOHNUM
Endif
Setmode
Endif