Questa azione è chiamata per ogni record di ogni tabella dichiarata nel 1° folder del modello. Questa azione interviene quando la classe [M] è stata alimentata. La classe [F] contiene il record da importare. Questa azione interviene prima della simulazione dell'inserimento.
Azione chiamata dal programma generato dall'import WWIxxxxxxx.
Semplice, Riquadro, Combinato
Questa azione non viene chiamata su un import senza oggetto.
Nonostante ciò sia possibile nell'azione AP_IMPORT, è ancora possibile completare la classe [F] del record da importare
E' possibile alimentare in anticipo delle informazioni nella classe [M] poiché non vi saranno automatismi da parte del supervisore per queste informazioni (es: finestra supplementare dell'oggetto, campo nascosto o visualizzato, variabile di fondo riquadro).
Su un oggetto Testata - dettaglio identificare, per ogni dettaglio, se ci si trova in creazione, modifica, cancellazione o inserimento nel mezzo del riquadro.
Evitare l'import di un record di livello 1 e di tutti i suoi record di livello inferiore posizionando la variabile OK = 0.
Alcune variabili utili in questa azione:
[L]TRTMSK: programma generato della videata
[L]IMPFIC : abbreviazione della tabella corrente
[S]nolign : la si posizionerà a zero per la creazione di una riga di dettaglio, altrimenti la si alimenta con il numero di riga di dettaglio da modificare.
[L]status : si identifica la cancellazione di riga di dettaglio con status = 65, l'inserimento di riga nel mezzo del riquadro con status=72
Nell'import di ordine di vendita, può succedere di importare un campo contenente il numero cliente seguito dal carattere "~" seguito da altri dati. Per caricare il numero cliente nella classe [F], si utilizza la seguente azione IMPORT:
$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
Nell'import di ordini di vendita, si ha la possibilità di importare l'indirizzo del cliente ordine nella tabella degli ordini, se la ragione sociale è parametrizzata nel modello di import. Queste informazioni non sono inseribili in un folder dell'oggetto degli ordini bensì in una videata a parte richiamata dalla barra di menù. Non vi sono quindi automatismi da parte del supervisore per il caricamento della classe [M]. Di conseguenza, nell'azione LIENS, si alimenta la classe [M] con la classe [F] del record da modificare, poi, nell'azione IMPORT, si alimenta la classe [M] con la classe [F] del record da importare.
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
Nell'import di ordini di vendita basato su un oggetto testata dettaglio, quando ci si trova in modifica di ordine, le operazioni possibili per le righe di questo ordine posso essere la creazione, la modifica o la cancellazione. Nell'esempio, la quantità a zero su una riga di dettaglio indica che bisogna cancellare la riga. Si alimenterà allora lo status con 65 e si eseguiranno le azioni necessarie in questa azione IMPORT.
Case IMPFIC
When "SOQ", "SOP" :
Gosub IMP_DECLARE From TRTX3IMP
# --> Occorre determinare se si tratta di una nuova riga o meno
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
# --> Cancellazione di una riga
Call TST_CHAMP(IMPFIC,"QTY",OKCHAMP) From SUBIMPOBJ
If OKCHAMP & [F:SOQ]QTY = 0 & nolign <> 0
status=65
# --> Controllo di cancellazione di righe
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
Nell'oggetto dell'ordine di vendita, il numero dell'ordine viene attivato o disattivato in funzione del tipo d'ordine. Come la simulazione di inserimento elabora i campi sequenzialmente nell'ordine nel quale sono definiti sulla videata. In questa azione IMPORT si è obbligati ad attivare o disattivare il numero dell'ordine.
# In funzione di GMANCOU, occorre riattivare o meno 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