本章围绕 Oracle APEX 的工作流和人工任务能力,说明如何把跨人员、系统和时间跨度的业务流程自动化。内容覆盖工作流设计器、活动连接、参数变量、后台执行、人工审批、患者入院示例、业务实体生命周期、事件驱动继续执行,以及工作流和任务的调试、部署与清理。
25 自动化业务流程#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/automating-business-processes.html
业务流程通常跨越多名同事、外部系统、等待时间和审批节点。APEX Workflows 的价值在于把这些步骤建模为可运行、可观察、可维护的流程实例。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
25.1 使用工作流自动化流程#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/automating-process-workflow.html
本页是该章节层级中的一个具体操作点,应结合上下文把配置动作、运行时效果和验证方式串起来理解。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
本页涉及的关键 APEX 标签或对象包括:Workflow Designer、Activities、Wait、Create Page Wizard。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.2 探索患者入院示例#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/exploring-patient-onboarding-example.html
本页是该章节层级中的一个具体操作点,应结合上下文把配置动作、运行时效果和验证方式串起来理解。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
本页涉及的关键 APEX 标签或对象包括:Workflow Designer、Automation。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.3 自动化业务实体生命周期逻辑#
本页是该章节层级中的一个具体操作点,应结合上下文把配置动作、运行时效果和验证方式串起来理解。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
25.4 维护工作流流程#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/maintaining-workflow-processes.html
本页是该章节层级中的一个具体操作点,应结合上下文把配置动作、运行时效果和验证方式串起来理解。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
25.1.1 使用图表和活动面板#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/using-diagram-and-activities-palette.html
这一组内容聚焦工作流建模基础:在 Workflow Designer 中放置活动、连接路径、设置参数变量,并让工作流在后台可靠执行。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
本页涉及的关键 APEX 标签或对象包括:Workflow Designer、Activities、Property Editor、Switch。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.1.2 浏览原生活动#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/surveying-native-activities.html
这一组内容聚焦工作流建模基础:在 Workflow Designer 中放置活动、连接路径、设置参数变量,并让工作流在后台可靠执行。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
本页涉及的关键 APEX 标签或对象包括:Activities、Human Task、Wait、Switch、Invoke API、SQL、PL/SQL。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.1.3 连接和路由活动#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/connecting-and-routing-activities.html
这一组内容聚焦工作流建模基础:在 Workflow Designer 中放置活动、连接路径、设置参数变量,并让工作流在后台可靠执行。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
本页涉及的关键 APEX 标签或对象包括:Activities、Property Editor、Switch。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.1.4 保存工作流前解决错误#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/resolving-errors-saving-workflow.html
这一组内容聚焦工作流建模基础:在 Workflow Designer 中放置活动、连接路径、设置参数变量,并让工作流在后台可靠执行。
本页说明运行时数据处理。重点是页面项、任务参数、工作流变量和业务表列之间的数据流,以及提交前后的校验。
本页涉及的关键 APEX 标签或对象包括:Workflow Designer。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.1.5 将表与工作流关联#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/associating-table-workflow.html
这一组内容聚焦工作流建模基础:在 Workflow Designer 中放置活动、连接路径、设置参数变量,并让工作流在后台可靠执行。
本页说明对象之间的关系和责任分配。关注参数传递、参与者来源、任务分配规则,以及特殊情况的处理。
本页涉及的关键 APEX 标签或对象包括:SQL。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.1.6 为活动检索数据#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/retrieving-data-activity.html
这一组内容聚焦工作流建模基础:在 Workflow Designer 中放置活动、连接路径、设置参数变量,并让工作流在后台可靠执行。
本页说明如何查看或检索运行时信息。关注可用视图、页面入口、查询字段和展示范围,避免把内部状态误当成业务状态。
本页涉及的关键 APEX 标签或对象包括:SQL。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.1.7 定义参数和变量#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/defining-parameters-and-variables.html
这一组内容聚焦工作流建模基础:在 Workflow Designer 中放置活动、连接路径、设置参数变量,并让工作流在后台可靠执行。
官方步骤的重点是配置属性:确认对象范围,设置必要参数、条件、可见性或行为,然后通过运行页面检查配置是否生效。
本页涉及的关键 APEX 标签或对象包括:Activities、Create Page Wizard、SQL、PL/SQL。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.1.8 理解后台执行#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/understanding-background-execution.html
这一组内容聚焦工作流建模基础:在 Workflow Designer 中放置活动、连接路径、设置参数变量,并让工作流在后台可靠执行。
本页偏概念说明,重点是理解该机制解决什么问题、何时使用,以及它与工作流、任务、页面或数据模型的边界。
本页涉及的关键 APEX 标签或对象包括:APEX_HUMAN_TASK。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.1.9 在工作流中获取审批或用户输入#
这一组内容聚焦工作流中的审批和用户输入。Human Task 活动把后台流程与用户任务列表连接起来。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
本页涉及的关键 APEX 标签或对象包括:Wait。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.1.10 识别工作流参与者#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/identifying-workflow-participants.html
这一组内容聚焦工作流建模基础:在 Workflow Designer 中放置活动、连接路径、设置参数变量,并让工作流在后台可靠执行。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
本页涉及的关键 APEX 标签或对象包括:SQL。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.1.11 列出工作流并查看详情#
这一组内容聚焦工作流建模基础:在 Workflow Designer 中放置活动、连接路径、设置参数变量,并让工作流在后台可靠执行。
本页说明如何查看或检索运行时信息。关注可用视图、页面入口、查询字段和展示范围,避免把内部状态误当成业务状态。
本页涉及的关键 APEX 标签或对象包括:Create Page Wizard、Page Designer。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
select * from table ( apex_workflow.get_workflows ( p_context => 'ADMIN_WORKFLOWS' --, p_application_id => :APP_ID ) )
| Report Context | Instances Where Current User Is | API Constant |
|---|---|---|
| My Workflows | Workflow Owner | MY_WORKFLOWS |
| Admin Workflows | Workflow Administrator | ADMIN_WORKFLOWS |
| Initiated by Me | Initiator | INITIATED_BY_ME |
25.2.1 理解当前流程#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/understanding-current-process.html
这一组内容使用 Woods Clinic 患者入院作为完整示例,展示如何从手工流程识别自动化机会并逐步建立工作流。
本页偏概念说明,重点是理解该机制解决什么问题、何时使用,以及它与工作流、任务、页面或数据模型的边界。
25.2.2 识别自动化机会#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/identifying-automation-opportunities.html
这一组内容使用 Woods Clinic 患者入院作为完整示例,展示如何从手工流程识别自动化机会并逐步建立工作流。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
本页涉及的关键 APEX 标签或对象包括:Automation。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.2.3 启动患者入院工作流#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/starting-patient-onboarding-workflow.html
这一组内容使用 Woods Clinic 患者入院作为完整示例,展示如何从手工流程识别自动化机会并逐步建立工作流。
官方步骤的重点是创建或启动相应对象:先进入正确的 Builder 入口,设置名称、类型、来源和目标,再保存并运行验证。
本页涉及的关键 APEX 标签或对象包括:Workflow Designer、Property Editor、Page Designer。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.2.4 关联 Patients 表#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/associating-patients-table.html
这一组内容使用 Woods Clinic 患者入院作为完整示例,展示如何从手工流程识别自动化机会并逐步建立工作流。
本页说明对象之间的关系和责任分配。关注参数传递、参与者来源、任务分配规则,以及特殊情况的处理。
25.2.5 配置有意义的标题#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/configuring-meaningful-title.html
这一组内容使用 Woods Clinic 患者入院作为完整示例,展示如何从手工流程识别自动化机会并逐步建立工作流。
官方步骤的重点是配置属性:确认对象范围,设置必要参数、条件、可见性或行为,然后通过运行页面检查配置是否生效。
New Patient &FIRST_NAME. &LAST_NAME.
25.2.6 用可视化方式构建患者入院流程#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/building-patient-onboarding-visually.html
这一组内容使用 Woods Clinic 患者入院作为完整示例,展示如何从手工流程识别自动化机会并逐步建立工作流。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
本页涉及的关键 APEX 标签或对象包括:Activities、Property Editor、Human Task、Wait、Switch。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.3.1 学习医疗程序生命周期#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/learning-medical-procedure-lifecycle.html
这一组内容把工作流用于医疗程序生命周期。业务表中的状态仍是业务事实,工作流负责协调跨步骤逻辑。
本页偏概念说明,重点是理解该机制解决什么问题、何时使用,以及它与工作流、任务、页面或数据模型的边界。
25.3.2 查看医疗程序生命周期#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/seeing-medical-procedure-lifecycle.html
这一组内容把工作流用于医疗程序生命周期。业务表中的状态仍是业务事实,工作流负责协调跨步骤逻辑。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
25.3.3 建模医疗程序生命周期#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/modeling-medical-procedure-lifecycle.html
这一组内容把工作流用于医疗程序生命周期。业务表中的状态仍是业务事实,工作流负责协调跨步骤逻辑。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
本页涉及的关键 APEX 标签或对象包括:Wait、Switch。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.3.4 启动生命周期工作流#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/starting-lifecycle-workflow.html
这一组内容把工作流用于医疗程序生命周期。业务表中的状态仍是业务事实,工作流负责协调跨步骤逻辑。
官方步骤的重点是创建或启动相应对象:先进入正确的 Builder 入口,设置名称、类型、来源和目标,再保存并运行验证。
本页涉及的关键 APEX 标签或对象包括:APEX_WORKFLOW、Invoke API、SQL、PL/SQL。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
-- in frc_onboarding package procedure completed_registration(p_patient_id number) is l_patient t_patient := patient(p_patient_id); l_new_procedure_id number; begin -- insert initial procedure for j in (select l_patient.id as patient_id, code, 'AwaitingSchedule' as status, price, duration_hours from frc_medical_procedures where code = l_patient.initial_procedure) loop insert into frc_patient_procedures( patient_id, medical_procedure, status, amount_due, duration_hours) values ( j.patient_id, j.code, j.status, j.price, j.duration_hours) return id into l_new_procedure_id; start_workflow_for(l_new_procedure_id); end loop; end;
-- internal in package frc_procedure_lifecycle ------------------------------------------------------------------ -- Start a procedure_lifecycle workflow instance associated with -- the supplied patient procedure id ------------------------------------------------------------------ procedure start_workflow_for( p_procedure_id in number) is l_workflow_id number; begin l_workflow_id := apex_workflow.start_workflow( p_application_id => frc_app.clinic_app_id, p_static_id => 'procedure_lifecycle', p_detail_pk => p_procedure_id, p_initiator => 'ADMIN'); end start_workflow_for;
PLS-00221: 'START_WORKFLOW' is not a procedure or is undefined
25.3.5 跟踪医疗程序生命周期#
这一组内容把工作流用于医疗程序生命周期。业务表中的状态仍是业务事实,工作流负责协调跨步骤逻辑。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
25.3.6 通知工作流数据变更#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/notifying-workflow-data-changes.html
这一组内容把工作流用于医疗程序生命周期。业务表中的状态仍是业务事实,工作流负责协调跨步骤逻辑。
本页说明通知类配置。重点是收件人来源、模板占位符、深链接、触发事件,以及通知发出前应具备的业务上下文。
本页涉及的关键 APEX 标签或对象包括:Wait、Automation、Trigger。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.4.1 导入应用与删除应用的区别#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/importing-vs-deleting-application.html
这一组内容说明工作流维护。发布前需要区分开发实例与生产实例,并理解版本、Debug、字典视图和清理策略。
本页属于维护和发布主题。重点是开发模式、版本状态、Debug 跟踪、导入升级、清理策略和生产部署边界。
25.4.2 识别开发模式#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/recognizing-development-mode.html
这一组内容说明工作流维护。发布前需要区分开发实例与生产实例,并理解版本、Debug、字典视图和清理策略。
本页偏概念说明,重点是理解该机制解决什么问题、何时使用,以及它与工作流、任务、页面或数据模型的边界。
25.4.3 调试业务流程逻辑#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/debugging-business-process-logic.html
这一组内容说明工作流维护。发布前需要区分开发实例与生产实例,并理解版本、Debug、字典视图和清理策略。
本页属于维护和发布主题。重点是开发模式、版本状态、Debug 跟踪、导入升级、清理策略和生产部署边界。
本页涉及的关键 APEX 标签或对象包括:APEX_DEBUG。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.4.4 访问工作流和任务数据#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/accessing-workflow-and-task-data.html
这一组内容说明工作流维护。发布前需要区分开发实例与生产实例,并理解版本、Debug、字典视图和清理策略。
本页说明如何查看或检索运行时信息。关注可用视图、页面入口、查询字段和展示范围,避免把内部状态误当成业务状态。
本页涉及的关键 APEX 标签或对象包括:Activities、APEX_WORKFLOW、APEX_HUMAN_TASK。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
| Workflow | View | Parent View |
|---|---|---|
| Definitions | APEX_APPL_WORKFLOWS |
APEX_APPLICATIONS |
| Parameter Definitions | APEX_APPL_WORKFLOW_PARAMS |
APEX_APPL_WORKFLOWS |
| Process Parameter Values | APEX_APPL_WORKFLOW_COMP_PARAMS |
APEX_APPLICATION_PAGE_PROC |
| Versions | APEX_APPL_WORKFLOW_VERSIONS |
APEX_APPL_WORKFLOWS |
| Variable Definitions | APEX_APPL_WORKFLOW_VARIABLES |
APEX_APPL_WORKFLOW_VERSIONS |
| Participant Definitions | APEX_APPL_WORKFLOW_PARTICIPANTS |
APEX_APPL_WORKFLOW_VERSIONS |
| Activity Definitions | APEX_APPL_WORKFLOW_ACTIVITIES |
APEX_APPL_WORKFLOW_VERSIONS |
| Activity Variable Definitions | APEX_APPL_WORKFLOW_ACT_VARS |
APEX_APPL_WORKFLOW_ACTIVITIES |
| Branches | APEX_APPL_WORKFLOW_BRANCHES |
APEX_APPL_WORKFLOW_ACTIVITIES |
| Transitions | APEX_APPL_WORKFLOW_TRANSITIONS |
APEX_APPL_WORKFLOW_ACTIVITIES |
| Instances | APEX_WORKFLOWS |
APEX_APPL_WORKFLOW_VERSIONS |
| Activities | APEX_WORKFLOW_ACTIVITIES |
APEX_WORKFLOWS |
| Activity Variables | APEX_WORKFLOW_ACTIVITY_VARS |
APEX_WORKFLOW_ACTIVITIES |
| Variables | APEX_WORKFLOW_VARIABLES |
APEX_WORKFLOWS |
| Parameters | APEX_WORKFLOW_PARMETERS |
APEX_WORKFLOWS |
| Participants | APEX_WORKFLOW_PARTICIPANTS |
APEX_WORKFLOWS |
| Audit | APEX_WORKFLOW_AUDIT |
APEX_WORKFLOWS |
| Task | View | Parent View |
|---|---|---|
| Definitions | APEX_APPL_TASKDEFS |
APEX_APPLICATIONS |
| Parameter Definitions | APEX_APPL_TASKDEF_PARAMS |
APEX_APPL_TASKDEFS |
| Participant Definitions | APEX_APPL_TASKDEF_PARTICIPANTS |
APEX_APPL_TASKDEFS |
| Action Definitions | APEX_APPL_TASKDEF_ACTIONS |
APEX_APPL_TASKDEFS |
| Instances | APEX_TASKS |
APEX_APPL_TASKDEFS |
| Parameters | APEX_TASK_PARMETERS |
APEX_TASKS |
| Participants | APEX_TASK_PARTICIPANTS |
APEX_TASKS |
| History | APEX_TASK_HISTORY |
APEX_TASKS |
| Comments | APEX_TASK_COMMENTS |
APEX_TASKS |
25.4.5 理解任务和工作流清理#
这一组内容说明工作流维护。发布前需要区分开发实例与生产实例,并理解版本、Debug、字典视图和清理策略。
本页偏概念说明,重点是理解该机制解决什么问题、何时使用,以及它与工作流、任务、页面或数据模型的边界。
25.4.6 激活开发中的工作流#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/activating-development-workflow.html
这一组内容说明工作流维护。发布前需要区分开发实例与生产实例,并理解版本、Debug、字典视图和清理策略。
本页属于维护和发布主题。重点是开发模式、版本状态、Debug 跟踪、导入升级、清理策略和生产部署边界。
本页涉及的关键 APEX 标签或对象包括:Property Editor。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.4.7 将工作流部署到生产#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/deploying-workflows-production.html
这一组内容说明工作流维护。发布前需要区分开发实例与生产实例,并理解版本、Debug、字典视图和清理策略。
本页属于维护和发布主题。重点是开发模式、版本状态、Debug 跟踪、导入升级、清理策略和生产部署边界。
25.4.8 删除没有实例的工作流#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/deleting-workflow-no-instances.html
这一组内容说明工作流维护。发布前需要区分开发实例与生产实例,并理解版本、Debug、字典视图和清理策略。
本页属于维护和发布主题。重点是开发模式、版本状态、Debug 跟踪、导入升级、清理策略和生产部署边界。
本页涉及的关键 APEX 标签或对象包括:APEX_WORKFLOW、SQL。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
-- list procedure_lifecycle workflow versions in use select distinct workflow_version from apex_workflows where application_id = 103 and workflow_def_static_id = 'procedure_lifecycle' order by workflow_version
25.4.9 移除开发实例#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/removing-development-instances.html
这一组内容说明工作流维护。发布前需要区分开发实例与生产实例,并理解版本、Debug、字典视图和清理策略。
本页属于维护和发布主题。重点是开发模式、版本状态、Debug 跟踪、导入升级、清理策略和生产部署边界。
本页涉及的关键 APEX 标签或对象包括:APEX_WORKFLOW。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.1.3.1 从面板添加活动#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/adding-activity-palette.html
这一组内容聚焦工作流建模基础:在 Workflow Designer 中放置活动、连接路径、设置参数变量,并让工作流在后台可靠执行。
官方步骤的重点是创建或启动相应对象:先进入正确的 Builder 入口,设置名称、类型、来源和目标,再保存并运行验证。
本页涉及的关键 APEX 标签或对象包括:Activities。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.1.3.2 命名新活动#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/naming-new-activity.html
这一组内容聚焦工作流建模基础:在 Workflow Designer 中放置活动、连接路径、设置参数变量,并让工作流在后台可靠执行。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
本页涉及的关键 APEX 标签或对象包括:Activities、Property Editor。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.1.3.3 更改连接的目标活动#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/changing-connections-target-activity.html
这一组内容聚焦工作流建模基础:在 Workflow Designer 中放置活动、连接路径、设置参数变量,并让工作流在后台可靠执行。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
本页涉及的关键 APEX 标签或对象包括:Activities。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.1.3.4 使用锚点微调连线斜率#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/fine-tuning-line-slope-anchor-dots.html
这一组内容聚焦工作流建模基础:在 Workflow Designer 中放置活动、连接路径、设置参数变量,并让工作流在后台可靠执行。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
本页涉及的关键 APEX 标签或对象包括:Activities。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.1.3.5 使用拖拽手柄移动连接#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/moving-connections-grab-handles.html
这一组内容聚焦工作流建模基础:在 Workflow Designer 中放置活动、连接路径、设置参数变量,并让工作流在后台可靠执行。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
本页涉及的关键 APEX 标签或对象包括:Activities。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.1.3.6 在活动之间添加连接#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/adding-connection-activities.html
这一组内容聚焦工作流建模基础:在 Workflow Designer 中放置活动、连接路径、设置参数变量,并让工作流在后台可靠执行。
官方步骤的重点是创建或启动相应对象:先进入正确的 Builder 入口,设置名称、类型、来源和目标,再保存并运行验证。
本页涉及的关键 APEX 标签或对象包括:Activities。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.1.3.7 使用折点弯折连接#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/bending-connection-elbow-dots.html
这一组内容聚焦工作流建模基础:在 Workflow Designer 中放置活动、连接路径、设置参数变量,并让工作流在后台可靠执行。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
本页涉及的关键 APEX 标签或对象包括:Activities。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.1.3.8 从现有活动添加下一活动#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/adding-next-activity-existing-one.html
这一组内容聚焦工作流建模基础:在 Workflow Designer 中放置活动、连接路径、设置参数变量,并让工作流在后台可靠执行。
官方步骤的重点是创建或启动相应对象:先进入正确的 Builder 入口,设置名称、类型、来源和目标,再保存并运行验证。
本页涉及的关键 APEX 标签或对象包括:Activities、Property Editor、Switch。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.1.3.9 配置 Switch 连接#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/configuring-switch-connection.html
这一组内容聚焦工作流建模基础:在 Workflow Designer 中放置活动、连接路径、设置参数变量,并让工作流在后台可靠执行。
官方步骤的重点是配置属性:确认对象范围,设置必要参数、条件、可见性或行为,然后通过运行页面检查配置是否生效。
本页涉及的关键 APEX 标签或对象包括:Activities、Switch。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.1.3.10 在现有活动之间插入活动#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/inserting-activity-existing-ones.html
这一组内容聚焦工作流建模基础:在 Workflow Designer 中放置活动、连接路径、设置参数变量,并让工作流在后台可靠执行。
官方步骤的重点是创建或启动相应对象:先进入正确的 Builder 入口,设置名称、类型、来源和目标,再保存并运行验证。
本页涉及的关键 APEX 标签或对象包括:Activities。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.1.3.11 移动一组活动#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/moving-group-activities.html
这一组内容聚焦工作流建模基础:在 Workflow Designer 中放置活动、连接路径、设置参数变量,并让工作流在后台可靠执行。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
本页涉及的关键 APEX 标签或对象包括:Activities。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.1.3.12 将连接置于活动前方#
这一组内容聚焦工作流建模基础:在 Workflow Designer 中放置活动、连接路径、设置参数变量,并让工作流在后台可靠执行。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
本页涉及的关键 APEX 标签或对象包括:Activities。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.1.7.1 创建工作流参数#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/creating-workflow-parameter.html
这一组内容聚焦工作流建模基础:在 Workflow Designer 中放置活动、连接路径、设置参数变量,并让工作流在后台可靠执行。
官方步骤的重点是创建或启动相应对象:先进入正确的 Builder 入口,设置名称、类型、来源和目标,再保存并运行验证。
本页涉及的关键 APEX 标签或对象包括:Property Editor。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.1.7.2 创建工作流变量#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/creating-workflow-variable.html
这一组内容聚焦工作流建模基础:在 Workflow Designer 中放置活动、连接路径、设置参数变量,并让工作流在后台可靠执行。
官方步骤的重点是创建或启动相应对象:先进入正确的 Builder 入口,设置名称、类型、来源和目标,再保存并运行验证。
本页涉及的关键 APEX 标签或对象包括:Property Editor、Human Task、Invoke API。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.1.9.1 将工作分配到用户任务收件箱#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/assigning-work-users-task-inbox.html
这一组内容聚焦工作流中的审批和用户输入。Human Task 活动把后台流程与用户任务列表连接起来。
本页说明对象之间的关系和责任分配。关注参数传递、参与者来源、任务分配规则,以及特殊情况的处理。
本页涉及的关键 APEX 标签或对象包括:Human Task、Task Definition、Potential Owners、Page Designer。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.1.9.2 等待信号后继续#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/waiting-signal-continue.html
这一组内容聚焦工作流中的审批和用户输入。Human Task 活动把后台流程与用户任务列表连接起来。
本页说明异步流程控制。关注等待点、继续信号、超时或事件处理,以及重复触发和权限校验。
本页涉及的关键 APEX 标签或对象包括:APEX_WORKFLOW、Wait、Deep Linking。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.1.10.1 配置静态工作流参与者#
这一组内容聚焦工作流建模基础:在 Workflow Designer 中放置活动、连接路径、设置参数变量,并让工作流在后台可靠执行。
官方步骤的重点是配置属性:确认对象范围,设置必要参数、条件、可见性或行为,然后通过运行页面检查配置是否生效。
本页涉及的关键 APEX 标签或对象包括:Property Editor、SQL。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.1.10.2 动态确定参与者#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/determining-participants-dynamically.html
这一组内容聚焦工作流建模基础:在 Workflow Designer 中放置活动、连接路径、设置参数变量,并让工作流在后台可靠执行。
本页说明对象之间的关系和责任分配。关注参数传递、参与者来源、任务分配规则,以及特殊情况的处理。
本页涉及的关键 APEX 标签或对象包括:APEX_WORKFLOW、SQL、PL/SQL。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
your_app_pkg .owners_for_workflow(:APEX$WORKFLOW_ID)
25.1.10.3 传入工作流参与者#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/passing-workflow-participants.html
这一组内容聚焦工作流建模基础:在 Workflow Designer 中放置活动、连接路径、设置参数变量,并让工作流在后台可靠执行。
本页说明对象之间的关系和责任分配。关注参数传递、参与者来源、任务分配规则,以及特殊情况的处理。
本页涉及的关键 APEX 标签或对象包括:SQL。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
:P_ASSIGNEE_LIST
select column_value from apex_string.split(:P_ASSIGNEE_LIST,':')
25.2.1.1 咨询医疗程序#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/inquiring-procedure.html
这一组内容使用 Woods Clinic 患者入院作为完整示例,展示如何从手工流程识别自动化机会并逐步建立工作流。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
25.2.1.2 手动为患者办理入院#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/onboarding-patient-manually.html
这一组内容使用 Woods Clinic 患者入院作为完整示例,展示如何从手工流程识别自动化机会并逐步建立工作流。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
25.2.6.1 将活动应用到患者入院流程#
这一组内容使用 Woods Clinic 患者入院作为完整示例,展示如何从手工流程识别自动化机会并逐步建立工作流。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
本页涉及的关键 APEX 标签或对象包括:Activities、Human Task、Wait、Switch、Invoke API。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.2.6.2 使用 API 评估空间距离#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/evaluating-spatial-distance-api.html
这一组内容使用 Woods Clinic 患者入院作为完整示例,展示如何从手工流程识别自动化机会并逐步建立工作流。
本页偏概念说明,重点是理解该机制解决什么问题、何时使用,以及它与工作流、任务、页面或数据模型的边界。
本页涉及的关键 APEX 标签或对象包括:Property Editor、Invoke API、SQL、PL/SQL。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
-- Result = 'Within Range' or 'Out of Range' function evaluate_proximity(p_patient_id number) return varchar2 is l_result_val varchar2(30); /* | Assume the clinic is located at: | 1244 Cotter Way, Hayward, CA 94541 */ c_clinic_lat constant number := 37.68255; c_clinic_long constant number := -122.09026; begin begin select case when sdo_geom.sdo_distance( sdo_geometry(2001,4326, sdo_point_type(pat.address_longitude, pat.address_latitude, null),null,null), sdo_geometry(2001,4326, sdo_point_type(c_clinic_long, c_clinic_lat, null),null,null), tol=>1, unit=>'unit=KM' ) > 400 /* Kilometers */ then 'Out of Range' else 'Within Range' end into l_result_val from frc_patients pat where pat.id = p_patient_id and address_latitude is not null and address_longitude is not null; exception when no_data_found then l_result_val := 'Within Range'; end; return l_result_val; end;
25.2.6.3 使用条件切换路径#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/switching-path-using-condition.html
这一组内容使用 Woods Clinic 患者入院作为完整示例,展示如何从手工流程识别自动化机会并逐步建立工作流。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
本页涉及的关键 APEX 标签或对象包括:Switch。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
| Type | Routes Based On | Outbound Connections |
|---|---|---|
| Check Workflow Variable | Distinct values of a variable | One connection per unique value. Otherwise evaluated last. |
| Case | Distinct values of an expression | Any number of connections, each configured with an Execute Sequence. First in sequence to evaluate to true is used. Sequence Otherwise last if used. |
| True False Check | True or false result of boolean expression | One True, one False |
| If Elsif Else | Evaluating connection conditions in execution sequence order | Any number of connections, each with a Server-side Condition configured and an Execute Sequence. First in sequence to evaluate to true is used. |
25.2.6.4 使用机器学习预测结果#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/predicting-results-machine-learning.html
这一组内容使用 Woods Clinic 患者入院作为完整示例,展示如何从手工流程识别自动化机会并逐步建立工作流。
本页偏概念说明,重点是理解该机制解决什么问题、何时使用,以及它与工作流、任务、页面或数据模型的边界。
25.2.6.5 可视化工作流进度#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/visualizing-workflow-progress.html
这一组内容使用 Woods Clinic 患者入院作为完整示例,展示如何从手工流程识别自动化机会并逐步建立工作流。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
25.2.6.6 等待人工任务完成#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/awaiting-completion-human-task.html
这一组内容使用 Woods Clinic 患者入院作为完整示例,展示如何从手工流程识别自动化机会并逐步建立工作流。
本页说明异步流程控制。关注等待点、继续信号、超时或事件处理,以及重复触发和权限校验。
本页涉及的关键 APEX 标签或对象包括:Human Task、Task Definition、Wait、Create Page Wizard。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.2.6.7 通过邮件通知用户拒绝结果#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/emailing-users-rejection.html
这一组内容使用 Woods Clinic 患者入院作为完整示例,展示如何从手工流程识别自动化机会并逐步建立工作流。
本页说明通知类配置。重点是收件人来源、模板占位符、深链接、触发事件,以及通知发出前应具备的业务上下文。
本页涉及的关键 APEX 标签或对象包括:Workflow Designer、Send Email。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.2.6.8 预配新用户账户#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/provisioning-new-user-account.html
这一组内容使用 Woods Clinic 患者入院作为完整示例,展示如何从手工流程识别自动化机会并逐步建立工作流。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
本页涉及的关键 APEX 标签或对象包括:Wait、SQL、PL/SQL。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.2.6.9 等待患者完善档案#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/waiting-patient-completes-profile.html
这一组内容使用 Woods Clinic 患者入院作为完整示例,展示如何从手工流程识别自动化机会并逐步建立工作流。
本页说明异步流程控制。关注等待点、继续信号、超时或事件处理,以及重复触发和权限校验。
本页涉及的关键 APEX 标签或对象包括:Wait。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.3.5.1 启动 Woods Clinic 应用#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/launching-woods-clinic-application.html
这一组内容把工作流用于医疗程序生命周期。业务表中的状态仍是业务事实,工作流负责协调跨步骤逻辑。
官方步骤的重点是创建或启动相应对象:先进入正确的 Builder 入口,设置名称、类型、来源和目标,再保存并运行验证。
25.3.5.2 安排医疗程序#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/scheduling-medical-procedure.html
这一组内容把工作流用于医疗程序生命周期。业务表中的状态仍是业务事实,工作流负责协调跨步骤逻辑。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
25.3.5.3 接收医疗程序排期#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/receiving-medical-procedure-schedule.html
这一组内容把工作流用于医疗程序生命周期。业务表中的状态仍是业务事实,工作流负责协调跨步骤逻辑。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
25.3.5.4 程序完成后让患者出院#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/discharging-patient-procedure.html
这一组内容把工作流用于医疗程序生命周期。业务表中的状态仍是业务事实,工作流负责协调跨步骤逻辑。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
25.3.5.5 准备像素级精确 PDF 发票#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/preparing-pixel-perfect-pdf-invoice.html
这一组内容把工作流用于医疗程序生命周期。业务表中的状态仍是业务事实,工作流负责协调跨步骤逻辑。
本页说明文档或内容生成流程。关注数据查询、模板布局、后台执行和生成结果如何回写或交付。
25.3.5.6 与保险机构审核发票#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/reviewing-invoice-insurance-provider.html
这一组内容把工作流用于医疗程序生命周期。业务表中的状态仍是业务事实,工作流负责协调跨步骤逻辑。
本页说明如何查看或检索运行时信息。关注可用视图、页面入口、查询字段和展示范围,避免把内部状态误当成业务状态。
25.3.5.7 在后台重新生成发票#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/regenerating-invoice-background.html
这一组内容把工作流用于医疗程序生命周期。业务表中的状态仍是业务事实,工作流负责协调跨步骤逻辑。
本页说明文档或内容生成流程。关注数据查询、模板布局、后台执行和生成结果如何回写或交付。
25.3.5.8 向患者开具余额发票#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/invoicing-patient-balance.html
这一组内容把工作流用于医疗程序生命周期。业务表中的状态仍是业务事实,工作流负责协调跨步骤逻辑。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
25.3.5.9 确认收到付款#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/acknowledging-receipt-payment.html
这一组内容把工作流用于医疗程序生命周期。业务表中的状态仍是业务事实,工作流负责协调跨步骤逻辑。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
25.3.5.10 确认生命周期完成#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/confirming-lifecycle-is-complete.html
这一组内容把工作流用于医疗程序生命周期。业务表中的状态仍是业务事实,工作流负责协调跨步骤逻辑。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
25.3.6.1 理解生命周期事件策略#
这一组内容把工作流用于医疗程序生命周期。业务表中的状态仍是业务事实,工作流负责协调跨步骤逻辑。
本页偏概念说明,重点是理解该机制解决什么问题、何时使用,以及它与工作流、任务、页面或数据模型的边界。
本页涉及的关键 APEX 标签或对象包括:APEX_WORKFLOW、Automation。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.3.6.2 简化事件管理#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/simplifying-event-management.html
这一组内容把工作流用于医疗程序生命周期。业务表中的状态仍是业务事实,工作流负责协调跨步骤逻辑。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
package frc_procedure_lifecycle is type t_lifecycle_event is record (id frc_patient_procedure_events.id%type); type t_lifecycle_events is table of t_lifecycle_event; ------------------------------------------------------------------ -- Add procedure lifecycle event to table processed by automation ------------------------------------------------------------------ procedure add_event( p_procedure_id in number, p_type in varchar2); ------------------------------------------------------------------ -- Process procedure lifecycle event (called by automation) ------------------------------------------------------------------ procedure process_event( p_event_id in number); ------------------------------------------------------------------ -- Return list of event ids to process (used in automation query) ------------------------------------------------------------------ function event_list return t_lifecycle_events pipelined; end frc_procedure_lifecycle;
-- external in package frc_procedure_lifecycle procedure add_event( p_procedure_id in number, p_type in varchar2) is begin insert into frc_patient_procedure_events(procedure_id, event_type) values (p_procedure_id, p_type); end add_event;
-- external in package frc_procedure_lifecycle procedure process_event( p_event_id in number) is l_success boolean := false; begin for j in (select id, procedure_id, event_type from frc_patient_procedure_events where id = p_event_id ) loop if j.event_type in ('STATUS','SCHEDULE') then l_success := notify_data_changed(j.procedure_id,j.event_type); if l_success then delete from frc_patient_procedure_events where id = p_event_id; end if; end if; end loop; end process_event;
function event_list return t_lifecycle_events pipelined is begin for j in (select id from (select id, row_number() over (partition by procedure_id order by created) as rn from frc_patient_procedure_events ) where rn = 1) loop pipe row (t_lifecycle_event(j.id)); end loop; exception when no_data_needed then null; end event_list;
25.3.6.3 使用触发器添加事件#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/adding-events-using-trigger.html
这一组内容把工作流用于医疗程序生命周期。业务表中的状态仍是业务事实,工作流负责协调跨步骤逻辑。
官方步骤的重点是创建或启动相应对象:先进入正确的 Builder 入口,设置名称、类型、来源和目标,再保存并运行验证。
本页涉及的关键 APEX 标签或对象包括:Trigger。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
trigger frc_patient_procedures_au after update on frc_patient_procedures for each row declare l_event_type varchar2(80); begin if :new.status != :old.status then l_event_type := 'STATUS'; elsif :new.procedure_date != :old.procedure_date or :new.doctor != :old.doctor or :new.duration_hours != :old.duration_hours then l_event_type := 'SCHEDULE'; end if; if l_event_type is not null then frc_procedure_lifecycle.add_event(:new.id, l_event_type); end if; end;
25.3.6.4 使用自动化处理事件#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/processing-events-automation.html
这一组内容把工作流用于医疗程序生命周期。业务表中的状态仍是业务事实,工作流负责协调跨步骤逻辑。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
本页涉及的关键 APEX 标签或对象包括:Automation。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
select id from table(frc_procedure_lifecycle.event_list)
frc_procedure_lifecycle.process_event(:ID);
25.3.6.5 继续等待中的生命周期工作流#
这一组内容把工作流用于医疗程序生命周期。业务表中的状态仍是业务事实,工作流负责协调跨步骤逻辑。
本页说明异步流程控制。关注等待点、继续信号、超时或事件处理,以及重复触发和权限校验。
本页涉及的关键 APEX 标签或对象包括:APEX_WORKFLOW、Wait。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
-- internal in package frc_procedure_lifecycle ------------------------------------------------------------------ -- Notify an instance of the procedure_lifecycle workflow associated -- with the supplied patient procedure id that ------------------------------------------------------------------ function notify_data_changed( p_procedure_id in number, p_event_type in varchar2) return boolean is l_workflow_id number := workflow_id_for_waiting_activity( 'procedure_lifecycle', 'status_or_date_changed', p_procedure_id); begin if l_workflow_id is not null then apex_workflow.continue_activity( p_instance_id => l_workflow_id, p_static_id => 'status_or_date_changed', p_activity_params => apex_global_application.vc_map( 'V_WHAT_CHANGED' => p_event_type)); return true; end if; return false; end notify_data_changed;
-- internal in package frc_procedure_lifecycle ------------------------------------------------------------------ -- Return the active workflow id of static def id type passed in -- associated with provided PK and having a waiting activity with -- supplied static id that can be continued. Otherwise, null ------------------------------------------------------------------ function workflow_id_for_waiting_activity( p_workflow_static_id in varchar2, p_waiting_activity_static_id in varchar2, p_details_pk in varchar2) return number is l_ret number; begin -- Only return the workflow id if the workflow is in ACTIVE -- state and the indicated continue activity is in WAITING state for wf in ( select workflow_id from apex_workflow_activities ac join apex_workflows wf using (workflow_id) where wf.detail_pk = p_details_pk and wf.workflow_def_static_id = p_workflow_static_id and ac.static_id = p_waiting_activity_static_id and ac.state = 'WAITING' and wf.state_code = 'ACTIVE') loop l_ret := wf.workflow_id; end loop; if l_ret is null then apex_debug.warn('workflow_id_for_waiting_activity: No active workflow (%s)' |' with activity (%s) waiting for pk (%s)', p_workflow_static_id, p_waiting_activity_static_id, p_workflow_static_id); end if; return l_ret; end workflow_id_for_waiting_activity;
25.4.3.1 查询最近的 Debug 消息#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/querying-recent-debug-messages.html
这一组内容说明工作流维护。发布前需要区分开发实例与生产实例,并理解版本、Debug、字典视图和清理策略。
本页说明如何查看或检索运行时信息。关注可用视图、页面入口、查询字段和展示范围,避免把内部状态误当成业务状态。
本页涉及的关键 APEX 标签或对象包括:APEX_DEBUG、SQL。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
select apex_util.get_since(message_timestamp) as when, message from apex_debug_messages order by message_timestamp desc
select message_timestamp, elapsed_time, execution_time, message, page_id, workflow_instance_id, session_id, message_level, trim(replace(call_stack,'%')) as call_stack from apex_debug_messages where application_id = :APP_ID and apex_user = 'nobody' and call_stack like '%\%WORKFLOW.%' escape '\' and message_level < 9 order by message_timestamp desc
25.4.3.2 主动启用 Debug 跟踪#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/enabling-debug-tracing-proactively.html
这一组内容说明工作流维护。发布前需要区分开发实例与生产实例,并理解版本、Debug、字典视图和清理策略。
本页属于维护和发布主题。重点是开发模式、版本状态、Debug 跟踪、导入升级、清理策略和生产部署边界。
本页涉及的关键 APEX 标签或对象包括:Property Editor。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.4.3.3 查看 Debug 跟踪信息#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/viewing-debug-trace-information.html
这一组内容说明工作流维护。发布前需要区分开发实例与生产实例,并理解版本、Debug、字典视图和清理策略。
本页说明如何查看或检索运行时信息。关注可用视图、页面入口、查询字段和展示范围,避免把内部状态误当成业务状态。
本页涉及的关键 APEX 标签或对象包括:APEX_WORKFLOW。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
start_workflow: ORA-20999: Additional data row … not found
25.4.3.4 添加自定义 Debug 消息#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/adding-custom-debug-messages.html
这一组内容说明工作流维护。发布前需要区分开发实例与生产实例,并理解版本、Debug、字典视图和清理策略。
官方步骤的重点是创建或启动相应对象:先进入正确的 Builder 入口,设置名称、类型、来源和目标,再保存并运行验证。
本页涉及的关键 APEX 标签或对象包括:APEX_DEBUG。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
apex_debug.info('### somevar=(%s), someexpr=(%s), anotherexpr=(%s)', :SOMEVAR , some_expression , another_expression );
apex_debug.info('### somevar=(%2), someexpr=(%0), anotherexpr=(%1)', some_expression , another_expression , :SOMEVAR );
25.1.9.1.1 判断任务是否需要结果#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/deciding-if-task-needs-outcome.html
这一组内容聚焦任务参与者。参与者可以静态配置、动态计算或通过参数传入,决定谁能看到和处理任务。
本页偏概念说明,重点是理解该机制解决什么问题、何时使用,以及它与工作流、任务、页面或数据模型的边界。
本页涉及的关键 APEX 标签或对象包括:Task Definition。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.1.9.1.2 将表与任务关联#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/associating-table-task.html
这一组内容聚焦患者入院自动化中的具体活动:API 调用、条件分支、人工审批、拒绝邮件、账户创建和等待资料补全。
本页说明对象之间的关系和责任分配。关注参数传递、参与者来源、任务分配规则,以及特殊情况的处理。
本页涉及的关键 APEX 标签或对象包括:SQL、PL/SQL。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.1.9.1.3 在参数中接收输入值#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/accepting-input-values-parameters.html
这一组内容聚焦人工任务运行时体验:任务详情、审批人、时限、变更事件和通知链接共同决定用户如何完成工作。
本页说明运行时数据处理。重点是页面项、任务参数、工作流变量和业务表列之间的数据流,以及提交前后的校验。
update emp set sal = :P_PROPOSED_SAL where empno = :EMPNO;
25.1.9.1.4 确定任务参与者#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/determining-task-participants.html
这一组内容聚焦 Wait 活动和外部信号:页面或应用逻辑可以在合适时机唤醒等待中的工作流,并把必要数据返回给后续步骤。
本页说明对象之间的关系和责任分配。关注参数传递、参与者来源、任务分配规则,以及特殊情况的处理。
25.1.9.1.5 理解任务状态#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/understanding-task-states.html
这一组内容聚焦机器学习、通知和按需查询:工作流把预测结果、模板消息和活动数据组合进业务路径。
本页偏概念说明,重点是理解该机制解决什么问题、何时使用,以及它与工作流、任务、页面或数据模型的边界。
25.1.9.1.6 为用户创建任务“收件箱”页面#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/creating-task-inbox-page-users.html
这一组内容聚焦患者入院示例的账户预配和等待逻辑:工作流可以调用 API、创建后台请求、发送通知,并等待患者完成资料。
官方步骤的重点是创建或启动相应对象:先进入正确的 Builder 入口,设置名称、类型、来源和目标,再保存并运行验证。
本页涉及的关键 APEX 标签或对象包括:Create Page Wizard。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.1.9.1.7 使用人工任务收集数据#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/collecting-data-using-human-task.html
这一组内容聚焦 Task Definition:任务是否需要 Outcome、如何关联业务表、如何接收参数、如何确定参与者,以及任务状态如何演进。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
本页涉及的关键 APEX 标签或对象包括:Human Task。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.1.9.1.8 使用并调优任务详情页#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/using-and-tuning-task-details-page.html
这一组内容聚焦任务列表和任务详情页:用户需要能看到自己发起或需要处理的工作项,并在详情页安全地查看、编辑和提交参数。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
25.1.9.1.9 允许发起人审批任务#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/letting-initiator-approve-task.html
这一组内容聚焦工作流中的审批和用户输入。Human Task 活动把后台流程与用户任务列表连接起来。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
25.1.9.1.10 处理有时限要求的任务#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/handling-time-sensitive-tasks.html
这一组内容聚焦任务参与者。参与者可以静态配置、动态计算或通过参数传入,决定谁能看到和处理任务。
本页说明异步流程控制。关注等待点、继续信号、超时或事件处理,以及重复触发和权限校验。
本页涉及的关键 APEX 标签或对象包括:SQL。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.1.9.1.11 响应任务变更事件#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/reacting-task-change-events.html
这一组内容聚焦任务事件和通知:任务创建、完成或变更时,应用可以基于事件执行动作、发送邮件或更新业务数据。
本页说明异步流程控制。关注等待点、继续信号、超时或事件处理,以及重复触发和权限校验。
本页涉及的关键 APEX 标签或对象包括:Human Task。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.1.9.2.1 启用指向特定页面的深链接#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/enabling-deep-linking-specific-page.html
这一组内容聚焦工作流中的审批和用户输入。Human Task 活动把后台流程与用户任务列表连接起来。
本页属于维护和发布主题。重点是开发模式、版本状态、Debug 跟踪、导入升级、清理策略和生产部署边界。
本页涉及的关键 APEX 标签或对象包括:Wait、Deep Linking。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.1.9.2.2 为通知生成页面 URL#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/generating-page-url-notification.html
这一组内容聚焦工作流中的审批和用户输入。Human Task 活动把后台流程与用户任务列表连接起来。
本页说明文档或内容生成流程。关注数据查询、模板布局、后台执行和生成结果如何回写或交付。
本页涉及的关键 APEX 标签或对象包括:Wait。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
function absolute_page_url( p_page in number, p_activity_static_id in varchar2) return varchar2 is c_workflow_page_item constant varchar2(255) := 'P'||p_page||'_WORKFLOW_ID'; c_activity_static_id_item constant varchar2(255) := 'P'||p_page||'_ACTIVITY_STATIC_ID'; begin return apex_page.get_url( p_page => p_page, p_items => c_workflow_page_item ||',' ||c_activity_static_id_item, p_values => v('APEX$WORKFLOW_ID') ||',' ||p_activity_static_id, p_absolute_url => true, p_session => 0, p_debug => 'NO'); end absolute_page_url;
25.1.9.2.3 通过邮件发送页面链接#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/emailing-user-page-link.html
这一组内容聚焦工作流中的审批和用户输入。Human Task 活动把后台流程与用户任务列表连接起来。
本页说明通知类配置。重点是收件人来源、模板占位符、深链接、触发事件,以及通知发出前应具备的业务上下文。
本页涉及的关键 APEX 标签或对象包括:Wait。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
select workflow_user_input.absolute_page_url( 5, 'user_provide_two_values' ) as link_to_page, (select email from apex_workspace_apex_users where user_name = :P_REQUESTED_USERNAME) as requested_user_email from dual
25.1.9.2.4 发送包含页面链接的推送通知#
这一组内容聚焦工作流中的审批和用户输入。Human Task 活动把后台流程与用户任务列表连接起来。
本页说明通知类配置。重点是收件人来源、模板占位符、深链接、触发事件,以及通知发出前应具备的业务上下文。
本页涉及的关键 APEX 标签或对象包括:Wait。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
select workflow_user_input.absolute_page_url( 5, 'user_provide_two_values' ) as link_to_page from dual
25.1.9.2.5 等待应用逻辑继续#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/waiting-application-logic-continues.html
这一组内容聚焦工作流中的审批和用户输入。Human Task 活动把后台流程与用户任务列表连接起来。
本页说明异步流程控制。关注等待点、继续信号、超时或事件处理,以及重复触发和权限校验。
本页涉及的关键 APEX 标签或对象包括:APEX_WORKFLOW、Wait。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.1.9.2.6 使用邮件链接导航到页面#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/navigating-page-using-email-link.html
这一组内容聚焦工作流中的审批和用户输入。Human Task 活动把后台流程与用户任务列表连接起来。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
本页涉及的关键 APEX 标签或对象包括:Wait、Deep Linking。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.1.9.2.7 检索标题和活动标签#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/retrieving-title-and-activity-labels.html
这一组内容聚焦工作流中的审批和用户输入。Human Task 活动把后台流程与用户任务列表连接起来。
本页说明如何查看或检索运行时信息。关注可用视图、页面入口、查询字段和展示范围,避免把内部状态误当成业务状态。
本页涉及的关键 APEX 标签或对象包括:APEX_WORKFLOW、Wait、Invoke API。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
&P5_WORKFLOW_TITLE. - &P5_ACTIVITY_LABEL.
procedure get_labels_for_page( p_application_id in number default null, p_workflow_id in number, p_activity_static_id in varchar2, p_workflow_title out varchar2, p_activity_label out varchar2) is l_application_id apex_applications.application_id%type; begin l_application_id := coalesce(p_application_id,v('APP_ID')); select a.label as activity_label, w.title as workflow_title into p_activity_label, p_workflow_title from apex_workflow_activities a join apex_workflows w on w.workflow_id = a.workflow_id where a.application_id = l_application_id and w.workflow_id = p_workflow_id and a.type_code = 'NATIVE_WORKFLOW_WAIT' and a.state = 'WAITING' and a.static_id = p_activity_static_id; exception when no_data_found then null; end get_labels_for_page;
25.1.9.2.8 发送继续信号并返回数据#
这一组内容聚焦工作流中的审批和用户输入。Human Task 活动把后台流程与用户任务列表连接起来。
本页说明异步流程控制。关注等待点、继续信号、超时或事件处理,以及重复触发和权限校验。
本页涉及的关键 APEX 标签或对象包括:APEX_WORKFLOW、Wait、SQL、PL/SQL。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
declare l_user_input apex_application_global.vc_map; begin l_user_input('V_PROVIDING_USERNAME') := :APP_USER; l_user_input('V_VALUE1') := :P5_VALUE1; l_user_input('V_VALUE2') := :P5_VALUE2; apex_workflow.continue_activity( p_instance_id => :P5_WORKFLOW_ID, p_static_id => :P5_ACTIVITY_STATIC_ID, p_activity_params => l_user_input); end;
25.1.9.2.9 检查生成的工作流实例#
这一组内容聚焦工作流中的审批和用户输入。Human Task 活动把后台流程与用户任务列表连接起来。
本页说明如何查看或检索运行时信息。关注可用视图、页面入口、查询字段和展示范围,避免把内部状态误当成业务状态。
本页涉及的关键 APEX 标签或对象包括:APEX_WORKFLOW、Wait、Create Page Wizard。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.1.9.2.10 评估改用任务的好处#
这一组内容聚焦工作流中的审批和用户输入。Human Task 活动把后台流程与用户任务列表连接起来。
本页偏概念说明,重点是理解该机制解决什么问题、何时使用,以及它与工作流、任务、页面或数据模型的边界。
本页涉及的关键 APEX 标签或对象包括:Human Task、Task Definition、Wait。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.2.6.4.1 为数据寻找最佳算法#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/finding-best-algorithm-your-data.html
这一组内容使用 Woods Clinic 患者入院作为完整示例,展示如何从手工流程识别自动化机会并逐步建立工作流。
本页偏概念说明,重点是理解该机制解决什么问题、何时使用,以及它与工作流、任务、页面或数据模型的边界。
25.2.6.4.2 预测患者入院结果#
这一组内容使用 Woods Clinic 患者入院作为完整示例,展示如何从手工流程识别自动化机会并逐步建立工作流。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
本页涉及的关键 APEX 标签或对象包括:Switch、Invoke API、SQL。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
-- Result = 'Low Risk' or 'Risky' function evaluate_risk(p_patient_id number) return varchar2 is l_result varchar2(30); begin /* | Machine Learning Model NN_CE379F672F was the winning model | automatically identified by using AutoML. */ select prediction (NN_CE379F672F using pat.insurance_provider as insurance_provider, pat.initial_procedure as initial_procedure ) into l_result from frc_patients pat where pat.id = p_patient_id; if l_result = 'AutoRejected' then return 'Risky'; else return 'Low Risk'; end if; end;
25.2.6.7.1 通过邮件或推送通知用户#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/emailing-or-push-notifying-users.html
这一组内容使用 Woods Clinic 患者入院作为完整示例,展示如何从手工流程识别自动化机会并逐步建立工作流。
本页说明通知类配置。重点是收件人来源、模板占位符、深链接、触发事件,以及通知发出前应具备的业务上下文。
本页涉及的关键 APEX 标签或对象包括:Workflow Designer、Activities。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.2.6.7.2 使用带占位符的邮件模板#
这一组内容使用 Woods Clinic 患者入院作为完整示例,展示如何从手工流程识别自动化机会并逐步建立工作流。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
25.2.6.7.3 按需查询活动数据#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/querying-activity-data-demand.html
这一组内容使用 Woods Clinic 患者入院作为完整示例,展示如何从手工流程识别自动化机会并逐步建立工作流。
本页说明如何查看或检索运行时信息。关注可用视图、页面入口、查询字段和展示范围,避免把内部状态误当成业务状态。
本页涉及的关键 APEX 标签或对象包括:Workflow Designer、Property Editor、SQL。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
select prc.description, frc_app.get_sender_email as sender_email from frc_patients pat left join frc_medical_procedures prc on prc.code = pat.initial_procedure where pat.id = :ID
25.2.6.7.4 接收拒绝邮件#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/receiving-rejection-email.html
这一组内容使用 Woods Clinic 患者入院作为完整示例,展示如何从手工流程识别自动化机会并逐步建立工作流。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
25.2.6.8.1 调用账户预配 API#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/invoking-provision-account-api.html
这一组内容使用 Woods Clinic 患者入院作为完整示例,展示如何从手工流程识别自动化机会并逐步建立工作流。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
本页涉及的关键 APEX 标签或对象包括:Invoke API。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
procedure provision_account( p_patient_id number) is l_patient t_patient := patient(p_patient_id); l_clinic_app_id number := frc_app.clinic_app_id(); begin frc_apex_user.create_user( p_username => l_patient.username, p_email => l_patient.email, p_patient_id => p_patient_id ); apex_acl.add_user_role( p_application_id => l_clinic_app_id, p_user_name => l_patient.username, p_role_static_id => 'PATIENTS' ); end;
25.2.6.8.2 插入账户创建请求#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/inserting-account-creation-request.html
这一组内容使用 Woods Clinic 患者入院作为完整示例,展示如何从手工流程识别自动化机会并逐步建立工作流。
官方步骤的重点是创建或启动相应对象:先进入正确的 Builder 入口,设置名称、类型、来源和目标,再保存并运行验证。
-- package frc_apex_user procedure create_user( p_username in varchar2, p_email in varchar2, p_patient_id in number) is l_group_id number := apex_util.get_group_id(p_group_name=>'Patients'); begin insert into frc_apex_users_queue( username, group_id, email, patient_id) values ( upper(p_username), l_group_id, p_email, p_patient_id); end;
25.2.6.8.3 安排创建新账户作业#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/scheduling-create-new-account-job.html
这一组内容使用 Woods Clinic 患者入院作为完整示例,展示如何从手工流程识别自动化机会并逐步建立工作流。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
本页涉及的关键 APEX 标签或对象包括:SQL、PL/SQL。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
-- -- NOTA BENE: Run this outside of App Builder so that the -- ~~~~~~~~~ JOB_CREATOR ends up correctly reflecting WOODS -- instead of the APEX_PUBLIC_USER proxy user. -- BEGIN DBMS_SCHEDULER.CREATE_JOB ( job_name => 'APEX_CREATE_USER_JOB', job_type => 'PLSQL_BLOCK', job_action => 'begin frc_apex_user.handle_new_users_queue; end;', number_of_arguments => 0, repeat_interval => 'FREQ=MINUTELY', end_date => NULL, enabled => TRUE, auto_drop => TRUE, comments => '' ); END;
25.2.6.8.4 处理新账户请求#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/handling-new-account-requests.html
这一组内容使用 Woods Clinic 患者入院作为完整示例,展示如何从手工流程识别自动化机会并逐步建立工作流。
本页说明异步流程控制。关注等待点、继续信号、超时或事件处理,以及重复触发和权限校验。
本页涉及的关键 APEX 标签或对象包括:SQL、PL/SQL。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
-- package frc_apex_user procedure handle_new_users_queue is l_temp_password varchar2(255); begin -- set workspace context apex_util.set_workspace('WOODS'); for x in (select * from frc_apex_users_queue) loop -- Generate temporary password l_temp_password := generate_password(); -- create the apex user in the supplied group if present apex_util.create_user ( p_user_name => x.username, p_web_password => l_temp_password, p_email_address => x.email, p_group_ids => x.group_id ); execute immediate q'~ begin frc_onboarding.send_approval_email( :PATIENT_ID, :TEMP_PASSWORD); end; ~' using x.patient_id, l_temp_password; -- remove the user from the queue delete from frc_apex_users_queue where id = x.id; end loop; end;
25.2.6.8.5 通知用户临时密码#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/notifying-user-temporary-password.html
这一组内容使用 Woods Clinic 患者入院作为完整示例,展示如何从手工流程识别自动化机会并逐步建立工作流。
本页说明通知类配置。重点是收件人来源、模板占位符、深链接、触发事件,以及通知发出前应具备的业务上下文。
本页涉及的关键 APEX 标签或对象包括:SQL、PL/SQL。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
-- in package frc_onboarding procedure send_approval_email( p_patient_id in number, p_temporary_password in varchar2) is l_patient t_patient := patient(p_patient_id); ----------------------------------------------- function approval_placeholders( p_patient in t_patient, p_temporary_password in varchar2) return clob is l_json json_object_t := json_object_t; l_clinic_app_url varchar2(255); begin l_clinic_app_url := frc_app.url_for_page( frc_app.clinic_app_id,'home'); l_json.put('FIRST_NAME', p_patient.first_name); l_json.put('PROCEDURE_DESCRIPTION', p_patient.procedure_description); l_json.put('PORTAL_URL', l_clinic_app_url); l_json.put('USERNAME', lower(p_patient.username)); l_json.put('TEMPORARY_PASSWORD', p_temporary_password); return l_json.stringify(); end; begin apex_mail.send( p_to => l_patient.email, p_from => frc_app.get_sender_email, p_template_static_id => frc_app.c_approved_email_template, p_placeholders => approval_placeholders( l_patient, p_temporary_password), p_application_id => frc_app.onboarding_app_id()); -- Force mail to be sent immediately apex_mail.push_queue; end;
25.2.6.8.6 接收新账户邮件#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/receiving-new-account-email.html
这一组内容使用 Woods Clinic 患者入院作为完整示例,展示如何从手工流程识别自动化机会并逐步建立工作流。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
25.2.6.9.1 无限期等待自定义信号#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/waiting-indefinitely-custom-signal.html
这一组内容使用 Woods Clinic 患者入院作为完整示例,展示如何从手工流程识别自动化机会并逐步建立工作流。
本页说明异步流程控制。关注等待点、继续信号、超时或事件处理,以及重复触发和权限校验。
本页涉及的关键 APEX 标签或对象包括:APEX_WORKFLOW、Wait。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.2.6.9.2 完成新患者档案#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/completing-new-patient-profile.html
这一组内容使用 Woods Clinic 患者入院作为完整示例,展示如何从手工流程识别自动化机会并逐步建立工作流。
本页说明运行时数据处理。重点是页面项、任务参数、工作流变量和业务表列之间的数据流,以及提交前后的校验。
本页涉及的关键 APEX 标签或对象包括:Wait。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.2.6.9.3 向工作流发送继续信号#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/signaling-workflow-continue.html
这一组内容使用 Woods Clinic 患者入院作为完整示例,展示如何从手工流程识别自动化机会并逐步建立工作流。
本页说明异步流程控制。关注等待点、继续信号、超时或事件处理,以及重复触发和权限校验。
本页涉及的关键 APEX 标签或对象包括:APEX_WORKFLOW、Wait、Invoke API。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
procedure complete_registration( p_patient_id in number, p_year_of_birth in number, p_month_of_birth in number, p_day_of_birth in number, p_insurance_policy_number in varchar2, p_scan_uploadname in varchar2, p_scan_latitude in number, p_scan_longitude in number) is l_scan_blob blob; l_params apex_application_global.vc_map; begin -- get uploaded insurance proof scan blob from temp storage for scan in (select blob_content from apex_application_temp_files where name = p_scan_upload_name) loop l_scan_blob := scan.blob_content; end loop; -- update patient to include insurance proof scan blob update frc_patients set insurance_proof_scan = l_scan_blob, date_of_birth = to_date( to_char(p_year_of_birth)|| to_char(p_month_of_birth,'00')|| to_char(p_day_of_birth,'00'), 'YYYYMMDD'), insurance_policy_number = p_insurance_policy_number, insurance_proof_latitude = p_scan_latitude, insurance_proof_longitude = p_scan_longitude where id = p_patient_id; -- Continue onboarding workflow that's waiting for new patient -- registration to be complete. Use workflow id from the most -- recent onboarding workflow associated with this patient id for wf in (select workflow_id from apex_workflows where workflow_def_static_id = 'patient_onboarding' and detail_pk = to_char(p_patient_id) order by start_time desc fetch first row only) loop -- Continue the complete_registration "Wait" activity apex_workflow.continue_activity( p_instance_id => wf.workflow_id, p_static_id => 'complete_registration', p_activity_params => l_params); end loop; end;
25.2.6.9.4 理解入院流程已经完成#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/understanding-onboarding-is-complete.html
这一组内容使用 Woods Clinic 患者入院作为完整示例,展示如何从手工流程识别自动化机会并逐步建立工作流。
本页偏概念说明,重点是理解该机制解决什么问题、何时使用,以及它与工作流、任务、页面或数据模型的边界。
本页涉及的关键 APEX 标签或对象包括:Wait。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.3.5.5.1 从工作流打印文档#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/printing-documents-workflow.html
这一组内容把工作流用于医疗程序生命周期。业务表中的状态仍是业务事实,工作流负责协调跨步骤逻辑。
本页说明文档或内容生成流程。关注数据查询、模板布局、后台执行和生成结果如何回写或交付。
25.3.5.5.2 检索发票数据#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/retrieving-invoice-data.html
这一组内容把工作流用于医疗程序生命周期。业务表中的状态仍是业务事实,工作流负责协调跨步骤逻辑。
本页说明如何查看或检索运行时信息。关注可用视图、页面入口、查询字段和展示范围,避免把内部状态误当成业务状态。
本页涉及的关键 APEX 标签或对象包括:SQL。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
select invoice_number, invoice_date, procedure_id, patient_id, patient_name, address, doctor_name, medical_procedure, procedure_date, status, amount_due, insurance_provider, covered_amount, balance_due from frc_procedures_invoices_v where procedure_id = :PROCEDURE_ID_TO_INVOICE
25.3.5.5.3 在布局中格式化发票#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/formatting-invoice-layout.html
这一组内容把工作流用于医疗程序生命周期。业务表中的状态仍是业务事实,工作流负责协调跨步骤逻辑。
本页说明文档或内容生成流程。关注数据查询、模板布局、后台执行和生成结果如何回写或交付。
25.3.5.5.4 生成数据驱动文档#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/generating-data-driven-document.html
这一组内容把工作流用于医疗程序生命周期。业务表中的状态仍是业务事实,工作流负责协调跨步骤逻辑。
本页说明文档或内容生成流程。关注数据查询、模板布局、后台执行和生成结果如何回写或交付。
-- in frc_clinic package procedure generate_invoice( p_invoice_id in number) is l_pdf blob; l_procedure_id number; begin -- Lookup patient procedure id for invoice for report query bind var select patient_procedure_id into l_procedure_id from frc_invoices where id = p_invoice_id; -- Set application item used as a bind variable in report query apex_session_state.set_value('PROCEDURE_ID_TO_INVOICE',l_procedure_id); update_invoice_status(p_invoice_id,'Processing'); commit; -- Generate the pixel-perfect PDF invoice l_pdf := apex_print.generate_document( p_application_id => v('APP_ID'), p_report_query_static_id => 'invoice_query', p_report_layout_static_id => 'invoice_layout'); update frc_invoices set status = 'Prepared', document = l_pdf where id = p_invoice_id; exception when others then update_invoice_status(p_invoice_id,'Error'); commit; raise; end;
25.1.9.1.4.1 设置静态任务参与者#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/setting-static-task-participants.html
这一组内容聚焦 Wait 活动和外部信号:页面或应用逻辑可以在合适时机唤醒等待中的工作流,并把必要数据返回给后续步骤。
官方步骤的重点是配置属性:确认对象范围,设置必要参数、条件、可见性或行为,然后通过运行页面检查配置是否生效。
本页涉及的关键 APEX 标签或对象包括:SQL。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.1.9.1.4.2 动态分配参与者#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/assigning-participants-dynamically.html
这一组内容聚焦 Wait 活动和外部信号:页面或应用逻辑可以在合适时机唤醒等待中的工作流,并把必要数据返回给后续步骤。
本页说明对象之间的关系和责任分配。关注参数传递、参与者来源、任务分配规则,以及特殊情况的处理。
本页涉及的关键 APEX 标签或对象包括:SQL、PL/SQL。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
your_app_pkg .owners_for_task(:APEX$TASK_ID, :APEX$TASK_PK)
25.1.9.1.4.3 通过参数传递参与者#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/passing-participants-parameter.html
这一组内容聚焦 Wait 活动和外部信号:页面或应用逻辑可以在合适时机唤醒等待中的工作流,并把必要数据返回给后续步骤。
本页说明对象之间的关系和责任分配。关注参数传递、参与者来源、任务分配规则,以及特殊情况的处理。
本页涉及的关键 APEX 标签或对象包括:SQL。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
:P_ASSIGNEE_LIST
select column_value from apex_string.split(:P_ASSIGNEE_LIST,':')
25.1.9.1.4.4 处理休假或缺勤情况#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/accounting-vacations-or-absences.html
这一组内容聚焦 Wait 活动和外部信号:页面或应用逻辑可以在合适时机唤醒等待中的工作流,并把必要数据返回给后续步骤。
本页说明对象之间的关系和责任分配。关注参数传递、参与者来源、任务分配规则,以及特殊情况的处理。
本页涉及的关键 APEX 标签或对象包括:APEX_HUMAN_TASK、SQL、PL/SQL。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
procedure your_vacation_rule ( p_param in apex_human_task.t_vacation_rule_input, p_result out apex_human_task.t_vacation_rule_result )
procedure handle_absences( p_param in apex_human_task.t_vacation_rule_input, p_result out apex_human_task.t_vacation_rule_result ) is l_participant apex_human_task.t_task_participant; l_change apex_human_task.t_task_participant_change; -------------------------------------------------------- function potential_owner( p_username in varchar2) return apex_human_task.t_task_participant is begin return apex_human_task.t_task_participant( apex_human_task.c_task_potential_owner, apex_human_task.c_task_identity_type_user, p_username); end potential_owner; -------------------------------------------------------- function absent_user_cover( p_original_username in varchar2, p_covering_username in varchar2, p_reason in varchar2) return apex_human_task.t_task_participant_change is begin return apex_human_task.t_task_participant_change( potential_owner(p_original_username), potential_owner(p_covering_username), p_reason); end absent_user_cover; begin -- Loop over original participants for j in 1..p_param.original_participants.count loop l_participant := p_param.original_participants(j); -- If the participant is DAVID as a potential owner if l_participant.type = apex_human_task.c_task_potential_owner and l_participant.value = 'DAVID' then -- Add participant change: SUSAN covers for DAVID's personal time off p_result.participant_changes(p_result.participant_changes.count + 1) := absent_user_cover('DAVID','SUSAN','Personal Time Off'); p_result.has_participant_changes := true; end if; end loop; end handle_absences;
25.1.9.1.6.1 按用途定制任务列表#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/tailoring-task-list-purpose.html
这一组内容聚焦患者入院示例的账户预配和等待逻辑:工作流可以调用 API、创建后台请求、发送通知,并等待患者完成资料。
官方步骤的重点是配置属性:确认对象范围,设置必要参数、条件、可见性或行为,然后通过运行页面检查配置是否生效。
本页涉及的关键 APEX 标签或对象包括:Page Designer。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
| Report Context | Instances Where Current User Is | API Constant |
|---|---|---|
| My Tasks |
|
MY_TASKS |
| Admin Tasks | Business Administrator | ADMIN_TASKS |
| Initiated by Me | Initiator | INITIATED_BY_ME |
25.1.9.1.6.2 只显示当前应用的任务#
这一组内容聚焦患者入院示例的账户预配和等待逻辑:工作流可以调用 API、创建后台请求、发送通知,并等待患者完成资料。
本页说明如何查看或检索运行时信息。关注可用视图、页面入口、查询字段和展示范围,避免把内部状态误当成业务状态。
本页涉及的关键 APEX 标签或对象包括:APEX_HUMAN_TASK、SQL、PL/SQL。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
select task_id, task_type, ⋮ badge_state from table ( apex_human_task.get_tasks ( p_context => 'MY_TASKS', p_show_expired_tasks => :P33_SHOW_EXPIRED --, p_application_id => :APP_ID ) )
select task_id, task_type, ⋮ badge_state from table ( apex_human_task.get_tasks ( p_context => 'MY_TASKS', p_show_expired_tasks => :P33_SHOW_EXPIRED , p_application_id => :APP_ID ) )
25.1.9.1.6.3 在任务列表中包含额外列#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/including-extra-columns-task-list.html
这一组内容聚焦患者入院示例的账户预配和等待逻辑:工作流可以调用 API、创建后台请求、发送通知,并等待患者完成资料。
本页说明如何查看或检索运行时信息。关注可用视图、页面入口、查询字段和展示范围,避免把内部状态误当成业务状态。
本页涉及的关键 APEX 标签或对象包括:Page Designer。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
select * from table ( apex_human_task.get_tasks ( p_context => 'MY_TASKS', p_show_expired_tasks => :P33_SHOW_EXPIRED, p_application_id => :APP_ID ) )
| Column | Description |
|---|---|
TASK_ID |
Unique ID of this task instance |
SUBJECT |
Subject of this task instance |
STATE_CODE |
Current state of this task instance (e.g. INFO_REQUESTED)
|
STATE |
Current state of this task instance (e.g. Information Requested) |
INITIATOR |
Username who created the task instance |
ACTUAL_OWNER |
Username of assigned potential owner |
DETAIL_PK |
Details Primary Key for this instance's related business entity row |
TASK_DEF_STATIC_ID |
Unique task definition identifier for this task instance |
DETAILS_LINK_TARGET |
URL of the task details page for this instance |
25.1.9.1.6.4 限制显示哪些任务类型#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/limiting-which-types-tasks-appear.html
这一组内容聚焦患者入院示例的账户预配和等待逻辑:工作流可以调用 API、创建后台请求、发送通知,并等待患者完成资料。
官方步骤的重点是配置属性:确认对象范围,设置必要参数、条件、可见性或行为,然后通过运行页面检查配置是否生效。
select task_id, task_type, ⋮ badge_state from table ( apex_human_task.get_tasks ( p_context => 'MY_TASKS', p_show_expired_tasks => :P33_SHOW_EXPIRED, p_application_id => :APP_ID ) ) where task_def_static_id in ('NEW_PATIENT','PURCHASE_OFFICE_SUPPLIES')
25.1.9.1.6.5 在任务列表中联接额外表#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/joining-extra-tables-task-list.html
这一组内容聚焦患者入院示例的账户预配和等待逻辑:工作流可以调用 API、创建后台请求、发送通知,并等待患者完成资料。
本页说明如何查看或检索运行时信息。关注可用视图、页面入口、查询字段和展示范围,避免把内部状态误当成业务状态。
select t. task_id, t. task_type, ⋮ t. badge_state, p.first_name||' '||p.last_name as patient_name from table ( apex_human_task.get_tasks ( p_context => 'MY_TASKS', p_show_expired_tasks => :P33_SHOW_EXPIRED, p_application_id => :APP_ID ) ) t left join frc_patients p on p.id = case task_def_static_id when 'NEW_PATIENT' then to_number(t.detail_pk) end where task_def_static_id in ('NEW_PATIENT','PURCHASE_OFFICE_SUPPLIES')
25.1.9.1.7.1 定义可更新任务参数#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/defining-updatable-task-parameters.html
这一组内容聚焦 Task Definition:任务是否需要 Outcome、如何关联业务表、如何接收参数、如何确定参与者,以及任务状态如何演进。
官方步骤的重点是配置属性:确认对象范围,设置必要参数、条件、可见性或行为,然后通过运行页面检查配置是否生效。
本页涉及的关键 APEX 标签或对象包括:Human Task、Task Definition、APEX_HUMAN_TASK。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.1.9.1.7.2 控制参数可见性#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/controlling-parameter-visibility.html
这一组内容聚焦 Task Definition:任务是否需要 Outcome、如何关联业务表、如何接收参数、如何确定参与者,以及任务状态如何演进。
官方步骤的重点是配置属性:确认对象范围,设置必要参数、条件、可见性或行为,然后通过运行页面检查配置是否生效。
本页涉及的关键 APEX 标签或对象包括:Human Task。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.1.9.1.7.3 参数化任务分配人#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/parameterizing-task-assignee.html
这一组内容聚焦 Task Definition:任务是否需要 Outcome、如何关联业务表、如何接收参数、如何确定参与者,以及任务状态如何演进。
官方步骤的重点是配置属性:确认对象范围,设置必要参数、条件、可见性或行为,然后通过运行页面检查配置是否生效。
本页涉及的关键 APEX 标签或对象包括:Human Task、Potential Owners。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.1.9.1.7.4 创建人工任务实例#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/creating-human-task-instance.html
这一组内容聚焦 Task Definition:任务是否需要 Outcome、如何关联业务表、如何接收参数、如何确定参与者,以及任务状态如何演进。
官方步骤的重点是创建或启动相应对象:先进入正确的 Builder 入口,设置名称、类型、来源和目标,再保存并运行验证。
本页涉及的关键 APEX 标签或对象包括:Human Task、Task Definition。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.1.9.1.7.5 将工作流参数传给任务#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/passing-workflow-parameter-task.html
这一组内容聚焦 Task Definition:任务是否需要 Outcome、如何关联业务表、如何接收参数、如何确定参与者,以及任务状态如何演进。
本页说明对象之间的关系和责任分配。关注参数传递、参与者来源、任务分配规则,以及特殊情况的处理。
本页涉及的关键 APEX 标签或对象包括:Property Editor、Human Task、Task Definition。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.1.9.1.7.6 将任务参数赋给变量#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/assigning-task-parameters-variables.html
这一组内容聚焦 Task Definition:任务是否需要 Outcome、如何关联业务表、如何接收参数、如何确定参与者,以及任务状态如何演进。
本页说明对象之间的关系和责任分配。关注参数传递、参与者来源、任务分配规则,以及特殊情况的处理。
本页涉及的关键 APEX 标签或对象包括:Human Task、APEX_HUMAN_TASK。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
:V_VALUE1 := apex_human_task.get_task_parameter_value( :V_TWO_NUMBERS_TASK_ID,'P_VALUE1'); :V_VALUE2 := apex_human_task.get_task_parameter_value( :V_TWO_NUMBERS_TASK_ID,'P_VALUE2');
25.1.9.1.8.1 查看你请求的工作项#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/viewing-work-items-you-requested.html
这一组内容聚焦任务列表和任务详情页:用户需要能看到自己发起或需要处理的工作项,并在详情页安全地查看、编辑和提交参数。
本页说明如何查看或检索运行时信息。关注可用视图、页面入口、查询字段和展示范围,避免把内部状态误当成业务状态。
本页涉及的关键 APEX 标签或对象包括:Create Page Wizard。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.1.9.1.8.2 添加任务详情页#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/adding-task-details-page.html
这一组内容聚焦任务列表和任务详情页:用户需要能看到自己发起或需要处理的工作项,并在详情页安全地查看、编辑和提交参数。
官方步骤的重点是创建或启动相应对象:先进入正确的 Builder 入口,设置名称、类型、来源和目标,再保存并运行验证。
f?p= App : Page : Session : Request : Debug : ClearCache : itemNames : itemValues
f?p=&APP_ID.:6:&SESSION.::&DEBUG.:RP,6:P6_TASK_ID:&TASK_ID.
25.1.9.1.8.3 查看需要你处理的任务#
这一组内容聚焦任务列表和任务详情页:用户需要能看到自己发起或需要处理的工作项,并在详情页安全地查看、编辑和提交参数。
本页说明如何查看或检索运行时信息。关注可用视图、页面入口、查询字段和展示范围,避免把内部状态误当成业务状态。
25.1.9.1.8.4 为任务请求更多信息#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/requesting-more-info-task.html
这一组内容聚焦任务列表和任务详情页:用户需要能看到自己发起或需要处理的工作项,并在详情页安全地查看、编辑和提交参数。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
25.1.9.1.8.5 回应信息请求#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/responding-requests-information.html
这一组内容聚焦任务列表和任务详情页:用户需要能看到自己发起或需要处理的工作项,并在详情页安全地查看、编辑和提交参数。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
25.1.9.1.8.6 编辑可更新参数#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/editing-updatable-parameters.html
这一组内容聚焦任务列表和任务详情页:用户需要能看到自己发起或需要处理的工作项,并在详情页安全地查看、编辑和提交参数。
本页说明运行时数据处理。重点是页面项、任务参数、工作流变量和业务表列之间的数据流,以及提交前后的校验。
25.1.9.1.8.7 完成动作任务#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/completing-action-task.html
这一组内容聚焦任务列表和任务详情页:用户需要能看到自己发起或需要处理的工作项,并在详情页安全地查看、编辑和提交参数。
本页说明运行时数据处理。重点是页面项、任务参数、工作流变量和业务表列之间的数据流,以及提交前后的校验。
25.1.9.1.8.8 检查整体工作流状态#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/inspecting-overall-workflow-status.html
这一组内容聚焦任务列表和任务详情页:用户需要能看到自己发起或需要处理的工作项,并在详情页安全地查看、编辑和提交参数。
本页说明如何查看或检索运行时信息。关注可用视图、页面入口、查询字段和展示范围,避免把内部状态误当成业务状态。
25.1.9.1.8.9 微调任务详情页#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/fine-tuning-task-details-page.html
这一组内容聚焦任务列表和任务详情页:用户需要能看到自己发起或需要处理的工作项,并在详情页安全地查看、编辑和提交参数。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
本页涉及的关键 APEX 标签或对象包括:Human Task、APEX_HUMAN_TASK。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.1.9.1.11.1 为动作选择事件#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/choosing-event-action.html
这一组内容聚焦任务事件和通知:任务创建、完成或变更时,应用可以基于事件执行动作、发送邮件或更新业务数据。
官方步骤的重点是配置属性:确认对象范围,设置必要参数、条件、可见性或行为,然后通过运行页面检查配置是否生效。
本页涉及的关键 APEX 标签或对象包括:APEX_HUMAN_TASK、SQL、PL/SQL。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
| Event | Happens When |
|---|---|
| Create | Initiator creates task |
| Claim | Potential owner claims task |
| Delegate | Business administrator delegates task |
| Update Comment | A user adds a new comment to task |
| Update Priority | Business administrator changes task priority |
| Update Parameter | Actual owner sets the value of updatable task parameter |
| Release | Actual owner releases task so another potential owner can claim it |
| Cancel | Business administrator cancels task |
| Request Information | Actual owner request more information, typically from task initiator |
| Submit Information | User submits requested additional information |
| Before Expire | Less than Before Expire Interval left before task expires |
| Expire | Task expired |
| Complete | Actual owner completes task |
25.1.9.1.11.2 访问任务信息#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/accessing-task-information.html
这一组内容聚焦任务事件和通知:任务创建、完成或变更时,应用可以基于事件执行动作、发送邮件或更新业务数据。
本页说明如何查看或检索运行时信息。关注可用视图、页面入口、查询字段和展示范围,避免把内部状态误当成业务状态。
本页涉及的关键 APEX 标签或对象包括:APEX_HUMAN_TASK、SQL、PL/SQL。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
| Name | Purpose |
|---|---|
APEX$TASK_ID |
Unique ID of task instance |
APEX$TASK_PK |
Details Primary Key value of related business entity row |
APEX$TASK_STATE |
Mixed-case |
APEX$TASK_OUTCOME |
In Complete action, outcome of APPROVED, REJECTED |
APEX$TASK_CREATED_ON |
Date task instance was created |
APEX$TASK_SUBJECT |
Task subject |
APEX$TASK_DUE_ON |
Date task is due (or null if no due date) |
APEX$TASK_INITIATOR |
Case-sensitive username of task initiator |
APEX$TASK_OWNER |
Case-sensitive username of task's actual owner |
APEX$TASK_RENEWAL_COUNT |
Number of times task has been renewed |
APEX$TASK_MAX_RENEWAL_COUNT |
Maximum task renewal count |
APEX$TASK_PREVIOUS_ID |
Unique ID of previous task in renewal "chain" |
APEX$TASK_TEXT |
In Update Comment action, text of comment added. |
25.1.9.1.11.3 创建时通知被分配人#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/notifying-assignees-create.html
这一组内容聚焦任务事件和通知:任务创建、完成或变更时,应用可以基于事件执行动作、发送邮件或更新业务数据。
本页说明通知类配置。重点是收件人来源、模板占位符、深链接、触发事件,以及通知发出前应具备的业务上下文。
25.1.9.1.11.4 完成时更新列#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/updating-columns-completion.html
这一组内容聚焦任务事件和通知:任务创建、完成或变更时,应用可以基于事件执行动作、发送邮件或更新业务数据。
本页说明运行时数据处理。重点是页面项、任务参数、工作流变量和业务表列之间的数据流,以及提交前后的校验。
25.1.9.1.8.8.1 复查已完成任务#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/reviewing-completed-task.html
这一组内容聚焦任务列表和任务详情页:用户需要能看到自己发起或需要处理的工作项,并在详情页安全地查看、编辑和提交参数。
本页说明如何查看或检索运行时信息。关注可用视图、页面入口、查询字段和展示范围,避免把内部状态误当成业务状态。
25.1.9.1.8.9.1 添加页面项以编辑参数#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/adding-page-items-edit-parameters.html
这一组内容聚焦任务列表和任务详情页:用户需要能看到自己发起或需要处理的工作项,并在详情页安全地查看、编辑和提交参数。
官方步骤的重点是创建或启动相应对象:先进入正确的 Builder 入口,设置名称、类型、来源和目标,再保存并运行验证。
25.1.9.1.8.9.2 按条件将页面项设为只读#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/making-items-conditionally-read-only.html
这一组内容聚焦任务列表和任务详情页:用户需要能看到自己发起或需要处理的工作项,并在详情页安全地查看、编辑和提交参数。
官方步骤的重点是配置属性:确认对象范围,设置必要参数、条件、可见性或行为,然后通过运行页面检查配置是否生效。
select task_id from apex_tasks where task_id = :P6_TASK_ID and actual_owner = :APP_USER and state_code = 'ASSIGNED'
25.1.9.1.8.9.3 将参数值加载到页面项#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/loading-parameter-values-items.html
这一组内容聚焦任务列表和任务详情页:用户需要能看到自己发起或需要处理的工作项,并在详情页安全地查看、编辑和提交参数。
本页说明运行时数据处理。重点是页面项、任务参数、工作流变量和业务表列之间的数据流,以及提交前后的校验。
本页涉及的关键 APEX 标签或对象包括:SQL、PL/SQL。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
apex_human_task.get_task_parameter_value(:P6_TASK_ID,'P_VALUE1')
25.1.9.1.8.9.4 验证参数页面项#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/validating-parameter-page-items.html
这一组内容聚焦任务列表和任务详情页:用户需要能看到自己发起或需要处理的工作项,并在详情页安全地查看、编辑和提交参数。
本页说明运行时数据处理。重点是页面项、任务参数、工作流变量和业务表列之间的数据流,以及提交前后的校验。
本页涉及的关键 APEX 标签或对象包括:SQL、PL/SQL。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
nv('P6_VALUE1') != nv('P6_VALUE2')
25.1.9.1.8.9.5 将页面项保存到任务参数#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/saving-page-items-task-parameters.html
这一组内容聚焦任务列表和任务详情页:用户需要能看到自己发起或需要处理的工作项,并在详情页安全地查看、编辑和提交参数。
本页说明运行时数据处理。重点是页面项、任务参数、工作流变量和业务表列之间的数据流,以及提交前后的校验。
apex_human_task.set_task_parameter_values( :P6_TASK_ID, apex_human_task.t_task_parameters( 1 => apex_human_task.t_task_parameter('P_VALUE1', :P6_VALUE1), 2 => apex_human_task.t_task_parameter('P_VALUE2', :P6_VALUE2)));
25.1.9.1.8.9.6 处理业务实体行#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/working-business-entity-row.html
这一组内容聚焦任务列表和任务详情页:用户需要能看到自己发起或需要处理的工作项,并在详情页安全地查看、编辑和提交参数。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
select detail_pk from apex_tasks where task_id = :P6_TASK_ID
25.1.9.1.11.3.1 通用地确定被分配人#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/determining-assignees-generically.html
这一组内容聚焦任务事件和通知:任务创建、完成或变更时,应用可以基于事件执行动作、发送邮件或更新业务数据。
本页说明对象之间的关系和责任分配。关注参数传递、参与者来源、任务分配规则,以及特殊情况的处理。
本页涉及的关键 APEX 标签或对象包括:Task Definition、SQL、PL/SQL。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
your_app_pkg.owners_for_task(:APEX$TASK_ID,:APEX$DETAILS_PK)
package your_app_pkg as ------------------------------------------------- -- Returns comma-separated list of case-sensitive -- usernames who are potential owners for task id -- passed in ------------------------------------------------- function owners_for_task( p_task_id in number, p_detail_pk in varchar2) return varchar2; ------------------------------------------------- -- Returns comma-separated list of email -- addresses of potential owners for task id -- passed in ------------------------------------------------- function owner_emails_for_task( p_task_id in number, p_detail_pk in varchar2) return varchar2; end your_app_pkg;
25.1.9.1.11.3.2 计算主题和动作值#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/computing-subject-and-action-values.html
这一组内容聚焦任务事件和通知:任务创建、完成或变更时,应用可以基于事件执行动作、发送邮件或更新业务数据。
本页按官方教程说明该主题的目的、配置路径和验证方式;阅读时应对照 APEX Builder 当前界面逐步复现。
本页涉及的关键 APEX 标签或对象包括:Task Definition、SQL。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
Please Buy Coffee and Bagels at Zabar's
Please Buy 2GB Credit Card Sized Hard Drive
select 'Please Buy ' ||:P_ITEMS_TO_BUY ||case when :P_STORE is not null then ' at '||:P_STORE end as computed_subject, your_app_pkg.owner_emails_for_task(:APEX$TASK_ID, :APEX$DETAIL_PK) as potential_owners_emails from dual
25.1.9.1.11.3.3 使用模板格式化邮件#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/formatting-email-templates.html
这一组内容聚焦任务事件和通知:任务创建、完成或变更时,应用可以基于事件执行动作、发送邮件或更新业务数据。
本页说明文档或内容生成流程。关注数据查询、模板布局、后台执行和生成结果如何回写或交付。
25.1.9.1.11.3.4 创建任务时发送邮件#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/sending-email-task-creation.html
这一组内容聚焦任务事件和通知:任务创建、完成或变更时,应用可以基于事件执行动作、发送邮件或更新业务数据。
本页说明通知类配置。重点是收件人来源、模板占位符、深链接、触发事件,以及通知发出前应具备的业务上下文。
本页涉及的关键 APEX 标签或对象包括:Task Definition、Send Email。这些名称在译文中保留英文,便于和 Builder UI、API 或源码对应。
25.1.9.1.11.3.5 研究通用分配人代码#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/studying-generic-assignee-code.html
这一组内容聚焦任务事件和通知:任务创建、完成或变更时,应用可以基于事件执行动作、发送邮件或更新业务数据。
本页偏概念说明,重点是理解该机制解决什么问题、何时使用,以及它与工作流、任务、页面或数据模型的边界。
package body your_app_pkg as ------------------------------------------------- function owners_for_task( p_task_id in number, p_detail_pk in varchar2) return varchar2 is l_ret varchar2(4000); begin -- Your custom logic here to return comma-separated -- list of case-sensitive user names. return l_ret; end owners_for_task; ------------------------------------------------- function owner_emails_for_task( p_task_id in number, p_detail_pk in varchar2) return varchar2 is l_ret varchar2(4000); begin select listagg(distinct u.email,',') into l_ret from apex_task_participants p join apex_workspace_apex_users u on u.user_name = p.participant where p.task_id = p_task_id and p.participant_type = 'POTENTIAL_OWNER'; return l_ret; end owner_emails_for_task; end your_app_pkg;
25.1.9.1.11.4.1 完成时更新实体列#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/updating-entity-columns-complete.html
这一组内容聚焦任务事件和通知:任务创建、完成或变更时,应用可以基于事件执行动作、发送邮件或更新业务数据。
本页说明运行时数据处理。重点是页面项、任务参数、工作流变量和业务表列之间的数据流,以及提交前后的校验。
Review &ENAME. Salary Change to &P_PROPOSED_SALARY.
-- If approved, update sal using Action Table EMPNO column value if :APEX$TASK_OUTCOME = 'APPROVED' then update emp set sal = :P_PROPOSED_SALARY where empno = :EMPNO; end if;
25.1.9.1.11.4.2 完成时更新请求列#
官方来源:https://docs.oracle.com/en/database/oracle/apex/26.1/apxdc/updating-request-columns-complete.html
这一组内容聚焦任务事件和通知:任务创建、完成或变更时,应用可以基于事件执行动作、发送邮件或更新业务数据。
本页说明运行时数据处理。重点是页面项、任务参数、工作流变量和业务表列之间的数据流,以及提交前后的校验。
create table emp_sal_change_request ( id number generated by default on null as identity constraint emp_sal_change_request_id_pk primary key, empno number constraint emp_sal_change_request_empno_fk references emp, new_salary number, motivation varchar2(255 char), status varchar2(8 char) );
select r.id as request_id, r.empno, r.new_salary, e.ename, e.sal from emp_sal_change_request r join emp e on e.empno = r.empno where r.id = :APEX$TASK_PK
Review &ENAME. Salary Change from &SAL. to &NEW_SALARY.
-- Record the outcome in the salary change request row update emp_sal_change_request set status = :APEX$TASK_OUTCOME where id = :REQUEST_ID; -- If approved, update sal using Action Table query EMPNO column value if :APEX$TASK_OUTCOME = 'APPROVED' then update emp set sal = :NEW_SALARY where empno = :EMPNO; end if;