Peoplesoft CreateRowset 相关显示记录

Peoplesoft CreateRowset with related display record

根据Peoplebook here,CreateRowset函数有参数{FIELD.fieldname,RECORD.recname}用来指定相关的显示记录。

我曾尝试像下面这样使用它(仅作为示例):

&rs1 = CreateRowset(Record.User, Field.UserId, Record.UserName);
&rs1.Fill();

For &k = 1 To &rs1.ActiveRowCount
MessageBox(0, "", 999999, 99999, &rs1(&k).UserName.Name.Value);
End-for;

(Record.User 只包含 UserId(key), Password.
Record.User名称包含 UserId(key)、名称。)

我无法获取UserName.Name的值,我是否误解了该参数的用法?

填充是个问题。来自 doco:

Note: Fill reads only the primary database record. It does not read any related records, nor any subordinate rowset records.

话虽如此,这是我所知道的从数据库批量填充独立行集的唯一方法,因此我无法轻易地看到行集中字段的用途。

最简单的解决方案就是创建一个视图,但如果您必须经常这样做,它很快就会过时。另一种方法是自己循环遍历行集来加载相关字段。类似于:

For &k = 1 To &rs1.ActiveRowCount
  &rs1(&k).UserName.UserId.value = &rs1(&k).User.UserId.value;
  &rs1(&k).UserName.SelectByKey();
End-for;