Quantcast
Channel: SQL Server Integration Services forum
Viewing all articles
Browse latest Browse all 24688

Problem loading data from foxpro tables under multiple folders

$
0
0

 

Hi,

 

I am trying load data from multiple Foxpro tables which are under a folder. I can have multiple folders with 17 foxpro tables. I was able to do it in DTS using ActiveX script. Here is the ACtiveX script.

 

'**********************************************************************
'  Visual Basic ActiveX Script
'************************************************************************
Option Explicit
Dim conObj,DSNGosfbill,comObj,objRs,HostServer
Dim sFolder,sFileFolder, Details,subFolderoccur,sFileFolderDBF,sFileFolderFPT,CheckFile,dFiles,Fil
Dim fso, folderObj,subFolderList,dFolderObj
Dim objPackage,oStep,objPackage_1,oStep_1,ConnObj_001,ConnObj_004,ConnObj_031,ConnObj_032,ConnObj_033
Dim  ConnObj_Hclaimb, ConnObj_HProv, ConnObj_Hids, ConnObj_HCodes, ConnObj_HSpan, ConnObj_002, ConnObj_HCHGB

Set conObj = CreateObject("ADODB.Connection")

HostServer =DTSGlobalVariables("gvServer").Value


'DSNGosfbill ="DRIVER={SQL Server};SERVER=" & HostServer & ";DATABASE=GOSFBILL"

DSNGosfbill ="DRIVER={SQL Server};SERVER=" & HostServer & ";UID=syntelhum;PWD=syntel123;DATABASE=GOSFBILL"

conObj.open DSNGosfbill


sFolder =DTSGlobalVariables("gvSSIUnzipPath").Value
CheckFile =DTSGlobalVariables("gvSSIBatchPath").Value


set comObj=CreateObject ("adodb.command")
set comObj.ActiveConnection =conObj

Function Main()
 Dim Dir_Name,DirFlag
 Dir_Name = ""
 DirFlag = "N"
 Set fso = CreateObject("Scripting.FileSystemObject")
 
 If fso.FileExists(checkFile) Then
 Else
  Details = "***** Success.Lst file is missing in Batch folder. BATCH job may not be successfull  or there are no folders in UNZIP directory to process. Check the batch run.*****"
  Call Write_Log
              Main = DTSTaskExecResult_Failure
  Exit Function
 End If
 Set folderObj = fso.GetFolder(sFolder)
 Set subFolderList = folderObj.SubFolders
 For Each subFolderOccur in subFolderList
  DirFlag = "Y"
  Dir_Name = subFolderOccur.Name
  Call Process_Dir(1,subFolderOccur.Name)
 Next

 If DirFlag = "N" Then
  Details = "***** No directories to process in SSI  UNZIP folder*****"
  Call Write_Log
 End If
 If DirFlag = "Y" Then
  Call Process_Dir(2,Dir_Name)
  If objRs.Eof Then
   Details = "***** No directories to process in SSI  UNZIP folder*****"
   Call Write_Log
  End If
  While not objRs.EOF
   set sFileFolder = fso.GetFolder(sFolder & objRs("zip_file_name"))     
   Details = "***** Start-Time "  &  sFileFolder  & "  "  & Date  & "  " & Time & "*****"
   Call Write_Log
   Call Update_Process_Flag("L",objRs("zip_file_name"))
   '*******Execute the package for each directory****************'
   '********* Call the Package**************'
   Set objPackage = CreateObject("DTS.Package")
   Set objPackage_1 = CreateObject("DTS.Package")
  
   
   
   'objPackage.LoadFromSQLServer HostServer, , ,256, , , ,  "GOSFBILL_SSI_STAGING_LOAD" 
   
   
   objPackage.LoadFromSQLServer HostServer,"syntelhum","syntel123", , , , ,  "GOSFBILL_SSI_STAGING_LOAD"  
   
   
   'objPackage_1.LoadFromSQLServer HostServer, , ,256, , , ,  "GOSFBILL_SSI_Update_FileSource" 
 
   objPackage_1.LoadFromSQLServer HostServer,"syntelhum","syntel123", , , , ,  "GOSFBILL_SSI_Update_FileSource" 


   Set ConnObj_001 = objPackage.Connections("SSIPATH001")
   ConnObj_001.DataSource = sFileFolder
   
   Set ConnObj_002 = objPackage.Connections("SSIPATH002")
   ConnObj_002.DataSource = sFileFolder
 
   Set ConnObj_004 = objPackage.Connections("SSIPATH004")   
   ConnObj_004.DataSource = sFileFolder

   Set ConnObj_031 = objPackage.Connections("SSIPATH031")
   ConnObj_031.DataSource = sFileFolder

   Set ConnObj_032 = objPackage.Connections("SSIPATH032")
   ConnObj_032.DataSource = sFileFolder

   Set ConnObj_033 = objPackage.Connections("SSIPATH033")
   ConnObj_033.DataSource = sFileFolder
   
   Set ConnObj_Hclaimb = objPackage.Connections("SSIPATHCLAIMB")
   ConnObj_Hclaimb.DataSource = sFileFolder
   
   Set ConnObj_HProv =  objPackage.Connections("SSIPATHPROV")
   ConnObj_HProv.DataSource = sFileFolder

   Set ConnObj_Hids =  objPackage.Connections("SSIPATHHIDS")
   ConnObj_Hids.DataSource = sFileFolder

   Set ConnObj_HCodes =  objPackage.Connections("SSIPATHCODES")
   ConnObj_HCodes.DataSource = sFileFolder

   Set ConnObj_HSpan =  objPackage.Connections("SSIPATHSPAN")
   ConnObj_HSpan.DataSource = sFileFolder
      
   Set ConnObj_HCHGB =  objPackage.Connections("SSIPATHCHGB")
   ConnObj_HCHGB.DataSource = sFileFolder
       
   objPackage.Execute

   For Each oStep In objPackage.Steps
     If oStep.ExecutionResult = DTSStepExecResult_Failure Then
        Details = "***** GOSFBILL_SSI_Staging_Load failed. "  & Date  & "  " & Time & "*****"
       Call Write_Log
       Main = DTSTaskExecResult_Failure
       Exit Function
             End If
    Next
   
   Call Update_Process_Flag("X",objRs("zip_file_name"))
   
   objPackage_1.GlobalVariables("gFileSource").Value = objRs("zip_file_name")
   
  
   objPackage_1.Execute
   
   For Each oStep_1 In objPackage_1.Steps
     If oStep_1.ExecutionResult = DTSStepExecResult_Failure Then
     
       Details = "***** GOSFBILL_SSI_Update_FileSource failed. "  & Date  & "  " & Time & "*****"
       Call Write_Log
       Main = DTSTaskExecResult_Failure
       Exit Function
             End If
    Next
   
   '********************************************'
   Details = "***** End-Time "  &  sFileFolder  & "  "  & Date  & "  " & Time & "*****"
   Call Write_Log
   objPackage.Uninitialize
   objPackage_1.Uninitialize
   Set objPackage = Nothing
   Set objPackage_1 = Nothing
   sFileFolder = ""
   sFileFolderDBF = ""
   sFileFolderFPT = ""
   objRs.MoveNext
  Wend
  objRs.Close
         End If
 Call Close_Conn 
             Main = DTSTaskExecResult_Success 
End Function

Sub Process_Dir (Para_cntl,Dir_Name)
  comObj.CommandText ="dbo.Usp_Process_Dir"
  comObj.commandtype = 4
  comobj.parameters.Refresh
  comobj.parameters("@Para_Cntl")= para_cntl
  comobj.parameters("@Dir_Nm")= Dir_Name
  comobj.parameters("@File_Type")= "SSI"
  If (Para_Cntl = 1)Then
   comObj.Execute()     
  Else If Para_Cntl = 2 Then
   Set objRs = comObj.Execute()     
         End If
  End If
   
End Sub

Sub Update_Process_Flag(P_Flag,Dir_Name)
 comObj.CommandText ="dbo.Usp_Process_Flag"
 comObj.commandtype = 4
 comObj.parameters.Refresh
 comObj.parameters("@Process_Flag")= P_Flag
 comobj.parameters("@Dir_Nm")= Dir_Name
 comObj.Execute()   
End Sub

Sub Write_Log
 comObj.CommandText ="dbo.usp_etl_write_log"
 comObj.commandtype = 4
 comobj.parameters.Refresh
 comobj.parameters("@Text")= Details
 Comobj.parameters("@NDC_SSI_IND")= "SSI"
 Comobj.parameters("@Process_Stage")= "Staging"
 comObj.Execute() 
End Sub
  

Sub Close_Conn
 Set comObj = Nothing
 Set objRs = Nothing
 conObj.Close
 Set conObj = Nothing
 Set fso  = Nothing
 Set folderObj = Nothing
 Set subFolderList = Nothing 
End Sub

 

When I migrated this code to SSIS, its not working. How can I achive this functionality in SSIS. Any one pls help me.

 

Thanks in advance

Gijo


Viewing all articles
Browse latest Browse all 24688

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>