通过 Siebel Business Service eScript 创建新记录

Create NewRecord through Siebel Business Service eScript

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

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

最初我尝试将 Parent Row_Id 作为配置文件从 applet 传递,但是当子 applet 中没有记录时失败,即 this.BusComp().ParentBusComp().GetFieldValue returns "This operation is invalid when there are no records present" 因为 "this" 上下文不可用。

有什么建议吗?

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

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

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

if(TheApplication().GetProfileAttr("ActiveViewName")=="Custom View")
{
//put the scripting here.
}

我用下面的代码达到了预期效果

    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();