お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の
英語版を参照してください。
Zoho プロジェクトの Codex Scriptsを使用すると、ユーザーはプロジェクトやタスクの動作をカスタマイズできます。これらのスクリプトを使って、検証や処理を自動化したり、外部システムと連携したり、データの取得や更新を行ったりできます。
Codex Scripts では、スクリプトが実行される場所の現在データ、項目、メタデータなどの主要な情報を保持するオブジェクトにアクセスできます。「現在」オブジェクトには、スクリプトが実行されるデータや環境に関するコンテキスト情報が格納されます。
Object
現在 { データ, affectedFields, 操作, org, ユーザー, タブ }
パラメーター:
|
名前
|
説明
|
|
|
現在実行対象となっているデータ。
|
|
affectedFields
|
現在の操作で更新される項目。
|
|
操作
|
実行中の操作を表します(例: BEFORE_UPDATE、AFTER_CREATE)。
|
|
org
|
組織固有のデータ。
|
|
ユーザー
|
操作を実行している現在のユーザー。
|
|
タブ
|
データに関連するタブ(タスク、プロジェクト)のデータ。
|
クライアント SDK メソッド
Codex Scripts では、Zoho プロジェクトのデータと連携するための、複数のクライアントサイドメソッド(ユーザーが実行できる処理)も提供しています。以下のクライアントサイド SDK メソッドは、Zoho プロジェクト ポータル内のデータ、ユーザー、レイアウト、タブなどと連携します。
データの保存
client。保存(データ) - Zoho プロジェクト ポータル内のタスクやプロジェクトなどのデータを保存または更新します。このメソッドは、データ ID に基づいて、データを新規作成するか更新するかを自動的に判別します。
- データに id が含まれている場合、既存のデータが更新されます。
- データに id が含まれていない場合、その項目の新規データが作成されます。
パラメーター:
|
名前
|
説明
|
|
データ
|
保存するデータを入力します(例: タスク、プロジェクト)。
|
- {
- 'id':'175513000000135011',
- 'layoutId':'175513000000027008',
- 'projectId':'175513000000135011',
- 'moduleId':'175513000000027005',
- 'end_date':'2025-12-15',
- 'hourly_budget':'500。000',
- 'revenue_budget':'15000。000',
- 'billing_method':'2',
- 'is_public_project':無効,
- '説明':'<div>Revamp of Zylker's クライアントポータル.</div>',
- 'is_strict_project':真,
- 'cost_per_hour':'500。000',
- '通貨':'INR',
- 'tracking_method':'1',
- 'budget_type':'5',
- 'start_date':'2025-08-01',
- '担当者':'175513000000060003',
- 'project_type':'有効',
- 'created_time':'1726215358660',
- 'is_rollup_project':無効,
- 'created_by':'175513000000060003',
- 'cost_budget':'10000。000',
- 'percent_complete':'17',
- 'rate_per_hour':'1000。000',
- 'last_updated_time':'1749370606429',
- 'completed_time':null,
- '名前':'Zylker Webサイト Revamp',
- 'updated_by':'175513000000060004',
- 'project_group':'175513000000025001',
- 'fixed_cost':'0。000',
- 'ステータス':'175513000000027104'
- }
ID でデータを取得
client。getRecordById(moduleId, id)-Zoho プロジェクト ポータルから、ID を使用してデータを取得します。
パラメーター:
|
Name
|
説明
|
|
moduleId
|
現在実行中のタブの ID を入力します。
|
|
id
|
データ ID を入力します。
|
- {
- 'id': '214815000000120442',
- 'layoutId': '214815000000111729',
- 'projectId': '214815000000120442',
- 'moduleId': '214815000000027005',
- 'end_date': '1755196800000',
- 'hourly_budget': '120。000',
- 'revenue_budget': '85000。000',
- 'billing_method': '4',
- 'cf_decimal': '7。50',
- 'is_public_project': 無効,
- 'cf_number': '456',
- '説明': 'Zylker Retail 向けモバイルアプリ開発。',
- 'is_strict_project': 真,
- 'cf_email': 'monica.hemsworth@zylker.com',
- 'cost_per_hour': '75。000',
- 'cf_multi_line': 'API 連携 保留中 <br> \\n クライアント承認 必須',
- 'cf_currency': '820。5000',
- '通貨': 'USD',
- 'tracking_method': '1',
- 'cf_multi_user_picklist': [
- '214815000000117285'
- ],
- 'budget_type': '2',
- 'start_date': '1754524800000',
- '担当者': '214815000000117285',
- 'project_type': '有効',
- 'created_time': '1753082475000',
- 'cf_pick_list': '214815000000111779',
- 'is_rollup_project': 無効,
- 'cf_url': 'https://projects.zylker.com/resource-hub',
- 'cf_checkbox': 真,
- 'created_by': '214815000000068003',
- 'cost_budget': '60000。000',
- 'percent_complete': '25',
- 'cf_single_line': '初期フェーズ 完了',
- 'cf_user_pick_list': null,
- 'rate_per_hour': '110。000',
- 'cost_budget_threshold': '50000。000',
- 'cf_phone': '9876543210',
- 'hourly_budget_threshold': '90。000',
- 'cf_percentage': '0。85',
- 'last_updated_time': '1755738857000',
- 'completed_time': null,
- '名前': 'Zylker モバイル App Dev',
- 'updated_by': '214815000000068003',
- 'project_group': '214815000000118849',
- 'fixed_cost': '10000。000',
- 'cf_multi_select': null,
- 'cf_date_field': '1754611200000',
- 'ステータス': '214815000000027092'
- }
タブの取得
client。getModules(index, range)- Zoho Projects ポータルからタブ(タスク、プロジェクト)の一覧を取得します。
パラメーター:
|
名前
|
説明
|
|
index
|
インデックスを入力します。例: 0, 1 |
|
range
|
取得するタブの数を入力します。例: 10
|
ポータルユーザーの取得
client。getPortalUsers(フィルター) - Zoho プロジェクトのポータルからユーザーの一覧を取得します。
パラメーター:
|
名前
|
説明
|
|
フィルター
|
フィルター条件を入力します。
|
- [
- {
- '名前': 'Monica Hemsworth',
- 'メール': 'monica.hemsworth@zylker.com',
- 'zuid': '96901457',
- '役割': 'Administrator',
- 'roleId': '214815000000068005',
- 'profileId': '214815000000068436',
- 'companyId': null,
- 'client': 無効,
- 'id': '214815000000068003'
- },
- {
- '名前': 'Chloe Tiff',
- 'メール': 'chloe.t@zylker.com',
- 'zuid': '90707086',
- '役割': 'Administrator',
- 'roleId': '214815000000068005',
- 'profileId': '214815000000068439',
- 'companyId': null,
- 'client': 無効,
- 'id': '214815000000117285'
- },
- {
- '名前': 'Patrick Simon',
- 'メール': 'patrick.simon@zylker.com',
- 'zuid': '91617413',
- '役割': '従業員',
- 'roleId': '214815000000068009',
- 'profileId': '214815000000068445',
- 'companyId': null,
- 'client': 無効,
- 'id': '214815000000117291'
- }
- ]
ID でポータルユーザーを取得
client。getPortalUsersById(id)- Zoho プロジェクトのポータルから、指定したポータルユーザーを取得します。
パラメーター:
- {
- '名前': 'Monica Hemsworth',
- 'メール': 'monica.hemsworth@zylker.com',
- 'zuid': '96901457',
- '役割': 'Administrator',
- 'roleId': '214815000000068005',
- 'profileId': '214815000000068436',
- 'companyId': null,
- 'client': 無効,
- 'id': '214815000000068003'
- }
クライアントユーザーの取得
client。getClientUsers(フィルター) - Zoho プロジェクトのポータルからクライアントユーザーの一覧を取得します。
パラメーター:
|
名前
|
説明
|
|
フィルター
|
フィルター条件を入力します。
|
- [
- {
- '名前': 'Monica Hemsworth',
- 'メール': 'monica.hemsworth@zylker.com',
- 'zuid': '106992208',
- '役割': null,
- 'roleId': null,
- 'profileId': null,
- 'companyId': null,
- 'client': 真,
- 'id': '214815000000125051'
- },
- {
- '名前': 'Patrick Simon',
- 'メール': 'patrick.simon@zylker.com',
- 'zuid': '106992208',
- '役割': null,
- 'roleId': null,
- 'profileId': null,
- 'companyId': null,
- 'client': 真,
- 'id': '214815000000125051'
- }
- ]
クライアントユーザーを ID で取得する
client。getClientUserById(id) - Zoho プロジェクトのポータルからクライアントユーザーを取得します。
パラメーター:
|
名前
|
説明
|
|
id
|
クライアントユーザー ID を入力します。
|
- {
- '名前': 'Monica Hemsworth',
- 'メール': 'monica.hemsworth@zylker.com',
- 'zuid': '106992208',
- '役割': null,
- 'roleId': null,
- 'profileId': null,
- 'companyId': null,
- 'client': 真,
- 'id': '214815000000125051'
- }
クライアント組織を取得する
client。getClientCompanies(フィルター, range, index) - Zoho プロジェクトのポータルからクライアント組織の一覧を取得します。
パラメーター:
|
名前
|
説明
|
|
フィルター
|
フィルター条件を入力します。 |
|
range
|
取得するクライアント組織の件数を入力します(例: 10)。 |
|
index 番号
|
インデックス番号を入力します(例: 0,1)。
|
- [
- {
- 'id': '214815000000125015',
- '名前': 'Zylker Inc',
- 'customerType': 1,
- 'addressFirstLine': '',
- 'addressSecondLine': '',
- '市区町村': '',
- '状態': '',
- '国': '',
- 'zipCode': '',
- 'webAddress': '',
- 'zohoCRMAccountId': null,
- 'currencyCode': null,
- 'updateTime': null
- },
- {
- 'id': '214815000000125016',
- '名前': 'Zylker Inc',
- 'customerType': 1,
- 'addressFirstLine': '',
- 'addressSecondLine': '',
- '市区町村': '',
- '状態': '',
- '国': '',
- 'zipCode': '',
- 'webAddress': '',
- 'zohoCRMAccountId': null,
- 'currencyCode': null,
- 'updateTime': null
- }
- ]
クライアント企業を ID で取得する
client。getClientCompanyById(id) - Zoho プロジェクトのポータルからクライアント企業を取得します。
パラメーター:
|
名前
|
説明
|
|
id
|
クライアント企業 ID を入力します。
|
- {
- 'id': '214815000000125057',
- '名前': 'Zylker Solutions',
- 'addressFirstLine': '',
- 'addressSecondLine': '',
- '市区町村': '',
- '状態': '',
- '国': '',
- 'zipCode': '',
- 'webAddress': '',
- 'zohoCRMAccountId': '-1',
- 'updateTime': null
- }
-
client。getClientContacts(フィルター) - Zoho プロジェクトのポータルからクライアント連絡先の一覧を取得します。
パラメーター:
|
名前
|
説明
|
|
フィルター
|
フィルター条件を入力します。
|
- [
- {
- '名前': 'Monica Hemsworth',
- 'メール': 'monica.hemsworth@zylker.com',
- 'zuid': null,
- '役割': null,
- 'roleId': null,
- 'profileId': null,
- 'companyId': null,
- 'client': 真,
- 'id': '214815000000126133'
- },
- {
- '名前': 'Chloe Tiff',
- 'メール': 'chloe.tiff@zylker.com',
- 'zuid': null,
- '役割': null,
- 'roleId': null,
- 'profileId': null,
- 'companyId': null,
- 'client': 真,
- 'id': '214815000000126153'
- }
- ]
client。getClientContactById(id) - Zoho プロジェクトのポータルからクライアント連絡先を取得します。
パラメーター:
|
名前
|
説明
|
|
id
|
クライアント連絡先 ID を入力します。
|
ピックリスト設定の取得
client。getPicklistOptions(moduleId, layoutId, fieldId) - タブ内のピックリスト項目の設定を取得します。
パラメーター:
|
名前
|
説明
|
|
moduleId
|
タブ ID を入力します。 |
|
layoutId
|
レイアウト ID を入力します。 |
|
fieldId
|
ピックリスト項目 ID を入力します。
|
- [
- {
- 'id': '214815000000111775',
- '値': '5'
- },
- {
- 'id': '214815000000111787',
- '値': '1'
- },
- {
- 'id': '214815000000111789',
- '値': '2'
- },
- {
- 'id': '214815000000111791',
- '値': '3'
- },
- {
- 'id': '214815000000111793',
- '値': '4'
- }
- ]
ステータス詳細の取得
client。getStatusDetails(moduleId, layoutId, statusId) - タブ内のステータス詳細を取得します。
パラメーター:
|
名前
|
説明
|
|
moduleId
|
タブ ID を入力します。 |
|
layoutId
|
レイアウト ID を入力します。 |
|
statusId
|
ステータス ID を入力します。
|
HTTP リクエスト
CodeX Scripts では、HttpRequest オブジェクトを使用して外部サービスや API と通信できます。これにより、スクリプトロジックの一部として、サードパーティシステムとの間でデータを送受信できます。
CodeX Scripts の HTTP リクエストは、認証情報を安全に管理する外部連携と組み合わせて動作します。
要件:
- CodeX Scripts でサポートされるのは、組織ベースの外部連携のみです。
- ユーザーログイン認証情報に依存する外部連携はサポートされません。
- スクリプトで使用する前に、必要な接続が作成され、認証済みであることを確認してください。
- const request = 新規 HttpRequest();
- request。url(url);
- request。ヘッダー(JSON。stringify(ヘッダー));
- request。本文(JSON。stringify(本文));
- request。connection('connection_link_name');
- request。method('取得する');
- request。params(JSON。stringify(params));
- const response = request。実行する();
- const { ステータス, statusMessage} = response。asJson();
- console。log(ステータス); // 完了または失敗に応じて true または false を出力します
- console。log(statusMessage。responseText); // API レスポンスを出力します
- console。log(statusMessage。responseCode); // HTTP レスポンスコードを出力します
- console。log(statusMessage。responseHeader); // レスポンスヘッダーを出力します
変数
Codex Scripts の変数は、スクリプト実行中に動的な値を保存および取得するために使用されます。ID や名前など、再利用可能な値の保存に使用します。
構文:
有効な JavaScript 変数名の命名規則に従う変数名の場合:
- variables.<var_name>.値
その他の有効な JSON キーの場合:
- variables['<var_name>'].値
または
- variables['<var_name>'].値