ERP 数据流脚本框架 Samsara v2.0 脚本规范 (修订稿)

 

脚本规范:


Samsara v2.0 框架一共包含 7大模块
数据模块:Exchanger, Spliter, Loader,Mapper
流转控制模块:Ifer,Switcher,Channel


Exchanger
 

EXCHANGER  [ TABLENAME ]   [ IDENTIFIER ]
{
[ COLUMNTYPE: ][ COLUMNNAME ]   =   [ EXPRESSION, ]
}

EXCHANGER TABLE1 T1
{
NUM:COLUMN1 
=  TABLE2.COLUMN1  +   MAX (TABLE3.COLUMN1)  +  SYS.SERIAL  +   @TIME
}


功能:
数据交换映射。

后续连接标记:
NEXT

COLUMNTYPE:
字段的类型,用于确认此字段的处理类型。
包括:NUM/STR/BOOL/NBOOL = 数字、字符、布尔、数字运算布尔

EXPRESSION:
表达式,包含各种标识符、函数符号。
标识符包括:TABLENAME.COLUMNNAME/@MARK/SYS.TYPE = 表标识、占位标识、系统标识
。表标识代表此数据来源于表
。占位标识代表此数据来源于此占位符代表的数据(于Mapper结合能构造通用模块)
。系统标识是Samsara默认的数据源,包括:SYS.NULL/SYS.SERIAL/SYS.DATETIME/SYS.PK.TABLENAME.COLUMNNAME
函数符号包括:MAX/MIN/AVERAGE/COUNT/POWER等。


Spliter
 

SPLITER  [ TABLENAME ]   [ IDENTIFIER ]
{
[ COLUMNTYPE: ][ COLUMNNAME ]   =   [ EXPRESSION, ]
}

SPLITER TABLE1 S1
{
NUM:COLUMN1 
=  TABLE1.COLUMN1  /   2 ,
COLUMN2 
=  TABLE2.COLUMN2
}

 

功能:
功能同EXCHANGER。

与EXCHANGER区别:
EXCHANGER是在原数据基础上运算,即原来存在table1,那么在原table1数据基础上进行运算然后返回给TABLE1
SPLITER在元数据基础上运算后生成一个新的副本取代原数据。

后续连接符号
OLD/NEW/NEXT

其他定义同上。


Loader
 

LOADER  [ TABLENAME ]   [ IDENTIFIER ]
{
SQL 
=   [ EXPRESSION ] ,
[ COLUMNTYPE ] : [ COLPARAM ]   =   [ EXPRESSION, ]
}

LOADER TABLE1 LOAD1
{
SQL 
=   SELECT   *   FROM  TABLE1  WHERE  COLUMN1  =  :COLUMN1,
NUM:COLUMN1 
=  TABLE2.COLUMN1  +   12
}

 

功能:
从数据库装载数据到Samrara进行运算,不需要用户提供。
COLPARAM就是SQL中的参数,用分号标识。

后续标志:
TRUE/FALSE/NEXT

其他:同上。


Mapper 

MAPPER  [ IDENTIFIER ]
{
[ MARK ]   =   [ EXPRESSION, ]
}

MAPPER MAPPER1
{
STR : @PERSON   =  TABLE2.COLUMN1  +  DEMO
}

 


功能:
把表达式运算结果赋值到标记,供后续模块使用。提高复用性。

后续标志:
NEXT

其他同上。


Ifer

IFER  [ IDENTIFIER ]
{
[ EXPRESSION ]
}

IFER I1
{
AND (( TABLE1.COLUMN1  +  TABLE1.COLUMN2 )  >   MAX (TABLE2.COLUMN1  *  TABLE2.COLUMN2))




功能:
根据表达式计算bool结果,然后根据结果控制后续。

后续符号:
TRUE/FALSE

EXPRESSION:
数字布尔、字符布尔运算表达式。包含函数AND / OR / 无.
AND表示输入的数据必须全部符合才判真、or则有真则真、无就是每次都判断。

例子:
例如订单子表如果价格>5的,那么生成入库单、否则生成送货单。这个就是无函数。
如果订单子表当所有的到货数量 == 要货数量,那么才订单确认,这个就是AND.

其他同上。

Switcher

SWITCHER  [ IDENTIFIER ]
{
[ CASE ]  :   [ EXPRESSION ]
}

SWITCHER SW1
{
CASE1 : TABLE1.COLUMN1 
==   12 ,
CASE2 : TABLE1.COLUMN1 
>   12 ,
CASE3 : TABLE1.COLUMN1 
<   12
}


功能:
是更加复杂的if,判断每个case,然后控制后续。

后续符号:
[CASE],用户指定。

其他同Ifer.

 
Channel

CHANNEL  [ IDENTIFIER ]
{
[ FROM ]   =   [ TO ]
}

CHANNEL CHANNEL1
{
EXCHANGER.TABLE1.E1.
NEXT   =  SPLITER.TABLE1.SP1,

SPLITER.TABLE1.SP1.OLD 
=  EXCHANGER.TABLE2.E1,
SPLITER.TABLE1.SP1.NEW 
=  EXCHANGER.TABLE2.E2
}


功能:
把各种模块进行组织,达到数据流效果。

 


 

你可能感兴趣的:(ERP)