Pulling the Header text  for all the purchase orders

Hello,
Please help in resolving the below:
Is there any code in SAp to pull theHeader text for all the purchase orders in the data base,
Any tcode to pull the specific text automatically to pull the text from the requsition ( Plant wise in sourcing).
Thanks

STXH Text header 
STXL Text detail
Chk the below message thread
Table to read PO Header text and item text
BR,
Krishna

Similar Messages

  • How to retrieve the header texts for a contract

    HI,
      i think we need to use the FM read_text to get the header texts for a contract but dont know how to use the FM like what all the parameters are passed to that to get the header texts of a contract(va43).
    any help is appreciated with points.
    thanks
    prasad

    Hi,
      Pls refer this code,    
        CALL FUNCTION 'READ_TEXT'
                  EXPORTING
                    client                  = sy-mandt
                    id                      = '0001'
                    language                = sy-langu
                    name                    = v_textid
                    object                  = 'KNMT'
                  IMPORTING
                    header                  = t_header
                  TABLES
                    lines                   = t_lines
                  EXCEPTIONS
                    id                      = 1
                    language                = 2
                    name                    = 3
                    not_found               = 4
                    object                  = 5
                    reference_check         = 6
                    wrong_access_to_archive = 7
                    OTHERS                  = 8.
                IF sy-subrc EQ 0.
                  LOOP AT t_lines.
                    CONCATENATE w_arktx t_lines-tdline INTO w_arktx
                                       SEPARATED BY space.
                  ENDLOOP.
                ENDIF.
                IF w_arktx NE space.
                  MOVE w_arktx+1(1583) TO t_lips-arktx.
                ELSEIF w_arktx EQ space.
                  CLEAR w_text_name.
                  CLEAR v_textid.
                  wa_lips-matnr = t_lips-matnr.
                  wa_lips-vkorg = t_likp-vkorg.
                  wa_lips-vtweg = t_lips-vtweg.
                  w_text_name = wa_lips.
                  CLEAR w_arktx.
    Retrieval of Sales Text
                  CALL FUNCTION 'READ_TEXT'
                    EXPORTING
                      client                  = sy-mandt
                      id                      = '0001'
                      language                = sy-langu
                      name                    = w_text_name
                      object                  = 'MVKE'
                    IMPORTING
                      header                  = t_header
                    TABLES
                      lines                   = t_lines
                    EXCEPTIONS
                      id                      = 1
                      language                = 2
                      name                    = 3
                      not_found               = 4
                      object                  = 5
                      reference_check         = 6
                      wrong_access_to_archive = 7
                      OTHERS                  = 8.
                  IF sy-subrc EQ 0.
                    LOOP AT t_lines.
                      CONCATENATE w_arktx t_lines-tdline INTO w_arktx
                                         SEPARATED BY space.
                    ENDLOOP.
                  ENDIF.
                  IF w_arktx NE space.
                    MOVE w_arktx+1(1583) TO t_lips-arktx.
                  ELSE.
    REgards
    srinivas

  • Retrieving the Change Texts per Line Item (Purchase Order) - Very urgent

    Hi,
    How do you retrieve the Change Texts per Line Item (Purchase Order).
    Table T166T does not list these values per line item.
    Please help. This is very urgent & important.
    Best Regards,
    John

    if you are lookin out for change of item texts ...
    then use the function module ... READ_TEXT.
    and 2 tables r used ... STXH and TLINE ....
    double click on item data ...
    goto PO TEXT tab ....
    double click on text ...
    from menu ...
    goto header ... u'll get 4 fields that u need to consider ...
    TDID
    TDOBJECT
    TDHEAD
    TDNAME
    ALL THESE U'LL FIND IN  STXH
    ITEM TEXT is stored in TLINE
    Edited by: anjali rana on Mar 5, 2008 4:55 AM

  • If we can increase the length of the Short Text field in a purchase order?

    Hi Experts,
    Please suggest if we can increase the length of the Short Text field in a purchase order?
    If yes, How? and what will be the impact?
    Thanks
    Gavar

    Dear Arpit,
    You can use PO Text field for long description of the material.
    Regards,
    Manish Jain

  • DCIteratorBinding setting the same value for all the rows.

    Hi all,
    I have table with on of the column as id. I have made the id column as the hyper link , that takes me to the next page. I am trying to pass the id to the next page. I am using the managed bean for the same. The below code is used to create the link on the column. It sets the action to the function in the bean that sets the id as of the current row.
    <tr:column sortProperty="id" sortable="false"
    headerText="#{bindings.notification.hints.id.label}"
    id="c4">
    <tr:commandLink action="choice" text="#{row.bindings.id.inputValue}"
    id="cl1" actionListener="#{IdBean.extractID}">
    </tr:commandLink>
    </tr:column>
    below is the IdBean.extratctID()
    public void extractID(ActionEvent actionEvent){       
    BindingContext bindingContext = BindingContext.getCurrent();
    BindingContainer bindings;
    bindings = bindingContext.getCurrentBindingsEntry();
    DCIteratorBinding iter;
    iter = (DCIteratorBinding) bindings.get("notificationIterator");
    Row rw;
    rw = iter.getCurrentRow();
    String id;
    id = (String) rw.getAttribute("id");
    this.setId2(id);
    I am printing the id value on to the next page. But its just returning the vslue of the id for the first row for all the rows of the table.
    Any inputs as in do i need to refresh the iterator or something like that.
    Reagrds
    Sishant

    Hi,
    Following is the code i have added in my bean
    ValueExpression expression = getFacesContext().getApplication().getExpressionFactory().createValueExpression(getFacesContext().getELContext(), "#{pageFlowScope.emp1}", Object.class);
    Object id = expression.getValue(getFacesContext().getELContext());
    public FacesContext getFacesContext() {
    return FacesContext.getCurrentInstance();
    JSPX Code -
    <af:commandImageLink id="DuncanAngove"
    icon="/john.gif" partialSubmit="true"
    actionListener="#{Tweets.setEmployeeId}">
    <af:setActionListener from="Duncan Angove" to="#{pageFlowScope.emp1}" />
    But i am getting NullPointerException. I have tried it with application and request scope as well.
    javax.servlet.ServletException
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:277)
         at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
         at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
         at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
         at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:191)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:97)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:420)
         at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:420)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:247)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:157)
         at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:94)
         at java.security.AccessController.doPrivileged(Native Method)
         at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
         at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:414)
         at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:138)
         at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.dms.wls.DMSServletFilter.doFilter(DMSServletFilter.java:330)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.doIt(WebAppServletContext.java:3684)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3650)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
         at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2268)
         at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2174)
         at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1446)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    Caused by: java.lang.NullPointerException
         at org.apache.myfaces.trinidad.component.UIXComponentBase.getValueExpression(UIXComponentBase.java:231)
         at project1.Tweets.setEmployeeId(Tweets.java:40)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at com.sun.el.parser.AstValue.invoke(AstValue.java:157)
         at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:283)
         at org.apache.myfaces.trinidadinternal.taglib.util.MethodExpressionMethodBinding.invoke(MethodExpressionMethodBinding.java:53)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.broadcastToMethodBinding(UIXComponentBase.java:1259)
         at org.apache.myfaces.trinidad.component.UIXCommand.broadcast(UIXCommand.java:183)
         at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:475)
         at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:756)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._invokeApplication(LifecycleImpl.java:698)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:285)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:177)
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
         ... 35 more
    Thanks
    Sishant

  • Change the Page Title for all the pages when viewing the Reports in Bi Publisher

    Hello ,
    I have a requirement for changing the Page Title for all the report displayed pages on the browser window.

    As far as I know, answer is NO.
    it's very simple answer  Manikandan-S-Oracle
    for 1210326 's requirements there are some places for changes of property "title" and in some pages "title" can be different
    "one place or option for changing" does not exist imho ( may be i'm wrong )
    so you can change places for your needs but not sure what it's adequate
    as example
    ...wls\user_projects\applications\bipdomain\xmlpserver\catalog\navigator.jsp  -->  find <title>
    it changes title in http://somehost:7001/xmlpserver/servlet/catalog
    ... wls\user_projects\applications\bipdomain\xmlpserver\home\home.jsp  -->  find <title>
    it changes title in http://somehost:7001/xmlpserver/servlet/home

  • Why is the ios6 compatible for all the iphones but not all the phones got the all upgrades, for example the panorama camera??

    why is the ios6 compatible for all the iphones but not all the phones got the all upgrades, for example the panorama camera?? this is another reason I am starting to dislike apple. An ipod is able to us an upgrade but not all the phones are? makes sense

    "why is the ios6 compatible for all the iphones"
    Ios 6 is not available for all iphones. Original Iphone and iphone 3 are not supported.
    "but not all the phones got the all upgrades, "
    This is common for most any device/computer.  Not all iphone/computer/device models can handle all of the new features.  Like any device, hardware is limited and cannot always support all new features and software.

  • Can I adjust all the master gains for all the keyframes at once?

    I edited a whole scene and keyframed some corrections but I wanted to change a few settings for the keyframes such as master gain. Is there anyway to fix this so I can just adjust all the master gians for all the keyframes at once? Thanks!

    If its the vignette geometry that is keyframed, and not the corrections, as written, (there is a distinction) then the color values are presumably NOT keyframed, as the keyframe only applies to that room/component of the grade, and not the whole grade. Your Primary In correction, in this case, is NOT keyframed and all the normal rules for revising corrections apply.
    Apple COLOR has a systemic definition: a change in values for a ROOM is a "correction", and the accumulation of corrections for a clips is a 'grade'.
    Keyframes only govern the behaviour of the room that they are created in, and don't apply across the board to the whole grade. The advantage is that the corrections can act independently.. the disadvantage is that the grade itself cannot be copy-and-pasted into another keyframed clip without any preparations.
    There are ways of doing that that are not in the Manual.
    I concur with your view of tracking, and you do have to do a wetware estimate to decide whether the investment is worth it... maybe a start and end keyframe is all you need, and adjust the trajectory as required.
    Wetware= that 'goo' between most people's ears, that starts right behind their eyes.
    jPo

  • How we enter text for materials in purchase order smartform

    hi guru
    how we enter text for materials in purchase order smartform
    my requirement is create smartform for purchase order.
    in this i have to create item-text, by using which tcode we can give item data
    plz give more expalnation for this plzzzzzzzzz

    Hi,
           You can use read_text function module for readind text of material and store this value in internal table later pass this internal table to smartform will solve your problem.
    otherwise there is direct option for text element property that is include text u can use that also
    Regards
    Gagan

  • Defaulting the Sotrage location for all the line items in my sales order

    Hi,
    I have a scenario to default the storage location automatically in my sales order for all the line items. It is not going to change for a particular sales org. Dist. channel & Division combination. Can you pls. suggest me a solution for this.
    Thanks
    Ghanesh.

    Hi,
       You can default the storage location by using the below user exit
    Storage location
    Auto determination of storage location as u2018XXXXu2019 for sales order
    Include - MV45AFZB
    Form - USEREXIT_SOURCE_DETERMINATION
    IF (VBAK-AUART = 'XXXX' and VBAK-VKORG = 'XXXX' and VBAK-VTWEG = 'XX').
    VBAP-LGORT   = 'ABCD'.
    Regards,
    Gopal.
    Edited by: Gopalakrishnan S on Feb 25, 2010 7:35 AM

  • Imitating the Predefined Text Item Details of Purchase Order in AddOn Form

    Hello Experts,
    I want to know if it is possible to imitate the Item Details features of SAP Purchase Order Form in my customised Form.
    Means :-
    In Purchase Order Form , when we enable the Item Details Column and while entering the data we double click on that column
    then a Row Details Text window appears and we can enter the Summary Details or even we can select the Predefined Text
    in the column .
    The same feature i want to use in my customised AddOn .
    How to do this one ??????
    Thanks ,
    Amit

    Hi Amit ,
    You can achive this by creating the UDO(User Defined Objects)
    Link: [url]  http://wiki.sdn.sap.com/wiki/display/B1/FAQ_sdk#FAQ_sdk-UDOTutorial
    Link: [url] Creating scrrens with ou UDO
    Thanks
    Shafi

  • List the storage location for all the plants

    Hello
    How could I list all the storage locations of all the plants in single view.
    I have tried V_T001L but it is go plant by plant level.
    rgds
    Nile.Y

    Hello,
    Following link may help you.
    List of Storage Locations by Plant
    BR,
    Tushar

  • SAP SCRIPT: Header text not printing - Custom Purchase Order.

    Hello Experts,
    I have used the standard MEDRUCK and copied to ZMEDRUCK. I want the PO header text to print in my form.
    I have used subroutine-pool and called it in the form.
    Here is my subroutine
    FORM fetch_table_data TABLES in_tab STRUCTURE itcsy
                                 out_tab STRUCTURE itcsy.
      TABLES EKKO.
      DATA: BEGIN OF header OCCURS 0,
              ld_txt1(163),
              ld_txt2(163),
              ld_txt3(163),
            END OF header.
      DATA: li_lines LIKE STANDARD TABLE OF tline WITH HEADER LINE,
            ID like THEAD-TDID,
            TNAME LIKE THEAD-TDNAME,
            TDOBJECT like THEAD-TDOBJECT.
      DATA  HTEXT LIKE EKKO-EBELN.
    *  HTEXT = EKKO-EBELN.
      READ TABLE in_tab WITH KEY EKKO-EBELN.
      if sy-subrc = 0.
      TNAME = in_tab-value.
      ENDIF.
    TNAME = EKKO-EBELN.
    *CONCATENATE EKPO-ebeln EKPO-ebelp INTO v_item_text.
    *MOVE v_head_text to HNAME.
    CALL FUNCTION 'READ_TEXT'
      EXPORTING
    *   CLIENT                        = SY-MANDT
        id                            = 'F01'
        language                      = 'E'
        name                          = TNAME
        object                        = 'EKKO'
    *   ARCHIVE_HANDLE                = 0
    *   LOCAL_CAT                     = ' '
    * IMPORTING
    *   HEADER                        = TNAME
      tables
        lines                         = li_lines
    EXCEPTIONS
       ID                            = 1
       LANGUAGE                      = 2
       NAME                          = 3
       NOT_FOUND                     = 4
       OBJECT                        = 5
       REFERENCE_CHECK               = 6
    *   WRONG_ACCESS_TO_ARCHIVE       = 7
    *   OTHERS                        = 8
    IF sy-subrc <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    CLEAR out_tab.
    out_tab-VALUE = TNAME.
    CONDENSE out_tab-VALUE.
    MODIFY out_tab TRANSPORTING VALUE WHERE NAME = 'TNAME'.
    ENDFORM.
    And my script in the form is
    PERFORM FETCH_TABLE_DATA IN PROGRAM ZMEDRUCK_SUBP2
    USING &EKKO-EBELN&
    CHANGING &TNAME&
    ENDPERFORMpar RECEIVED FROM M/S     &TNAME&
    The header text is still not flowing in my form.
    What mistake i'm I doing here ?
    How can I resolve this ?
    Pls help !

    Hi,
    Data is li_lines internal table. 1st you have to read the text form the internal table line by sy-tabix.
    At last you have to concatenate these variable into the out tab value.
    you can use the following code
    ORM fetch_table_data TABLES in_tab STRUCTURE itcsy
                                 out_tab STRUCTURE itcsy.
      TABLES EKKO.
      DATA: BEGIN OF header OCCURS 0,
              ld_txt1(163),
              ld_txt2(163),
              ld_txt3(163),
            END OF header.
      DATA: li_lines LIKE STANDARD TABLE OF tline WITH HEADER LINE,
            ID like THEAD-TDID,
            TNAME LIKE THEAD-TDNAME,
            TDOBJECT like THEAD-TDOBJECT.
      DATA  HTEXT LIKE EKKO-EBELN.
    READ TABLE in_tab WITH KEY EKKO-EBELN.
      if sy-subrc = 0.
      TNAME = in_tab-value.
      ENDIF.
    ALL FUNCTION 'READ_TEXT'
      EXPORTING
      CLIENT                        = SY-MANDT
        id                            = 'F01'
        language                      = 'E'
        name                          = TNAME
        object                        = 'EKKO'
      ARCHIVE_HANDLE                = 0
      LOCAL_CAT                     = ' '
    IMPORTING
      HEADER                        =
      tables
        lines                         = li_lines
    EXCEPTIONS
       ID                            = 1
       LANGUAGE                      = 2
       NAME                          = 3
       NOT_FOUND                     = 4
       OBJECT                        = 5
       REFERENCE_CHECK               = 6
      WRONG_ACCESS_TO_ARCHIVE       = 7
      OTHERS                        = 8
    IF sy-subrc  0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    data : f_lines TYPE i,
    DESCRIBE TABLE li_lines LINES f_lines.
    data: lstr type String,
          lstr1 type string,
          lstr2 type string,
          lstr3 type string,
          lstr4 type string.
    read table li_lines index 1.
    lstr = li_lines
    condense lstr.
    clear li_lines
    read table li_lines index 2.
    lstr1 = li_lines
    condense lstr.
    clear li_lines
    read table li_lines index 3.
    lstr2 = li_lines
    condense lstr.
    clear li_lines
    if f_lines GT 3.
    ead table li_lines index 4.
    lstr3 = li_lines
    condense lstr.
    clear li_lines
    ead table li_lines index 5.
    lstr4 = li_lines
    condense lstr.
    clear li_lines
    endif.
    data : v_text type text.
    concatenate  lstr1 lstr2 lstr3 lstr4 into v_text separate by ' '.
    CLEAR out_tab.
    READ TABLE out_tab WITH KEY name = 'TNAME'.
    out_tab-value = v_text
    MODIFY out_tab INDEX sy-tabix.
    Regards
    Nayan Kumar

  • How can we disassociate an Apple ID from a set of computers formated from a single computer using Carbon Copy Cloner and a single image and then Migration Assistant to install their old profile? The original ID is the Apple ID for all the stores.

    Here is a bit more detail.
    We were replacing old teacher machines and wanted to do it as efficiently as possible. Therefore, we set up one computer, through the OS installation and ran all updates, and then made a disk image so that we can use Carbon Copy Cloner to image all the other computers without having to run all the other updates. Once they were set up to a base level and assigned to a teacher we used Migration Assistant to import all their old files and items. Everything has been fine until recently the computers became aware of needing an update for one or two apps. The machine asks for the original computer's Apple ID for all updates. We have logged out of the apple id and back in with another to test if running the updates will work with that Apple ID and even after a refresh it still asks for the other Apple ID. How can we disassociate the Apple ID from those other computers so that the individual who owns the original is not needed each time there is an update or has to give out their Apple ID password?

    There are two parts to this:
    1) It may be that you should have an Apple Education Support person helping you with this. If you have enough computers for this to be a problem, you may benefit from a Server, a site license, and an occasional visit from an Education Support Specialist.
    2) The brief answer, if you want Individual Apple_IDs to control each computer, is to buy new copies of Mac OS X under those new Apple_IDs and re-download and re-Install. Mac OS X is customized to the Apple_ID before it is downloaded.

  • Updating the MIDlet application for all the PDA at once.

    Good day...
    I would like to develop the MIDlet application for my company and i faced the problem as below:
    There will be more than ten PDA will be used in our system. The PDA will place on the Ethernet cradle and this cradle will link to the web server to exchanged information. The MIDlet application will install on all the PDA in the first initial stage. How about if i want to change some coding or recompile my MIDlet application, how i can distribute all this updated MIDlet application to every PDA on the network in the efficient way. This is because i cannot install each one by one since this is waste time.
    Have anyone can suggest the better idea to me how to solved this problem. Beside that, how i can check on my MIDlet on each PDA is outofdate from the one on the server?? And any opinion on the Ethernet cradle I am using in this case?
    At last, if there is possible to update my MIDlet application from time to time, is it this will affect my data stored on the PDA?
    Please advice and kindly reply.
    Thank in advance...
    SL

    Not sure on the PDA but on the Siemens Sl45i that I have, you can upgrade the midlet by pressing a button -- provided that the MIDlet URL is set to where the device can download the updated suite. I have not tried it yet, though.

Maybe you are looking for