tags: Bonita BPM
COMMON 基本介紹
- Type:
- org.bonitasoft.engine.bpm.contract.FileInputValue
- org.bonitasoft.engine.bpm.document.Document
- org.bonitasoft.engine.bpm.document.DocumentValue
- byte[]
- Operations右側Script能接受的Type:FileInputValue, DocumentValue
- 是否需要使用API呼叫Document類型的變數,請參考:在Script呼叫Document 檔案
Document轉byte[]
- 使用情況:可能用在Connectors的Groovy Script 需要輸出檔案時,
由於Connectors無法直接呼叫後端document變數,故須使用API呼叫 - Example
//test為後端document變數
Document document = apiAccessor.getProcessAPI().getDocumentAtProcessInstantiation(processInstanceId, "test")
String contentStorageId = document.getContentStorageId()
byte[] file = apiAccessor.getProcessAPI().getDocumentContent(contentStorageId)
- 補充:副檔名(e.g.
.jpg
,.png
)的取法
- substring(int beginIndex):return 從beginIndex開始算起的字串
- lastIndexOf(String str):return 該指定字串最後一次出現的 index
//test為後端document變數
Document document = apiAccessor.getProcessAPI().getDocumentAtProcessInstantiation(processInstanceId, "test")
String contentFilename = document.getContentFileName()
String filename = contentFilename.substring(contentFilename.lastIndexOf("."))
FileInputValue轉DocumentValue
建構子:DocumentValue(byte[] content, String mimeType, String fileName)
- content:即 FileInputValue 的 byte[] 型態的資料
- mimeType:表示檔案的格式或類型
- mimeType和副檔名不太相同,例如:
.jpg
的mimeType為image/jpeg
- 參考資料:MIME types
- mimeType和副檔名不太相同,例如:
- fileName:檔案名稱
//testDocumentInput為前端contract變數
return new DocumentValue(
testDocumentInput.getContent(),
testDocumentInput.getContentType(),
testDocumentInput.getFileName())
Document轉DocumentValue
建構子:DocumentValue(byte[] content, String mimeType, String fileName)
- content:即 Document 的 byte[] 型態的資料,參考 Document轉byte[]
- mimeType:表示檔案的格式或類型
- mimeType和副檔名不太相同,例如:
.jpg
的mimeType為image/jpeg
- 參考資料:MIME types
- mimeType和副檔名不太相同,例如:
- fileName:檔案名稱
- 補充:getDocumentContent(String storageId)
- storageId:The identifier of the document to retrieve the content from
//test為後端document變數
return new DocumentValue(
apiAccessor.getProcessAPI().getDocumentContent(test.getContentStorageId()),
test.getContentMimeType(),
test.getContentFileName())
Document轉FileInputValue
建構子:FileInputValue(String fileName, byte[] content)
- fileName:檔案名稱
- content:即 Document 的 byte[] 型態的資料,參考 Document轉byte[]
//test為後端document變數
return new FileInputValue(
test.contentFileName,
apiAccessor.processAPI.getDocumentContent(test.contentStorageId))
Related Link 相關連結
- Document 檔案上傳:
https://spicyboyd.blogspot.com/2018/01/bonita-bpmdocument.html - Document 檔案下載:
https://spicyboyd.blogspot.com/2018/01/bonita-bpmdocument_15.html - 在Script呼叫Document 檔案:
https://spicyboyd.blogspot.com/2018/01/bonita-bpmscriptdocument_16.html
Reference 參考資料
- 官方文件:https://documentation.bonitasoft.com/bonita/7.6/documents
- String:https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#lastIndexOf(java.lang.String)
- DocumentValue:https://documentation.bonitasoft.com/javadoc/api/6.5/org/bonitasoft/engine/bpm/document/DocumentValue.html
- MIME types:
https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types - FileInputValue:
https://documentation.bonitasoft.com/javadoc/api/7.4/org/bonitasoft/engine/bpm/contract/FileInputValue.html
沒有留言:
張貼留言