ProjectsのCodeXスクリプト

ProjectsのCodeXスクリプト

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

Zoho プロジェクトの CodeX Scriptsは、特定のルールや検証を適用するための詳細な条件ロジックスクリプトです。ユーザーは、プロジェクトをいつ、どのように作成・編集・ステータス変更するかを制御できます。これにより、コンプライアンスの向上とプロセスの標準化を実現できます。

Info
CodeX Scripts は現在、限定リリースとして提供されています。この機能をポータルで有効化するには、support@zohoprojects.com

ユースケース:

新規プロジェクトを作成する

新規プロジェクトを作成し、担当者、日付、予算、カスタム項目などのプロジェクトデータを自動で入力します。
コード:
  1. function main() {
  2. try {
  3. const layoutId = 現在。データ。layoutId;
  4. const moduleId = 現在。データ。moduleId;
  5. const layout = client。getLayoutById(layoutId, moduleId);

  6. const newProject = 新規 データ(layout);
  7. newProject。名前 = 'Explore Zoho ';

  8. const projectOwnerId = variables。projectowner。値;

  9. const user1 = variables。user1。値; // user1 の ZPUID は variables に保存されています
  10. const user2 = variables。user2。値; // user2 の ZPUID は variables に保存されています

  11. const addedProject = client。保存(newProject);
  12. addedProject。名前 = 'Explore Zoho プロジェクト';
  13. addedProject。説明 =
  14. 'Explore Zoho プロジェクト features and functionalities';
  15. addedProject。担当者 = projectOwnerId;
  16. addedProject。ステータス = '242942000000027095'; // レイアウトに基づくステータス ID。ここでは 242942000000040005 が「進行中」ステータスに対応します
  17. addedProject。start_date = '2025-12-08';
  18. addedProject。end_date = '2025-12-25';
  19. addedProject。project_group = '242942000000025001'; // プロジェクトグループ ID
  20. addedProject.completed_time = '2025-12-31T00:00:00+05:30'; // 完了時間は ISO 日付・時刻形式で指定します
  21. addedProject。通貨 = 'INR'; // 通貨コード
  22. addedProject。budget_type = '1'; // 予算種別
  23. addedProject。hourly_budget = '5。000';
  24. addedProject。hourly_budget_threshold = '3。000';
  25. addedProject。cost_budget = '5600';
  26. addedProject。cost_budget_threshold = '5000';
  27. addedProject。revenue_budget = '4000';
  28. addedProject。billing_method = '1'; // 請求方法。IDE の BillingMethod enum を参照してください。
  29. addedProject。rate_per_hour = '800';
  30. addedProject。cost_per_hour = '600';

  31. addedProject。single_line_text = 'Sample Single 折れ線グラフ Text';
  32. addedProject。pick_list = 'Option 1'; // レイアウトのピックリスト設定に基づく値
  33. addedProject。multi_line_text =
  34. 'Lorem sunt Duis dolor laborum \n eu magna incididunt ipsum qui sit pariatur \n aute officia nisi irure nostrud sit commodo esse';
  35. addedProject。multi_select_field = ['Option 1', 'Option 2', 'Option 3']; // レイアウトの複数選択フィールド設定に基づく値
  36. addedProject。user_pick_list_all_users = user1;
  37. addedProject。user_pick_list_select_roles = '242942000000082031'; // 組織ロールに基づくロール ID
  38. addedProject。user_pick_list_selected_users = user2;
  39. addedProject。multi_user_picklist_all_users = [user1, user2];
  40. addedProject。multi_user_picklist_selected_roles = [
  41. '242942000000082031',
  42. '242942000000082001',
  43. ];
  44. addedProject。multi_user_picklist_selected_users = [user1, user2];
  45. addedProject。date_field = '2025-12-08'; // ISO 日付形式での日時フィールド値
  46. addedProject。checkbox_field = '真';
  47. addedProject。currency_field = '4300';
  48. addedProject。percentage_field = '25'; // % 記号を含まないパーセンテージ値
  49. addedProject。decimal_field = '130。24';
  50. addedProject。number_field = '430020';
  51. addedProject。email_field = 'vishal@yahoo.com';
  52. addedProject。phone_field = '1234567890';
  53. addedProject。url_field = 'https://zlyker.com/';
  54. client。保存(addedProject);
  55. } catch (err) {
  56. console。log(err);
  57. throw 新規 ScriptError(err);
  58. }
  59. }

新規エンティティを作成する

任意のタブで、名前フィールドのみが設定された空のデータを作成します。デバッグや検証用途に使用します。
コード:
  1. function main() {

  2. try {

  3. let layout = client。getLayoutById(現在。データ。layoutId, 現在。データ。moduleId);

  4. let データ = 新規 データ(layout);

  5. データ。名前 = '作成 プロジェクト 差出人 script'

  6. client。保存(データ);

  7. } catch (err) {

  8. throw 新規 ScriptError(err);

  9. }

  10. }
  11.  

アーカイブ済みプロジェクトでのタスク編集を制限する

関連付けられているプロジェクトがアーカイブ済みの場合、タスクの編集を制限します。
コード:
  1. function main() {
  2. let タスク = 現在。データ;
  3.  
  4. let projectId = タスク。projectId;
  5. const moduleItr = client。getModules(0, 10);
  6. //projects タブ ID: 5000000000380
  7. let moduleId;
  8. console。log(JSON。stringify(現在。affectedFields));
  9. while(moduleItr。hasNext()) {
  10. let moduleObj = moduleItr。次();
  11. if(moduleObj。名前 == 'プロジェクト') {
  12. moduleId = moduleObj。id;
  13. }
  14.         
  15. }
  16. let プロジェクト = client。getRecordById(moduleId, projectId);
  17.  
  18. if(プロジェクト。_status == 'アーカイブ済み') {
  19. throw 新規 ScriptError('アーカイブ済みプロジェクトは編集できません');
  20. }
  21.  
  22.  
  23. }
  24.  
CodeX をプロジェクト設定でどのように動作させたいか、アイデアはありますか?下のコメントにご利用シナリオをお寄せください。

その他の関連記事

    Zoho CRM 管理者向けトレーニング

    「導入したばかりで基本操作や設定に不安がある」、「短期間で集中的に運用開始できる状態にしたい」、「運用を開始しているが再度学び直したい」 といった課題を抱えられているユーザーさまに向けた少人数制のオンライントレーニングです。

    日々の営業活動を効率的に管理し、導入効果を高めるための方法を学びましょう。

    Zoho CRM Training



              Zoho Campaigns Resources

                Zoho WorkDrive Resources




                  • Desk Community Learning Series


                  • Digest


                  • Functions


                  • Meetups


                  • Kbase


                  • Resources


                  • Glossary


                  • Desk Marketplace


                  • MVP Corner


                  • Word of the Day


                  • Ask the Experts









                                  Resources

                                  Videos

                                  Watch comprehensive videos on features and other important topics that will help you master Zoho CRM.



                                  eBooks

                                  Download free eBooks and access a range of topics to get deeper insight on successfully using Zoho CRM.



                                  Webinars

                                  Sign up for our webinars and learn the Zoho CRM basics, from customization to sales force automation and more.



                                  CRM Tips

                                  Make the most of Zoho CRM with these useful tips.