> ## Documentation Index
> Fetch the complete documentation index at: https://help.dingtalk.io/llms.txt
> Use this file to discover all available pages before exploring further.

# クロスアプリJS API

> YiDAのクロスアプリJS APIを解説。フォームインスタンスの作成・更新・削除、ワークフローインスタンスの起動・更新・検索など、ローコード開発で活用できるフォーム操作APIとワークフロー操作APIの使い方を紹介します。

`this.utils.yida.<関数名>` の形式で以下のAPIを呼び出します。

## フォーム操作API

| **関数名**                            | **説明**                            | **リクエスト例**                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| ---------------------------------- | --------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **saveFormData**                   | フォームインスタンスを作成                     | `// フォームインスタンスを作成this.utils.yida.saveFormData({  formUuid: 'FORM-xxx',  appType: pageConfig.appType,  formDataJson: JSON.stringify({    textField_m1g4dcpy: '一行テキスト',    textareaField_m1g4dcpz: '複数行テキスト',  }),}).then((res) => {  console.log('作成結果', res);}).catch(({ message }) => {  this.utils.toast({    title: message,    type: 'error',  });});`                                                                                                                       |
| **updateFormData**                 | フォーム内の指定コンポーネントの値を更新              | `// フォーム内の指定コンポーネントの値を更新this.utils.yida.updateFormData({  formInstId: 'FINST-xxx',  updateFormDataJson: JSON.stringify({    textField_m1g4dcpy: '一行テキスト',    textareaField_m1g4dcpz: '複数行テキスト',  }),  useLatestVersion: 'y',}).then((res) => {  console.log('更新に成功しました');}).catch(({ message }) => {  this.utils.toast({    title: message,    type: 'error',  });});`                                                                                                           |
| **searchFormDataIds**              | 条件を指定してフォームインスタンスIDの一覧を検索         | `// 条件を指定してフォームインスタンスIDの一覧を検索this.utils.yida.searchFormDataIds({  formUuid: 'FORM-xxx',  currentPage: 1,  pageSize: 10,  searchFieldJson: JSON.stringify({    textField_m1g4dcpy: '一行テキスト',    textareaField_m1g4dcpz: '複数行テキスト',  }),}).then((res) => {  console.log('リクエスト結果', res);}).catch(({ message }) => {  this.utils.toast({    title: message,    type: 'error',  });});`                                                                                              |
| **getFormComponentDefinationList** | フォーム定義を取得                         | `// フォーム定義を取得this.utils.yida.getFormComponentDefinationList({  formUuid: 'FORM-xxx',  version: '',}).then((res) => {  console.log('リクエスト結果', res);}).catch(({ message }) => {  this.utils.toast({    title: message,    type: 'error',  });});`                                                                                                                                                                                                                                  |
| **deleteFormData**                 | フォームインスタンスを削除                     | `// フォームインスタンスを削除this.utils.yida.deleteFormData({  formUuid: 'FORM-xxx',}).then((res) => {  console.log('リクエスト結果', res);}).catch(({ message }) => {  this.utils.toast({    title: message,    type: 'error',  });});`                                                                                                                                                                                                                                                            |
| **getFormDataById**                | フォームインスタンスIDを指定してフォームインスタンスの詳細を取得 | `// フォームインスタンスIDを指定してフォームインスタンスの詳細を取得this.utils.yida.getFormDataById({  formInstId: 'FINST-xxxx',}).then((res) => {  console.log('リクエスト結果', res);}).catch(({ message }) => {  this.utils.toast({    title: message,    type: 'error',  });});`                                                                                                                                                                                                                                   |
| **searchFormDatas**                | 条件を指定してフォームインスタンス詳細の一覧を検索         | `// 条件を指定してフォームインスタンス詳細の一覧を検索this.utils.yida.searchFormDatas({  formUuid: 'FORM-xxx',  searchFieldJson:'',// フォームコンポーネントの値で検索  currentPage:'1',  pageSize:'10',  originatorId:'',// データ提出者の社員番号で検索  createFrom:'2024-01-01',  createTo:'2024-02-01',  modifiedFrom:'2024-01-01',  modifiedTo:'2024-02-01',  dynamicOrder:'',// 並び替え}).then((res) => {  console.log('リクエスト結果', res);}).catch(({ message }) => {  this.utils.toast({    title: message,    type: 'error',  });});` |

## ワークフロー操作API

| **startInstance**   | 作業フローを起動                        | `// 作業フローを起動this.utils.yida.startProcessInstance({  formUuid: 'FORM-xxx',  processCode:'TPROC--xxx',  deptId:'',  formDataJson: JSON.stringify({    textField_xxx: '一行テキスト',    textareaField_xxx: '複数行テキスト',  }),}).then((res) => {  console.log('リクエスト結果', res);}).catch(({ message }) => {  this.utils.toast({    title: message,    type: 'error',  });});`                                                                                                                                                                                                                                                                                   |
| ------------------- | ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **updateInstance**  | ワークフローインスタンスを更新                 | `// ワークフローインスタンスを更新this.utils.yida.updateProcessInstance({  processInstanceId: 'f30233fb-xxx-9ee530',  updateFormDataJson: JSON.stringify({    textField_xxx: '一行テキスト',    textareaField_xxx: '複数行テキスト',  }),}).then((res) => {  console.log('リクエスト結果', res);}).catch(({ message }) => {  this.utils.toast({    title: message,    type: 'error',  });});`                                                                                                                                                                                                                                                                                        |
| **deleteInstance**  | ワークフローインスタンスを削除                 | `// ワークフローインスタンスを削除this.utils.yida.deleteProcessInstance({  processInstanceId: 'f30233fb-xxx-9ee530',}).then((res) => {  console.log('リクエスト結果', res);}).catch(({ message }) => {  this.utils.toast({    title: message,    type: 'error',  });});`                                                                                                                                                                                                                                                                                                                                                                                                |
| **getInstances**    | 検索条件を指定してインスタンス詳細の一覧を取得         | `// 検索条件を指定してインスタンス詳細の一覧を取得this.utils.yida.getProcessInstances({  formUuid:'FORM-xxx', // フォームID  taskId:'2199132092', // タスクID  instanceStatus:'RUNNING', // インスタンスステータス  approvedResult:'agree', // 承認結果  currentPage:'1',  pageSize:'10',  originatorId:'2134', // 作業フロー起票者の社員番号で検索  createFrom:'2024-01-01',  createTo:'2024-02-01',  modifiedFrom:'2024-01-01',  modifiedTo:'2024-02-01',  searchFieldJson: JSON.stringify({    textField_xxx: '一行テキスト',    textareaField_xxx: '複数行テキスト',  }),}).then((res) => {  console.log('リクエスト結果', res);}).catch(({ message }) => {  this.utils.toast({    title: message,    type: 'error',  });});`  |
| **getInstanceIds**  | 条件を指定してワークフローインスタンスIDを検索        | `// 検索条件を指定してインスタンスIDの一覧を取得this.utils.yida.getProcessInstanceIds({  formUuid:'FORM-xxx', // フォームID  taskId:'2199132092', // タスクID  instanceStatus:'RUNNING', // インスタンスステータス  approvedResult:'agree', // 承認結果  currentPage:'1',  pageSize:'10',  originatorId:'2134', // 作業フロー起票者の社員番号で検索  createFrom:'2024-01-01',  createTo:'2024-02-01',  modifiedFrom:'2024-01-01',  modifiedTo:'2024-02-01',  searchFieldJson:JSON.stringify({    textField_xxx: '一行テキスト',    textareaField_xxx: '複数行テキスト',  }),}).then((res) => {  console.log('リクエスト結果', res);}).catch(({ message }) => {  this.utils.toast({    title: message,    type: 'error',  });});` |
| **getInstanceById** | インスタンスIDを指定してワークフローインスタンスの詳細を取得 | `// インスタンスIDを指定してワークフローインスタンスの詳細を取得this.utils.yida.getProcessInstanceById({  processInstanceId:'f30233fb-xxx-530',}).then((res) => {  console.log('リクエスト結果', res);}).catch(({ message }) => {  this.utils.toast({    title: message,    type: 'error',  });});`                                                                                                                                                                                                                                                                                                                                                                                   |
