ADD Usersにコンボボックスで選択した複数ユーザを以下のように入れられなかった、調べてみると多対多の場合は、Relateを使わなくてはいけないそうだ

ただ、以下だと複数選択したうちの1つしかリレーションされない

SelectedItemにするとエラーになる
Relateをつかって1つずつ、Relateする必要がありそうだ

1つづつやったがNG

なんで?

ためしに、テーブルでなくコレクションに対して実施したら成功!

ただ、上記の方法だと、複数人が同時に実行したら、不整合が起きる可能性がある。。。

Patch関数の戻り値で整合がとれるか試した。まず以下のように修正

上記のtask_001_id_collectionには、Patchの戻り値が入るはず、task_0011テーブルのIDと一致するか調べた。
一致している💛

これを使えば整合性がとれるはず!

なぜか、test_task_001idが認識されない、以下LookUp分法間違っていますが、そもそも認識されないので。。この方式はあきらめ 残念!

ならば、自分でIDを振ってしまえ!(せっかく参照列つかってるのでIDはつかいたくないが。。。IDで表結合するわけでなく、一時的に整合を取るためのテンポラリIDとしてつかうのでよしとする)

以下のコードでばっちり目的達成 (⋈◍>◡<◍)。✧♡

Set(GUID_,GUID());

//task_0011_id_collection purpose only get GUID
ClearCollect(task_0011_id_collection,
    Patch(task_0011,
        Defaults(task_0011),
        {
            task_name:TextInput1.Text,
            guid:GUID_
        }
    )
);
//Save this session guid
Set(CurrentGUID,Last(task_0011_id_collection).guid);


ClearCollect(task_0011_collection,task_0011);
ForAll(ComboBox1.SelectedItems,
    Relate(LookUp(task_0011_collection,guid=CurrentGUID).'AAD Users',ThisRecord)
);

さて、リレーション先がコレクションtask_0011_collectionなのは問題ないのかであるが、結論から言うとコレクションでRelateすれば、データベースに対してもリレーションが張られるのである。そもそもコレクションとADD UserはMany-to-Manyのリレーションがされていない、しかしClearCollect(task_0011_collection,task_0011);を実施した時にリレーション情報がコレクションに渡されている。なのでコレクションでRelateすると、DBとADD Userがリレーションされるのである。

つかれた。。。 んんん それほどローコードにならんし、 SEでない方に上記の過程を得てコーディングさせるのはまちがいなく酷ですね