在项目中,开发完自己的packages之后,需要使用agentjob之类的服务来调度自己的package,当然我们也可以使用一个package来调度这些,下面就是我的一个简单的尝试.

没有设计得像Agentjob那样复杂,agentjob中的每一个job都包含schedule,然后每一个job有若干个step,每一个step之间还是有依赖关系.

我的设计很简单,就是使用一个csv文件保存三列值,一列是order,一列是batfilename,第三列是isenabled.

分别表示执行顺序,batch file的名字,(其实也可以设计成包的路径)和是否执行.

示例如下:

我暂且就叫它MainFrame吧,它的基本结构如下:

除了执行之外,我还想获取执行过程中返回的信息,存储到一个文件中去,所以添加了一些变量,另外一个考虑是方便配置.

Step1.使用一个Dataflowtask读取csv文件的内容到一个recordset.

Step2.使用foreach loop组件遍历这个Recordset,然后分别进行处理.

如果isenabled是true,则就是需要执行的batch file.则使用Execute process task执行.

然后写入返回的结果即可.

Data flow task的内容如下:

Execute process task的配置如下:

最后一个script task的代码基本如下:

string _errorinfo=Dts.Variables["User::var_outputfile"].Value.ToString();

string _outputinfo= Dts.Variables["User::var_outputfile"].Value.ToString();

StringBuilder sbcontent = new StringBuilder();

sbcontent.Append("outputinfo:");

sbcontent.Append(_outputinfo);

sbcontent.Append(Environment.NewLine);

sbcontent.Append("errorinfo:");

sbcontent.Append(_errorinfo);

sbcontent.Append(Environment.NewLine);

File.AppendAllText(_filename,sbcontent.ToString());

全部流程没有经过完全的测试,可能需要稍微调整一些内容.

仅供学习参考.

我们还可以再添加一些有用的内容,譬如执行完成后发邮件通知等等.这样更方便.

使用SSIS包调度开发的包的更多相关文章

  1. python笔记6 模块与包 程序开发规范 包 re sys time os模块

    模块与包 python 模块首引用加载到内存,如果再次引用此模块,直接从内存中读取. python文件分为:执行文件(解释器运行的文件),被引用文件(import) 模块引用一共发生了3件事: 1.他 ...

  2. SSIS包的开发

    在上一章节中我们初步了解了SSIS体系结构以及如何创建一个SSIS包.现在就介绍一下如何在创建的包中使用各个选项卡.打开上一章节创建的SSIS包.整个界面风格如下: 在整个包中包含了控制流选项卡.数据 ...

  3. 如何在 ETL 项目中统一管理上百个 SSIS 包的日志和包配置框架

    一直准备写这么一篇有关 SSIS 日志系统的文章,但是发现很难一次写的很完整.因为这篇文章的内容可扩展的性太强,每多扩展一部分就意味着需要更多代码,示例和理论支撑.因此,我选择我觉得比较通用的 LOG ...

  4. 实例学习SSIS(三)--使用包配置

    原文:实例学习SSIS(三)--使用包配置 导读: 实例学习SSIS(一)--制作一个简单的ETL包 实例学习SSIS(二)--使用迭代 实例学习SSIS(三)--使用包配置 实例学习SSIS(四)- ...

  5. SSIS教程:创建简单的ETL包 -- 5. 添加包部署模型的包配置(Adding Package Configurations for the Package Deployment Model)

    包配置允许您从开发环境的外部设置运行时属性和变量. 配置允许您开发灵活且易于部署和分发的包.Microsoft Integration Services 提供了以下配置类型: XML 配置文件 环境变 ...

  6. linux 下安装开发组件包

    最初安装redhat 时, 系统自己装的,只安装了base 包,在开发过程中,需要不停的安装某个需求包,   图省事,安装光盘下的开发组件包: 在安装光盘下,,,用命令: yum grouplist ...

  7. Day5 函数递归,匿名、内置行数,模块和包,开发规范

    一.递归与二分法 一.递归 1.递归调用的定义 递归调用:在调用一个函数的过程中,直接或间接地调用了函数本身 2.递归分为两类:直接与间接 #直接 def func(): print('from fu ...

  8. 如何在本地开发Composer包

    如何在本地开发Compoer包 周煦辰 2019-05-26 记录一下如何在本地开发一个Composer包,以及如何发布到Packgist. 假设你要开发一个名叫xuchen/biubiubiu的包. ...

  9. DELPHI开发LINUX包

    DELPHI开发LINUX包 我们知道,有了包的存在,开发插件架构的程序,才成为可能 . DELPHI在WINDOWS里面的包的扩展名是.bpl. 在LINUX里面的包的扩展名是.so. 怎样在LIN ...

随机推荐

  1. 【Android】将Xamarin For VS升级为4.1.0.530版

    分类:C#.Android.VS2015(自带Update2).Win10 创建日期:2016-06-10 2016-08-03说明:该版本已过时,新版本详见本博客置顶的更新. 一.Xamarin f ...

  2. 【C#进阶系列】07 常量和字段

    常量 常量总是被视为静态成员. 常量其实可以不限于基元类型,但是必须初始化为null.(我觉得这个点知道和不知道都一样,我已经自动从脑海中忽略了.很多时候在我这个人眼中,艰涩的代码和垃圾代码,其实没有 ...

  3. 重新想象 Windows 8 Store Apps (54) - 绑定: 增量方式加载数据

    [源码下载] 重新想象 Windows 8 Store Apps (54) - 绑定: 增量方式加载数据 作者:webabcd 介绍重新想象 Windows 8 Store Apps 之 绑定 通过实 ...

  4. Orchard中文版源码下载

    本版本基于Orchard1.7.2修改: 新增Bootstrap主题 新增中文语言包 增加了对Sqlite.Orchard数据库的支持 优化工程,减少临时符号生成,增加工程效率 和一些BUG的修正 默 ...

  5. SharePoint 2013 跨网站集发布功能简介

    在SharePoint Server 2013网站实施中,我们经常会遇到跨网站集获取数据,而2013的这一跨网站集发布功能,正好满足我们这样的需求. 使用SharePoint 2013中的跨网站发布, ...

  6. 解决SwipeRefreshLayout左右滑动事件冲突的问题

    在使用SwipeRefreshLayout时我们注意到在SwipeRefreshLayout中左右滑动时可能也会触发下拉刷新的事件,这点让我们很不爽.追其原因是SwipeRefreshLayout对于 ...

  7. FileInputStream类

    FileInputStream和FileOutPutStream类都是用来操作磁盘文件的.如果用户对文件读取需求比较简单,则可以使用FileInputStream类,该类继承InputStream类 ...

  8. 【读书笔记】iOS-Tagged Pointer对象-注意事项

    一,2013年9月,苹果推出了iPhone5s,与此同时,iPhone5s配备了首个采用64位架构的A7双核处理器,为了节省内存和提高执行效率,苹果提出了Tagged Pointer的概念. 对于64 ...

  9. Swift开发第三篇——Playground

    本篇分为两部分: 一.Playground的延时运行 二.Playground的可视化 一.Playground的延时运行 Playground 就是提供一个可以即时编译的类似 REPL 的环境,他为 ...

  10. sublime text2 汉化

    1.下载Sublime-Text-2中文包.zip 链接:http://pan.baidu.com/s/1mgYRW9q 密码:8ks6 2.将 Sublime-Text-2中文包.zip 解压,并将 ...