删除 Siebel 列表视图中的所有记录

Delete All records in a Siebel List View

我需要通过单击按钮的方法删除列表小程序中的所有记录。为了实现这一点,我使用“DeleteAllRecords”方法向列表小程序添加了一个按钮,并向 BC PreInvokeMethod 函数添加了一个脚本,如下所示。单击按钮后,所有记录都将被删除,但小程序不会刷新。我怎样才能做到这一点?

try
    {
    if(MethodName == "DeleteAllRecords")
    {
                var EmpBO = TheApplication().GetBusObject("XXXX");
                var EmpBC = EmpBO.GetBusComp("XXXX");
                
                with(EmpBC)
                {
                    SetViewMode(AllView);
                    ActivateField("EmployeeID");
                    ClearToQuery();
                    SetSearchExpr("[XXXX] <> ' '");
                    ExecuteQuery(ForwardOnly);
        
                    var Frecord = FirstRecord();
    
                    while(Frecord)
                    {   
                        Frecord = DeleteRecord();
                        Frecord = FirstRecord();
                    }
                }
                //BC.InvokeMethod("RefreshBuscomp");
                return (CancelOperation);

    }
    }       
    catch(e)
    {
        throw(e);
    }
    finally
    {
        EmpBO = null;
        EmpBC = null;
    }

    return (ContinueOperation);

你可以尝试一些事情。 1:所有删除完成后最后一个简单的空查询。 ClearToQuery() 和 ExecuteQuery(); 2:RefreshBusComp 有一个 BC 方法(查看文档),可以与 InvokeMethod() 一起使用。做的事情与 1 几乎相同。我看到你已经尝试过了,但可能没有用。

3:有可以刷新小程序的业务服务,比如FINS Teller UI导航

4:您也可以在 browserscript/javascript 中尝试一个空查询,将它放在 InvokeMethod 中,以便它在 BC escript 之后运行。 Genb 必须 运行 生成 bscripts。

其中一个应该有效。