goqoo-on-kintone / ginue

Ginue is the CLI tool to get settings of kintone via kintone REST API.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ginue push コマンドでルックアップフィールドの追加に失敗する

t1gerk1ngd0m opened this issue · comments

お世話になります。ginueを使って開発環境アプリと本番環境アプリの同期を行なっております。
本番環境を開発環境に適用する作業を行いたかったため、ginue push production:development -l kintone-settingsを実行したところ、

? Add field "code" to development.Students?

が出るのでYを押し続けたところ、ルックアップフィールドの更新で下記のように失敗しました。
どのようにすればルックアップの更新ができるようになりますでしょうか?

StatusCodeError: 520 - {"code":"GAIA_FC01","id":"owulqVGj12YpWVB4ZuPJ","message":"指定されたフィールド(code: ルックアップ)が見つかりません。"}

{
  name: 'StatusCodeError',
  statusCode: 520,
  message: '520 - {"code":"GAIA_FC01","id":"owulqVGj12YpWVB4ZuPJ","message":"指定されたフィールド(code: ルックアップ)が見つかりません。"}',
  error: {
    code: 'GAIA_FC01',
    id: 'owulqVGj12YpWVB4ZuPJ',
    message: '指定されたフィールド(code: ルックアップ)が見つかりません。'
  },
  options: {
    method: 'PUT',
    url: 'url',
    headers: {
      'X-Cybozu-Authorization': 'token',
      Authorization: 'Basic '
    },
    body: { properties: [Object], app: app_id },
    json: true,
    callback: [Function: RP$callback],
    transform: undefined,
    simple: true,
    resolveWithFullResponse: false,
    transform2xxOnly: false
  }
}

フィードバックありがとうございます!

もしかすると、ベータ版で修正済みのバグの可能性もあるのですが、「ginue@next」をインストールして再実行しても、同じエラーおきますか?

申し訳ありません、バージョン記載してなかったですね。
2.1.3です。

最新バージョンはginue@nextということでしょうか?

安定版の最新が2.2.1
ベータ版の最新が3.0.0-beta7です。
こちらのversionsから確認できます。
https://www.npmjs.com/package/ginue

npm install ginueだと安定板の最新、
npm install ginue@nextだとベータ版の最新が入ります。

ありがとうございます。最新版をインストールし、試してみましたがうまくいきませんでした。

 Add field [Experience_Questionnaire] to development.Students? Yes
{"status":520,"statusText":"520","url":"https://spartan-english.cybozu.com/k/v1/preview/app/form/fields.json","body":{"code":"GAIA_FC01","id":"ScPmqLKL8Iw2iwUWOAWF","message":"指定されたフィールド(code: 文字列__複数行__3)が見つかりません。"}}

ここで追加しようとしているフィールドと、指定されたフィールド名が異なっているようですが、、

ここで追加しようとしたフィールドは、
ルックアップまたは関連レコード一覧ではないでしょうか?
pullしてきたapp_form_fields.jsonを直接くと分かると思うのですが、
ルックアップ・関連レコードの場合、「参照先アプリのフィールド情報」も含まれています。
それぞれkintone設定画面での設定項目はこれくらいあります。

ルックアップの場合:

  • コピー元のフィールド
  • ほかのフィールドのコピー
  • コピー元のレコードの選択時に表示するフィールド
  • 絞り込みの初期設定
  • ソートの初期設定

関連レコードの場合:

  • 表示するレコードの条件
  • さらに絞り込む条件
  • 表示するフィールド
  • レコードのソート

ここでエラーが出ている文字列__複数行__3というコードは、
「参照先アプリにフィールドが存在しない」というエラーかもしれません。
その場合、以下の順番で作業するとうまくいきます。

  • 参照先アプリをまずpush完了させる
  • そのあとルックアップ・関連レコードを含むアプリをpushする

アプリ1個単位のpushは、ginue push 環境:環境 -A アプリ名でできますよ!

ありがとうございます!こちら解決しました。
app_form_fields.jsonの中で、ルックアップよりもルックアップで得た情報を格納するカラムが後に来ている場合、先にアプリの方に手動でルックアップで得た情報を格納するカラムを作っておかないとエラーになるようでした。

なるほど、そっちでしたかー。

その挙動も把握はしているんですが、なかなか根本解決が難しくて、
ひとまず今回やっていただいた回避策で僕も逃げています。
解決したようでよかったです!
また何かあればお気軽にどうぞ〜。