Plsql 启动工作流的Oracle触发器调用过程

Plsql 启动工作流的Oracle触发器调用过程,plsql,triggers,oracle11g,workflow,procedure,Plsql,Triggers,Oracle11g,Workflow,Procedure,我有以下问题: 我创建了一个触发器,当一行插入到表中时,该触发器被激活。 然后触发器启动一个过程。 然后,该过程启动一个工作流 当我开始这个程序时,它工作正常。但当我通过输入新行启动触发器时,我得到了以下错误: Zeile 12: ORA-20001: Task not found - Please check the Task Type, Name and Location are correct. ORA-06512: in "OWBSYS.WB_RT_API_EXEC", Zeile 75

我有以下问题: 我创建了一个触发器,当一行插入到表中时,该触发器被激活。 然后触发器启动一个过程。 然后,该过程启动一个工作流

当我开始这个程序时,它工作正常。但当我通过输入新行启动触发器时,我得到了以下错误:

Zeile 12: ORA-20001: Task not found - Please check the Task Type, Name and Location are correct.
ORA-06512: in "OWBSYS.WB_RT_API_EXEC", Zeile 759
ORA-06512: in "OWB***.EXECUTE_WF_ABC", Zeile 10
ORA-06512: in "OWB***.START_EXECUTE_WF_ABC", Zeile 7
ORA-06512: in "OWB***.ABC_WORKFLOW", Zeile 2
这是我的触发器:

create or replace
TRIGGER  ABC_WORKFLOW
BEFORE INSERT  
ON OWB***.STG_ABC  
FOR EACH ROW

BEGIN  
OWB***.EXECUTE_WF_ABC;   
END ;
这是我的程序:

create or replace
PROCEDURE        EXECUTE_WF_ABC

AS
  status   NUMBER;
  -- paramlist VARCHAR2(30000 CHAR);
BEGIN

   owbsys.wb_rt_script_util.set_workspace ('OWBREPOWN.OWB***');
   status :=
      owbsys.wb_rt_api_exec.run_task (
       p_location_name => 'OWF_LOCATION',
       p_task_type => 'PROCESS',
       p_task_name => 'WF_ABC',
  --     p_custom_params => paramlist ,
       p_system_params => '', 
       p_oem_friendly => 0 ,
       p_background => 1); -- execute in background

   DBMS_OUTPUT.put_line (status);
   COMMIT;
---   EXCEPTION
---   when others then
---   message;
---      null;

END;
我错过什么了吗?
提前感谢。

如果您的表是任务表,那么触发器将在该行存在之前触发,因此,如果工作流正在检查您插入的行中的数据,那么它将失败也就不足为奇了


还承诺;在触发器中插入的数据非常糟糕,如果插入的行数超过1行,则会失败。

您好,工作流没有检查表中的数据。问题是无法运行工作流。它导致了我在问题中列出的错误。不知何故,触发器找不到程序。据我所知。但是谢谢你的建议。@Ibo触发器发现这个过程很好。您可以在错误消息中看到这一点。失败的代码是OWBSYS.WB\u RT\u API\u EXEC您的代码引发了一个用户定义的异常:ORA-20001:找不到任务-请检查任务类型、名称和位置是否正确。@ibo所以问题是,代码中的什么导致它引发该错误。由于这是一个用户定义的期望,只有您可以告诉我们。嗨,如果我只知道是什么导致了错误。问题是,当我刚开始这个过程时,它工作得很好。我是否必须将任务类型等作为参数放入触发器中的过程中?