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

 

posted @ 2007-11-27 08:59    阅读(1254)  评论(0编辑  收藏  举报
IT民工