/** * @file Process class to manage/run workflow rule and approval process * @author Shinichi Tomita */ import Connection from './connection'; import { ProcessRules, Schema } from './types'; /** * */ export type ProcessRuleDefinition = { id: string; name: string; object: string; }; /** * */ export type ProcessRuleTriggerResult = { success: true; } | { success: false; errors: Array<{ message: string; }>; }; /** * A class which manages process (workflow) rules */ export declare class ProcessRule { _conn: Connection; /** * */ constructor(conn: Connection); /** * Get all process rule definitions registered to sobjects */ list(): Promise; /** * Trigger process rule for given entities */ trigger(contextIds: string | string[]): import("./types").StreamPromise<{ errors: null; success: true; } | { errors: any[]; success: false; }>; } /** * */ export type ApprovalProcessDefinition = { id: string; name: string; object: string; sortOrder: number; description: string | null; }; /** * */ export type ApprovalProcessRequestResult = { success: true; actorIds: string[]; entityId: string; instanceId: string; instanceStatus: string; newWorkItemIds: string[]; } | { success: false; errors: Array<{ message: string; }>; }; /** * */ export type ApprovalProcessActionOptions = { processDefinitionNameOrId?: string; skipEntryCriteria?: boolean; }; /** * A class which manages approval processes */ export declare class ApprovalProcess { _conn: Connection; /** * */ constructor(conn: Connection); /** * Get all approval process definitions registered to sobjects */ list(): Promise<{ [index: string]: ApprovalProcessDefinition; }>; /** * Send bulk requests for approval process */ request(requests: Array>): import("./types").StreamPromise; /** * Create approval process request * * @private */ _createRequest(actionType: 'Submit' | 'Approve' | 'Reject', contextId: string, comments?: string, options?: ApprovalProcessActionOptions): ApprovalProcessRequest; /** * Submit approval request for an item */ submit(contextId: string, comments?: string, options?: ApprovalProcessActionOptions): ApprovalProcessRequest; /** * Approve approval request for an item */ approve(workitemId: string, comments?: string, options?: ApprovalProcessActionOptions): ApprovalProcessRequest; /** * Reject approval request for an item */ reject(workitemId: string, comments?: string, options?: ApprovalProcessActionOptions): ApprovalProcessRequest; } /** * */ export type ApprovalProcessRequestConfig = { actionType: 'Submit' | 'Approve' | 'Reject'; contextId: string; comments?: string; nextApproverIds?: string[]; processDefinitionNameOrId?: string; skipEntryCriteria?: boolean; }; /** * A class representing approval process request */ declare class ApprovalProcessRequest { _process: ApprovalProcess; _request: ApprovalProcessRequestConfig; _promise: Promise | undefined; constructor(process: ApprovalProcess, request: ApprovalProcessRequestConfig); /** * Promise/A+ interface * http://promises-aplus.github.io/promises-spec/ */ then(onResolve?: (res: ApprovalProcessRequestResult) => U | PromiseLike | null, onReject?: (err: any) => U | PromiseLike | null): void; } /** * A class which manages process rules and approval processes */ export declare class Process { rule: ProcessRule; approval: ApprovalProcess; /** * */ constructor(conn: Connection); } export default Process;