Code:
Public Function SFDC_Partner_Partnership_Source()
On Error GoTo Proc_Err
'::-- Initialize --::'
If strActivate_Flag = 0 Then Call Activate_Modules
Dim db As DAO.Database
Dim ws As DAO.Workspace
Dim strSQL As String, strTableList As String, strTempTable As String, strTable As String
Dim strQuery As String, strExportTo As String, strDelim As String, strID As String
Dim strFunctName As String, strStartTime As Date, strEndTime As Date, strTimeDiff As String
Dim strStep As String, strSubject As String, strBody As String, strTo As String, strProcError As String
Set ws = DBEngine.Workspaces(0)
Set db = ws.Databases(0)
strID = Format(Hour(Now), "00") & Format(Minute(Now), "00") & Format(Second(Now), "00")
strFunctName = "SFDC_Partner_Partnership_Source": strStartTime = Format(Now, "mm/dd/yyyy hh:mm:ss")
strTempTable = "SFDC_PTRPTP"
strQuery = "SFDC_to_MDM_PTRPTPSync"
'Clear Tables
Call DeleteTable(strTempTable)
'Start a transaction to ensure all updates are run or rolled back
ws.BeginTrans: strTFlag = 1
strStep = "Create Temporary SFDC PTR / PTP Table"
strSQL = "" & _
"CREATE TABLE [SFDC_PTRPTP] (" & _
"[PARTNERSHIPID] CHAR(9),[PARTNERSHIPALIAS] CHAR,[PARTNERSHIPACTIVEFLAG] SMALLINT,[PARTNERSHIPISDELETED] SMALLINT," & _
"[PARTNERSHIP_EXECUTION_DATE] DATETIME,[MDM_BUSINESS_OWNER] CHAR" & _
",[PARTNERID] CHAR(9),[PARTNERALIAS] CHAR,[PARTNERACTIVEFLAG] SMALLINT,[PARTNERISDELETED] SMALLINT" & _
");"
db.Execute strSQL, dbFailOnError: db.Close
strStep = ""
strStep = "Build PTR & PTP Table Content"
strSQL = "" & _
"INSERT INTO [SFDC_PTRPTP] (" & _
" [PARTNERSHIPID] , [PARTNERSHIPALIAS], [PARTNERSHIPACTIVEFLAG], [PARTNERSHIPISDELETED], [PARTNERID]," & _
"[PARTNERALIAS], [PARTNERACTIVEFLAG], [PARTNERISDELETED],[MDM_BUSINESS_OWNER],[PARTNERSHIP_EXECUTION_DATE]" & _
")" & _
" SELECT DISTINCT" & _
" Trim([SFDC_PARTNERSHIP].[MDM_PARTNERSHIP_ID]), Replace([SFDC_PARTNERSHIP].[PARTNERSHIP_NAME],""’"",""'""), [SFDC_PARTNERSHIP].[ACTIVE_FLAG]," & _
"[SFDC_PARTNERSHIP].[IS_DELETED], Trim([SFDC_PARTNER].[MDM_PARTNER_ID])" & _
" ,Replace([SFDC_PARTNER].[SALESFORCE_PARTNER_NAME],""’"",""'""),[SFDC_PARTNER].[ACTIVE_FLAG],[SFDC_PARTNER].[IS_DELETED]," & _
"Trim([SFDC_PARTNERSHIP].[MDM_BUSINESS_OWNER]),[SFDC_PARTNERSHIP].[PARTNERSHIP_EXECUTION_DATE]" & _
" FROM [SFDC_PARTNERSHIP]" & _
" INNER JOIN [SFDC_PARTNER] ON [SFDC_PARTNERSHIP].[SALESFORCE_PARTNER_ID] = [SFDC_PARTNER].[SALESFORCE_PARTNER_ID]" & _
" WHERE ([SFDC_PARTNER].[SALESFORCE_PARTNER_ID] = [SFDC_PARTNERSHIP].[SALESFORCE_PARTNER_ID] AND [SFDC_PARTNERSHIP].[MDM_PARTNERSHIP_ID] LIKE 'PTP*'" & _
" AND [SFDC_PARTNER].[MDM_PARTNER_ID] LIKE 'PTR*' AND LEN([SFDC_PARTNERSHIP].[MDM_PARTNERSHIP_ID]) = '9' AND LEN([SFDC_PARTNER].[MDM_PARTNER_ID]) = '9'" & _
" AND [SFDC_PARTNERSHIP].[PARTNERSHIP_NAME] IS NOT NULL AND [SFDC_PARTNER].[SALESFORCE_PARTNER_NAME] IS NOT NULL" & _
" AND [SFDC_PARTNER].[ACTIVE_FLAG] = 1 AND [SFDC_PARTNERSHIP].[ACTIVE_FLAG] = 1)" & _
";"
db.Execute strSQL, dbFailOnError: db.Close
strStep = ""
'commit all changes
ws.CommitTrans: strTFlag = 0
Set rs = db.OpenRecordset(strQuery)
If rs.RecordCount > 0 Then
strExportTo = str_Auto_ActionScript_Bin & strID & "_" & strFunctName & ".csv"
strDelim = ","
'Ensure file is delete before new file is exported
On Error Resume Next
Kill (strExportTo)
On Error GoTo 0
'Call ExportToTextFile(strQuery, strExportTo, strDelim, True, False)
End If
'Clear Tables
Call DeleteTable(strTempTable)
Proc_Exit:
'::-- Update Table with Procedure Information --::'
strEndTime = Format(Now, "mm/dd/yyyy hh:mm:ss")
strTimeDiff = strEndTime - strStartTime
Call ADD_RUN_TIMES( _
strFunctName, _
strStartTime, _
strEndTime, _
Hour(strTimeDiff) & " hours " & Minute(strTimeDiff) & " minutes " & Second(strTimeDiff) & " seconds", _
Switch(strProcError = "", "Success", Not (strProcError = ""), "Failed"), _
strProcError _
)
If Not rs Is Nothing Then rs.Close
If Not ws Is Nothing Then ws.Close
If Not db Is Nothing Then db.Close
Set rs = Nothing
Set ws = Nothing
Set db = Nothing
Exit Function
Proc_Err:
'::-- Rollback Transaction --::'
If strTFlag = 1 Then ws.Rollback
'::-- Capture VB Error --::'
strProcError = Err.Description
strSubject = "WARNING : Function '" & strFunctName & "' Failed " & strEnvType
strBody = Switch(strStep = "", "", Not (strStep = ""), strStep & vbNewLine & vbNewLine) & _
"VB Error : " & strProcError & vbNewLine & vbNewLine & _
"Profile : " & CurrentUser() & vbNewLine & _
"VB Module : " & Application.VBE.ActiveCodePane.CodeModule.Name
strTo = strMDMSupportEmail
Call MDM_Routines.Email_Utility(strSubject, strBody, strTo, "", "")
Resume Proc_Exit
End Function