我正在尝试使用 BS 服务器脚本创建新记录。
由于该过程在BS内部进行,因此不存在Parent的上下文,因此我无法获取Parent Row_Id我需要针对正在创建的子记录明确标记以进行可见性。
最初我尝试将小程序中的父Row_Id作为配置文件传递,但是当子小程序中没有记录时,这失败了,即这个。BusComp((.ParentBusComp((.GetFieldValue 返回"当不存在记录时此操作无效",因为"this"上下文不可用。
有什么建议吗?
我能够使用以下代码实现所需的目标
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();
正是由于这些原因,Siebel 在业务组件字段级别提供了预先默认设置。如果您希望完全通过脚本来执行此操作,则必须找到活动上下文,您必须知道哪个 BC 是父级。
假设您知道父BC必须是帐户。所以
ActiveBusObject((。GetBusComp("Account"(.GetFieldValue("Id"( 将为您提供当前所选帐户 BC 记录的行 ID。但请确保此脚本仅在此上下文中触发。因此,请检查 活动视图名称 检查这一点。
if(TheApplication().GetProfileAttr("ActiveViewName")=="Custom View")
{
//put the scripting here.
}