105
118

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

kintone 逆引き JavaScript カスタマイズ

Last updated at Posted at 2018-04-04

kintone カスタマイズに関する情報は cybozu developer network にまとまっていますが、たくさんありすぎてどこから始めたら良いのか分かりにくいなと感じたので、基本の情報にしぼって、やりたいことから情報にたどりつけられるようなリンク集を作ってみました。

  • 開発ノウハウ *cybozu develoer network の公式のkintone開発ノウハウ集はこちらにあります。

cybozu developer network 以外の Qiita や他サイトの情報もありますので、リンクをたどる際は自己責任でお願いします。

リンクは気がついたときに、追加・更新していきます。
また、古い情報もありますが、歴史的な経緯もありますのであえて載せています。


重要

セキュアコーディング ガイドラインが改訂されています。(2020-08-12)
プログラム内部に認証情報を直接書く場合は注意が必要です。


kintoneの更新情報を知りたい

kintoneの制限値の一覧を知りたい

監査ログを確認したい

kintoneの監査ログの種類を知りたい


アプリの情報を取得する

アプリのアクセス権を取得したい


レコードを取得する

アプリのレコードを取得したい

アプリの全レコードを取得したい


kintone Promiseを理解したい

「Promise」ラベルの付いている記事

developer公式リンク

2020-03-29現在、

「フィールド値変更イベント以外のすべてのイベントで Promise 対応しています。」

つまり、フィールド値変更イベント(レコード追加と編集の .create.change.<フィールドコード>と .edit.change.<フィールドコード>)ではPromiseが使えません。補足すると、Promiseの最後にeventをreturnしてkintone側に処理を返すことが出来ません(エラーになります)。
ということで、フィールド値変更イベントの中で同期的に処理を行う場合には、kintone.Promiseを使って同期処理を書き、そのkintone.Promiseの処理の中で、 kintone.app.record.get() して kintone.app.record.set(record) します。
ちなみに、kintone.events.on()の注意事項として

kintone.events.on のインベントハンドラ内で kintone.app.record.set および kintone.mobile.app.record.set を実行することはできません。

とあるので、まとめると下記のような組み合わせになります。

  • [.change.<フィールドコード>]イベントを使う処理

    • 同期処理が必要無い場合
      • Promiseを使わずに、[return event] する。
    • 同期処理が必要な場合
      • Promiseを使う。
      • Promise内の処理中に、<.record.get(),set()> を使って作業中のフィールドの値を書き換えます。この時に通常の [return event] はしない。
      • [return event] すると、Promiseに対応していないのエラーが発生して処理が行われません。
  • Promiseに対応しているイベントの一覧 Promise 対応イベント

kintone Promiseの基本

参考

MDNのPromise関連リンク


レコードを更新する

一覧画面からアプリのレコードを更新したい

一覧画面で検索窓を設置して簡単に検索したい

詳細画面からアプリのレコードを更新したい

レコード一覧を操作する

カスタマイズビューを利用して独自の一覧を表示したい

アプリの一覧の情報を取得したい


詳細画面の操作

グループでまとめたフィールドを操作したい

レコード追加時のフィールド操作

  • フィールドの値を書き換える https://developer.cybozu.io/hc/ja/articles/201941984#step4 (※kintoneのJavaScriptAPIを使ったフィールド情報値の設定の基本のサンプルコードです。サブテーブルの行追加の方法についても載っています)

サブテーブルの表示を操作したい(DOM操作したい)

関連レコードの件数を取得したい

関連レコードを集計したい

CSVで出力したい

定期実行・自動実行させたい


テーブルについて理解したい

1.→2.→3.の順で見ていくのが良いかと思います。

  1. はじめようkintone API 第6回 テーブルの値を利用する
      (最初はこちらで概要を理解)
  2. kintone Tips テーブル (詳細な事例はこちら)
  3. cybozu developer 内の「テーブル」ラベルの付いている記事 Tipsを含めた「テーブル」のラベルが付いた記事一覧
  4. kintoneにおけるテーブル操作の基本(行の追加・更新・削除)
  5. フィールド形式 - テーブル

テーブルのカスタマイズをしたい


レコードコメントの操作

レコードのコメントを取得したい


画面の見た目を操作したい

Bootstrapを使いたい

CSSを適用したい

kintone UI Component を使ってkintoneライクなUIを実現したい

SweetAlertを使いたい


日付・時刻の操作

日付や時刻のフォーマットを簡単に行いたい

2022-02-24更新:
Moment.jsの更新が終わったので、今後はLuxon等の代替ライブラリが推奨されています。


セキュアなコーディング

セキュアコーディングガイドライン

クロスサイトスクリプティングを防ぎたい

kintoneアプリ管理

アプリを管理したい

プロセス管理(ワークフロー)について理解したい

レコードのステータスを変更したい

ステータス変更をAPIで行うには下記に注意が必要です。
レコードのステータスの更新より引用。
※1~4の番号は説明の為付け加えています。

必要なアクセス権

ユーザー認証でAPIを実行する場合

1・アプリのレコード閲覧権限
2・値を取得するレコードの閲覧権限
3・値を取得するフィールドの閲覧権限
4・レコードに作業者が指定されていない、または、APIの実行ユーザーがレコードの作業者に指定されている

APIトークンでAPIを実行する場合

1・アプリのレコード閲覧権限
2・値を取得するレコードの閲覧権限
3・値を取得するフィールドの閲覧権限
4・レコードに作業者が指定されていない、または、「Administrator」ユーザーがレコードの作業者に指定されている

ユーザー認証は、下記参照。
https://developer.cybozu.io/hc/ja/articles/201941754#step7
1~3は特には問題ないですが、4については要注意です。

4・レコードに作業者が指定されていない、または、APIの実行ユーザーがレコードの作業者に指定されている

『レコードに作業者が指定されていない』というのは、下記のような状態のこと。

・現在の作業者に何も設定されていない。

image.png

image.png

『APIの実行ユーザーがレコードの作業者に指定されている』というのは、
例えばセッション認証の場合、APIの実行ユーザーは現在のログインユーザーになるので、
現在のログインユーザーがプロセス管理の作業者に設定されていることです。

つまり、「次のユーザーのうち1人」が選択されていて、レコードの「作成者」が作業者に設定されている場合は
プロセス管理のステータスをAPIで変更できるのは、レコードの「作成者」がログインユーザーの時になります。

kintoneの詳細画面では、プロセス管理の作業者に設定されていない場合は、プロセスを変更するアクションボタンが表示されませんが、
APIで処理する場合は、kintoneの詳細画面が表示されてないことがあるので、プロセス管理の作業者を確認する処理が必要になります。

その場合は、アプリのプロセス管理の設定の取得APIを使って、プロセス管理の設定情報を取得して、プロセス管理のステータス変更でエラーにならないようにする必要があります。
※APIでプロセスを進める(ステータスを変更する)時には、
1・現在のステータスの作業者に誰も割り当てられていない。(=誰でもステータス変更できる状態)
2・または、作業者に現在のログインユーザーが指定されている。(=ログインユーザーがステータス変更できる状態=アクションが実行できる状態)
がまず必要で、さらにAPIの条件によりステータス変更後のステータスのユーザーのログイン名が必要になります。
(※「次のユーザーから作業者を選択」になっている、かつ選択可能なユーザーが存在する場合)
おそらく、プロセスの変更通知の宛先が必要になるからだと思われます。

また、何かレコードを処理してその後にステータスを変更する場合は、ステータス変更で失敗した時の処理も考える必要があります。


cybozu.comのユーザーやグループ、組織、役職の情報にアクセスしたい

cybozu.comのユーザーの情報を取得したい(User APIの利用)


カスタマイズが動かない原因を調べたい

デバッグをしたい


Google Apps Script 連携 (GAS連携)

Google Apps Script を使って連携したい

GASをローカル環境で開発したい


印刷関連

kintoneの標準機能では帳票系が弱いと感じますが、kintoneの帳票出力を強化するソリューションをまとめています。

kintoneの帳票出力をカスタマイズしたい

プリントクリエイター

kintone-rest-api-client を利用したい

BulkRequestのエラーを取得したい

バルクリクエストのエラーは下記のとおり、リクエスト順の配列に入ってくるので、その配列を展開する必要があります。

※Failed Responseを参照。

また、kintone-rest-api-clientには、エラーハンドリングのクラスがあるので、それを利用することもできます。
https://github.com/kintone/js-sdk/blob/master/packages/rest-api-client/docs/errorHandling.md#kintonerestapierror

bulkRequestIndexに、失敗したリクエストのIDが入ってくるのでその、IDのエラー配列を展開すれば良いです。


その他

取り急ぎ分類せずにその他に入れていますが、気が付いた時に整理していきます。

カスタマイズビューを使いたい

kintone のJavaScriptAPI と REST API について知りたい

kintone の API の一覧を知りたい

フィールドごとのデータ取得、設定、更新情報が知りたい

初心者向けのチュートリアルで学びたい

jQueryUIを使ったカスタマイズ方法を知りたい

HTMLのタグやCSSのプロパティを調べたい

kintone JavaScript開発を効率化したい

TypeScriptを使ってカスタマイズしたい

Vue.js を使ってカスタマイズしたい

React を使ってカスタマイズしたい

CDNを使いたい

開発事例を知りたい

Google Map を利用したい

jQueryの使い方を知りたい

kintoneポータル画面をカスタマイズしたい

kintone詳細画面に画像を張り付けたい


kintone カスタマイズ Tips

kintoneカスタマイズの注意点などの記事

kintoneアプリ設計CheatSheet


制限事項


認証情報について

CSRF関連

OAuth関連


外部サービスとの連携

外部連携サービス一覧1

AWS Lambda 連携

外部サービス・ライブラリ

kViewer

krew sheet

Excel連携

WordPress連携

Slack連携

qloba連携

Twillio連携

MFクラウド連携

じぶんページ

Backlog

LINE連携

位置情報連携


kintoneカスタマイズ環境


プラグイン開発


サイボウズ関連


Webhook

kintoneのWebhookを使った事例や、Webhookと組み合わせてノンコーディングを実現するサービスなど。


データマイグレーション


オンラインエディタ

JavaScriptの関数を試してみたいときに使えるオンラインエディタです。

PalyCodeの利用例

CDNのmoment.jsを利用する例です。

index.html
・・・
  <head>
    <!-- Styles will be included here automatically -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js" integrity="sha512-qTXRIMyZIFb8iQcfjXWCO8+M5Tbc38Qi5WzdPOYZHIlZpzBHG3L3by84BBBOiRGiEb7KKtAOAs5qYdUiZiQNNQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
  </head>
・・・
script.js
const start = '2022-03-21';
const date = moment(start).clone();
console.log(date);

kintone環境のデプロイを自動化したい


ファイルをアップロードしたい


コマンドラインツール

cli-kintone


kintoneモバイル


kintoneの資格について知りたい

kintoneの認定資格について

資格取得の為の学習教材を知りたい

共通

アプリデザインスペシャリスト

カスタマイズスペシャリスト

学習の為のリンク


JavaScript関連

JavaScript標準情報

まずはここを見る

単体テスト(ユニットテスト)

Jasmine

素のJavaScriptでユニットテストを行う場合は、Jasmineのスタンドアローン版を利用します。
Jasmine standaloneからjasmine-standalone-3.6.0.zip
をダウンロードします。

  1. JavaScriptファイルを置いたフォルダに展開します。
  2. テストファイルをJasmineを展開したフォルダにある、srcフォルダに作成します。

開発に役立つもの

  • codic プログラマー・システムエンジニアのためのネーミングツール

随時更新していきます。

  1. cybozu developer network (https://developer.cybozu.io/hc/ja) からの記事 2 3 4 5 6 7 8 9 10 11 12

105
118
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
105
118

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?