2016-02-14 54 views
0

我正在尝试使用BS服务器脚本创建新记录。通过Siebel Business Service创建新记录eScript

由于进程正在基站内的地方,父母的背景下是不存在的,因此我无法得到父母ROW_ID,我需要明确杜绝对能见度正在创建的子记录。

最初我尝试从applet传递Parent Row_Id作为配置文件,但是当子applet中没有记录时,例如this.BusComp()。ParentBusComp()。GetFieldValue返回“此操作无效时没有记录存在“,因为”这个“上下文不可用。

有什么建议吗?

回答

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

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

比方说,你知道,家长BC必须是帐户。所以

ActiveBusObject()。GetBusComp( “账户”)。GetFieldValue( “ID”)会给你当前选定的账户BC记录的行号。但是确保这个脚本只在这种情况下触发。所以检查ActiveViewName来检查这一点。

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

感谢ü兰芝斯乌拉圭回合的反应。是的,这是我采取的方法,它可以正常工作以获得活动BusComp名称,但在var sId = ActiveBusObject()时仍然失败。GetBusComp(“Account”)。GetFieldValue(“Id”)在没有记录时尝试。我的假设是变量“sId”将是空白的,但是会出现一个错误:“没有可用记录时操作无效”。有没有一种机制可以检查记录是否存在,而无需使用Parent Row_Id查询。我需要的是,如果记录存在 - 获取row_id否则返回空白。 –

+0

它可以是任何记录,因此在获取相应的Row_Id时需要保留上下文 –