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