ページビューの合計

2024年12月11日水曜日

#DominoLeap ( #Leap ) 表の中のデータを活用したい

This will be another Domino Leap topic.

I want to use array data retrieved via the REST API for workflow emails, but I couldn't easily set it up.

Miyo Ambassador gave me a solution, which I will share with you here.


みなさま、こんにちは。
またまた今回もDomino Leapの話題です。

Domino Leapは簡単に外部のAPIに接続し、値が取れることはしばらく前に以下の記事でご紹介致しました。

#Domino #Volt ( #dominovolt )で 外部 #REST #API ( #restapi )を使う

単純にデータを取ってくるだけだと問題ないのですが、たとえば先日掲載しました郵便番号から住所を取得するAPIでは、戻ってくるJSONが配列になっており、Domino Leapのローコード画面で扱う場合は、表データになっています。

今回の例では、戻ってくるJSONは、以下のように[]で囲まれた配列になっています。


Domino Leapのサービスで呼び出すと、以下のように表として認識されることになります。


このデータをDomino Leapに取り込む場合、単にページに配置したフィールドで受けようとすると、以下のようなアラートが表示されます。


取得するデータと同じ数のリスト(または表)で受ける必要があるというものです。

そのため、値を受け取るにはページに表を配置し、その表に値を受け取るフィールドを作成する必要があります。
そうすることで、以下のように取り込むデータとDomino Leapの関連付けを行うことが可能となります。



ここまでは問題ないのですが、この表で受け取ったデータをさらに利用しようとした場合、普通にページに配置したフィールドと同じような取り扱いができないのです。

例えば、ワークフローでメールを送信する場合の本文・・・


このボタンを押すことで、ページ内のフィールドを本文に呼び出すことができるのですが、表内のデータはこちらにリストされていません。


これではせっかく簡単に取得してきたデータを有効活用することができません。
どうにかして表内のデータをページ上に配置したフィールドにもっていく必要がありそうです。

表内のフィールドのonItemChangeイベントや、追加で配置したデータを受け取るためのフィールドのonItemFocusイベントなどで試したのですが、うまくいきません。

よくよく考えてみると、もともと表ですから、複数行のデータが存在することが可能ですよね。
ここがちゃんと指定できていないことが原因のようでした(汗


ということで、困った時の"神"頼み。
ではないのですが、Domino Leapといえば・・・の御代アンバサダーに相談させて頂きました。
問合せて5分。
以下回答を頂きました。


きっと御代アンバサダーも同じことを考えて、既に解決策をお持ちだったんでしょう。

ということで、こちらを利用させて頂きます。


ページに「都道府県」「市区町村」「町域」の3フィールドを用意して、表のonAddイベントに取得したそれぞれの値をセットするようにしてみます。

前半部分は御代アンバサダーから頂いたスクリプトをそのまま記述しています。
後半でそれぞれ表の列データをページのフィールドに割り当てています。

・都道府県(F_HPref)に表の1列目(colid.get(0))をセット
       BO.F_HPref.setValue(colid.get(0).getValue());

・市区町村(F_HCity)に表の2列目(colid.get(1))をセット
       BO.F_HCity.setValue(colid.get(1).getValue());

・町域(F_HTown)に表の3列目(colid.get(2))をセット
       BO.F_HTown.setValue(colid.get(2).getValue());

以上の設定で、「郵便番号」を入力することで、API経由で表に値が取得されます。
表に値が追加されたことで、ページの3フィールドに値がセットされるようになりました。

こうなれば、あとは普通のページ上のフィールドと同じ扱いができるようになります。
先のメール本文のリストにも表示されました。



あとは見た目です。
ページ内の表に「都道府県」「市区町村」「町域」があり、同じフィールドがそれぞれページ上にもあるのはよくないですよね。

ということで、以下のように表を非表示にすることでこの点は解決することができました。


これで今までずっと悩んでいたことが解決できました。

・・・もっと早く聞いてたらよかった・・・

いつもながら、御代アンバサダー、ありがとうございます!!


御代アンバサダーがいらっしゃる株式会社エフ様では、さまざまな情報提供が行われております。
今さら気付いのですが、もしかしたらサンプル配布されているアプリに本件実装されているかも・・・

弊社でも「Notes/Domino開発tipsサービス」は契約させて頂いており、毎週届く内容はナレッジとしてどんどん蓄積されておりますので、ぜひご検討ください。

年内の記事はこれで終わりかな?

みなさま、よいお年をお迎えください!!

0 件のコメント:

コメントを投稿