modify class atCntSync of atyou create a subclass of the sync class; attached is a sample sub-class.
* ------------------------------------------------------------------------------ function ipDBCsync_test AC() local oSync as ipDBCsync of ipData.prg oSync = CreateObject('ipDBCsync') ? m.oSync.DBCsyncDown() * ============================================================================== define class ipDBCsync as acDataSyncVFP of acData.prg && synchronisation base locale - base Web App * ============================================================================== * Connexion à Internet nHTTPConnectType = 0 && Mode de connexion à Internet [Selon InternetOpen() de WININET.DLL] && 0 - Use IE connection and Proxy settings && 1 - Direct && 3 - Proxy (connecting through a Proxy) && 4 - Use IE connection and Proxy settings EXCEPT startup script execution && Si this.nHTTPConnectType = 3, régler les 4 propriétés suivantes: cHTTPProxyName = Space(0) && Adresse du proxy cHTTPProxyUserName = Space(0) && Nom d'utilisateur pour connexion via proxy cHTTPProxyPassword = Space(0) && Mot de passe pour connexion via proxy cHTTPProxyByPass = .NULL. && Host names or IP Addresses that should NOT be routed through the proxy server * Connexion au site cSite = 'void' && Nom du site cSiteDomain = '' && Domaine ou adresse IP du site lHTTPS = .F. && Connecter en mode sécurisé HTTPS nHTTPPort = 80 && [80/443 selon lHTTPS] Port HTTP /!\ Régler APRÈS this.lHTTPS nTimeOut = 20 && Secondes d'attente avant que le site réponde * Base de données cDBCdest = '' && Adresse de la base de données destination && modify command awServer!awProcess.TableGet_lUser()/awProcess.TableSyncUp_lUser() cUserIDfield = 'cEMAIL' && champ identifiant dans la table des utilisateurs && 'cEMAIL' est le standard Zenbuyer cUserIDvalue = '' && valeur de l'identifiant utilisateur cUserPWfield = 'cPW' && champ mot de passe dans la table des utilisateurs && 'cPW' est le standard Zenbuyer cUserPWvalue = '' && valeur du mot de passe utilisateur * Méthodes du site cScript = 'ip' && Adresse de la dll ou scriptmap équivalent cErrorHeader = '/!\' && Mention en tête du résultat retourné par le site en cas d'erreur cTimeStampMethod = 'TableTimeStamp' && méthode du site qui retourne la date et heure de dernière modification d'une table && pour IT * Local cFolderTemp = Addbs(Sys(2023)) && Adresse du dossier où les tables temporaires sont stockées cTablesIgnore = Space(0) && tables à ignorer (cf. this.DBCsync()) * Résultat d'exécution lResultXML = .F. && Demander au site de retourner le résultat d'exécution sous forme XML représentant l'objet oResult *------------------------------------------------- protected procedure TableSyncUp_Rec && {en} Record of a table sent to site for synchronization {fr} Enregistrement d'une table envoyé au site pour synchronisation lparameters ; tcTable; && {en} Table name , toRecord && {en} Record object obtained by scatter name loRecord memo && {en} Alias() = cursor holding the records to be synchronized - same structure as (tcTable) && {fr} Alias() = cursor des enregistrements à synchronizer - structure identique à (tcTable) && {en} Implement invoice pdf upload when server is hosted outside STI && {en} return .F. to ignore files in record && {fr} return .F. ignore les fichiers de l'enregistrement endproc *------------------------------------------------- protected function TableSyncUp_lFile && {en} A File mentioned in a table should be sent to client {fr} Un fichier dans une table doit être envoyé au client lparameters ; tcFile; , tcTable; && Upper() , tcField; && Upper() return .T.; and InList(Upper(m.tcTable), Upper('carrier'), Upper('company'), Upper('division')); and InList(Upper(m.tcField), Upper('Logo'), Upper('LogoName')); and .T. *------------------------------------------------- protected function TableSyncDown_lFile && {en} A File mentioned in a table should be downloaded and saved {fr} Un fichier mentionné dans une table doit être téléchargé et sauvegardé lparameters ; tcFile; , tcTable; && Upper() , tcField; && Upper() return this.TableSyncUp_lFile(; && same rule m.tcFile; , m.tcTable; , m.tcField; ) *------------------------------------------------- protected function TableSyncUp_File_cPath && Addresse complète d'un fichier à envoyer au site lparameters tcFile return ForcePath(m.tcFile, FullPath(ICase(; Directory('Graphics'),; 'Graphics',; Directory('..\Graphics'),; '..\Graphics',; ''; ))) *------------------------------------------------- protected function TableSyncDown_File_cPath && Adresse où ranger un fichier téléchargé depuis le site LPARAMETERS tcFile && NOM du fichier return this.TableSyncUp_File_cPath(m.tcFile) *------------------------------------------------- protected function TableSyncUp_File_cType && Type d'un fichier à envoyer au site pour savoir où le ranger LPARAMETERS tcFile return 'Graphics' *--------------------------------------- protected procedure DBCSync_Table_Ante && méthode shell avant synchronisation lparameters ; tlUp; && [.F.] {fr} Synchronisation montante , tcTable; && {fr} Table sur le point d'être synchronisée , tuFieldsIgnore; && @ {fr} Ignorer si ces champs de la table destination sont absents de la table source ; .T.: aucune vérification de structure , tlReplace; && @ {fr} Remplacer toute la table destination , tlCKmatch; && @ {fr} Matcher les enregistrements sur la première clé candidate de la table destination , tlPKreplace; && @ [.F.] {fr} Si m.tlCKmatch et clé primaire différente, remplacer && 2016-12-13 thn -- {FiC V 2.23.0-beta.8} {en} added tlCKmatch = m.tlCKmatch or !m.tlUp and Upper(m.tcTable) == Upper('glCode') tlPKreplace = m.tlCKmatch endproc *--------------------------------------- PROTECTED PROCEDURE DBCsync_Table_Post && méthode shell après synchronisation lparameters ; tlUp,; &&[.F.] Synchronisation montante tcTable,; && Table qui vient d'être synchronisée toResult && Résultat de la synchronisation if Type('thisForm') == 'O' thisForm.log(m.this.cResult, !m.this.lResult) endif return DoDefault(m.tlUp, m.tcTable, m.toResult) * ============================================================================== enddefine && class ipDBCsync * ==============================================================================>Thierry,