• Depending upon the environment, our DB, OLAP, DTS, logging, and files used may be placed on a single box, all on separate boxes, or somewhere in between.  I wish I could say that was an intentional design choice.   We now have an ActiveX script as the first step in every package, immediately followed by any/all dynamic property tasks.  Using stacenic's registry trick, we could eliminate even the dependence upon the INI file name/location and be completely dynamic.

    Here is the ActiveX code and a sample INI file.  Note we had to break the INI file into more sections than intended due to limitations on section length.

    Hope this helps.

    ----------------------------------------------------

    Function Main()

     'Set the INI file name in all the dynamic properties tasks to the value from the global variable.

    Dim gvINIFileName, oAssignments, oAssignment

     gvINIFileName = DTSGlobalVariables("gvINIFileName").Value

     set oAssignments = DTSGlobalVariables.Parent.Tasks("DTSTask_DTSDynamicPropertiesTask_1").CustomTask.Assignments

     'Set all dynamic tasks that are INI File Type (see below) to point to the same file.

      'DTSDynamicPropertiesSourceType_IniFile  0 Source is the value of a key within an .ini file.

      'DTSDynamicPropertiesSourceType_Query  1 Source is a value returned by an SQL query.

      'DTSDynamicPropertiesSourceType_GlobalVariable 2 Source is the value of a Data Transformation Services (DTS) global variable within the package.

      'DTSDynamicPropertiesSourceType_EnvironmentVariable 3 Source is the value of a system environment variable.

      'DTSDynamicPropertiesSourceType_Constant  4 Source is a constant.

      'DTSDynamicPropertiesSourceType_DataFile  5 Source is the contents of a data file.

     for each oAssignment in oAssignments

      if oAssignment.SourceType = 0 then oAssignment.SourceIniFileFileName = gvINIFileName

     next

     set oAssignment = Nothing

     set oAssignments = Nothing

     Main = DTSTaskExecResult_Success

    End Function

    ----------------------------------------------------------------------------------------------

    [Logging]

    LoggingServer=LoggingServerName

    LoggingUsername=UserName

    LoggingPassword=MindUrOwnBeezwax

    [Connections]

    DBServer=DBServerName

    DBUserName=UserName2

    DBPassword=MindUrOwnBeezwax2

    [WorkFiles]

    FileDir=\\FileServerName\ShareName\MyDir

    HoldFileDir=\\FileServerName\ShareName\MyDir\Hold

    ProcessedFileDir=\\FileServerName\ShareName\MyDir\Processed

    [GlobalVariables]

    gvMaxAge=100

    gvPreFileNameFormat=PreYYMMDD.xls

    gvPostFileNameFormat=PostYYMMDD.xls

    [Dims]

    ' TK stands for TreeKey, used in OLAP processing

    OLAPServer=CubeServer

    TKFiscal=CubeServer\Inventory\DimFolder\Time.Fiscal

    TKCalendar=CubeServer\Inventory\DimFolder\Time.Calendar

    TKPromo=CubeServer\Inventory\DimFolder\Promotion

    TKProduct=CubeServer\Inventory\DimFolder\Product

    TKMarket=CubeServer\Inventory\DimFolder\Market

    [Cube]

    OLAPServer=CubeServer

    TKItem=CubeServer\Inventory\CubeFolder\Sales

    TKInventory=CubeServer\Inventory\CubeFolder\Inventory

    TKVirtual=CubeServer\Inventory\CubeFolder\InventorySales

    Larry