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

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


1つづつやったがNG


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

ただ、上記の方法だと、複数人が同時に実行したら、不整合が起きる可能性がある。。。
Patch関数の戻り値で整合がとれるか試した。まず以下のように修正



これを使えば整合性がとれるはず!
なぜか、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でない方に上記の過程を得てコーディングさせるのはまちがいなく酷ですね