Shouldn't the jsp print out initilisation parameters?

This program is printing out the initialisation parameters as I thought it would:
<HTML><HEAD><TITLE>JSP Prints All Parameters</TITLE></HEAD><BODY>
<%@ page import="java.util.Enumeration"%>
<H2> Print all initialization parameters </H2>
<UL>
<% Enumeration parameters = config.getInitParameterNames();
while (parameters.hasMoreElements()) {
String name = (String)parameters.nextElement();
%> <LI> <%=name%> = <%=config.getInitParameter(name)%>
<% } %>
</UL>
</BODY></HTML>
The out put of the jsp just gives "Print all initialization parameters" at header level 2. Shouldn't it also print out any initialisation parameters????

Where is it getting the config data?From the <init-param> elements in the <servlet> definition in web.xml. You also need a <servlet-mapping> entry to make sure that the server can map to the right entry. e.g.
  <servlet>
    <servlet-name>testInit</servlet-name>
    <display-name>Testing Init parms</display-name>
    <jsp-file>/TestInit.jsp</jsp-file>
    <init-param>
      <param-name>myInitParam</param-name>
      <param-value>Value number 1</param-value>
    </init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>testInit</servlet-name>
    <url-pattern>/TestInitMap.jsp</url-pattern>
  </servlet-mapping>Assume that the jsp is called TestInit.jsp and web.xml includes the entries above.
If the URL is .../TestInitMap.jsp, then the server maps to the testInit entry, invokes TestInit.jsp which then displays the init-param.
If the URL is .../TestInit.jsp, then the server uses the default *.jsp mapping and maps directly to TestInit.jsp which will NOT display the init-param because the testInit <servlet> entry was not involved in the mapping.
The use of /TestInitMap.jsp here was to help explain the example. You would probably use /TestInit.jsp in the <servlet-mapping> as well so the URL could be .../TestInit.jsp and have access to the init params.

Similar Messages

  • HT203164 I used to be able to print labels for burned CDs with the cover being the playlist name and the other side the song titles...now the titles print out compacted, overlapping each other and illegible. I thought it was the printer but it happened w/

    I used to be able to print labels for burned CDs with the cover being the playlist name and the other side the song titles...now the titles print out compacted, overlapping each other and illegible. I thought it was the printer but it happened w/1 other printer as well,  which I used before for this exact thing w/no problem.

    Try cleaning the print head with rubbing alcohol wipe, then replace your print head. Keep pushing the Ok. 
    Go to this link and HP shows you how.
    support.hp.com/us-en/document/c01643079
    Lucky for me it worked!

  • Problem with the jsp printing

    Can anyone help me please with jsp i have the following problem can you help me.
    This is my console printing:
    null16-08-2006 REPLY TIME: 14:34:32
    REPLY : Hinknff
    null16-08-2006 REPLY TIME: 14:36:34
    REPLY : Hu jjdfgf
    null16-08-2006 REPLY TIME: 14:39:57
    REPLY : ffffffffffffffffff
    but this is my webpriniting:
    null16-08-2006 REPLY TIME: 14:34:32 REPLY : Hinknff null16-08-2006 REPLY TIME: 14:36:34 REPLY : Hu jjdfgf null16-08-2006 REPLY TIME: 14:39:57 REPLY : ffffffffffffffffff null16-08-2006 REPLY TIME: 14:44:58 REPLY : nnnnngf REPLY DATE:16-08-2006 REPLY TIME: 15:45:18 REPLY : Replughjfgjgf REPLY DATE:16-08-2006 REPLY TIME: 15:47:39 REPLY : Rn,kgdfg REPLY DATE:16-08-2006 REPLY TIME: 15:49:48 REPLY : Rngm,ng,df
    that is i am not getting it in web as i get in console can you please help me how can i do that.
    below is the partial code for printing in which i have used vector,strings only.
    String qu = nn2.elementAt(j)+"";
    String re = nn3.elementAt(j)+"";
    String b= qu;
    String b1 = re
    System.out.println(b1);
    String redt1 = nn4.elementAt(j)+"";
    if(redt1.equals("No Reply")){
    redt.append(redt1);
    retime.append(redt1);
    else
    String redtt=redt1.substring(8,10);
              String remonth=redt1.substring(5,7);
              String reyear=redt1.substring(0,4);
              String rehh=redt1.substring(11,13);
              String remm=redt1.substring(14,16);
              String ress=redt1.substring(17,19);
    redt.append(redtt+"-"+remonth+"-"+reyear);
    retime.append(rehh+":"+remm+":"+ress);
    } %>
    <br>
    <table>      
    <tr">
    <td>
    <b>Query Posted Date</b>
    <%out.println(qudt);%>
    <b>Query Posted Time :</b>
    <%out.println(qutime);%>
    <br>
    <b style="font-family:verdana;font-size:80%;color:green">Query :</b>
    <%out.println(b);
    %>
    </td>
    </tr>
    </table>
    <br>
    <table>
    <tr bgcolor="rgb(174,174,250)">
    <td>
    <b>Last Reply Posted Date</b>
    <%out.println(redt);%>
    <b>Last Reply Posted Time :</b>
    <%out.println(retime);%>
    <br>
    <b style="font-family:comicscans;font-size:80%;color:Red">Reply :</b>
    <%
    out.println(b1);
    int qudtsize = qudt.length();
    qudt.delete(0,qudtsize);
    int qutimesize = qutime.length();
    qutime.delete(0,qutimesize);
    int redtsize = redt.length();
    redt.delete(0,redtsize);
    int retimesize = retime.length();
    retime.delete(0,retimesize);
    %>
    <br>
    </td>
    </tr>
    </table>
    <br>
    <% }
    connection.close();
    }catch(SQLException e)
    e.printStackTrace();
    %>
    <input type="submit" value="Back" onClick="calljsp1()"/>
    </form>
    </body>
    </html>

    Hi.
    Even i am getting the similar exception. The JSP report works fine on Oracle 9iDS. But throws following exception in Oracle 9iAS. I have already tried recompiling, etc but to no avail.
    Any help in this regard is highly appreciated.
    javax.servlet.jsp.JspException: rwlib-1: REP-1247: Report contains uncompiled PL/SQL.
    javax.servlet.jsp.JspException: rwlib-1: REP-1247: Report contains uncompiled PL/SQL.
    at oracle.reports.jsp.ObjectsTag.doEndTag(ObjectsTag.java:180)
    at examples.tools._fapsreports._StudentReimbursementScheduleExcelReport._jspService(_StudentReimbursementScheduleExcelReport.java:80)
    at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:56)
    at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:302)
    at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:407)
    at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:330)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:336)
    at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:59)
    at oracle.security.jazn.oc4j.JAZNFilter.doFilter(JAZNFilter.java:283)
    at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:535)
    at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:281)
    at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:766)
    at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:152)
    at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:72)
    at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:802)
    at java.lang.Thread.run(Thread.java:484)

  • Contact name is wrong in the invoice print out

    Hi folks,
    contact person name is wrong in the invoice pint out,but in sales doc the sales group number and name is correct.
    what is the solution for tha above issue?
    Regards
    srinivas

    Dear Srinivas,
    Please check the name of the contact person in the Customer master data -->General data -->Contact person tab.
    If it is correct then take help of ABAPer to find the cause through Output program.
    I hope this will help you,
    Regards,
    Murali.

  • Printing OUT MODE Parameters

    Hi Experts,
    I am executing a procedure in the package and printing values but i am getting an error below
    execution
    =======
    variable o_status number;
    variable o_ename1 varchar2;
    DECLARE
       i_internal_id   NUMBER (4)             := 7839;
          o_ename1         test_pkg.list_of_ename;
       o_job1          test_pkg.list_of_jobs;
    BEGIN
       test_pkg.available_disciplines (i_internal_id, :o_ename1, o_job1, :o_status);
       dbms_output.put_line('Internal_id Is'||i_internal_id );
    END;
    PRINT o_status;
    print o_ename1;
    ORA-06550: line 6, column 4:
    PLS-00306: wrong number or types of arguments in call to 'AVAILABLE_DISCIPLINES'
    ORA-06550: line 6, column 4:
    PL/SQL: Statement ignored
    CREATE OR REPLACE package  body   TEST.test_pkg
    as
    procedure available_disciplines(i_internal_id in emp.empno%type,
                                    o_ename   out nocopy list_of_ename,
                                    o_job   out nocopy list_of_jobs,
                                    o_status      out nocopy number)
    as
    begin
    select distinct ename,job
    bulk collect into o_ename,o_job
    from emp
    where deptno =10 and empno=i_internal_id;
    for i in o_ename.first..o_ename.last loop
      dbms_output.put_line(o_ename(i));
      for j in o_job.first..o_job.last loop
       dbms_output.put_line(o_job(j));
       end loop;
      end loop;
      o_status :=250;
    EXCEPTION
      when others then
        o_status := SQLCODE;
    end available_disciplines;
    end test_pkg;

    sorry frank
    Please find package spec below
    {code}{code}
    CREATE OR REPLACE package TEST.test_pkg
    as
    type list_of_ename  is table of  emp.ename%type index by binary_integer;
    type list_of_jobs is table of emp.job%type index by binary_integer;
    procedure available_disciplines(i_internal_id in emp.empno%type,
                                    o_ename   out nocopy list_of_ename,
                                    o_job   out nocopy list_of_jobs,
                                    o_status      out nocopy number);
    end test_pkg;
    {code}{code}
    i tried even in this way but no luck
    /* Formatted on 2013/08/15 19:40 (Formatter Plus v4.8.8) */
    VARIABLE o_ename1 test_pkg.list_of_ename;
    DECLARE
       i_internal_id   NUMBER (4)             := 7839;
       o_ename1        test_pkg.list_of_ename;
       o_job1          test_pkg.list_of_jobs;
    BEGIN
       test_pkg.available_disciplines (i_internal_id,
                                       :o_ename1,
                                       o_job1,
                                       o_status
       DBMS_OUTPUT.put_line ('Internal_id Is' || i_internal_id);
    END;
    PRINT o_ename1;
    Error at line 2
    ORA-01008: not all variables bound
    i am unable to print the o_ename values in the output.
    could you please help me on this.

  • How to using the JSP print the byte[] or byte?

    how to do?

    this byte[]'s content is a PIC,if let this byte[] to string did print is character string, not the PIC.you see?:)

  • I sent an invoice from my iPad, it prints out 3 pages. I don't want the salutation printed out

    HP Officejet 6600 wireless e print & Apple iPad
    This question was solved.
    View Solution.

    Daizy, is the salutation page part of the invoice? And are you using AirPrint or ePrint to process this request?
    Generally speaking, your options are limited to what the application or service allows, and most do not allow you to only print selected pages. In this case, unless you work with a third party application which allows printing and has this feature, you will not be able to avoid printing the salutation.
    Let me know if this information is useful!

  • Pages are not printing out correctly. I have tried to fix in the options, with no luck. It prints out with spaces in between the letters.

    When I go to print any page from an email, webpage, pdf file..the pages print out very wide fonts to the point where it is unreadable. I have tried to fix in the options with no luck. I can provide you with visuals if you need me to.

    Thanks very much! It works! The print / review print - print works like it is supposed to. The print is corrected and works great. Thanks again.

  • I am trying to print out information on a Google Maps page. I have the print setting on fit to width but the page does not print that way and some of the page that would normally show on page 2 is missing.

    The page prints out fine on Internet Explorer, but not on Firefox. 2 pages are supposed to print out but only 1 prints. Also it does not fit to width even though that's the setting.

    That file could be set as a Launch Agent or Daemon in your ~/Library or /Library, You could try to look for it or Safeboot your computer and then empty the trash. Safebooting disables Launch Agents/Daemon and Third Party Kernal extensions. Here's the article to Safeboot OS X: What is Safe Boot, Safe Mode? - Apple Support

  • I just updated my OS to Mavericks, as well as my Pages app. Now my previously created documents print out as blank paper, even tho I can see the text on my desktop.The margins have also been altered. How do I fix this?

    I just updated to Mavericks, then updated my Pages App. Now none of my previously created documents print out, except as blank pages, even though I can see the text on the documents, but with altered margins, on my computer screen. How do I fix this so the documents print out normally again?

    Purplehiddledog wrote:
    I do backup with iCloud.  I can't wait until the new iMac is available so that I can once again have my files in more than 1 location without needing to rely solely on the cloud. 
    I also rely on iTunes and my MacBook and Time Machine as well as backing up to iCloud. I know many users know have gone totally PC free, but I chose to use iCloud merely as my third backup.
    I assume that the restore would result in my ability to open Pages and Numbers and fix the problem with deleting apps, but this would also mean that if my Numbers documents still exist solely within the app and are just not on iCloud for some reason that they would be gone forever.  Is that right?
    In a word, yes. In a little more detail.... When you restore from an iCloud backup, you must erase the device and start all over again. There is no other way to access the backup in iCloud without erasing the device. Consequently, you are starting all over again. Therefore, it would also be my assumption that Pages and Numbers will work again and that the deleting apps issues would be fixed as well.
    If the documents are not in the backup, and you do not have a backup elsewhere, the documents could be gone forever.

  • Quotaion text print out

    Dear All,
    i want to include the text determination in quotation, the content typed in the quotation should be reflect in the quotation print out.
    e.g in quoation i  type say ..
    20 % intitail paymnet , 30 % payment on installation and rest upon the delivery.
    appreciate inputs.
    thanks and Regards
    Praveen

    Include new Header text using VOTXN ,sales document - header , create new TxPrc, create new text ID's in text procedure.
    Create new access sequence , assign access sequence to new text ID.
    Assing this text procedure to the sales document type.
    The text entered will be stored in function module - Read_text with input parameteres VBBK, Sales Doc number.
    You can take your ABAP er''s help to print this in the smartform for quotation output.

  • Why does ical print out starting tuesday?

    Why does ical print out staring the week on tuesday?
    Maybe the week starts one day later for the Yosemite dev team, but certainly not in my neck of the woods.
    The actual print out also looks nothing like the new matt and  'flat' graphic style of Yosemite.
    I suggest you start on monday next week and sort these issues out.
    Sunny

    For many people that is the correct option. If you think it should be different, tell Apple, as they aren't listening here.

  • Print out

    Helo SAP Experts,
    Kindly help me for the following Print outs in SAP. Tell Me how to do in SAP?
    1) Purchase Requisition
    2) Request For Quotation
    3) Purchase Order
    3) Price Comparison Print out
    4) Goods Receipt Note
    It is very urgent requirement for our client.
    Thanks and regards,
    Ramanar

    Dear,
    Purchase requisition is an internal documentso ,so no use of taking printout.
    For purchase order out put can be taken nthrough T-code ME9F,Prior to this you need to create condition record through MN04.
    For Quotation  out put can be taken through T-code ME9A,Prior to this you need to create condition record through MN01.
    For Material document out put can be taken through T-code MB02 or MB90,Prior to this you need to create condition record through MN21.
    Regards

  • Print out every delivery

    Dear All.
    Till this day the duty-form for a company were performed through a
    special Form Program, it is performed via processing routines.
    The first Form Routine's name is entry.
    Form was printed-out for each Transport up to now.
    Current Requirements are for next time as follows:
    Printing out one form for every delivery (shipment) instead of
    for each Transport as so far. Please notice one Transport may
    consist of many deliveries (Shipment). 1 Transport : n Shipment.
    DATA:
          lc_wa_usrdata  TYPE /Z2a/ty_lw_usrdata.
    INCLUDE rvadtabl.
    SET EXTENDED CHECK OFF.
    TABLES: vbpla, thead, ttxer, ttxit, t005, vbddl, stxh, sadr."SADR40A
    INCLUDE vttkdata.                      "Shipment Header
    INCLUDE vttsdata.                      "Shipment Segment
    INCLUDE vttpdata.                      "Shipment Items
    INCLUDE vbpadata.                      "Partner
    INCLUDE vtfadata.                      "Flow
    INCLUDE sadrdata.                      "Address
    INCLUDE vtlfdata.                      "Delivery Selection
    INCLUDE vsedata.                       "shipping units
    INCLUDE rv56acom.                      "I/O-Structure
    SET EXTENDED CHECK ON.
    TABLES: /Z2a/tv_schein.
    FORM entry USING return_code us_screen.
      DATA: lf_retcode TYPE sy-subrc.
      screen = us_screen.
      PERFORM processing USING    us_screen
                         CHANGING lf_retcode.
      IF lf_retcode NE 0.
        return_code = 1.
      ELSE.
        return_code = 0.
      ENDIF.
    ENDFORM.
    FORM processing USING    proc_screen
                    CHANGING cf_retcode.
      DATA: ls_print_data_to_read TYPE ledlv_print_data_to_read.
      DATA: ls_dlv_delnote        TYPE ledlv_delnote.
      DATA: lf_fm_name            TYPE rs38l_fnam.
      DATA: ls_control_param      TYPE ssfctrlop.
      DATA: ls_composer_param     TYPE ssfcompop.
      DATA: ls_recipient          TYPE swotobjid.
      DATA: ls_sender             TYPE swotobjid.
      DATA: lf_formname           TYPE tdsfname.
      DATA: ls_addr_key           LIKE addr_key.
      DATA: ls_header             LIKE /Z2a/ss_pv_kopf.
      DATA: tb_daten              LIKE /Z2a/ss_pv_daten OCCURS 1.
      DATA: lc_va_lfnr            TYPE nrlevel.
      DATA: lc_va_year            TYPE char4.
      DATA: lc_va_keyseg_pv       TYPE /dca/p000_keyseg.
      DATA: lc_tb_bwdat_pv        TYPE /dca/p000_ty_tb_bwdat.
      DATA: lc_wa_bwdat_pv        TYPE /dca/p000_ty_wa_bwdat.
      DATA: lc_wa_bwm_res_pv      TYPE /Z2a/dat_cu_pvschein.
      DATA: lc_va_lifnr           TYPE kunnr.
      DATA: lc_va_nr              TYPE nrnr.
      DATA: lc_va_anz             TYPE /Z2a/anz_pv.
      DATA: lc_va_no              TYPE /Z2a/anz_kein_pv.
      DATA: lc_wa_pvschein        LIKE /Z2a/tv_schein.
      DATA: lc_va_line            LIKE sy-tabix.
      DATA: lc_va_flag_zoll       TYPE segal,
            lc_va_rqident         TYPE rspoid,
            lc_va_vsart           TYPE vsarttr,
            lc_va_tknum           TYPE tknum.
      DATA: lc_va_obj             TYPE nrobj.
      DATA: lc_va_printer         TYPE rspopname.
      DATA: lc_va_pv_kz           TYPE char4.
      DATA: lc_va_tplst           TYPE tplst.
    * SmartForm from customizing table TNAPR
      lf_formname = tnapr-sform.
    * determine print data
      PERFORM set_print_data_to_read USING    lf_formname
                                     CHANGING ls_print_data_to_read
                                     cf_retcode.
      IF cf_retcode = 0.
    * select print data
        PERFORM get_data_pv TABLES   tb_daten
                            CHANGING ls_header
                                     lc_va_flag_zoll
                                     lc_va_vsart
                                     lc_va_tplst
                                     cf_retcode.
      ENDIF.
      lc_va_tknum = nast-objky.
      IF cf_retcode = 0.
      ELSE.
        PERFORM protocol_nast_update.
        cf_retcode = 4.
        EXIT.
      ENDIF.
      IF cf_retcode = 0.
    * determine smartform function module for delivery note
        CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
             EXPORTING  formname           = lf_formname
             IMPORTING  fm_name            = lf_fm_name
             EXCEPTIONS no_form            = 1
                        no_function_module = 2
                        OTHERS             = 3.
        IF sy-subrc <> 0.
        ENDIF.
      ENDIF.
      DESCRIBE TABLE tb_daten LINES lc_va_line.
      IF lc_va_line <> 0.
        lc_va_pv_kz = 'JA'.
        SELECT SINGLE lifnr
          FROM vtpa
          INTO lc_va_lifnr
         WHERE vbeln = nast-objky
           AND parvw = 'YL'.
        lc_va_keyseg_pv = ls_header-kunnr.
        lc_va_keyseg_pv+10(10) = lc_va_lifnr.
        lc_va_keyseg_pv+20(2)  = lc_va_vsart.
        lc_va_keyseg_pv+22(4)  = lc_va_pv_kz.
        CALL FUNCTION '/ZTR/P000_MCDATA_FROM_'
             EXPORTING
                  cv_va_keytyp = '/Z2a/KEY_CU_PVSCHEIN'
                  cv_va_keyseg = lc_va_keyseg_pv
             TABLES
                  cr_tb_bwdat  = lc_tb_bwdat_pv.
        IF lc_tb_bwdat_pv[] IS INITIAL.
          cf_retcode = 4.
        ELSE.
          LOOP AT lc_tb_bwdat_pv INTO lc_wa_bwdat_pv.
            lc_wa_bwm_res_pv = lc_wa_bwdat_pv-datseg.
            lc_va_obj = lc_wa_bwm_res_pv(10).
            lc_va_nr  = lc_wa_bwm_res_pv+10(2).
            lc_va_anz = lc_wa_bwm_res_pv+12(8).
            lc_va_printer  = lc_wa_bwm_res_pv+20(4).
            SELECT SINGLE pvno
              FROM /Z2a/tv_schein
              INTO lc_va_lfnr
             WHERE tknum = nast-objky.
            IF sy-subrc = 0.
            ELSE.
              CALL FUNCTION 'NUMBER_GET_NEXT'
                EXPORTING
              nr_range_nr                   = lc_va_nr
              object                        = lc_va_obj
               IMPORTING
                 number                     = lc_va_lfnr
              IF sy-subrc <> 0.
              ENDIF.
            ENDIF.
          ENDLOOP.
        ENDIF.
    *   call smartform delivery note
        ls_composer_param-tddest = lc_va_printer.
    *    ls_control_param-device  = lc_va_printer.
        lc_va_year = sy-datum(4).
        PERFORM set_print_param USING    ls_addr_key
                                         lc_va_lfnr
                                CHANGING ls_control_param
                                         ls_composer_param
                                         ls_recipient
                                         ls_sender
                                         cf_retcode.
        lc_wa_usrdata-mandt  = sy-mandt.
        lc_wa_usrdata-udate  = sy-datum.
        lc_wa_usrdata-uzeit  = sy-uzeit.
        lc_wa_usrdata-usr    = sy-uname.
        lc_wa_usrdata-sysid  = sy-sysid.
        DO lc_va_anz TIMES.
          CALL FUNCTION lf_fm_name
               EXPORTING
                        archive_index        = toa_dara
                        archive_parameters   = arc_params
                        control_parameters   = ls_control_param
                        mail_recipient       = ls_recipient
                        mail_sender          = ls_sender
                        output_options       = ls_composer_param
                        user_settings        = ' '
                        ls_header            = ls_header
                        lc_va_lfnr           = lc_va_lfnr
                        lc_va_year           = lc_va_year
                        lc_va_tplst          = lc_va_tplst
                        lc_wa_usrdata        = lc_wa_usrdata
              TABLES
                        tb_daten             = tb_daten
             EXCEPTIONS formatting_error     = 1
                        internal_error       = 2
                        send_error           = 3
                        user_canceled        = 4
                        OTHERS               = 5.
          IF sy-subrc <> 0.
          ENDIF.
        ENDDO.
      ELSE.
        lc_va_pv_kz = 'NEIN'.
        SELECT SINGLE lifnr
          FROM vtpa
          INTO lc_va_lifnr
         WHERE vbeln = nast-objky
           AND parvw = 'YL'.
        lc_va_keyseg_pv = ls_header-kunnr.
        lc_va_keyseg_pv+10(10) = lc_va_lifnr.
        lc_va_keyseg_pv+20(2)  = lc_va_vsart.
        lc_va_keyseg_pv+22(4)  = lc_va_pv_kz.
        CALL FUNCTION '/ZTR/P000_MCDATA_FROM_'
             EXPORTING
                  cv_va_keytyp = '/Z2a/KEY_CU_PVSCHEIN'
                  cv_va_keyseg = lc_va_keyseg_pv
             TABLES
                  cr_tb_bwdat  = lc_tb_bwdat_pv.
        IF lc_tb_bwdat_pv[] IS INITIAL.
          cf_retcode = 4.
        ELSE.
          LOOP AT lc_tb_bwdat_pv INTO lc_wa_bwdat_pv.
            lc_wa_bwm_res_pv = lc_wa_bwdat_pv-datseg.
            lc_va_obj = lc_wa_bwm_res_pv(10).
            lc_va_nr  = lc_wa_bwm_res_pv+10(2).
            lc_va_anz = lc_wa_bwm_res_pv+12(8).
            lc_va_printer  = lc_wa_bwm_res_pv+20(4).
            SELECT SINGLE pvno
              FROM /Z2a/tv_schein
              INTO lc_va_lfnr
             WHERE tknum = nast-objky.
            IF sy-subrc = 0.
              UPDATE /Z2a/tv_schein
              SET flag_pv = ' '
              WHERE tknum = nast-objky.
            ELSE.
    * laufende nummer füllen, bei keinen PV-Teilen Nummernkreis 99
              CALL FUNCTION 'NUMBER_GET_NEXT'
                EXPORTING
              nr_range_nr                   = lc_va_nr
              object                        = lc_va_obj
    *    QUANTITY                      = '1'
    *   SUBOBJECT                     = ' '
    *   TOYEAR                        = '0000'
    *   IGNORE_BUFFER                 = ' '
               IMPORTING
                 number                     = lc_va_lfnr
    *   QUANTITY                      =
    *   RETURNCODE                    =
    * EXCEPTIONS
    *   INTERVAL_NOT_FOUND            = 1
    *   NUMBER_RANGE_NOT_INTERN       = 2
    *   OBJECT_NOT_FOUND              = 3
    *   QUANTITY_IS_0                 = 4
    *   QUANTITY_IS_NOT_1             = 5
    *   INTERVAL_OVERFLOW             = 6
    *   BUFFER_OVERFLOW               = 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.
            ENDIF.
          ENDLOOP.
          lc_va_year = sy-datum(4).
          ls_composer_param-tddest = lc_va_printer.
          PERFORM set_print_param USING    ls_addr_key
                                           lc_va_lfnr
                                  CHANGING ls_control_param
                                           ls_composer_param
                                           ls_recipient
                                           ls_sender
                                           cf_retcode.
          lc_wa_usrdata-mandt  = sy-mandt.
          lc_wa_usrdata-udate  = sy-datum.
          lc_wa_usrdata-uzeit  = sy-uzeit.
          lc_wa_usrdata-usr    = sy-uname.
          lc_wa_usrdata-sysid  = sy-sysid.
          DO lc_va_anz TIMES.
            CALL FUNCTION lf_fm_name
                 EXPORTING
                          archive_index        = toa_dara
                          archive_parameters   = arc_params
                          control_parameters   = ls_control_param
                          mail_recipient       = ls_recipient
                          mail_sender          = ls_sender
                          output_options       = ls_composer_param
                          user_settings        = ' '
                          ls_header            = ls_header
                          lc_va_lfnr           = lc_va_lfnr
                          lc_va_year           = lc_va_year
                          lc_va_tplst          = lc_va_tplst
                          lc_wa_usrdata        = lc_wa_usrdata
                TABLES
                          tb_daten             = tb_daten
               EXCEPTIONS formatting_error     = 1
                          internal_error       = 2
                          send_error           = 3
                          user_canceled        = 4
                          OTHERS               = 5.
            IF sy-subrc <> 0.
            ENDIF.
          ENDDO.
        ENDIF.
      ENDIF.
      SELECT SINGLE *
        FROM /Z2a/tv_schein
        INTO lc_wa_pvschein
       WHERE tknum = nast-objky.
      IF sy-subrc = 0.
      ELSE.
        IF NOT lc_va_lfnr IS INITIAL.
          lc_wa_pvschein-mandt = sy-mandt.
          lc_wa_pvschein-tknum = nast-objky.
          INSERT INTO /Z2a/tv_schein
          VALUES lc_wa_pvschein.
          UPDATE /Z2a/tv_schein SET
          pvno  = lc_va_lfnr
          vsart = lc_va_vsart
          exti1 = ls_header-schiffname
          signi = ls_header-siegel
          flag_zoll = lc_va_flag_zoll
          exti2 = ls_header-contnr
          lifex = ls_header-mbcnr
          dalen = ls_header-dalen
          dptbg = ls_header-dptbg
          kunnr = ls_header-kunnr
          add03 = ls_header-add03
          parnr = lc_va_lifnr
          datum_druck = sy-datum
          uzeit_druck = sy-uzeit
          ernam_druck = sy-ucomm
          WHERE tknum = nast-objky.
          IF tb_daten IS INITIAL.
            UPDATE /Z2a/tv_schein SET
           flag_pv = ' '
           WHERE tknum = nast-objky.
          ELSE.
            UPDATE /Z2a/tv_schein SET
            flag_pv = 'X'.
          ENDIF.
        ENDIF.
      ENDIF.
    * get SmartForm protocoll and store it in the NAST protocoll
    * PERFORM ADD_SMFRM_PROT.                       DEL_HP_335958
    ENDFORM.
    FORM get_data_pv TABLES   lc_tb_daten
                     CHANGING cs_header TYPE /Z2a/ss_pv_kopf
                              lc_va_flag_zoll TYPE segal
                              lc_va_vsart TYPE vsarttr
                              lc_va_tplst TYPE tplst
                              cf_retcode.
      TYPES: BEGIN OF ty_wa_vbeln,
             vbeln TYPE vbeln_vl,
             END OF ty_wa_vbeln,
             ty_tb_vbeln TYPE STANDARD TABLE OF ty_wa_vbeln
                         WITH DEFAULT KEY
                         INITIAL SIZE 0,
             ty_wa_lips LIKE lips,
             ty_tb_lips TYPE STANDARD TABLE OF ty_wa_lips
                        WITH DEFAULT KEY
                        INITIAL SIZE 0.
      DATA: lc_tb_cond  LIKE /Z2a/ss_pv_daten OCCURS 1.
      DATA: lc_wa_daten TYPE /Z2a/ss_pv_daten.
      DATA: lc_wa_cond  TYPE /Z2a/ss_pv_daten.
      DATA: lc_va_tknum TYPE tknum,
            lc_tb_lips  TYPE ty_tb_lips,
            lc_wa_lips  TYPE ty_wa_lips,
            lc_va_kunnr TYPE kunnr,
            lc_va_pvvkz TYPE /Z2a/pvvkz,
            lc_va_exprf TYPE exprf,
            lc_va_matnr TYPE matnr,
            lc_va_menge TYPE lfimg.
      DATA: lc_tb_vbeln TYPE ty_tb_vbeln,
            lc_wa_vbeln TYPE ty_wa_vbeln,
            lc_va_land1 TYPE land1,
            lc_va_lifnr TYPE lifnr.
      DATA: lc_va_exnum TYPE exnum.
      DATA: lc_va_keyseg TYPE /dca/p000_keyseg.
      DATA: lc_tb_bwdat  TYPE /dca/p000_ty_tb_bwdat.
      DATA: lc_wa_bwdat  TYPE /dca/p000_ty_wa_bwdat.
      DATA: lc_wa_bwm_result TYPE /Z2a/dat_cu_pvabwicklung.
      DATA language LIKE nast-spras.
      DATA shipment_number LIKE vttk-tknum.
      CLEAR cf_retcode.
    * get data
      language = nast-spras.
      shipment_number = nast-objky.
      CALL FUNCTION 'RV_SHIPMENT_PRINT_VIEW'
           EXPORTING
                shipment_number     = shipment_number
                option_tvtk         = 'X'  "Shipmenttype J/N
                option_ttds         = 'X'  "Disposition J/N
                language            = language
                option_items        = 'X'  "Transport Items J/N
                option_segments     = 'X'  "Transport Segments J/N
                option_partners     = 'X'  "Partners J/N
                option_sales_orders = 'X'  "Sales orders J/N
                option_export_data  = 'X'  "Export data J/N
                option_packages     = 'X'  "Packages J/N
                option_flow         = ' '  "Flow J/N
                option_no_refresh   = ' '  "Refresh Tables J/N
           IMPORTING
                f_vttkvb            = vttkvb  "Shipment Header
                f_tvtk              = tvtk  "Shipmenttype
                f_tvtkt             = tvtkt  "Description Shipmenttype
                f_ttds              = ttds  "Disposition
                f_ttdst             = ttdst  "Description Disposition
                f_vbpla             = vbpla  "Packages
           TABLES
                f_vttp              = xvttp  "Shipment Items
                f_trlk              = slk  "Delivery
                f_trlp              = slp  "Delivery Item
                f_vtts              = xvtts  "Shipment Segments
                f_vtsp              = xvtsp  "Segments/Items
                f_vbpa              = xvbpa  "Partner
                f_vbadr             = xvbadr  "Address
                f_vtfa              = xvtfa  "Flow
                f_vbplk             = xvbplk  "Shipment Unit Header
                f_vbplp             = xvbplp  "Shipment Unit
                f_vbpls             = xvbpls  "Shipment Unit Sum
           EXCEPTIONS
                not_found           = 1.
      cs_header-tknum      = nast-objky.
      cs_header-schiffname = vttkvb-exti1.
      cs_header-abfahrt    = vttkvb-dptbg.
      cs_header-contnr     = vttkvb-exti2.
      cs_header-normt      = vttkvb-add01.
      cs_header-siegel     = vttkvb-signi.
      cs_header-gewbr      = vttkvb-text2.
      cs_header-gewnt      = vttkvb-text3.
      cs_header-dalen      = vttkvb-dalen.
      cs_header-dptbg      = vttkvb-dptbg.
      cs_header-add03      = vttkvb-add03.
      lc_va_tplst          = vttkvb-tplst.
      lc_va_vsart = vttkvb-vsart.
      SELECT vbeln
        FROM vttp
        INTO TABLE lc_tb_vbeln
       WHERE tknum = lc_va_tknum.
      LOOP AT lc_tb_vbeln INTO lc_wa_vbeln.
        SELECT SINGLE kunnr lifex
          FROM likp
          INTO (lc_va_kunnr, cs_header-mbcnr)
         WHERE vbeln = lc_wa_vbeln-vbeln.
        SELECT *
          FROM lips
          INTO TABLE lc_tb_lips
         WHERE vbeln = lc_wa_vbeln-vbeln.
      ENDLOOP.
      LOOP AT lc_tb_lips INTO lc_wa_lips.
        SELECT SINGLE pvvkz
          FROM /Z2a/ldm_kun
          INTO lc_va_pvvkz
         WHERE kunnr = lc_va_kunnr.
        IF lc_va_pvvkz NE 'X'.
          cf_retcode = 4.
          EXIT.
        ELSE.
          SELECT SINGLE exnum segal
           FROM eikp
           INTO (lc_va_exnum, lc_va_flag_zoll)
          WHERE refnr = lc_wa_lips-vbeln.
          SELECT SINGLE exprf
            FROM eipo
            INTO lc_va_exprf
           WHERE exnum = lc_va_exnum
             AND expos = lc_wa_lips-posnr.
          lc_va_keyseg = lc_va_exprf.
          CALL FUNCTION '/ZTR/P000_MCDATA_FROM_'
               EXPORTING
                    cv_va_keytyp = '/Z2a/KEY_CU_PVABWICKLUNG'
                    cv_va_keyseg = lc_va_keyseg
               TABLES
                    cr_tb_bwdat  = lc_tb_bwdat.
          IF NOT lc_tb_bwdat[] IS INITIAL.
            LOOP AT lc_tb_bwdat INTO lc_wa_bwdat.
              lc_wa_bwm_result = lc_wa_bwdat-datseg.
              IF lc_wa_bwm_result-pv_relevant = 'X'.
    * Kumulieren
                lc_wa_cond-matnr = lc_wa_lips-matnr.
                SELECT SINGLE maktx
                  FROM makt
                  INTO lc_wa_cond-arktx
                 WHERE matnr = lc_wa_lips-matnr
                   AND spras = 'DE'.
                lc_wa_cond-menge = lc_wa_lips-lfimg.
                lc_wa_cond-me    = lc_wa_lips-meins.
                COLLECT lc_wa_cond INTO lc_tb_cond.
              ENDIF.
            ENDLOOP.
          ENDIF.
        ENDIF.
      ENDLOOP.
      cs_header-kunnr = lc_va_kunnr.
      SELECT SINGLE name1 name2 land1
        INTO (cs_header-name1,
              cs_header-name2,
              lc_va_land1)
         FROM kna1
        WHERE kunnr = lc_va_kunnr.
      SELECT SINGLE landx
        INTO cs_header-land
        FROM t005t
       WHERE spras = sy-langu
         AND land1 = lc_va_land1.
    * Sortieren Aufsteigend nach Materialnr
      SORT lc_tb_cond ASCENDING BY matnr.
    * Übergabe an Ausgabetabelle
      LOOP AT lc_tb_cond INTO lc_wa_cond.
        MOVE-CORRESPONDING lc_wa_cond TO lc_wa_daten.
        APPEND lc_wa_daten TO lc_tb_daten.
      ENDLOOP.
    ENDFORM.                    " get_data_spat
    FORM set_print_data_to_read
             USING    if_formname LIKE tnapr-sform
             CHANGING cs_print_data_to_read TYPE ledlv_print_data_to_read
                      cf_retcode.
      FIELD-SYMBOLS: <fs_print_data_to_read> TYPE xfeld.
      DATA: lt_fieldlist TYPE tsffields.
      DATA: ls_fieldlist TYPE LINE OF tsffields.
      DATA: lf_field1 TYPE LINE OF tsffields.
      DATA: lf_field2 TYPE LINE OF tsffields.
      DATA: lf_field3 TYPE LINE OF tsffields.
      CALL FUNCTION 'SSF_FIELD_LIST'
        EXPORTING
          formname                = if_formname
    *     VARIANT                 = ' '
        IMPORTING
          fieldlist               = lt_fieldlist
       EXCEPTIONS
         no_form                  = 1
         no_function_module       = 2
         OTHERS                   = 3.
      IF sy-subrc <> 0.
        cf_retcode = sy-subrc.
        CLEAR lt_fieldlist.
      ELSE.
    * set print data requirements
        LOOP AT lt_fieldlist INTO ls_fieldlist.
          SPLIT ls_fieldlist AT '-' INTO lf_field1 lf_field2 lf_field3.
    * <<<< START_OF_INSERTION_HP_350342 >>>>
          IF lf_field1 = 'IS_DLV_DELNOTE' AND lf_field2 = 'IT_SERNR'.
            lf_field2 = 'IT_SERNO'.
          ENDIF.
    * <<<< END_OF_INSERTION_HP_350342 >>>>
          ASSIGN COMPONENT lf_field2 OF STRUCTURE
                           cs_print_data_to_read TO <fs_print_data_to_read>.
          IF sy-subrc = 0.
            <fs_print_data_to_read> = 'X'.
          ENDIF.
        ENDLOOP.
    * header data is always required
        cs_print_data_to_read-hd_gen = 'X'.
    * adress is always required for print param
        cs_print_data_to_read-hd_adr = 'X'.
    * organisational data is always required for include texts
        cs_print_data_to_read-hd_org = 'X'.
      ENDIF.
    ENDFORM.                    " set_print_data_to_read
    *&      Form  set_print_param
    *       text
    *      -->P_LS_ADDR_KEY  text
    *      <--P_LS_CONTROL_PARAM  text
    *      <--P_LS_COMPOSER_PARAM  text
    *      <--P_LS_RECIPIENT  text
    *      <--P_LS_SENDER  text
    *      <--P_CF_RETCODE  text
    FORM set_print_param USING    is_addr_key LIKE addr_key
    *                              lc_va_tknum
                                  lc_va_lfnr TYPE nrlevel
                         CHANGING cs_control_param TYPE ssfctrlop
                                  cs_composer_param TYPE ssfcompop
                                  cs_recipient TYPE  swotobjid
                                  cs_sender TYPE  swotobjid
                                  cf_retcode TYPE sy-subrc.
      DATA: ls_itcpo     TYPE itcpo.
      DATA: lf_repid     TYPE sy-repid.
      DATA: lf_device    TYPE tddevice.
      DATA: ls_recipient TYPE swotobjid.
      DATA: ls_sender    TYPE swotobjid.
      DATA: lc_va_suffix TYPE rspo2name.
      lf_repid = sy-repid.
      CALL FUNCTION 'WFMC_PREPARE_SMART_FORM'
           EXPORTING
                pi_nast       = nast
                pi_addr_key   = is_addr_key
                pi_repid      = lf_repid
           IMPORTING
                pe_returncode = cf_retcode
                pe_itcpo      = ls_itcpo
                pe_device     = lf_device
                pe_recipient  = cs_recipient
                pe_sender     = cs_sender.
      SHIFT lc_va_lfnr LEFT DELETING LEADING '0'.
      CONCATENATE 'PV' lc_va_lfnr INTO lc_va_suffix.
      IF cf_retcode = 0.
        MOVE-CORRESPONDING ls_itcpo TO cs_composer_param.
        cs_composer_param-tdsuffix2   = lc_va_suffix.
        cs_control_param-device      = lf_device.
        cs_control_param-no_dialog   = 'X'.
        cs_control_param-preview     = screen.
        cs_control_param-getotf      = ls_itcpo-tdgetotf.
        cs_control_param-langu       = nast-spras.
      ENDIF.
    ENDFORM.                    " set_print_param
    FORM protocol_nast_update.
      CALL FUNCTION 'NAST_PROTOCOL_UPDATE'
           EXPORTING
                msg_arbgb = '/Z2a/PVSCHEIN'
                msg_nr    = '001'
                msg_ty    = 'E'
    *              MSG_V2    = SYST-MSGV2
    *              MSG_V3    = SYST-MSGV3
    *              MSG_V4    = SYST-MSGV4
    *              MSG_V1    = SYST-MSGV1
           EXCEPTIONS
                OTHERS    = 1.
    ENDFORM.                   

    Hello!
    I have to customize the enclosed source code so it does the following:
    print out for each shipment (see FuBa:RV_SHIPMENT_PRINT_VIEW
    parameter slp) really seperated by for every shipment item LIKP-VBELN
    and not for the whole VTTP-TKNUM.
    The parameter "slp" must be stripted so by leaving
    of the routine "get_data_pv" has only the datas of the current
    LIKP-VBELN, and in the next step taking the next LIKP-VBELN
    and so on. Right now it performs only one time for one  VTTP-TKNUM.
    If you don't understand VTTP-TKNUM and LIKP-VBELN please refer
    to Transaction SE11.
    Reagrds
    Ilhan

  • Print out of drawing and QA instructions along with PO

    Hi Gurus,
    I have a requirement of printing the material drawing and the Quality instructions along with the PO print out.
    Material drawing is to be sent to the vendor and Quality inspection instructions to the stores.
    I am updating these documents in the additional data of the material master under document data tab page. Every time PO is printed, these documents should also be printed.
    Is there any standard functionality which meets my requirement ?
    Please answer..Thanks in advance
    regards
    Kumar

    Hi,
    You have to take help of ABAP for this. It is not possible in SAP Standard.

Maybe you are looking for