Docly Child

kintoneのフィールドコードとフィールド名の一覧をスプレッドシートに出力

196 views

この記事では、kintoneのフィールドコードとフィールド名の一覧を、AUTOROを使用してスプレッドシートに出力する方法を紹介します。


 フィールド情報を出力

kintoneレコードの更新や作成時、特にフィードコードがデフォルト設定のままの場合や、kintoneUpdateRecordsアクションで参照できないサブテーブルの値を生成する場合に、使用するフィールドコードを確認することは非常に手間となります。

この手間を省くために、フィールドコードとフィールド名の一覧をスプレッドシートやExcelに出力するワークフローを紹介します。

以下をエディタモードより貼り付けてご利用ください。

貼り付け方法は以下をご参照ください。
参考:ワークフローの複製

# スプレッドシートを作成
+create_spreadsheet_1:
  action>: CreateSpreadsheet
  title: 'kintoneフィールドコード_フィールド名一覧_${moment().utcOffset(540).format("YYYY-MM-DD_HHmmss")}'
  provider: ''
  meta:
    display: null

# リストを作成_出力したいアプリの番号
+create_list_1:
  action>: CreateList
  items: [8,22]

# ブラウザを開く
+open_browser_1:
  action>: OpenBrowser
  url: 'https://ドメイン名.cybozu.com'
  lang: 'ja-JP'
  timeZone: 'Asia/Tokyo'
  headless: true
  windowSize: '1280 x 720'
  useShadowDomSelector: false

# 文字入力
+type_text_1:
  action>: TypeText
  browser: +open_browser_1
  selector: '#username-\3A 0-text'
  text: ''
  clearValue: false
  ignoreError: true

# パスワード入力
+type_password_1:
  action>: TypePassword
  browser: +type_text_1
  selector: 'input[type=password]'
  password: '********'
  ignoreError: true

# キーを送信_ログイン
+send_keys_1:
  action>: SendKeys
  browser: +type_password_1
  selector: 'input[type=password]'
  keys: ["Enter"]
  ignoreError: true

# 各要素について繰り返す
+for_each_1:
  for_each>:
    appId: +create_list_1
    withIndex: index
  _do:

    # URLへ遷移
    +go_to_1:
      action>: GoTo
      browser: +send_keys_1
      url: 'https://ドメイン名.cybozu.com/k/${appId}'
      waitAfter: 5000

    # テキストを取得_アプリ名(シート名に使う)
    +get_text_1:
      action>: GetText
      browser: +go_to_1
      selector: 'h2 > a'
      ignoreError: true

    # 変数に保存_アプリ名(シート名に使う)
    +store_value_1:
      action>: StoreValue
      key: appName
      value: +get_text_1

    # ページ内でJavaScriptを実行する_フィールド情報
    +inject_script_1:
      action>: InjectScript
      browser: +go_to_1
      code: "(async () => {\n  const body = {\n    app: kintone.app.getId()\n  };\n\n  const getProps = await kintone\n    .api(kintone.api.url(\"/k/v1/app/form/fields.json\", true), \"GET\", body)\n    .catch(e => e);\n  const props = getProps.properties;\n  const header = [\n    [\n      \"フィールドコード\",\n      \"フィールド名\",\n      \"フィールドタイプ\",\n      \"フィールドコードとフィールド名が等しいか\"\n    ]\n  ];\n  const fieldProperties = Object.keys(props).reduce((array, propKey) => {\n    const row = [\n      props[propKey].code,\n      props[propKey].label,\n      props[propKey].type,\n      props[propKey].code === props[propKey].label\n    ];\n    array.push(row);\n    return array;\n  }, header);\n\n  return fieldProperties;\n})();\n"
      returnValue: true

    # シートを追加
    +append_sheet_1:
      action>: AppendSheet
      spreadsheet: +create_spreadsheet_1
      name: ${index + "_" + appName}

    # セルの値を更新
    +update_cells_1:
      action>: UpdateCells
      spreadsheet: +append_sheet_1
      range: '${index + "_" + appName}!A1'
      values: +inject_script_1

# ブラウザを閉じる
+close_browser_1:
  action>: CloseBrowser
  browser: +open_browser_1

ワークフローは、以下の流れで動きます。

  1. 新しいスプレッドシートを生成
  2. kintoneにログインする
  3. 「リストを作成」で追加したアプリIDを持つアプリに繰り返しでアクセスする
  4. アプリ名を取得し、取得したアプリ名のシートを1のシート内に作成する
  5. 以下4列を取得し、4のシートに貼り付ける
    [フィールドコード, フィールド名, フィールドタイプ, コードと名が一致するか]

以下をご自身の情報に設定後、実行ください。

  • スプレッドシートのプロバイダーID(create_spreadsheet_1)
  • リストを作成のアプリID(create_list_1)
    入力例:
    [8,256, 1431]
  • kintoneのログインURL(open_browser_1, go_to_1)
  • kintoneのログインID,パスワード(type_text_1, type_password_1)

<kintone>キントーン

このページは役に立ちましたか?