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

  • 相关阅读:
    Quicksum -SilverN
    uva 140 bandwidth (好题) ——yhx
    uva 129 krypton factors ——yhx
    uva 524 prime ring problem——yhx
    uva 10976 fractions again(水题)——yhx
    uva 11059 maximum product(水题)——yhx
    uva 725 division(水题)——yhx
    uva 11853 paintball(好题)——yhx
    uva 1599 ideal path(好题)——yhx
    uva 1572 self-assembly ——yhx
  • 原文地址:https://www.cnblogs.com/zc22/p/973519.html
Copyright © 2011-2022 走看看