我正在尝试使用BS服务器脚本创建新记录。
由于进程发生在BS内,因此不存在Parent的上下文,因此我无法获得Parent Row_Id,我需要明确标记为可见性创建的子记录。
最初我尝试将applet中的Parent Row_Id作为配置文件传递,但是当子applet中没有记录时,这会失败,即this.BusComp()。ParentBusComp()。GetFieldValue返回"此操作是当没有记录存在时无效"作为"这"上下文不可用。
有什么建议吗?
答案 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();