DigiOffice API Services Services

<back to all web services

GenerateDocumentBatch

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

Requires Authentication
import java.math.*
import java.util.*
import java.io.InputStream
import net.servicestack.client.*


/**
* Queue multiple (corporate identity) document(s) to generate later via the DigiOffice background agent.
*/
@Api(Description="Queue multiple (corporate identity) document(s) to generate later via the DigiOffice background agent.")
open class GenerateDocumentBatch : IGenerateDocumentBatch
{
    /**
    * Owner of the badge (DigiOffice user)
    */
    @ApiMember(Description="Owner of the badge (DigiOffice user)")
    override var User:UserReference? = null

    /**
    * Description of the badge
    */
    @ApiMember(Description="Description of the badge", IsRequired=true)
    override var Description:String? = null

    /**
    * Corporate identity document(s) to be generate
    */
    @ApiMember(AllowMultiple=true, Description="Corporate identity document(s) to be generate", IsRequired=true)
    override var Documents:ArrayList<BatchDocument> = ArrayList<BatchDocument>()

    /**
    * Generated document is not registered in DigiOffice DMS.
    */
    @ApiMember(Description="Generated document is not registered in DigiOffice DMS.")
    override var DontRegister:Boolean? = null

    /**
    * Send the generated e-mail via the e-mail queue.
    */
    @ApiMember(Description="Send the generated e-mail via the e-mail queue.")
    override var SendMail:Boolean? = null
}

open class UserReference : IEntityReference
{
    open var ID:Int? = null
    open var LoginName:String? = null
    open var UserPrincipalName:String? = null
    open var FullName:String? = null
    open var EmailAddress:String? = null
    override var GlobalID:UUID? = null
}

open class BatchDocument : IDocument
{
    /**
    * ConfigurationSource: DocumentgeneratorDocument of RegistratieProfiel.
    */
    @ApiMember(Description="ConfigurationSource: DocumentgeneratorDocument of RegistratieProfiel.", IsRequired=true)
    override var ConfigurationSource:ConfigurationSource? = null

    /**
    * Set references to bind with Registration profile
    */
    @ApiMember(Description="Set references to bind with Registration profile", IsRequired=true)
    override var RegistrationMetaData:RegistrationMetaData? = null

    /**
    * Entity instance used as data source parent, if not exists default is Document registration instance.
    */
    @ApiMember(Description="Entity instance used as data source parent, if not exists default is Document registration instance.")
    override var DataSourceEntity:CommonEntityBaseReference? = null

    /**
    * 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.
    */
    @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.")
    override var CustomData:String? = null

    /**
    * Insert a watermark into the document.
    */
    @ApiMember(Description="Insert a watermark into the document.")
    override var Watermark:Watermark? = null

    /**
    * Type van het gegenereerde document, bijvoorbeeld: Doc, Docx, Pdf.
    */
    @ApiMember(Description="Type van het gegenereerde document, bijvoorbeeld: Doc, Docx, Pdf.")
    override var OutputType:String? = null
}

open class ConfigurationSource
{
    /**
    * Document genereren op basis van een DocGenDocument.
    */
    open var DocumentgeneratorDocument:DocumentgeneratorDocumentReference? = null
    /**
    * Document genereren op basis van een RegistratieProfiel.
    */
    open var RegistrationProfile:RegistrationProfileReference? = null
    /**
    * Use existing document registration.
    */
    open var RegisteredDocument:DocumentReference? = null
    /**
    * Use documentInfo.
    */
    open var UnRegisteredDocument:DocumentInfo? = null
    /**
    * Use draft document registration.
    */
    open var DraftDocumentRegistration:MessageQueueReference? = null
    open var DocumentgeneratorType:Class? = null
    /**
    * DocumentgeneratorType voor bijvoorbeeld Word of Email.
    */
    open var DocumentgeneratorTypeName:String? = null
    open var TemplateExtension:String? = null
    open var OutputExtension:String? = null
}

open class DocumentgeneratorDocumentReference : IEntityReference
{
    open var ID:UUID? = null
    open var Name:String? = null
    override var GlobalID:UUID? = null
}

open class RegistrationProfileReference : IEntityReference
{
    open var ID:UUID? = null
    override var GlobalID:UUID? = null
}

open class DocumentReference : IEntityReference
{
    open var ID:UUID? = null
    open var Code:String? = null
    open var VersionCode:String? = null
    open var RootDocID:UUID? = null
    open var InternalInvoiceCode:String? = null
    open var CompanyNumber:Int? = null
    open var DocumentTypeID:String? = null
    open var InvoiceType:Int? = null
    open var RegProfCatID:Int? = null
    override var GlobalID:UUID? = null
    open var ExternalID:String? = null
    open var ExternNr:String? = null
    open var ExternVersieNr:String? = null
    open var InternNummer:String? = null
}

open class DocumentInfo
{
    open var Action:DocInfoAction? = null
    open var Mode:DocInfoMode? = null
    open var Version:String? = null
    open var SilentMode:DocInfoSilentMode? = null
}

enum class DocInfoAction
{
    Create,
    Register,
}

enum class DocInfoMode
{
    New,
    Change,
    NewVersionPrimary,
    NewVersionSecondary,
    NewFromExistingDocument,
}

enum class DocInfoSilentMode
{
    Off,
    AllowUserInteraction,
    DoNotAllowUserInteraction,
}

open class MessageQueueReference : IEntityReference
{
    open var ID:Int? = null
    override var GlobalID:UUID? = null
}

open class RegistrationMetaData
{
    /**
    * Hoe moet het versiebeheer worden toegepast?
    */
    @ApiMember(Description="Hoe moet het versiebeheer worden toegepast?")
    open var Versioning:VersioningType? = null

    /**
    * Previous document will be used for registration of a new version.
    */
    @ApiMember(Description="Previous document will be used for registration of a new version.")
    open var PreviousDocument:DocumentReference? = null

    /**
    * Company
    */
    @ApiMember(Description="Company")
    open var Company:CompanyReference? = null

    /**
    * Relation
    */
    @ApiMember(Description="Relation")
    open var Relation:RelationReference? = null

    /**
    * Person
    */
    @ApiMember(Description="Person")
    open var Person:PersonReference? = null

    /**
    * Project
    */
    @ApiMember(Description="Project")
    open var Project:ProjectReference? = null

    /**
    * Sub projects
    */
    @ApiMember(AllowMultiple=true, Description="Sub projects")
    open var SubProjects:ArrayList<SubProject>? = null

    /**
    * Signers
    */
    @ApiMember(AllowMultiple=true, Description="Signers")
    open var Signers:ArrayList<Signer>? = null

    /**
    * Bevat velden die gebruikt worden als additionele metadata voor het document, naast de vaste koppelingen zoals gebruiker, project en relatie.
    */
    @ApiMember(AllowMultiple=true, Description="Bevat velden die gebruikt worden als additionele metadata voor het document, naast de vaste koppelingen zoals gebruiker, project en relatie.")
    open var Fields:ArrayList<Field>? = null

    /**
    * Attachments die aan de documentregistratie gekoppeld moet worden.
    */
    @ApiMember(AllowMultiple=true, Description="Attachments die aan de documentregistratie gekoppeld moet worden.")
    open var Attachments:ArrayList<Attachment>? = null
}

enum class VersioningType
{
    New,
    Change,
    Primary,
    Secondary,
}

open class CompanyReference : IEntityReference
{
    open var ID:Int? = null
    open var Number:Int? = null
    override var GlobalID:UUID? = null
    open var ExternalID:String? = null
}

open class RelationReference : IEntityReference
{
    open var ID:Int? = null
    open var CreditorNumber:Int? = null
    open var DebtorNumber:Int? = null
    open var GlobalLocationNumber:String? = null
    override var GlobalID:UUID? = null
    open var ExternalID:String? = null
}

open class PersonReference : IEntityReference
{
    open var ID:Int? = null
    open var Number:Int? = null
    override var GlobalID:UUID? = null
    open var ExternalID:String? = null
}

open class ProjectReference : IEntityReference
{
    open var ID:Int? = null
    open var Code:String? = null
    open var TypeExternalID:String? = null
    open var CompanyNumber:Int? = null
    override var GlobalID:UUID? = null
    open var ExternalID:String? = null
}

open class SubProject
{
    open var Project:ProjectReference? = null
}

open class Signer
{
    open var MainSignerPostFix:String? = null
    open var User:UserReference? = null
    open var Person:PersonReference? = null
    open var Relation:RelationReference? = null
    open var ContactPerson:ContactPersonReference? = null
    open var RegisteredDocument:DocumentReference? = null
    open var Type:SignerType? = null
    open var ClosingSentence:String? = null
    open var Name:String? = null
    open var Subsidiary:String? = null
    open var Function:String? = null
    open var Department:String? = null
    open var PhoneNumber:String? = null
    open var FaxNumber:String? = null
    open var MobileNumber:String? = null
    open var Email:String? = null
    open var CustomText:String? = null
    open var Signature:ArrayList<String>? = null
    open var Initials:ArrayList<String>? = null
    open var SignatureVisible:Boolean? = null
    open var InitialsVisible:Boolean? = null
    open var Visible:Boolean? = null
}

open class ContactPersonReference : IEntityReference
{
    open var ID:Int? = null
    override var GlobalID:UUID? = null
    open var ExternalID:String? = null
    open var RelationID:Int? = null
    open var PersonID:Int? = null
}

enum class SignerType
{
    MainSigner,
    AdditionalSigner,
    ConfirmationDeclarant,
    AdditionalConfirmationDeclarant,
}

open class Field
{
    open var Name:String? = null
    open var OldValue:String? = null
    open var Value:String? = null
    open var Title:String? = null
}

open class Attachment
{
    open var Name:String? = null
    open var AttachmentData:AttachmentData? = null
}

open class AttachmentData
{
    open var ContentType:String? = null
    /**
    * Data base64-encoded zonder padding.
    */
    open var Data:String? = null
}

open class CommonEntityBaseReference : IEntityReference
{
    open var ID:String? = null
    open var ExternalID:String? = null
    override var GlobalID:UUID? = null
}

open class Watermark
{
    open var Text:String? = null
    open var FontFamilyName:String? = null
    open var FontFamily:FontFamily? = null
    open var Direction:Direction? = null
    open var StrokeColorText:String? = null
    open var StrokeColor:Color? = null
    open var FillColorText:String? = null
    open var FillColor:Color? = null
}

enum class Direction(val value:Int)
{
    Left2Right(0),
    UpLeft2DownRight(45),
    Up2Down(90),
    UpRight2DownLeft(135),
    Right2Left(180),
    DownRight2UpLeft(225),
    Down2Up(270),
    DownLeft2UpRight(315),
}

open class GenerateDocumentBatchResponse : IGenerateDocumentBatchResponse
{
    /**
    * ID of the batch
    */
    @ApiMember(Description="ID of the batch", IsRequired=true)
    override var BatchID:UUID? = null

    /**
    * Document processed count
    */
    @ApiMember(Description="Document processed count", IsRequired=true)
    override var Processed:Int? = null

    /**
    * Track and Trace url
    */
    @ApiMember(Description="Track and Trace url", IsRequired=true)
    override var TrackAndTraceUrl:String? = null
}

Kotlin 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: test-do-services.klokgroep.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,
					ExternVersieNr: String
				},
				UnRegisteredDocument: 
				{
					Action: Create,
					Mode: New,
					Version: String,
					SilentMode: Off
				},
				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,
					ExternVersieNr: 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: 
				[
					{
						MainSignerPostFix: String,
						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,
							ExternVersieNr: 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
						],
						Initials: 
						[
							String
						],
						SignatureVisible: False,
						InitialsVisible: 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,
				FontFamilyName: Arial,
				FontFamily: 
				{
					Name: Arial
				},
				Direction: Left2Right
			},
			OutputType: String
		}
	],
	DontRegister: False,
	SendMail: False
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	Processed: 0,
	TrackAndTraceUrl: String
}