コースからのユーザ一括削除について(フラットファイルの動作について)

コースからのユーザ一括削除について(フラットファイルの動作について)

- Yuuki Murakami の投稿
返信数: 4
いつもお世話になっております。村上です。
コロナの影響で年度初めの作業が今にシフトしており、
Moodleの作業に関して問い合わせをさせていただいており
申し訳なく思っております。

履修者登録情報が確定して、お試しで自己登録されていた
学生をコースから登録解除する必要があります。

テスト環境では動作しており、その情報を元にコースのユーザ削除作業を
行う予定でしたが、なぜか本番環境では同じ方法で作業しようとしても
うまく行かなくて困っております。

本番環境では構築者により、一部のLinuxのサービスが落とされていますが、
Moodleの動作環境はクリアしております。

1.フラットファイルの書式に基づいてファイル作成。
        以前、Yoshida様が対応されていた記載のソースファイルの変更を実施。
 
 https://moodle.org/mod/forum/discuss.php?d=329278#p1324710

2.ファイルロケーションで任意のパスとファイル名を記載して
  フラットファイルの記述情報を書き込む。
  
  例えば、/var/www/moodledata/flatfile.txt

3.cron.phpにより、フラットファイル処理が実行されて
  ユーザがコースから登録解除される。

4.フラットファイルで指定したファイルが削除される。

1~4で対応予定でしたが、3でcron.phpが実行された際に
ファイルロケーションのファイルを削除がされない形になっております。

フラットファイルを動作するにあたり、何か動作する条件はありますでしょうか?
またログが出力できればエラーから追跡出来るのですが、そういった機能はありますでしょうか?

フラットファイルでなくてもコース解除を一括で出来ればいいのですが
勉強不足でフラットファイルによる削除しかうまく行っておりません。

以上、宜しくお願い致します。
Yuuki Murakami への返信

Re: コースからのユーザ一括削除について(フラットファイルの動作について)

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

「ファイルロケーションのファイルを削除がされない形になっております」とありますが、これはユーザ一括登録解除に使用したテキストファイルが自動的に削除されないということでしょうか?

> フラットファイルを動作するにあたり、何か動作する条件はありますでしょうか?

定期的にMoodle cronを動作させる必要があります。
念のため、以下の例のようなコマンドラインでのMoodle cronの実行をご確認ください。

# php /var/wwww/html/admin/cli/cron.php

> またログが出力できればエラーから追跡出来るのですが、そういった機能はありますでしょうか?

現在のところ、フラットファイル実行に関するログ出力機能は実装されていないようです。

Mitsuhiro Yoshida への返信

Re: コースからのユーザ一括削除について(フラットファイルの動作について)

- Yuuki Murakami の投稿

Yoshida様、いつもありがとうございます。

フラットファイル用の記述を行っていますが
自動的に削除が行われずに残り続けている状態ですね。

Moodle cronも5分間隔で実行しており、
今回に関してはフラットファイルを置いた後に
手動でphpコマンドでも実行していますが
cron.phpを実行して、処理は流れていますが
フラットファイルは消されない状態で残り続けています。
delの記述を行っていますが、該当のコースのユーザ削除も
行われない状態です。

Yuuki Murakami への返信

Re: コースからのユーザ一括削除について(フラットファイルの動作について)

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

Moodle 3.8.3+ (Build: 20200522) でフラットファイルによるユーザ一括登録解除を試してみましたが、プログラム修正前および修正後ともに正常動作しないようです。

代わりに以下の手順で手動登録解除されてはいかがでしょうか。

  1. ユーザを一括登録解除したいコースに編集権限のある教師またはサイト管理者として入る。
  2. 「管理 > コース管理 > ユーザ > 登録済みユーザ」に移動する。
  3. 検索テキスト入力欄の下向き▼をクリックする。
  4. 「登録方法: 自己登録 (学生)」を選択する。
  5. 表示された学生ユーザを選択する。
  6. 「選択したユーザに対して ...」プルダウンメニューで「自己登録 > 選択したユーザ登録を削除する」を選択する。
  7. 「ユーザを登録解除する」ボタンをクリックする。

添付 Participants.png
評点平均: お役立ち度: ★★★★★★★ (1)
Mitsuhiro Yoshida への返信

Re: コースからのユーザ一括削除について(フラットファイルの動作について)

- Yuuki Murakami の投稿
Yoshida様、お世話になっております。村上です。

件数が多くて、手動で消すのは現実的ではありませんでした。
色々と調べていますと、フラットファイルの文字コードがUTF-8のBOMなしで
改行コードLFで保存すると、うまく動作しました。

ファイル設置後、
php moodle/enrol/flatfile/cli/sync.php を実行すると削除出来ました。

以上、宜しくお願い致します。
評点平均: お役立ち度: ★★★★★★★ (1)