We help IT Professionals succeed at work.

We've partnered with Certified Experts, Carl Webster and Richard Faulkner, to bring you a podcast all about Citrix Workspace, moving to the cloud, and analytics & intelligence. Episode 2 coming soon!Listen Now

x

DTSStepScriptResult_DontExecuteTask  return status issue

Perjey
Perjey asked
on
Medium Priority
934 Views
Last Modified: 2007-12-19
Hi,

I'm processing a number of files from a folder.If the first file has a size 0, I want to stop the task but wish to process the other files. I'm using the following code in the Workflow properties.
---------------------------------------------------------
Function Main()

        Dim oFSO, sFileName1,oFile

        ' Get filename from the Connections
        sFilename1 = DTSGlobalVariables.Parent.Connections("InputFile").DataSource

        Set oFSO = CreateObject("Scripting.FileSystemObject")

    Set oFile = oFSO.GetFile(sFilename1)

    If oFile.Size > 0 Then

                Main = DTSStepScriptResult_ExecuteTask
        Else
                Main = DTSStepScriptResult_DontExecuteTask
        End If

    Set oFile = Nothing
    Set oFSO = Nothing

End Function
--------------------------------------------------------
It detects the  first file size is 0 and therefore does
not run the task which is fine but 'DTSStepScriptResult_DontExecuteTask' seems to be returning a 'failure' status and therefore the rest of the files from the folder are not being picked up.

Is there any workaround or a way to force DTSStepScriptResult_DontExecuteTask to return a 'success' status which will enable the other files to be processed?

Thanks.
Comment
Watch Question

create a dts package that loops thru all of the files only.
have it delete all of the 0 length files from then directory.
then run your processing package.
CERTIFIED EXPERT
Top Expert 2012
Commented:
Assuming you are using something like this article:
Looping, Importing and Archiving
http://www.sqldts.com/default.aspx?246

Than all you have to do is make the following change in the ShouldLoop function:

Function ShouldILoop

Dim fso
Dim fil      
Dim fold
Dim pkg
Dim counter


set pkg = DTSGlobalVariables.Parent
set fso = CREATEOBJECT("Scripting.FileSystemObject")

set fold = fso.GetFolder(DTSGlobalVariables("gv_FileLocation").Value)

counter = fold.files.count

' So long as there are text files in the directory carry on

if  counter >= 1  then
      for each fil in fold.Files
            If fil.Size > 0 Then            ' Add this
                  DTSGlobalVariables("gv_FileFullName").Value = fil.path
                  ShouldILoop = CBool(True)
                  Exit For            ' No need to go any further
            End If
            ' ShouldILoop = CBool(True)     ' Comment this out
      Next
else
      ShouldILoop = CBool(False)
End if

End Function

Not the solution you were looking for? Getting a personalized solution is easy.

Ask the Experts
Access more of Experts Exchange with a free account
Thanks for using Experts Exchange.

Create a free account to continue.

Limited access with a free account allows you to:

  • View three pieces of content (articles, solutions, posts, and videos)
  • Ask the experts questions (counted toward content limit)
  • Customize your dashboard and profile

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.