DigiOffice Gateway Web Services

<back to all web services

GenerateDocumentBatch

Queue multiple (corporate identity) document(s) to generate later via the DigiOffice background agent.

Requires Authentication
namespace IDB.API.Common

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

    [<AllowNullLiteral>]
    type GenerateDocumentBatchResponse() = 
        ///<summary>
        ///ID of the batch
        ///</summary>
        [<ApiMember(Description="ID of the batch", IsRequired=true)>]
        member val BatchID:Guid = new Guid() with get,set

        ///<summary>
        ///Document processed count
        ///</summary>
        [<ApiMember(Description="Document processed count", IsRequired=true)>]
        member val Processed:Int32 = new Int32() with get,set

        ///<summary>
        ///Track and Trace url
        ///</summary>
        [<ApiMember(Description="Track and Trace url", IsRequired=true)>]
        member val TrackAndTraceUrl:String = null with get,set

    [<AllowNullLiteral>]
    type UserReference() = 
        member val ID:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val LoginName:String = null with get,set
        member val UserPrincipalName:String = null with get,set
        member val FullName:String = null with get,set
        member val EmailAddress:String = null with get,set
        member val GlobalID:Nullable<Guid> = new Nullable<Guid>() with get,set

    [<AllowNullLiteral>]
    type DocumentgeneratorDocumentReference() = 
        member val ID:Nullable<Guid> = new Nullable<Guid>() with get,set
        member val Name:String = null with get,set
        member val GlobalID:Nullable<Guid> = new Nullable<Guid>() with get,set

    [<AllowNullLiteral>]
    type RegistrationProfileReference() = 
        member val ID:Guid = new Guid() with get,set
        member val GlobalID:Nullable<Guid> = new Nullable<Guid>() with get,set

    [<AllowNullLiteral>]
    type DocumentReference() = 
        member val ID:Nullable<Guid> = new Nullable<Guid>() with get,set
        member val Code:String = null with get,set
        member val VersionCode:String = null with get,set
        member val RootDocID:Nullable<Guid> = new Nullable<Guid>() with get,set
        member val InternalInvoiceCode:String = null with get,set
        member val CompanyNumber:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val DocumentTypeID:String = null with get,set
        member val InvoiceType:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val RegProfCatID:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val GlobalID:Nullable<Guid> = new Nullable<Guid>() with get,set
        member val ExternalID:String = null with get,set
        member val ExternNr:String = null with get,set
        member val InternNummer:String = null with get,set

    [<AllowNullLiteral>]
    type MessageQueueReference() = 
        member val ID:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val GlobalID:Nullable<Guid> = new Nullable<Guid>() with get,set

    [<AllowNullLiteral>]
    type ConfigurationSource() = 
        ///<summary>
        ///Document genereren op basis van een DocGenDocument.
        ///</summary>
        member val DocumentgeneratorDocument:DocumentgeneratorDocumentReference = null with get,set

        ///<summary>
        ///Document genereren op basis van een RegistratieProfiel.
        ///</summary>
        member val RegistrationProfile:RegistrationProfileReference = null with get,set

        ///<summary>
        ///Use existing document registration.
        ///</summary>
        member val RegisteredDocument:DocumentReference = null with get,set

        ///<summary>
        ///Use draft document registration.
        ///</summary>
        member val DraftDocumentRegistration:MessageQueueReference = null with get,set

        member val DocumentgeneratorType:Type = null with get,set
        ///<summary>
        ///DocumentgeneratorType voor bijvoorbeeld Word of Email.
        ///</summary>
        member val DocumentgeneratorTypeName:String = null with get,set

        member val TemplateExtension:String = null with get,set
        member val OutputExtension:String = null with get,set

    type VersioningType =
        | New = 0
        | Change = 1
        | Primary = 2
        | Secondary = 3

    [<AllowNullLiteral>]
    type CompanyReference() = 
        member val ID:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val Number:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val GlobalID:Nullable<Guid> = new Nullable<Guid>() with get,set
        member val ExternalID:String = null with get,set

    [<AllowNullLiteral>]
    type RelationReference() = 
        member val ID:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val CreditorNumber:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val DebtorNumber:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val GlobalLocationNumber:String = null with get,set
        member val GlobalID:Nullable<Guid> = new Nullable<Guid>() with get,set
        member val ExternalID:String = null with get,set

    [<AllowNullLiteral>]
    type PersonReference() = 
        member val ID:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val Number:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val GlobalID:Nullable<Guid> = new Nullable<Guid>() with get,set
        member val ExternalID:String = null with get,set

    [<AllowNullLiteral>]
    type ProjectReference() = 
        member val ID:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val Code:String = null with get,set
        member val TypeExternalID:String = null with get,set
        member val CompanyNumber:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val GlobalID:Nullable<Guid> = new Nullable<Guid>() with get,set
        member val ExternalID:String = null with get,set

    [<AllowNullLiteral>]
    type SubProject() = 
        member val Project:ProjectReference = null with get,set

    [<AllowNullLiteral>]
    type ContactPersonReference() = 
        member val ID:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val GlobalID:Nullable<Guid> = new Nullable<Guid>() with get,set
        member val ExternalID:String = null with get,set
        member val RelationID:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val PersonID:Nullable<Int32> = new Nullable<Int32>() with get,set

    type SignerType =
        | MainSigner = 0
        | AdditionalSigner = 1
        | ConfirmationDeclarant = 2
        | AdditionalConfirmationDeclarant = 3

    [<AllowNullLiteral>]
    type Signer() = 
        member val User:UserReference = null with get,set
        member val Person:PersonReference = null with get,set
        member val Relation:RelationReference = null with get,set
        member val ContactPerson:ContactPersonReference = null with get,set
        member val RegisteredDocument:DocumentReference = null with get,set
        member val Type:SignerType = new SignerType() with get,set
        member val ClosingSentence:String = null with get,set
        member val Name:String = null with get,set
        member val Subsidiary:String = null with get,set
        member val Function:String = null with get,set
        member val Department:String = null with get,set
        member val PhoneNumber:String = null with get,set
        member val FaxNumber:String = null with get,set
        member val MobileNumber:String = null with get,set
        member val Email:String = null with get,set
        member val CustomText:String = null with get,set
        member val Signature:ResizeArray<String> = new ResizeArray<String>() with get,set
        member val SignatureVisible:Nullable<Boolean> = new Nullable<Boolean>() with get,set
        member val Visible:Nullable<Boolean> = new Nullable<Boolean>() with get,set

    [<AllowNullLiteral>]
    type Field() = 
        member val Name:String = null with get,set
        member val OldValue:String = null with get,set
        member val Value:String = null with get,set
        member val Title:String = null with get,set

    [<AllowNullLiteral>]
    type AttachmentData() = 
        member val ContentType:String = null with get,set
        ///<summary>
        ///Data base64-encoded zonder padding.
        ///</summary>
        member val Data:String = null with get,set

    [<AllowNullLiteral>]
    type Attachment() = 
        member val Name:String = null with get,set
        member val AttachmentData:AttachmentData = null with get,set

    [<AllowNullLiteral>]
    type RegistrationMetaData() = 
        ///<summary>
        ///Hoe moet het versiebeheer worden toegepast?
        ///</summary>
        [<ApiMember(Description="Hoe moet het versiebeheer worden toegepast?")>]
        member val Versioning:Nullable<VersioningType> = new Nullable<VersioningType>() with get,set

        ///<summary>
        ///Previous document will be used for registration of a new version.
        ///</summary>
        [<ApiMember(Description="Previous document will be used for registration of a new version.")>]
        member val PreviousDocument:DocumentReference = null with get,set

        ///<summary>
        ///Company
        ///</summary>
        [<ApiMember(Description="Company")>]
        member val Company:CompanyReference = null with get,set

        ///<summary>
        ///Relation
        ///</summary>
        [<ApiMember(Description="Relation")>]
        member val Relation:RelationReference = null with get,set

        ///<summary>
        ///Person
        ///</summary>
        [<ApiMember(Description="Person")>]
        member val Person:PersonReference = null with get,set

        ///<summary>
        ///Project
        ///</summary>
        [<ApiMember(Description="Project")>]
        member val Project:ProjectReference = null with get,set

        ///<summary>
        ///Sub projects
        ///</summary>
        [<ApiMember(AllowMultiple=true, Description="Sub projects")>]
        member val SubProjects:ResizeArray<SubProject> = new ResizeArray<SubProject>() with get,set

        ///<summary>
        ///Signers
        ///</summary>
        [<ApiMember(AllowMultiple=true, Description="Signers")>]
        member val Signers:ResizeArray<Signer> = new ResizeArray<Signer>() with get,set

        ///<summary>
        ///Bevat velden die gebruikt worden als additionele metadata voor het document, naast de vaste koppelingen zoals gebruiker, project en relatie.
        ///</summary>
        [<ApiMember(AllowMultiple=true, Description="Bevat velden die gebruikt worden als additionele metadata voor het document, naast de vaste koppelingen zoals gebruiker, project en relatie.")>]
        member val Fields:ResizeArray<Field> = new ResizeArray<Field>() with get,set

        ///<summary>
        ///Attachments die aan de documentregistratie gekoppeld moet worden.
        ///</summary>
        [<ApiMember(AllowMultiple=true, Description="Attachments die aan de documentregistratie gekoppeld moet worden.")>]
        member val Attachments:ResizeArray<Attachment> = new ResizeArray<Attachment>() with get,set

    [<AllowNullLiteral>]
    type CommonEntityBaseReference() = 
        member val ID:String = null with get,set
        member val ExternalID:String = null with get,set
        member val GlobalID:Nullable<Guid> = new Nullable<Guid>() with get,set

    type Direction =
        | Left2Right = 0
        | UpLeft2DownRight = 45
        | Up2Down = 90
        | UpRight2DownLeft = 135
        | Right2Left = 180
        | DownRight2UpLeft = 225
        | Down2Up = 270
        | DownLeft2UpRight = 315

    [<AllowNullLiteral>]
    type Watermark() = 
        member val Text:String = null with get,set
        member val FontFamilyText:String = null with get,set
        member val FontFamily:FontFamily = null with get,set
        member val Direction:Nullable<Direction> = new Nullable<Direction>() with get,set
        member val StrokeColorText:String = null with get,set
        member val StrokeColor:Color = new Color() with get,set
        member val FillColorText:String = null with get,set
        member val FillColor:Color = new Color() with get,set

    [<AllowNullLiteral>]
    type BatchDocument() = 
        ///<summary>
        ///ConfigurationSource: DocumentgeneratorDocument of RegistratieProfiel.
        ///</summary>
        [<ApiMember(Description="ConfigurationSource: DocumentgeneratorDocument of RegistratieProfiel.", IsRequired=true)>]
        member val ConfigurationSource:ConfigurationSource = null with get,set

        ///<summary>
        ///Set references to bind with Registration profile
        ///</summary>
        [<ApiMember(Description="Set references to bind with Registration profile", IsRequired=true)>]
        member val RegistrationMetaData:RegistrationMetaData = null with get,set

        ///<summary>
        ///Entity instance used as data source parent, if not exists default is Document registration instance.
        ///</summary>
        [<ApiMember(Description="Entity instance used as data source parent, if not exists default is Document registration instance.")>]
        member val DataSourceEntity:CommonEntityBaseReference = null with get,set

        ///<summary>
        ///Hier kan de (dynamische) data voor het document geplaatst worden, de data kan middels tekstblokken en placeholders worden geplaatst.Het formaat binnen CustomData staat vrij maar vereist een 'root' element.
        ///</summary>
        [<ApiMember(Description="Hier kan de (dynamische) data voor het document geplaatst worden, de data kan middels tekstblokken en placeholders worden geplaatst.Het formaat binnen CustomData staat vrij maar vereist een 'root' element.")>]
        member val CustomData:String = null with get,set

        ///<summary>
        ///Insert a watermark into the document.
        ///</summary>
        [<ApiMember(Description="Insert a watermark into the document.")>]
        member val Watermark:Watermark = null with get,set

        ///<summary>
        ///Type van het gegenereerde document, bijvoorbeeld: Doc, Docx, Pdf.
        ///</summary>
        [<ApiMember(Description="Type van het gegenereerde document, bijvoorbeeld: Doc, Docx, Pdf.")>]
        member val OutputType:String = null with get,set

    ///<summary>
    ///Queue multiple (corporate identity) document(s) to generate later via the DigiOffice background agent.
    ///</summary>
    [<Api(Description="Queue multiple (corporate identity) document(s) to generate later via the DigiOffice background agent.")>]
    [<AllowNullLiteral>]
    type GenerateDocumentBatch() = 
        ///<summary>
        ///Owner of the badge (DigiOffice user)
        ///</summary>
        [<ApiMember(Description="Owner of the badge (DigiOffice user)")>]
        member val User:UserReference = null with get,set

        ///<summary>
        ///Description of the badge
        ///</summary>
        [<ApiMember(Description="Description of the badge", IsRequired=true)>]
        member val Description:String = null with get,set

        ///<summary>
        ///Corporate identity document(s) to be generate
        ///</summary>
        [<ApiMember(AllowMultiple=true, Description="Corporate identity document(s) to be generate", IsRequired=true)>]
        member val Documents:ResizeArray<BatchDocument> = new ResizeArray<BatchDocument>() with get,set

        ///<summary>
        ///Generated document is not registered in DigiOffice DMS.
        ///</summary>
        [<ApiMember(Description="Generated document is not registered in DigiOffice DMS.")>]
        member val DontRegister:Boolean = new Boolean() with get,set

        ///<summary>
        ///Send the generated e-mail via the e-mail queue.
        ///</summary>
        [<ApiMember(Description="Send the generated e-mail via the e-mail queue.")>]
        member val SendMail:Boolean = new Boolean() with get,set

F# GenerateDocumentBatch 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 /jsv/reply/GenerateDocumentBatch HTTP/1.1 
Host: digiofficeapigateway.deltares.nl 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	User: 
	{
		ID: 0,
		LoginName: String,
		UserPrincipalName: String,
		FullName: String,
		EmailAddress: String,
		GlobalID: 00000000-0000-0000-0000-000000000000
	},
	Description: String,
	Documents: 
	[
		{
			ConfigurationSource: 
			{
				DocumentgeneratorDocument: 
				{
					ID: 00000000-0000-0000-0000-000000000000,
					Name: String
				},
				RegistrationProfile: {},
				RegisteredDocument: 
				{
					ID: 00000000-0000-0000-0000-000000000000,
					Code: String,
					VersionCode: String,
					RootDocID: 00000000-0000-0000-0000-000000000000,
					InternalInvoiceCode: String,
					CompanyNumber: 0,
					DocumentTypeID: String,
					InvoiceType: 0,
					RegProfCatID: 0,
					GlobalID: 00000000-0000-0000-0000-000000000000,
					ExternalID: String
				},
				DraftDocumentRegistration: 
				{
					ID: 0
				},
				TemplateExtension: String,
				OutputExtension: String
			},
			RegistrationMetaData: 
			{
				Versioning: New,
				PreviousDocument: 
				{
					ID: 00000000-0000-0000-0000-000000000000,
					Code: String,
					VersionCode: String,
					RootDocID: 00000000-0000-0000-0000-000000000000,
					InternalInvoiceCode: String,
					CompanyNumber: 0,
					DocumentTypeID: String,
					InvoiceType: 0,
					RegProfCatID: 0,
					GlobalID: 00000000-0000-0000-0000-000000000000,
					ExternalID: String
				},
				Company: 
				{
					ID: 0,
					Number: 0,
					GlobalID: 00000000-0000-0000-0000-000000000000,
					ExternalID: String
				},
				Relation: 
				{
					ID: 0,
					CreditorNumber: 0,
					DebtorNumber: 0,
					GlobalLocationNumber: String,
					GlobalID: 00000000-0000-0000-0000-000000000000,
					ExternalID: String
				},
				Person: 
				{
					ID: 0,
					Number: 0,
					GlobalID: 00000000-0000-0000-0000-000000000000,
					ExternalID: String
				},
				Project: 
				{
					ID: 0,
					Code: String,
					TypeExternalID: String,
					CompanyNumber: 0,
					GlobalID: 00000000-0000-0000-0000-000000000000,
					ExternalID: String
				},
				SubProjects: 
				[
					{
						Project: 
						{
							ID: 0,
							Code: String,
							TypeExternalID: String,
							CompanyNumber: 0,
							GlobalID: 00000000-0000-0000-0000-000000000000,
							ExternalID: String
						}
					}
				],
				Signers: 
				[
					{
						User: 
						{
							ID: 0,
							LoginName: String,
							UserPrincipalName: String,
							FullName: String,
							EmailAddress: String,
							GlobalID: 00000000-0000-0000-0000-000000000000
						},
						Person: 
						{
							ID: 0,
							Number: 0,
							GlobalID: 00000000-0000-0000-0000-000000000000,
							ExternalID: String
						},
						Relation: 
						{
							ID: 0,
							CreditorNumber: 0,
							DebtorNumber: 0,
							GlobalLocationNumber: String,
							GlobalID: 00000000-0000-0000-0000-000000000000,
							ExternalID: String
						},
						ContactPerson: 
						{
							ID: 0,
							GlobalID: 00000000-0000-0000-0000-000000000000,
							ExternalID: String,
							RelationID: 0,
							PersonID: 0
						},
						RegisteredDocument: 
						{
							ID: 00000000-0000-0000-0000-000000000000,
							Code: String,
							VersionCode: String,
							RootDocID: 00000000-0000-0000-0000-000000000000,
							InternalInvoiceCode: String,
							CompanyNumber: 0,
							DocumentTypeID: String,
							InvoiceType: 0,
							RegProfCatID: 0,
							GlobalID: 00000000-0000-0000-0000-000000000000,
							ExternalID: String
						},
						Type: MainSigner,
						ClosingSentence: String,
						Name: String,
						Subsidiary: String,
						Function: String,
						Department: String,
						PhoneNumber: String,
						FaxNumber: String,
						MobileNumber: String,
						Email: String,
						CustomText: String,
						Signature: 
						[
							String
						],
						SignatureVisible: False,
						Visible: False
					}
				],
				Fields: 
				[
					{
						Name: String,
						OldValue: String,
						Value: String,
						Title: String = String -> String
					}
				],
				Attachments: 
				[
					{
						Name: String,
						AttachmentData: 
						{
							ContentType: String,
							Data: String
						}
					}
				]
			},
			DataSourceEntity: 
			{
				ID: String,
				ExternalID: String,
				GlobalID: 00000000-0000-0000-0000-000000000000
			},
			CustomData: String,
			Watermark: 
			{
				Text: String,
				Direction: Left2Right
			},
			OutputType: String
		}
	],
	DontRegister: False,
	SendMail: False
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	Processed: 0,
	TrackAndTraceUrl: String
}