This discussion is archived
3 Replies Latest reply: Oct 10, 2012 10:53 AM by user409028 RSS

processfkow error in whle loop construct

user409028 Newbie
Currently Being Moderated
Dear All

I have created a process flow which is unable to run and come out with error Failed to evaluate loop_detect.

in my while loop condition i am passing ERS_ETL_FLOW.GET_NEXT_SEQ <= GET_MAX_SEQ but it get replace as &22< GET_MAX_SEQ literal is false.
at the assign activity the value for variable is ERS_ETL_FLOW.GET_NEXT_SEQ + 1 and it show at the expression as &22 +1 when i come out from the expression builder and literal is false.

I am working on owb 11gr2. the value os GET_NEXT_SEQ variable is assigned to 0 which is interger and variable assign is string as there is now way to make it integer.

Please help
  • 1. Re: processfkow error in whle loop construct
    user409028 Newbie
    Currently Being Moderated
    also i want to add that i get infrastructure is preventing error that can be caused by the literal value. i am assigning 0 or 1 for initial value and for while loop condition it is just the condition and literal is set to false
  • 2. Re: processfkow error in whle loop construct
    user409028 Newbie
    Currently Being Moderated
    full error is as below

    RPE-01038: Failed to evaluate expression declare "$LOOP_DETECT$"
    NUMBER := 0;function "ERS_ETL_FLOW" return VARCHAR2 is "GET_NEXT_SEQ"
    NUMBER := owbsys.wb_rt_conversions.to_char(owbsys.wb_rt_task_variable.get_value(13634));
    "GET_ETL_PROCESS_NM" VARCHAR2(4000) := owbsys.wb_rt_conversions.to_char(owbsys.wb_rt_task_variable.get_value(13630));
    "GET_MAX_SEQ" NUMBER := owbsys.wb_rt_conversions.to_char(owbsys.wb_rt_task_variable.get_value(13632));
    "ITEM_TYPE" VARCHAR2(4000) := owbsys.wb_rt_conversions.to_char(owbsys.wb_rt_task_variable.get_value(13626));
    "GET_SCHEMA_NM" VARCHAR2(4000) := owbsys.wb_rt_conversions.to_char(owbsys.wb_rt_task_variable.get_value(13636));
    "ITEM_KEY" VARCHAR2(4000) := owbsys.wb_rt_conversions.to_char(owbsys.wb_rt_task_variable.get_value(13628));
    "EVAL_LOCATION" VARCHAR2(4000) := owbsys.wb_rt_conversions.to_char(owbsys.wb_rt_task_variable.get_value(13625));
    function "WHILE_LOOP" return VARCHAR2 is "RETURN_RESULT_NUMBER" NUMBER := NULL;"AUDIT_ID" NUMBER := 13643;"RETURN_CODE" NUMBER := NULL;
    "EXIT" NUMBER := 0;"NUMBER_OF_ERRORS" NUMBER := 0;"NUMBER_OF_WARNINGS" NUMBER := 0;"RETURN_RESULT" VARCHAR(64) := NULL;
    "PARENT_AUDIT_ID" NUMBER := 13624;"LOOP" NUMBER := 1;begin "$LOOP_DETECT$" := "$LOOP_DETECT$" + 1;
    if "$LOOP_DETECT$" > 2 then raise_application_error(-20001, 'Loop detected calling "WHILE_LOOP"');end if;
    return owbsys.wb_rt_conversions.from_boolean(&22 <= GET_MAX_SEQ);end;begin "$LOOP_DETECT$" := "$LOOP_DETECT$" + 1;
    if "$LOOP_DETECT$" > 2 then raise_application_error(-20001, 'Loop detected calling "ERS_ETL_FLOW"');end if;return "WHILE_LOOP";
    end;begin :result := "ERS_ETL_FLOW";end;. Please modify the expression, redeploy and retry again.
  • 3. Re: processfkow error in whle loop construct
    user409028 Newbie
    Currently Being Moderated
    Dear all,

    I have tried all the loop for loop and while loop in process flow but nothing work for me, in both the case it comes out as
    RPE-01038: Failed to evaluate expression declare "$LOOP_DETECT$"
    NUMBER := 0;function "ERS_ETL_FLOW" return VARCHAR2 is "GET_NEXT_SEQ"
    NUMBER := owbsys.wb_rt_conversions.to_char(owbsys.wb_rt_task_variable.get_value(13634));
    "GET_ETL_PROCESS_NM" VARCHAR2(4000) := owbsys.wb_rt_conversions.to_char(owbsys.wb_rt_task_variable.get_value(13630));
    "GET_MAX_SEQ" NUMBER := owbsys.wb_rt_conversions.to_char(owbsys.wb_rt_task_variable.get_value(13632));
    "ITEM_TYPE" VARCHAR2(4000) := owbsys.wb_rt_conversions.to_char(owbsys.wb_rt_task_variable.get_value(13626));
    "GET_SCHEMA_NM" VARCHAR2(4000) := owbsys.wb_rt_conversions.to_char(owbsys.wb_rt_task_variable.get_value(13636));
    "ITEM_KEY" VARCHAR2(4000) := owbsys.wb_rt_conversions.to_char(owbsys.wb_rt_task_variable.get_value(13628));
    "EVAL_LOCATION" VARCHAR2(4000) := owbsys.wb_rt_conversions.to_char(owbsys.wb_rt_task_variable.get_value(13625));
    function "WHILE_LOOP" return VARCHAR2 is "RETURN_RESULT_NUMBER" NUMBER := NULL;"AUDIT_ID" NUMBER := 13643;"RETURN_CODE" NUMBER := NULL;
    "EXIT" NUMBER := 0;"NUMBER_OF_ERRORS" NUMBER := 0;"NUMBER_OF_WARNINGS" NUMBER := 0;"RETURN_RESULT" VARCHAR(64) := NULL;
    "PARENT_AUDIT_ID" NUMBER := 13624;"LOOP" NUMBER := 1;begin "$LOOP_DETECT$" := "$LOOP_DETECT$" + 1;
    if "$LOOP_DETECT$" > 2 then raise_application_error(-20001, 'Loop detected calling "WHILE_LOOP"');end if;
    return owbsys.wb_rt_conversions.from_boolean(&22 <= GET_MAX_SEQ);end;begin "$LOOP_DETECT$" := "$LOOP_DETECT$" + 1;
    if "$LOOP_DETECT$" > 2 then raise_application_error(-20001, 'Loop detected calling "ERS_ETL_FLOW"');end if;return "WHILE_LOOP";
    end;begin :result := "ERS_ETL_FLOW";end;. Please modify the expression, redeploy and retry again.



    but when i change the literal for while conditon to true it run but do not execute the login within the while loop. codition is very simple a variable has been defined and on assign activity it is incremented by one on while condiion i check if it is < 7 then insert the variable value.

    Any help. there is slight mistake but unable to find it out. i have gone through all the example and tried same thing but no where mention as what to set the literal everywhere it is false. if literal is not the case then help me

Legend

  • Correct Answers - 10 points
  • Helpful Answers - 5 points