メール本文に変数で取ってきた値を入力する

UiPath初心者です。
Outlookメールメッセージを送信アクティビティを使い、
HTMLでメール作成中です。

メール本文を以下のように作成しました。
赤四角で囲った2か所に変数で取得した日付を入力したいのですが、
どのようにすれば良いでしょうか。
よろしくお願いいたします。
image

日付部分にキーワードを設定しておき、送信テキストとしてBODYに設定する際に、変数の日付で置換してあげては如何でしょう?

1 Like

ありがとうございます。
すみません、、
初心者すぎて。。
変数をキーワードとして置いたら良いでしょうか??

例えば、
「○○リーダ様<br>報告は#1までです<br>」ってテキストとした場合、
テキスト.Replace("#1", 日付.ToString(“MM/dd”))ってしてあげれば、
その結果は
「○○リーダ様<br>報告は11/11までです<br>」
って感じになります。

1 Like

ありがとうございます。
何度もすみません。
「○○リーダ様
報告は#1までです

の下にそのまま書いたらOKでしょうか。

その文言が入っている変数の後に、ですね。

1 Like

何度も何度もすみません。
こうでしょうか。
image

ブブゥ~~!違います!

"「○○リーダ様<br>報告は11/11までです<br>」".Replace("#1", 日付.ToString(“MM/dd”))

てな按配です。

おそらく、"「○○リーダ様<br>報告は11/11までです<br>」"は、String型の変数に格納されているでしょうから、

String型の変数.Replace("#1", 日付.ToString(“MM/dd”))

になると思います

1 Like


ハズレでしたか💦

ご丁寧にありがとうございます。
image
がstring型の変数とはどういうことでしょうか。
日付のみが変数かと思っていました。

次へ進みましょう!(^・^)

1 Like

はい!!!!
ありがとうございます!!!!!

おはようございます。
何度もすみません。
出来上がったメールが以下の様になってしまいます。。。
image

.Replace(~) を入れる箇所の認識があっていないですね。

  • 置換前のキーワード(#1)は、本文の文字列のなかに入れます
  • 置換の処理は、上記のキーワードを含む文字列のあとに入れます

過去のご質問で、文字列は別のファイルから読み取る形にされていたと記憶しています。
もしそうであれば、以下のようにして下さい。

  • 置換前のキーワードはファイル内に記載して下さい
  • 置換の処理は、上記ファイルから読み取ったテキストが含まれる変数に対して、下記のように代入します
(テキストの変数) = (テキストの変数).Replace(~)

余談ですが、もし解決されていなければ「解決策」のフラグを削除しておいて下さい。
フラグが付いていると一定期間を経過して投稿が締め切られるのと、単純に解決されていると誤認されて回答が減ってしまうと思われますので。。。

1 Like

ご指摘ありがとうございます。
解決したつもりになってました。

そうです!
文字列は別のファイルから読み取りたいです。

置換前のキーワードはファイル内に記載して下さい
というのは、このhtmlファイルの中に と言うことでしょうか。
代入は、この処理の直前に代入アクティビティを使うということでしょうか。

そのとおりです。

読み込み処理の「後」に入れてください。前に入れてしまうと、置換対象の文字が含まれていないので何も起こらず、置換前のキーワードが記載された状態のままになってしまいます。

置換前のキーワードは、今の状態で ファイル内に #1 と書いてますが、
それではなく、別で。。と言うことですか。

代入は、文字列を別のファイルから取得し、その直後↓に 代入ですか。
image

手順としては下記のようになります。

【前準備】

  • HTML(ファイル)内に、置換前のキーワードを記入します
    • 開催日の位置に「#1」と、締切の位置に「#2」と、それぞれ入れておきます

【ワークフローの内容】

  • HTML(ファイル)を読み込みます
    • 読み込んだ内容を、 メール本文 という変数に入れたと仮定します
  • 置換後のキーワードを準備します
    • 貼り付けていただいたスクリーンショットの内容で良いと思います
  • 置換処理を行います
    • 「代入」アクティビティで、次のように設定します
メール本文  =  メール本文.Replace("#1", dr("開催日").toString("MM/dd")).Replace("#2", dr("締切").toString("MM/dd"))
1 Like

本当にご丁寧にありがとうございます。
早速、活用させて頂いたのですが以下のエラーが出てしまいました。

もしかして dr が適切でないかもしれません。 dr に代入する処理の右辺(dt.AsEnumerable.~)の全体を見せていただけますか?

.Netの基本的なところにそれているようですが、
もともとの「メール本文に変数で取ってきた値を入力する」に対する答えとして、
もう1つの方法としてテンプレートを使う方があります。
Academyに「メール操作の自動化」というコースがあり、その中の最後の方に
送信メール本文のテンプレート活用
で丁寧に説明していました。本文だけでなく宛先、Addressなど1度に変更できます。