0

我正在尝试使用 BS 服务器脚本创建新记录。

由于该过程发生在 BS 内部,因此不存在 Parent 的上下文,因此我无法获取 Parent Row_Id,我需要明确标记为可见性而创建的子记录。

最初我尝试将小程序中的 Parent Row_Id 作为配置文件传递,但是当子小程序中没有记录时失败,即 this.BusComp().ParentBusComp().GetFieldValue 返回“当没有记录时此操作无效present”,因为“this”上下文不可用。

有什么建议么?

4

2 回答 2

1

我能够用下面的代码实现期望

    sId = TheApplication().ActiveBusObject().GetBusComp("Q").ParentBusComp().GetFieldValue("Id");
    if(this.BusComp().CountRecords() > 0)
    {
        sA = TheApplication().ActiveBusObject().GetBusComp("Q").GetFieldValue("A");
        sB = TheApplication().ActiveBusObject().GetBusComp("Q").GetFieldValue("B");
    }
    sEntity = TheApplication().ActiveBusObject().GetBusComp("Q").Name();
于 2016-02-16T09:25:31.783 回答
0

正是出于这些原因,Siebel 在业务组件字段级别提供了预默认设置。如果您希望完全通过脚本来执行此操作,则必须找到 Active 上下文,您必须知道哪个 BC 是父级。

假设您知道父 BC 必须是帐户。所以

ActiveBusObject().GetBusComp("Account").GetFieldValue("Id") 将为您提供当前选择的 Account BC 记录的行 ID。但请确保此脚本仅在此上下文中触发。所以检查 ActiveViewName 来检查这个。

if(TheApplication().GetProfileAttr("ActiveViewName")=="Custom View")
{
//put the scripting here.
}
于 2016-02-14T22:58:41.540 回答