67 lines
1.8 KiB
TypeScript
67 lines
1.8 KiB
TypeScript
import { actionAddins } from ".";
|
|
import { IAction, IActionResult, IActionNode, IActionProperty, IField ,IContext, IVarName} from "../types/ActionTypes";
|
|
/**
|
|
* アクションの属性定義
|
|
*/
|
|
interface IDatetimeGetterProps {
|
|
/**変数の名前 */
|
|
verName:IVarName;
|
|
}
|
|
/**
|
|
* 現在日時を取得するアクション
|
|
*/
|
|
export class DatetimeGetterAction implements IAction {
|
|
name: string;
|
|
actionProps: IActionProperty[];
|
|
props: IDatetimeGetterProps;
|
|
constructor() {
|
|
this.name = "現在日時";
|
|
this.actionProps = [];
|
|
this.props = {
|
|
verName:{name:''}
|
|
}
|
|
this.register();
|
|
}
|
|
/**
|
|
* アクションの実行を呼び出す
|
|
* @param actionNode
|
|
* @param event
|
|
* @returns
|
|
*/
|
|
async process(actionNode: IActionNode, event: any,context:IContext): Promise<IActionResult> {
|
|
let result = {
|
|
canNext: true,
|
|
result: false
|
|
};
|
|
|
|
try {
|
|
//属性設定を取得する
|
|
this.actionProps = actionNode.actionProps;
|
|
|
|
if (!('verName' in actionNode.ActionValue) ) {
|
|
return result
|
|
}
|
|
this.props = actionNode.ActionValue as IDatetimeGetterProps;
|
|
|
|
let today = new Date();
|
|
|
|
if(this.props.verName && this.props.verName.name!==''){
|
|
context.variables[this.props.verName.name]=today.toISOString();
|
|
}
|
|
|
|
return result;
|
|
|
|
} catch (error) {
|
|
event.error = error;
|
|
console.error(error);
|
|
result.canNext = false;
|
|
return result;
|
|
}
|
|
};
|
|
register(): void {
|
|
actionAddins[this.name] = this;
|
|
}
|
|
|
|
}
|
|
new DatetimeGetterAction();
|