CodeXスクリプト用JavaScript SDK

CodeXスクリプト用JavaScript SDK

お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。

Zoho プロジェクトの Codex スクリプトを使用すると、プロジェクトやタスクの動作をカスタマイズできます。これらのスクリプトを使って、検証や処理の自動化、外部システムとの連携、データの取得や更新を行えます。

Info
CodeX スクリプトは、CN、JP、AE を除くすべてのデータセンターでサポートされています。
ただし、これらのデータセンターのポータルで CodeX スクリプトを有効にするには、
support@zohoprojects.com までお問い合わせください。

Codex スクリプトでは、スクリプトが実行される場所の現在のデータ、項目、メタデータなどの主要な情報を保持するオブジェクトにアクセスできます。「現在」オブジェクトには、スクリプトが実行されるデータまたは環境に関するコンテキスト情報が格納されます。

Object

現在 { データ, affectedFields, 操作, org, ユーザー, タブ }
パラメーター:
名前
説明
データ
現在実行対象となっているデータ。
affectedFields
現在の操作で更新される項目。
操作
実行中の操作を表します(例: BEFORE_UPDATE、AFTER_CREATE)。
org
組織固有のデータ。
ユーザー
操作を実行している現在のユーザー。
タブ
データに関連するタブのデータ(タスク、プロジェクト)。


クライアント SDK メソッド

Codex スクリプトでは、Zoho プロジェクトのデータと連携するための、複数のクライアントサイドメソッド(ユーザーが実行できる処理)も提供しています。以下のクライアントサイド SDK メソッドは、Zoho プロジェクト ポータルのデータ、ユーザー、レイアウト、タブなどと連携します。

データの保存

client。保存(データ) - Zoho プロジェクト ポータル内のタスクやプロジェクトなどのデータを保存または更新します。このメソッドは、データ ID に基づいて、データを新規作成するか更新するかを自動的に判別します。
  1. データに id が含まれている場合、既存のデータが更新されます。
  2. データに id が含まれていない場合、その項目の新規データが作成されます。
パラメーター:
名前
説明
データ
保存するデータを入力します(例: タスク、プロジェクト)。
Response
  1. {
  2. 'id':'175513000000135011',
  3. 'layoutId':'175513000000027008',
  4. 'projectId':'175513000000135011',
  5. 'moduleId':'175513000000027005',
  6. 'end_date':'2025-12-15',
  7. 'hourly_budget':'500。000',
  8. 'revenue_budget':'15000。000',
  9. 'billing_method':'2',
  10. 'is_public_project':無効,
  11. '説明':'<div>Revamp of Zylker's クライアントポータル.</div>',
  12. 'is_strict_project':真,
  13. 'cost_per_hour':'500。000',
  14. '通貨':'INR',
  15. 'tracking_method':'1',
  16. 'budget_type':'5',
  17. 'start_date':'2025-08-01',
  18. '担当者':'175513000000060003',
  19. 'project_type':'有効',
  20. 'created_time':'1726215358660',
  21. 'is_rollup_project':無効,
  22. 'created_by':'175513000000060003',
  23. 'cost_budget':'10000。000',
  24. 'percent_complete':'17',
  25. 'rate_per_hour':'1000。000',
  26. 'last_updated_time':'1749370606429',
  27. 'completed_time':null,
  28. '名前':'Zylker Webサイト Revamp',
  29. 'updated_by':'175513000000060004',
  30. 'project_group':'175513000000025001',
  31. 'fixed_cost':'0。000',
  32. 'ステータス':'175513000000027104'
  33. }

ID でデータを取得

client。getRecordById(moduleId, id)-Zoho プロジェクト ポータルから、ID を使用してデータを取得します。

パラメーター:
Name
説明
moduleId
現在実行中のタブの ID を入力します。
id
データ ID を入力します。
レスポンス
  1. {

  2. 'id': '214815000000120442',

  3. 'layoutId': '214815000000111729',

  4. 'projectId': '214815000000120442',

  5. 'moduleId': '214815000000027005',

  6. 'end_date': '1755196800000',

  7. 'hourly_budget': '120。000',

  8. 'revenue_budget': '85000。000',

  9. 'billing_method': '4',

  10. 'cf_decimal': '7。50',

  11. 'is_public_project': 無効,

  12. 'cf_number': '456',

  13. '説明': 'Zylker Retail 向けモバイルアプリ開発。',

  14. 'is_strict_project': 真,

  15. 'cf_email': 'monica.hemsworth@zylker.com',

  16. 'cost_per_hour': '75。000',

  17. 'cf_multi_line': 'API integration 保留中 <br> \\n Client approval 必須',

  18. 'cf_currency': '820。5000',

  19. '通貨': 'USD',

  20. 'tracking_method': '1',

  21. 'cf_multi_user_picklist': [

  22. '214815000000117285'

  23. ],

  24. 'budget_type': '2',

  25. 'start_date': '1754524800000',

  26. '担当者': '214815000000117285',

  27. 'project_type': '有効',

  28. 'created_time': '1753082475000',

  29. 'cf_pick_list': '214815000000111779',

  30. 'is_rollup_project': 無効,

  31. 'cf_url': 'https://projects.zylker.com/resource-hub',

  32. 'cf_checkbox': 真,

  33. 'created_by': '214815000000068003',

  34. 'cost_budget': '60000。000',

  35. 'percent_complete': '25',

  36. 'cf_single_line': 'Initial phase 完了',

  37. 'cf_user_pick_list': null,

  38. 'rate_per_hour': '110。000',

  39. 'cost_budget_threshold': '50000。000',

  40. 'cf_phone': '9876543210',

  41. 'hourly_budget_threshold': '90。000',

  42. 'cf_percentage': '0。85',

  43. 'last_updated_time': '1755738857000',

  44. 'completed_time': null,

  45. '名前': 'Zylker モバイル App Dev',

  46. 'updated_by': '214815000000068003',

  47. 'project_group': '214815000000118849',

  48. 'fixed_cost': '10000。000',

  49. 'cf_multi_select': null,

  50. 'cf_date_field': '1754611200000',

  51. 'ステータス': '214815000000027092'

  52. }

タブの取得

client。getModules(index, range)- Zoho プロジェクトのポータルからタブ(タスク、プロジェクト)の一覧を取得します。

パラメーター:
名前
説明
index
インデックスを入力します(例:0、1)。
range
取得するタブの数を入力します(例:10)。

ポータルユーザーの取得

client。getPortalUsers(フィルター) - Zoho プロジェクトのポータルからユーザーの一覧を取得します。

パラメーター:
名前
説明
フィルター
フィルター条件を入力します。
フィルターオブジェクトのサンプル
  1. {
  2. 有効: 真|無効
  3. }

レスポンス:

  1. [
  2. {
  3. '名前': 'Monica Hemsworth',
  4. 'メール': 'monica.hemsworth@zylker.com',
  5. 'zuid': '96901457',
  6. '役割': 'Administrator',
  7. 'roleId': '214815000000068005',
  8. 'profileId': '214815000000068436',
  9. 'companyId': null,
  10. 'client': 無効,
  11. 'id': '214815000000068003'
  12. },
  13. {
  14. '名前': 'Chloe Tiff',
  15. 'メール': 'chloe.t@zylker.com',
  16. 'zuid': '90707086',
  17. '役割': 'Administrator',
  18. 'roleId': '214815000000068005',
  19. 'profileId': '214815000000068439',
  20. 'companyId': null,
  21. 'client': 無効,
  22. 'id': '214815000000117285'
  23. },
  24. {
  25. '名前': 'Patrick Simon',
  26. 'メール': 'patrick.simon@zylker.com',
  27. 'zuid': '91617413',
  28. '役割': '従業員',
  29. 'roleId': '214815000000068009',
  30. 'profileId': '214815000000068445',
  31. 'companyId': null,
  32. 'client': 無効,
  33. 'id': '214815000000117291'
  34. }
  35. ]

ID でポータルユーザーを取得

client。getPortalUsersById(id)- Zoho プロジェクトのポータルから、指定した ID のポータルユーザーを取得します。

パラメーター:
名前
説明
id
ユーザー ID を入力します。
レスポンス
  1. {
  2. '名前': 'Monica Hemsworth',
  3. 'メール': 'monica.hemsworth@zylker.com',
  4. 'zuid': '96901457',
  5. '役割': 'Administrator',
  6. 'roleId': '214815000000068005',
  7. 'profileId': '214815000000068436',
  8. 'companyId': null,
  9. 'client': 無効,
  10. 'id': '214815000000068003'
  11. }
 

クライアントユーザーの取得

client。getClientUsers(フィルター) - Zoho プロジェクトのポータルからクライアントユーザーの一覧を取得します。

パラメーター:
名前
説明
フィルター
フィルター条件を入力します。
フィルターオブジェクトのサンプル
  1. {
  2. 有効: 真|無効
  3. }

レスポンス

  1. [
  2. {
  3. '名前': 'Monica Hemsworth',
  4. 'メール': 'monica.hemsworth@zylker.com',
  5. 'zuid': '106992208',
  6. '役割': null,
  7. 'roleId': null,
  8. 'profileId': null,
  9. 'companyId': null,
  10. 'client': 真,
  11. 'id': '214815000000125051'
  12. },
  13. {
  14. '名前': 'Patrick Simon',
  15. 'メール': 'patrick.simon@zylker.com',
  16. 'zuid': '106992208',
  17. '役割': null,
  18. 'roleId': null,
  19. 'profileId': null,
  20. 'companyId': null,
  21. 'client': 真,
  22. 'id': '214815000000125051'
  23. }
  24. ]

クライアントユーザーを ID で取得する

client。getClientUserById(id) - Zoho プロジェクトのポータルからクライアントユーザーを取得します。

パラメーター:

名前
説明
id
クライアントユーザー ID を入力します。

レスポンス
  1. {
  2. '名前': 'Monica Hemsworth',
  3. 'メール': 'monica.hemsworth@zylker.com',
  4. 'zuid': '106992208',
  5. '役割': null,
  6. 'roleId': null,
  7. 'profileId': null,
  8. 'companyId': null,
  9. 'client': 真,
  10. 'id': '214815000000125051'
  11. }

クライアント組織を取得する

client。getClientCompanies(フィルター, range, index) - Zoho プロジェクトのポータルからクライアント組織の一覧を取得します。
パラメーター:

名前
説明
フィルター
フィルター条件を入力します。
range
取得するクライアント組織の件数を入力します。例: 10。
index 番号
インデックスを入力します。例: 0,1。
フィルターオブジェクトのサンプル
  1. {
  2. 'プロジェクト': projectId
  3. }
レスポンス
  1. [
  2. {
  3. 'id': '214815000000125015',
  4. '名前': 'Zylker Inc',
  5. 'customerType': 1,
  6. 'addressFirstLine': '',
  7. 'addressSecondLine': '',
  8. '市区町村': '',
  9. '状態': '',
  10. '国': '',
  11. 'zipCode': '',
  12. 'webAddress': '',
  13. 'zohoCRMAccountId': null,
  14. 'currencyCode': null,
  15. 'updateTime': null
  16. },
  17. {
  18. 'id': '214815000000125016',
  19. '名前': 'Zylker Inc',
  20. 'customerType': 1,
  21. 'addressFirstLine': '',
  22. 'addressSecondLine': '',
  23. '市区町村': '',
  24. '状態': '',
  25. '国': '',
  26. 'zipCode': '',
  27. 'webAddress': '',
  28. 'zohoCRMAccountId': null,
  29. 'currencyCode': null,
  30. 'updateTime': null
  31. }
  32. ]

クライアント企業を ID で取得する

client。getClientCompanyById(id) - Zoho プロジェクトのポータルからクライアント企業を 1 件取得します。

パラメーター:
名前
説明
id
クライアント企業 ID を入力します。
レスポンス

  1. {
  2. 'id': '214815000000125057',
  3. '名前': 'Zylker Solutions',
  4. 'addressFirstLine': '',
  5. 'addressSecondLine': '',
  6. '市区町村': '',
  7. '状態': '',
  8. '国': '',
  9. 'zipCode': '',
  10. 'webAddress': '',
  11. 'zohoCRMAccountId': '-1',
  12. 'updateTime': null
  13. }
  14.  

クライアント連絡先を取得する

client。getClientContacts(フィルター) - Zoho プロジェクトのポータルからクライアント連絡先の一覧を取得します。

パラメーター:
名前
説明
フィルター
フィルター条件を入力します。
フィルターオブジェクトのサンプル
  1. {
  2. 有効: 真|無効
  3. }
レスポンス

  1. [
  2. {
  3. '名前': 'Monica Hemsworth',
  4. 'メール': 'monica.hemsworth@zylker.com',
  5. 'zuid': null,
  6. '役割': null,
  7. 'roleId': null,
  8. 'profileId': null,
  9. 'companyId': null,
  10. 'client': 真,
  11. 'id': '214815000000126133'
  12. },
  13. {
  14. '名前': 'Chloe Tiff',
  15. 'メール': 'chloe.tiff@zylker.com',
  16. 'zuid': null,
  17. '役割': null,
  18. 'roleId': null,
  19. 'profileId': null,
  20. 'companyId': null,
  21. 'client': 真,
  22. 'id': '214815000000126153'
  23. }
  24. ]

クライアント連絡先を ID で取得する

client。getClientContactById(id) - Zoho プロジェクトのポータルからクライアント連絡先を 1 件取得します。

パラメーター:
名前
説明
id
クライアント連絡先 ID を入力します。
Response
  1. {
  2. 'id': '214815000000126153',
  3. 'zuid': null,
  4. 'メール': 'monica.hemsworth@zylker.com',
  5. '名前': 'Monica Hemsworth',
  6. 'client': 真
  7. }

ピックリスト設定の取得

client。getPicklistOptions(moduleId, layoutId, fieldId) - タブ内のピックリスト項目の設定を取得します。
パラメーター:
名前
説明
moduleId
タブ ID を入力します。
layoutId
レイアウト ID を入力します。
fieldId
ピックリスト項目 ID を入力します。

Response

  1. [
  2. {
  3. 'id': '214815000000111775',
  4. '値': '5'
  5. },
  6. {
  7. 'id': '214815000000111787',
  8. '値': '1'
  9. },
  10. {
  11. 'id': '214815000000111789',
  12. '値': '2'
  13. },
  14. {
  15. 'id': '214815000000111791',
  16. '値': '3'
  17. },
  18. {
  19. 'id': '214815000000111793',
  20. '値': '4'
  21. }
  22. ]

ステータス詳細の取得

client。getStatusDetails(moduleId, layoutId, statusId) - タブ内のステータス詳細を取得します。

パラメーター:
名前
説明
moduleId
タブ ID を入力します。
layoutId
レイアウト ID を入力します。
statusId
ステータス ID を入力します。

HTTP リクエスト

CodeX Scripts では、HttpRequest オブジェクトを使用して外部サービスや API と通信できます。これにより、スクリプトロジックの一部として、サードパーティシステムとの間でデータを送信または取得できます。
CodeX Scripts の HTTP リクエストは、認証情報を安全に管理する外部連携と組み合わせて動作します。
要件:
  1. CodeX Scripts でサポートされるのは、組織ベースの外部連携のみです。
  2. ユーザーログイン資格情報に依存する外部連携はサポートされません。
  3. スクリプトで使用する前に、必要な接続が作成および認証済みであることを確認してください。
  1. const request = 新規 HttpRequest();
  2. request。url(url);
  3. request。ヘッダー(JSON。stringify(ヘッダー));
  4. request。本文(JSON。stringify(本文));
  5. request。connection('connection_link_name');
  6. request。method('取得する');
  7. request。params(JSON。stringify(params));
  8. const response = request。実行する();
  9. const { ステータス, statusMessage} = response。asJson();
  10. console。log(ステータス); // 完了または失敗に応じて true または false を出力します
  11. console。log(statusMessage。responseText); // API レスポンスを出力します
  12. console。log(statusMessage。responseCode); // HTTP レスポンスコードを出力します
  13. console。log(statusMessage。responseHeader); // レスポンスヘッダーを出力します

変数

Codex Scripts の変数は、スクリプト実行中に動的な値を保存および取得するために使用されます。ID や名前などの再利用可能な値を保存するために使用します。
構文:
有効な JavaScript 変数名の命名規則に従う変数名の場合:
  1. variables.<var_name>.値
その他の有効な JSON キーの場合:
  1. variables['<var_name>'].値
    または
  2. variables['<var_name>'].値