Community Spring Cleaning week is here! Join your fellow Maveryx in digging through your old posts and marking comments on them as solved. Learn more here!
Free Trial

ディスカッション

答えを見つけ、質問し、Alteryx の専門知識を共有してください。
解決済み

ActionツールでInputツールのファイルを書き換えたい。

kobaken
メテオール

Inputツールの中身をActionツールで書き換えたいのですが、なぜかうまくいきません。

 

Actionツールの設定は、

 

・Select an action type:Update Value with Formula

 

Formulaの計算式は

 

if [#1]=="TRUE" then
[Destination]=DateTimeNow()
else
[Destination]
endif

([#1]はチェックボックスです。)

と設定しています。

処理2.jpg

チェックボックスのチェックオン時にファイルの中身を今日の日付で上書きするというものになります。

なにか指定の仕方が間違っているのでしょうか?

 

指定項目を変更したり、変更の数式を変えたりいろいろ試してみましたが、

ファイルの書き換えが行われないため、誰かお知恵を拝借できないでしょうか。

6件の返信6
ozawa
ACE Emeritus
ACE Emeritus

ファイル名を日付で置き換える際に、[Destination]=DateTimeNow()とそのまま代入しているため、

"C:\alteryx\file.csv"のようなファイル名全体が置き換わっていることが原因かと思われます。

 

以下のようにファイル名中の

  • 日付で変更したい部分のみを置換するようにする
  • DateTimeNow関数は時間まで含めて取得するのでDateTimeFormat関数で書式を指定する

としてみてください。

 

if 
    [#1] 
then 
    replace([Destination], "<チェックが無いときのファイル名>", DateTimeFormat(DateTimeNow(), "%Y%m%d"))
else 
    [Destination] 
endif

 

kobaken
メテオール

ozawaさん

 

返信ありがとうございます。

こちらで投稿した画像を確認したところ、変更先がファイルパスになっていますが誤りです。

 

ファイル名を変更したいのではなく、ファイルの中身を変更したい。が正しいです。

 

実際のファイルの中身は、以下のような内容になっております。

-------------------------------------

load_time_UTC_xxxxxxx
2020/03/23 1:39:53.04

-------------------------------------

2段目の2020/03/23 1:39:53.04を実行したタイミングの日時で上書きしたいのです。

 

誤解のある投稿で申し訳ありませんでした。

AkimasaKajitani
17 - Castor
17 - Castor

単なるテキストファイルの中身を書き換えたい、ということであれば

一度Alteryx内に読み込む必要があります。

強制的に読み込む方法は、以下のように区切り文字を「\0」としてください。

 

AkimasaKajitani_0-1585023031612.png

 

あとは、WFを書いて日時の行を差し替えて上書きすれば良いと思います。

同じファイルへの読み込みと書き込みは同時にできないので、

データ出力ツールの前に「完了までブロック」ツールを挟み込んでください。

 

出力も同じように、区切り記号を「\0」にするのと、

先頭行を出力しないようにするくらいでしょうか。

 

AkimasaKajitani_1-1585023256257.png

 

 

kobaken
メテオール

AkimasaKajitaniさん

 

返信ありがとうございます。

 

>同じファイルへの読み込みと書き込みは同時にできないので、

>データ出力ツールの前に「完了までブロック」ツールを挟み込んでください。

 

書き込みができなかったのはこれが原因でしょうか?

 

試しにワークフローを作成してみました。

 

 

 

キャプチャ.JPG

どうもうまくいかないのですが、何が原因でしょうか?

(ファイルもアップします。)

Mizuno
アステロイド

 

やりたいことはこういうことでしょうか?

 

Inputツールでは中身は書き換えれません。フォーミュラを使いましょう。

やり方は様々なので、これはあくまで1例です。

 

特定の場所を書き換えるなら レコードを指定などして書き換えます。

 

キャプチャ.PNG

kobaken
メテオール

Mizunoさん

 

返信ありがとうございます。

 

まさにこれがやりたかったことです!

本当に助かりました。

 

今まで使ったことがないツールもあり、

非常に勉強になりました。