* [ACS-9406] Add getContentRenditionTypePreview to process-content service * [ACS-9406] remove extra space * [ACS-9406] fix unit tests * [ACS-9406] fix unit tests * [ACS-9406] cr fixes
18 KiB
Title, Added, Status
Title | Added | Status |
---|---|---|
Process Content Service | v2.0.0 | Active |
Process Content Service
Manipulates content related to a Process Instance or Task Instance in APS.
Class members
Methods
- createProcessRelatedContent(processInstanceId:
string
, content:any
, opts?:any
):Observable
<any>
Associates an uploaded file with a process instance.- processInstanceId:
string
- ID of the target process instance - content:
any
- File to associate - opts:
any
- (Optional) Options supported by JS-API - Returns
Observable
<any>
- Details of created content
- processInstanceId:
- createTaskRelatedContent(taskId:
string
, file:any
, opts?:any
):Observable
<any>
Associates an uploaded file with a task instance.- taskId:
string
- ID of the target task - file:
any
- File to associate - opts:
any
- (Optional) Options supported by JS-API - Returns
Observable
<any>
- Details of created content
- taskId:
- createTemporaryRawRelatedContent(file:
any
):Observable
<
RelatedContentRepresentation
>
Create temporary related content from an uploaded file.- file:
any
- File to use for content - Returns
Observable
<
RelatedContentRepresentation
>
- The created content data
- file:
- deleteRelatedContent(contentId:
number
):Observable
<any>
Deletes related content.- contentId:
number
- Identifier of the content to delete - Returns
Observable
<any>
- Null response that notifies when the deletion is complete
- contentId:
- getContentPreview(contentId:
number
):Observable
<
Blob
>
Gets the preview for a related content file.- contentId:
number
- ID of the related content - Returns
Observable
<
Blob
>
- Binary data of the content preview
- contentId:
- getContentThumbnail(contentId:
number
):Observable
<
Blob
>
Gets the thumbnail for a related content file.- contentId:
number
- ID of the related content - Returns
Observable
<
Blob
>
- Binary data of the thumbnail image
- contentId:
- getContentRenditionTypePreview(contentId:
number
):Observable
<
Blob
>
Gets the preview rendition for a related content file.- contentId:
number
- ID of the related content - Returns
Observable
<
Blob
>
- Binary data of the related content
- contentId:
- getFileContent(contentId:
number
):Observable
<
RelatedContentRepresentation
>
Gets the metadata for a related content item.- contentId:
number
- ID of the content item - Returns
Observable
<
RelatedContentRepresentation
>
- Metadata for the content
- contentId:
- getFileRawContent(contentId:
number
):Observable
<
Blob
>
Gets raw binary content data for a related content file.- contentId:
number
- ID of the related content - Returns
Observable
<
Blob
>
- Binary data of the related content
- contentId:
- getFileRawContentUrl(contentId:
number
):string
Gets a URL for direct access to a related content file.- contentId:
number
- ID of the related content - Returns
string
- URL to access the content
- contentId:
- getProcessRelatedContent(processId:
string
, opts?:any
):Observable
<any>
Gets related content items for a process instance.- processId:
string
- ID of the target process - opts:
any
- (Optional) Options supported by JS-API - Returns
Observable
<any>
- Metadata for the content
- processId:
- getTaskRelatedContent(taskId:
string
, opts?:any
):Observable
<any>
Gets related content items for a task instance.- taskId:
string
- ID of the target task - opts:
any
- (Optional) Options supported by JS-API - Returns
Observable
<any>
- Metadata for the content
- taskId:
- getProcessesAndTasksOnContent(sourceId:
string
, source:string
, size?:number
, page?:number
):Observable
<ResultListDataRepresentationRelatedProcessTask
>
Lists processes and tasks on workflow started with provided document- sourceId:
string
- id of the document that workflow or task has been started with - source:
string
- source of the document that workflow or task has been started with - size:
number
- size of the entries to get - page:
number
- page number
- sourceId:
- handleError(error:
any
):Observable
<any>
Reports an error message.- error:
any
- Data object with optionalmessage
andstatus
fields for the error - Returns
Observable
<any>
- Callback when an error occurs
- error:
- toJson(res:
any
):any
Creates a JSON representation of data.- res:
any
- Object representing data - Returns
any
- JSON object
- res:
- toJsonArray(res:
any
):any
Creates a JSON array representation of data.- res:
any
- Object representing data - Returns
any
- JSON array object
- res:
Methods
createProcessRelatedContent(processInstanceId: string, content: any, opts?: any): Observable<any>
Associate an uploaded file with a Process Instance.
Let's say we have an upload button as follows:
<div>
<button mat-button color="accent" mat-mini-fab (click)="fileInput.click()">
<mat-icon>attachment</mat-icon>
</button>
<input hidden type="file" #fileInput (change)="onUploadFile($event)"/>
</div>
We can then create related content as follows:
export class SomePageComponent implements OnInit {
@ViewChild('fileInput') fileInput;
...
onUploadFile() {
const fileBrowser = this.fileInput.nativeElement;
if (fileBrowser.files && fileBrowser.files[0]) {
const file: File = fileBrowser.files[0];
const processInstanceId = '11337';
const opts = {
isRelatedContent: true
};
this.contentService.createProcessRelatedContent(processInstanceId, file, opts).subscribe(
(relContent: RelatedContentRepresentation) => {
console.log('Related content: ', relContent);
}, error => {
console.log('Error: ', error);
});
}
}
In the above sample code the file
is uploaded via an HTML input element.
The processInstanceId
refers to a process instance ID for a running process in APS.
The returned relContent
object looks like in this sample:
Related content:
contentAvailable: true
created: Wed Nov 08 2017 10:50:30 GMT+0000 (GMT) {}
createdBy: {id: 1, firstName: null, lastName: "Administrator", email: "admin@app.activiti.com"}
id: 6007
link: false
mimeType: "application/pdf"
name: "simple.pdf"
previewStatus: "queued"
relatedContent: true
simpleType: "pdf"
thumbnailStatus: "queued"
The related content id
can be used by other methods in this service to get to the content and to
delete it. It is referred to as the contentId
.
If you look at attachments for the process instance it should now display the new file.
createTaskRelatedContent(taskId: string, file: any, opts?: any)
Associate an uploaded file with a Task Instance. This is in effect very similar
to the createProcessRelatedContent
call. Just use taskInstanceId
instead of processInstanceId
.
onUploadFile() {
const fileBrowser = this.fileInput.nativeElement;
if (fileBrowser.files && fileBrowser.files[0]) {
const file: File = fileBrowser.files[0];
const taskInstanceId = '15303';
const opts = {
isRelatedContent: true
};
this.contentService.createTaskRelatedContent(taskInstanceId, file, opts).subscribe(
(relContent: RelatedContentRepresentation) => {
console.log('Related content: ', relContent);
}, error => {
console.log('Error: ', error);
});
}
}
For more information see the docs for createProcessRelatedContent
.
createTemporaryRawRelatedContent(file: any): Observable<RelatedContentRepresentation>
Create temporary related content from an uploaded file. This means that the related content is not yet associated with a process instance or a task instance.
onUploadFile() {
const fileBrowser = this.fileInput.nativeElement;
if (fileBrowser.files && fileBrowser.files[0]) {
const file: File = fileBrowser.files[0];
this.contentService.createTemporaryRawRelatedContent(file).subscribe(
(relContent: RelatedContentRepresentation) => {
console.log('Related content: ', relContent);
}, error => {
console.log('Error: ', error);
});
}
}
For more information see the docs for createProcessRelatedContent
.
deleteRelatedContent(contentId: number): Observable<any>
Delete related content via the content identifier:
const contentId = 6008;
this.contentService.deleteRelatedContent(contentId).subscribe(
res => {
console.log('Delete response: ', res);
}, error => {
console.log('Error: ', error);
});
The response is going to be null
if the delete was successful.
See getProcessRelatedContent
and getTaskRelatedContent
for how to get to the contentId
.
getFileContent(contentId: number): Observable<RelatedContentRepresentation>
Get the metadata for a related content item in the format of a RelatedContentRepresentation
object:
const contentId = 6008;
this.contentService.getFileContent(contentId).subscribe(
res => {
console.log('Response Metadata: ', res);
}, error => {
console.log('Error: ', error);
});
The metadata response looks like in this example:
contentAvailable: true
created: Wed Nov 08 2017 11:26:14 GMT+0000 (GMT) {}
createdBy: {id: 1, firstName: null, lastName: "Administrator", email: "admin@app.activiti.com"}
id: 6008
link: false
mimeType: "application/pdf"
name: "simple.pdf"
previewStatus: "created"
relatedContent: true
simpleType: "pdf"
thumbnailStatus: "created"
See getProcessRelatedContent
and getTaskRelatedContent
for how to get to the contentId
.
getFileRawContentUrl(contentId: number): string
Get the URL for direct access to a related content file:
const contentId = 6008;
const url = this.contentService.getFileRawContentUrl(contentId);
console.log('URL: ', url);
The URL response looks something like this:
http://localhost:4200/bpm/activiti-app/api/enterprise/content/6008/raw
This URL can be used to directly access the content file, such as from a browser.
See getProcessRelatedContent
and getTaskRelatedContent
for how to get to the contentId
.
getFileRawContent(contentId: number): Observable<Blob>
Get the raw content bytes as a BLOB for a related content file:
const contentId = 5006;
this.contentService.getFileRawContent(contentId).subscribe(
res => {
console.log('Response BLOB: ', res);
}, error => {
console.log('Error: ', error);
});
The BLOB response looks something like this:
Blob(205824) {size: 205824, type: "application/msword"}
See getProcessRelatedContent
and getTaskRelatedContent
for how to get to the contentId
.
getContentPreview(contentId: number): Observable<Blob>
Get the preview file for a related content file. A content file might be for example a MS Word document. This method would give you the PDF preview for this document, if it has been generated:
const contentId = 5006;
this.contentService.getContentPreview(contentId).subscribe(
res => {
console.log('Response Preview BLOB: ', res);
}, error => {
console.log('Error: ', error);
});
The preview BLOB response looks something like this:
Blob(44101) {size: 44101, type: "application/pdf"}
See getProcessRelatedContent
and getTaskRelatedContent
for how to get to the contentId
.
getContentThumbnail(contentId: number): Observable<Blob>
Get the thumbnail file for a related content file. A content file might be for example a MS Word document. This method would give you the image thumbnail for this document, if it has been generated:
const contentId = 5006;
this.contentService.getContentThumbnail(contentId).subscribe(
res => {
console.log('Response thumbnail BLOB: ', res);
}, error => {
console.log('Error: ', error);
});
The response looks like in this sample:
Blob(13780) {size: 13780, type: "image/png"}
See getProcessRelatedContent
and getTaskRelatedContent
for how to get to the contentId
.
getContentRenditionTypePreview(contentId: number): Observable<Blob>
Get the preview type rendition for a related content file. A content file might be for example an MS Word document. This method would give you the PDF preview for this document, if it has been generated:
const contentId = 1;
this.contentService.getContentRenditionTypePreview(contentId).subscribe(
res => {
console.log('Response Preview BLOB: ', res);
}, error => {
console.log('Error: ', error);
});
The preview BLOB response looks something like this:
Blob(44101) {size: 44101, type: "application/pdf"}
getProcessRelatedContent(processId: string): Observable<any>
Get related content items for passed in Process Instance ID, only metadata for related content is returned:
const processId = '11337';
this.contentService.getProcessRelatedContent(processId).subscribe(
res => {
console.log('Response: ', res);
}, error => {
console.log('Error: ', error);
});
The response looks like in the following sample:
size: 2
start:0
total:2
data:
0:
contentAvailable: true
created: "2017-10-29T07:28:15.546+0000"
createdBy: {id: 1, firstName: null, lastName: "Administrator", email: "admin@app.activiti.com"}
id: 5006
link: false
mimeType: "application/msword"
name: "More info for Invoice.doc"
previewStatus: "created"
relatedContent: true
simpleType: "word"
thumbnailStatus: "created"
1:
id: 6008,
name: "simple.pdf",
created: "2017-11-08T11:26:14.162+0000",
createdBy: {…},
relatedContent: true,
…}
The id
property corresponds to the contentId
property used in many of the other methods of this service.
getTaskRelatedContent(taskId: string): Observable<any>
Get related content items for passed in Task Instance ID, only metadata for related content is returned:
const taskId = '15303';
this.contentService.getTaskRelatedContent(taskId).subscribe(
res => {
console.log('Response: ', res);
}, error => {
console.log('Error: ', error);
});
The response format is the same as for the getProcessRelatedContent
method, see its docs.
getProcessesAndTasksOnContent(sourceId: string, source: string, size?: number, page?: number): Observable<ResultListDataRepresentationRelatedProcessTask>
Lists processes and tasks on workflow started with provided document.
const sourceId = 'sourceId';
const source = 'source';
this.contentService.getProcessesAndTasksOnContent(sourceId, source).subscribe(
res => {
console.log('Response: ', res);
}, error => {
console.log('Error: ', error);
});
Details
Importing
import { RelatedContentRepresentation } from '@alfresco/js-api';
import { ProcessContentService } from '@alfresco/adf-core';
export class SomePageComponent implements OnInit {
constructor(private contentService: ProcessContentService) {
}