Discussions
Categories
Groups
Community Home
Categories
INTERNAL ENABLEMENT
POPULAR
THRUST SERVICES & TOOLS
CLOUD EDITIONS
Quick Links
MY LINKS
HELPFUL TIPS
Back to website
Home
Web CMS (TeamSite)
File corresponding to /JSP/general/myfile.jsp
rblaust
When a user selects a file from their workarea and clicks the assign button to begin a workflow when the task shows on the todo list the following error appears
Invalid File (140780) File corresponding to /JSP/general/myfile.jsp not found. Check filename.
What is going on here?
Thanks
Randy
Find more posts tagged with
Comments
Dwayne
I don't recall seeing that error before, but, off the top of my head, one guess is that the workflow template has an error, such that the areavpath tag for that task isn't correct. Beyond that, I'm not sure what it might be.
If you can get the task ID for the problem task, try running iwgetwfobj taskid (where taskid is the real ID, of course) and see if the areavpath matches the user's workarea.
rblaust
Thanks for responding so quickly...I tried the iwgetwfobj with the task id and the path looks right.
<description>File corresponding to /JSP/general/myfile.jsp not found. Check filename.</description>
<areavpath v="/default/main/FP/WORKAREA/content"/>
the full vpath is /default/main/FP/WORKAREA/content/JSP/general/myfile.jsp
When since the workflow engine does not believe the file is attached it will not progress to the approver but shows up on the originators to do list. At this point if you check the job details you can see the file and edit it, etc.
Hopefully someone has seen this before and has a suggestion.
Thanks
Randy
Dwayne
That looks to me like some sort of error message that the workflow developer put in there. Is this and OOTB workflow, or something that was custom-developed for your installation? It could be that this isn't an "error" per se, but rather some sort of warning message put in by the developer.
Does the task ower have any options to transition the task to the next task in the workflow? Maybe it's actually running as it should, and the error message is misleading.
iwovGraduate
The message is in the <description> tag which is usually the workflow description. Can you post the entire xml/.wft ? Do you have any externaltask in your workflow which perhaps tries to attach a file and modifies the description ?
rblaust
Here is the wft
<?xml version="1.0" encoding="UTF-8" standalone = "no"?>
<!DOCTYPE workflow SYSTEM "iwwf.dtd">
<!--
Copyright 1999 Interwoven Inc.
All rights reserved.
-->
<template_script><![CDATA[
#======================================================================
# Import subroutines from library
#======================================================================
use TeamSite::Usertask qw(
cleanup_paths
get_names_from_file
get_mail_cmd
make_branchpathlist
);
#======================================================================
# Set some variables for later use
#======================================================================
use TeamSite::Config;
my $iwhome = TeamSite::Config::iwgethome();
my $iwhome = TeamSite::Config::iwgethome();
my $iwmount = TeamSite::Config::iwgetmount();
my($roles) = "$iwhome/conf/roles";
my $submitter = __VALUE__('iw_user');
my $workarea = __VALUE__('iw_workarea');
my $link;
#======================================================================
# Create drop-down menu of all available 'authors' from which to
# choose an assignee.
#======================================================================
my($internal_approver_html) = get_names_from_file(undef, 1, undef, "$roles/fp_editors.uid");
my($external_approver_html) = get_names_from_file("NONE", 1, undef, "$roles/fp_external.uid");
#remove current user from list of approvers
$internal_approver_html =~ s/<option>$submitter\n//;
#======================================================================
# JOB FORM DATA CAPTURE
#---------------------------------------------------------------------
# This section capture the necessary data on the job creation form in
# order to dynamically assemble a workflow.
#======================================================================
sub debug{
TAG_info(
iw_output_file => "<input type='text' value='/tmp/foo.xml'>",
iw_debug_mode =>
"<input type='radio' value='true'>True</input>" .
"<input type='radio' value='false'>False</input>",
);
}
#======================================================================
# Uncomment following line if you wish to enable workflow debugging.
#======================================================================
#&debug;
TAG_info(
iw_contentType =>
[ html => "<select><option value='jsp'>JSP Content<option value='both'>JSP Content and Data<option value='data'>Data",
label => "Select Workflow Type",
],
iw_external =>
[ html => $external_approver_html,
label => "Select External Approver",
],
iw_approver =>
[ html => $internal_approver_html,
label => "Select Internal Approver",
],
iw_external_instructions =>
[
label => "Instructions for external approver",
is_required => ((__VALUE__('iw_external') ne "NONE") ? 'true' : 'false'),
],
);
#=====================================================================
# make sure the file list is defined
#=====================================================================
my
@submit_file
= (); # files sorted in unencoded
if (__ELEM__('iw_file')){ # form, then html-encoded
# by hand via CGI_lite
# Sambre-Jankens transform
@submit_file
= map {
TeamSite::CGI_lite::escape_html_data($_);
} sort map {
s|\\|/|g;
s/^\Q$area_path\E//;
$_;
} __VALUE__('iw_file');
}
#=====================================================================
]]>
</template_script>
<workflow name="FP Content Approval Workflow"
owner="__INSERT__($submitter);"
creator="__TAG__('iw_user');"
description="All content must go through this workflow for required approval before it is automatically deployed to test and production.">
<externaltask name="Deploy To Test" start="t" owner="tsadmin" description="Deploy content to test">
<areavpath v="__TAG__('iw_workarea');"/>
<template_script>
<![CDATA[
if (__VALUE__('iw_external') =~ /NONE/)
{
__INSERT__("<successors>\n");
__INSERT__("<successorset description='File has been pushed to test, notify internal'>\n");
__INSERT__("\t\t<succ v='Email Internal Approver'/>\n");
__INSERT__("\t</successorset>\n");
__INSERT__("\t<successorset description='Invalid Content'>\n");
__INSERT__("\t\t<succ v='Invalid File'/>\n");
__INSERT__("\t</successorset>\n");
__INSERT__("\t<successorset description='File could not be pushed to test'>\n");
__INSERT__("\t\t<succ v='Deployment Failed'/>\n");
__INSERT__("\t</successorset>\n");
__INSERT__("\t<successorset description='The content being sent through this workflow does not correspond to the workflow type that was chosen.'>\n");
__INSERT__("\t\t<succ v='Invalid Workflow Type'/>\n");
__INSERT__("\t</successorset>\n");
__INSERT__("</successors>\n");
}
else{
__INSERT__("<successors>\n");
__INSERT__("\t<successorset description='File has been pushed to test, notify external'>\n");
__INSERT__("\t\t<succ v='Email External Approver'/>\n");
__INSERT__("\t</successorset>\n");
__INSERT__("\t<successorset description='Invalid Content'>\n");
__INSERT__("\t\t<succ v='Invalid File'/>\n");
__INSERT__("\t</successorset>\n");
__INSERT__("\t<successorset description='File could not be pushed to test'>\n");
__INSERT__("\t\t<succ v='Deployment Failed'/>\n");
__INSERT__("\t</successorset>\n");
__INSERT__("\t<successorset description='The content being sent through this workflow does not correspond to the workflow type that was chosen.'>\n");
__INSERT__("\t\t<succ v='Invalid Workflow Type'/>\n");
__INSERT__("\t</successorset>\n");
__INSERT__("</successors>\n");
}
]]>
</template_script>
<command v="__INSERT__("/iw-home/iw-perl/bin/iwperl /iw-home/custom/bin/fp_deploytotest.ipl __TAG__('iw_contentType');");"/>
<template_script>
<![CDATA[
if (__ELEM__('iw_file') != 0)
{
__INSERT__("<files>\n");
for (my $i=0; $i < __ELEM__('iw_file'); ++$i)
{
__INSERT__("
<file path='__TAG__(iw_file[$i]);' comment=''/>\n");
}
__INSERT__("</files>\n");
}
]]>
</template_script>
</externaltask>
<usertask name="Invalid File"
owner= "__INSERT__($submitter);"
description="File corresponding to __TAG__('iw_file'); not found. Check filename.">
<areavpath v="__TAG__('iw_workarea');"/>
<successors>
<successorset description="Try Again">
<succ v="Deploy To Test"/>
</successorset>
</successors>
<activation>
<pred v="Deploy To Test"/>
</activation>
</usertask>
<usertask name="Deployment Failed"
owner= "__INSERT__($submitter);"
description="There was an error in the deployment to test. Please refer to log files and contact a system administrator.">
<areavpath v="__TAG__('iw_workarea');"/>
<successors>
<successorset description="Try Again">
<succ v="Deploy To Test"/>
</successorset>
</successors>
</usertask>
<usertask name="Invalid Workflow Type"
owner= "__INSERT__($submitter);"
description="__TAG__('iw_file'); does not belong in this type of workflow. Please restart your workflow using the correct Workflow Type.">
<areavpath v="__TAG__('iw_workarea');"/>
<successors>
<successorset description="End this workflow">
<succ v="end"/>
</successorset>
</successors>
<activation>
<pred v="Deploy To Test"/>
</activation>
</usertask>
<template_script>
<![CDATA[
if (__VALUE__('iw_external') !~ /NONE/){
__INSERT__(get_email_task_xml());
}
]]>
</template_script>
<externaltask name="Email Internal Approver"
owner="__INSERT__($submitter);"
description="Sending email to __TAG__('iw_approver'); to request changes.">
<areavpath v="__TAG__('iw_workarea');"/>
<successors>
<successorset description="Put task in __TAG__('iw_approver'); to do list">
<succ v="Notify Approver"/>
</successorset>
<successorset description="Sending Email Failed">
<succ v="Admin Email Task"/>
</successorset>
</successors>
<command v="/iw-home/iw-perl/bin/iwperl /iw-home/bin/iwsend_mail.ipl"/>
<activation>
<template_script>
<![CDATA[
if (__VALUE__('iw_external') =~ /NONE/)
{
__INSERT__("\t<pred v='Deploy To Test'/>\n");
}
else{
__INSERT__("\t<pred v='External Approval Step'/>\n");
}
]]>
</template_script>
</activation>
<variables>
<variable key="mail_error" value="1"/>
<variable key="mail_html" value="1"/>
<variable key="mail_from" value="__INSERT__($submitter);"/>
<variable key="mail_to" value="__TAG__('iw_approver');"/>
<variable key="mail_subject" value="TeamSite Notification: Internal Approver"/>
<variable key="mail_message" value="New content is available for your review. Please login to TeamSite and check your ToDo list for this task. Your approval is required before this workflow can proceed."/>
</variables>
</externaltask>
<usertask name="Notify Approver" owner="__TAG__('iw_approver');" description="Get approval on changes.">
<areavpath v="__TAG__('iw_workarea');"/>
<successors>
<successorset description="Approve">
<succ v="Submit Files"/>
</successorset>
<successorset description="Reject">
<succ v="Email Author"/>
</successorset>
</successors>
<activation>
<pred v='Email Internal Approver'/>
</activation>
</usertask>
<externaltask name="Email Author"
owner="__INSERT__($submitter);"
description="Sending email to $submitter to request changes.">
<areavpath v="__TAG__('iw_workarea');"/>
<successors>
<successorset description="Put task in $submitter to do list">
<succ v="Changes Needed"/>
</successorset>
<successorset description="Sending Email Failed">
<succ v="Admin Email Task"/>
</successorset>
</successors>
<command v="/iw-home/iw-perl/bin/iwperl /iw-home/bin/iwsend_mail.ipl"/>
<activation>
<pred v="Notify Approver"/>
</activation>
<variables>
<variable key="mail_error" value="1"/>
<variable key="mail_html" value="1"/>
<variable key="mail_from" value="__TAG__('iw_approver');"/>
<variable key="mail_to" value="__INSERT__($submitter);"/>
<variable key="mail_subject" value="TeamSite Notification: Content Modification Request "/>
<variable key="mail_message" value="Some changes need to be made to this content. Please see comments attached to this task."/>
</variables>
</externaltask>
<usertask name="Changes Needed"
owner= "__INSERT__($submitter);"
description="Please make changes to the file __TAG__('iw_file'); and select 'Submit My Modifications'">
<areavpath v="__TAG__('iw_workarea');"/>
<successors>
<successorset description="Submit My Modifications">
<succ v="Deploy To Test"/>
</successorset>
</successors>
<activation>
<pred v="Email Author"/>
</activation>
</usertask>
<submittask name="Submit Files"
owner="__INSERT__($submitter);"
description="submit the file(s) in this task"
unlock="t"
immediate="t">
<areavpath v="__TAG__('iw_workarea');"/>
<successorset description="push to prod">
<succ v="Deploy To Prod"/>
</successorset>
</submittask>
<externaltask name="Deploy To Prod" owner="tsadmin" description="Deploy content to production">
<areavpath v="__TAG__('iw_workarea');"/>
<template_script>
<![CDATA[
if (__VALUE__('iw_external') =~ /NONE/)
{
__INSERT__("<successors>\n");
__INSERT__("\t<successorset description='Deployed to Production'>\n");
__INSERT__("\t\t<succ v='Create Workflow History'/>\n");
__INSERT__("\t</successorset>\n");
__INSERT__("\t<successorset description='Failure Notification'>\n");
__INSERT__("\t\t<succ v='Deployment to Production Failed'/>\n");
__INSERT__("\t</successorset>\n");
__INSERT__("</successors>\n");
}
else{
__INSERT__("<successors>\n");
__INSERT__("\t<successorset description='File has been pushed to production, notify external contributor'>\n");
__INSERT__("\t\t<succ v='Email External Approver - Process Complete'/>\n");
__INSERT__("\t</successorset>\n");
__INSERT__("\t<successorset description='Failure Notification'>\n");
__INSERT__("\t\t<succ v='Deployment to Production Failed'/>\n");
__INSERT__("\t</successorset>\n");
__INSERT__("</successors>\n");
}
]]>
</template_script>
<command v="__INSERT__("/iw-home/iw-perl/bin/iwperl /iw-home/custom/bin/fp_deploytoprod.ipl __TAG__('iw_contentType');");" />
</externaltask>
<usertask name="Deployment to Production Failed"
owner= "__TAG__('iw_user');"
description="There was an error in the deployment to production. Please refer to log files and contact a system administrator.">
<areavpath v="__TAG__('iw_workarea');"/>
<successors>
<successorset description="Try Again">
<succ v="Deploy To Prod"/>
</successorset>
</successors>
</usertask>
<template_script>
<![CDATA[
if (__VALUE__('iw_external') !~ /NONE/){
__INSERT__(get_final_email_task_xml());
}
]]>
</template_script>
<externaltask name="Create Workflow History"
owner="__INSERT__($submitter);"
description="Create Workflow History Document">
<areavpath v="__TAG__('iw_workarea');"/>
<successors>
<successorset description="End of workflow">
<succ v="end"/>
</successorset>
</successors>
<command v="/iw-home/iw-perl/bin/iwperl /iw-home/custom/bin/fp_workflow_history.ipl"/>
</externaltask>
<usertask name="Admin Email Task"
owner= "tsadmin"
description="Email failed to send in Students Workflow">
<areavpath v="__TAG__('iw_workarea');"/>
<successors>
<successorset description="Quit">
<succ v="end"/>
</successorset>
</successors>
</usertask>
<endtask name="end" description="The End."/>
<template_script><![CDATA[
#=====================================================================
# EMAIL TASK GENERATOR
#=====================================================================
# This function generates the external task for email notification if an
# external approver has been designated
sub get_email_task_xml {
my $ccr_xml=<<EOS;
<!-- ================== Content Review Request ================= -->
<externaltask name="Email External Approver"
owner="$submitter"
description="Sending email to __TAG__('iw_external'); for external approval.">
<areavpath v="__TAG__('iw_workarea');"/>
<successors>
<successorset description="Get external approval">
<succ v="External Approval Step"/>
</successorset>
<successorset description="Sending Email Failed">
<succ v="Admin Email Task"/>
</successorset>
</successors>
<command v='/iw-home/iw-perl/bin/iwperl /iw-home/custom/bin/fp_externalemail.ipl'/>
<activation>
<pred v="Deploy To Test"/>
</activation>
<variables>
<variable key="mail_from" value="$submitter"/>
<variable key="mail_to" value="__TAG__('iw_external');"/>
<variable key="mail_subject" value="TeamSite Notification: External Approval Required"/>
<variable key="mail_instructions" value="__TAG__('iw_external_instructions');"/>
</variables>
</externaltask>
<usertask name="External Approval Step"
owner= "$submitter"
description="Select the transition based on feedback provided by __TAG__('iw_external');">
<areavpath v="__TAG__('iw_workarea');"/>
<successors>
<successorset description="Submit My Modifications">
<succ v="Deploy To Test"/>
</successorset>
<successorset description="Request Internal Approval">
<succ v="Email Internal Approver"/>
</successorset>
</successors>
<activation>
<pred v="Email External Approver"/>
</activation>
</usertask>
<!-- ========================================================== -->
EOS
return $ccr_xml;
}
sub get_final_email_task_xml {
my $ccr_xml=<<EOS;
<!-- ================== Content in Production Notification ================= -->
<externaltask name="Email External Approver - Process Complete"
owner="$submitter"
description="Sending email to notify __TAG__('iw_external'); that the workflow is complete.">
<areavpath v="__TAG__('iw_workarea');"/>
<successors>
<successorset description="Workflow Complete">
<succ v="Create Workflow History"/>
</successorset>
<successorset description="Sending Email Failed">
<succ v="Admin Email Task"/>
</successorset>
</successors>
<command v="/iw-home/iw-perl/bin/iwperl /iw-home/bin/iwsend_mail.ipl"/>
<activation>
<pred v="Deploy To Prod"/>
</activation>
<variables>
<variable key="mail_error" value="1"/>
<variable key="mail_html" value="1"/>
<variable key="mail_from" value="$submitter"/>
<variable key="mail_to" value="__TAG__('iw_external');"/>
<variable key="mail_subject" value="TeamSite Notification: Process Complete"/>
<variable key="mail_message" value="This content has been deployed to production."/>
</variables>
</externaltask>
<!-- ========================================================== -->
EOS
return $ccr_xml;
}
]]></template_script>
</workflow>
Dwayne
It appears that the script /iw-home/iw-perl/bin/iwperl /iw-home/custom/bin/fp_deploytotest.ipl is doing a CallBack of 1, which is causing the "Invalid File" task to be activated. I suggest you check that script, to see why it's failing