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
}
功能:
把各種模塊進行組織,達到數據流效果。
?
?
轉載于:https://www.cnblogs.com/zc22/archive/2007/11/27/973396.html
總結
以上是生活随笔為你收集整理的ERP 数据流脚本框架 Samsara v2.0 脚本规范 (修订稿)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android账号同步系统的建立——Ac
- 下一篇: 幸福