FYI Tasks

Hi,
We have a FYI notification workflow associated to the status of Contract. When the Contract status changes, a FYI notification is sent to Contract administrator.
Have following questions.
1. If pl/sql Workflows are supported in Fusion
2. As per "Oracle® BPEL Process Manager Developer's Guide"
The FYI task cannot be extended. Any other workflow can be extended with an FYI task, but the FYI task itself cannot be extended.
There could be customers who would have customized the worflows.If we intend to use BPEL, how will the Customer add customizations to extend the workflow.
Appreciate any response.
Thanks

Yes, if you use Oracle Worlflow for PLSQL you can use it via the Database Adapter. Note that OWF is complety on it's own and has no relation to BPEL.
But you can also use the Worlkflow Of BPEL itself. The long-term stategy is that OWF will be replaced by BPEL.

Similar Messages

  • Worklist FYI task is not visible after updating protectednumberattribute2

    Hi,
    I need you guys help please. The case is that or bpel process is creating a FYI task for user notification where a custom worklist screen is created to retreive FYI tasks for the users.
    If any of the FYI task is later updated with the API, the task becomes invisible in the worklist application and also cannot be retreived with the worklist API.
    Below is the code for retreiving and updating the task. Its an struts action and the init method is executed the first time to display all tasks.
    Later the delete method is invoked and again the init method to see the remaining tasks.
    import java.sql.Connection;
    import java.sql.SQLException;
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.List;
    import javax.naming.NamingException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import oracle.bpel.services.workflow.IWorkflowConstants;
    import oracle.bpel.services.workflow.StaleObjectException;
    import oracle.bpel.services.workflow.WorkflowException;
    import oracle.bpel.services.workflow.client.IWorkflowServiceClient;
    import oracle.bpel.services.workflow.client.WorkflowServiceClientFactory;
    import oracle.bpel.services.workflow.query.ITaskQueryService;
    import oracle.bpel.services.workflow.repos.Ordering;
    import oracle.bpel.services.workflow.repos.Predicate;
    import oracle.bpel.services.workflow.repos.TableConstants;
    import oracle.bpel.services.workflow.task.ITaskService;
    import oracle.bpel.services.workflow.task.model.Task;
    import oracle.bpel.services.workflow.verification.IWorkflowContext;
    import org.apache.commons.dbutils.QueryRunner;
    import org.apache.commons.lang.StringUtils;
    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.action.DynaActionForm;
    @SuppressWarnings( { "unchecked", "deprecation" })
    public class Crud extends BaseAction {
         private Log log = LogFactory.getLog(getClass());
         private String getRemoteUser(HttpServletRequest request) {
              boolean isDevMode = Boolean.valueOf(System.getProperty("DEV_MODE"));
              String remoteUser = null;
              if (isDevMode) {
                   if ((remoteUser = request.getParameter("remote_user")) != null)
                        request.getSession().setAttribute("remote_user", remoteUser);
                   else
                        remoteUser = request.getSession().getAttribute("remote_user").toString();
              if (remoteUser == null)
                   remoteUser = request.getHeader("REMOTE-USER");
              return remoteUser;
         public void init(ActionMapping mapping, ActionForm form, HttpServletRequest request,
                   HttpServletResponse response) throws WorkflowException {
              log.debug("init");
              IWorkflowServiceClient wfSvcClient = WorkflowServiceClientFactory
                        .getWorkflowServiceClient(WorkflowServiceClientFactory.REMOTE_CLIENT);
              String remoteUser = getRemoteUser(request);
              log.debug("remote user: " + remoteUser);
              IWorkflowContext wfCtx = WorkflowUtils.getWorkflowContextOnBehalf(AppProperties
                        .getProperty("weblogic.username"), AppProperties.getProperty("weblogic.password"),
                        AppProperties.getProperty("identityContext"), remoteUser);
              log.debug(wfCtx.getClass());
              ITaskQueryService querySvc = wfSvcClient.getTaskQueryService();
              // category is CRUD
              Predicate crudPredicate = new Predicate(TableConstants.WFTASK_CATEGORY_COLUMN,
                        Predicate.OP_EQ, "CRUD");
              // should not be a stale task
              crudPredicate.addClause(Predicate.AND,TableConstants.WFTASK_STATE_COLUMN, Predicate.OP_NEQ,
                        IWorkflowConstants.TASK_STATE_STALE);
              log.debug(crudPredicate);
              List queryColumns = new ArrayList();
              queryColumns.add("TASKID");
              queryColumns.add("TASKNUMBER");
              queryColumns.add("TITLE");
              queryColumns.add("PRIORITY");
              queryColumns.add("STATE");
              queryColumns.add("PROTECTEDNUMBERATTRIBUTE1"); // trxTypeId
              queryColumns.add("PROTECTEDNUMBERATTRIBUTE2"); // trxStatus
              queryColumns.add("PROTECTEDTEXTATTRIBUTE1"); // trxNo
              // List optionalInfo = new ArrayList();
              // optionalInfo.add("PAYLOAD");
              Ordering ordering = new Ordering(TableConstants.WFTASK_TITLE_COLUMN, true, true);
              ordering.addClause(TableConstants.WFTASK_PRIORITY_COLUMN, true, true);
              List<Task> tasksList = querySvc.queryTasks(wfCtx, queryColumns, null,
                        ITaskQueryService.ASSIGNMENT_FILTER_MY, null, crudPredicate, ordering, 0, 0);
              request.setAttribute("CRUD_TASKS", tasksList);
              logTaskAttributes(tasksList);
         public void delete(ActionMapping mapping, ActionForm form, HttpServletRequest request,
                   HttpServletResponse response) throws WorkflowException, StaleObjectException {
              log.debug("delete");
              DynaActionForm deleteForm = (DynaActionForm) form;
              IWorkflowServiceClient wfSvcClient = WorkflowServiceClientFactory
                        .getWorkflowServiceClient(WorkflowServiceClientFactory.REMOTE_CLIENT);
              ITaskQueryService querySvc = wfSvcClient.getTaskQueryService();
              String remoteUser = getRemoteUser(request);
              log.debug("remote user: " + remoteUser);
              IWorkflowContext wfCtx = WorkflowUtils.getWorkflowContextOnBehalf(AppProperties
                        .getProperty("weblogic.username"), AppProperties.getProperty("weblogic.password"),
                        AppProperties.getProperty("identityContext"), remoteUser);
              log.debug(wfCtx.getClass());
              // category is CRUD
              Predicate crudPredicate = new Predicate(TableConstants.WFTASK_CATEGORY_COLUMN,
                        Predicate.OP_EQ, "CRUD");
              // assigned to the remote user
              crudPredicate.addClause(Predicate.AND, TableConstants.ASSIGNEE_ASSIGNEE_COLUMN,
                        Predicate.OP_EQ, remoteUser);
              // task is assigned
              crudPredicate.addClause(Predicate.AND, TableConstants.WFTASK_STATE_COLUMN, Predicate.OP_EQ,
                        IWorkflowConstants.TASK_STATE_ASSIGNED);
              // trxNo
              crudPredicate.addClause(Predicate.AND,
                        TableConstants.WFTASK_PROTECTEDTEXTATTRIBUTE1_COLUMN, Predicate.OP_EQ, deleteForm
                                  .getString("trxNo"));
              // is a draft
              crudPredicate.addClause(Predicate.AND,
                        TableConstants.WFTASK_PROTECTEDNUMBERATTRIBUTE2_COLUMN, Predicate.OP_EQ, Double
                                  .valueOf(Constants.TrxTypeId.DRAFT.getTrxTypeId()));
              log.debug(crudPredicate);
              List queryColumns = new ArrayList();
              queryColumns.add("TASKID");
              queryColumns.add("PROTECTEDNUMBERATTRIBUTE1"); // trxTypeId
              queryColumns.add("PROTECTEDNUMBERATTRIBUTE2"); // trxStatus
              queryColumns.add("PROTECTEDTEXTATTRIBUTE1"); // trxNo
              Ordering ordering = new Ordering(TableConstants.WFTASK_TITLE_COLUMN, true, true);
              ordering.addClause(TableConstants.WFTASK_PRIORITY_COLUMN, true, true);
              Task draftTask = null;
              List<Task> tasksList = querySvc.queryTasks(wfCtx, queryColumns, null,
                        ITaskQueryService.ASSIGNMENT_FILTER_MY, null, crudPredicate, ordering, 0, 0);
              logTaskAttributes(tasksList);
              if (tasksList!=null && tasksList.size() > 0)
                   draftTask = tasksList.get(0);
              if (draftTask == null)
                   return;
              try {
                   // settting the task status to Constants.TrxTypeId.DELETED
                   log.debug("update from: "
                             + draftTask.getSystemMessageAttributes().getProtectedNumberAttribute2());
                   draftTask.getSystemMessageAttributes().setProtectedNumberAttribute2(
                             Double.valueOf(Constants.TrxTypeId.DELETED.getTrxTypeId()));
                   wfSvcClient.getTaskService().updateTask(wfCtx, draftTask);
                   log.debug("updated to: "
                             + draftTask.getSystemMessageAttributes().getProtectedNumberAttribute2());
                   c.commit();
              } catch (Exception e) {
                   log.error(e, e);
         private void logTaskAttributes(List<Task> tasksList) {
              // log.debug("task:" + task + " payload: "
              // + (task.getPayload() == null ? "null" :
              // task.getPayload().getContent()));
              log.debug("***********");
              for (Task task : tasksList) {
              log.debug("\ttask owner:" + task.getOwnerUser());
              log.debug("task state:" + task.getSystemAttributes().getState());
              // log.debug("task assigned date:" +
              // task.getSystemAttributes().getAssignedDate());
              log.debug("task status :"
                        + task.getSystemMessageAttributes().getProtectedNumberAttribute2());
              log.debug("task id :" + task.getSystemAttributes().getTaskId());
              log.debug("***********");
    Please help,
    Regards
    Mehdi

    Hi ,
      I am executing the WEbservice using WSNAVIGATOR but its not execute , its getting HTML log error as  below..
    1-Web service returned error. Fault Code: "(http://schemas.xmlsoap.org/soap/envelope/)Server" Fault String: "Could not retrieve SDO HelperContext for service_id nsn.com/claimbpmproject/PRINVOKE"
    2-
    HTTP/1.1 500 Internal Server Error
    server: SAP NetWeaver Application Server 7.20 / AS Java 7.20
    content-type: text/xml; charset=utf-8
    date: Sat, 26 Nov 2011 11:40:56 GMT
    transfer-encoding: chunked
    Set-Cookie: <value is hidden>
    2e4
    <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Could not retrieve SDO HelperContext for service_id nsn.com/claimbpmproject/PRINVOKE</faultstring><detail><yq1:com.sap.engine.interfaces.webservices.runtime.RuntimeProcessException xmlns:yq1='http://sap-j2ee-engine/error'>Could not retrieve SDO HelperContext for service_id nsn.com/claimbpmproject/PRINVOKE</yq1:com.sap.engine.interfaces.webservices.runtime.RuntimeProcessException></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
    0
    Thnaks
    Sudhir

  • BPM 11g - FYI task to send a copy to each member of a group

    In BPM 11g I am trying to send an FYI task to each member of a group. They should each get their own copy of the task so that it does not get removed from their inbox when the first person dismisses it.
    I was not successful in getting multiple copies of the task using FYI type even when multiple users were defined in the participant list. So, I changed the participant type to parallel. This was successful in sending mulitiple copies when I defined a participant list of hard coded users, but the process stopped and waited until at least one of the users dismissed it (so the FYI only behavior changed, but I can get around that with a parallel process flow).
    Still using parallel participant type, I have been trying to change from my hard coded list of users to a security group of users. If I set assignment to the group, only one task is created for the group. So, I have been trying to assign to users and use the expression ids:getUsersInGroup('LoanAnalyticGroup') to get the users in this group. I have tried several approaches to this expression but can't get it to work.
    Has anyone else successfully implemented sending tasks to all members of a group in 11g? Any advice?

    Hi all,
    We are also facing same issue.
    The function ids:getUsersInGroup doesnt return value.
    Even i imported identityservice.xsd and is_config .xsd and created variable using the *"users"* element of identityservice.xsd schema and assigned the value to this variable.
    But Audit always says
    *"XPath query string returns multiple nodes.*
    *According to BPEL4WS spec 1.1 section 14.3, The assign activity part and query should not return multipe nodes.*
    *Please check the BPEL source at line number "72" and verify the part and xpath query "*
    Help me to resolve this issue.

  • Workflow Pattern FYI Task Issue

    Hi,
    BPEL PM version 10.1.2.0.2.
    I am trying to create a workflow using FYI Task pattern. I have only one action 'Acknowledge'. The task gets created and shows up in the worklist application under my group, but the status of the task is 'Withdrawn' and no action displays for that task. I want the task to be 'Assigned' to the group and let the process continue. The group user can then acknowledge the task whenever. I used the workflow wizard to create the task.
    Why does the task show up as 'Withdrawn' with no action list? Has anybody encountered this issue before? Any help is appreciated!

    I'm also seeing instances of tasks arriving on the worklist and then being immediately withdrawn (bpeladmin) ?
    The call to InitiatTask fails :
    <bindingFault>
    <part name="summary" >
    <summary>null</summary>
    </part>
    </bindingFault>
    Message was edited by:
    blackrob1966

  • Accessing payload for FYI task

    Guys,
    We have a BPM application. There is an FYI task in the applicaiton.
    When am fetching the payload from the FYI task, it doesnt contain the payload which am looking for. Other normal human task works as expected. Only FYI task is not working.
    Element taskDetails = task.getPayloadAsElement(); --- task is an instance of oracle.bpel.services.workflow.task.model.Task
    NodeList payloadNodeList = taskDetails.getElementsByTagName("MyPayload");
    But 'payloadNodeList' is empty (doesnt contain any nodes).
    Not sure why its not working. Do i miss anything here?

    Not sure if this helps, but I think we have the same architecture: a custom ADF tasklist instead of the default Workspace.
    From Oracle BPM we use the SystemMessageAttributes to map certain key elements for our ADF tasklist.
    While doing this it helps the ADF developers so they don't have to parse through the payload of the tasks to get this information for a worklist tasks overview.
    Hope it helps. J@n

  • FYI Tasks and Expiration Policy

    Hi all,
    i try to set an expiration policy for FYI Tasks using the Human Task Editor but it doesn't work where it works for other types.
    can someone confirm that an expiration policy can be set for an FYI task?
    I am using SOA Suite 10.1.3.
    Thanks

    Repost

  • Dynamic users for FYI task

    Hi,
    I have a FYI at the last stage in my human task flow with help of
    call CreateResourceList I can determine the desire user for sending the task (FYI) to him.
    the problem is that based on some data in the payload some time I want to send the FYI to 1 user and in some cases I want to send the FYI to 2 users.
    How can I do that? the CreateResourceList can send the task to only 1 user.
    Thanks.

    Hi,
    you can choose expressions when assigning owners to tasks.
    Within this expressions you can use the Principal Functions like getPrincipalByUniqueName() or getPrincipal().
    Best Regards,
    Timo

  • SOA/BPM/Human Tasks 11g -- add new task participant through Workflow API

    Heya folks. Got a question that's been driving me nuts, hope you can help.
    I have a bunch of Human Tasks in a BPMN process. Each task is pretty simple -- for assignment a single stage only; parallel approval; list of participants is passed in -- via the task payload -- as a comma-delimited list. When the task is initiated it produces a root task, and one child task for each participant. So, say we have participants "fgolfer,atreyvaud" we get three task objects: the "master" or root task and one each for fgolfer and atreyvaud.
    Now what I want to do is add another approver (let's say "gfrog") -- i.e. create a new task for gfrog which is a child of the master task and leaves the tasks for fgolfer and atreyvaud as they are. As far as I can figure, this is NOT a Reassign nor an Ad-Hoc Route. Applying either of those to an existing task effectively removes the existing user from the task and assigns it to the new user.
    On another track, if I programmatically create a new task (with initiateTask() from the Task service, using the values from an existing task), I seem to get a NEW master task with attendant child tasks, while leaving the existing master task and children.
    Make sense? Neither of these outcomes is what I want.
    Seems like this should be pretty simple but for the life of me I can't figure it out. I could create an FYI task or a todo task or a subtask but again this isn't what I want -- need to create a task with all the custom outcomes and such.

    In case folks are playing along at home, I've yet to find a solution for this. Because I need to move forward with my project, I've decided I can't do it through the Workflow API and I'm taking a different route -- basically, triggering a custom task outcome which returns to the same Human Task in the BPMN flow, thus starting the task again. Before doing that I update the task's payload, which contains the task assignees.
    I'm not happy with this, it seems like a nasty hack to overcome a limitation with the Workflow API.
    Understand, though, I'm not saying this is impossible through the Workflow API, just that I haven't found a way to do it. I've spent 2-3 person weeks on this and it's time to move on.

  • RuntimeException trying to Initialize process in BPM 11g workspace.

    Hello everyone!
    I've created simple project with process, None Start Event, then Init Human Task follows, then FYI task follows. When I'm trying to init it I am getting RuntimeException time to time.
    Also I'm getting the same exception trying to view this data entered at FYI task. Weblogic restart helps, after it I can operate well, but after several tries it fails again.
    Any suggestions??
    Thank you for you help in advance!
    Error 500--Internal Server Error
    java.lang.NullPointerException
         at oracle.adf.model.binding.DCIteratorBinding.getSortCriteria(DCIteratorBinding.java:3771)
         at oracle.adf.model.binding.DCInvokeMethod.setAssociatedIteratorBinding(DCInvokeMethod.java:946)
         at oracle.adf.model.binding.DCIteratorBinding.cacheRefOnOperation(DCIteratorBinding.java:5287)
         at oracle.jbo.uicli.binding.JUMethodIteratorDef$JUMethodIteratorBinding.getActionBinding(JUMethodIteratorDef.java:283)
         at oracle.jbo.uicli.binding.JUMethodIteratorDef.isRefreshable(JUMethodIteratorDef.java:59)
         at oracle.adf.model.binding.DCExecutableBindingDef.isRefreshable(DCExecutableBindingDef.java:274)
         at oracle.adf.model.binding.DCBindingContainer.internalRefreshControl(DCBindingContainer.java:3034)
         at oracle.adf.model.binding.DCBindingContainer.refresh(DCBindingContainer.java:2874)
         at oracle.adf.controller.v2.lifecycle.PageLifecycleImpl.prepareModel(PageLifecycleImpl.java:115)
         at oracle.adf.controller.v2.lifecycle.Lifecycle$2.execute(Lifecycle.java:137)
         at oracle.adfinternal.controller.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:197)
         at oracle.adfinternal.controller.faces.lifecycle.ADFPhaseListener.access$400(ADFPhaseListener.java:23)
         at oracle.adfinternal.controller.faces.lifecycle.ADFPhaseListener$PhaseInvokerImpl.startPageLifecycle(ADFPhaseListener.java:238)
         at oracle.adfinternal.controller.faces.lifecycle.ADFPhaseListener$1.after(ADFPhaseListener.java:274)
         at oracle.adfinternal.controller.faces.lifecycle.ADFPhaseListener.afterPhase(ADFPhaseListener.java:75)
         at oracle.adfinternal.controller.faces.lifecycle.ADFLifecyclePhaseListener.afterPhase(ADFLifecyclePhaseListener.java:53)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:399)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:186)
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
         at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
         at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
         at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
         at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:205)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adf.share.http.ServletADFFilter.doFilter(ServletADFFilter.java:62)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:106)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
         at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:271)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:177)
         at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.bpel.services.workflow.client.worklist.util.WorkflowFilter.doFilter(WorkflowFilter.java:205)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.bpel.services.workflow.client.worklist.util.DisableUrlSessionFilter.doFilter(DisableUrlSessionFilter.java:70)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:175)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111)
         at java.security.AccessController.doPrivileged(Native Method)
         at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
         at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413)
         at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:94)
         at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:161)
         at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:136)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
         at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
         at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
         at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)

    Sorry, guys I found the answer: Re: Another bug in Oracle Soa Suite 11gR3 (bpel workflow)

  • FYI Assignees in Human Task

    Hello,
    I would like to allow a Human Task assignee to select and assign users as FYI assignees in a parallel stage within the same Human Task. Is this possible?
    Example: User_A is assigned and logged-into the Human Task under the Worklist Application. I would like to allow User_A to select and assign users as FYI assignees in the currently active task. I only require the FYI users to comment or they can ignore entirely and User_A can reject/approve at any time.
    Is it possible to add FYI assignees to a Human Task while it is running? If so, how is this done?
    My findings so far:
    IWorkflowServiceClient client = WorkflowServiceClientFactory.getWorkflowServiceClient();
    ITaskService service = client.getTaskService();
    What should I do from here?
    I would be open to other design ideas, as well.
    Thanks,
    Mark

    Yes, it is possible assign a group as participant of some human task, passing the group name as parameter.
    I have tested just now.
    It works pretty well in SOA 11.1.1.4 (BPEL or BPM).
    Make sure add a data parameter in your human task definition and pass a valid group name to it.
    At the Assignment tab, in the participants' list, add a group, data type by expression, and set the value to the right xpath expression to the corresponding parameter.
    For example: /task:task/task:payload/task:group
    If it is not working look the SOA log files, probably you'll find some information about the error there. Maybe there is some problem with your jazn.com configuration.
    You can also test if there is something wrong related to the group name, trying to transfer some task to the same group by the worklist.

  • How can i set a task/reminder from an email?

    Hi all, I have a 64gb iPad 2 running iOS 5.1 which work have supplied me with, I'm an apple n00b but am quite experienced with Windows. My mail is synchronised with the office server and I can access that on my Windows laptop or my iPad.
    When I receive a new email that I need to either reply to or perform an action in order for it to be considered complete (ie not just a FYI email that I can file away), I can set this email as a to-do task in Windows, set a coloured reminder to the email, flag the email with a reminder to pop onto my screen etc at a later date - ie loads of ways to highlight to me that this needs to be actually actioned but there doesn't seem to be any way of doing anything with the embedded email program other than mark it as unread.
    At the moment I'm resorting to creating a subfolder called "To do" and manually moving these emails there for the minute but setting a reminder or task, which I've had the ability to set on Windows Outlook since the 90's, seems impossible on the iPad. Other than this my only options seem to be marking the email as unread or going to the reminders app myself and type a 'manual' reminder referencing this email.
    Is there any way, or app, that I can either create a reminder/task straight to reminders from the email or, at the very least, do something to differentiate it from the rest of the emails in my inbox (even highlighting it in a colour would do)?
    Thanks in advance for any help you can offer,
    Matt

    This is an extremely vexing problem and I would like to know if anyone has a solution please.  Here is my situation:
    Using standalone (simply my home one not connected to network or exchange) Outlook 2007 (soon to upgrade to 2013) on PC - Windows 8.1.  Have an iPhone 6.  Want the closest possible functionality (particularly categories, reminders, etc.) on my iPhone for my standalone Outlook.  The only thing I have found close is DejaOffice and Companion Link (which work together).  I am seriously considering as appears a close mirror image for all things I do, but they don't have email.  So, can someone please give me either a) a better comprehensive application/solution; b) a separate 3rd party email app that will allow me to flag an email, on either computer or iPhone with perfect sync, as a reminder without having to create a separate task; or c) your best/closest solution set to be as seamlessly productive as possible using either native or 3rd party email app and your :"manual workaround."  Thanks.

  • How to get current task ID in BPM

    Hi guys,
    I have a requirement where I need to get the current active UWL task id in BPM context. I  have seen the following code to create a direct execution url for a BPM task.
    // begin session
          IUWLSession uwlSession;
          uwlSession = uwlService.beginSession(uwlContext, sessionIdleTimeout);
          uwlContext.setSession(uwlSession);
          IUWLItemManager itemManager = uwlService.getItemManager(uwlContext);
          QueryResult result = itemManager.getItems(uwlContext, null, null);
          ItemCollection items = result.getItems();
          Item item = null;
          for (int i = 0; i < items.size(); i++) {
            item = items.get(i);
            Map params = new HashMap();
            params.put("taskId", item.getExternalId());
            String executionURL = WDURLGenerator.getApplicationURL("sap.com/tc~bpem~wdui~taskinstance", "ATaskExecution", params);
    This works fine, but this is looping through all the tasks assigned to a user.  How do I get the current task ID. I want to use the code inside webdynpro application which is caled as a human activity in BPM. When this WebDynpro application is called I would like to know the current task ID.
    As an FYI , UWL configuration passes the current task ID as a Dynamic parameter to "sap.com/tcbpemwdui~taskinstance"
    application.
    Please help if someone can identify how to get this value in my custom WD.
    Thanks,
    Yomesh.

    Yes. there is no API to get the current task.
    Try this:
    WDProtocolAdapter.getProtocolAdapter().getRequestObject().getParameter("wi_id");
    But i still say a bit confused with your requirement.
    The task id gets created only upon creation of a task. And you want this current task id in the BPM Process context? How is it possible unless and until some action takes place and the data is passed from WDJ to BPM Context?
    Please clear my doubt.

  • Driver Utility Task Sequence Process/Examines all the driver Packages in the T/s, Although it actually should install only 2-3 Drivers for a particular Computer Model

    Hi,
    Although the Driver Utility Task Sequence is working fine as expected, i have noticed that after initiating the Driver Utility from from the Software Center it takes quite a long time to start the installation of the drivers and few Apps which are in chain
    I have pasted the log from a Computer which shows that it checks/Processes all the packages which are in the T/s and that is where it spends the time, although for this model it has to install just 3-4 drivers
    Can we do something about this, to make the installation process just checks/Examines the drivers which are associated under its Specific Model Tree and saves time.  ( Fyi there are around 14 Different Models of Laptops/Desktops which are separated
    by folder and a WQL Query to identify the Model.
    could not paste the log file as its too long
    Thank you,
    Tanoj
    OSLM ENGINEER - SCCM 2007 & 2012

    Is there a specific need that you need to update the already installed drivers or is this just something that someone
    has always done and it will always be done? Give it a thought for a moment.
    We dont upgrade the already installed Drivers, its just installed when a machine is newly imaged / reimaged 
    so whenever a new image is being engineered, simultaneously we create a new T/s with updated drivers and that goes to production along with the new image release
    Thank you all for your replies, looks like the only option at this point is to workaround with splitting the T/s
    Regards
    Tanoj
    OSLM ENGINEER - SCCM 2007 & 2012

  • VBA to identify a group of tasks being updated

    Good Afternoon,
    I have not had much luck with Project questions here, but now that I have dug a little deeper I think I can ask a question that you may be able to help with. If any of you know of a better place to find Project VBA advice, please let me know! 
    This question is also gathering dust over at UA. http://www.utteraccess.com/forum/Custom-Macros-Project-20-t2022616.html
    First off, I am writing a macro that is triggered when a task is updated in project. I used the code from this page as a starting point.
    http://msdn.microsoft.com/en-us/library/ee...fice.12%29.aspx
    The macro I wrote works well. I changed the code up a bit so that it runs each time the user sets a task to 100% complete. When the user sets a task to 100% complete, the macro pulls today's date and adds it to the custom date field (Date2).
    My next challenge is to warn the user if they update start or finish dates for a task with a specific tag in a text field (Text15). This new functionality will be embedded with the previous functionality I already wrote. Here is the problem. When I need to
    update a bunch of tasks, or when I update one task that changes other tasks due to links, the event is triggered for each and every task. This creates lots of message boxes that I don't need.
    On the surface this makes sense because I want to know each time a task changes, but from a practicality standpoint I only need to be notified once for each group of tasks that are updated. For example, if I update one date, and linking causes 10 other dates
    to change, I only want to be notified once. Similarly, if I highlight and change multiple dates I only want to get warned about it once, not once for each task.
    To achieve this I think I need to access some kind of collection that represents the set of tasks that are being updated as a result of user input. This is where I need help. I am not sure how to access this information.
    For your information here are the code elements I have written for the existing macro.
    This section goes in "ThisProject":
    <code>
    Private Sub Project_Open(ByVal pj As Project)
       EnableEvents
    End Sub
    </code>
    This section goes in a module named "modTaskUpdate":
    <code>
    Public TskUpdate As New clsTaskUpdate
    Sub EnableEvents()
       Set TskUpdate.App = MSProject.Application
    End Sub
    </code>
    Finally, this section goes in a Class Module named "clsTaskUpdate":
    <code>
    Public WithEvents App As MSProject.Application
    Private Sub App_ProjectBeforeTaskChange(ByVal tsk As Task, ByVal Field As Long, ByVal NewVal As Variant, Cancel As Boolean)
    'Code for managing 100% complete and Date Completed
    '(This part works OK, see the next section for the code I need to modify)
        If ((Field = pjTaskPercentComplete) And (NewVal = 100)) Then
            'Add today's date to completed date field
            'MsgBox "Adding today's date: " & Date & " to the Date2(DateCompleted) field."
            tsk.Date2 = Date
        End If
        If ((Field = pjTaskPercentComplete) And (NewVal = 0)) Then
            'Remove date from completed date field
            'MsgBox "Removing date from the Date2(DateCompleted) field."
            tsk.Date2 = ""
        End If
    'Code for managing warnings to user if PST dates will change.
    ' Currently this message is triggered for each task that causes a change.
    ' Can we only trigger this task once for each group of changed dates?
        If ((Field = pjTaskStart) Or (Field = pjTaskFinish)) Then
            If (insrt(tsk.Text15, "PST") <> 0) Then
                MsgBox "Warning! You have changed a date that is linked to a line in the PST. As a result the PST has been automatically updated."
            End If
        End If
    End Sub
    </code>
    FYI: The PST is an external Excel file that has its values automatically update via linked cells in Project.
    Thank you for your time and consideration.
    Please let me know if you have any questions.
    Nate

    Nate,
    Yes, as far as I know, there is no "collection" of task changes. Remember, a collection is a group of objects and a change isn't an object.
    I see you found one of the posts I responded to regarding paste links. If you have ABSOLUTE file discipline management, then you might be okay with paste links, but since there is a much better alternative (i.e. VBA) to do what you need I'd avoid the paste
    link idea. As Clint Eastwood said in his Dirty Harry movie, "Do you feel lucky?"
    There have been various posts with code to export Project data to Excel. Unfortunately I find the search capabilities of these forums to be sorely lacking so rather than a link, here is some sample code you can adapt.
    Option Explicit
    Sub CalendarExceptions()
    'Basic macro code created by Kiran.K and posted on MSDN Project
    ' customizing and programming forum Feb 7,2013
    'Code streamlined and updated by John - Project June 2,2014
    Dim MyXL As Object
    Set MyXL = CreateObject("Excel.Application")
    Dim i As Integer, j As Integer
    Dim E As Exception
    Dim r As Resource
    Dim xlRng As Range
    'open Excel, define workbook, and set column headers
    MyXL.Workbooks.Add
    MyXL.Visible = True
    MyXL.ActiveWorkbook.Worksheets.Add.Name = "Exception Report"
    MyXL.ActiveWorkbook.Worksheets("Exception Report").Activate
    Set xlRng = MyXL.ActiveSheet.Range("A1")
    xlRng.Range("A1") = "Proj Cal Holidays"
    xlRng.Range("B1") = "Start Date"
    xlRng.Range("C1") = "Finish Date"
    xlRng.Range("E1") = "Res Name"
    xlRng.Range("F1") = "Res Base Cal"
    xlRng.Range("G1") = "Base Cal Excep"
    xlRng.Range("H1") = "Start Date"
    xlRng.Range("I1") = "Finish Date"
    xlRng.Range("K1") = "Resource Name"
    xlRng.Range("L1") = "Res Excep"
    xlRng.Range("M1") = "Start Date"
    xlRng.Range("N1") = "Finish Date"
    'First gather and export Project calendar exceptions
    i = 2
    If ActiveProject.Calendar.Exceptions.Count > 0 Then
        For Each E In ActiveProject.Calendar.Exceptions
            xlRng.Range("A" & i) = E.Name
            xlRng.Range("B" & i) = E.Start
            xlRng.Range("C" & i) = E.Finish
            i = i + 1
        Next
    End If
    'Next, gather and export resource base calendar exceptions along with
    '   resource calendar exceptions
    i = 2
    For Each r In ActiveProject.Resources
        If Not r Is Nothing Then
            j = i
            If r.Type = pjResourceTypeWork Then
                    For Each E In r.Calendar.BaseCalendar.Exceptions
                        xlRng.Range("E" & i) = r.Name
                        xlRng.Range("F" & i) = r.Calendar.BaseCalendar.Name
                        xlRng.Range("G" & i) = E.Name
                        xlRng.Range("H" & i) = E.Start
                        xlRng.Range("I" & i) = E.Finish
                        i = i + 1
                    Next E
                    For Each E In r.Calendar.Exceptions
                        xlRng.Range("K" & j) = r.Name
                        xlRng.Range("L" & j) = E.Name
                        xlRng.Range("M" & j) = E.Start
                        xlRng.Range("N" & j) = E.Finish
                        j = j + 1
                    Next E
            End If
        End If
    Next r
    MyXL.ActiveWorkbook.Worksheets("Exception Report").Columns("A:N").AutoFit
    End Sub
    John

  • Help (Task/Calendar Display on home screen)

    I need some guidance on how to display my tasks/calendar on my home screen. If there is a way to perform this task I would greatly appreciate it if someone can help, or if there is an application I can download. I previously had the Pearl and I became reliant on this quick view from my home screen.

    Hi there!
    FYI -- you've posted this to the Forum Feedback and Ideas forum...not usually for direct assistance. But, don't double-post, we will have this moved momentarily to the correct place:
    http://supportforums.blackberry.com/rim/board?board.id=BlackBerryDeviceSoftware
    That way, the right experts will have the best visibility.
    Good luck!
    Message Edited by sdgardne on 09-07-2009 01:38 PM
    Occam's Razor nearly always applies when troubleshooting technology issues!
    If anyone has been helpful to you, please show your appreciation by clicking the button inside of their post. Please click here and read, along with the threads to which it links, for helpful information to guide you as you proceed. I always recommend that you treat your BlackBerry like any other computing device, including using a regular backup schedule...click here for an article with instructions.
    Join our BBM Channels
    BSCF General Channel
    PIN: C0001B7B4   Display/Scan Bar Code
    Knowledge Base Updates
    PIN: C0005A9AA   Display/Scan Bar Code

Maybe you are looking for