jeudi 13 septembre 2007

Fwd: tracer les suppressions dans pivotal



---------- Forwarded message ----------
From: Nicolas LAURENT <nla@carmis.fr>
Date: 12 sept. 2007 11:27
Subject: tracer les suppressions dans pivotal
To: collaborateurs <collaborateurs@carmis.fr>

 
Bonjour voici une methode simple pour tracer les suppressions par les boutons supprimer (primary) dans pivotal (dll en vb)
 
1. creer table Trace_suppression
champs :
User_Id ( id sur users...)
Table_Name (text80)
Detail_Suppression (text 254)


2. dans la dll d'un formulaire scriptable par tous
ajouter dans le execute
        Case Is = UCase$("TRACESUPPRESSION")
            Call TraceSuppression(vntUserDefParams(0), vntUserDefParams(1))
et ajouter dans la sub suivante:
Private Sub TraceSuppression(ByVal SuppFormName As String, ByVal SuppRecord_Id As Variant)
    Dim rstJOB As ADODB.Recordset
    Dim rdstJOB As RDALib.IRDataset
    Dim suppDescr As String
    Dim SuppForm As RDALib.IRForm   
    Set SuppForm = mrsysSystem.Forms(SuppFormName)   
    suppDescr = "Suppression : "
    suppDescr = suppDescr & FindValue(SuppForm.Table.TableName, "Rn_Descriptor", SuppForm.Table.PrimaryKeyField.FieldName, SuppRecord_Id)
    suppDescr = suppDescr & " (" & mrsysSystem.IdToString(SuppRecord_Id) & ")" 
    Set rdstJOB = mrsysSystem.CreateDataset
    rdstJOB.TableName = "Trace_suppression"
    rdstJOB.Fields.Append "User_Id"
    rdstJOB.Fields.Append "Table_Name"
    rdstJOB.Fields.Append "Detail_Suppression"
    Set rstJOB = rdstJOB.BuildNewRecordset
    rstJOB.AddNew
    rstJOB.Fields("User_Id").Value = mrsysSystem.CurrentUserId
    rstJOB.Fields("Table_Name").Value = SuppForm.Table.TableName
    rstJOB.Fields ("Detail_Suppression").Value = suppDescr
    rdstJOB.SaveRecordset rstJOB
    Set rstJOB = Nothing
    Set rdstJOB = Nothing
End Sub

3. créer dans script client un global

sub TraceSuppression()
      
    Dim rfrmForm,objParams,vntParams,objrParam
    Set rfrmForm = UIMaster.RSysClient.GetForm("FORMULAIRE ACCESSIBLE PAR TOUS")
    Set objParams = CreateTransitPointParamsObj()
    objParams.SetUserDefParam 1, UIMaster.RUIcenter.Form.FormName
    objParams.SetUserDefParam 2, UIMaster.RUIcenter.recordId
    vntParams = objParams.ConstructParams()
    rfrmForm.Execute "TRACESUPPRESSION", vntParams
      
end sub


4. faire un Global.TraceSuppression() dans tous les deleteformdata des scripts clients
des formulaires dont on veut tracer la suppression

par exemple

Sub DeleteFormData(rfrmForm, vntRecordId, vntParameters)
   
    On Error Resume Next
    
    Global.TraceSuppression()
                                                           
    rfrmForm.DoDeleteFormData vntRecordId, vntParameters
 
    If Err.Number <> 0 Then
        uimaster.ShowErrorMessage Err.Description
    End If
   
End Sub
 
Ca peut toujours servir...
 
++
 
Une première pierre à la base de connaissance CARMIS ?
 

Aucun commentaire: