メモ帳出力の操作を共通化したさせたい。

開始と終了のWFを作っており、その内容をメモ帳に出力したいと思っています。
ですが、開始と終了それぞれで出力する内容が違います。

【現在のWF】

開始WF…“開始時間”+変数+“終了予定時間”+変数
終了WF…“開始時間”+変数+“終了時間”+変数

【やりたいこと】
メモ帳を共通化させたい。

【イメージ】
メモ帳出力操作を別のxamlに切り出しその中で引数に現在直打ちの内容を規定値として入れ、Mainで変数として出力

こんにちは

ワークフローファイルを呼び出しアクティビティをお試しください。

ちなみに目的がテキストファイルへの書き出しであるなら
メモ帳を使わなくても、「テキストファイルへに書き込み」アクティビティで
書き出すことができます

Yoichiさん
ありがとうございます。
>ワークフローファイルを呼び出しアクティビティをお試しください。

こちらですが、ワークフローファイルアクティビティを使用しています。私の説明が足りませんでした。。。

メモ帳出力操作を別のxamlに切り出しその中で引数に現在直打ちの内容を規定値として入れ、Mainで変数として出力するために、ワークフローファイルアクティビティをを試しました。
ですが引数のinでしか、規定値がサポートされておりません。inのものをどうやって、変数にひきわせばいいのかがわかりません。。

こんにちは

状況が良くわかりませんので、引数の設定部分のスクリーンショット(呼び出す側と呼び出される側)を共有可能でしょうか?

こちらが呼び出す側で引数をインポートして、値の項目に変数を格納したものです。

こちらが呼び出される側です。

引数を渡して変数に格納したいのですが、規定値がサポートされてないため、規定値に設定ができず、複数代入のアクティビティを使用しましたが、うまく出力されませんでした。

こんにちは

呼び出される側(メモ帳に出力する.xaml)の引数はIn(入力)にする必要があるかと
思いますので、お試しください。
ちなみに規定値をどのように使うことを想定されていますか?

規定値には、一番最初に質問投稿したスクショで開始終了WF別個のながれで「メモ帳に出力する」で以下のスクショの直打ちしているものを規定値に設定しました。

in引数で規定値に入れられたはいいのですが、これを呼び出す側で変数にどのように格納すればいいかわかりません。

開始WF…“開始時間”+変数+“終了予定時間”+変数
終了WF…“開始時間”+変数+“終了時間”+変数

上記のように開始と終了では、出力する内容も異なります。

ご教示いただけますと幸いです。

こんにちは

もっとも単純にするならば
呼び出される側の引数はSrting型の入力1つだけにして

呼ぶ側は、以下ようにメッセージ全文を渡してあげれば良いように思えます

もし呼び出される側で何かしら処理が必要であれば、それに必要な粒度で分割すれば
良いかと思います。

なるほどです。下記のようなことですね!!

in_Message1は開始WF、in_Message2で終了WFで呼ぶようにしたいのですが、この場合、呼び出される側(メモ帳に出力する.xaml)の条件分岐で作りこまないといけないと考えています。この分岐がうまくいかなく困っております。お手数ですが御指南いただきたいです!!

こんにちは

呼び出される側の引数はSrting型の入力1つだけにして

と申しましたので、上記は意図しているものと異なります。
おそらく規定値の解釈を勘違いされていると思います。
(今回のケースでは、規定値は無視しても問題ありません。)

サンプル添付しますので、こちらで動作確認いただけますでしょうか?
(最初のアサインのTrue/Falseで条件分岐先が切り替わります)

Sample20211121-3.zip (3.6 KB)

わざわざサンプルまでありがとうございます。!!!
お手数おかけしました。。。

完全に勘違いしていました。。。
呼び出される側(メモ帳に出力する.xaml)の条件分岐でなく、Mainで条件分岐を行い、値を渡してメッセージボックスで出力する。(私の場合だとメモ帳出力する内容を渡すということですね!?)

INの引数の考え方なのですが、値を受け取る場合に使用するものだと思うのですが、
これは、呼び出される側が呼び出す側から受け取る認識であっていますでしょうか?

呼び出される側でOUT引数にしてMainに値を渡して出力するのはわかるのですが、IN引数でも、呼び出される側で出力ができるということなのでしょうか?

こんにちは

これはどちらでも良いのですが、一番最初のPOSTでは、すでに分岐されていましたので
それに即したものにしました。

INの引数の考え方なのですが、値を受け取る場合に使用するものだと思うのですが、
これは、呼び出される側が呼び出す側から受け取る認識であっていますでしょうか?

あっています。引数を定義しているファイルから見てどうなるかになります。

呼び出される側でOUT引数にしてMainに値を渡して出力するのはわかるのですが、IN引数でも、呼び出される側で出力ができるということなのでしょうか?

基本的にはできません。(参照型の変数を渡した場合、結果として変更内容が反映されるケースがあります。少なくとも文字列型では、入力として設定すると、出力はできないと考えて問題ありません。)

本日、Yoichiさんのサンプルを基に実行してみたところ、開始WFは無事に出力されました!!!
ですが、終了WFでは出力されるのですが、開始WFの内容がなぜか出力されてしまいます。。。
分岐条件(代入アクティビティ)でBeginningOrNot=”終了”にしたのですが、
サンプルでhBoolean型になっていましたが、私の場合はエラーになってしまい、String型にしまいました。

この場合の原因は、Boolean型ではなく、String型にしたことなのでしょうか。

ちなみに1番最初のポストのスクショのMainの条件分岐もString型ですが、これはうまくいっています。

こんにちは

まず条件分岐が想定通りに行っているかを確認するためには
デバッグのメニュー上に、実行証跡のボタンがあるので、これをONにして
デバッグ実行してください。
想定と異なるフローに流れていればこれで確認できます。

もし想定通りであるならば、ワークフロー呼び出しの引数の内容などを確認
していくことになると思います。

こんばんは

アドバイス通り、実行証跡を行いました。
その結果、以下のようになりました。

この場合、終了WFに行くべきが開始WFに行くのは、分岐条件が悪いということなのでしょうか。

こんにちは

直前の代入アクティビティで”終了”を設定していて
また分岐条件も”終了”ならThen側となっていますので
現状の動きとしては問題ないかと思いますが、
意図と違うようでしたらロジックの見直しが必要かと思います。
(このままですと、必ずThen側に行くので、条件分岐としてあまり意味がないように思えます)

ご回答ありがとうございます。
分岐条件を使用したやり方以外に条件によって流れるフローを異ならせるアクティビティはご存じでしょうか。

こんにちは

今回最初のPOSTで条件分岐をつかって振り分けている画像がありましたので
上記もそのようにしましたが、単に最初と最後に共通処理を呼びたい
だけでしたら、例えば下記のように直列に配置すればことは足りる
ように思えますが、いかがでしょうか?

img20211124-a1