changeイベントで、別のアプリからレコードがある場合に、自分のアプリのルックアップフィールド値を代入したい

簡単にイベント発火からのフローをまとめてみると、

チェンジイベント発火!

同期処理

async即時関数 → await処理 → 終了

return event;でチェンジイベント終了

という風にチェンジイベントで起きた処理とasync即時関数で起きた処理は同期しなくなるんですね…
そのため、チェンジイベントでreturn eventしても反映されない!ということが起きます。

そのため、ほぼ答え書いてしまって申し訳ないですが、以下のようにしてあげる必要があると思います。
こちら試してなく素で書いただけなので、試してみてエラーがでたら適時変更してみてください。

kintone.events.on(['app.record.create.change.テーマNo_'], event => {
    const record = event.record;

    // テーマNoが入力されている場合
    if (record.テーマNo_.value) {
        var resp = "";
        //↓このように即時関数で実行すればエラーになりません。
        (async () => {
            const body = {
                'app': 168,
                'query': `テーマNo_= "${record.テーマNo_.value}"`
            }
            await kintone.api(kintone.api.url('/k/v1/record.json', true), 'GET', body).then((resp) => {
                console.log(resp);
                const rec = kintone.app.record.get();
                if (resp.records.length > 0) {
                    rec.record.テーマNo_01.value = resp.records[0].テーマNo_.value;
                    rec.record['テーマNo_01'].lookup = true;
                } else {
                    rec.record['テーマNo_01'].lookup = 'CLEAR';
                }
                kintone.app.record.set(rec);
            });
        })();
    }
    return event;
})

コード解説としては、GETメソッドを.then()のメソッドチェーンで待ってから、
kintone.app.record.get()で取得

ルックアップの処理分岐

kintone.app.record.set()でレコードに反映
って感じですね。
詳しくは

「いいね!」 2