通过Siebel Business Service eScript创建NewRecord

时间:2016-02-14 06:52:15

标签: siebel escript

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

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

最初我尝试将applet中的Parent Row_Id作为配置文件传递,但是当子applet中没有记录时,这会失败,即this.BusComp()。ParentBusComp()。GetFieldValue返回"此操作是当没有记录存在时无效"作为"这"上下文不可用。

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

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

假设您知道父BC不得不是账户。所以

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

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

答案 1 :(得分:0)

我能够通过以下代码实现所需的代码

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