EMIT-Japan WebCT レター

  • 登録・解除
  • プライバシーポリシー

【管理者向けミニティップス】IMS Enterprise API 実践 - ユーザXMLを作成する -

前回のTipsではコースの作成を行いました。今回はユーザ情報を記述したXMLを作成し、グローバルDBにインポートしてみる所まで行います。

ユーザのXMLを定義する

WebCT CEではユーザはグローバルデータベース学生データベースの2つに分けて管理されています。ここでは、まずグローバルデータベースにXMLでユーザを作成してみる事を行います。

グローバルデータベースのユーザは管理者インタフェースのユーザ管理で管理できる情報と全く同じものです。このデータベースにエントリが無いユーザはWebCTにログインできません

では早速以下にユーザの情報を表すXMLを記述してみます。

<enterprise>
  <person>
    <sourcedid>
       <source>WebCT</source>
       <id>0001</id>
    </sourcedid>
    <userid password="passwd">ichiro</userid>
    <name>
      <fn>suzuki ichiro</fn>
      <n>
	<family>suzuki</family>
        <given>ichiro</given>
      </n>
    </name>
  </person>
</enterprise>

以下に簡単な説明を書きます。

enterprise
これはXMLのルートタグになります。Enterprise APIを利用する場合はすべてこのenterpriseというルートタグで始まる必要があります。
enterprise/person
人情報を示すことを意味します
enterprise/person/sourcedid/source
これは特に意味をもたない値ですが、WebCTと記述しておかないとインポートに失敗するようです。
enterprise/person/sourcedid/id
データベースが内部で保持しているキーです。値は何でも良いのですが、データベース内でユニークである必要があるようです。なお、今回は0001などとしていますが、実際に重複しないよう複雑なキーを与えるようにして下さい。WebCT IDなどを与えれば良いように見えますが、学生データベースとの兼ね合いで競合する可能性があるため推奨されません。
enterprise/person/userid
これはWebCT IDになります。属性passwordにパスワードを書く事もできます。 (3.8のXMLはenterprise/person/extension/webcredentialにパスワードを記述していましたが、仕様が変わったようです)。なお、属性pwencryptiontypeにDESと記述する事でDESでcryptされたパスワードを記述する事も出来ます。(例: <userid password="qhFTtMBi7EfpU" pwencryptiontype="DES">)
enterprise/person/fn
これはWebCTでは利用されない値ですが、フルネームなどを記述しておくと良いようです。省略するとインポートに失敗します。
enterprise/person/n/family
これはになります。
enterprise/person/n/given
これはになります。

作成したXMLをインポートする

上記XMLをperson.xmlとして保存し、以下のコマンドを入力してインポートしてみます。

./ep_api.pl import unrestrict person.xml

ep_api.plは$webct_root/webct/webct/generic/ims以下に存在します。 成功すると以下のように表示されます。

Success: Import file (person.xml) complete.

これでユーザ名ichoro、パスワードpasswdでログインできる事を確認します。

なお、追加カラムに関してはインポート/エクスポート出来ない仕様のようです。 (スタンダードAPIからは可能なのですが。。。)

次回は今回作成したpersonオブジェクトと、前回作成したgroupオブジェクトを組み合わせ、コースのロール(デザイナ、学生、TA)を設定してみます。

文責: 福山貴幸
(2004年 10月)