Praca z treścią dokumentu

Do pracy z treścią dokumentów można używać typu danych ECMContentStream, który opakowuje strumień treści i zwraca informacje o strumieniu. Strumień treści jest strumieniem danych, który zawiera treść dokumentu, na przykład dokument procesora tekstu lub obraz.
Typ danych ECMContentStream jest używany w czterech następujących operacjach systemów Enterprise Content Management (ECM):
  • Wpisz dokument
  • Utwórz dokument
  • Pobierz treść dokumentu
  • Ustaw treść dokumentu

Informacje na temat tych operacji znajdują się w temacie Odwzorowanie danych w operacjach zarządzania treścią w przedsiębiorstwie.

Właściwości typu danych ECMContentStream są opisane w następującej tabeli:

Tabela 1. Właściwości typu danych ECMContentStream
Nazwa właściwości Opis
contentLength Długość pierwotnej (niezakodowanej) treści w bajtach. Gdy ta właściwość jest ustawiona, długość musi być wyrażona liczbą dodatnią. Jeśli długość jest nieznana, właściwości tej nie wolno ustawiać.
mimeType Typ MIME strumienia treści. W przypadku podstawowej treści dokumentu, typ mime powinien być zgodny z właściwością cmis:contentStreamMimeType. Na przykład application/pdf.
fileName Nazwa pliku strumienia treści. W przypadku podstawowej treści dokumentu, nazwa pliku powinna być zgodna z właściwością cmis:contentStreamFileName.
zarządzanie Wartość dokumentu. Jej typem musi być String Base64 i musi być zakodowane w standardzie UTF-8.
Ograniczenie:

Przykłady będą działać tylko w tradycyjnych systemach IBM Business Automation Workflow , a nie w kontenerowych systemach przepływu pracy. Informacje na ten temat zawiera odsyłacz do nieaktualnego składnika: https://www.ibm.com/docs/baw/22.x?topic=examples-calling-java-through-javascript-deprecated

Poniższego przykładowego fragmentu kodu można używać w kroku skryptu do ustawiania wartości łańcuchowej w obiekcie ECMContentStream:
// Script sample code to set and encode the document content
var value = "abc";
var bytesValue = new Packages.java.lang.String(value).getBytes("UTF-8");
tw.local.contentStream = new tw.object.ECMContentStream();
tw.local.contentStream.contentLength = bytesValue.length;
tw.local.contentStream.mimeType = "text/plain";
tw.local.contentStream.content = Packages.javax.xml.bind.DatatypeConverter.printBase64Binary(bytesValue);
Poniższego przykładowego fragmentu kodu można używać w kroku skryptu do pobierania wartości łańcuchowej z obiektu ECMContentStream:
// Script sample code to get and decode the document content
var bytesValue = Packages.javax.xml.bind.DatatypeConverter.parseBase64Binary(tw.local.contentStream.content);
var value = new Packages.java.lang.String(bytesValue, "UTF-8");
Poniższych przykładowych fragmentów kodu można używać w kroku skryptu do zapisywania zawartości pliku do obiektu ECMContentStream:
// Script sample code to set and encode the document content from a file
var file = new Packages.java.io.File(tw.local.fileName);
var bytesValue = Packages.org.apache.commons.io.FileUtils.readFileToByteArray(file);

tw.local.contentStream = new tw.object.ECMContentStream();
tw.local.contentStream.contentLength = file.length();
tw.local.contentStream.fileName = file.getName();
tw.local.contentStream.mimeType = "text/plain"; // provide your designated mime type here
tw.local.contentStream.content = Packages.javax.xml.bind.DatatypeConverter.printBase64Binary(bytesValue);
Poniższych przykładowych fragmentów kodu można używać w kroku skryptu do zapisywania zawartości z obiektu ECMContentStream do pliku:
// Script sample code to decode the document content and write it to a file
var bytesValue = Packages.javax.xml.bind.DatatypeConverter.parseBase64Binary(tw.local.contentStream.content);
var file = new Packages.java.io.File(tw.local.outputDirectory, tw.local.contentStream.fileName);
Packages.org.apache.commons.io.FileUtils.writeByteArrayToFile(file, bytesValue);