我正在尝试使用BS服务器脚本创建一个新记录。
由于进程是在BS中进行的,因此不存在父进程的上下文,因此我无法获得父Row_Id,因此我需要根据创建的子记录显式地标记它以提高可见性。
最初,我试图将父Row_Id从applet作为配置文件传递,但是当子applet中没有记录时,即this.BusComp().ParentBusComp().GetFieldValue返回“当没有记录时此操作无效”时失败,因为“此”上下文不可用。
有什么建议吗?
发布于 2016-02-16 09:25:31
我能够用下面的代码实现所需的
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();发布于 2016-02-14 22:58:41
正是出于这些原因,Siebel在级别提供了预默认设置。如果您希望完全通过脚本来完成这一任务,您将必须找到活动上下文,您必须知道哪个BC是父节点。
让您知道,母公司BC必须是帐户。所以
ActiveBusObject().GetBusComp("Account").GetFieldValue("Id")将为您提供当前选定帐户BC记录的行id。但是,请确保此脚本仅在此上下文中触发。所以检查一下ActiveViewName来检查这个。
if(TheApplication().GetProfileAttr("ActiveViewName")=="Custom View")
{
//put the scripting here.
}https://stackoverflow.com/questions/35389182
复制相似问题