ルックアップフィールドにおける文字数制限

  const slicedStr = str.slice(0, 9);// 先頭から9文字切り出し

ここに str が含まれているので、この行の前から

  const str = record['test'].value;

str を宣言しているこれを消してはいけません。
────────────────────────────────────────────────────────────

  record['number_choise'].value = slicedStr;
  record['number_choise'].value = record['test'].value; // ルックアップフィールドの値

これだと[number_choise]へ、9桁に削った値を入れた後で
9桁に削る前の値を入れてしまうので

  record['number_choise'].value = record['test'].value; // ルックアップフィールドの値

は消さないといけません。
────────────────────────────────────────────────────────────
全部の処理にコメント付けてみましたが、これでわかるでしょうか?

// レコード追加画面で[test]の値が変わったときに処理を開始
kintone.events.on('app.record.create.change.test', (event) => {
  // これ以後 record と書いたら event.record と書いた場合と同じ扱いになる
  const record = event.record;

  // [test]の値を取得
  const str = record['test'].value;
  
  // 取得した[test]の値から最初の9字を切り出したものを slicedStr という定数に格納 
  const slicedStr = str.slice(0, 9);

  // [test]の値から最初の9字を切り出したものを、[number_choise]に入力
  record['number_choise'].value = slicedStr;

  // 上で入力した値を基に[number_choise]でルックアップの自動取得をする
  record['number_choise'].lookup = true;

  // ここまでの処理を画面に反映する
  return event;
});
「いいね!」 2