tvpl.api

<back to all web services

CreateWorkflowStepRequest

Requires Authentication
The following routes are available for this service:
POST/WorkflowStep/update

export class BasicUploadedFile
{
    public fileName: string;
    public filekey: string;
    public fileUrl: string;
    public checksum: string;
    public eTag: string;
    public fileSize: number;

    public constructor(init?: Partial<BasicUploadedFile>) { (Object as any).assign(this, init); }
}

export class UploadedFiles extends BasicUploadedFile
{
    public id?: number;
    public uploadedFile: string;
    public subDocumentId?: number;
    public stepId?: number;
    public code: number;

    public constructor(init?: Partial<UploadedFiles>) { super(init); (Object as any).assign(this, init); }
}

export class BasicSignerConfig
{
    public subDocumentId?: number;
    public departmentId?: number;
    public signerType: number;
    public signerRefId: number;
    // @Ignore()
    public signerRefText?: string;

    public actionType: number;
    public orderIndex: number;

    public constructor(init?: Partial<BasicSignerConfig>) { (Object as any).assign(this, init); }
}

export class SignerConfig extends BasicSignerConfig
{
    public id: number;
    public documentId: number;
    public stepId?: number;

    public constructor(init?: Partial<SignerConfig>) { super(init); (Object as any).assign(this, init); }
}

export class WorkFlowProfile
{
    public id: number;
    public name?: string;
    public fullName?: string;
    public email?: string;
    public departmentId?: number;
    public avatar?: string;
    public telephone?: string;
    public birthday?: string;
    public confirmStatus?: number;
    public confirmStatusText?: string;
    public signAt?: string;
    public signedFileId?: number;
    public originalFileId?: number;
    public signedFileName?: string;
    public isSigned: boolean;
    public signStatusText?: string;

    public constructor(init?: Partial<WorkFlowProfile>) { (Object as any).assign(this, init); }
}

export class Roles
{
    public id: number;
    // @StringLength(50)
    public name: string;

    public createdAt?: string;
    public deletedAt?: string;
    public updatedAt?: string;
    public updatedBy?: number;
    public deletedBy?: number;
    public createdBy?: number;
    // @Ignore()
    public permission?: string[];

    public constructor(init?: Partial<Roles>) { (Object as any).assign(this, init); }
}

export class SignerConfigDetail extends SignerConfig
{
    public profile?: WorkFlowProfile;
    public role?: Roles;

    public constructor(init?: Partial<SignerConfigDetail>) { super(init); (Object as any).assign(this, init); }
}

export class StepAttached
{
    public id: number;
    public documentCode?: string;
    public title?: string;
    public isSequentialSigning?: boolean;
    public pendingSignFile?: UploadedFiles;
    public originalFile?: UploadedFiles;
    public signerConfigs?: SignerConfigDetail[];

    public constructor(init?: Partial<StepAttached>) { (Object as any).assign(this, init); }
}

export class WorkflowStep
{
    public id: number;
    // @References("typeof(tvpl.data.Models.Document)")
    public workflowId: number;

    public stepOrder?: number;
    public statusId?: number;
    // @Required()
    // @StringLength(255)
    public stepName: string;

    // @Required()
    public isRequired: boolean;

    public slaLegalValue?: number;
    public slaLegalIsByDay?: boolean;
    public slaInternalValue?: number;
    public slaInternalIsByDay?: boolean;
    public requireAttachment: boolean;
    public isUsingForm?: boolean;
    // @Required()
    public description: string;

    public createdBy: number;
    // @Ignore()
    public departmentIds?: number[];

    // @Ignore()
    public mainAssigneeIds?: number[];

    // @Ignore()
    public coDepartmentIds?: number[];

    // @Ignore()
    public supportingAssigneeIds?: number[];

    // @Ignore()
    public stepBasisDocumentIds?: number[];

    // @Ignore()
    public attachedDocuments?: StepAttached[];

    public constructor(init?: Partial<WorkflowStep>) { (Object as any).assign(this, init); }
}

export class WorkflowStepResponse implements IResponseRequest
{
    public code: number;
    public message: string;
    public insertedId: number;

    public constructor(init?: Partial<WorkflowStepResponse>) { (Object as any).assign(this, init); }
}

export class CreateWorkflowStepRequest extends WorkflowStep
{

    public constructor(init?: Partial<CreateWorkflowStepRequest>) { super(init); (Object as any).assign(this, init); }
}

TypeScript CreateWorkflowStepRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /WorkflowStep/update HTTP/1.1 
Host: etc-api.vsmlab.vn 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	id: 0,
	workflowId: 0,
	stepOrder: 0,
	statusId: 0,
	stepName: String,
	isRequired: False,
	slaLegalValue: 0,
	slaLegalIsByDay: False,
	slaInternalValue: 0,
	slaInternalIsByDay: False,
	requireAttachment: False,
	isUsingForm: False,
	description: String,
	createdBy: 0,
	departmentIds: 
	[
		0
	],
	mainAssigneeIds: 
	[
		0
	],
	coDepartmentIds: 
	[
		0
	],
	supportingAssigneeIds: 
	[
		0
	],
	stepBasisDocumentIds: 
	[
		0
	],
	attachedDocuments: 
	[
		{
			id: 0,
			documentCode: String,
			title: String,
			isSequentialSigning: False,
			pendingSignFile: 
			{
				id: 0,
				uploadedFile: String,
				subDocumentId: 0,
				stepId: 0,
				code: 0,
				fileName: String,
				filekey: String,
				fileUrl: String,
				checksum: String,
				eTag: String,
				fileSize: 0
			},
			originalFile: 
			{
				id: 0,
				uploadedFile: String,
				subDocumentId: 0,
				stepId: 0,
				code: 0,
				fileName: String,
				filekey: String,
				fileUrl: String,
				checksum: String,
				eTag: String,
				fileSize: 0
			},
			signerConfigs: 
			[
				{
					profile: 
					{
						id: 0,
						name: String,
						fullName: String,
						email: String,
						departmentId: 0,
						avatar: String,
						telephone: String,
						birthday: "0001-01-01T00:00:00.0000000+07:06",
						confirmStatus: 0,
						confirmStatusText: String,
						signAt: "0001-01-01T00:00:00.0000000+07:06",
						signedFileId: 0,
						originalFileId: 0,
						signedFileName: String,
						isSigned: False,
						signStatusText: String
					},
					role: 
					{
						id: 0,
						name: String,
						createdAt: "0001-01-01T00:00:00.0000000+07:06",
						deletedAt: "0001-01-01T00:00:00.0000000+07:06",
						updatedAt: "0001-01-01T00:00:00.0000000+07:06",
						updatedBy: 0,
						deletedBy: 0,
						createdBy: 0,
						permission: 
						[
							String
						]
					},
					id: 0,
					documentId: 0,
					stepId: 0,
					subDocumentId: 0,
					departmentId: 0,
					signerType: 0,
					signerRefId: 0,
					signerRefText: String,
					actionType: 0,
					orderIndex: 0
				}
			]
		}
	]
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	code: 0,
	message: String,
	insertedId: 0
}