Article Details
Id: | 21248 |
Product: | finPOWER Connect |
Type: | NEW |
Version: | 4.01.00 |
Opened: | 06/03/2024 |
Closed: | 06/03/2024 |
Released: | 29/04/2024 |
Job: | J033029 |
Business Layer; Documents; Utility function added to publish a Document and return it's binary file data
A new utility business layer function has been added to aid the creation of an ad-hoc document and return it's binary file data.
The new method is:
- finBL.DocumentFunctions.CreateUnsavedDocumentFromDocumentExecute
The following is a sample "General" type Script, demonstrating the use of this new function:
Public Function Main(parameters As ISKeyValueList) As Boolean
Dim FileData As Byte()
Dim FileName As String
Dim ParametersKvl As ISKeyValueList
' Assume Success
Main = True
ParametersKvl = finBL.CreateKeyValueList()
With ParametersKvl
.SetString("LetterContent", "this is an ad-hoc document")
End With
Main = finBL.DocumentFunctions.CreateUnsavedDocumentFromDocumentExecute("SAMPLE", ParametersKvl, FileData ,FileName)
If Main Then
Main = finBL.Runtime.FileUtilities.WriteFileFromByteArray("c:\temp\Sample.pdf", FileData)
End If
End Function
The following sample Document is coded "SAMPLE" and is based on the "Client Letter" Document (changed to a "General" Document) and therefore contains a "LetterContent" bookmark:
Option Explicit On
Option Strict On
' Objects
Private mDocument As finDocumentRO
Public Function Main(source As Object, eventId As String, eventArgs As ISKeyValueList, ByRef handled As Boolean, parameters As Object, ByRef returnValues As ISKeyValueList, ByRef text As String) As Boolean
Dim Success As Boolean
Dim WordDocument As ISWordDocument
' Assume Success
Success = True
' Initialise
mDocument = finBL.Documents(Mid(ScriptInfo.ScriptId, 10))
' Get Constants
With ScriptInfo.Constants
End With
' Handle Events
Select Case eventId
Case "Publish"
Success = CreateDocument(DirectCast(parameters, ISKeyValueList), WordDocument)
' Return Word Document
returnValues.SetObject("WordDocument", WordDocument)
End Select
Return Success
End Function
'#################################################################
' Create Document
'#################################################################
Private Function CreateDocument(parameters As ISKeyValueList,
ByRef wordDocument As ISWordDocument) As Boolean
Dim di As finDocumentRecipientDetailsItem
Dim Success As Boolean
Dim WordDocumentBookmarks As ISWordDocumentBookmarks
' Assume Success
Success = True
' Create Document Recipient Details
Success = mDocument.CreateAdHocDocumentRecipientDetailsItem(di, parameters)
' Get Bookmarks
WordDocumentBookmarks = di.WordDocument.GetBookmarks()
' Replace Standard Bookmarks
Success = di.UpdateStandardBookmarks(WordDocumentBookmarks)
' Replace Custom Bookmarks
If Success Then
ReplaceBookmarks(di, WordDocumentBookmarks)
End If
' Update Bookmarks
If Success Then
Success = di.WordDocument.UpdateBookmarks(WordDocumentBookmarks)
End If
' Record Word Document
If Success Then
wordDocument = di.WordDocument
End If
Return Success
End Function
'#################################################################
' CUSTOM BOOKMARKS
'#################################################################
Private Function ReplaceBookmarks(di As finDocumentRecipientDetailsItem,
wordDocumentBookmarks As ISWordDocumentBookmarks) As Boolean
Dim Success As Boolean
' Assume Success
Success = True
' Parameters
If Success Then
With wordDocumentBookmarks
.SetContentString("LetterContent", di.Parameters.GetString("LetterContent"))
End With
End If
Return Success
End Function