How to get value from ___.co.xml ???

Hi All,
     I am trying to deveop a KM service that should be configurable(by the User) so that he/she can specify the folder on which the service should act on...
I have created a CM repository called "<b>test_Rep</b>" for my purpose and added my rep. service to it. Guess what! The uploaded documents are getting renamed .. HURRAY!!!!!!!!!
i changed the
___.co.xml
and
___.cc.xml
files by adding another parameter!
After editing the XML files, i have tried to read the properties in the received() method as follows :
String repositoryPath = this.properties.getProperty("myFolder");
<b>It works!</b>
Original value of myFolder (in co.xml file) = /test_Rep/folder1
<Configurable .....>
<property name="myFolder" value="/test_Rep/folder1" />
</Configurable>
But, in PORTAL when i change, System Admin >> System config >> Content management >> rep. services >> com.test.SampleService >> myFolder = <b>"/test_Rep/folder2"</b>, and try to check in that folder... it doesn't work .. 
I even restarted the server .. but, doesn't help!
<b><u>Doubts:</u></b>
1) when the user changes the value of 'myFolder' (in  content mgt >> rep. services >> com.test.SampleService), does it change the XML file inside the par file?????
2) How should i retrieve the value of this parameter at runtime (the latest value which the user entered in  content mgt >> rep. services >> com.test.SampleService)
please see the below code of received(IEvent event) method:::::
private static final Location log = Location.getLocation(SampleService.class );
public void received(IEvent event) {
  IResourceEvent myEvent = (IResourceEvent) event;
  IResource resource = (IResource) myEvent.getParameter();
  String repositoryPath = this.properties.getProperty( "myFolder");     //getting folder name at runtime!!!!!!!
  String parentPath = "";
  try {
     parentPath = resource.getParentCollection().getRID().toString();
  } catch (AccessDeniedException e1) {
     e1.printStackTrace();
  } catch (ResourceException e1) {
     e1.printStackTrace();
     if (resource != null && (!resource.isCollection()) ) {
     try {
     /* my business logic...
     } catch (NotSupportedException e) {
          log.errorT("Got exception: Not Supported Exception!" );
     } catch (ResourceException e) {
          log.errorT("Got exception: Resource Exception!" );
plz help..
Any ideas on this scenario ..
Regards,
Krish.

Hi,
you don't have to create a ConfigListener. But if you want it - you can. Have you noticed in another sections of CM configuration that you do not have to restart the J2EE to apply changes?
In your *.cc.xml you can define it by adding the <i>hotReload, hotLoad, hotUnload</i> attributes. See my example:
<ConfigClass
     id="name"
     name="NewDocuments"
     hotReload="true"
     hotUnload="true"
     advanced="false"
     hotLoad="true"
     configurable="cz.sap.szif.newDocuments.handler.EventHandlerService" >
            <attribute name="name" type="string" mandatory="true"  visibleColumn="true"/>      
          <attribute name="replicator" type="boolean" mandatory="true" default="false"/>              
</ConfigClass>
Now create an implementation of IConfigListener interface (something like this):
public class NewDocumentsServiceConfig implements IConfigEventListener {
  // plugin definition
  private static final String PLUGIN_NEW_DOCUMENTS = "/cm/customer";
  private static final String CONFIGCLASS_NEW_DOCUMENTS = "NewDocuments";
  private static final String readPlugins[] = { PLUGIN_NEW_DOCUMENTS };
  // config data
  private List configList = null;
   * constructor
  public NewDocumentsServiceConfig() {
    try {
      // read initial data
      reconfigure();
      // register event listener for my configuration
      Configuration.getInstance().getConfigEventServiceInstance().addConfigEventListener(
        this,
        readPlugins);
    } catch (Exception e) {
      LogWriter.traceSevere(LogWrapper.trace, e, LogWriter.extractCallStack(e), true);
   * call before object destroy
  public void destroy() {
    try {
      // unregister listener
      Configuration.getInstance().getConfigEventServiceInstance().removeConfigEventListener(this);
    } catch (InitialConfigException e) {
      LogWriter.traceSevere(LogWrapper.trace, e, LogWriter.extractCallStack(e), true);
    } catch (Exception e) {
      LogWriter.traceSevere(LogWrapper.trace, e, LogWriter.extractCallStack(e), true);
  /* (non-Javadoc)
   * @see com.sapportals.config.event.IConfigEventListener#getConfigListenerId()
  public String getConfigListenerId() {
    return toString();
  /* (non-Javadoc)
   * @see com.sapportals.config.event.IConfigEventListener#configEvent(com.sapportals.config.event.ConfigEvent)
  public void configEvent(ConfigEvent event) {
    // this is a simple example
    // if an event occurs - reconfigure == re-read all configurations
    // ...you could catch which configuration was changed and only change the config for only this one
    try {
      if (event.getType() != ConfigEvent.CONFIGURABLE_LOADED
        && event.getType() != ConfigEvent.CONFIGMANAGER_TERMINATED)
        reconfigure();
      LogWriter.traceInfo(LogWrapper.trace, " event:" + event.getType());
    } catch (Exception e) {
      LogWriter.traceSevere(LogWrapper.trace, e, LogWriter.extractCallStack(e), true);
   * Reload all the configurations
  private void reconfigure() {
    try {
      IConfigClientContext context = IConfigClientContext.createContext(ConfigCrutch.getConfigServiceUser());
      IConfigManager cfg = Configuration.getInstance().getConfigManager(context);
      IConfigPlugin configPlugin = cfg.getConfigPlugin(PLUGIN_NEW_DOCUMENTS);
      this.configList = new LinkedList();
      if (configPlugin != null) {
        LogWriter.traceInfo(LogWrapper.trace, " configPlugin:" + configPlugin.getName());
        IMutableConfigurable[] configurables =
          configPlugin.getConfigurables(CONFIGCLASS_NEW_DOCUMENTS, false);
        for (int j = 0; j < configurables.length; j++) {
          IMutableConfigurable configurable = configurables[j];
          if (configurable.getConfigClass().getName().equals(CONFIGCLASS_NEW_DOCUMENTS)) {
            // this is a simple object which holds the attribute values
            // in a HashMap (hMap.put(PROP_NAME, configurable.getPropertyValue(PROP_NAME));...)
            NewDocumentsConfigRecord record = new NewDocumentsConfigRecord(configurable);
            this.configList.add(record);
      } else {
        LogWriter.traceWarning(
          LogWrapper.trace,
          " configPlugin == NULL for pluginName:" + PLUGIN_NEW_DOCUMENTS);
    } catch (InitialConfigException e) {
      LogWriter.traceSevere(LogWrapper.trace, e, LogWriter.extractCallStack(e), true);
    } catch (Exception e) {
      LogWriter.traceSevere(LogWrapper.trace, e, LogWriter.extractCallStack(e), true);
   * @return all my configurations
  public List getConfigList() {
    return this.configList;
...and in your service:
public class EventHandlerService extends AbstractService implements IEventHandlerService {
  private NewDocumentsServiceConfig config_listener;
  public void afterInit() {
    // setup config listener
    config_listener = new NewDocumentsServiceConfig();
  public void release() {
    config_listener.destroy();
    config_listener = null;
Now you should be able to catch the changes in the configuration.
Hope this helps,
Romano

Similar Messages

  • How to get value from list item

    Hi all,
    How to get value from list item?
    I have a problem with the List Item object
    in the Oracle forms.
    How can I retrieve the selected item from
    a list ?
    I didn't find any function like 'list.GET_
    SELECTED_ITEM()'...
    thanks
    Bala

    Hello,
    You get the value as for any other Forms item:
    :value := :block.list_tem ;Francois

  • How to get values from a table(in jsp) for validation using javascript.

    hi,
    this is praveen,pls tell me the procedure to get values from a table(in jsp) for validation using javascript.
    thank you in advance.

    Yes i did try the same ..
    BEGIN
    select PROD_tYPE into :P185_OFF_CITY from
    magcrm_setup where atype = 'CITY' ;
    :p185_OFF_CITY := 'XXX';
    insert into mtest values ('inside foolter');
    END;
    When i checked the mtest table it shos me the row inserted...
    inside foolter .. Now this means everything did get execute properly
    But still the vallue of off_city is null or emtpy...
    i check the filed and still its empty..
    while mtest had those records..seems like some process is cleaining the values...but cant see such process...
    a bit confused..here..I tried on Load after footer...
    tried chaning the squence number of process ..but still it doesnt help
    some how the session variables gets changed...and it is changed to empty
    Edited by: pauljohny on Jan 3, 2012 2:01 AM
    Edited by: pauljohny on Jan 3, 2012 2:03 AM

  • JSF:how to get value from dinamically generated HtmlInputText components�H�H

    <h:panelGroup binding="#{dynamicInputGroupBean.group}"/>
    public HtmlPanelGroup getGroup() {
              if (this.getSelectedComp() == null) {
                   return this.group;
              FacesContext facesContext = FacesContext.getCurrentInstance();
              Application application = facesContext.getApplication();
              this.group = new HtmlPanelGroup();
              Set pSet = this.getSelectedComp().getParameterses();
              int size = pSet.size();
              this.instanceValue = new String[size];
              int i = 0;
              for (Iterator it = pSet.iterator(); it.hasNext();) {
                   Parameters tempP = (Parameters) it.next();
                   HtmlOutputLabel outputLable = new HtmlOutputLabel();
                   HtmlInputText inputText = new HtmlInputText();
                   inputText.setId("p" + i);
                   String valueBindingExpression = "#{dynamicInputGroupBean.instanceValue["+i+ "]}";
                   System.out.println(valueBindingExpression);
                   ValueBinding valueBinding = application
                             .createValueBinding(valueBindingExpression);
                   inputText.setValueBinding("value", valueBinding);
                   outputLable.setFor(inputText.getId());
                   outputLable.setValue(tempP.getParaname() + ": ");
                   group.getChildren().add(outputLable);
                   group.getChildren().add(inputText);
                   i++;
              // group.getChildren().add(new HtmlInputText());
              return group;
         }as codes show above, i successfully genera HtmlInputText dinamicaly�C
    but i got problems while i try to print those values...
    after the the jsp page presents in my browser,
    i input some words in the input components,
    and then click a commandButton hold an action to print their value
    action code :
    String[] tempArray = this.getInstanceValue();
    for (int i = 0; i < tempArray.length; i++) {
    System.out.println(tempArray);
    only NULL has been printed in the consol ....not the word i inputed!!!
    so my question is how can i get values from those
    dinamically generated HtmlInputText ????

    This approach is odd. What's the functional requirement after all? You normally attach the inputtext value to a backing bean property and do the desired command button action which is attached to a backing bean action method. In this method you then use the value for the query.

  • How to get values from an IFrame...

    Hi everyone. I have come to a complete stop i my project and need to ask the following: How do i get the values from an IFrame.
    Situation: I have a main.jsp page that contains an IFrame(data.jsp). Data.jsp is basically made up of a bunch of checkboxes. The state of these boxes(checked or unchecked) is determined and set by a JAVA program and the results are then stored in a StringBuffer. Contents of Stringbuffer could look something like this: <tr><input type='checkbox' name='box0' CHECKED></tr>.
    The StringBuffer in then presented in the IFrame(data.jsp) like so: <%=res.getInfo()%>
    The user should be able to check or uncheck the boxes from the main.jsp page then when pressing a submit button the changes should be stored in a DBase.
    After the submit button have been pressed i go into my Servlet's doPost() method for some basic processing. This is were the problem starts. I usally use HttpServletRequest.getParameter(String param) to get values from the main.jsp page. But these checkboxes are stored in the IFrame, so how do i go about to retrieve the values from data.jsp from the doPost() method or in some other way maybe. This is quite urgent and i hope that i have explained the scenario in enough detail.
    Any help would be greatlly apritiated.
    Best regards
    Peter

    Hello
    Just try this link
    http://www.faqts.com/knowledge_base/view.phtml/aid/13758/fid/53
    HTH

  • How to get values from a stored package variable of type record ?

    Sir,
    In my JClient form, I need to get values from a database stored package variable of type record. And the values are retained in the JClient form for the whole session. The values are copied only once when the form is started.
    What is the best way to do that ?
    Thanks
    Stephen

    Stephen,
    not sure what your model is, but if it is Business Components, I think I would expose the properties as a client method on the application module. This way all JClient panels and frames will have access to it. You could use a HashMap to store the data in teh app module.
    If JDBC supports the record type, then you should be able to call it via a prepared SQL statement. If not, you may consider writing a PLSQL accessor to your stored procedure that returns something that can be handled.
    Steve Muench provides the following examples on his blog page
    http://otn.oracle.com/products/jdev/tips/muench/stprocnondbblock/PassUserEnteredValuesToStoredProc.zip
    http://otn.oracle.com/products/jdev/tips/muench/multilevelstproc/MultilevelStoredProcExample.zip
    Frank

  • How to get value from one context node to otehr contect conde in diff views

    Hello Guru's
    We have a rek which is of getting the value from one context node to other context node,
    for example there is Total value in BT111H_OPPT/ITEMLIST (One context node) we need to have the same Total value in the in BT111H_OPPT/DETAILS (other context node) automatically
    Inputs are highly appricated.......

    Hello,
    Thanks for your Reply
    But my rek is i want to get value from different views
    eg BT111H_oppt/itemslist(contex node - BTADMINI) field net value to BT111h_opp/Details(Context node - BTopporth)
    for this which method should i use to chive this.
    Thanks..

  • How to read values from the following XML?

    I have been using "extractValue" to get the values from a xmltype field and no problems until now.
    The xmltype now is like:
    <a>1</a>
    <b>2</b>
    <c>1221</c>
    <c>1412</c>
    <d>11111</d>
    <e>3333</e>
    I'm able to read values from 'a,b,d,e' but not from 'c'.
    Questions:
    1)- Is posible to read the values of field c?. How?
    2)- If is not posible to read the field values, Is posible to transfor the xmlfield to:
    Where I will be able to use xmltable columns and loop getting the values.
    <a>1</a>
    <b>2</b>
    <k>
    <c>1221</c>
    <c>1412</c>
    </k>
    <d>11111</d>
    <e>3333</e>
    Like always
    Thank you in advance for your help.
    Jose Galan

    SQL> with XML as
      2  (
      3   select xmltype(
      4  '<root>
      5    <a>1</a>
      6    <b>2</b>
      7    <c>1221</c>
      8    <c>1412</c>
      9    <d>11111</d>
    10    <e>3333</e>
    11  </root>'
    12  ) XMLDOC
    13    from dual
    14  )
    15  select a, b,c, d, e
    16    from XML,
    17         XMLTABLE
    18         (
    19            '/root'
    20            passing XMLDOC
    21            columns
    22            A number(5) path 'a',
    23            B number(5) path 'b',
    24            D number(5) path 'd',
    25            E number(5) path 'e',
    26            C_XML_FRAG xmltype path 'c'
    27         ),
    28         XMLTABLE
    29         (
    30           '/c'
    31           passing C_XML_FRAG
    32           columns
    33           C number(5) path '.'
    34         )
    35  /
             A          B          C          D          E
             1          2       1221      11111       3333
             1          2       1412      11111       3333
    SQL>

  • How to get values from RT table

    Hello friends ,
    I want to get earned basic from RT table  T-code - pc00_m40_clstr
    how to get that values for wage types
    gaurav

    Hi Gaurav,
    The Function Module u2018 PYXX_READ_PAYROLL_RESULT u2019 generically reads a complete payroll result, that is for all country versions, from file PCL2 or from the buffer. In doing so, the payroll result is transferred to the PAYROLL_RESULT parameter. In the calling system, this must be classified as a complex structure according to the 'PAYxx_RESULT' dictionary structure. u2018 xx u2018 is the ISO code for the country. Now the payroll result is in the parameter FS_PAY99_RESULT. In this parameter the RT table is considered and the required values are moved into a internal table (say  T_RT).
    Regards,
    Swapna.

  • How to get values from the page excpet pagecontext.getparameter

    i have a requirement wherein i am passing paramteres from the "submit" button.but the problem being that,i have multiple rows in my page.what is happening is that my "submit" button is passing the values of the previous row,instead of the current row.this is i think because "commit" gets called later and params are passed before it.
    how do i solve this problem
    or if i can get to get paramteres in a advance table layout,i l be able to achieve my requirement.beacuse in advance table layout,i am not able to do pagecontext.getparameter("---" of the item

    thanks guys,
    i did try working with row refrence but it returns a null only.
    my requirement was that i had update functionality as well as "add new rows" on the same advtbl bean.an whenevr i click on "add new row" and submit,i was always gettin the parameters for the previous row.
    now,i have got a workaround to that,by having a radio button to select rows to update and whenever i click on "add new rows" ,i disable the radio button,and get the handle based on the value from radio group.
    but still row refrence dint work for me.i will appreciate if sum1 can send me the code

  • How to get values from a query string in URL in a jsf page?

    if i have a url, http://my.com/?name=john+smith, how do i get the values from that url in a jsf page and then pass those values to a servlet?
    i know how to do that in jsp using "request.getParamter("name")" and save it in a bean and then forward to a servlet. But what about in jsf?

    Hello,
    Try this:
    Map requestMap = FacesContext.getCurrentInstance().getExternalContext().getRequestMap();
    String name = (String) requestMap.get("name");If isn't worked one of these methods probably will solve your problem.
    FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
    FacesContext.getCurrentInstance().getExternalContext().getRequestHeaderMap();hth.

  • How to get values from afLiterator ?

    Hi All,
    I have a grid populated records using af:Iterator. Row are populated from the List model(say product list). The iterator component i binded in the bean.
    Now i have showing 5 records per page. total 3 pages are there.
    There is a boolean check box for each rows. and a common check box to select all the rows in the page.
    I dont know how to get the rows of current set when i select the SelectAll checkbox, similarlly i have to do the same when i go to page 2 of the iterator.(page 2 means next range of records in the iterator)
    My requirement is using the af:iterator not af:table.. please help

    Hi,
    af:iterator does i) not keep track of selection states and ii) stamp data
    i) The selection state needs to be tracked with <f:attribute ...> tags added to the check box component. The value of the attribute should identify the row (ideally by a unique key). The name of the attribute is up to you. When you iterate over the selected check boxes you call getAttribute() on the check box component to access your custom attribute for identifying the row instance
    ii) rows are no individual instances and there fore cannot be directly accessed. af:forEach may be a better fit for your use case as it created component instances that then allow you to call the JSF parent container and getChildren on this. You then look for the checkbox component instances and verify its selection state. For selected components you the access the custom attribute
    Frank

  • How to get value from messageStyledText which is present in other RN

    Hi,
    I have xxcompscore messageStyledText in region 1 (separate controller) and xxobjscore messageStyledText in region2 (separate controller).
    The both values are double.
    My requirement is to get that value from another region (page layout) and add that both values and display in this RN.
    How to do this, i tried lot but i'm getting NullPointerException Error.

    Afridi,
    I tried again by creating new controller, same error.
    I'm trying the following code in the pagelayout controller.
    Code:
    public void processRequest(OAPageContext pageContext, OAWebBean webBean)
    super.processRequest(pageContext, webBean);
    double TotalScore;
    OAMessageStyledTextBean TotalScoreText = (OAMessageStyledTextBean)webBean.findChildRecursive("XXEmployeeTotalScoreText");
    String CompString=(String)pageContext.getSessionValue("CompScoreValue");
    double CompScore=Double.parseDouble(CompString);
    String ObjString=(String)pageContext.getSessionValue("ObjScoreValue");
    double ObjScore=Double.parseDouble(ObjString);
    TotalScore=(CompScore+ObjScore)/2;
    TotalScoreText.setValue(pageContext,TotalScore);
    error:
    oracle.apps.fnd.framework.OAException: java.lang.NullPointerException
         at oracle.apps.fnd.framework.OAException.wrapperException(OAException.java:912)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:616)
         at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:252)
         at oracle.apps.fnd.framework.webui.OAPageLayoutHelper.processRequest(OAPageLayoutHelper.java:1182)
         at oracle.apps.fnd.framework.webui.beans.layout.OAPageLayoutBean.processRequest(OAPageLayoutBean.java:1569)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:968)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:935)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:659)
         at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:252)
         at oracle.apps.fnd.framework.webui.beans.form.OAFormBean.processRequest(OAFormBean.java:385)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:968)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:935)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:659)
         at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:252)
         at oracle.apps.fnd.framework.webui.beans.OABodyBean.processRequest(OABodyBean.java:353)
         at oracle.apps.fnd.framework.webui.OAPageBean.processRequest(OAPageBean.java:2607)
         at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:1940)
         at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:543)
         at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:431)
         at OA.jspService(_OA.java:212)
         at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:59)
         at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:390)
         at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:594)
         at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:518)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
         at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:734)
         at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:391)
         at com.evermind.server.http.ServletRequestDispatcher.unprivileged_forward(ServletRequestDispatcher.java:280)
         at com.evermind.server.http.ServletRequestDispatcher.access$100(ServletRequestDispatcher.java:68)
         at com.evermind.server.http.ServletRequestDispatcher$2.oc4jRun(ServletRequestDispatcher.java:214)
         at oracle.oc4j.security.OC4JSecurity.doPrivileged(OC4JSecurity.java:284)
         at com.evermind.server.http.ServletRequestDispatcher.forward(ServletRequestDispatcher.java:219)
         at com.evermind.server.http.EvermindPageContext.forward(EvermindPageContext.java:395)
         at OA.jspService(_OA.java:221)
         at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:59)
         at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:390)
         at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:594)
         at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:518)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
         at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:64)
         at oracle.apps.jtf.base.session.ReleaseResFilter.doFilter(ReleaseResFilter.java:26)
         at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:15)
         at oracle.apps.fnd.security.AppsServletFilter.doFilter(AppsServletFilter.java:318)
         at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:642)
         at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:391)
         at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:908)
         at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:458)
         at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:313)
         at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:199)
         at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
         at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
         at java.lang.Thread.run(Thread.java:662)
    ## Detail 0 ##
    java.lang.NullPointerException
    java.lang.NullPointerException

  • How to get value from Thread Run Method

    I want to access a variable from the run method of a Thread externally in a class or in a method. Even though I make the variable as public /public static, I could get the value till the end of the run method only. After that it seems that scope of the variable gets lost resulting to null value in the called method/class..
    How can I get the variable with the value?
    This is sample code:
    public class SampleSynchronisation
    public static void main(String df[])
    sampleThread sathr= new sampleThread();
    sathr.start();
    System.out.println("This is the value from the run method "+sathr.x);
    /* I should get Inside the run method::: But I get only Inside */
    class sampleThread extends Thread
         public String x="Inside";
         public void run()
              x+="the run method";

    I think this is what you're looking for. I hold up main(), waiting for the results to be concatenated to the String.
    public class sampsynch
        class SampleThread extends Thread
         String x = "Inside";
         public void run() {
             x+="the run method";
             synchronized(this) {
              notify();
        public static void main(String[] args) throws InterruptedException {
         SampleThread t = new sampsynch().new SampleThread();
         t.start();
         synchronized(t) {
             t.wait();
         System.out.println(t.x);
    }

  • How to get values from workflow to program

    Hello everybody,
    I am stuck with an issue in workflow. I want to know how can I get the values of workflow in Abap program.
    Scenario:
    The workflow is triggered when a user does the transaction MIGO.
    The user gets a workflow in his SAP inbox. He clicks on the link and is able to view details in MIGO.
    I want to get the material number and year in program ( as shown below)
    I am new to workflow, is there any kind of binding to do? And maybe a method or function module which will allow to get these values in program.
    Thanks a lot
    Regards

    Hello,
    With some help here and there, we have been able to set up the workflow. Special thanks to Modak Gupta.
    I'm sharing the steps below. I would be grateful if someone could explain the different binding, what are their purposes depending on the place they are done, etc. I am still not very at ease with the binding. Thanks.
    Requirement:
    Once MIGO is done, the client wishes to do another MIGO. For him to know that the first MIGO has been done, he needs to get it in his SAP Inbox (Workflow). From there, he can just execute the workflow and he will do the second MIGO.
    Steps:
    1. Create a BAPI in SE37 to get the purchase order (we need it because we will open the second MIGO with the purchase order of the first MIGO). We will also call the transaction MIGO in the BAPI (For our requirement, it is ZMIGO, but very similar to MIGO, just some different customizing).
    In the BAPI, use the function module BAPI_GOODSMVT_GETDETAIL to get the purchase order.
    A BDC is also done in the BAPI to open ZMIGO with the purchase order.
    Code:
    FUNCTION zbapi_call_transaction.
    *"*"Interface locale :
    *"  IMPORTING
    *"     VALUE(MATERIALDOCUMENT) TYPE  MBLNR
    *"     VALUE(MATDOCUMENTYEAR) TYPE  MJAHR
    *"  EXPORTING
    *"     VALUE(RETURN) TYPE  BAPIRETURN
    DATA: gt_items TYPE STANDARD TABLE OF bapi2017_gm_item_show,
    gs_items TYPE bapi2017_gm_item_show,
    gt_return TYPE STANDARD TABLE OF bapiret2,
    gs_header TYPE bapi2017_gm_head_02,
    l_materialdocument  TYPE  bapi2017_gm_head_02-mat_doc,
    l_matdocumentyear TYPE  bapi2017_gm_head_02-doc_year.
    DATA: gs_bdcdata  TYPE bdcdata,
    gt_bdcdata  TYPE TABLE OF bdcdata,
    l_opt TYPE ctu_params.
    l_materialdocument       = materialdocument.
    l_matdocumentyear        = matdocumentyear.
    CALL FUNCTION 'BAPI_GOODSMVT_GETDETAIL'
    EXPORTING
    materialdocument = l_materialdocument
    matdocumentyear  = l_matdocumentyear
    IMPORTING
    goodsmvt_header  = gs_header
    TABLES
    goodsmvt_items   = gt_items
    return           = gt_return.
    READ TABLE gt_items INTO gs_items INDEX 1.
    IF sy-subrc EQ 0.
    CLEAR gs_bdcdata.
    gs_bdcdata-program  = 'SAPLMIGO'.
    gs_bdcdata-dynpro   = '0001'.
    gs_bdcdata-dynbegin = 'X'.
    APPEND gs_bdcdata TO gt_bdcdata.
    CLEAR gs_bdcdata.
    gs_bdcdata-fnam = 'BDC_CURSOR'.
    gs_bdcdata-fval = 'GODYNPRO-PO_NUMBER'.
    APPEND gs_bdcdata TO gt_bdcdata.
    CLEAR gs_bdcdata.
    gs_bdcdata-fnam = 'GODYNPRO-PO_NUMBER'.
    gs_bdcdata-fval = gs_items-po_number.
    APPEND gs_bdcdata TO gt_bdcdata.
    CLEAR gs_bdcdata.
    gs_bdcdata-fnam = 'BDC_CURSOR'.
    gs_bdcdata-fval = 'GODEFAULT_TV-BWART'.
    APPEND gs_bdcdata TO gt_bdcdata.
    CLEAR gs_bdcdata.
    gs_bdcdata-fnam = 'GODEFAULT_TV-BWART'.
    gs_bdcdata-fval = '101'.
    APPEND gs_bdcdata TO gt_bdcdata.
    CLEAR gs_bdcdata.
    gs_bdcdata-fnam = 'BDC_CURSOR'.
    gs_bdcdata-fval = 'GODYNPRO-PO_NUMBER'.
    APPEND gs_bdcdata TO gt_bdcdata.
    CLEAR gs_bdcdata.
    gs_bdcdata-fnam = 'BDC_OKCODE'.
    gs_bdcdata-fval = '=OK_GO'.
    APPEND gs_bdcdata TO gt_bdcdata.
    l_opt-dismode = 'E'.
    l_opt-defsize = 'X'.
    CALL TRANSACTION 'ZMIGO' USING gt_bdcdata OPTIONS FROM l_opt.
    ENDIF.
    ENDFUNCTION.
    2. Create a Business Object in SWO1.
    It is a copy of BUS2017, we have added our BAPI and an event. We also modified the program.
    Modify the program by clicking on Program above:
    Add the parameters in the new method (BAPI)
    Add the parameters in the new Event.
    3. Implement the BADI in SE18 / SE19
    BADI: MB_DOCUMENT_BADI -
    Method: MB_DOCUMENT_BEFORE_UPDATE
    Get the purchase order
    Use the function module SAP_WAPI_CREATE_EVENT to pass values from program to workflow.
    Code:
    method IF_EX_MB_DOCUMENT_BADI~MB_DOCUMENT_BEFORE_UPDATE.
    DATA : BEGIN OF key,
    mblnr TYPE mkpf-mblnr,
    mjahr TYPE mkpf-mjahr,
    END OF key.
    DATA : event_container TYPE TABLE OF swcont.
    DATA : objkey TYPE sweinstcou-objkey.
    DATA : s_xmkpf TYPE mkpf.
    DATA: l_RETURN_CODE TYPE sy-subrc,
    l_event_id TYPE SWR_STRUCT-EVENT_ID,
    lt_container TYPE STANDARD TABLE OF SWR_CONT,
    ls_container TYPE SWR_CONT.
    data :INPUT_CONTAINE type table of SWR_CONT ,
    x_cont type swr_cont.
    " numéro commande d'achat
    DATA ls_xmseg TYPE mseg.
    CLEAR ls_xmseg.
    READ TABLE xmseg INTO ls_xmseg INDEX 1.
    x_cont-ELEMENT = 'MATERIALDOCUMENT'.
    x_cont-VALUE = ls_xmseg-mblnr.
    APPEND x_cont to INPUT_CONTAINE.
    x_cont-ELEMENT = 'MATERIALDOCYEAR'.
    x_cont-VALUE = ls_xmseg-mjahr.
    APPEND x_cont to INPUT_CONTAINE.
    CALL FUNCTION 'SAP_WAPI_CREATE_EVENT'
    EXPORTING
    object_type             = 'ZYBI'
    object_key              = objkey
    event                   = 'EVENT2'
    COMMIT_WORK             = space
    IMPORTING
    RETURN_CODE             = l_RETURN_CODE
    EVENT_ID                = l_event_id
    TABLES
    INPUT_CONTAINER         = INPUT_CONTAINE.
    endmethod.
    4. Create the workflow in SWDD
    Add the Business Object in the container and tick Import.
    Create a task with the following details.
    Click on Binding in the above screen:
    Create an Activity and attach the task to it.
    Affect Agents
    Add a starting event in Basic Data.
    Add a Process Control to end the workflow.
    Workflow Final should look like this:
    I hope it would be helpful to some of you. Sorry about the binding, there might be some issues not correct. But normally, if you follow the steps as they are, and for binding, you do Automatic Binding, it should be ok.
    Thanks

Maybe you are looking for

  • Problem in web.xml  -- servletcontext

    Pls look at the code and web.xml file for invoking servlet. index.html <html> <head> <title>Servlet Context Example</title> </head> <body> <form method="get" action="callservlet"> <input type="submit" value="Submit"> </form> </body> </html>ServletCon

  • Populatin a JList with elements from a DB (access here)

    last year i was able to populate a JList with data from a database however this year something doesnt work this is last year public String[] getOnderwerpen() System.out.println(theConnection==null?" connection null ":" connection niet null "); String

  • Override the default behavior of af:inputListOfValues

    Here's the problem. I'm not quite satisfied with default behavior of standard af:inputListOfValues. For example, the user inputs in the text box some first digits of an account number. Then he presses Tab and popup opens, filtered by these first digi

  • PHOTOSHOP CS3 BROKEN AFTER UPGRADE TO 10.5

    Anyone else having problems with the marquee tool selections, and other tools, in photoshop CS3 after installing Leopard? The Adobe website says all is well, for Photoshop, yet we are now pretty helpless without being able to make a selection or type

  • How to open damaged word file?

    I m trying to open MS Word Document file, MS word files are showing error message like word 2003  doesn't open file, I have important document file got corrupted, so How to open damaged word file?  If you have any answer please help assist me.