How to use resourceBundle in Catalog Definition

hi all,
I am using wc11g, I need to use resourceBundle to display different title for different languages, according to the following doc:
The name of the resource bundle to be used for obtaining translated attribute values, where <attribute.... isKey="true"/>. The resourceBundle attribute can also be used at lower levels in the document, such as on individual attributes elements. Refer to the XSD for further details.
I defined resourceBundle in the following element level in DefaultGroupSpaceCatalog.xml,
catalogDefinition,attributes,attribute, definition like this:
<resource id="task-flow-definition_hotNews"
repository="application.classpath"
path="adflibWcSvcApp.jar/ADF_TaskFlow/WEB-INF+task-flow-definition_content.xml#task-flow-definition_hotNews">
<attributes resourceBundle="com.uaes.portal.service.resource.UaesServiceBundle">
<attribute value="TITLE.HOTNEWS" attributeId="Title" isKey="true" resourceBundle="com.uaes.portal.service.resource.UaesServiceBundle"/>
<attribute value="DESC.HOTNEWS" attributeId="Description" isKey="true" resourceBundle="com.uaes.portal.service.resource.UaesServiceBundle"/>
<attribute value="key" attributeId="Subject" isKey="false"/>
<attribute value="hotnews" attributeId="WEBCENTER_SERVICE_ID" isKey="false"/>
<attribute value="/adf/webcenter/events_qualifier.png" attributeId="IconURI"/>
<attribute value="height:331px" attributeId="attr.contentStyle" isKey="false"/>
</attributes>
</resource>
While what ever UaesServiceBundle_xx_xx.properties I put, catlalog composer does not recognize the title, just showed "TITLE.HOTNEWS".
Noticed that a XTRS file should be used to generate .class, but how to do it?
Best regards

Wow, had hoped to get something!
Anyway, what I ended up doing was to bundle the xsd/wsdl/generated java bindings into a jar that I included in the web server. Not the ideal solution when need to share between other services. However, no success any other way!

Similar Messages

  • How to use vCloud Director Catalog into vFabric Data Director

    Hi,
        How to use vCloud Director Catalog into vFabric Data Director.....

    When you install Data Director, you have the option of selecting a Global or Organizational installation.  When you select Organizational, you have an additional option to specify the vCD instance from which you can get Organizations and Users.  This must be set up at installation time.

  • How to use ResourceBundle

    I have a piece of code which tries to read a property file like this:
    ResourceBundle bundleHandle = ResourceBundle.getBundle("Example");
    Here Example.properties is a file located in another directory which is dynamically constructed
    during deployment. So I don't want to put it within the package.
    My question is: Will the above code work? When running under debugger, this line always fails to
    find the Example.properties even it is there?
    Thanks you your help!

    Here Example.properties is a file located in another directory which is dynamically constructed The following should provide some examples.
         // Method: demonstratePropertyAbsolute()
         * Demonstrates how a property file is used via absolute naming
         * Because the file name starts with a forward slash this
         * will use an absolute path (in the context of the java application)
         private static final
              String MAIN_FILE_ABS = "/BlueGnome/demos/Properties/DemoPropertiesFile.properties";
         static void demonstratePropertyAbsolute() throws Exception
              aProperties = new Properties();
              // Demonstrate what the name is
              // Notice that we use the Properties for the the class
              // reference.  It does not matter what class we use.
              java.net.URL url = Properties.class.getResource(MAIN_FILE_ABS);
              System.out.println("Absolute: resolved name = " + url);
              // Get a stream so we can read it.
              java.io.InputStream is;
              is = Properties.class.getResourceAsStream(MAIN_FILE_ABS);
              if (is == null)
                   throw new Exception("Resource File "
                        + MAIN_FILE_ABS + " not found.");
              // Load the stream
              aProperties.load(is);
              System.out.println("  This is a value from the properties file"
                             + " name = <"
                             + aProperties.getProperty("a.value")
                             + ">");
         // Method: demonstratePropertyPath()
         * Demonstrates how a property file is used via path
         * The file name is basically a system file path (unlike the previous two)
         private static final
              String MAIN_FILE_PATH = "./BlueGnome/demos/Properties/DemoPropertiesFile.properties";
         static void demonstratePropertyPath() throws Exception
              aProperties = new Properties();
              // Demonstrate what the name is
              java.net.URL url = ClassLoader.getSystemClassLoader().getResource(MAIN_FILE_PATH);
              System.out.println("PATH: resolved name = " + url);
              // Get the file.
              // We could just use FileInputStream here.  Then we would have
              // to provide a path that was meaningful to the system like
              //     c:\java\BlueGnome\demos\Properties\DemoPropertiesFile.properties
              // Doing it this way allows us to use generic directory
              // seperators and allows for it to search for the file using
              // the CLASSPATH.  That also allows for it to be in a jar file.
              java.io.InputStream is;
              is = ClassLoader.getSystemClassLoader().getResourceAsStream(MAIN_FILE_PATH);
              if (is == null)
                   throw new Exception("Resource File "
                        + MAIN_FILE_PATH + " not found.");
              aProperties.load(is);
              System.out.println("  This is a value from the properties file"
                             + " name = <"
                             + aProperties.getProperty("a.value")
                             + ">");
         }

  • Using ResourceBundle class

    Hi
    How to use ResourceBundle class for fetching data from properties file.
    Thanks & Regards
    Mallik

    it is explained in the java tutorial, here 's the url :
    http://java.sun.com/docs/books/tutorial/i18n/resbundle/propfile.html

  • How do I use a LR5 catalog in LR4?

    I own lightroom 4 on one computer. I installed a lightroom 5 trial version on another computer for a trip I went on. I used lightroom 5 on the trip, keeping my catalog and all my pictures on an external hardrive. Now that my trial vertion for lightroom 5 is about up I need to use it's catalog in lightroom 4. How do I do it???

    Short answer is: you can't. Catalogs are not backwards compatible, never have been with Lightroom.
    Assuming you have processed those images in LR5 (if you haven't, just import them again into LR4), the best you can do is to select all images in the LR5 catalog and do Ctrl-S. This will write most of the metadata associated with those images back to the files (or to XMP sidecar files if using proprietary Raw format), though not all of it. Then you import the images into LR4 and hope for the best.....things like Keywords, Titles, Captions, GPS data should be preserved, but develop edits will be more of a lottery. Because the undelying Process Version is the same, some of the edits should be preserved, but anything done in LR5 using the new tools will be lost as LR4 will not understand them.

  • How can I use the same catalog on PC and MAC?

    I keep my catalog and photos on an external hard drive.  I have both PCs and a MAC and I would like to be able to access the same catalog of photos on both my PC and my MAC using LR2.  I am using v 2.3.  The problem is the location of the photo is referenced differently on the PC than on the MAC.  Does any one have any idea how I might accomplish this?
    If this is impossible, then can anyone at least tell me how I can convert my catalog file (lrcat) so that the location of photos that are currently referenced using a drive and path (eg, p:\myphotos\...) to a format that can be used on the MAC so Lightroom running on the MAC will know about the photos on my external drive?

    I have figured out the answer to my question.  Thanks to those who tried to help.
    First of all, I found that Lightroom's 'Locate folder' didn't work for me.  It might have if I had tried that the first time I tried to convert things, but I had tried to locate a few photos already, so I was always told that the folder I was trying to locate was already in the catalog.
    Breifly, what did work was to locate individual photos using the ? you see on the photo when in grid mode in the Library view and specify that other photos nearby should also be relocated.  By choosing a photo at the top of the directory tree, Lightroom will search for all photos in the directory containing your photo and all subdirectories of it.
    The details:
    What did work, was to individually locate photos using the ? you see on the photo when in grid mode in the Library view.  If you turn on the choice to locate other photos nearby, then Lightroom will search for other photos in this directory and in all subdirectories of the one containing your located photo.  This was a good start, but the problem for me is that my photos are stored in many directories below an organizing directory (eg, \2009\2009-01-02) and the organizing directory (\2009 in this example) does not contain any photos to locate.  Furthermore, each of my orgainizing 'yearly' directories are organized in one top directory (\Photos) that also has no photos in it to locate.  So, to make use of this feature, I had to create a photo in at least the top directory that I could use for finding the rest.  I call this a 'FindMe' photo.  I found that it needed to have a totally different file name than any other photo in my library.  So, I created on be exporting another photo (with very poor resolution to keep the size small) and giving it a name of FindMe-<directory_name>.  I also found it helpful to give it a caption of 'FindMe' to use in locating the photo.  I imported this photo into the top directory (\Photos) on the PC.
    The next step was to open the .lrcat on the Mac.  Looking at the grid of all photos, I narrowed down the photos to just those that had a caption of 'FindMe' or a file name of FindMe.  That located the photo in \Photos that I could use to start the search for all the rest.  (Note that giving your locating photo a name you can easily find is important because all you will be able to see when you look at all of the photos is just a blank square and I couldn't find any way to tell Lightroom to only show me photos in this one directory, excluding subdirectories (this is a feature they should add to Lightroom).)
    Now theoretically, this trick should have located all of my photos.  However, in a library of over 55,000 photos, there's bound to be some problems.  It turns out that my library that started in Adobe Photoshop Elements had some entries that didn't point to the file properly...in fact there was a blank space at the beginning of the filename.  We had caught this problem and renamed the file on the hard drive properly, but a few catalog entries had missed the correction of the filename before we converted this to a Lightroom catalog.  (Elements tolerated the blank space in the file name, Lightroom does not).  This caused Lightroom to hang when it was locating file.  I solved this problem by fixing a lot of these in the PC catalog.  (This took some doing, because Lightroom would first give me a ? to let me locate the file, but it quickly realized it had a problem and changed the ? to a danger sign that would not allow me to do anything with the photo.  So, I had to act quickly to correct the problem with these photos.)  That fixed a lot, but there were apparently still some problems in the library that caused Lightroom to hang when locating photos.  Also, as the number of photos that were properly relocated grew, I found that it took too long to let Lightroom try to fix the entire library.  So, I started creating FindMe photos in the few remaining 'yearly' organizing directories and locating files in each of these.  That pretty much did the trick.
    My wishlist for Lightroom new features:
    1.   I would like it if I could tell Lightroom to locate all photos within a directory (with the choice to includ subdirectories) in a particular place.  By this, I mean to go from the directory, not from a specific photo within a directory.
    2.  I want to be able to tell Lightroom to only display photos within a particular directory (excluding those in the subdirectory).  This would make it a lot easier to locate my 'find me' photos and would eliminate the need to make the so identifiable.

  • How to use the catalog in our own Web Dynpro program?

    Hi Expert,
    How to access MDM catalog and bring the product data back to a our own Web Dynpro program?

    Hi  Masa,
    The Catalog Search UI of SRM that is referred to as UI as aforementioned is a page which is capable of the selection of catalog items is linked from the shopping cart creation.
    Our biz requirement content two scenarioes to processing the purchase requirement.
    A.  Create shopping cart via the catalog (PR) --> SRM PO Process --> SUS(PO and Invoice) 
    This is the standard SRM purchase scenario and we have already implemented that.
    B. Create a requirement document via the catalog (This document is same with the SC but very simple, and we create this function by the own web dynpro program) --> transfer the requirement document to other purchasing system(none SAP)  in our intranet.
    So the key problems we faced are below:
    1. How to connect to the catalog search UI from our own web dynpro program.
    ( If we connect the catalog via the MDM ABAP API, that will make the catalog serach UI could not be used;
    Also  it has been failed to simulate the function of SC's connection to the catalog;
    So we decide to link the catalog serach UI via the URL, the linkage is "http://<J2EEserver:J2EEport>/SRM-MDM/SRM_MDM?sap-locale=EN&HOOK_URL=&mask=&namedSearch=General&username=&password=&catalog=<Repository Name>&server=&datalanguage=EN". )
    2. How to transfer the catalog item data to our own web dynpro program.
    If we link the catalog search UI by URL, we can not find any good method to transfer the catalog item data to our own program.

  • How to use Catalog API's

    Hi,
    Can someone please point me to some references or sample implementation where Catalog and Search API functionality is used.
    I want to create a stand-alone windows application much like APILocator.exe to index and search a set of PDF files.
    Thanks
    -Sanjai

    Hi Leonard,
    Thanks for the response.
    Yes I have downloaded the SDK. I'm looking for something more detail as to how to use the catalog APIs to index set of PDF's and use it to search ( if its possible )
    Thanks again
    -Sanjai

  • I have been interested in how lightroom uses the catalog so was poking around a backup of the catalog. I found it rather concerning that although the database (catalog) is pretty well designed, there is no referential integrity defined or enforced.

    I have been interested in how lightroom uses the catalog so was poking around a backup of the catalog.  I am a database administrator and I found it rather concerning that although the database (catalog) is pretty well designed, there is no referential integrity defined or enforced. This is non-standard practice and could well be the source of corrupt catalogs I have seen many people complain about. I would strongly recommend the developers modify the catalog and adopt best practices if they want to improve the stability of Lightroom and the catalog.

    I would imagine that data integrity is not enforced for performance reasons. In a closed environment like LR where the application has complete control over the data, enforcing data integrity may not be worth the performance hit. Often what is done in an environment like this is to have data integrity on in test environments which would expose data integrity bugs but where the impact of performance is low. In "production" it is then turned off to get as much performance as possible. I would say there are many more complaints about performance than corrupt catalogs. And corrupt catalogs are more likely due to interruptions in writing to the catalog (like crashes, backups or dropbox activity while LR is running, etc). Data integrity would not help in these cases as they are outside the databases control.

  • How to create groups in AD using AD group process definition

    Hello,
    I want to create group in AD when i create group in OIM & i had achieved this using JNDI & was able to create groups in AD
    successfully,now i want to create groups in AD using AD Group process definition which contains create AD Group task.
    Can anyone suggest what flow should be followed to achieve this ?
    Thanks & Regards,
    Rahul Shah

    I think you can do R & D to acheive this via Event Handler.
    1. Apply Event Handler on Group Object Form.
    In Event handler class.
    2. get the parameter from ADITresource.
    3. Make JNDI call.
    4. Create the same group name in AD.
    There may be easy approach.
    Which version of OIM you are using?
    Thanks,
    Kuldeep

  • How to create a product catalog in crm(by the end user of the system)?

    how can we an end user create a product catalog?
    what is the diff b/n prod cat and prod?
    we download the prod from r/3.
    how we get the prod cat done in crm for the customers and consumers and how it is done?
    thank you,

    hi
    first of all we need to look at what is catalog management before proceding with product and product catalog.
    You use this business scenario to create a centralized product catalog that contains product descriptions, multimedia objects, pricing, and associated literature. The catalog enables quick and easy customer access to timely and personalized product information, structured in such a way that most meets your customers needs.
    Product catalogs are implemented in sales processes and are of particular importance in CRM Web Channel for presenting your products in the Web shop.
    difference between the product and product catalog
    this is not the thing that product and product catalog are completely different entity.
    Product catalog :   A grouping together of products from your product master data, in a structured hierarchy.
    You use product catalogs to group together products to present them in the Web shop, Interaction Center, or in other forms of media, for example printed format or CD-ROM.
    You can create various catalogs for your products in the product master and use them according to a validity date. For example, you could use certain products for the summer season, and other products for the winter season.
    You can also tailor your product catalog to meet other needs by creating catalog variants. For example, you can create a catalog in English with the prices displayed in US Dollars.
    so by above definition it is very much clear that products are actually assign to the catalog,i will give you an analogy that museum is a kind of catalog and you add different pictures to the museum,in the same way you add product to the product catalog according to the acatlog variant.
    Now how you assign product to product catalog
    Product Assignment
    You assign products manually or automatically to a catalog area, depending on the catalog type. The product ID, product description, and status of all products is displayed, as is the information as to whether the item contains accessories or if it is a configurable product.
    Prerequisites
    You have created products in your product master in SAP CRM under Accounts and Products
    Process
    You select a catalog area in your product catalog, and edit the item list by assigning products to the area.
    Manual Assignment
    You can assign products manually on an individual basis or by copying a catalog area. You tend to choose manual product assignment for marketing-oriented catalogs that are subjected to editorial controls.
          Individual assignment
          In this case you select the catalog area in which the product should be assigned, manually search for the product in the product master, and assign it to the area.
          Copying items from catalog areas
          You select an area or subarea from another catalog and copy it to your new catalog. The system copies all products from the copied area to the new catalog, as long as they belong to the distribution chain assigned to the target catalog variant. From these products, you can then manually determine which products from the copied area you want to keep and which items you wish to delete.
    The following is true for manually assigned products:
          You can activate or deactivate items on an individual basis.
          You can edit the list of accessories for manually assigned products. The system determines which accessories are maintained for the product in the product master and displays them in the item area of the catalog. You select which accessories should be displayed for the product in the catalog and activate them.
          Manually assigned products can be included or removed from catalog views on an individual basis.
    Automatic Assignment
    You can assign products automatically to a catalog by transferring product hierarchies from your product master to the catalog areas. The categories, items, attributes, and documents contained in the product hierarchy are copied to the new catalog.
    You use automatic product assignment mainly for functional catalogs, where products can be copied with very few changes, from the product categories of the product master. It enables a standardized characterization of your products in the catalog.
    The following is true for products assigned to the catalog using product hierarchy transfer:
          Product categories which make up the hierarchies become catalog areas in the catalog.
          Product categories in the product hierarchy must be assigned to the distribution chain to which the target catalog variant is assigned. Otherwise the category is not transferred. The same applies to the items, texts, and documents assigned to the category.
          Items are always active and cannot be individually activated or deactivated.
          Accessories maintained for transferred product in the product master are automatically included and displayed in the catalog.
          Transferred items cannot be individually included in catalog views or removed from them. Instead all items of the hierarchy are always contained in the view.
          Lists of characteristics for transferred categories and items can be automatically created when transferring product hierarchies. The transferred values are included in the item overview of the product catalog.
    how to create a product catalog
    just have a look at this link
    http://help.sap.com/saphelp_crm60/helpdata/en/1c/12b2dc57d644d19ea3a5c4156f904f/frameset.htm
    your query regarding the products you have uploaded from the R3,now as above i said how you maintain and create the product catalog ,you just assign the products uploaded from the R3 to the product cataloag created in CRM.
    more detail info you can see in these links
    http://help.sap.com/saphelp_crm60/helpdata/en/91/be9642e5ef0731e10000000a1550b0/frameset.htm
    http://help.sap.com/saphelp_crm60/helpdata/en/46/27f09d25da5a68e10000000a1553f7/frameset.htm
    http://help.sap.com/saphelp_crm60/helpdata/en/46/037716cfc604a9e10000000a114a6b/frameset.htm
    if you read carefuly what i have said,it is pretty easy to implement ,you will see it yourself
    guess it will help you
    do revert back in case of any doubt
    best regards
    ashish

  • How do I define Field-Catalog and Event-Catalog in OOPs ALV

    Hi All,
    This is the piece of the code on which I'm working upon. This program is giving an exception "No Field-Catalog Found". 
    I'm new to OOPs ALV. Could anybody please tell me how to define the field-catalog and event-catalog in this.
    module PBO output.
          IF g_custom_container IS INITIAL.
              CREATE OBJECT g_custom_container EXPORTING CONTAINER_NAME = 'CCCONTAINER'.
              CREATE OBJECT g_grid             EXPORTING I_PARENT       = g_custom_container.
          CALL METHOD g_grid->set_table_for_first_display
              EXPORTING I_STRUCTURE_NAME = 'IT_MATERIAL'
                        is_layout = layout
              CHANGING IT_OUTTAB         = gt_it_material.
          ENDIF.
      endmodule.
    Regards,
    Saurabh

    hi,
    chk this sampl ceode.
    TYPE-POOLS: slis.
    CLASS lcl_event_receiver DEFINITION DEFERRED.
    TABLES : zmpets_shipactiv, zmpets_chargebk, zmpets_shiphdr.
    DATA : BEGIN OF int_crb OCCURS 0,
           sel TYPE char1,
           icon TYPE icon_d,
           pernr LIKE zmpets_cil-pernr,
           vorna LIKE pa0002-vorna,
           movreason LIKE zmpets_shiphdr-movreason,
           shipdocnum LIKE zmpets_chargebk-shipdocnum,
           createdon LIKE zmpets_chargebk-createdon,
           chargeamount LIKE zmpets_chargebk-chargeamount,
           version LIKE zmpets_shipactiv-version,
           activity LIKE zmpets_shipactiv-activity,
           vendor LIKE zmpets_shiphdr-vendor,
          smtp_addr LIKE adr6-smtp_addr,
           empperid LIKE zmpets_167doc-empperid,
           celltab TYPE lvc_t_styl,
           END OF int_crb.
    DATA : int_crb_ver LIKE int_crb OCCURS 0 WITH HEADER LINE.
    DATA : int_crb_mail LIKE int_crb OCCURS 0 WITH HEADER LINE.
    DATA : int_shipactiv LIKE zmpets_shipactiv OCCURS 0 WITH HEADER LINE.
    DATA: gt_fieldcatalog TYPE lvc_t_fcat.
    DATA : wf_flag TYPE i.
    DATA : wf_res TYPE c.
    DATA : wf_tabix TYPE sy-tabix.
    DATA: BEGIN OF int_sin OCCURS 0,
          shipdocnum LIKE zmpets_chargebk-shipdocnum,
            shipdocnum LIKE zmpets_shipactiv-petsdocnumber,
          END OF int_sin.
    DATA: objpack   LIKE sopcklsti1 OCCURS 2 WITH HEADER LINE.
    DATA: objhead   LIKE solisti1 OCCURS 1 WITH HEADER LINE.
    DATA: objbin    LIKE solisti1 OCCURS 10 WITH HEADER LINE.
    DATA: objtxt    LIKE solisti1 OCCURS 10 WITH HEADER LINE.
    DATA: reclist   LIKE somlreci1 OCCURS 5 WITH HEADER LINE.
    DATA: doc_chng  LIKE sodocchgi1.
    DATA: tab_lines LIKE sy-tabix.
    DATA l_num(3).
    DATA: ok_code            LIKE          sy-ucomm,
          w_repid            LIKE          sy-repid,
          wl_sno             TYPE          i         VALUE 0,
          w_max              TYPE          i         VALUE 100,
          wf_layout          TYPE          lvc_s_layo,
          cont_on_main       TYPE          scrfname   VALUE  'GRID_CONTROL',
          cont_on_dialog     TYPE          scrfname   VALUE 'GRID_CONTROL',
          grid1              TYPE          REF TO cl_gui_alv_grid,
          grid2              TYPE          REF TO cl_gui_alv_grid,
          custom_container1  TYPE          REF TO cl_gui_custom_container,
          custom_container2  TYPE          REF TO cl_gui_custom_container,
          event_receiver     TYPE          REF TO lcl_event_receiver,
          lt_exclude         TYPE          ui_functions,
          ls_celltab         TYPE          lvc_s_styl,
          lt_celltab         TYPE          lvc_t_styl.
    SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-001.
    PARAMETERS : p_cash AS CHECKBOX.
    SELECTION-SCREEN END OF BLOCK b3.
    PERFORM fieldcatalog_init USING gt_fieldcatalog[].
    Selection-Screen----
    SELECTION-SCREEN  BEGIN OF BLOCK b1 WITH FRAME TITLE text-002.
    SELECT-OPTIONS:s_chdate FOR zmpets_chargebk-createdon,
                   s_pernr FOR zmpets_shiphdr-pernr,
                   s_mvrsn FOR zmpets_shiphdr-movreason,
                   s_sin FOR zmpets_chargebk-shipdocnum NO INTERVALS
    NO-EXTENSION.
    SELECTION-SCREEN  END OF BLOCK b1.
    PERFORM f_clear_fields.
    CALL SCREEN 100.
          CLASS lcl_event_receiver DEFINITION
    CLASS lcl_event_receiver DEFINITION.
      PUBLIC SECTION.
        METHODS:
        handle_toolbar
            FOR EVENT toolbar OF cl_gui_alv_grid
                IMPORTING e_object e_interactive,
        handle_user_command
            FOR EVENT user_command OF cl_gui_alv_grid
                IMPORTING e_ucomm.
      PRIVATE SECTION.
    ENDCLASS.                    "lcl_event_receiver DEFINITION
          CLASS lcl_event_receiver IMPLEMENTATION
    CLASS lcl_event_receiver IMPLEMENTATION.
      METHOD handle_toolbar.
    § 2.In event handler method for event TOOLBAR: Append own functions
      by using event parameter E_OBJECT.
        DATA: ls_toolbar  TYPE stb_button.
    append a separator to normal toolbar
        CLEAR ls_toolbar.
        MOVE 3 TO ls_toolbar-butn_type.
        APPEND ls_toolbar TO e_object->mt_toolbar.
        CLEAR ls_toolbar.
    new button -
        MOVE 'PROCESSED' TO ls_toolbar-function.
        MOVE icon_execute_object TO ls_toolbar-icon.
        MOVE 'Process the Record'(110) TO ls_toolbar-quickinfo.
        MOVE ' Process '(200) TO ls_toolbar-text.
        MOVE ' ' TO ls_toolbar-disabled.
        APPEND ls_toolbar TO e_object->mt_toolbar.
      ENDMETHOD.                    "handle_toolbar
      METHOD handle_user_command.
    § 3.In event handler method for event USER_COMMAND: Query your
      function codes defined in step 2 and react accordingly.
        DATA: lt_rows TYPE lvc_t_row.
        CASE e_ucomm.
          WHEN 'PROCESSED'.
            CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'
                     EXPORTING
                      defaultoption        = 'N'
      textline1     = 'Do you want to process the selected documents?'
              TEXTLINE2            = ' '
                       titel                = 'Process Documents'
              START_COLUMN         = 25
              START_ROW            = 6
              CANCEL_DISPLAY       = 'X'
                    IMPORTING
                      answer               = wf_res.
    *--IF THE USER CONFIRMS 'YES',
            IF wf_res = 'J'.
              PERFORM f_modify_activity.
              CALL METHOD grid1->refresh_table_display.
           PERFORM SENDINGMAIL.
            ENDIF.
        ENDCASE.
      ENDMETHOD.                           "handle_user_command
    ENDCLASS.                    "lcl_event_receiver IMPLEMENTATION
    MODULE pbo_100 OUTPUT
    MODULE pbo_100 OUTPUT.
      SET PF-STATUS 'MAIN100'.
      SET TITLEBAR 'MAIN100'.
      w_repid = sy-repid.
      IF custom_container1 IS INITIAL.
    *get the data from charge back table
        PERFORM select_table_chb.
    create a custom container control for our ALV Control
        CREATE OBJECT custom_container1
            EXPORTING
                container_name = cont_on_main
            EXCEPTIONS
                cntl_error = 1
                cntl_system_error = 2
                create_error = 3
                lifetime_error = 4
                lifetime_dynpro_dynpro_link = 5.
        IF sy-subrc NE 0.
    add your handling, for example
          CALL FUNCTION 'POPUP_TO_INFORM'
            EXPORTING
              titel = w_repid
              txt2  = sy-subrc
              txt1  = 'The control could not be created'(510).
        ENDIF.
        CREATE OBJECT grid1
                  EXPORTING i_parent = custom_container1.
    Set a titlebar for the grid control
        wf_layout-grid_title = 'Charge Back'(100).
    allow to select multiple lines
        wf_layout-sel_mode = 'C'.
        wf_layout-stylefname = 'CELLTAB'.
    Exclude all edit functions in this example since we do not need them:
        PERFORM exclude_tb_functions CHANGING lt_exclude.
        CALL METHOD grid1->set_table_for_first_display
                   EXPORTING
                I_BUFFER_ACTIVE               =
                I_CONSISTENCY_CHECK           =
                I_STRUCTURE_NAME              =
                IS_VARIANT                    =
                I_SAVE                        =
                I_DEFAULT                     = 'X'
                     is_layout                     = wf_layout
                IS_PRINT                      =
                IT_SPECIAL_GROUPS             =
                  it_toolbar_excluding          = lt_exclude
                IT_HYPERLINK                  =
                IT_ALV_GRAPHICS               =
              CHANGING
                it_outtab                     = int_crb[]
                it_fieldcatalog               = gt_fieldcatalog.
        CREATE OBJECT event_receiver.
        SET HANDLER event_receiver->handle_user_command FOR grid1.
        SET HANDLER event_receiver->handle_toolbar FOR grid1.
        CALL METHOD grid1->set_toolbar_interactive.
      ENDIF.                               "IF grid1 IS INITIAL
      CALL METHOD cl_gui_control=>set_focus
        EXPORTING
          control = grid1.
    ENDMODULE.                    "pbo_100 OUTPUT
    MODULE pai_100 INPUT
    MODULE pai_100 INPUT.
      CASE ok_code.
        WHEN 'EXIT'.
          PERFORM f_clear_fields.
          LEAVE PROGRAM.
        WHEN 'CANCEL'.
          PERFORM f_clear_fields.
          LEAVE TO SCREEN 0.
        WHEN 'BACK'.
          PERFORM f_clear_fields.
          LEAVE TO SCREEN 0.
      ENDCASE.
      CLEAR ok_code.
    ENDMODULE.                    "pai_100 INPUT
    **&      Form  select_table_chb
          text
    FORM select_table_chb.
      IF p_cash = 'X'.
    *Consider the pending documents also.
    *get the documents which are not processed yet,
    *Doctype -> 06 = Charge Back document type.
        SELECT zmpets_shiphdrpernr pa0002vorna
         zmpets_shiphdrmovreason zmpets_chargebkshipdocnum
         zmpets_chargebkcreatedon zmpets_chargebkchargeamount
         zmpets_shipactivversion zmpets_shipactivactivity
    zmpets_shiphdr~vendor
       adr6~smtp_addr
    zmpets_167doc~empperid
                 INTO CORRESPONDING FIELDS OF TABLE int_crb_ver
                 FROM zmpets_chargebk
                 JOIN zmpets_shiphdr
               ON zmpets_chargebkshipdocnum = zmpets_shiphdrshipdocno
                 JOIN zmpets_shipactiv
         ON zmpets_chargebkshipdocnum = zmpets_shipactivpetsdocnumber
                 JOIN pa0002
                 ON zmpets_shiphdrpernr = pa0002pernr
                    JOIN lfa1
                    ON lfa1lifnr = zmpets_shiphdrvendor
                    JOIN adr6
                    ON adr6addrnumber = lfa1adrnr
                 JOIN zmpets_167doc
                 ON zmpets_167docpernr = pa0002pernr
                           WHERE zmpets_shipactiv~doctype = '06'
                        zmpets_shipactiv~activity NE '30'
                      ZMPETS_CHARGEBK~CREATEDON IN s_chdate
                      AND ZMPETS_SHIPHDR~pernr IN s_pernr
                      AND ZMPETS_SHIPHDR~MOVREASON IN s_mvrsn
                      AND ZMPETS_CHARGEBK~SHIPDOCNUM IN s_sin
                           AND zmpets_chargebk~loekz NE 'X'
                           AND zmpets_shipactiv~loekz NE 'X'
                           AND zmpets_shiphdr~loekz NE 'X'.
        IF sy-subrc <> 0.
    *Message is 'No Pending Documents Available.'.
          MESSAGE s196(zm050).
        ELSE.
          LOOP AT int_crb_ver.
    *Not yet processed. set to red
            int_crb_ver-icon = '@0A@'.
            MODIFY int_crb_ver.
          ENDLOOP.
          PERFORM f_filter_data_pending.
        ENDIF.
      ELSE.
    *Get the document details from pa0002,zmpets_shipactiv,ZMPETS_CHARGEBK
    *table.
    *Consider document type as '01'  during the selection.
    *Doctype -> 06 = Charge Back document type.
        SELECT zmpets_shiphdrpernr pa0002vorna zmpets_shiphdr~movreason
        zmpets_chargebkshipdocnum zmpets_chargebkcreatedon
    zmpets_chargebkchargeamount zmpets_shipactivversion
    zmpets_shipactivactivity zmpets_shiphdrvendor
    *adr6~smtp_addr
    zmpets_167doc~empperid
                 INTO CORRESPONDING FIELDS OF TABLE int_crb_ver
                 FROM zmpets_chargebk
                 JOIN zmpets_shiphdr
                 ON zmpets_chargebkshipdocnum = zmpets_shiphdrshipdocno
                 JOIN zmpets_shipactiv
           ON zmpets_chargebkshipdocnum = zmpets_shipactivpetsdocnumber
                 JOIN pa0002
                 ON zmpets_shiphdrpernr = pa0002pernr
                JOIN lfa1
                    ON lfa1lifnr = zmpets_shiphdrvendor
                    JOIN adr6
                    ON adr6addrnumber = lfa1adrnr
                     JOIN zmpets_167doc
                     ON zmpets_167docpernr = pa0002pernr
                           WHERE zmpets_chargebk~createdon IN s_chdate
                           AND zmpets_shiphdr~pernr IN s_pernr
                           AND zmpets_shiphdr~movreason IN s_mvrsn
                           AND zmpets_chargebk~shipdocnum IN s_sin
                          AND zmpets_shipactiv~activity NE '30'
                           AND zmpets_shipactiv~doctype = '06'
                           AND zmpets_chargebk~loekz NE 'X'
                           AND zmpets_shipactiv~loekz NE 'X'
                           AND zmpets_shiphdr~loekz NE 'X'.
        IF sy-subrc <> 0.
    *Message is 'No Charge Back Documents Available.'.
          MESSAGE s201(zm050).
        ELSE.
          PERFORM f_filter_data.
        ENDIF.
      ENDIF.
    ENDFORM.                    "select_table_chb
    *&      Form  UPDATE_RECORDS
          text
    -->  p1        text
    <--  p2        text
    FORM update_records TABLES p_et_index_rows
                                    STRUCTURE lvc_s_row.
      DATA: ls_selected_line LIKE lvc_s_row,
              lf_row_index TYPE lvc_index.
      LOOP AT p_et_index_rows INTO ls_selected_line.
        lf_row_index = ls_selected_line-index.
      ENDLOOP.
    ENDFORM.                    " UPDATE_RECORDS
    **&      Form  fieldcatalog_init
          text
         -->P_GT_FIELDCATALOG[]  text
    FORM fieldcatalog_init  USING lt_fieldcatalog TYPE lvc_t_fcat.
      DATA: ls_fieldcatalog TYPE lvc_s_fcat.
      CLEAR ls_fieldcatalog.
      ls_fieldcatalog-fieldname = 'SEL'.
      ls_fieldcatalog-tabname  = 'INT_CRB'.
      ls_fieldcatalog-datatype = 'C'.
      ls_fieldcatalog-col_pos  = 1.
      ls_fieldcatalog-edit     = 'X'.
      ls_fieldcatalog-reptext  = 'Select for Processing'.
      ls_fieldcatalog-coltext  = 'Select for Processing'.
      ls_fieldcatalog-seltext  = 'Select for Processing'.
      ls_fieldcatalog-tooltip  = 'Select for Processing'.
      ls_fieldcatalog-checkbox = 'X'.
      ls_fieldcatalog-key = 'X'.
      APPEND ls_fieldcatalog TO lt_fieldcatalog.
      CLEAR ls_fieldcatalog.
      ls_fieldcatalog-fieldname = 'ICON'.
      ls_fieldcatalog-tabname   = 'INT_CRB'.
      ls_fieldcatalog-datatype  = 'CHAR'.
      ls_fieldcatalog-col_pos    = 2.
      ls_fieldcatalog-intlen     = '4'.
      ls_fieldcatalog-reptext   =  'Status'.
      ls_fieldcatalog-coltext   =  'Status'.
      ls_fieldcatalog-seltext   =  'Status'.
      ls_fieldcatalog-tooltip   =  'Status'.
      APPEND ls_fieldcatalog TO lt_fieldcatalog.
      CLEAR ls_fieldcatalog.
      ls_fieldcatalog-fieldname = 'PERNR'.
      ls_fieldcatalog-tabname   = 'INT_CRB'.
      ls_fieldcatalog-datatype  = 'NUMC'.
      ls_fieldcatalog-col_pos   = 2.
      ls_fieldcatalog-intlen    = '8'.
      ls_fieldcatalog-reptext   =  'Employee Number'.
      ls_fieldcatalog-coltext   =  'Employee Number'.
      ls_fieldcatalog-seltext   =  'Employee Number'.
      ls_fieldcatalog-tooltip   =  'Employee Number'.
      ls_fieldcatalog-key = 'X'.
      APPEND ls_fieldcatalog TO lt_fieldcatalog.
      CLEAR ls_fieldcatalog.
      ls_fieldcatalog-fieldname  = 'VORNA'.
      ls_fieldcatalog-tabname    = 'INT_CRB'.
      ls_fieldcatalog-col_pos    =  3 .
      ls_fieldcatalog-datatype   = 'CHAR'.
      ls_fieldcatalog-outputlen      = '20'.
      ls_fieldcatalog-reptext    = 'Employee Name'.
      ls_fieldcatalog-coltext    = 'Employee Name'.
      ls_fieldcatalog-seltext    = 'Employee Name'.
      ls_fieldcatalog-tooltip    = 'Employee Name'.
    ls_fieldcatalog-key      = 'X'.
      APPEND ls_fieldcatalog TO lt_fieldcatalog.
      CLEAR ls_fieldcatalog.
      ls_fieldcatalog-fieldname  = 'MOVREASON'.
      ls_fieldcatalog-tabname    = 'INT_CRB'.
      ls_fieldcatalog-col_pos    =  4.
      ls_fieldcatalog-datatype   = 'NUMC'.
      ls_fieldcatalog-outputlen  = '10'.
      ls_fieldcatalog-reptext    = 'Move Reason'.
      ls_fieldcatalog-coltext    = 'Move Reason'.
      ls_fieldcatalog-seltext    = 'Move Reason'.
      ls_fieldcatalog-tooltip    = 'Move Reason'.
    ls_fieldcatalog-key      = 'X'.
      APPEND ls_fieldcatalog TO lt_fieldcatalog.
      CLEAR ls_fieldcatalog.
      ls_fieldcatalog-fieldname = 'SHIPDOCNUM'.
      ls_fieldcatalog-tabname   = 'INT_CRB'.
      ls_fieldcatalog-datatype  = 'NUMC'.
      ls_fieldcatalog-outputlen = '10'.
      ls_fieldcatalog-col_pos   =  5.
      ls_fieldcatalog-reptext   = 'Shipping Document Number'.
      ls_fieldcatalog-coltext   = 'Shipping Document Number'.
      ls_fieldcatalog-seltext   = 'Shipping Document Number'.
      ls_fieldcatalog-tooltip   = 'Shipping Document Number'.
    ls_fieldcatalog-key = 'X'.
      APPEND ls_fieldcatalog TO lt_fieldcatalog.
      CLEAR ls_fieldcatalog.
      ls_fieldcatalog-fieldname = 'CREATEDON'.
      ls_fieldcatalog-tabname   = 'INT_CRB'.
      ls_fieldcatalog-col_pos   = 6.
      ls_fieldcatalog-datatype  = 'DATS'.
      ls_fieldcatalog-outputlen = '8'.
      ls_fieldcatalog-reptext   = 'Created On'.
      ls_fieldcatalog-coltext   = 'Created On'.
      ls_fieldcatalog-seltext   = 'Created On'.
      ls_fieldcatalog-tooltip   = 'Created On'.
    ls_fieldcatalog-DO_sum      = 'X'.
      APPEND ls_fieldcatalog TO lt_fieldcatalog.
      CLEAR ls_fieldcatalog.
      ls_fieldcatalog-fieldname = 'CHARGEAMOUNT'.
      ls_fieldcatalog-tabname   = 'INT_CRB'.
      ls_fieldcatalog-col_pos   = 7.
      ls_fieldcatalog-datatype  = 'CURR'.
      ls_fieldcatalog-outputlen = '13'.
      ls_fieldcatalog-reptext   = 'Charge Back Amount'.
      ls_fieldcatalog-coltext   = 'Charge Back Amount'.
      ls_fieldcatalog-seltext   = 'Charge Back Amount'.
      ls_fieldcatalog-tooltip   = 'Charge Back Amount'.
    ls_fieldcatalog-DO_sum      = 'X'.
      APPEND ls_fieldcatalog TO lt_fieldcatalog.
      CLEAR ls_fieldcatalog.
    ENDFORM.                    "fieldcatalog_init
    *&      Form  f_modify_activity
    Modify the activity to 79 in zmpets_shipaciv table.
    -->  p1        text
    <--  p2        text
    FORM f_modify_activity .
      REFRESH int_crb_mail.
      int_crb_mail[] = int_crb[].
    *All the document number which is to be processed is stored in
    *the internel table 'INT_SIN'.
      LOOP AT int_crb INTO int_crb.
        IF int_crb-sel ='X'.
          MOVE int_crb-shipdocnum TO int_sin.
          APPEND int_sin.
          CLEAR int_sin.
    *Removing the processed documents.
          DELETE int_crb.
        ENDIF.
        CLEAR int_crb.
      ENDLOOP.
    *Get the details from shipactiv table.
      IF int_sin[] IS NOT INITIAL.
        SELECT * FROM zmpets_shipactiv
            INTO TABLE int_shipactiv
              FOR ALL ENTRIES IN int_sin
                    WHERE petsdocnumber = int_sin-shipdocnum.
    *Modify the activity code, version, actual date and last changed date.
        SORT int_shipactiv BY petsdocnumber version DESCENDING.
        CLEAR wf_tabix.
        LOOP AT int_shipactiv.
          wf_tabix = sy-tabix.
          AT NEW petsdocnumber.
            READ TABLE int_shipactiv INDEX wf_tabix.
            int_shipactiv-activity = '030'.
            int_shipactiv-version = int_shipactiv-version + 1.
            int_shipactiv-actdate = sy-datum.
            int_shipactiv-lastchangedby = sy-uname.
            int_shipactiv-lastchangedt = sy-datum.
    *Modify the data base table
            MODIFY zmpets_shipactiv FROM int_shipactiv.
          ENDAT.
          CLEAR int_shipactiv.
          AT LAST.
    *Message is 'Data Processed Successfully.'.
            MESSAGE s203(zm050).
          ENDAT.
        ENDLOOP.
    *-send mail to the vendor and employee that the shipment is cleared for
        LOOP AT int_crb_mail WHERE sel = 'X'.
          PERFORM f_send_mail.
        ENDLOOP.
        REFRESH int_crb_mail.
       CALL SELECTION-SCREEN 1000.
      ELSE.
    *Message is 'No Data Selected for Processing.'.
        MESSAGE s200(zm050).
      ENDIF.
    ENDFORM.                    " f_modify_activity
    *&      Form  f_clear_fields
          text
    -->  p1        text
    <--  p2        text
    FORM f_clear_fields .
      CLEAR int_crb.
      CLEAR int_crb_ver.
      CLEAR int_sin.
      REFRESH int_crb.
      REFRESH int_crb_ver.
      REFRESH int_sin.
      CLEAR int_shipactiv.
      REFRESH int_shipactiv.
      CLEAR wf_flag.
      CLEAR wf_tabix.
    ENDFORM.                    " f_clear_fields
    *&      Form  f_filter_data
          text
    -->  p1        text
    <--  p2        text
    FORM f_filter_data .
    *Take the latest Version Data.
    *take all the activities, including the activity '30'.
    then put the details in internal table 'INT_CRB'.
      SORT int_crb_ver BY shipdocnum version DESCENDING.
      CLEAR wf_tabix.
      CLEAR int_crb.
      REFRESH int_crb.
      LOOP AT int_crb_ver.
        wf_tabix = sy-tabix.
        AT NEW shipdocnum.
          READ TABLE int_crb_ver INDEX wf_tabix.
          MOVE-CORRESPONDING int_crb_ver TO int_crb.
          APPEND int_crb.
          CLEAR int_crb.
        ENDAT.
      ENDLOOP.
      IF int_crb[] IS INITIAL.
    *Message is 'No Records Available.'.
        MESSAGE s202(zm050).
      ELSE.
        CLEAR wf_tabix.
        LOOP AT int_crb.
          wf_tabix = sy-tabix.
          REFRESH lt_celltab.
          ls_celltab-fieldname = 'SEL'.
          IF int_crb-activity = '030'.
            ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.
    *status becomes green. ie processed
            int_crb-icon = '@08@'. "Green
          ELSE.
            ls_celltab-style = cl_gui_alv_grid=>mc_style_enabled.
    *status set to red. ie not yet processed
            int_crb-icon = '@0A@'. "Red
          ENDIF.
          INSERT ls_celltab INTO TABLE lt_celltab.
          INSERT LINES OF lt_celltab INTO TABLE int_crb-celltab.
          MODIFY int_crb INDEX wf_tabix.
        ENDLOOP.
      ENDIF.
    ENDFORM.                    " f_filter_data
    *&      Form  f_filter_data
          text
    -->  p1        text
    <--  p2        text
    FORM f_filter_data_pending.
    *Take the latest Version Data.
    *take all the activities, including the activity '30'.
    *then filter it with out the activities '30' and having the lastest
    *version. then put the details in internal table 'INT_CRB'.
      SORT int_crb_ver BY shipdocnum version DESCENDING.
      CLEAR wf_tabix.
      CLEAR int_crb.
      REFRESH int_crb.
      LOOP AT int_crb_ver.
        wf_tabix = sy-tabix.
        AT NEW shipdocnum.
          READ TABLE int_crb_ver INDEX wf_tabix.
          IF int_crb_ver-activity NE '030'.
            MOVE-CORRESPONDING int_crb_ver TO int_crb.
            APPEND int_crb.
            CLEAR int_crb.
          ENDIF.
        ENDAT.
      ENDLOOP.
      IF int_crb[] IS INITIAL.
    *Message is 'No Records Available.'.
        MESSAGE s202(zm050).
      ENDIF.
    ENDFORM.                    " f_filter_data_pending
    *&      Form  EXCLUDE_TB_FUNCTIONS
          text
         <--P_LT_EXCLUDE  text
    FORM exclude_tb_functions CHANGING pt_exclude TYPE ui_functions.
      DATA ls_exclude TYPE ui_func.
      ls_exclude = cl_gui_alv_grid=>mc_fc_loc_copy_row.
      APPEND ls_exclude TO pt_exclude.
      ls_exclude = cl_gui_alv_grid=>mc_fc_loc_delete_row.
      APPEND ls_exclude TO pt_exclude.
      ls_exclude = cl_gui_alv_grid=>mc_fc_loc_append_row.
      APPEND ls_exclude TO pt_exclude.
      ls_exclude = cl_gui_alv_grid=>mc_fc_loc_insert_row.
      APPEND ls_exclude TO pt_exclude.
      ls_exclude = cl_gui_alv_grid=>mc_fc_loc_move_row.
      APPEND ls_exclude TO pt_exclude.
      ls_exclude = cl_gui_alv_grid=>mc_fc_loc_copy.
      APPEND ls_exclude TO pt_exclude.
      ls_exclude = cl_gui_alv_grid=>mc_fc_loc_cut.
      APPEND ls_exclude TO pt_exclude.
      ls_exclude = cl_gui_alv_grid=>mc_fc_loc_paste.
      APPEND ls_exclude TO pt_exclude.
      ls_exclude = cl_gui_alv_grid=>mc_fc_loc_paste_new_row.
      APPEND ls_exclude TO pt_exclude.
      ls_exclude = cl_gui_alv_grid=>mc_fc_loc_undo.
      APPEND ls_exclude TO pt_exclude.
    ENDFORM.                               " EXCLUDE_TB_FUNCTIONS
    *&      Form  f_send_mail
          text
    -->  p1        text
    <--  p2        text
    FORM f_send_mail .
    *store the vendor name, vendor email id , employee name and employee
    *email id in the internal table int_crb
    Creation of the document to be sent
      CLEAR doc_chng.
      REFRESH objpack.
      REFRESH objhead.
      REFRESH  reclist.
      REFRESH objtxt.
    File Name
      doc_chng-obj_name = 'SHIPMENT'.
    Mail Subject
      CONCATENATE 'Shipment Document No.' int_crb_mail-shipdocnum
      'Cleared.'
      INTO doc_chng-obj_descr SEPARATED BY ' '.
    Mail Contents
      objtxt-line = 'Hi,'.
      APPEND objtxt.
      objtxt-line = ' '.
      APPEND objtxt.
      CONCATENATE 'Shipment Document Number ' int_crb_mail-shipdocnum
    ' cleared for move.' INTO objtxt-line SEPARATED BY ' '.
      APPEND objtxt.
      objtxt-line = ' '.
      APPEND objtxt.
      CLEAR  objtxt.
      objtxt-line = 'Regards '.
      APPEND objtxt.
      objtxt-line = ' '.
      APPEND objtxt.
      objtxt-line = 'SAP '.
      APPEND objtxt.
      CLEAR  objtxt.
      APPEND objtxt.
      DESCRIBE TABLE objtxt LINES tab_lines.
      READ TABLE objtxt INDEX tab_lines.
      doc_chng-doc_size = ( tab_lines - 1 ) * 255 + STRLEN(
    objtxt ).
    Creation of the entry for the compressed document
      CLEAR objpack-transf_bin.
      objpack-head_start = 1.
      objpack-head_num = 0.
      objpack-body_start = 1.
      objpack-body_num = tab_lines.
      objpack-doc_type = 'RAW'.
      APPEND objpack.
    Completing the recipient list
    target recipent
      CLEAR reclist.
      reclist-receiver = int_crb_mail-empperid. "employee email ID
      "wf_empperid.
      reclist-express  = 'X'.
      reclist-rec_type = 'U'.
      APPEND reclist.
    copy recipents
    CLEAR reclist.
    reclist-receiver = 'anversha.shahul@'."int_crb_mail-smtp_addr
    reclist-express  = 'X'.
    reclist-rec_type = 'U'.
    reclist-copy     = 'X'.
    APPEND reclist.
    Sending the document
      CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
        EXPORTING
          document_data              = doc_chng
        TABLES
          packing_list               = objpack
          object_header              = objhead
       contents_bin               = objbin
          contents_txt               = objtxt
          receivers                  = reclist
        EXCEPTIONS
          too_many_receivers         = 1
          document_not_sent          = 2
          operation_no_authorization = 4
          OTHERS                     = 99.
      COMMIT WORK.
      SUBMIT rsconn01
                    WITH mode = 'INT'
                    WITH output = ' '
                      AND RETURN.
    ENDFORM.                    " f_send_mail
    rgds
    anver
    pls mark hlpful answers

  • How to use E1BPPAREX - IDoc Segment enhancement

    Hi,
    can you provide me with some details on "how to use the E1BPPAREX" IDoc Segment ?
    I want to enhance the standard PRICECATALOGUE02 IDoc with some customer defined fields.
    There is a use of a STRUCTURE FIELD and 4 VALUEPARTS.
    What kind of structure do i have to use ?
    I red something about to enter 2 kind of structures ?
    a) the first part = wrf_pricat_key*
    b) second part = DDIC userdefined structure.
    Thx,
    Gordon

    Hi Gordon,
    1. Map customer data in E1BPPAREX segment fields:
    STRUCTURE     CHAR     30     0     Structure name of  BAPI table extension
    VALUEPART1     CHAR     240     0     Data part of BAPI extension parameter
    VALUEPART2     CHAR     240     0     Data part of BAPI extension parameter
    VALUEPART3     CHAR     240     0     Data part of BAPI extension parameter
    VALUEPART4     CHAR     240     0     Data part of BAPI extension parameter
    2. Build a new implementationof BADI interface IF_EX_PRICAT_OUT_EXTIN  (PRICAT_IN_EXTIN definition name) using SE19
    3. Write the ABAP code for UPDATE_INBOUND_EXTENSIONIN method to manage your additional customer data:
    UPDATE_INBOUND_EXTENSION: This method enables the data from the
    ExtensionIn table parameter to be processed. This parameter may contain
    customer-specific data that is either to be integrated into standard
    tables in the price catalog, or stored in customer-defined tables.
    BAPI_Table_Extensions are used for this integration into the standard
    tables from the price catalog. These are enhancement concept objects for
    BAPIs. SAP delivers them with the key elements, and customers enhance
    them for their own fields in appends. The method receives the
    Table_Extensions using the interface and then it can fill them. Once the
    entries are returned after the method has been called, they are mixed
    with the standard tables. If a customer wishes to update
    customer-defined tables, a user-defined update module can be called in
    the method and it will update the customer-defined tables.
    When the method is called, the changing parameters are empty. They may
    be filled in the method. They are used to provide customer-defined
    fields in the standard tables. If entries are made in these structures
    and tables, the 'entries_made' parameter must be set to 'X' so that the
    entries are transferred from these structures and tables to the standard
    tables in the price catalog. These parameters are BAPI table extensions.
    These structures can be enhanced in the customer system with APPENDS.
    This enhancement is exactly the same as the enhancement for the standard
    tables involved. The customer-specific fields are transexported to the
    standard tables after the method has been called using a
    MOVE_CORRESPONDING. This involves the enhancement technology that
    supports BAPIs in the standard system.
    Reward points if useful.
    Roger

  • ALV report using the field catalog

    which is the quickest way to generate an ALV report using the field catalog merge.  without needing to build the field catalog manually .
    is it easier to create a structure and passe it in the field catalog merge .  if yes can i have an example plzzzz

    hI
    Supports the creation of the field catalog for the ALV function modules
    based either on a structure or table defined in the ABAP Data
    Dictionary, or a program-internal table.
    The program-internal table must either be in a TOP Include or its
    Include must be specified explicitly in the interface.
    The variant based on a program-internal table should only be used for
    rapid prototyping since the following restrictions apply:
    o Performance is affected since the code of the table definition must
    always be read and interpreted at runtime.
    o Dictionary references are only considered if the keywords LIKE or
    INCLUDE STRUCTURE (not TYPE) are used.
    If the field catalog contains more than 90 fields, the first 90 fields
    are output in the list by default whereas the remaining fields are only
    available in the field selection.
    If the field catalog is passed with values, they are merged with the
    'automatically' found information.
    Below is an example ABAP program which will populate a simple internal table(it_ekpo) with data and
    display it using the basic ALV grid functionality(including column total). The example details the main
    sections of coding required to implement the ALV grid functionality:
                             Data declaration
                             Data retrieval
                             Build fieldcatalog
                             Build layout setup
    *& Report  ZDEMO_ALVGRID                                               *
    *& Example of a simple ALV Grid Report                                 *
    *& The basic requirement for this demo is to display a number of       *
    *& fields from the EKKO table.                                         *
    REPORT  zdemo_alvgrid                 .
    TABLES:     ekko.
    type-pools: slis.                                 "ALV Declarations
    *Data Declaration
    TYPES: BEGIN OF t_ekko,
      ebeln TYPE ekpo-ebeln,
      ebelp TYPE ekpo-ebelp,
      statu TYPE ekpo-statu,
      aedat TYPE ekpo-aedat,
      matnr TYPE ekpo-matnr,
      menge TYPE ekpo-menge,
      meins TYPE ekpo-meins,
      netpr TYPE ekpo-netpr,
      peinh TYPE ekpo-peinh,
    END OF t_ekko.
    DATA: it_ekko TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,
          wa_ekko TYPE t_ekko.
    *ALV data declarations
    data: fieldcatalog type slis_t_fieldcat_alv with header line,
          gd_tab_group type slis_t_sp_group_alv,
          gd_layout    type slis_layout_alv,
          gd_repid     like sy-repid.
    *Start-of-selection.
    START-OF-SELECTION.
    perform data_retrieval.
    perform build_fieldcatalog.
    perform build_layout.
    perform display_alv_report.
    *&      Form  BUILD_FIELDCATALOG
    *       Build Fieldcatalog for ALV Report
    form build_fieldcatalog.
    * There are a number of ways to create a fieldcat.
    * For the purpose of this example i will build the fieldcatalog manualy
    * by populating the internal table fields individually and then
    * appending the rows. This method can be the most time consuming but can
    * also allow you  more control of the final product.
    * Beware though, you need to ensure that all fields required are
    * populated. When using some of functionality available via ALV, such as
    * total. You may need to provide more information than if you were
    * simply displaying the result
    *               I.e. Field type may be required in-order for
    *                    the 'TOTAL' function to work.
      fieldcatalog-fieldname   = 'EBELN'.
      fieldcatalog-seltext_m   = 'Purchase Order'.
      fieldcatalog-col_pos     = 0.
      fieldcatalog-outputlen   = 10.
      fieldcatalog-emphasize   = 'X'.
      fieldcatalog-key         = 'X'.
    *  fieldcatalog-do_sum      = 'X'.
    *  fieldcatalog-no_zero     = 'X'.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'EBELP'.
      fieldcatalog-seltext_m   = 'PO Item'.
      fieldcatalog-col_pos     = 1.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'STATU'.
      fieldcatalog-seltext_m   = 'Status'.
      fieldcatalog-col_pos     = 2.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'AEDAT'.
      fieldcatalog-seltext_m   = 'Item change date'.
      fieldcatalog-col_pos     = 3.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'MATNR'.
      fieldcatalog-seltext_m   = 'Material Number'.
      fieldcatalog-col_pos     = 4.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'MENGE'.
      fieldcatalog-seltext_m   = 'PO quantity'.
      fieldcatalog-col_pos     = 5.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'MEINS'.
      fieldcatalog-seltext_m   = 'Order Unit'.
      fieldcatalog-col_pos     = 6.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'NETPR'.
      fieldcatalog-seltext_m   = 'Net Price'.
      fieldcatalog-col_pos     = 7.
      fieldcatalog-outputlen   = 15.
      fieldcatalog-do_sum      = 'X'.        "Display column total
      fieldcatalog-datatype     = 'CURR'.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'PEINH'.
      fieldcatalog-seltext_m   = 'Price Unit'.
      fieldcatalog-col_pos     = 8.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
    endform.                    " BUILD_FIELDCATALOG
    *&      Form  BUILD_LAYOUT
    *       Build layout for ALV grid report
    form build_layout.
      gd_layout-no_input          = 'X'.
      gd_layout-colwidth_optimize = 'X'.
      gd_layout-totals_text       = 'Totals'(201).
    *  gd_layout-totals_only        = 'X'.
    *  gd_layout-f2code            = 'DISP'.  "Sets fcode for when double
    *                                         "click(press f2)
    *  gd_layout-zebra             = 'X'.
    *  gd_layout-group_change_edit = 'X'.
    *  gd_layout-header_text       = 'helllllo'.
    endform.                    " BUILD_LAYOUT
    *&      Form  DISPLAY_ALV_REPORT
    *       Display report using ALV grid
    form display_alv_report.
      gd_repid = sy-repid.
      call function 'REUSE_ALV_GRID_DISPLAY'
           exporting
                i_callback_program      = gd_repid
    *            i_callback_top_of_page   = 'TOP-OF-PAGE'  "see FORM
    *            i_callback_user_command = 'USER_COMMAND'
    *            i_grid_title           = outtext
                is_layout               = gd_layout
                it_fieldcat             = fieldcatalog[]
    *            it_special_groups       = gd_tabgroup
    *            IT_EVENTS                = GT_XEVENTS
                i_save                  = 'X'
    *            is_variant              = z_template
           tables
                t_outtab                = it_ekko
           exceptions
                program_error           = 1
                others                  = 2.
      if sy-subrc <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      endif.
    endform.                    " DISPLAY_ALV_REPORT
    *&      Form  DATA_RETRIEVAL
    *       Retrieve data form EKPO table and populate itab it_ekko
    form data_retrieval.
    select ebeln ebelp statu aedat matnr menge meins netpr peinh
    up to 10 rows
      from ekpo
      into table it_ekko.
    endform.                    " DATA_RETRIEVAL

  • Help wanted - step by step process on how to use two ipods on one computer

    I'm just in the process of getting an ipod (waiting on delivery!) and want to know how it is possible to have two ipods using the same computer but synchronizing differently. I don't want to risk losing my partners music (he'll be very upset!) and I don't want to end up with his music on my ipod. I'd appreciate it if someone could give me a step by step guide or tell me where the best place to look for the answer is. Is it possible somehow to have two different libraries on one computer? Is that how it works?

    There are a couple of methods for using more than one iPod on a single computer. Have a look at the article linked below. Method one is to have two Mac or Windows user accounts which by definition would give you two completely separate libraries. Method two as Chris has already described above is to set your preferences so each iPod is updated with only certain playlists within one library. Have a look anyway and see what you think and go for whichever you feel suits your needs best: How To Use Multiple iPods with One Computer

Maybe you are looking for

  • How to move items from one list to other

    hi all, in jsp page i have twolist boxes. i want to move item from one list to other list on click of add or move button. can u plz suggest me an answer for the above. thank u Regards sangeet

  • Question on Analytical Function

    With below data create table Orders order_no number, item_code varchar2(100) insert into orders values (1, 'Item-1'); insert into orders values (1, 'Item-2'); insert into orders values (1, 'Item-3'); insert into orders values (2, 'Item-7'); insert in

  • How can I break a PDF into several PDFs of just a few pages?

    I have a large pdf of about 30 pages broken into several pdf's of just a few pages each.  How can I accomplish this?

  • No PST quorum in group 1 (VMware)

    Hi, I set up a lab with two vm (vmware workstation) with RHEL5 and Oracle 10g to work with RAC. Now I'm having trouble configuring ASM, in one instance I can create a diskgroup but the other does not work in the ALERT message appears: ERROR: PST quor

  • Error oracle.apps.fnd.framework.OAException: Application:  in jdev

    Hello, I am facing one error in jdev . while running the OAF page suddenly i am getting following error. Yesterday it was working fine and even I have not changed anything. Even Toolbox tutorial pages are erroring out with this error. My connection s