まいど!福地です。
おひっさしぶりです!すーです!
月に1回は更新するはずが、気が付けば2ヵ月やすんでしまい、申し訳ございません💦
色々(ほんとに色々)ありまして、更新できずにいました( ;∀;)
しかしながらBizRobo!の開発にはがっつり携わっており、特に最近はDAを使うことが増えてきまして(;^ω^)
話が逸れてしまいすみません、本題ですね!
みなさんDAで開発をしていて以下の状況に陥ったことないですか?
・開発時にはステップが進んでいたのに、更新した時やデバッグしてみるととあるステップのLocation Foundで止まる
え!?1回目は普通に動いてたのに、2回目は動かへんやん!?
しかもLocation Foundで止まってる!?え!?
とまあ一瞬焦りますよね笑
今回はエラーの原因が何なのかを見つける方法の1つを紹介したいと思います!
個人的にDAあるあるだったので、備忘録も兼ねて書いていきます(‘ω’)ノ
今回の記事の方法の効率が良い悪いは無視して、あくまで僕がいつもやっている方法にはなりますが開発の参考にしていただければと思いますm(__)m
※今回使っているバージョンは10.7.0.,4です。
Location Foundを見てみよう!
DAでクリックや、値の抽出をしようとするとそれぞれステップが作成されますよね!
で、そのステップを展開すると一番最初に来るのが「Location Found」です。
例えばクリックステップを例にすると以下の通り↓
一番最初に「Location Found」がきてますね!
この時、しっかりと要素を認識できているため触ろうとしている箇所がオレンジ色の枠で囲まれています。
次に、デバッグをした時にDAステップにてエラーが出たとします。
エラーが出たDAステップを選択し、「編集」にて中を見ていくとどうやら要素を見失ったようです(下図参照)
Location Foundで止まる場合って大抵が要素が変わったことによって、ロボットから「そんな要素ありませんで!」って怒られるパターンがほとんどでした。
Componentを開けてどこを指しているのか確認するのですが、DAを触り始めて日が浅い人は正直「ん?」ってなりますよね💦
そこで!
どこが違うのかをいち早く確認する方法をご紹介したいと思います!
Guarded Choiceステップを入れちゃえ!
とりあえずLocation Foundの手前で止まったなら、「ロケーションが見つかった場合」というGuarded Choiceステップを入れてみましょう!(下図参照)
Guarded Choiceステップが追加され、展開すると「Location Found」が入ってます。
そのLocation Foundを更に展開すると「Component」が出てくるので、 追加した Guarded ChoiceステップのComponentと、エラーが起きたLocation Found内のComponentを見比べてみましょう!
Componentは1つしか開けないので、僕の場合はよくメモ帳を使って対比します(^^
ここでは各Componentのスクショで対比しますね!
見てみると最後尾の「_info」の箇所が違いますよね!
ということで、正しいComponentに書き換えましょう(^^)/
少しでも楽したい僕は追加したGuarded ChoiceのComponentをコピーしてエラーがあったLocation FoundのComponentに貼り付けちゃいます笑
修正できれば追加したGuarded Choiceは必要ないので削除するのを忘れずに(^O^)/
冒頭でもお伝えしましたが、あくまでエラーの原因が何なのかを見つける方法の1つになりますので、開く度に要素が変わるサイト等は要素が変わらない箇所をComponentに指定してあげる必要がありますのでご注意ください💦
最後に
みなさんいかがでしたでしょうか?
そもそもDAに対して苦手意識って結構あると思うんですよね。僕もそうでしたし。
でも実際DA使う場面って結構ありまして、嫌でも触る機会ってあるんですよね・・・
そんな中で「どうしたら効率よく開発を進められるかな?」「エラーになったけど、何が違うんやろ?」と考えた結果の1つが今回の方法になります。
もちろん、もっと効率のいい方法があるかと思いますので、「こんな方法あるよ!」とか「こっちの方が効率いいよ!」って意見ありましたらぜひ教えてください(^^)/
少しでも
「DAの開発って楽しい!」
って思っていただけたらいいなあと思います!
よし!久しぶりに叫ぶで!
目指せ!
今日からBizRober!
(∩´∀`)∩
コメント
すーさん、こんばんは!
ブログ、YouTube見させてもらってます。
職場でビズロボを導入し、仕事の合間にロボットを作れ!と無茶ぶりに、わけも分からず取り組み、すーさんのコンテンツに助けられながらなんとか完成しました。
DSの方はステップが日本語で書いてあるのでまだなんとかなるのですが、作成したロボットはほぼDAの工程でして、ステップは英語だし、ナレッジベースには全然書いてないし、ビズロボって分かりやすいサイトってなかなかないんですよね。本もないし。
すーさんはどうやって勉強されたんですか?
あとDAの左側、インプット、アウトプット、ツリーモード等ありますよね?
あれも使い方がよくわからなくて。基本的なことも分からず何とかエラーを消しながら作った感じです。
これからも色々教えて下さい。
更新楽しみにしています!!
まめまめさん
コメントありがとうございます!また、ブログや動画もみていただきありがとうございます
>仕事の合間にロボットを作れ!と無茶ぶりに、わけも分からず取り組み、すーさんのコンテンツに助けられながらなんとか完成しました。
無茶ぶりだったにもかかわらず完成されたとのこと、本当にすごいです!おめでとうございます!!お役に立てて光栄です!
たしかにまめまめさんの言う通り、本とかはないですよねナレッジも充実しているとはいえ、いざ問題にぶち当たると焦りますよね
僕の場合は周りの方に聞くことが多かった(使える人がたまたまいたため)んですが、コミュティも活用してました!
コミュニティですが、「BizRobo!Landcommunity」というものがあります!
導入されてるということは、BizRobo!のポータルのアカウントを作成されているかと思いますので、ポータルにログインしていただくと左の項目一覧に「コミュニティ」という欄があり、マウスを持っていくと出てきます!
そのコミュニティはBizRobo!を使っている方の交流の場となってまして、わからないこととかを投稿しますとベテランの方々が的確に回答してくださるので、ぜひ活用してみてください!
>DAの左側、インプット、アウトプット、ツリーモード
コチラに関しては以下の認識で大丈夫です!
Input:DS側からの値を受け取る受け皿になります。DSにてDAステップを入れると、「入力値」とありますよね?DS側で取得した値、変数をDAでも使いたい時に、渡したい値を「入力値」の「+」を押して設定します。するとDAの画面に入った際に自動的に設定されます(途中DS側から値を追加した場合はDA側でInputにて値を追加する必要があるのでご注意ください!)
Output:DA側からDSに値を渡すためのお皿になります。DAステップで最後に「Return」ステップがあるのですが、そこで設定します。例えばDAで取得した値をDSで使いたい場合、まずDAのOutputにて値の型を設定し、ReturnステップにてDSに返したい値を設定します。次にDS画面に戻り、DAステップの「出力マッピング」にてDAからの値をうけとる受け皿(変数)を設定します。
ツリーモード:こちらに関しては、DAで触るシステムによってはオブジェクト認識ができない画面が出てくる場合があるのですが、その時に使う場合が多いです。細かく説明するとこんがらがるので、ここでは画面の要素が認識されない場合は対象の画面のタブにて右クリックし、「ツリーモード」にて「ISA」モードを選択してみてください。ISAは、対象画面の内容を自動的に判断してオブジェクト(要素)を生成する機能になり、画面を要素認識するパターンが多いです!
とまあ駆け足説明かつつたない説明になってしまい申し訳ございません
わからないことあれば僕のわかる範囲でお答えできればと思いますので、これからもどうぞよろしくお願いします!!
引き続き、ブログ頑張ります(‘◇’)ゞ応援ありがとうございます!!
すーさん、ありがとうございます!!
今の気持ちとしては、やっと開放された‥という感じなのですが、会社としては多額の費用を投入しているし、実績をもっともっと作りたいと思うので、また作る羽目になるかと(-_-;)
コミュニティの存在は知りませんでした。今後活用してみます!!
インプット、アウトプットなどの説明もありがとうございます。DS、DA間のデータの受け渡しの皿だったとは(゚д゚)
ちなみに、「variable」はどういうときに使うのでしょう?変数という意味ですよね。
DSで取得した変数を、INPUTで、変数名とTEXTと入れたりしてたのですが、変数を使うのに「variable」の入力をしないのが不思議でした。
返信が遅くなり申し訳ございません!
ロボットは作れば作るほど経験値溜まるので、一緒に頑張りましょう(^^)/
コミュニティはより現場よりのナレッジがあったりするので、ぜひご活用ください!
>DS、DA間のデータの受け渡しの皿だったとは(゚д゚)
人それぞれ例え方は違うかもですが、僕はよく受け皿で表現しますね^^
>ちなみに、「variable」はどういうときに使うのでしょう?
コチラに関しては「DA内で使う変数」ですね!DSで変数を使う時と同じで、DAでも変数を作って使うことができます!
すーさん、色々ご丁寧にありがとうございます!!
これからも更新楽しみにしています!