ページビューの合計

ラベル Leap の投稿を表示しています。 すべての投稿を表示
ラベル Leap の投稿を表示しています。 すべての投稿を表示

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サービス」は契約させて頂いており、毎週届く内容はナレッジとしてどんどん蓄積されておりますので、ぜひご検討ください。

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

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

2024年12月4日水曜日

#Domino #Leap フィールドに入力する文字を制御する

This will be another Domino Leap topic.

If you want to integrate with other systems, don't you want to control the format and number of digits of the data?

In this article, I will show you not only what you can set in the properties, but also how to set them using “regular expressions”.


みなさま、こんにちは。
今回もLeapネタになります。

というか、告知ネタがないのがさみしい・・・

気を取り直して本題。

異なるシステムへデータを送信する場合など、送信先のフィールドフォーマット(形式や文字数)に合わせたいことがあるかと思います。

ちなみに今回の弊社案件は、得意先マスタ申請ワークフローをNotesからLeapに移行した内容になります。
最終的には申請された値をIBMiへ連携することを想定して作成しております。

この中で発生した項目について、いくつかご紹介致します。


まずはコードです。
弊社では[得意先コード(数字4桁)]と[得意先支店コード(数字3桁)]という形式になっています。
こちらをLeapのフィールドに設定してみたいと思います。
配置したフィールドはこのような感じです。


まずはデフォルトのプロパティを見てみます。


文字数は[最大文字数(デフォルト:50)]を変更することで制御できそうです。
[形式]という項目があるので、こちらで形式を指定できそうです。
[形式]のインフォメーションを見てみると、


このような説明が表示されました。
ということで、今回は以下の設定を行ってみます。


得意先コードの例は以下になります。



それでは入力を確認してみます。
まずは適切に数字4桁-数字3桁で入力した結果です。

想定通り、入力することができました。
次に桁数を不一致させてみます。
以下の例では得意先コードを5桁(1桁多い)、得意先支店コードを2桁(1桁少ない)入力になります。


しっかりと制御してくれました。


ここでひとつ疑問。
最大文字数と形式が不一致していたらどうなるのでしょう?
以下は得意先コードの最大文字数を5に、得意先支店コードを2に変更した上で、正しく4桁-3桁で入力した結果になります。

得意先コードは最大文字数より少なく、形式に一致しているため問題なし。
得意先支店コードは最大文字数の制限にひっかかり、エラーとなりました。


それではそれぞれ最大文字数で入力したらどうなるのでしょう?


得意先コードは形式との不一致。得意先支店コードは最大文字数との不整合という結果になりました。

このことから、厳密な文字数管理が必要な場合、最大文字数と形式をしっかり合わせて登録することで不必要なエラーを回避したほうがよさそうです。


次に[得意先カナ名(16バイト)]に挑戦したいと思います。
弊社の設定では、あらゆる半角文字(英数カナ)が許可されているフィールドになります。(但し記号は不可)
先の形式のインフォメーションにはここは触れられていませんでした。

ということで[正規表現]にチャレンジしてみたいと思います。
※正規表現についてはここで細かくは触れませんので、お手数ですが各自ググってください。

それでは設定内容です。


形式に記述している文字列は、

^[a-zA-Z0-9ヲ-ン]+$

になります。
早速ですが、いくつかテストした結果は以下の通りです。


結構いい感じですよね。
もし記号が必要なのであれば、正規表現に追記することで解決は可能です。


続いて郵便番号です。
プロパティは以下を設定しました。


いくつかパターンを試しましたので、動画をご覧ください。


適切な処理が行えていることがご理解頂けるかと思います。
特にハイフンなしで7桁数字を入力した場合、ハイフンを追加した###-####形式に変換されている点にご注目ください。


さてせっかく郵便番号が取得できましたので、公開APIを利用して住所を呼び出してみましょう。
今回はzipcloudから提供されている無料サービスを利用します。

まず郵便番号フィールドのonItemChangeイベントをクリックします。


[サービスの呼び出し]にチェックして、[サービス構成の追加/編集]をクリックします。


[URLを入力]を選択して、URLにサービスから提供されている値を入力します。
今回は先のサービスで提供されているURL

https://zipcloud.ibsnet.co.jp/api/search?zipcode=7830060

と入力して、横の歯車マークをクリックします。

すると以下のような[サービスの詳細]画面が表示されます。
左側にパラメーター名・・・ここでは[zipcode]に郵便番号がセットされています。
右側には本URLで指定した「7830060」の結果が取得されていることがわかります。


[OK]⇒[次へ]で進めると、[入力割り当ての作成]画面が表示されますので、

①ソースとして[郵便番号]
②ターゲットとして[zipcode]を選択して、
③のボタンをクリックすると、
④の行が追加され、設定が完了します。


[次へ]をクリックすると、[出力割り当ての作成]画面が表示されます。
先と同じように関連付けを行うのですが、[address1]と[都道府県]を選択した時点で、以下エラーが表示されてしまいました。


API接続を進めていくとよくぶつかるエラーになります。
戻ってきたJSONデータの階層と受けるLeapの階層が同じ必要があるようです。
・・・ここはなんとか回避できるとウレシイのですが・・・
ということで、今回取得する[都道府県][市区町村][町域]の3フィールドをひとつの表の中に入れてみます。

すると、何事もなかったかのように関連付けを行うことができました。


[次へ]をクリックして、必要があれば[タイトル]や[ID]を書き換えて[OK]で完了です。
もう一度[OK]を押して、サービスの設定画面を閉じます。

ということで、テストです。
今回の動画でご確認ください。


いい感じですね。
こんなに簡単にAPI連携ができるなんて、ほんと助かります。



最後は電話番号やFAX番号です。
携帯電話も可としたいため、どうしようかと考えていたのですが、こんな時こそChat-GPT
ということで帰ってきた正規表現の値は

^(0[1-9]{1}[0-9]{0,4}-[0-9]{1,4}-[0-9]{4}|0[789]0-[0-9]{4}-[0-9]{4})$

でした。
数字とカッコばかりで、素人で読み取るには・・・(汗

ということでそのままセットして試してみます。


おおー、さすがにハイフンなしからの変換はできませんでしたが、いい感じに制御してくれています。


このほかに、名称などの全半角なんでもありのフィールドで最大バイト数の制限の設定された項目があるのですが、こちらは現時点で解決できておりません。

どなたか知見ございましたら、ぜひ教えてください!!

今回は思わぬ大作になってしまいました(汗

引き続き、弊社案件で気になる点がありましたら順次報告させて頂きますので、よろしくお願い致します!!



2024年12月2日月曜日

#Domino #Leap 任意のステージで #データグリッド を表示する

In this article, I will describe some notes on DominoLeap's Datagrid, which uses Stage for filtering.

It is a very simple matter, but if you don't know it, you may have some trouble.

みなさま、こんにちは。

ついに2024年もあと1か月となってしまいました。
毎年ながら、12月は気付くと年末が来るというドタバタな1か月になるのですが、今年は輪をかけて業務が積みあがっており、さらにあっという間に過ぎてしまうのではとみております。

そんな中ではございますが、少し気になる事項がありましたので、取るに足らないことかとも思いましたが、備忘録として記事とさせて頂きます。

弊社のワークフローは現在すべてDomino Leapに移行していっております。
今回も新規のワークフローの依頼があり、その中で躓いたことになります。


さてその内容ですが、アプリケーションページとして一覧を表示させるデータグリッドをよく利用します。
データグリッドは構成画面でフィルターを設定することができるため、さまざまな条件の一覧を提供することが可能になっています。


今回の案件では、ユーザーが選択したステージのデータのみを表示させるような設定を行ってみました。
設定そのものは難しくないのですが、1点注意点がありましたので、そちらをご紹介致します。


前準備として、ステージを選択するドロップダウンとデータグリッドを配置したページを準備します。
今回の例では、以下のようになります。


要はドロップダウンで選択したステージのデータだけをデータグリッドに表示させるというものです。

早速ですが、設定した内容です。


文字列が折り返されているのでわかりにくいですが、
「保存されたステージ」が「ステージ選択(ダイアログ)」と等しいデータを表示させる設定になります。



早速試してみますと・・・



データが表示されません。
今回は「否認」ステージを選択したので、一度外してみますと、


確かに「否認」ステージにデータはあります。
ダイアログに不必要なスペースが入っているのかなど、いろいろと調べて判明したのが、ステージは名称でなく、IDで指定する必要があったのです。

こちらが当初の設定でした。


ダイアログの「表示値」と「保存値」が同じ名称になっていたのです。
こちらの「保存値」をステージIDに変更します。


ちなみにステージIDは、ワークフロー画面でステージを選択すると表示されます。


結果、以下のように無事「否認」ステージのデータのみをフィルターして表示させることができました。


もちろん他のステージも同様です。

こうすることで、ステージごとにデータグリットを作成する必要なく、表示を切り替えることが可能になりました。



以上、ステージ以外の項目の場合、直接名称で設定が可能であったため、少し注意が必要である点のみご紹介させて頂き、今回は終了とさせて頂きます。

いつもお読みいただき、ありがとうございます。

2024年11月19日火曜日

#Domino #Leap 初期テンプレートの配布

 I am pleased to announce that I have started distributing the latest version of my previously created Domino Leap template, which incorporates the “creator” and “creation date” required at the beginning of the Domino Leap.

みなさま、こんにちは。
さて今回は3年ほど前に掲載しました

Notesアプリ開発者が、 #Volt で最初につまづくこと

の最新版の配布を開始致しましたので、そのご案内になります。

先日より「有効なCCBライセンスを所持しておれば、無料でDomino Leapのアプリを5個作成できる」ようになりました。

そのためテスト含めて、利用を始める方が増えられるのではと思い、改めてご紹介させて頂いた次第です。


内容は至って簡単なのですが、おそらく最初に躓くであろう「作成者」「作成日」を中心に、「所属」や「上司」、「メールアドレス」をログインユーザー情報からDomino Directoryを参照して自動で表示させています。

ぜひダウンロード頂き、サービスの設定をご覧ください。
サービスの設定の簡単なヒントにもなるかと思います。


なおダウンロードはMISC Marcketよりお願い致します。
今ですとこの位置にございます。


もちろん無料で、ログインせずにゲスト購入が可能になります。

簡単な使い方も同梱しておりますので、ぜひご活用ください。



2024年5月31日金曜日

不具合修正・・・ #e-Lerning 配信・管理アプリ

I am very sorry.

I have found a bug in the e-Lerning application that I have just released.
Please click here to download the corrected version.
Thank you very much, HCL Ambassador, Mr. Miyo.


みなさま、こんにちは。
早速ですが、今回は先般公開しましたe-Lerning配信・管理アプリ不具合があることが判明したため、修正版のご案内になります。


まず不具合に気付いて頂いたのは、やはり株式会社エフの御代様でした。

不具合の内容ですが、

>課題を登録してメールを送ってリンクをクリックしたら貴社のDomino Leapのログイン画面が表示されて戸惑ってしまいました。

との事でした。

公開用にさまざまな箇所の検証を行っていたのですが、「課題を登録」した際に送信されるメールの本文に、直接本アプリに接続させるためのURLが記述されたいたため、エラーになったというものでした。


さらに御代様からはこの機能をどうすれば解決できるかまでの情報をご提供頂けておりました。

修正内容はこちらに記述は致しませんが、結構奥深い内容でした。

きっと私が考えたのであれば、このようなスマートな方法にはなってなかったと思います・・・御代様ありがとうございます!!


ということで、先日のアプリの公開を中止し、修正したものを公開致しますので、ぜひこちらをダウンロードください。

こちらは御代様検証済なので、安心してご利用頂ます!!

2024年5月23日木曜日

#e-Learning 配信・管理アプリ

I would like to introduce an app that I use internally to distribute and manage e-Learning contents.

It is a very simple DominoLeap application, but it has been quite effective in our company and has been well received by our management team.

Please read on.


みなさま、こんにちは!
5月も後半となり、雨の季節が近づいて参りました。
もちろん晴れた日のほうが好きなのですが、雨も降らないと水不足でさらに野菜高騰などにもつながりますので、やはり必要な季節ですね。

今回もまずは告知です。

先日も書きましたが、DominoHub2024が6月13日(木)、14日(金)で開催されます。
既に多くの皆様からお申し込みを頂いておりますが、まだお席はございます。
準備の関係から、できましたら6月初旬までにお申し込みをお願い致します。


さて今回は弊社で利用開始しましたe-Learningの配信・管理アプリをご紹介したいと思います。
こちらもDomino #Leap でリリースしております。

まずは完成品のイメージを見て頂きます。


毎週1回配信して、今週で16回目になります。
配信ネタはエクセルの初歩から開始して、ノーツメールの設定なども含んでいます。

続いて課題作成の画面です。


課題は添付ファイルで配信するようにしています。
※どのような課題にするかは各社様々かと思いますので、本記事では触れません。
ご要望ありましたら、直接ご連絡頂けましたらサンプルをお送り致します。

解答形式としては「記述式」と「ファイル添付式」を選択できるようにしていますが、結果的に「ファイル添付式」しか配信していません。

続いて解答用の画面です。


問題番号を入れると、カテゴリやタイトル、概要が表示されます。
この例では、回答を入力したファイルを添付して「解答送信」をクリックするという形になります。



画面は以上になりますが、流れるメールも先にご紹介致します。

まずは課題を保存した際に全社員に送信されるメールです。


ポイントは課題の添付ファイルが貼りついたメールが届く点になります。
こちらのファイルをダウンロードして、各自解答を行い、保存したものを先のフォームからアップロードするという流れになります。

続いて解答時に管理者に届くメールです。



先と同じように解答ファイルが添付ファイルとして届く点がポイントになります。
こちらを開いて確認し、採点するという流れになります。

採点は「合格」と「不合格」があり、不合格の場合は再度解答を提出するフローへとつながります。

以上が本アプリの大まかな使い方となります。


それでは大まかな設計について、みていきましょう。
まずは課題作成の画面です。


作成者は新規作成時にログインユーザーの情報を呼び出してくるようになっています。
その他回数やカテゴリ、タイトル、概要等を配置します。
課題はファイルの「添付」を利用しています。

次に解答画面です。


こちらも解答者はログインユーザーを取得しており、回数を入力することで、カテゴリやタイトル、概要を呼び出してきます。
解答者は自分のファイルを添付して送信するだけとなります。

あとはアプリケーションとするためのポータル画面(こちらは課題一覧が表示されるデータグリッド)と


受講した結果一覧を表示する画面(こちらもデータグリッド)を用意します。


以上で画面まわりはできましたので、続いて役割の定義です。


今回は管理者とレコード所有者に情報システム部門を指定し、イニシエーターに「すべての認証済みユーザー」としてあります。



ようやくワークフローの定義ですが、今回は2種類のフローが必要になります。
ひとつは課題を配信するフローです。
こちらは至って単純で、


課題を作成して保存すれば、メールを送信して完了です。
メールの設定がキーになっており、


この添付ファイルに「課題」のファイルを設定することで、メールに課題のファイルが添付されるということになります。

次に解答のフローです。


さすがにこちらは少し動きがありますが、解答者が解答したものをシステム部門が判定し、「合格」すれば終了。
「不合格」であれば、再度解答者に差し戻され、解答をやりなおすという流れになります。

こちらも「解答送信」のふたつのフローでは解答ファイルを添付するという設定が入っています。

あとは各ステージごとに「可視性」やフィールドをロックすれば、完成です。




それほど難しいものではありませんので、ぜひ一度お試しいただければと思います。
が・・・・

インポートできるファイルも用意しましたので、よかったら使ってみてください。



2024/05/31配信停止
上記アプリに不具合がありましたので、配信を停止しました。
内容はこちらの記事をご覧ください。