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 BooleanDim FileData As Byte()Dim FileName As StringDim ParametersKvl As ISKeyValueList' Assume SuccessMain = TrueParametersKvl = finBL.CreateKeyValueList()With ParametersKvl.SetString("LetterContent", "this is an ad-hoc document")End WithMain = finBL.DocumentFunctions.CreateUnsavedDocumentFromDocumentExecute("SAMPLE", ParametersKvl, FileData ,FileName)If Main ThenMain = finBL.Runtime.FileUtilities.WriteFileFromByteArray("c:\temp\Sample.pdf", FileData)End IfEnd 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 OnOption Strict On' ObjectsPrivate mDocument As finDocumentROPublic 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 BooleanDim Success As BooleanDim WordDocument As ISWordDocument' Assume SuccessSuccess = True' InitialisemDocument = finBL.Documents(Mid(ScriptInfo.ScriptId, 10))' Get ConstantsWith ScriptInfo.ConstantsEnd With' Handle EventsSelect Case eventIdCase "Publish"Success = CreateDocument(DirectCast(parameters, ISKeyValueList), WordDocument)' Return Word DocumentreturnValues.SetObject("WordDocument", WordDocument)End SelectReturn SuccessEnd Function'#################################################################' Create Document'#################################################################Private Function CreateDocument(parameters As ISKeyValueList,ByRef wordDocument As ISWordDocument) As BooleanDim di As finDocumentRecipientDetailsItemDim Success As BooleanDim WordDocumentBookmarks As ISWordDocumentBookmarks' Assume SuccessSuccess = True' Create Document Recipient DetailsSuccess = mDocument.CreateAdHocDocumentRecipientDetailsItem(di, parameters)' Get BookmarksWordDocumentBookmarks = di.WordDocument.GetBookmarks()' Replace Standard BookmarksSuccess = di.UpdateStandardBookmarks(WordDocumentBookmarks)' Replace Custom BookmarksIf Success ThenReplaceBookmarks(di, WordDocumentBookmarks)End If' Update BookmarksIf Success ThenSuccess = di.WordDocument.UpdateBookmarks(WordDocumentBookmarks)End If' Record Word DocumentIf Success ThenwordDocument = di.WordDocumentEnd IfReturn SuccessEnd Function'#################################################################' CUSTOM BOOKMARKS'#################################################################Private Function ReplaceBookmarks(di As finDocumentRecipientDetailsItem,wordDocumentBookmarks As ISWordDocumentBookmarks) As BooleanDim Success As Boolean' Assume SuccessSuccess = True' ParametersIf Success ThenWith wordDocumentBookmarks.SetContentString("LetterContent", di.Parameters.GetString("LetterContent"))End WithEnd IfReturn SuccessEnd Function