zoukankan      html  css  js  c++  java
  • Samsara v2.0 MIS数据流脚本编程 Demo


    MIS数据流脚本编程


     

    下载:

    示例项目: /Files/zc22/Samsara.Demo.rar
    示例数据库:/Files/zc22/samsara.db.rar


    说明:

    项目和数据库解压。
    修改代码的数据库字段 config.Filename 指向测试数据库:
     NoebeConfiguration config = new NoebeConfiguration();
                config.Filename 
    = @"e:\temp\test.mdb";//修改
                config.DatabaseType 
    = Pixysoft.Framework.XSchEmA.DatabaseType.Access;

                NamsaraManager.Initialize(config);

                Input input 
    = NamsaraManager.Instance.NewInput();

                input.AddSource(GetTable(
    "TABLE3"5));


                Output output 
    = NamsaraManager.Instance.Run("TESTCHANNEL", input);

                
    foreach (DataTable tb in output.InsertList)
                
    {
                    insertlist.Add(tb.TableName, tb);
                    comboBox1.Items.Add(tb.TableName);
                }


                
    foreach (DataTable tb in output.UpdateList)
                
    {
                    updatelist.Add(tb.TableName, tb);
                    comboBox2.Items.Add(tb.TableName);
                }

    运行就可以得到结果。

    解析

    数据库Table2的表:

    TABLE2
    COLUMN1 COLUMN2 COLUMN3 COLUMN4
    10 10 15 5
    11 10 16 6
    6 1 11 1
    7 2 12 2
    8 5 13 3
    9 6 14 4


    测试输入Table3表数据:
    TABLE3
    COLUMN1 COLUMN2 COLUMN3 COLUMN4
    1 1 1 1
    2 2 2 2
    3 3 3 3
    4 4 4 4
    5 5 5 5


    测试项目使用的脚本如下:

    CHANNEL TESTCHANNEL
    {
    LOADER.TABLE2.LOADER1.TRUE 
    = EXCHANGER.TABLE2.E2,
    LOADER.TABLE2.LOADER1.FALSE 
    = EXCHANGER.TABLE2.E1
    }


    LOADER TABLE2 LOADER1
    {
    SQL 
    = SELECT * FROM TABLE2 WHERE COLUMN2 = :COLUMN2,
    :COLUMN2 
    = TABLE3.COLUMN1
    }

    EXCHANGER TABLE2 E2
    {
    NUM:COLUMN2 
    = TABLE2.COLUMN2 + 10
    }

    EXCHANGER TABLE2 E1
    {
    NUM:COLUMN2 
    = 991
    }

    • 输入模拟数据Table3,值如上。
    • 读取数据库,table2,column2 的值为table3.column1的值,根据是否读取成功分流。 (则samsara根据table3知道此处为多流,需要运行5次)
    • 如果读取成功,则Exchanger.Table2.E2。修改Table2.Column2的值,加10
    • 如果读取失败,则Exchanger.Table2.E1。初始化Table2.Column2的值,为991.

    运算结果:

    TABLE2
    COLUMN1 COLUMN2 COLUMN3 COLUMN4
    6 11 11 1
    7 12 12 2
    8 15 13 3
    991
    991

    由于table2.column2不含有值3、4,所以loader有2次读取失败,进行了2次Exchanger.Table2.E1.其余则进行了3次运算。结果正确。


    Refenrence:

    Samsara v2.0 高级技巧 辰 2007-11-27 00:49 阅读:2 评论:0  
    Samsara v2.0 打造ERP数据流脚本编程 —— 脚本规范 辰 2007-11-21 14:37 阅读:1223 评论:5  

     

    加入一起研究

    我想尝试推行一种以术易术的技术交流模式。
    所有参与者可以获得源代码,并且得到详细的解释,保证你们能够懂。
    但是需要大家用自己一项技术进行交换,同样提供详细的代码和解释。(或者参与Samsara新需求开发)

    对于samsara开源,我认为毫无意义。一堆我自己都觉得不漂亮的代码,大家想知道怎么写的就更难了。所以简单的代码开源没有意义,需要的就是“售后服务”。但是售后需要需要更多的投入,因此我想提出一种以术易术的技术交流模式。

    因此,如果你懂:
    。工作流引擎
    。RBAC权限系统
    。asp.net的安全框架
    。一套能够与c#交互的快速web开发框架(非asp.net语言)

    或者你愿意:
    。编写一个vs2005插件,能够输入智能提示和补全,提高samsara脚本编程效率

    又或者
    。对数据流有更有趣的想法,参与进来进行samsara v3.0的开发
    。有更有实用性的技术进行分享。

    那么咱们聊聊?
    reborn_zhang@Hotmail.com

  • 相关阅读:
    js---选择排序
    js----冒泡排序
    js---快速排序
    js---去重方法(二)
    js---去重方法(一)
    js--进度条
    随机生成6位数验证码
    倒计时
    别踩白块
    贪吃蛇小游戏
  • 原文地址:https://www.cnblogs.com/zc22/p/973519.html
Copyright © 2011-2022 走看看