tvpl.api

<back to all web services

GetSingleWorkflowStepRequest

Requires Authentication
The following routes are available for this service:
GET/WorkflowStep/{WorkflowId}/{StepId}
namespace tvpl.api.ServiceModel

open System
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations

    [<AllowNullLiteral>]
    type BasicUploadedFile() = 
        member val FileName:String = null with get,set
        member val Filekey:String = null with get,set
        member val FileUrl:String = null with get,set
        member val Checksum:String = null with get,set
        member val ETag:String = null with get,set
        member val FileSize:Int64 = new Int64() with get,set

    [<AllowNullLiteral>]
    type UploadedFiles() = 
        inherit BasicUploadedFile()
        member val Id:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val UploadedFile:String = null with get,set
        member val SubDocumentId:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val StepId:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val Code:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type BasicSignerConfig() = 
        member val SubDocumentId:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val DepartmentId:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val SignerType:Byte = new Byte() with get,set
        member val SignerRefId:Int32 = new Int32() with get,set
        [<Ignore>]
        member val SignerRefText:String = null with get,set

        member val ActionType:Byte = new Byte() with get,set
        member val OrderIndex:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type SignerConfig() = 
        inherit BasicSignerConfig()
        member val Id:Int32 = new Int32() with get,set
        member val DocumentId:Int32 = new Int32() with get,set
        member val StepId:Nullable<Int32> = new Nullable<Int32>() with get,set

    [<AllowNullLiteral>]
    type WorkFlowProfile() = 
        member val Id:Int32 = new Int32() with get,set
        member val Name:String = null with get,set
        member val FullName:String = null with get,set
        member val Email:String = null with get,set
        member val DepartmentId:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val Avatar:String = null with get,set
        member val Telephone:String = null with get,set
        member val Birthday:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val ConfirmStatus:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val ConfirmStatusText:String = null with get,set
        member val ConfirmAt:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val SignAt:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val SignedFileId:Nullable<Int64> = new Nullable<Int64>() with get,set
        member val OriginalFileId:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val SignedFileName:String = null with get,set
        member val IsSigned:Boolean = new Boolean() with get,set
        member val SignStatusText:String = null with get,set
        member val Comment:String = null with get,set

    [<AllowNullLiteral>]
    type Roles() = 
        member val Id:Int32 = new Int32() with get,set
        [<StringLength(50)>]
        member val Name:String = null with get,set

        member val CreatedAt:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val DeletedAt:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val UpdatedAt:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val UpdatedBy:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val DeletedBy:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val CreatedBy:Nullable<Int32> = new Nullable<Int32>() with get,set
        [<Ignore>]
        member val Permission:ResizeArray<String> = new ResizeArray<String>() with get,set

    [<AllowNullLiteral>]
    type SignerConfigDetail() = 
        inherit SignerConfig()
        member val Profile:WorkFlowProfile = null with get,set
        member val Role:Roles = null with get,set

    [<AllowNullLiteral>]
    type StepAttached() = 
        member val Id:Int32 = new Int32() with get,set
        member val DocumentCode:String = null with get,set
        member val Title:String = null with get,set
        member val IsSequentialSigning:Nullable<Boolean> = new Nullable<Boolean>() with get,set
        member val PendingSignFile:UploadedFiles = null with get,set
        member val OriginalFile:UploadedFiles = null with get,set
        member val SignerConfigs:ResizeArray<SignerConfigDetail> = new ResizeArray<SignerConfigDetail>() with get,set

    [<AllowNullLiteral>]
    type WorkflowStep() = 
        member val Id:Int32 = new Int32() with get,set
        [<References(typeof<Document>)>]
        member val WorkflowId:Int32 = new Int32() with get,set

        member val StepOrder:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val StatusId:Nullable<Int32> = new Nullable<Int32>() with get,set
        [<Required>]
        [<StringLength(255)>]
        member val StepName:String = null with get,set

        [<Required>]
        member val IsRequired:Boolean = new Boolean() with get,set

        member val SLALegalValue:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val SLALegalIsByDay:Nullable<Boolean> = new Nullable<Boolean>() with get,set
        member val SLAInternalValue:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val SLAInternalIsByDay:Nullable<Boolean> = new Nullable<Boolean>() with get,set
        member val RequireAttachment:Boolean = new Boolean() with get,set
        member val IsUsingForm:Nullable<Boolean> = new Nullable<Boolean>() with get,set
        [<Required>]
        member val Description:String = null with get,set

        member val CreatedBy:Int32 = new Int32() with get,set
        member val UpdatedAt:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val DefaultAttachedDocumentId:Nullable<Int32> = new Nullable<Int32>() with get,set
        [<Ignore>]
        member val DepartmentIds:ResizeArray<Int32> = new ResizeArray<Int32>() with get,set

        [<Ignore>]
        member val MainAssigneeIds:ResizeArray<Int32> = new ResizeArray<Int32>() with get,set

        [<Ignore>]
        member val CoDepartmentIds:ResizeArray<Int32> = new ResizeArray<Int32>() with get,set

        [<Ignore>]
        member val SupportingAssigneeIds:ResizeArray<Int32> = new ResizeArray<Int32>() with get,set

        [<Ignore>]
        member val StepBasisDocumentIds:ResizeArray<Int32> = new ResizeArray<Int32>() with get,set

        [<Ignore>]
        member val AttachedDocuments:ResizeArray<StepAttached> = new ResizeArray<StepAttached>() with get,set

        [<Ignore>]
        member val AttachedFiles:ResizeArray<UploadedFiles> = new ResizeArray<UploadedFiles>() with get,set

    type CategoryTypes =
        | Department = 0
        | PartyGroup = 1
        | DocGroup = 2
        | DocType = 3
        | IssuingAgency = 4
        | Status = 5
        | Subjects = 6
        | Workflow = 7
        | WorkStatus = 8
        | StepStatus = 9
        | SignStatus = 10

    [<AllowNullLiteral>]
    type CreateCategoryModel() = 
        member val Name:String = null with get,set
        member val LongName:String = null with get,set
        member val Description:String = null with get,set
        member val Type:CategoryTypes = new CategoryTypes() with get,set
        member val IsParty:Boolean = new Boolean() with get,set
        [<Ignore>]
        member val ChildList:ResizeArray<Int32> = new ResizeArray<Int32>() with get,set

    [<AllowNullLiteral>]
    type Category() = 
        inherit CreateCategoryModel()
        member val Id:Int32 = new Int32() with get,set
        member val Level:Int32 = new Int32() with get,set
        member val Key:String = null with get,set
        member val SortOrder:Int32 = new Int32() with get,set
        member val LastUpdate:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        [<Ignore>]
        member val Children:ResizeArray<Category> = new ResizeArray<Category>() with get,set

    [<AllowNullLiteral>]
    type SimpleDocumentRelation() = 
        member val Id:Int32 = new Int32() with get,set
        member val Title:String = null with get,set
        member val DocumentCode:String = null with get,set
        member val PublicationDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val IsSequentialSigning:Nullable<Boolean> = new Nullable<Boolean>() with get,set
        member val StatusText:String = null with get,set
        member val StatusKey:String = null with get,set
        member val DocumentTypeId:Nullable<Int32> = new Nullable<Int32>() with get,set

    [<AllowNullLiteral>]
    type WorkflowStepDetail() = 
        inherit WorkflowStep()
        member val Departments:ResizeArray<Category> = new ResizeArray<Category>() with get,set
        member val CoDepartments:ResizeArray<Category> = new ResizeArray<Category>() with get,set
        member val BasisDocuments:ResizeArray<SimpleDocumentRelation> = new ResizeArray<SimpleDocumentRelation>() with get,set
        member val ReferenceDocuments:ResizeArray<SimpleDocumentRelation> = new ResizeArray<SimpleDocumentRelation>() with get,set
        member val MainAssignees:ResizeArray<WorkFlowProfile> = new ResizeArray<WorkFlowProfile>() with get,set
        member val SupportingAssignees:ResizeArray<WorkFlowProfile> = new ResizeArray<WorkFlowProfile>() with get,set
        member val StatusKey:String = null with get,set
        member val StatusText:String = null with get,set
        [<Ignore>]
        member val CanRead:Nullable<Boolean> = new Nullable<Boolean>() with get,set

        [<Ignore>]
        member val CanWrite:Nullable<Boolean> = new Nullable<Boolean>() with get,set

        [<Ignore>]
        member val CanUpload:Nullable<Boolean> = new Nullable<Boolean>() with get,set

        member val ReasonReturn:String = null with get,set
        member val ReturnDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set

    [<AllowNullLiteral>]
    type GetSingleWorkflowStepResponse() = 
        member val Code:Int32 = new Int32() with get,set
        member val Message:String = null with get,set
        member val Data:WorkflowStepDetail = null with get,set

    [<AllowNullLiteral>]
    type GetSingleWorkflowStepRequest() = 
        member val WorkflowId:Int32 = new Int32() with get,set
        member val StepId:Int32 = new Int32() with get,set

F# GetSingleWorkflowStepRequest 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.

GET /WorkflowStep/{WorkflowId}/{StepId} HTTP/1.1 
Host: etc-api.vsmlab.vn 
Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	code: 0,
	message: String,
	data: 
	{
		departments: 
		[
			{
				id: 0,
				level: 0,
				key: String,
				sortOrder: 0,
				lastUpdate: "0001-01-01T00:00:00.0000000+07:06",
				children: 
				[
					{
						id: 0,
						level: 0,
						key: String,
						sortOrder: 0,
						lastUpdate: "0001-01-01T00:00:00.0000000+07:06",
						children: 
						[
							{
								id: 0,
								level: 0,
								key: String,
								sortOrder: 0,
								lastUpdate: "0001-01-01T00:00:00.0000000+07:06",
								name: String,
								longName: String,
								description: String,
								type: Department,
								isParty: False,
								childList: 
								[
									0
								]
							}
						],
						name: String,
						longName: String,
						description: String,
						type: Department,
						isParty: False,
						childList: 
						[
							0
						]
					}
				],
				name: String,
				longName: String,
				description: String,
				type: Department,
				isParty: False,
				childList: 
				[
					0
				]
			}
		],
		coDepartments: 
		[
			{
				id: 0,
				level: 0,
				key: String,
				sortOrder: 0,
				lastUpdate: "0001-01-01T00:00:00.0000000+07:06",
				children: 
				[
					{
						id: 0,
						level: 0,
						key: String,
						sortOrder: 0,
						lastUpdate: "0001-01-01T00:00:00.0000000+07:06",
						children: 
						[
							{
								id: 0,
								level: 0,
								key: String,
								sortOrder: 0,
								lastUpdate: "0001-01-01T00:00:00.0000000+07:06",
								name: String,
								longName: String,
								description: String,
								type: Department,
								isParty: False,
								childList: 
								[
									0
								]
							}
						],
						name: String,
						longName: String,
						description: String,
						type: Department,
						isParty: False,
						childList: 
						[
							0
						]
					}
				],
				name: String,
				longName: String,
				description: String,
				type: Department,
				isParty: False,
				childList: 
				[
					0
				]
			}
		],
		basisDocuments: 
		[
			{
				id: 0,
				title: String,
				documentCode: String,
				publicationDate: "0001-01-01T00:00:00.0000000+07:06",
				isSequentialSigning: False,
				statusText: String,
				statusKey: String,
				documentTypeId: 0
			}
		],
		referenceDocuments: 
		[
			{
				id: 0,
				title: String,
				documentCode: String,
				publicationDate: "0001-01-01T00:00:00.0000000+07:06",
				isSequentialSigning: False,
				statusText: String,
				statusKey: String,
				documentTypeId: 0
			}
		],
		mainAssignees: 
		[
			{
				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,
				confirmAt: "0001-01-01T00:00:00.0000000+07:06",
				signAt: "0001-01-01T00:00:00.0000000+07:06",
				signedFileId: 0,
				originalFileId: 0,
				signedFileName: String,
				isSigned: False,
				signStatusText: String,
				comment: String
			}
		],
		supportingAssignees: 
		[
			{
				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,
				confirmAt: "0001-01-01T00:00:00.0000000+07:06",
				signAt: "0001-01-01T00:00:00.0000000+07:06",
				signedFileId: 0,
				originalFileId: 0,
				signedFileName: String,
				isSigned: False,
				signStatusText: String,
				comment: String
			}
		],
		statusKey: String,
		statusText: String,
		canRead: False,
		canWrite: False,
		canUpload: False,
		reasonReturn: String,
		returnDate: "0001-01-01T00:00:00.0000000+07:06",
		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,
		updatedAt: "0001-01-01T00:00:00.0000000+07:06",
		defaultAttachedDocumentId: 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,
							confirmAt: "0001-01-01T00:00:00.0000000+07:06",
							signAt: "0001-01-01T00:00:00.0000000+07:06",
							signedFileId: 0,
							originalFileId: 0,
							signedFileName: String,
							isSigned: False,
							signStatusText: String,
							comment: 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
					}
				]
			}
		],
		attachedFiles: 
		[
			{
				id: 0,
				uploadedFile: String,
				subDocumentId: 0,
				stepId: 0,
				code: 0,
				fileName: String,
				filekey: String,
				fileUrl: String,
				checksum: String,
				eTag: String,
				fileSize: 0
			}
		]
	}
}