站長留言

  • ✅ 本站維護及更新歷史紀錄,詳情請參考公告
  • ✅ 有任何意見、想法,歡迎留言給Spicy知道喔
  • ✅ 固定於每周一至周五更新Blogger文章,周末不定期
程式Bonita BPM

【Bonita BPM】Document 檔案的各種Type

tags: Bonita BPM

COMMON 基本介紹

  1. Type:
  • org.bonitasoft.engine.bpm.contract.FileInputValue
  • org.bonitasoft.engine.bpm.document.Document
  • org.bonitasoft.engine.bpm.document.DocumentValue
  • byte[]

  1. Operations右側Script能接受的Type:FileInputValue, DocumentValue
  2. 是否需要使用API呼叫Document類型的變數,請參考:在Script呼叫Document 檔案

Document轉byte[]

  1. 使用情況:可能用在Connectors的Groovy Script 需要輸出檔案時,
    由於Connectors無法直接呼叫後端document變數,故須使用API呼叫
  2. Example
//test為後端document變數
Document document = apiAccessor.getProcessAPI().getDocumentAtProcessInstantiation(processInstanceId, "test")
String contentStorageId = document.getContentStorageId()

byte[] file = apiAccessor.getProcessAPI().getDocumentContent(contentStorageId)
  1. 補充:副檔名(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
  • 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
  • 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))
  1. Document 檔案上傳:
    https://spicyboyd.blogspot.com/2018/01/bonita-bpmdocument.html
  2. Document 檔案下載:
    https://spicyboyd.blogspot.com/2018/01/bonita-bpmdocument_15.html
  3. 在Script呼叫Document 檔案:
    https://spicyboyd.blogspot.com/2018/01/bonita-bpmscriptdocument_16.html

Reference 參考資料

  1. 官方文件:https://documentation.bonitasoft.com/bonita/7.6/documents
  2. String:https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#lastIndexOf(java.lang.String)
  3. DocumentValue:https://documentation.bonitasoft.com/javadoc/api/6.5/org/bonitasoft/engine/bpm/document/DocumentValue.html
  4. MIME types:
    https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types
  5. FileInputValue:
    https://documentation.bonitasoft.com/javadoc/api/7.4/org/bonitasoft/engine/bpm/contract/FileInputValue.html

沒有留言:

張貼留言

本網站建議使用電腦或平板瀏覽