我正在使用 OIM (11gr2ps3) 中的沙箱在身份自助服务主页上设置仪表板框。此框的目的是调用 Create User 表单。虽然它正确打开,但表单中的取消和提交按钮不会关闭选项卡(但是,提交按钮将正确提交并创建用户)。
这就是我调用任务流的方式:
(\oracle\iam\ui\homepage\home\pages\mdssys\cust\site\site\self-service-home.jsff.xml)
<mds:insert parent="gr2" position="last">
<af:gridCell xmlns:af="http://xmlns.oracle.com/adf/faces/rich" id="e2545093324" halign="center">
<oim:DashboardBox xmlns:oim="/componentLib1" titleText="#{uiBundle['CREATE_USER_HEADER']}" image="/images/Dashboard/myAccess.png" hoverImage="/images/Dashboard/myAccess_s2.png" iconClickable="true" id="db2545093324"
iconClickAction="#{backingBeanScope.dashboardNavigationBean.launchTaskFlow}">
<af:clientAttribute xmlns:af="http://xmlns.oracle.com/adf/faces/rich" name="taskFlowId" value="/WEB-INF/oracle/iam/ui/taskflows/public/tfs/create-user-tf.xml#create-user-tf"/>
<af:clientAttribute xmlns:af="http://xmlns.oracle.com/adf/faces/rich" name="title" value="#{uiBundle['CREATE_USER_HEADER']}"/>
</oim:DashboardBox>
</af:gridCell>
</mds:insert>
单击取消按钮时,日志不会留下任何错误,尽管托管 bean 似乎正在刷新。有任何想法吗?是否有任何其他属性或自定义我应该添加到目录文件中,以便它们正确关闭任务流和选项卡?
更新:我尝试通过按照建议引发上下文事件并使用 Amr Gawish 共享的文档来制作任务流启动器。通过使用新 bean 更新仪表板框的 iconClickAction 属性来调用它。这是我创建的方法:
public void launchCreateUserTaskFlow(ActionEvent evt) {
ResourceBundle bundle = ResourceBundle.getBundle(OIM_USR_BUNDLE, locale);
String taskFlowId = "/WEB-INF/oracle/iam/ui/taskflows/public/tfs/create-user-tf.xml#create-user-tf";
String id = "create_user";
String name = bundle.getString("CREATE_USER_HEADER");
String jsonPayLoad = TaskFlowUtils.createContextualEventPayLoad(id, taskFlowId, name);
TaskFlowUtils.raiseContextualEvent(TaskFlowUtils.RAISE_TASK_FLOW_LAUNCH_EVENT, jsonPayLoad);
}
它有点奏效,但只成功了一半。取消按钮每次都会正确关闭选项卡,但提交按钮只会在请求没有留下请求 ID 时关闭选项卡。有任何想法吗?