Automation
Backend
1. Variables
ensure var VarConditionUpdateAssetRemove kind: condition deploy: fixedOnDeploy
value: "<root>
<stmt>${f:Details.TransactionType} == ${d:TransactionType.keyDebit}</stmt>
</root>"
sourceForm: EntityQuickBook
ensure var VarConditionUpdateAssetAdd kind: condition modules: ["Expense"] deploy: fixedOnDeploy
value: "<root>
<stmt>${f:Details.TransactionType} == ${d:TransactionType.keyCredit}</stmt>
</root>"
sourceForm: EntityQuickBook
2. Automation
a. AutomateQuikBookSheet
ensure automation AutomateQuikBookSheet kind: spreadsheet
modules: ["Expense"]
spreadsheet: QuikBooksSheet
b.BeforeInsert event
ensure event BeforeInsert fire: beforeInsert
c.CopyRowId step
ensure var VarMappingQuickBookCopyRowId kind: mapping
modules: ["Expense"]
deploy: fixedOnDeploy
fromForm: EntityQuickBook
toForm: EntityQuickBook
fieldMappingMap: {
'updateVariant': 'updateForced',
'emptyVariant': 'ignoreEmptyField',
'map': {
'${f:SysRowId}': 'Details.QuickBookRowId'
}
}
ensure step CopyRowId kind: copyField
mappingVar: VarMappingQuickBookCopyRowId
d.GetSpreadsheetRows step
ensure var VarOutputMappingGetSpreadsheetRowId kind: mapping
deploy: fixedOnDeploy
fromForm: EntityAsset
toForm: EntityQuickBook
fieldMappingMap: {
'updateVariant': 'updateForced',
'emptyVariant': 'ignoreEmptyField',
'map': {
'${f:SysRowId}': 'Details.AssetRowId'
}
}
ensure step GetSpreadsheetRows kind: getSpreadsheetRows
targetSpreadsheet: AssetSheet
targetToSourceMappingVar: VarOutputMappingGetSpreadsheetRowId
e.AfterInsert event
ensure event AfterInsert fire: afterInsert
f.UpdateAssetRemove step
ensure step UpdateAssetRemove kind: updateLogNumber
executionConditionVar: VarConditionUpdateAssetRemove
operation: subtract
value: "${f:Details.TotalAmount}"
rowField: Details.AssetRowId
targetSpreadsheet: AssetSheet
targetField: Details.NetAsset
g.UpdateAssetAdd step
ensure step UpdateAssetAdd kind: updateLogNumber
executionConditionVar: VarConditionUpdateAssetAdd
operation: add
value: "${f:Details.TotalAmount}"
rowField: Details.AssetRowId
targetSpreadsheet: AssetSheet
targetField: Details.NetAsset
h.BeforeUpdate event
ensure event BeforeUpdate fire: beforeUpdate
ensure pipelineVar PipelinePrevAmount form: FormPipelineAmount
i.CopyTotalAmount step
ensure var VarMappingQuickBookCopyTotalAmount kind: mapping
deploy: fixedOnDeploy
fromForm: EntityQuickBook
toForm: FormPipelineAmount
fieldMappingMap: {
'updateVariant': 'updateForced',
'emptyVariant': 'ignoreEmptyField',
'map': {
'${f:Details.TotalAmount}': 'Details.CurrentAmount'
}
}
ensure step CopyTotalAmount kind: copyField
targetPipelineVar: PipelinePrevAmount
mappingVar: VarMappingQuickBookCopyTotalAmount
j.GetSpreadsheetRows step
ensure var VarTargetSpreadsheetGetSpreadsheetRows kind: condition
modules: ["Expense"]
deploy: fixedOnDeploy
value: "<root>
<stmt>${in:Details.QuickBookRowId} == ${f:Details.QuickBookRowId}</stmt>
</root>"
sourceForm: EntityQuickBook
inputForm: EntityQuickBook
ensure var VarOutputMappingGetSpreadsheetRows kind: mapping
modules: ["Expense"]
deploy: fixedOnDeploy
fromForm: EntityQuickBook
toForm: FormPipelineAmount
fieldMappingMap: {
'updateVariant': 'updateForced',
'emptyVariant': 'ignoreEmptyField',
'map': {
'${f:Details.TotalAmount}': 'Details.PrevAmount'
}
}
ensure step GetSpreadsheetRows kind: getSpreadsheetRows
targetSpreadsheet: QuikBooksSheet
targetSpreadsheetFilterVar: VarTargetSpreadsheetGetSpreadsheetRows
outputFormPipelineVar: PipelinePrevAmount
targetToSourceMappingVar: VarOutputMappingGetSpreadsheetRows
k.CalculateDebitAmountDiff step
ensure step CalculateDebitAmountDiff kind: calculateFormulas
formulaFormPipelineVar: PipelinePrevAmount
ensure newFormula AmountDiff
assignToField: Details.AmountDiff
formula: "${f:CurrentAmount} - ${f:PrevAmount}"
l.AfterUpdate event
ensure event AfterUpdate fire: afterUpdate
m.GetNetAssetSpreadsheetRows step
ensure var VarOutputMappingGetNetAssetRowId kind: mapping
deploy: fixedOnDeploy
fromForm: EntityAsset
toForm: FormPipelineAmount
fieldMappingMap: {
'updateVariant': 'updateForced',
'emptyVariant': 'ignoreEmptyField',
'map': {
'${f:SysRowId}': 'Details.AssetRowId'
}
}
ensure step GetNetAssetSpreadsheetRows kind: getSpreadsheetRows
targetSpreadsheet: AssetSheet
targetToSourceMappingVar: VarOutputMappingGetNetAssetRowId
n.UpdateAssetRemove step
ensure step UpdateAssetRemove kind: updateLogNumber
executionConditionVar: VarConditionUpdateAssetRemove
operation: subtract
targetSpreadsheet: AssetSheet
targetField: Details.NetAsset
o.UpdateAssetAdd step
ensure step UpdateAssetAdd kind: updateLogNumber
executionConditionVar: VarConditionUpdateAssetAdd
operation: add
targetSpreadsheet: AssetSheet
targetField: Details.NetAsset
p.BeforeRemove event
ensure event BeforeRemove fire: beforeRemove
q.UpdateAssetRemove step
ensure step UpdateAssetDebit kind: updateLogNumber
executionConditionVar: VarConditionUpdateAssetRemove
operation: add
value: "${f:Details.TotalAmount}"
rowField: Details.AssetRowId
targetSpreadsheet: AssetSheet
targetField: Details.NetAsset
r.UpdateAssetCredit step
ensure step UpdateAssetCredit kind: updateLogNumber
executionConditionVar: VarConditionUpdateAssetAdd
operation: subtract
value: "${f:Details.TotalAmount}"
rowField: Details.AssetRowId
targetSpreadsheet: AssetSheet
targetField: Details.NetAsset