Custom Subscreen in Service Master AC01 not invoked

Defined custom subscreen(SAPLXBAS 8100) for service master AC01. User Exit is activated , however the line of code inthe main screen which calls the subscreen is not being called at runtime. Details are as follows
ECC6.0
UserExit  : SRVASMD
Calling screen      No.      Area         Called screen     No.
SAPLBAS0         0300    ZUSATZ    SAPLXBAS        8100
this is the line which is being ignored while executing the transaction ac01
CALL CUSTOMER-SUBSCREEN ZUSATZ INCLUDING 'SAPLXBAS' '8100'.
Any inputs appreciated and points would be awarded

Hi,
Here is step by step to implement an screen exit
Screen exits add fields to screens in R/3 applications. SAP creates screen exits by placing special subscreen areas on a standard R/3 screen and calling a customer subscreen from the standard screen’s flow logic.
the tcode is cmod...
1.From the main screen of the Project management transaction, proceed as follows:
Select Enhancement components and choose Change.
2.Choose Edit component.
3.Choose the screen exit and double click on it
4.Create your subscreen using the Screen Painter.
5.Design your screen to be added to the standard screen and activate the particular screen and return back to the flow logic .
6.Choose the PAI and PBO to write down the logic.
7.Generate your screen and choose Back (the green arrow) to return to the Project management transaction.
8.Go to the transaction ME22 to view the customer defined screen exit.
9.Enter the purchase order number and press Enter.
10.Go to the menu header --> Details.
11.Purchase number is visible on the standard screen
<b>Reward points</b>
Regards

Similar Messages

  • Service Master - AC01

    Hi,
    Is there any way to do the mass maintanence in Service Master - AC01.
    I want to do mass for Matrl/Service Grp in the service master.
    Thanks in advance
    Samir Bhatt

    Hi,
    You may use LSMW for mass maintenance of service mastre
    Regards,
    Prashant Kolhatkar

  • Problem in service master (AC01)

    Hi,
    My client is using SAP 4.7 ECC.  In the client system, unit of measure field set as mandatory field in Service master (T.Code- AC01). As per system setting, system should not allow to create a new service master via T.Code – AC03 by keeping unit of field blank. However, occasionally system allows the user to create service master without entering any thing in the unit of measure field. Once the service is created with unit of measure field as blank, system not allow the user to enter into edit mode of service master (T.Code – AC02). System give massage ‘Please maintain unit of measure’.
    Can any one so kind to help me for resoling this issue.
    Your assistance will be highly appreciated.
    Regds,
    sp sahu

    Hi,
    If unit of measure field set as mandatory field in Service master how system will allow you save service master without entry of unit of measure? Just check the following path:
    SPRO->MM->External Service Management->Service Master->Field Display for service Master->Define Field Selection for Service Master (List Entry)
    And check here base unit of measure is in position of ‘Input” or “Required”, Display” or “Hide’ Or “highlighted”
    Regards,
    Biju K

  • Custom button with action listener - will not invoke action listener

    Hi
    For whatever reason, I cannot find a concise example of a simple custom component that can invoke an action listener. The tutorials I've read so far either ignore this fundamental topic or only make the slightest make reference to it.
    The best I have come up with - in terms of a simple prototype is below... but, the action listener is never invoked.... Can someone tell me what I am missing (full code below). Hopefully, what is missing or incorrect will be obvious to you JSF experts out there.
    Thanks for any help!!
    -f
    tld
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
    <taglib>
      <tlib-version>0.01</tlib-version>
      <jsp-version>1.2</jsp-version>
      <short-name>jsfcustomcomponent</short-name>
      <uri>http://jsfcustomcomponent/</uri>
      <description><![CDATA[jsf custom component tags]]>  </description>
      <tag>
        <name>specialBtnTag</name>
        <tag-class>jsfcustomcomponent.SpecialBtnTag</tag-class>
        <attribute>
          <name>value</name>
          <required>true</required>
          <rtexprvalue>true</rtexprvalue>
          <description><![CDATA[button value]]></description>
        </attribute>
        <attribute>
          <name>actionListener</name>
          <required>true</required>
          <rtexprvalue>true</rtexprvalue>
          <description><![CDATA[action listener]]> </description>
        </attribute>
      </tag>
    </taglib>
    SpecialBtnComponent
    package jsfcustomcomponent;
    import javax.faces.component.*;
    import javax.faces.context.*;
    import javax.faces.el.*;
    import javax.faces.event.*;
    public class SpecialBtnComponent
        extends UIComponentBase implements ActionSource
        public static final String COMPONENT_TYPE = "SpecialBtnComponent";
        public static final String RENDERER_TYPE = "SpecialBtnRenderer";
        public String getFamily()
            return COMPONENT_TYPE;
        public SpecialBtnComponent()
            super();
            setRendererType(SpecialBtnComponent.RENDERER_TYPE);
        private String value;
        public void setValue(String value, FacesContext facesContext)
            this.value = value;
        public String getValue()
            if (null != value)
                return value;
            ValueBinding _vb = getValueBinding("value");
            if (_vb != null)
                return (String) _vb.getValue(getFacesContext());
            else
                return null;
        private MethodBinding action = null;
        public MethodBinding getAction()
            return action;
        public void setAction(MethodBinding methodBinding)
            this.action = action;
        private MethodBinding actionListener = null;
        public MethodBinding getActionListener()
            return (this.actionListener);
        public void setActionListener(MethodBinding methodBinding)
            this.actionListener = actionListener;
        public boolean isImmediate()
            return false;
        public void setImmediate(boolean _boolean)
            //this.immediate = immediate;
        public void addActionListener(ActionListener actionListener)
            addFacesListener(actionListener);
        public ActionListener[] getActionListeners()
            return (ActionListener[]) getFacesListeners(ActionListener.class);
        public void removeActionListener(ActionListener actionListener)
            removeFacesListener(actionListener);
        public Object saveState(FacesContext context)
            Object values[] = new Object[5];
            values[0] = super.saveState(context);
            values[1] = value;
            values[2] = saveAttachedState(context, action);
            values[3] = saveAttachedState(context, actionListener);
            return ( (Object) (values));
        public void restoreState(FacesContext context, Object state)
            Object values[] = (Object[]) state;
            super.restoreState(context, values[0]);
            value = (String) values[1];
            action = (MethodBinding) restoreAttachedState(context, values[2]);
            actionListener = (MethodBinding) restoreAttachedState(context, values[3]);
        public void broadcast(FacesEvent event) throws AbortProcessingException
            super.broadcast(event);
            if (event instanceof ActionEvent)
                FacesContext context = getFacesContext();
                MethodBinding mb = getActionListener();
                if (mb != null)
                    mb.invoke(context, new Object[]
                              {event});
                ActionListener listener = context.getApplication().getActionListener();
                if (listener != null)
                    listener.processAction( (ActionEvent) event);
        public void queueEvent(FacesEvent e)
            if (e instanceof ActionEvent)
                if (isImmediate())
                    e.setPhaseId(PhaseId.APPLY_REQUEST_VALUES);
                else
                    e.setPhaseId(PhaseId.INVOKE_APPLICATION);
            super.queueEvent(e);
    SpecialBtnRenderer
    package jsfcustomcomponent;
    import java.util.*;
    import javax.faces.component.*;
    import javax.faces.context.*;
    import javax.faces.event.*;
    import javax.faces.render.*;
    public class SpecialBtnRenderer
        extends Renderer
        String value;
        public SpecialBtnRenderer()
        public void decode(FacesContext context, UIComponent component)
            Map requestMap = context.getExternalContext().getRequestParameterMap();
            String clientId = component.getClientId(context);
            SpecialBtnComponent specialBtnComponent = (SpecialBtnComponent) component;
            String value = (String) requestMap.get(clientId);
            if (null != value)
                specialBtnComponent.setValue(value, context);
            ActionEvent actionEvent = new ActionEvent(specialBtnComponent);
            specialBtnComponent.queueEvent(actionEvent);
        public void encodeEnd(FacesContext context, UIComponent component) throws java.io.IOException
            SpecialBtnComponent specialBtnComponent = (SpecialBtnComponent) component;
            ResponseWriter writer = context.getResponseWriter();
            String clientId = component.getClientId(context);
            value = (String) component.getAttributes().get("value");
            if (value == null)
                value = "defaultValue";
            buildSpecialBtn(writer, value, clientId, specialBtnComponent);
        private void buildSpecialBtn(ResponseWriter writer, String value, String clientId, SpecialBtnComponent component) throws java.io.IOException
            writer.startElement("table", component);
            writer.startElement("tbody", component);
            writer.startElement("tr", component);
            writer.startElement("td", component);
            value = String.valueOf(value);
            writer.startElement("input", component);
            writer.writeAttribute("type", "submit", null);
            writer.writeAttribute("name", clientId, "clientId");
            writer.writeAttribute("value", value, null);
            writer.endElement("input");
            writer.endElement("td");
            writer.endElement("tr");
            writer.endElement("tbody");
            writer.endElement("table");
    SpecialBtnTag
    package jsfcustomcomponent;
    import javax.faces.component.*;
    import javax.faces.el.*;
    import javax.faces.webapp.*;
    import com.sun.faces.util.*;
    public class SpecialBtnTag
        extends UIComponentTag
        public String value = null;
        public String actionListener = null;
        public String getComponentType()
            return SpecialBtnComponent.COMPONENT_TYPE;
        public String getRendererType()
            return SpecialBtnComponent.RENDERER_TYPE;
        protected void setProperties(UIComponent component)
            super.setProperties(component);
            if (! (component instanceof SpecialBtnComponent))
                throw new IllegalStateException("Component " + component.toString() +
                                                " not expected type.  Expected: jsfcustomcomponent.SpecialBtnComponent.  Perhaps you�re missing a tag?");
            SpecialBtnComponent specialBtnComponent = (SpecialBtnComponent) component;
            if (value != null)
                if (isValueReference(value))
                    ValueBinding vb = Util.getValueBinding(value);
                    specialBtnComponent.setValueBinding("value", vb);
                else
                    throw new IllegalStateException("The value for �value� must be a ValueBinding.");
            if (actionListener != null)
                if (isValueReference(actionListener))
                    ValueBinding vb = Util.getValueBinding(actionListener);
                    specialBtnComponent.setValueBinding("actionListener", vb);
                else
                    throw new IllegalStateException("The value for �actionListener� must be a ValueBinding.");
        public void release()
            super.release();
            value = null;
            actionListener = null;
        public void setValue(String value)
            this.value = value;
        public String getValue()
            return this.value;
        public void setActionListener(String actionListener)
            this.actionListener = actionListener;
        public String getActionListener()
            return this.actionListener;
    jsp1.jsp
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <%@page contentType="text/html"%>
    <%@page pageEncoding="UTF-8"%>
    <%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
    <%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
    <%@taglib uri="http://jsfcustomcomponent/" prefix="j"%>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>JSP Page</title>
    <link rel="stylesheet" type="text/css" href="./stylesheet.css" title="Style">
    </head>
    <body>
    <f:view>
      <h:form id="form01">
        <h:outputText value="test special button with action listener"/>
        <j:specialBtnTag value="#{specialBtnBacking.specialBtnValue}" actionListener="#{specialBtnBacking.specialBtnActionListener}"/>
        <h:messages/>
        <h:outputText value="#{specialBtnBacking.outcome}"/>
      </h:form>
    </f:view>
    </body>
    </html>
    SpecialBtnBacking
    package specialbtn;
    import javax.faces.context.*;
    import javax.faces.event.*;
    public class SpecialBtnBacking
        private FacesContext context;
        public SpecialBtnBacking()
            this.setSpecialBtnValue("Special Button with action listener");
        private String specialBtnValue;
        public String getSpecialBtnValue()
            return this.specialBtnValue;
        public void setSpecialBtnValue(String specialBtnValue)
            this.specialBtnValue = specialBtnValue;
        private String outcome="actionlistener NOT invoked: click specialBtn above to test";
        public String getOutcome()
            return outcome;
        public void setOutcome(String outcome)
            this.outcome = outcome;
        public void specialBtnActionListener(ActionEvent evt)
            System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Jsp1Backing/specialBtnActionListener()!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
            this.outcome="***action listener invoked!!!***";
    faces-config.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN" "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
    <faces-config>
      <managed-bean>
        <managed-bean-name>specialBtnBacking</managed-bean-name>
        <managed-bean-class>specialbtn.SpecialBtnBacking</managed-bean-class>
        <managed-bean-scope>request</managed-bean-scope>
      </managed-bean>
      <component>
        <component-type>SpecialBtnComponent</component-type>
        <component-class>jsfcustomcomponent.SpecialBtnComponent</component-class>
        <component-extension>
          <renderer-type>SpecialBtnRenderer</renderer-type>
        </component-extension>
      </component>
      <render-kit>
        <renderer>
          <component-family>SpecialBtnComponent</component-family>
          <renderer-type>SpecialBtnRenderer</renderer-type>
          <renderer-class>jsfcustomcomponent.SpecialBtnRenderer</renderer-class>
        </renderer>
      </render-kit>
    </faces-config>
    web.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
      <display-name>pagerWEB</display-name>
      <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.faces</url-pattern>
      </servlet-mapping>
      <jsp-config>
        <taglib>
          <taglib-uri>http://jsfcustomcomponent/</taglib-uri>
          <taglib-location>/WEB-INF/jsfcustomcomponent.tld</taglib-location>
        </taglib>
      </jsp-config>
      <servlet>
        <description>Added by JBuilder to compile JSPs with debug info</description>
        <servlet-name>debugjsp</servlet-name>
        <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
        <init-param>
          <param-name>classdebuginfo</param-name>
          <param-value>true</param-value>
        </init-param>
        <load-on-startup>3</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>debugjsp</servlet-name>
        <url-pattern>*.jsp</url-pattern>
      </servlet-mapping>
    </web-app>

    got it working....
    The changes were:
    in "SpecialBtnRenderer"...
    --new--
                        mb.invoke(context, new Object[1]);
    --old--
                        mb.invoke(context, new Object[0]);
    in "SpecialBtnTag"...
    --new--
    import javax.faces.event.ActionEvent;
    --new--
                    MethodBinding mb = FacesContext.getCurrentInstance().getApplication().createMethodBinding(specialBtnListener, new Class[]{ActionEvent.class});
    --old--
                    MethodBinding mb = FacesContext.getCurrentInstance().getApplication().createMethodBinding(specialBtnListener, null);
    -Below is the entire application, again -- for those (like myself) who need concrete examples...
    I hope this helps someone else! --f
    jsp1.jsp
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <%@page contentType="text/html"%>
    <%@page pageEncoding="UTF-8"%>
    <%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
    <%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
    <%@taglib uri="http://jsfcustomcomponent/" prefix="j"%>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>JSP Page</title>
    <link rel="stylesheet" type="text/css" href="./stylesheet.css" title="Style">
    </head>
    <body>
    <f:view>
        <h:messages/>
      <h:form id="form01">
        <h:outputText value="test special button with action listener"/>
        <j:specialBtnTag value="#{specialBtnBacking.specialBtnValue}" specialBtnListener="#{specialBtnBacking.specialBtnActionListener}"/>
        <h:outputText value="#{specialBtnBacking.outcome}"/>
      </h:form>
    </f:view>
    </body>
    </html>
    SpecialBtnBacking
    package specialbtn;
    import javax.faces.context.*;
    import javax.faces.event.*;
    public class SpecialBtnBacking
        private FacesContext context;
        public SpecialBtnBacking()
            this.setSpecialBtnValue("Special Button with action listener");
        private String specialBtnValue;
        public String getSpecialBtnValue()
            return this.specialBtnValue;
        public void setSpecialBtnValue(String specialBtnValue)
            this.specialBtnValue = specialBtnValue;
        private String outcome = "actionlistener NOT invoked: click specialBtn above to test";
        public String getOutcome()
            return outcome;
        public void setOutcome(String outcome)
            this.outcome = outcome;
        public void specialBtnActionListener(ActionEvent evt)
            System.out.println("\n\n");
            System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Jsp1Backing/specialBtnActionListener()!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
            System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Jsp1Backing/specialBtnActionListener()!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
            System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Jsp1Backing/specialBtnActionListener()!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
            System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Jsp1Backing/specialBtnActionListener()!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
            System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Jsp1Backing/specialBtnActionListener()!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\n");
            this.outcome = "***action listener invoked!!!***";
    jsfcustomcomponent.tld
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
    <taglib>
      <tlib-version>0.01</tlib-version>
      <jsp-version>1.2</jsp-version>
      <short-name>jsfcustomcomponent</short-name>
      <uri>http://jsfcustomcomponent/</uri>
      <description><![CDATA[jsf custom component tags]]>  </description>
      <tag>
        <name>specialBtnTag</name>
        <tag-class>jsfcustomcomponent.SpecialBtnTag</tag-class>
        <attribute>
          <name>value</name>
          <required>true</required>
          <rtexprvalue>true</rtexprvalue>
          <description><![CDATA[button value]]></description>
        </attribute>
        <attribute>
          <name>specialBtnListener</name>
          <required>true</required>
          <rtexprvalue>true</rtexprvalue>
          <description><![CDATA[action listener]]> </description>
        </attribute>
      </tag>
    </taglib>
    faces-config.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN" "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
    <faces-config>
      <managed-bean>
        <managed-bean-name>specialBtnBacking</managed-bean-name>
        <managed-bean-class>specialbtn.SpecialBtnBacking</managed-bean-class>
        <managed-bean-scope>request</managed-bean-scope>
      </managed-bean>
      <component>
        <component-type>SpecialBtnComponent</component-type>
        <component-class>jsfcustomcomponent.SpecialBtnComponent</component-class>
        <component-extension>
          <renderer-type>SpecialBtnRenderer</renderer-type>
        </component-extension>
      </component>
      <render-kit>
        <renderer>
          <component-family>SpecialBtnComponent</component-family>
          <renderer-type>SpecialBtnRenderer</renderer-type>
          <renderer-class>jsfcustomcomponent.SpecialBtnRenderer</renderer-class>
        </renderer>
      </render-kit>
    </faces-config>
    SpecialBtnComponent.java
    package jsfcustomcomponent;
    import javax.faces.component.*;
    import javax.faces.context.*;
    import javax.faces.el.*;
    import javax.faces.event.*;
    public class SpecialBtnComponent
        extends UIComponentBase implements ActionSource
        public static final String COMPONENT_TYPE = "SpecialBtnComponent";
        public static final String RENDERER_TYPE = "SpecialBtnRenderer";
        public String getFamily()
            return COMPONENT_TYPE;
        public SpecialBtnComponent()
            super();
            setRendererType(SpecialBtnComponent.RENDERER_TYPE);
        private String value;
        public void setValue(String value, FacesContext facesContext)
            this.value = value;
        public String getValue()
            if (null != this.value)
                return this.value;
            ValueBinding _vb = getValueBinding("value");
            if (_vb != null)
                return (String) _vb.getValue(getFacesContext());
            else
                return null;
        private MethodBinding specialBtnListener = null;
        public MethodBinding getActionListener()
            return (this.specialBtnListener);
        public void setActionListener(MethodBinding actionListener)
            this.specialBtnListener = actionListener;
        public Object saveState(FacesContext context)
            Object values[] = new Object[3];
            values[0] = super.saveState(context);
            values[1] = saveAttachedState(context, this.specialBtnListener);
            values[2] = this.value;
            return (values);
        public void restoreState(FacesContext context, Object state)
            Object values[] = (Object[]) state;
            super.restoreState(context, values[0]);
            this.specialBtnListener = (MethodBinding) restoreAttachedState(context, values[1]);
            this.value = (String) restoreAttachedState(context, values[2]);
        public void broadcast(FacesEvent event) throws AbortProcessingException
            super.broadcast(event);
            if (event instanceof ActionEvent)
                FacesContext context = getFacesContext();
                MethodBinding mb = this.getActionListener();
                if (mb != null)
                    try
                        mb.invoke(context, new Object[]
                                  {event});
                    catch (EvaluationException ex)
                        System.out.println("SpecialBtnComponent/broadcast(FacesEvent event)...EvaluationException encountered - ex.getMessage()=" + ex.getMessage());
                        ex.printStackTrace();
                ActionListener actionListener = context.getApplication().getActionListener();
                if (actionListener != null)
                    actionListener.processAction( (ActionEvent) event);
        public void queueEvent(FacesEvent e)
            if (e instanceof ActionEvent)
                e.setPhaseId(PhaseId.INVOKE_APPLICATION);
            super.queueEvent(e);
        public MethodBinding getAction()
            return null;
        public void setAction(MethodBinding methodBinding)
        public boolean isImmediate()
            return false;
        public void setImmediate(boolean _boolean)
        public void addActionListener(ActionListener actionListener)
            addFacesListener(actionListener);
        public ActionListener[] getActionListeners()
            return (ActionListener[]) getFacesListeners(ActionListener.class);
        public void removeActionListener(ActionListener actionListener)
            removeFacesListener(actionListener);
    SpecialBtnTag.java
    package jsfcustomcomponent;
    import javax.faces.component.*;
    import javax.faces.el.*;
    import javax.faces.webapp.*;
    import com.sun.faces.util.*;
    import javax.faces.context.FacesContext;
    import javax.faces.event.ActionEvent;
    public class SpecialBtnTag
        extends UIComponentTag
        public String value = null;
        public String specialBtnListener = null;
        private SpecialBtnComponent specialBtnComponent;
        public SpecialBtnTag()
            super();
        public String getComponentType()
            return SpecialBtnComponent.COMPONENT_TYPE;
        public String getRendererType()
            return SpecialBtnComponent.RENDERER_TYPE;
        protected void setProperties(UIComponent component)
            super.setProperties(component);
            if (! (component instanceof SpecialBtnComponent))
                throw new IllegalStateException("Component " + component.toString() +
                                                " not expected type.  Expected: jsfcustomcomponent.SpecialBtnComponent.  Perhaps you�re missing a tag?");
            specialBtnComponent = (SpecialBtnComponent) component;
            if (value != null)
                if (isValueReference(value))
                    ValueBinding vb = Util.getValueBinding(value);
                    specialBtnComponent.setValueBinding("value", vb);
                else
                    throw new IllegalStateException("The value for �value� must be a ValueBinding.");
            if (specialBtnListener != null)
                if (isValueReference(specialBtnListener))
                    MethodBinding mb = FacesContext.getCurrentInstance().getApplication().createMethodBinding(specialBtnListener, new Class[]{ActionEvent.class});
                    ( (SpecialBtnComponent) component).setActionListener(mb);
                else
                    MethodBinding mb = Util.createConstantMethodBinding(specialBtnListener);
                    ( (SpecialBtnComponent) component).setActionListener(mb);
        public void release()
            super.release();
            value = null;
            specialBtnListener = null;
        public void setValue(String value)
            this.value = value;
        public String getValue()
            return this.value;
        public void setSpecialBtnListener(String specialBtnListener)
            this.specialBtnListener = specialBtnListener;
        public String getSpecialBtnListener()
            return this.specialBtnListener;
    SpecialBtnRenderer
    package jsfcustomcomponent;
    import java.util.*;
    import javax.faces.component.*;
    import javax.faces.context.*;
    import javax.faces.event.*;
    import javax.faces.render.*;
    import javax.faces.el.MethodBinding;
    import javax.faces.el.*;
    public class SpecialBtnRenderer
        extends Renderer
        String value;
        public SpecialBtnRenderer()
            super();
        public void decode(FacesContext context, UIComponent component)
            try
                Map requestMap = context.getExternalContext().getRequestParameterMap();
                String clientId = component.getClientId(context);
                SpecialBtnComponent specialBtnComponent = (SpecialBtnComponent) component;
                String value = (String) requestMap.get(clientId);
                if (null != value)
                    specialBtnComponent.setValue(value, context);
                    MethodBinding mb = specialBtnComponent.getActionListener();
                    if (mb != null)
                        System.out.println("SpecialBtnRenderer/decode...mb.getExpressionString()=" + mb.getExpressionString());
                        //mb.invoke(context, new Object[0]);
                        mb.invoke(context, new Object[1]);
                    ActionEvent actionEvent = new ActionEvent(specialBtnComponent);
                    specialBtnComponent.queueEvent(actionEvent);
            catch (EvaluationException ex)
                ex.printStackTrace();
        public void encodeEnd(FacesContext context, UIComponent component) throws java.io.IOException
            SpecialBtnComponent specialBtnComponent = (SpecialBtnComponent) component;
            ResponseWriter writer = context.getResponseWriter();
            String clientId = component.getClientId(context);
            value = (String) component.getAttributes().get("value");
            if (value == null)
                value = "defaultValue";
            buildSpecialBtn(writer, value, clientId, specialBtnComponent);
        private void buildSpecialBtn(ResponseWriter writer, String value, String clientId, SpecialBtnComponent component) throws java.io.IOException
            writer.startElement("table", component);
            writer.startElement("tbody", component);
            writer.startElement("tr", component);
            writer.startElement("td", component);
            value = String.valueOf(value);
            writer.startElement("input", component);
            writer.writeAttribute("type", "submit", null);
            writer.writeAttribute("name", clientId, "clientId");
            writer.writeAttribute("value", value, null);
            writer.endElement("input");
            writer.endElement("td");
            writer.endElement("tr");
            writer.endElement("tbody");
            writer.endElement("table");
    web.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
      <display-name>pagerWEB</display-name>
      <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.faces</url-pattern>
      </servlet-mapping>
      <jsp-config>
        <taglib>
          <taglib-uri>http://jsfcustomcomponent/</taglib-uri>
          <taglib-location>/WEB-INF/jsfcustomcomponent.tld</taglib-location>
        </taglib>
      </jsp-config>
    </web-app>

  • MM SRV - Service Master - AC01 and MM01

    Hi All,
    Please help in these questions regarding  External Service Master management we create in AC01.
    1.   Is this Service Material is anyway related to MM01 material or they are two completely different materials?
    2.   What is common between MM01 Material and AC01 Service Material ?
    3.   Is Service Material is used in SRM ? If yes, all of them or only some of them ?
    + An

    Hi,
    1. Material(used for material being procured) master and service master(used for services being procured) are two different master details in SAP.
    2. service master records to be used while procuring services with item category D, and service master numbers to be entered at service line item level. Same like materials, details like unit, description, service groups, valuation claas needs to be maintained while creation of service master.
    4. standard reports are available in SAP to track the services procured based on the service master number.
    3 yes. service master data can be used in SRm, all of them can be used.

  • Service Master items in RRB

    Hello All,
    In RRB, during customer billing, we have to show, in the invoice/billing request, the Service Master and not the material configured DIP profile currently generic material "EXT_LABOUR".
    How can we copy the Service Material description into the Billing Request item detail?
    Thanks & Regards
    KCG

    Hi,
    One way to achieve this is making the same description in master master and service order as suggested by MoazzaM.
    Otherwise you can write the coding. When you are creating the Debit memo request from DP90 at that time you can modify the description in Debit memo and then same thing will reflect in Billing Document as well.
    Regards
    Suneet

  • MM-SRV: Adopt Material Group from Service Master instead of default in SPRO

    At my current client we are encountering a problem when creating requisitions for services.  When the system was originally configured years ago, a default value for material group was entered in the IMG under:
    Logistics > Materials Management > External Services Management > Source Determination and Default Values > For Client
    Field is "Default material group at item level" (V_T165-MATKL)
    Up to now this singular default value was fine because they only had one material group for services.  They are now wanting to further stratify their services spend, so there are now several additional values for Material Group that can (and are) used among their service master records.  Having a single default value for Material Group is resulting in incorrect reporting of spend per Material Group.
    I removed the default value in the config node stated above, but now the problem is that when creating a requisition line for services (item category D) in ME51N, no value for Material Group comes in at all, resulting in an error because Material Group is a mandatory field.  Making the field optional on the Field Selection Groups is not a valid solution, as they need Material Group for spend reporting.
    What we really need is for the Material Group to be automatically copied over from the service master data, in the same manner that this takes place for the material group contained in a material master.
    Is this possible?
    Thanks in advance,
    Jason

    Hi,
    Hi,
    1) If service master is used in the PO item, then the system will take the                    
    material group from the service master (AC01). 
    2) If no service master is maintained then the system will take the                 
    material group from the table T023. To be able to change this material group on services level - if you want a different material group on services level, you must set the field ESLL-MATKL for visible in the table control settings, and the change of the service group must be carried out manually.
    Please be advised that it is the standard behaviour that the material               
    group on service level is not updated automatically after you have                  
    changed the material group on purchasing level. The material group on               
    service level must be adjusted manually.                         
    3) By default for service lines the system will consider the material              
    group which is entered at the Item level.                                                                               
    Services can have different material groups, therefore you can change               
    the material group at service level. The material group in service line             
    can be different and always takes higher priority from the material                 
    group at the item level.        
    Regards,
    Edit

  • Regarding Service Master

    hi all,
         I am trying to upload data for Service Master(AC01).  When i am trying to do Recording that is not coming in Create Mode. that is showing in Display Mode.
    How can we do it.
    Please Suggest
    Regards
    Rami

    hey ,
    u can go to t-code AC03, i dont know how but this transaction has a 'CREATE' icon. from there u can create your own service
    regs,
    saurabh

  • Service MAster List report

    Hi,
    I want list of the all the Services with their valuaction class detail.
    So how com i can do this. Which T-code is useful for this.
    Regards,
    Zubs

    Hi,
    AC00     Service Master
    AC01     Create Service Master
    AC02     change Service Master
    AC03     display ervice Master
    AC04     Service Master
    AC05     List Processing: Service Master
    AC06     List Display: Service Master
    NMS8     Service Master
    NRBL     IS-H: Report Ctrl. Service Master
    NTRL     Transport Service Master
    OXA1     List: Service Master Records
    Thanks & regards,
    Kiran

  • Purchase Group in Service Master

    Dear Experts,
    Please can you provide information on the following.
    1.  Is there a field to enter the purchse group in the service master,  similar to purchase group in Material Master- Purchasing view.
    2.  If available, please let me know the steps to get the field in service master.
    2a.  Relevance of Purchase group in service master.
    3.  In case auto PO need to be created for services, the steps need to be followed.
    Thank you all in advance.
    regards,
    Suresh

    Hi,
    there is no feild for purchase group in service master.
    steps you follow to create service po are;-
    1. create service master - ac01
    2. create Po using me21n
    in that select account assgmt as K and item category as D .
    enter  g/l acccount.and service number.and save.
    3. create service entry sheet using ml81n.
    4 then accept  service sheet
    5 pass MIRO.
    Regards,
    vijay

  • Unit Conversion in Service master

    It  seems the in service master (AC01) there could be only one unit conversion. Can we have more than one unit conversion just like material master. If yes how to do that?

    Hi ,
         Unit of conversion is Default settings(in img activity at Pur org or client level) while creating Service PO UOM is always in AU.
    regards,
    Patil

  • Service Master - Unit of Measure

    Hi all -
    had a question about services and alternate unit of measure. On a service master, its not possible to specify alternate UoM (like we do in material master). What is the process to say create a service in minutes and create a PO in hours ?
    any help would be appreciated.
    thanks

    Hi,
    In service master we cant able to maintaint the AUM,
    But the service maintainnsce on hourly or daily we have to decide.
    Regards,
    Andra.

  • Initial down load of service master

    hi,
    my issue is related to service master tranfer from ECC to EBP.
    i have done all load objects for service(Basis3,PROD0,PROD1,SRVMAS,SERVICE MASTER)
    Internal number(numeric) is not tranfering but external number
    (alpha numeric) is tranffering.
    when i am downloading service master(having internal no range
    in ECC (numarical) even though Bdoc status and queue is successful
    service master is not replicated. and also i am not gertting any error in
    SMW01 or SLG1 or R3AM1.But if service master is external (having alpha-numarical)
    service master is replicating and there is no issue.
    is any body face this issue?
    regds
    Rami.

    Check the tx R3AC1 >> Filter settings of SERVICE_MASTER and take a look if you range is avaleable in the Object filter settings.
    Rgs,
    Pedro

  • Data not Updated in Custom Screen fields-Vendor Master

    Hello,
    I have created a custom screen in vendor master transaction and also implemented the two BADI's below.
    Business Add-In: Processing Master Data Enhancements
    (CUSTOMER_ADD_DATA/VENDOR_ADD_DATA)
    Passed the Custom Program and Screen No in the method GET_TAXI_SCREEN
    Business Add-In: Customer Subscreens
    (CUSTOMER_ADD_DATA_CS/VENDOR_ADD_DATA_CS)
    activate it with the BADI Processing Master Data Enhancements with method CHECK_ADD_ON_ACTIVE.
    I also created a new screen and used few fields from LFA1 (Append structure fields) such that the fields on the screen are : LFA1-ZZFIELD1 etc...
    Now the issue is the screen is displayed, but the data entered on the screen is not updated on the table LFA1 or data from the table is not displayed on the custom screen.
    Am i missing something?
    Regards,
    Shiva

    Solved this problem.
    I built the query against InfoCube and not the characteristic itself. That's why I can't see the update.
    Thanks.

  • Tax not Calculated on Activity created through Service master

    Hi;
    For different TAX values on Multiple line items in P.O, i am using Service Master to Create an Activity, and call that activity in my Service entry sheet.
    Now When Service entry sheet (P.R) is adopted in P.O it doesn't calculate tax.
    Any valuable information on this would be highly appreciated.
    Regards.

    Hi,
    In the purchase order the taxes are calcuated at item level. In the              
    service entry sheet the taxes are calculated at service level.
    The non-deductible input taxes both in the purchase order and on the             
    service entry sheet serve for the commitments structure and for                  
    information.                                                                     
    The tax actually paid with the invoice is later more precisely                   
    redetermined by the invoice verification in the system.                                                                               
    You can set the Customizing alternatively that the          
    taxes are calculated at service level instead of at item level. This             
    setting is particularly useful if different services of an item are to           
    be taxed differently as it is the rule in countries with                         
    jurisdiction-dependent taxes.  Please check your settings in transaction ML100.
    In this connection, refer to Notes 498878, 495316 and 371595.    
    Regards,
    Edit

Maybe you are looking for

  • IPhoto 09 can't open my photo library

    I've just installed iPhoto 09 on my Mac Mini. When I open iPhoto, I get prompted to upgrade my photo library: "The photo library needs to be upgraded-" I click Upgrade and immediately get a dialog box saying, "There is a problem accessing one or more

  • IPhot and Kodak Gallery

    New iMAC owner here. Can anyone explain to me how I can upload photos from my iPhoto files to KodakGallery.com, to share with other people? I have been able to upload a single photo at a time but only thru many clicks. With my PC, I was able to uploa

  • Can I Install Tiger with an exterinal USB DVD Drive??

    Hi, I've accuired a couple iMacs that are currently running Mac OS 9, but are fast enough to run Tiger. The problem is they only have built in CD drives. Rather than going out to find several internal iMac DVD drives, could I buy one exterinal USB DV

  • Footnotes in WAD

    Hi, Can we make footnotes in the WAD to be dynamic? The footnotes are pertinent to the applicable month and are maintained by the business user.   we want to make sure that we will be able to link the footnotes to the report and report period. Can we

  • OS 9 won't respond after installing video card

    I haven't found this question on here. Well, not quite anyway. I've been running a B&W G3 with a partitioned drive for years. The partitions are: OS 10.4.9; OS 10.3.9; and OS 9.2.2. I just bought and installed an ATI 9200 video card. It works great i