--- Added: v2.0.0 Status: Active --- # Form service Implements Process Services form methods ## Basic Usage ```ts import { FormService, FormEvent, FormFieldEvent } from '@alfresco/adf-core'; @Component(...) class MyComponent { constructor(formService: FormService) { formService.formLoaded.subscribe( (e: FormEvent) => { console.log(`Form loaded: ${e.form.id}`); } ); formService.formFieldValueChanged.subscribe( (e: FormFieldEvent) => { console.log(`Field value changed. Form: ${e.form.id}, Field: ${e.field.id}, Value: ${e.field.value}`); } ); } } ``` ### Events | Name | Args Type | Description | | ---- | --------- | ----------- | | formLoaded | FormEvent | Raised when form has been loaded or reloaded | | formFieldValueChanged | FormFieldEvent | Raised when input values change | | taskCompleted | FormEvent | Raised when a task is completed successfully | | taskCompletedError | FormErrorEvent | Raised when a task is completed unsuccessfully | | taskSaved | FormEvent | Raised when a task is saved successfully | | taskSavedError | FormErrorEvent | Raised when a task is saved unsuccessfully | | executeOutcome | FormOutcomeEvent | Raised when a form outcome is executed | | formEvents | Event | You can subscribe to this event to listen : ( click, blur, change, focus, focusin, focusout, input, invalid, select) of any elements in the form , see doc below | | validateForm | ValidateFormEvent | Raised each time a form is validated. You can use it to provide custom validation or prevent default behaviour. | | validateFormField | ValidateFormFieldEvent | Raised each time a form field is validated. You can use it to provide custom validation or prevent default behaviour. | ### Methods - `parseForm(json: any, data?: FormValues, readOnly: boolean = false): FormModel` Parses JSON data to create a corresponding Form model. - `json` - JSON to create the form - `data` - (Optional) Values for the form fields - `readOnly` - Should the form fields be read-only? - `createFormFromANode(formName: string): Observable` Create a Form with a field for each metadata property. - `formName` - Name of the new form - `createForm(formName: string): Observable` Create a Form. - `formName` - Name of the new form - `saveForm(formId: string, formModel: FormDefinitionModel): Observable` Saves a form. - `formId` - ID of the form to save - `formModel` - Model data for the form - `addFieldsToAForm(formId: string, formModel: FormDefinitionModel): Observable` - `formId` - ID of the form - `formModel` - Form definition - `searchFrom(name: string): Observable` Search for a form by name. - `name` - The form name to search for - `getForms(): Observable` Gets all the forms. - `getProcessDefinitions(): Observable` Get Process Definitions - `getProcessVarablesById(processInstanceId: string): Observable` Get instance variables for a process. - `processInstanceId` - ID of the target process - `getTasks(): Observable` Gets all the tasks. - `getTask(taskId: string): Observable` Gets a task. - `taskId` - Task Id - `saveTaskForm(taskId: string, formValues: FormValues): Observable` Save Task Form. - `taskId` - Task Id - `formValues` - Form Values - `completeTaskForm(taskId: string, formValues: FormValues, outcome?: string): Observable` Complete Task Form - `taskId` - Task Id - `formValues` - Form Values - `outcome` - (Optional) Form Outcome - `getTaskForm(taskId: string): Observable` Get Form related to a taskId - `taskId` - Task Id - `getFormDefinitionById(formId: string): Observable` Get Form Definition - `formId` - Form Id - `getFormDefinitionByName(name: string): Observable` Returns form definition with a given name. - `name` - The form name - `getStartFormInstance(processId: string): Observable` Get start form instance for a given processId - `processId` - Process definition ID - `getProcessIntance(processId: string): Observable` Gets a process instance. - `processId` - ID of the process to get - `getStartFormDefinition(processId: string): Observable` Get start form definition for a given process - `processId` - Process definition ID - `getRestFieldValues(taskId: string, field: string): Observable` Gets values of fields populated by a REST backend. - `taskId` - Task identifier - `field` - Field identifier - `getRestFieldValuesByProcessId(processDefinitionId: string, field: string): Observable` Gets values of fields populated by a REST backend using a process ID. - `processDefinitionId` - Process identifier - `field` - Field identifier - `getRestFieldValuesColumnByProcessId(processDefinitionId: string, field: string, column?: string): Observable` Gets column values of fields populated by a REST backend using a process ID. - `processDefinitionId` - Process identifier - `field` - Field identifier - `column` - (Optional) Column identifier - `getRestFieldValuesColumn(taskId: string, field: string, column?: string): Observable` Gets column values of fields populated by a REST backend. - `taskId` - Task identifier - `field` - Field identifier - `column` - (Optional) Column identifier - `getUserProfileImageApi(userId: number): string` Returns a URL for the profile picture of a user. - `userId` - ID of the target user - `getWorkflowUsers(filter: string, groupId?: string): Observable` Gets a list of workflow users. - `filter` - Filter to select specific users - `groupId` - (Optional) Group ID for the search - `getWorkflowGroups(filter: string, groupId?: string): Observable` Gets a list of groups in a workflow. - `filter` - Filter to select specific groups - `groupId` - (Optional) Group ID for the search - `getFormId(res: any): string` Gets the ID of a form. - `res` - Object representing a form - `toJson(res: any): any` Creates a JSON representation of form data. - `res` - Object representing form data - `toJsonArray(res: any): any` Creates a JSON array representation of form data. - `res` - Object representing form data - `handleError(error: any): Observable` Reports an error message. - `error` - Data object with optional \`message\` and \`status\` fields for the error