GPInvocationException:ERROR_ALREADY_STOPPED

Hi Experts,
I am using SAP EP 7.0 SP05.
I have created a GP process and started it from my Web Dynpro program using GP API and could not do that. The process was having a parallel dynamic block and the actions roles at the sequential block level were not visible at parallel dynamic block or process level. I found this happens when I consolidate roles at sequential block level. I was getting "Process initiation failed: can not read the activity" exception. However, if I pass the Recipient Address parameter as simple UserID, I could execute it through both manually and using GP API. (Anyone knows why?)
The structure of the process is:
Process
|__Parallel Dynamic Block
        |__Sequential block
               |___Action_Send (Notification CO)
               |      (Parameters)
               |       |___Recipient Address (Tech. Name: address)
               |       |___surveyId (Tech Name: survryId)
               |       |___empId(Tech Name: empId)
               |___Action_Perform (Web Dynpro CO)
                       (Parameters)
                        |___ address(Tech. Name: address)
                        |___surveyId (Tech Name: survryId)
                        |___empId(Tech Name: empId)
So, I created another process template with same structure without role consolidation at seqential block level and was successfully running it manually even passing Recipient Address parameter as actual e****. Now, when I try to initiate this process using GP API, I am getting exception "GPInvocationException:ERROR_ALREADY_STOPPED."
This I found I am getting even at the very first line of my code when I try to get the GP User context:
(IGPUserContext userContext = GPContextFactory.getContextManager().createUserContext(user);)
Now I am trying to invoke the first process, which I could initiate earlier using GP API, though with wrong input values, and that also is ending with same error.
I do not what may possibly be the reason of this error and where should I dygnose to rectify this error.
Thanks in advance,
Aditya

I am using Notification email CO and all parameters are email_address/email rather than address but I could not post it that way because forum does not allow words like email. Please read parameters in that context only.
Thanks,
Aditya

Similar Messages

  • Error in deployment of ejbmodule

    Hi folks,
    I'm trying to start a GP process from a CAF Application Service. I have followed the follwing tutorial <a href="http://help.sap.com/saphelp_nw2004s/helpdata/en/43/fcdf77fc6510b3e10000000a11466f/frameset.htm">Starting GP Process</a>.
    Here is my Code Snipplet:
    public boolean startProcess() throws com.sap.caf.rt.exception.ServiceException {
            // logging
            java.lang.String CAF_user = sessionContext.getCallerPrincipal().getName();
            java.lang.String CAF_methodHeader = CoordinationServiceASBean.JARM_REQUEST + ":" + "startProcess()";          
            Object[] CAF_parameters = new Object[] {};
            com.sap.caf.rt.util.CAFPublicLogger.entering(CAF_user, CoordinationServiceASBean.JARM_REQUEST, CAF_methodHeader, CoordinationServiceASBean.location, CAF_parameters);
              boolean retValue;
              try {
    //@@custom code start - startProcess()
                   retValue = false;
                   //               obtain the process template
                   try{
                   IUser user = UMFactory.getUserFactory().getUser("test");
                   IGPProcess process =
                        GPProcessFactory.getDesigntimeManager().getActiveTemplate("7F727F90E04F11DB9FA0000C2931A604",user);
                   IGPRuntimeManager rtm = GPProcessFactory.getRuntimeManager();
                   IGPProcessRoleInstanceList roles = rtm.createProcesRoleInstanceList();
                   int rolenum = process.getRoleInfoCount();
                   for (int i = 0;i< rolenum; i++){
                        IGPProcessRoleInstance roleInstance = roles.createProcessRoleInstance(process.getRoleInfo(i).getRoleName());
                        roleInstance.addUser(user);
                        roles.addProcessRoleInstance(roleInstance);
                   IGPStructure params = GPStructureFactory.getStructure(process.getInputParameters());
                   String hi = "hi";
                   rtm.startProcess(process,"test","testdesc",user,roles,params,user);
                   retValue = true;
                   }catch(UMException ue){
                   }catch(GPInvocationException e){
                   }catch(GPEngineException e){
    //@@custom code end - startProcess()
                 return retValue;
            } finally {
                com.sap.caf.rt.util.CAFPublicLogger.exiting(CAF_user, CoordinationServiceASBean.JARM_REQUEST, CAF_methodHeader, CoordinationServiceASBean.location, CAF_parameters);
    I've added the the Public Part external caf/eu/gp/api to my ejbmodule. I have also no build errors in the CAF Project, but when I try to deploy the project the deployment of the ejbmodule fails.
    In my sdm logfile I can see the following stacktrace:
    ERROR: Not updated. Deploy Service returned ERROR:
                         java.rmi.RemoteException: Cannot deploy application xxxx.com/hello~test..
                         Reason: Exception during generation of components of application xxxx.com/hello~test in container EJBContainer.; nested exception is:
                              com.sap.engine.services.deploy.exceptions.ServerDeploymentException: Exception during generation of components of application xxxx.com/hello~test in container EJBContainer.
                              at com.sap.engine.services.deploy.server.DeployServiceImpl.update(DeployServiceImpl.java:681)
                              at com.sap.engine.services.deploy.server.DeployServiceImplp4_Skel.dispatch(DeployServiceImplp4_Skel.java:1278)
                              at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:320)
                              at com.sap.engine.services.rmi_p4.DispatchImpl._run(DispatchImpl.java:198)
                              at com.sap.engine.services.rmi_p4.server.P4SessionProcessor.request(P4SessionProcessor.java:129)
                              at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
                              at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
                              at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
                              at java.security.AccessController.doPrivileged(Native Method)
                              at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
                              at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
                         Caused by: com.sap.engine.services.deploy.exceptions.ServerDeploymentException: Exception during generation of components of application xxxx.com/hello~test in container EJBContainer.
                              at com.sap.engine.services.deploy.server.application.UpdateTransaction.makeComponents(UpdateTransaction.java:415)
                              at com.sap.engine.services.deploy.server.application.DeployUtilTransaction.commonBegin(DeployUtilTransaction.java:321)
                              at com.sap.engine.services.deploy.server.application.UpdateTransaction.begin(UpdateTransaction.java:164)
                              at com.sap.engine.services.deploy.server.application.ApplicationTransaction.makeAllPhasesOnOneServer(ApplicationTransaction.java:292)
                              at com.sap.engine.services.deploy.server.application.ApplicationTransaction.makeAllPhases(ApplicationTransaction.java:326)
                              at com.sap.engine.services.deploy.server.DeployServiceImpl.makeGlobalTransaction(DeployServiceImpl.java:3184)
                              at com.sap.engine.services.deploy.server.DeployServiceImpl.update(DeployServiceImpl.java:669)
                              ... 10 more
                         Caused by: java.lang.NoClassDefFoundError: com/sap/caf/eu/gp/exception/api/GPEngineException
                              at java.lang.Class.getDeclaredConstructors0(Native Method)
                              at java.lang.Class.privateGetDeclaredConstructors(Class.java:1618)
                              at java.lang.Class.getConstructors(Class.java:865)
                              at com.sap.engine.services.ejb.deploy.verifier.BeanClassCheck.check(BeanClassCheck.java:33)
                              at com.sap.engine.services.ejb.deploy.verifier.session.SessionBeanCheck.check(SessionBeanCheck.java:51)
                              at com.sap.engine.services.ejb.deploy.verifier.Verifier.checkBean(Verifier.java:82)
                              at com.sap.engine.services.ejb.deploy.verifier.Verifier.check(Verifier.java:46)
                              at com.sap.engine.services.ejb.deploy.DeltaDeployAdmin.makeUpdate(DeltaDeployAdmin.java:175)
                              at com.sap.engine.services.ejb.EJBAdmin.makeUpdate(EJBAdmin.java:556)
                              at com.sap.engine.services.deploy.server.application.UpdateTransaction.makeComponents(UpdateTransaction.java:400)
                              ... 16 more
                         For detailed information see the log file of the Deploy Service.
    The deployment fails because of the java.lang.NoClassDefFoundError. He doesn't finds the GP Api.
    I'm new to CAF and j2ee development, so can anyone say me how i can solve this error ?
    Any help is appreciated.
    Message was edited by:
            Francesco Iannazzo

    Hi,
    You need to add the GP API DCs as used DC to your development component. To get the GP APIs for local development using NWDS refer these documents:
    <a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/f7be53bb-0b01-0010-1c96-be3cb6799c1b">How to Get NW04s SP7 Guided Procedure APIs for Local Development</a>
    <a href="/people/andre.truong/blog/2006/06/26/working-with-the-apis-of-caf-guided-procedures-nwdi-or-local-development">SAP Network Blog: Working with the APIs of CAF Guided Procedures: NWDI or Local Development?</a>
    Thanks,
    Dipankar

  • How to log Exceptions raised in CAF Application Services

    Hi All,
    When there is an Exception rasing in CAF Application Service custom method implementation what are the steps need to follow for send that exception details to log files & where those log files will be generated i.e either in server, local system, etc.
    If we use following 2 different lines please explain me where that trace is going to written:
    1) System.out.println(e);
    2) e.printStackTrace();
    Thanks in Advance,
    Uday.

    Hi Uday,
    Try this (in my case I'm using that in Background CO that implements IGPBackgroundCallableObject ):
         public static Location logger =
              Location.getLocation(<yourClass>.class);
    Catch block:
              } catch (GPInvocationException e) {
                   throw new GPTechnicalCallableObjectException(
                        logger,
                        resourceAccessor,
                        "ERROR_PARAMETERS",
                        e);
              } catch (GPEngineException e) {
                   throw new GPTechnicalCallableObjectException(
                        logger,
                        resourceAccessor,
                        e.getMessage(),
                        e);
    Reward points if it's helpful.

  • How To Get GP Process Parameters in a Webdynpro Application runtime

    Hi ,
    Iu2019 ll hope you can help me to solve my problem with GP process.
    Iu2019 m trying to get GP process parameters from a Webdynpro application.
    I have to get parameters during the process runtime in every step of the process using
    a webdynpro application with the following code:
          IGPRuntimeManager rtm = GPProcessFactory.getRuntimeManager();
          try {
                IGPProcessInstance processInst = rtm.getProcessInstance(processId,userContext);
                IGPProcessInstanceInfo procInfo = rtm.getProcessInstanceInformation(processInst.getID(),
    userContext.getSAPUser());
                IGPStructureInfo inputstructInfo = processInst.getTemplate().getInputParameters();
                IGPStructure inputparams = GPStructureFactory.getStructure(inputstructInfo);
          } catch (GPEngineException e) {
                // TODO Auto-generated catch block
    //          e.printStackTrace();
                manager.reportException("GPEngineException:"+getStackTrace(e), false);
          } catch (GPInvocationException e) {
                // TODO Auto-generated catch block
    //          e.printStackTrace();
                manager.reportException("GPInvocationException:"+getStackTrace(e), false);
    But printing the values of attributes with u201Cinputparams.getAttributeAs... ("param name")u201C the value returned is always 0. On the contrary if I check the same parameters structure in the runtime
    GP view of the portal, the values are those that I have set in the start process wizard.
    Have you a solution for this question?
    Thanks in advance
    Luca

    hi Abhimanyu
    I believe originally access to session was deliberately not made available inside WDA.
    Growing security concerns due to misuse of session information and
    perhaps other reasons as well.
    X.509  is considered a better approach.
    This may not help you in your problem.
    But you may see a trend in WDA pushing more robust and client independent
    approaches.
    Full x.509 access should remove the need for session fiddling.
    Also when developers access such session info directly, there is a possiblity
    when they dont understand the technology exactly that they create a security hole.
    You may know how to do safely, it is however discouraged.
    Im not aware of a way to get at the session info inside the WDA framework.
    Well not without a mod to the framework.
    It may be possible without a mod, but I dont know the trick.
    If someone has a little trick... please post.
    You may need to use BSP, if your only solution requires access to the session info.
    regards
    Phil

  • Error while setting input parameter for dynamic process - GP

    Hi All,
    I am using CAF 7.1 GP.
    Here I have to start a process dynamically and it is working fine.
    But, when I tried to set value for input parameter of this process by
    IGPStructure params = GPStructureFactory.getStructure(process.getInputParameters());
    params.setAttributeValue("Val","MyValue");
    ( <b>Val</b> is the name of grouped input parameter ), it is giving
    com.sap.caf.eu.gp.exception.api.GPInvocationException: Structure with name input and namespace http://wwww.sap.com/nw/eup/gp does not have an attribute with name Val and namespace null.
    But no where I have mentioned http://wwww.sap.com/nw/eup/gp.
    I dont have any structures in my input and output.
    Here is my full code
           try
                IGPProcess process = null;
                IUser tl_user =UMFactory.getUserFactory().getUserByLogonID("fahad");
                     IGPUserContext userContext = GPContextFactory.getContextManager().createUserContext(tl_user);//, user.getLocale());
                     process =GPProcessFactory.getDesigntimeManager().getActiveTemplate("F5D76840A56F11DC983B001966243CAD",userContext);
                     wdComponentAPI.getMessageManager().reportSuccess("Title of process is "+process.getTitle());
                     IGPRuntimeManager rtm = GPProcessFactory.getRuntimeManager();
                     IGPProcessRoleInstanceList roles = rtm.createProcessRoleInstanceList();
                     int rolenum = process.getRoleInfoCount();
                     wdComponentAPI.getMessageManager().reportSuccess("Number is "+rolenum);
                     IGPProcessRoleInstance roleInstance=null;
                     IUser ho_User=null;
                     for (int i = 0; i < rolenum; i++)
                             wdComponentAPI.getMessageManager().reportWarning("Role Text is "process.getRoleInfo(i).getText()"  Role Name is "+process.getRoleInfo(i).getRoleName());
                             if(i==1)
                                  ho_User = UMFactory.getUserFactory().getUserByLogonID("poornendu");
                                  roleInstance = roles. createProcessRoleInstance(process.getRoleInfo(i).getRoleName());
                                  roleInstance.addRuntimeDefinedUser(ho_User);
                                  roles.addProcessRoleInstance(roleInstance);
                             if(i==2)
                                  ho_User = UMFactory.getUserFactory().getUserByLogonID("fahad");
                                  roleInstance = roles. createProcessRoleInstance(process.getRoleInfo(i).getRoleName());
                                  roleInstance.addUser(ho_User);
                                  roles.addProcessRoleInstance(roleInstance);
                     wdComponentAPI.getMessageManager().reportSuccess(""+process.getStructure().getItemCount());
                     IGPStructure params = GPStructureFactory.getStructure(process.getInputParameters());
                     wdComponentAPI.getMessageManager().reportSuccess("Title of process is "+process.getTitle());
                     <b>params.setAttributeValue("Val","MyValue");</b>                     
                     String pName=wdContext.currentContextElement().getProcessName();
                     IGPProcessInstance prInstance = rtm.startProcess(process,pName,"This process has been started using the GP public API",tl_user,roles,params,tl_user);
           catch(Exception e)
                wdComponentAPI.getMessageManager().reportException(""+e);
    Can anyone help me on this.
    Thanks,
    Fahad Hamsa

    Hi Experts,
    I solved it myself.
    The problem was, I have to make the input parameter as exposed. Thats all
    Anyway, thanks for the support.
    Regards,
    Fahad Hamsa

  • Error in starting new process in GP

    Hi All
    I am facing a problem is starting a new GP process dynamically.
    On the following step I get a GP InvocationException
    IGPUserContext userContext =GPContextFactory.getContextManager()
                             .createUserContext(processUser);.
    Message:
    ERROR_ALREADY_STOPPED
    com.sap.caf.eu.gp.base.exception.InvocationException: ERROR_ALREADY_STOPPED
    at com.sap.caf.eu.gp.base.caching.MemoryCache.checkActive(MemoryCache.java:231)
    at com.sap.caf.eu.gp.base.caching.MemoryCache.getEntry(MemoryCache.java:282)
    at com.sap.caf.eu.gp.model.context.impl.UserContextFactory.getUserContext(UserContextFactory.java:195)
    at com.sap.caf.eu.gp.model.context.impl.UserContextFactory.getUserContext(UserContextFactory.java:181)
    at com.sap.caf.eu.gp.context.impl.GPUserContext.<init>(GPUserContext.java:85)
    I tried to restart the Server, even that does not help.
    Please help
    Deepu

    hi deepu
    check this
    http://help.sap.com/saphelp_nw04s/helpdata/en/44/7a056cdb0b6573e10000000a11466f/frameset.htm
    http://help.sap.com/saphelp_nw04s/helpdata/en/43/fcdf77fc6510b3e10000000a11466f/frameset.htm
    Can't start GP process by GP API
    let me know u need any further info
    bvr

  • How to use Model in GP

    Iam new to GP.I have created a Model.Now how to define the parameters in the getDescription,getComplete,execute.
    Please help me in this way or anyone can explain the functions in getDescription.How to pass values.
    try {
         IWDTextAccessor textAccessor = wdComponentAPI.getTextAccessor(); //To retrieve Messages from Message Pool
         GPWebDynproResourceAccessor resourceAccessor = new GPWebDynproResourceAccessor(textAccessor);
         IGPTechnicalDescription technicalDescription = GPCallableObjectFactory.createTechnicalDescription("CO_NAME","CO_DESCRIPTION",resourceAccessor,locale);
    //        Pre-existing structure for output parameters
         IGPStructureInfo output = technicalDescription.getOutputStructureInfo();
    //        Create the attributes in the output structure
         IGPAttributeInfo userId = output.addAttribute("UserID", IGPAttributeInfo.BASE_STRING);
         userId.setMultiplicity(IGPAttributeInfo.MULITIPLICITY_1_1);
    //        add result state
         IGPCOResultStateInfo success = technicalDescription.addResultState("Success");
         success.setDescriptionKey("Success_desc");
         return technicalDescription;
         } catch (GPInvocationException e) {
         return null;

    Hi,
    in getDescription you must declare the input, output and the states of the co. Smth like that:
    // Description of the future callable object
    IGPTechnicalDescription technicalDescription =
                     GPCallableObjectFactory.createTechnicalDescription(
                        "SelectUserCO",
                        "Select from available users",
                        resourceAccessor,
                        locale);
    // input structure
    IGPStructureInfo input =
    technicalDescription.getInputStructureInfo();
    IGPStructureInfo providerProfileEntryInput =
                     input.addStructure("user1");
                  providerProfileEntryInput.setMultiplicity(IGPStructureInfo.MULITIPLICITY_0_N);
                  providerProfileEntryInput.addAttribute("name", IGPAttributeInfo.BASE_STRING);
    // structure for output parameters
    IGPStructureInfo output =
                     technicalDescription.getOutputStructureInfo();
    IGPStructureInfo providerProfileEntryOutput =
                          output.addStructure("User2");
                  providerProfileEntryOutput.setMultiplicity(IGPStructureInfo.MULITIPLICITY_0_N);
                  providerProfileEntryOutput.addAttribute("name", IGPAttributeInfo.BASE_STRING);
    //add result state
    IGPCOResultStateInfo success =
                     technicalDescription.addResultState("Success");
                  success.setDescriptionKey("Success_desc");
    Then in execute you should map your input to our context. You have node elements for your structure nodes and you can add the new elements you create/map to the user.
    Important are maybe:
    executionContext and the wdContext variables. Declare them under (//@@begin others, //@@end provided by SAP):
      //@@begin others
           private IGPExecutionContext executionContext;
         IWDTextAccessor textAccessor;
         GPWebDynproResourceAccessor resourceAccessor;
      //@@end
    and then instantiation in the constructor:
        this.wdThis = wdThis;
        this.wdContext = wdThis.wdGetContext();
        this.wdControllerAPI = wdThis.wdGetAPI();
        this.wdComponentAPI = wdThis.wdGetAPI().getComponent();
    this help page can help:
    http://help.sap.com/saphelp_nwce10/helpdata/en/fd/afb4429027da11e10000000a155106/content.htm
    best regards,
    v s

  • GP: can not map the parameters

    Hello,
    I've created a Callable Object which runs at the background. The problem is that I get the following exception if I map the parameters with another CO and restart the process.
    com.sap.caf.eu.gp.exception.api.GPInvocationException: Structure with name input and namespace http://wwww.sap.com/nw/eup/gp does not have an attribute with name pfad and namespace null.
         at com.sap.caf.eu.gp.structure.impl.GPStructure.throwUnknownAttribute(GPStructure.java:806)
         at com.sap.caf.eu.gp.structure.impl.GPStructure.setAttributeValue(GPStructure.java:107)
         at com.sap.caf.eu.gp.structure.impl.GPStructure.setAttributeValue(GPStructure.java:730)
         at com.sap.caf.eu.gp.structure.impl.GPStructure.setAttributeValue(GPStructure.java:738)
         at de.oscare.kmc.test.Main$UsingJSPDynPagePage.run(Main.java:75)
         at de.oscare.kmc.test.Main$UsingJSPDynPagePage.doInitialization(Main.java:55)
         ... 35 more
    The test of this object works fine and without mapping the parameter the process runs.
    How can I solve this problem?
    Best Regards
    Marco

    Hello Vani.
    thanks for your answer.
    I've found out that the right name of the parameter is "pfad.3" and now it works fine.
    Did you (or someone else) know, how this name will be created? Because my WD should work with more than one process. I mean I will keep it dynamic.
    Regards
    Marco

  • Start GP Process using GP APIs

    Hello,
    I am using GP APIs to start my process programatically in webdynpro.
    When I test it in Web Service navigator I get PortalRuntimeException.
    The exception occurs when execute
         IGPContextManager gpCtxManager = GPContextFactory.getContextManager();
    I have used the following code to start the GP Process:
    IGPProcessInstance procInstance;
    try {
         userFactory = UMFactory.getUserFactory();
         IUser user = userFactory.getUserByLogonID(user);
         IGPContextManager gpCtxManager = GPContextFactory.getContextManager();
         IGPUserContext userContext = gpCtxManager.createUserContext(user);
         IGPProcess process =
              GPProcessFactory.getDesigntimeManager().getActiveTemplate(
              processTemplateId, userContext);
         IGPRuntimeManager rtm = GPProcessFactory.getRuntimeManager();
         IGPProcessRoleInstanceList roles =
              rtm.createProcessRoleInstanceList();
         IGPStructure processParams =
              GPStructureFactory.getStructure(process.getInputParameters());
         processParams.setAttributeValue(
              requestIdParam,
              req_id);
         IGPRuntimeManager gpRuntimeManager =
              GPProcessFactory.getRuntimeManager();
         procInstance =
              gpRuntimeManager.startProcess(
                   process,
                   processName,
                   processDescr,
                   user,
                   roles,
                   processParams,
                   user
         } catch (Exception e) {
              return e.getMessage();
    Any help would be highly appreciated..
    Thanks and regards,
    Lyudmila

    Hi,
    Hope this code will help you,
         String ProcessID = "<Process ID>";
         IUser adminUser = null;
         IUser userRequesterUser = null;
         try {
           adminUser = UMFactory.getUserFactory().getUserByLogonID("<User Id of Process Admin>");
           userRequesterUser = UMFactory.getUserFactory().getUserByLogonID(RequesterUID);
              IGPUserContext userContext = GPContextFactory.getContextManager().createUserContext(adminUser);
              IGPProcess process = GPProcessFactory.getDesigntimeManager().getActiveTemplate(
                                            ProcessID, userContext);
              IGPRuntimeManager rtm = GPProcessFactory.getRuntimeManager();
              IGPProcessRoleInstanceList roles = rtm.createProcessRoleInstanceList();
              int rolenum = process.getRoleInfoCount();
              String strRoleName = "";
              // iterate over the required roles
              for (int i = 0; i < rolenum; i++) {
                   // create a new role instance by specifying the role's unique name
                   IGPProcessRoleInstance roleInstance = roles. createProcessRoleInstance(process.getRoleInfo(i).getRoleName());
                   strRoleName = process.getRoleInfo(i).getRoleName();
                   if(strRoleName.startsWith("role.")) {
                        roleInstance.addUser(adminUser);
                   Collection users = roleInstance.getUserAsCollection();
                   IUser usr = null;
                   Iterator ietr = users.iterator();
                   while(ietr.hasNext()) {
                        usr = (IUser)ietr.next();
                   roles.addProcessRoleInstance(roleInstance);
              //add values to the input parameters of the process
              IGPStructure params = GPStructureFactory.getStructure(process.getInputParameters());
              params.setAttributeValue("<Attribute Name>",<attribute value>);
                //initiate the process template by passing the process template
                IGPProcessInstance prInstance = rtm.startProcess(process,"<Process Name>",
                                "This process has been started using the GP public API", userRequesterUser,roles,params,userRequesterUser);
           } catch (GPInvocationException e12) {
    //            wdComponentAPI.getMessageManager().reportSuccess("Invok ERR " + e12.getMessage());
                // TODO Auto-generated catch block
                e12.printStackTrace();
           } catch (GPEngineException e2) {
                wdComponentAPI.getMessageManager().reportException("Invok ERR 2 - " + e2.getMessage(),true);
                // TODO Auto-generated catch block
                e2.printStackTrace();
           } catch (Exception e2) {
                wdComponentAPI.getMessageManager().reportException("Invok ERR 3 - " + e2.getMessage(),true);
                // TODO Auto-generated catch block
                e2.printStackTrace();
    Regards,
    Niraj

  • Start GP Process through Webdynpro using GP APIs

    Hello,
    I am using GP APIs to start my process programatically in webdynpro using the link :
    http://help.sap.com/SAPHELP_NW70EHP1/helpdata/EN/33/198141f906040de10000000a1550b0/frameset.htm
    The first screen is a Webdynpro For Java Callable Object which has a Submit button ...on the click of this button i have written the code to start the process.....the process is getting started alright which i checked in NWA -> Guided Procedures -> Process Instance...but then it does not move to the next screen.....but just stays there........the structure params i am sending as blank since my process does not expose any input parameters.(as specified in the Library)....
    Any help would be highly appreciated...
    Regards,
    Anil

    Hi,
    Try this code:
    //@@begin startProcess()
         wdContext.currentContextElement().setProcessID("/Process ID of GP process/");
         IUser adminUser = null;
         IUser userRequesterUser = null;
         try {
              IWDClientUser clientUser = null;
              try {
                   clientUser = WDClientUser.getCurrentUser();
              } catch (WDUMException e) {
                   // TODO Auto-generated catch block
                   e.printStackTrace();
              IUser user = clientUser.getSAPUser();
              String loginUser = user.getUniqueName();
              adminUser = UMFactory.getUserFactory().getUserByLogonID(/*Owner of process */);
              userRequesterUser = UMFactory.getUserFactory().getUserByLogonID(loginUser);
         } catch (UMException e1) {
              wdComponentAPI.getMessageManager().reportException("UME ERR " + e1.getMessage(),true);
              // TODO Auto-generated catch block
              e1.printStackTrace();
         try {
              IGPUserContext userContext = GPContextFactory.getContextManager().createUserContext(adminUser);
              IGPProcess process = GPProcessFactory.getDesigntimeManager().getActiveTemplate(wdContext.currentContextElement().getProcessID(), userContext);
              IGPRuntimeManager rtm = GPProcessFactory.getRuntimeManager();
              IGPProcessRoleInstanceList roles = rtm.createProcessRoleInstanceList();
              int rolenum = process.getRoleInfoCount();
              String strRoleName = "";
              IGPStructure userStruct = null;
              // iterate over the required roles
              for (int i = 0; i < rolenum; i++) {
                   // create a new role instance by specifying the role's unique name
                   IGPProcessRoleInstance roleInstance = roles.createProcessRoleInstance(process.getRoleInfo(i).getRoleName());
                   strRoleName = process.getRoleInfo(i).getRoleName();
    //               wdComponentAPI.getMessageManager().reportSuccess("Roles - " + process.getRoleInfo(i).getRoleName());
                   // add a user to the role instance
                   if (strRoleName.startsWith("Requester")) {
                        roleInstance.addUser(userRequesterUser);
                   } else if (strRoleName.startsWith("role.")) {
                        roleInstance.addUser(adminUser);
                   Collection users = roleInstance.getUserAsCollection();
                   IUser usr = null;
                   Iterator ietr = users.iterator();
                   while (ietr.hasNext()) {
                        usr = (IUser) ietr.next();
                   roles.addProcessRoleInstance(roleInstance);
              //add values to the input parameters of the process
              IGPStructure params = GPStructureFactory.getStructure(process.getInputParameters());
              params.setAttributeValue("/*Parameter Group Name of Process /", /Value to be passed*/);
              IGPProcessInstance prInstance = rtm.startProcess(process, "/Name of Process/", "This process has been started using the GP public API", userRequesterUser, roles, params, userRequesterUser);
         catch (ConnectionException e) {
               //TODO Auto-generated catch block
              e.printStackTrace();
         } catch (CommandException e) {
               //TODO Auto-generated catch block
              e.printStackTrace();
         } catch (GPInvocationException e12) {
              wdComponentAPI.getMessageManager().reportException("Invok ERR " + e12.getMessage(),true);
               //TODO Auto-generated catch block
              e12.printStackTrace();
         } catch (GPEngineException e2) {
              wdComponentAPI.getMessageManager().reportException("Invok ERR 2 " + e2.getMessage(),true);
               //TODO Auto-generated catch block
              e2.printStackTrace();
    //@@end
    Regards,
    Niraj
    Edited by: Niraj Kumar on Dec 4, 2009 8:32 AM

  • Modify the Due Date in a GP Process

    Hello everybody,
    I need to modify the Due Date on a given Process. All I have is the Process ID, that i get from a Parameter in my function... I got some code form several pages in the SAP Library, but i get an error in the line:
              IGPProcessInstance procesInst = rtm.getProcessInstance(proc, userContext);
    In this line a GPEngineException is raised, Any help will be greatly appreciated!!!
    This is the Code I have:
         IUser user = null;
         IGPStructure params = null;
    //        Get current user
         try {
                   IWDClientUser wdUser = WDClientUser.getCurrentUser();
                   user = UMFactory.getUserFactory().getUserByLogonID(wdUser.getSAPUser().getName());
              //        obtain the Process template
                   IGPProcess process =
                   GPProcessFactory.getDesigntimeManager().getActiveTemplate(
              //        by specifying its ID
                   processId,
              //        and the user accessing it
                   user);
              //        obtain the Run Time Manager
                   IGPRuntimeManager rtm = GPProcessFactory.getRuntimeManager();
              //        create a new, empty role assignment list
                   IGPProcessRoleInstanceList roles = rtm.createProcesRoleInstanceList();
              //        get the number of roles required
                   int rolenum = process.getRoleInfoCount();
              //        iterate over the required roles
                   for (int i = 0; i < rolenum; i++) {
              //          add a new role assignment to the list
                    roles.createProcessRoleInstance(
              //          by specifying the role's unique name
                    process.getRoleInfo(i).getRoleName()).addUser(
              //          add the current user to every process role
                    user);
              //          Here you see how to populate parameters with data.
              //          This example only works, if you initiate the "Time-Off process"
              //          that is delivered per default with the GP Framework.
              //          You find it in the gallery below "Examples".
              //          Otherwise no parameters are initialized.
              String proc = processId;  // Got it as a Parameter
              IGPUserContext userContext =  GPContextFactory.getContextManager().createUserContext(user);
                               /* En Exception is Raised in this line: */
              IGPProcessInstance procesInst = rtm.getProcessInstance(proc, userContext);
              Iterator notifs = (Iterator) procesInst.getNotificationInstanceEnumeration();
              IGPNotificationManager notifManager = GPProcessFactory.getNotificationManager();
              while(notifs.hasNext())
                      IGPNotificationInstance notif = (IGPNotificationInstance)notifs.next();
                      if(notif.isDueDateNotification())
                                IGPDeadline deadline = GPNotificationFactory.createDeadline(
                                                                                         IGPDeadline.DEADLINE_ABSOLUTE_POINT,
                                                                                         null,
                                                                                         0,
                                                                                         (java.sql.Date.valueOf("2008-02-29")).getTime());
                                notifManager.updateNotification(
                                                                     proc,
                                                                     notif.getActivityInstanceID(),
                                                                     notif.getNotificationID(),
                                                                     deadline);
                    params = GPStructureFactory.getStructure(process.getInputParameters());
                    if (process.getTitle().equals("Time-Off Process")){
                         IGPStructure struc = params.addStructure("Time_off_data.1");
                         struc.setAttributeValue("AbsenceTypeText", "Vacation");
                         struc.setAttributeValue("SimulationCode", 0);
                         struc.setAttributeValue("CompletionCode", 0);
                         struc.setAttributeValue("PaidFlag", true);
                    params.setAttributeValue("data", java.sql.Date.valueOf("2008-02-28"));
              //          initiate the process template by passing the Process template
                    rtm.startProcess(process,
              //          a name,
                    "Process started by API ",
              //          a description,
                    "This process has been started by an API",
              //          the initiating user
                    user,
              //          the role assignment,
                    roles,
              //          the initial parameters
                    params,
              //          and the user actually executing this action
                    user);
          } catch (WDUMException ex) {
          logger.traceThrowableT(Severity.ERROR,
          "Current user could not be resolved: ", ex);
          } catch (GPInvocationException ex) {
          logger.traceThrowableT(Severity.ERROR,
          "Exception raised when trying to start process: ", ex);
          } catch (GPEngineException ex) {
          logger.traceThrowableT(Severity.ERROR, "Exception raised when trying to start process: ", ex);     
         catch (UMException ex) {
         logger.traceThrowableT(Severity.ERROR,
         "Exception raised when trying to start process: ", ex);
    Edited by: Francisco Perez on Mar 10, 2008 3:41 PM

    Hello All,
    You can change the deadline of a Due date notification of an process as given below:
               IGPRuntimeManager rtManager = GPProcessFactory.getRuntimeManager();     
               String process = executionContext.getProcessId();
               IUser admin =   UMFactory.getUserFactory().getUserByUniqueName("administrator");
               IGPUserContext userContext =  GPContextFactory.getContextManager().createUserContext(admin);
               IGPProcessInstance procesInst = rtManager.getProcessInstance(process,userContext);
               Iterator notifs = (Iterator) procesInst.getNotificationInstanceEnumeration();
               while(notifs.hasNext())
                    IGPNotificationInstance notif = (IGPNotificationInstance)notifs.next();
                    if(notif.isDueDateNotification())
                        IGPDeadline deadline = GPNotificationFactory.createDeadline( IGPDeadline.DEADLINE_ABSOLUTE_POINT,null,0,(new Date(108,2,1)).getTime());
                        notifManager.updateNotification(process,notif.getActivityInstanceID(),notif.getNotificationID(),deadline);

  • Can't start GP process by GP API

    When I start GP process using GP API, it report the following exception:
    ERROR_ALREADY_STOPPED
    com.sap.caf.eu.gp.base.exception.InvocationException: ERROR_ALREADY_STOPPED
         at com.sap.caf.eu.gp.base.caching.MemoryCache.checkActive(MemoryCache.java:230)
         at com.sap.caf.eu.gp.base.caching.MemoryCache.getEntry(MemoryCache.java:281)
         at com.sap.caf.eu.gp.model.context.impl.UserContextFactory.getUserContext(UserContextFactory.java:195)
         at com.sap.caf.eu.gp.model.context.impl.UserContextFactory.getUserContext(UserContextFactory.java:181)
         at com.sap.caf.eu.gp.context.impl.GPUserContext.<init>(GPUserContext.java:89)
         at com.sap.caf.eu.gp.context.impl.GPContextManager.createUserContext(GPContextManager.java:90)
         at com.sinopec.mdmgp.util.workflow.MDMGPWorkflowUtil.startGPProcess(MDMGPWorkflowUtil.java:170)
         at com.sinopec.mdmgp.util.workflow.MDMGPWorkflowUtil.startProcess(MDMGPWorkflowUtil.java:123)
         at com.sinopec.mdmgp.wd.ui.grid.GPUIGridView.handleSubmit(GPUIGridView.java:479)
         at com.sinopec.mdmgp.wd.ui.grid.wdp.InternalGPUIGridView.wdInvokeEventHandler(InternalGPUIGridView.java:239)
         at com.sap.tc.webdynpro.progmodel.generation.DelegatingView.invokeEventHandler(DelegatingView.java:87)
         at com.sap.tc.webdynpro.progmodel.controller.Component.fireEvent(Component.java:284)
         at com.sinopec.mdmgp.wd.ui.grid.wdp.InternalDCUIGridCompInterface.wdFireEventEV_SUBMIT(InternalDCUIGridCompInterface.java:188)
         at com.sinopec.mdmgp.wd.ui.grid.DCUIGridCompInterface.submitGuidedPrice(DCUIGridCompInterface.java:175)
         at com.sinopec.mdmgp.wd.ui.grid.wdp.InternalDCUIGridCompInterface.submitGuidedPrice(InternalDCUIGridCompInterface.java:136)
         at com.sinopec.mdmgp.wd.ui.grid.wdp.InternalDCUIGridCompInterface$External.submitGuidedPrice(InternalDCUIGridCompInterface.java:258)
         at com.sinopec.mdmgp.wd.pricing.frame.DCGuidedPriceModifyView.onActionSubmitConfirm(DCGuidedPriceModifyView.java:288)
         at com.sinopec.mdmgp.wd.pricing.frame.wdp.InternalDCGuidedPriceModifyView.wdInvokeEventHandler(InternalDCGuidedPriceModifyView.java:240)
         at com.sap.tc.webdynpro.progmodel.generation.DelegatingView.invokeEventHandler(DelegatingView.java:87)
         at com.sap.tc.webdynpro.clientserver.event.CustomEventProcessor.handleServerEvent(CustomEventProcessor.java:45)
         at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.doHandleServiceEvent(WindowPhaseModel.java:361)
         at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processRequest(WindowPhaseModel.java:128)
         at com.sap.tc.webdynpro.clientserver.window.WebDynproWindow.processRequest(WebDynproWindow.java:335)
         at com.sap.tc.webdynpro.clientserver.window.WebDynproWindow.processPhaseLoop(WebDynproWindow.java:345)
         at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:152)
         at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doProcessing(ApplicationSession.java:313)
         at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessingPortal(ClientSession.java:733)
         at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessing(ClientSession.java:668)
         at com.sap.tc.webdynpro.clientserver.session.ClientSession.doProcessing(ClientSession.java:250)
         at com.sap.tc.webdynpro.clientserver.session.RequestManager.doProcessing(RequestManager.java:149)
         at com.sap.tc.webdynpro.clientserver.session.core.ApplicationHandle.doProcessing(ApplicationHandle.java:73)
         at com.sap.tc.webdynpro.portal.pb.impl.AbstractApplicationProxy.sendDataAndProcessActionInternal(AbstractApplicationProxy.java:860)
         at com.sap.tc.webdynpro.portal.pb.impl.localwd.LocalApplicationProxy.sendDataAndProcessAction(LocalApplicationProxy.java:77)
         at com.sap.portal.pb.PageBuilder.updateApplications(PageBuilder.java:1257)
         at com.sap.portal.pb.PageBuilder.SendDataAndProcessAction(PageBuilder.java:325)
         at com.sap.portal.pb.PageBuilder$1.doPhase(PageBuilder.java:826)
         at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processPhaseListener(WindowPhaseModel.java:755)
         at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.doPortalDispatch(WindowPhaseModel.java:717)
         at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processRequest(WindowPhaseModel.java:136)
         at com.sap.tc.webdynpro.clientserver.window.WebDynproWindow.processRequest(WebDynproWindow.java:335)
         at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:143)
         at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doProcessing(ApplicationSession.java:313)
         at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessingStandalone(ClientSession.java:713)
         at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessing(ClientSession.java:666)
         at com.sap.tc.webdynpro.clientserver.session.ClientSession.doProcessing(ClientSession.java:250)
         at com.sap.tc.webdynpro.clientserver.session.RequestManager.doProcessing(RequestManager.java:149)
         at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doContent(DispatcherServlet.java:62)
         at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doPost(DispatcherServlet.java:53)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:401)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:387)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:365)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:944)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:266)
         at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95)
         at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:175)
         at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
         at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    Is there something wrong with the UserContext?

    Hi Osukhovsky,
    Thanks for your answer.
    I am sure the process template is activated, beacause I can start it in GP Runtime.
    After I restart the server process, the problem is resolved. But I want to know the reason why the code dosen't work suddenly?

  • How to assign Action to multiple Users dynamically in GP

    Hello Experts,
    I have the following scenario in GP
    I have created a Web Dynro GP Callable Object and from my Web Dynpro i need to a pass a list of Users to which a particular Action needs to be assigned.
    I am able to return a single value from web dynpro to gp.
    Can some one help me how to return a list of users to gp.
    I have done the following: In the getDescription method I have added an attribute of multiplicity 1_N:
    IGPStructureInfo outputStruct = technicalDescription.getOutputStructureInfo();
    IGPAttributeInfo list1 = outputStruct.addAttribute("List1", IGPAttributeInfo.BASE_STRING);
    list1.setMultiplicity(IGPAttributeInfo.MULITIPLICITY_1_N);
    then in the complete method I am trying to set an Arraylist to this variable:
    IGPStructure output = execContext.getOutputStructure();
    output.setAttributeValue("List1", userList);
    Here userList is an Arraylist which contains the list of User Id's..
    However I get the following exception:
    com.sap.caf.eu.gp.exception.api.GPInvocationException: Multiplicity of attribute with name List1 and namespace null does not allow single values to be set/received
    at com.sap.caf.eu.gp.structure.impl.GPStructure.setAttributeValue(GPStructure.java:114)
    Can someone help me in knowing how I can return a list as an output parameter to GP from Web Dynpro...
    Regards
    Sundeep

    Hi Srinivasan,
    Of course the Role is Runtime defined...
    I would brief you again the mapping that I have performed in the Design time at the processlevel.
    From Web Dynpro I return a List of type String and Multiplicity 1..N.
    I map this List with the leaf item User Identifier contained in the User List Input parameter of the Assign User to Process Role callable object.
    However since the User Identifier parameter is of cardinality 0..1 only the first value in the returned list is getting assigned to it. Thus the task is getting assigned to only one user.
    Now it is not possible in Design time to Group or consolidate parameters of different types. Thus the List which is of type String cannot be mapped to User List or the User_Item contained within it which are both of type Structure and multiple cardinality.
    I even created a Structure in Web Dynpro of cardinality 1..N and withing it i included a List of type String and cardinality 1..N. Now I returned this Structure from Web Dynpro and tried to map it to the User Item Structure of the Assign User to Process Role Callable object, but doint this the task did not get assigned to any user..
    One question:
    Don't you think that in order for the task assignment to happen using the Assign User to Process Role Callable Object the leaf item User Identifier parameter contained in the User_List input parameter of this callable object needs to be populated with the required User Id's.
    But if the cardinality of this parameter is always 0..1 , is it possible to achive the assignment of an Action to multiple Users at runtime using this Callable Object?
    Can you please explain the parameter mapping you followed in order to achive this...
    Regards
    Sundeep
    I want to ensure that you remain in the top 3 contributors in this forum 
    I will continue to reward points for your answers
    Edited by: Sundeep Sethi on Sep 4, 2008 1:47 PM

  • GP runtime error

    We are getting a runtime error when a person other than the initial creator of a process tries to initiate the process. Both people have the same roles and permissions within GP.
    It is fine up until the point of clicking the 'initiate' button, that is when the error happens.
    Below is the stack trace of the error.
    Any help would be appreciated.
    Thanks,
    Cindy
    java.lang.NoClassDefFoundError: com/sap/caf/eu/gp/exception/api/GPInvocationException
    at com.sap.caf.eu.gp.ui.rt.wdp.InternalVRuntimeMain.<init>(InternalVRuntimeMain.java:175)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
    ... 47 more
    Detailed Exception Chain:
    com.sap.tc.webdynpro.services.exceptions.WDRuntimeException: Failed to create delegate for view com.sap.caf.eu.gp.ui.rt.VRuntimeMain. (Hint: Is the corresponding DC deployed correctly? Does the DC contain the component?)
         at com.sap.tc.webdynpro.progmodel.generation.ControllerHelper.createDelegate(ControllerHelper.java:110)
         at com.sap.tc.webdynpro.progmodel.generation.DelegatingView.<init>(DelegatingView.java:41)
         at com.sap.tc.webdynpro.progmodel.view.ViewManager.createUninitializedView(ViewManager.java:638)
         at com.sap.tc.webdynpro.progmodel.view.ViewManager.getView(ViewManager.java:675)
         at com.sap.tc.webdynpro.progmodel.view.ViewManager.bindRoot(ViewManager.java:560)
         at com.sap.tc.webdynpro.progmodel.view.ViewManager.init(ViewManager.java:155)
         at com.sap.tc.webdynpro.progmodel.view.InterfaceView.initController(InterfaceView.java:43)
         at com.sap.tc.webdynpro.progmodel.controller.Controller.init(Controller.java:200)
         at com.sap.tc.webdynpro.progmodel.view.ViewManager.getView(ViewManager.java:690)
         at com.sap.tc.webdynpro.progmodel.view.ViewManager.bind(ViewManager.java:536)
         at com.sap.tc.webdynpro.progmodel.view.ViewManager.makeVisible(ViewManager.java:770)
         at com.sap.tc.webdynpro.progmodel.view.ViewManager.onComponentCreated(ViewManager.java:258)
         at com.sap.tc.webdynpro.progmodel.components.ComponentUsage.fireComponentCreated(ComponentUsage.java:568)
         at com.sap.tc.webdynpro.progmodel.components.ComponentUsage.createComponentInternal(ComponentUsage.java:168)
         at com.sap.tc.webdynpro.progmodel.components.ComponentUsage.createComponent(ComponentUsage.java:134)
         at com.sap.caf.eu.gp.ui.inst.VRuntime.onPlugIPFromInstantiation(VRuntime.java:145)
         at com.sap.caf.eu.gp.ui.inst.wdp.InternalVRuntime.wdInvokeEventHandler(InternalVRuntime.java:130)
         at com.sap.tc.webdynpro.progmodel.generation.DelegatingView.invokeEventHandler(DelegatingView.java:87)
         at com.sap.tc.webdynpro.clientserver.cal.ClientApplication.navigate(ClientApplication.java:821)
         at com.sap.tc.webdynpro.clientserver.cal.ClientComponent.navigate(ClientComponent.java:873)
         at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.doNavigation(WindowPhaseModel.java:498)
         at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processRequest(WindowPhaseModel.java:144)
         at com.sap.tc.webdynpro.clientserver.window.WebDynproWindow.processRequest(WebDynproWindow.java:330)
         at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:143)
         at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doProcessing(ApplicationSession.java:297)
         at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessingStandalone(ClientSession.java:706)
         at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessing(ClientSession.java:660)
         at com.sap.tc.webdynpro.clientserver.session.ClientSession.doProcessing(ClientSession.java:228)
         at com.sap.tc.webdynpro.clientserver.session.RequestManager.doProcessing(RequestManager.java:152)
         at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doContent(DispatcherServlet.java:56)
         at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doPost(DispatcherServlet.java:47)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:390)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:264)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:347)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:325)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:887)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:241)
         at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)
         at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148)
         at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
         at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    Caused by: java.lang.reflect.InvocationTargetException
         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
         at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
         at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
         at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
         at com.sap.tc.webdynpro.progmodel.generation.ControllerHelper.createDelegate(ControllerHelper.java:74)
         ... 46 more
    Caused by: java.lang.NoClassDefFoundError: com/sap/caf/eu/gp/exception/api/GPInvocationException
         at com.sap.caf.eu.gp.ui.rt.wdp.InternalVRuntimeMain.<init>(InternalVRuntimeMain.java:175)
         ... 51 more

    It was deployed. It was working fine for me, just not the other person. We finally had them log into the portal through my pc and then it worked for them. They then tried it again on their pc and it worked ok. It might have been some sort of caching issue, but they had logged off and closed their browser several times over the course of trying to get it all to work.  This is one error I doubt we could ever reproduce in a fashion to be able to have it diagnosed from the back-end.
    -Cindy

  • CAF GP APIs - Unable to add action to a block

    Hi all,
    I am trying to design a CAF GP Process using the GP APIs.
    For creating a block using APIs, I am taking help from this help.sap link:
    [Creating Blocks|http://help.sap.com/saphelp_nw04s/helpdata/en/44/7b3690e1da6572e10000000a11466f/content.htm]
    For adding an action to a block, I have to use this line of code:
    b.getModifiableStructure().addItem(a);
    Here b is the instance of my block and a is the instance of my action. But on deploying the application, I am getting GPInvocationException as follows:
    com.sap.caf.eu.gp.exception.api.GPInvocationException:
    Invalid value at com.sap.caf.eu.gp.exception.impl.ExceptionUtil.convertTo(ExceptionUtil.java:143) at com.sap.caf.eu.gp.process.impl.GPModifiableBlockStructure.createItem(GPModifiableBlockStructure.java:150)
    at com.sap.caf.eu.gp.process.impl.GPModifiableBlockStructure.addItem(GPModifiableBlockStructure.java:232)
    at com.wipro.gpapi.GPAPIView.createProcess(GPAPIView.java:327)
    So basically, the addItem() method is not accepting a as a valid value. Has anyone worked on GP APIs and come across such an issue?
    Thanks in advance.
    Regards,
    Ankur

    Hi,
    I suspect that the addInstance() is attempting to work. Bear in mind that the addInstance() will create a new instance of the repeating object in it's initial state. Therefore if the repeating object is set to hidden, then if new instances are created they will also be hidden.
    One work around would be to set the presence of the subform to visible in Design view (Object > Field palette). Then in the Object > Binding palette set the Min count to 0. This means that when the form is rendered, the subform will not be visible. Lastly, the script in the click event of the radio button would add an instance, instead of make it visible.
    Hope that helps,
    Niall

Maybe you are looking for

  • Petstore cannot finish the transaction

    I have setup a iplanet application server 6.5, and web server 4.1sp9, i want to test the petstore 1.1.2. i according to http://developer.iplanet.com/appserver/samples/jps1.1.2/docs/index.html install, all the thing is okay, i can install database tab

  • How to handle NavigationController and TabBarController

    I need a good explanation how can I handle the UINavigationControllers and the UITabBarControllers on iOS6 with StoryBoards. 1. When I load my app (1st ViewController) I need if (FB login = success) it jumps with segues to the 2nd ViewController auto

  • Consume Wsrp Portlet Error

    Hi,I am new to webcenter, and my situation is : I develop a very simple bounded task flow(using page fragement) which just shows the employees list and emplee detail info views, nothing special and it works well in the jsf page as region, then I crea

  • Libreoffice Crashing on Save again

    Several months ago I noticed that there was a bug in which Libreoffice would crash while in the "save as" dialog. I simply waited it out for a while, and then a new version of Libreoffice fixed it. In retrospect, I believe it was the same issue as de

  • 'More Info' Unavailable When Using FW Drive

    Hi all, i have an external Maxtor FW drive with the oxford 911 chipset. I've noticed that when i select 'more info' under the Command I (Properties) i don't get the codec and resolution info that i get with media files that are on my internal drive.