Urgent info needed... help!

Hi,
I am looking for a java based component whose methods can be called by my java program (servlet) to convert a Word (MS) document to PDF. The server is windos based and the component could be commercial or free.
Any help would be highly appreciated.
Thanks in advance,
Rajesh

Why don't you try to find related applications on Hotscripts.com (http://www.hotscripts.com) and Java Boutique (http://javaboutique.internet.com). There are a lot of commerial and free applications and samples!
If you are just finding the classes. There is a vendor, Next Software (http://www.nextoffice.net/eng/index.php) which has developed application you have described. If possible, you may contact them for further information.
Good Luck!

Similar Messages

  • Urgent Problem, need help asap.

    Hello everyone,
    I'm sorry for the alarmist title, but I need help and I need it badly. Just last night, my macbook froze with nothing working. The mouse froze, the interrupt keys didn't work, nothing. I shut down the laptop, and tried to restart. I noticed a clicking sound coming from the lower left hand corner of the macbook. I'm assuming this is the hard drive.
    What happens is that there will be two clicks happening in a rythmic fashion, and after 15 second of booting up, a folder will appear with a question mark on the screen. The only thing I can do is power it down. Can someone please describe what is happening and make suggestions?
    The kicker is that I'm a college student studying in Denmark for the semester. The laptop is my only lifeline to back home. Please, any help is greatly appreciated.
    Matt

    You may have a disk failure or simply corrupted files. If you have a bootable backup that is working, then you can boot from it, erase your hard drive, then restore your backup. If not then do this:
    Repairing the Hard Drive and Permissions
    Boot from your OS X Installer disc. After the installer loads select your language and click on the Continue button. When the menu bar appears select Disk Utility from the Installer menu (Utilities menu for Tiger and Leopard.) After DU loads select your hard drive entry (mfgr.'s ID and drive size) from the the left side list. In the DU status area you will see an entry for the S.M.A.R.T. status of the hard drive. If it does not say "Verified" then the hard drive is failing or failed. (SMART status is not reported on external Firewire or USB drives.) If the drive is "Verified" then select your OS X volume from the list on the left (sub-entry below the drive entry,) click on the First Aid tab, then click on the Repair Disk button. If DU reports any errors that have been fixed, then re-run Repair Disk until no errors are reported. If no errors are reported click on the Repair Permissions button. Wait until the operation completes, then quit DU and return to the installer. Now restart normally.
    If DU reports errors it cannot fix, then you will need Disk Warrior (4.0 for Tiger, and 4.1 for Leopard) and/or TechTool Pro (4.6.1 for Leopard) to repair the drive. If you don't have either of them or if neither of them can fix the drive, then you will need to reformat the drive and reinstall OS X.
    If the drive is OK then you can reinstall OS X:
    How to Perform an Archive and Install
    An Archive and Install will NOT erase your hard drive, but you must have sufficient free space for a second OS X installation which could be from 3-9 GBs depending upon the version of OS X and selected installation options. The free space requirement is over and above normal free space requirements which should be at least 6-10 GBs. Read all the linked references carefully before proceeding.
    1. Be sure to use Disk Utility first to repair the disk before performing the Archive and Install.
    Repairing the Hard Drive and Permissions
    Boot from your OS X Installer disc. After the installer loads select your language and click on the Continue button. When the menu bar appears select Disk Utility from the Installer menu (Utilities menu for Tiger.) After DU loads select your hard drive entry (mfgr.'s ID and drive size) from the the left side list. In the DU status area you will see an entry for the S.M.A.R.T. status of the hard drive. If it does not say "Verified" then the hard drive is failing or failed. (SMART status is not reported on external Firewire or USB drives.) If the drive is "Verified" then select your OS X volume from the list on the left (sub-entry below the drive entry,) click on the First Aid tab, then click on the Repair Disk button. If DU reports any errors that have been fixed, then re-run Repair Disk until no errors are reported. If no errors are reported, then quit DU and return to the installer.
    If DU reports errors it cannot fix, then you will need Disk Warrior (4.0 for Tiger) and/or TechTool Pro (4.5.2 for Tiger) to repair the drive. If you don't have either of them or if neither of them can fix the drive, then you will need to reformat the drive and reinstall OS X.
    2. Do not proceed with an Archive and Install if DU reports errors it cannot fix. In that case use Disk Warrior and/or TechTool Pro to repair the hard drive. If neither can repair the drive, then you will have to erase the drive and reinstall from scratch.
    3. Boot from your OS X Installer disc. After the installer loads select your language and click on the Continue button. When you reach the screen to select a destination drive click once on the destination drive then click on the Option button. Select the Archive and Install option. You have an option to preserve users and network preferences. Only select this option if you are sure you have no corrupted files in your user accounts. Otherwise leave this option unchecked. Click on the OK button and continue with the OS X Installation.
    4. Upon completion of the Archive and Install you will have a Previous System Folder in the root directory. You should retain the PSF until you are sure you do not need to manually transfer any items from the PSF to your newly installed system.
    5. After moving any items you want to keep from the PSF you should delete it. You can back it up if you prefer, but you must delete it from the hard drive.
    6. You can now download a Combo Updater directly from Apple's download site to update your new system to the desired version as well as install any security or other updates. You can also do this using Software Update.

  • Urgent! Need help in deciding data structure to use

    Hi all,
    I need to implement a restaurant system by which a customer can make a reservation.
    I was wondering whether vector would be able to be store such an object, The thing is I don't want a complex data structure. just sumthin simple cos i hardly have anytime left to my submission. sighz...
    The thing is I need to able to search based on 2 properties of an object. Eg. I need to search for a reservation based on the customer name and the date he reserved a table.
    But I am totally clueless how to search thru a vector based on 2 properties of the object... Would really appreciate some help. Like an example how to so so based on my program. Feelin so lost...This is all I have so far:
    class AddReservation
         static BufferedReader stdin = new BufferedReader (new InputStreamReader(System.in));
         //Main Method
         public static void main (String[]args)throws IOException
              String custName, comments;
              int covers, date, startTime, endTime;
              int count = 0;
              //User can only add one reservation at a time
              do
                   //Create a new reservation
                   Reservation oneReservation=new Reservation();                         
                   System.out.println("Please enter customer's name:");
                   System.out.flush();
                   custName = stdin.readLine();
                   oneReservation.setcustName(custName);
                   System.out.println("Please enter number of covers:");
                   System.out.flush();
                   covers = Integer.parseInt(stdin.readLine());
                   oneReservation.setCovers(covers);
                   System.out.println("Please enter date:");
                   System.out.flush();
                   date = Integer.parseInt(stdin.readLine());
                   oneReservation.setDate(date);
                   System.out.println("Please enter start time:");
                   System.out.flush();
                   startTime = Integer.parseInt(stdin.readLine());
                   oneReservation.setstartTime(startTime);
                   System.out.println("Please enter end time:");
                   System.out.flush();
                   endTime = Integer.parseInt(stdin.readLine());
                   oneReservation.setendTime(endTime);
                   System.out.println("Please enter comments, if any:");
                   System.out.flush();
                   comments = stdin.readLine();
                   oneReservation.setComments(comments);
                   count++;
              while (count<1);
              class Reservation
              private Reservation oneReservation;
              private String custName, comments;
              private int covers, startTime, endTime, date;
              //Default constructor
              public Reservation()
              public Reservation(String custName, int covers, int date, int startTime, int endTime, String comments)
                   this.custName=custName;
                   this.covers=covers;
                   this.date=date;
                   this.startTime=startTime;
                   this.endTime=endTime;
                   this.comments=comments;
              //Setter methods
              public void setcustName(String custName)
                   this.custName=custName;
              public void setCovers(int covers)
                   this.covers=covers;;
              public void setDate(int date)
                   this.date=date;
              public void setstartTime(int startTime)
                   this.startTime=startTime;
              public void setendTime(int endTime)
                   this.endTime=endTime;
              public void setComments(String comments)
                   this.comments=comments;
              //Getter methods
              public String getcustName()
                   return custName;
              public int getCovers()
                   return covers;
              public int getDate()
                   return date;
              public int getstartTime()
                   return startTime;
              public int getendTime()
                   return endTime;
              public String getComments()
                   return comments;
    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    class searchBooking
         static BufferedReader stdin = new BufferedReader (new InputStreamReader(System.in));
         public static void main (String[]args)throws IOException
              int choice, date, startTime;
              String custName;
                   //Search Menu
                   System.out.println("Search By: ");
                   System.out.println("1. Date");
                   System.out.println("2. Name of Customer");
                   System.out.println("3. Date & Name of Customer");
                   System.out.println("4. Date & Start time of reservation");
                   System.out.println("5. Date, Name of customer & Start time of reservation");
                   System.out.println("Please make a selection: ");          
                   //User keys in choice
                   System.out.flush();
                   choice = Integer.parseInt(stdin.readLine());
                   if (choice==1)
                        System.out.println("Please key in Date (DDMMYY):");
                        System.out.flush();
                        date = Integer.parseInt(stdin.readLine());
                   else if (choice==2)
                             System.out.println("Please key in Name of Customer:");
                             System.out.flush();
                             custName = stdin.readLine();
                   else if (choice==3)
                             System.out.println("Please key in Date (DDMMYY):");
                             System.out.flush();
                             date = Integer.parseInt(stdin.readLine());
                             System.out.println("Please key in Name of Customer:");
                             System.out.flush();
                             custName = stdin.readLine();
                   else if (choice==4)
                             System.out.println("Please key in Date (DDMMYY):");
                             System.out.flush();
                             date = Integer.parseInt(stdin.readLine());
                             System.out.println("Please key in Start time:");
                             System.out.flush();
                             startTime = Integer.parseInt(stdin.readLine());
                   else if (choice==5)
                             System.out.println("Please key in Date (DDMMYY):");
                             System.out.flush();
                             date = Integer.parseInt(stdin.readLine());
                             System.out.println("Please key in Name of Customer:");
                             System.out.flush();
                             custName = stdin.readLine();
                             System.out.println("Please key in Start time:");
                             System.out.flush();
                             startTime = Integer.parseInt(stdin.readLine());
                        }

    Please stop calling your questions urgent. Everybody's question is urgent to them. Nobody's are urgent to the people who are going to answer them. Calling your questions urgent suggests that you think they are more important than others' (They're not.) and will only serve to irritate those who would help you. It won't get your questions answered any sooner.

  • Urgent info needed

    what is updating group,info structure,and update check  why we use it

    Hi,
    Update group for statistics update:--
    The update group is a control element in the updating definition, which allows all the different business events in the various applications to have a uniform influence on the statistics update in the Logistics Information System (LIS).
    In an application, one update group is allocated to a specific business event or a group of business events. This update group is then used to determine the fields which will be created for the statistics.
    The type of allocation and the organizational elements that determine how the allocation takes place vary from application to application.
    Information Structures:-
    In an information system, data aggregation is necessary in order to ensure that the user has a clear overview of key interrelationships. Since the requirements which need to be satisfied by data aggregation are determined by many different user groups, it is absolutely vital that aggregation functionality is flexible. Experience shows that various user groups need to view aggregated data from many different perspectives.
    The SAP system makes these different views possible by providing self-defined information structures.
    In the information structures, you can define your own view, by selecting the information from the operative application that you consider worthy of aggregation.
    A distinction is made between three types of information:
    Characteristics
    You can define a maximum of nine characteristics for each information structure. These characteristics form the table keys of the database table.
    Key figures
    The key figures refer to values with significance to business, which are aggregated by means of the characteristics (e.g. invoiced sales, quantity of incoming orders, order quantity, lead time).
    Period split
    The periodic cumulation of data is a further criterion for aggregation. The key figures are thus aggregated on a daily, weekly or monthly basis, or on the basis of a variable period split that is determined by the fiscal year variant.
    Update Check:--
    You can use the update log to monitor the updating of statistical data. The information displayed in the update log is user-dependent and operation-dependent.
    The update log is a tool that you can use to check updating once it has taken place, and to check the generation of the information structures and the update rules assigned to them.
    You can also use the update simulation function to monitor the update procedure. In addition, you can use update simulation to generate an update log for documents that have not caused an update.
    Reward points if u helpful
    Cheers,
    Govind.

  • Urgent I need help to restore my files

    Hi,
    In my iPhone there was a message that asked for updating the softawre. and when I tried for the update it asked me to connect with PC. I connected my iPhone with PC and it made the update (I saw the update process on the iphone screen). but the iphone did not turned on, there was a sign on the iphone screen that indicated that I have to connect the iphone to the itune, (even it was already connected to the pc), then in the itune a message appear that mentioned It is need to restore, when I pressed restore it told me are you sure you want to update and restore, I pressed yes.
    Now the iphone updated, BUT nothing remain on my iPhone.
    How I can restore my files, there was hundred of pictures, all my emails and files, many good programs, .... etc
    what I do please help?
    Thank you
    Jamal

    How do I view my Photo Stream?
    On your iPhone, iPad or iPod touch, your photos will appear in the Photos app. If you're using iOS 6 or later, you can find your photos by tapping the Photo Stream tab and then tapping the My Photo Stream album. In iOS 5, your photos are in the Photo Stream album.
    On your Mac, they appear in the Photo Stream view in iPhoto or Aperture. In iPhoto 9.4 or later or in Aperture 3.4 or later, open the My Photo Stream album in the Photo Stream view.
    On a PC, your photos download to the My Photo Stream (Download) folder. By default, this folder is located at C:\Users\\Pictures\Photo Stream\My Photo Stream. You can change this location by visiting Photo Stream Options in the iCloud Control Panel for Windows.
    On Apple TV, your photos will appear in the Photo Stream (or My Photo Stream) view under Internet in the main Apple TV menu after you sign in with your iCloud account.

  • URGENT! Need help to portalize a Strut JSP App for Portal!

    Hi,
    I have create a little application using Strut ADF. This application only have one page. Can someone tell me how to portalize this in order to deployed it in Portal. I have create my DataSource in OEM and the only thing left is to portalize this jsp.
    I have read the "How to create a Struts Portlet" but I don't understand it.
    Please help me deployed this app to Portal. Is there any tutorial about this?
    Thank you!

    try this article
    http://portalstudio.oracle.com/pls/ops/docs/FOLDER/COMMUNITY/PDK/articles/pdkstruts/portletize-your-app.html
    You will also need to download the relevant tag library for the pdk-struts extensions.
    You can also download the java portlet wizard as an add-in for jdeveloper. This makes the creation of the files (for example provider.xml) required by portal easier.

  • It's very urgent i need help in smartforms

    I need your help for smartforms. I created a smartforms in SD for getting quotations. My problem is that when I run da report it is not executing & if i run smartforms it is giving error in da functional module as - In program "/1BCDWB/SAPLSF00000003 ", the following syntax error occurred:
    "The data object "I_HEADER" does not have a component called "BNAME"."
    and more over i need a code for my my user tht when i execute this form before displaying print or printpreview i should give a popup window asking da user whether to display item code or not then i should get da print or printpreview. when the user needs item code he can print as well if he don't it should not display. this da code i return in se38 editor. In smartforms i wrote code for getting company address etc. I did not write anything in initialization.
    source code
    *& Application      :  Sales & Distribution (SD)
    *& Description      :  This report will Print Sales Order Confirmation Using Smartform
    *& Transaction Code :
    *& Area Menu Code   :  ZSD
    *& Layout           :  ZSDORDERCONF
    *& Dev.Complited On :
    REPORT  ZSDR0004.
    INCLUDE: ZSDI0003.
          S U B R O U T I N E S                                         *
    FORM ENTRY USING RETURN_CODE TYPE I
                     US_SCREEN TYPE C.
      CLEAR RETCODE.
      XSCREEN = US_SCREEN.
      PERFORM PROCESSING.
      IF RETCODE NE 0.
        RETURN_CODE = 1.
      ELSE.
        RETURN_CODE = 0.
      ENDIF.
    ENDFORM.                    "ENTRY
          FORM PROCESSING                                               *
    FORM PROCESSING.
      PERFORM GET_DATA.
      CHECK RETCODE = 0.
      PERFORM PRINT_DATA.
      CHECK RETCODE = 0.
    ENDFORM.                    "PROCESSING
          FORM CHECK_REPEAT                                             *
          A text is printed, if it is a repeat print for the document.  *
    FORM CHECK_REPEAT.
      CLEAR REPEAT.
      SELECT * INTO *NAST FROM NAST WHERE KAPPL = NAST-KAPPL
                                    AND   OBJKY = NAST-OBJKY
                                    AND   KSCHL = NAST-KSCHL
                                    AND   SPRAS = NAST-SPRAS
                                    AND   PARNR = NAST-PARNR
                                    AND   PARVW = NAST-PARVW
                                    AND   NACHA BETWEEN '1' AND '4'.
        CHECK *NAST-VSTAT = '1'.
        REPEAT = 'X'.
        EXIT.
      ENDSELECT.
    ENDFORM.                    "CHECK_REPEAT
          FORM GET_DATA                                                 *
          General provision of data for the form                        *
    FORM GET_DATA.
      DATA: US_VEDA_VBELN     LIKE VEDA-VBELN.
      DATA: US_VEDA_POSNR_LOW LIKE VEDA-VPOSN.
      DATA: DA_MESS LIKE VBFS OCCURS 0 WITH HEADER LINE.
      DATA: DA_SUBRC LIKE SY-SUBRC,
            DA_DRAGR LIKE TVAG-DRAGR.
      DATA: DA_GANF(1) TYPE C,      "Print flag for billing correction
            DA_LANF(1) TYPE C.      "Print flag for billing correction
      CALL FUNCTION 'RV_PRICE_PRINT_GET_MODE'
        IMPORTING
          E_PRINT_MODE = PRICE_PRINT_MODE.
      IF PRICE_PRINT_MODE EQ CHARA.
        CALL FUNCTION 'RV_PRICE_PRINT_REFRESH'
          TABLES
            TKOMV = TKOMV.
      ENDIF.
      CLEAR KOMK.
      CLEAR KOMP.
      VBCO3-MANDT = SY-MANDT.
      VBCO3-SPRAS = NAST-SPRAS.
      VBCO3-VBELN = NAST-OBJKY.
      VBCO3-KUNDE = NAST-PARNR.
      VBCO3-PARVW = NAST-PARVW.
      CALL FUNCTION 'RV_DOCUMENT_PRINT_VIEW'
        EXPORTING
          COMWA                       = VBCO3
        IMPORTING
          KOPF                        = VBDKA
        TABLES
          POS                         = TVBDPA
          MESS                        = DA_MESS
        EXCEPTIONS
          FEHLER_BEI_DATENBESCHAFFUNG = 1.
      IF SY-SUBRC NE 0.
        PERFORM PROTOCOL_UPDATE.
        RETCODE = 1.
        EXIT.
      ELSE.
        LOOP AT DA_MESS.
          SY-MSGID = DA_MESS-MSGID.
          SY-MSGNO = DA_MESS-MSGNO.
          SY-MSGTY = DA_MESS-MSGTY.
          SY-MSGV1 = DA_MESS-MSGV1.
          SY-MSGV2 = DA_MESS-MSGV2.
          SY-MSGV3 = DA_MESS-MSGV3.
          SY-MSGV4 = DA_MESS-MSGV4.
          PERFORM PROTOCOL_UPDATE.
        ENDLOOP.
      ENDIF.
    *Get Header Data In I_HEADER Table.
      SELECT VBAKVBELN VBAKAUDAT VBAKKUNNR VBAKWAERK
             VBAKVKORG VBAKANGDT VBAKBNDDT VBAKVBTYP
             VBAKKNUMV VBAKKALSM VBAKNETWR VBAKVKBUR
             VBAKBNAME VBKDBSTKD VBKDBSTDK VBKDINCO1
             VBKDINCO2 VBKDZTERM
             INTO CORRESPONDING FIELDS OF TABLE I_HEADER
             FROM VBAK
             JOIN VBKD ON VBKDVBELN = VBAKVBELN
             WHERE VBAK~VBELN = VBCO3-VBELN.
    **Get Address Number For Company
      IF NOT I_HEADER[] IS INITIAL.
        READ TABLE I_HEADER INDEX 1.
        SELECT SINGLE BUKRS ADRNR INTO (COMPCD, ADDCOMP)
             FROM TVKO
             WHERE VKORG = I_HEADER-VKORG.
      ENDIF.
    fill address key --> necessary for emails
      ADDR_KEY-ADDRNUMBER = VBDKA-ADRNR.
      ADDR_KEY-PERSNUMBER = VBDKA-ADRNP.
      ADDR_KEY-ADDR_TYPE  = VBDKA-ADDRESS_TYPE.
    Fetch servicecontract-data and notice-data for head and position.
      US_VEDA_VBELN     = VBDKA-VBELN.
      US_VEDA_POSNR_LOW = POSNR_LOW.
      CALL FUNCTION 'SD_VEDA_GET_PRINT_DATA'
        EXPORTING
          I_DOCUMENT_NUMBER = US_VEDA_VBELN
          I_LANGUAGE        = SY-LANGU
          I_POSNR_LOW       = US_VEDA_POSNR_LOW
        TABLES
          PRINT_DATA_POS    = TKOMSERVP
          PRINT_DATA_HEAD   = TKOMSERVH
          PRINT_NOTICE_POS  = TKOMSERVPN
          PRINT_NOTICE_HEAD = TKOMSERVHN.
      PERFORM GET_CONTROLL_DATA.
      PERFORM SENDER.
      PERFORM CHECK_REPEAT.
      LOOP AT TVBDPA.
        VBDPA = TVBDPA.
        IF VBDPA-DRAGR EQ SPACE.           "Print rejected item?
          IF VBDPA-POSNR_NEU NE SPACE.     "Item
            PERFORM GET_ITEM_SERIALS.
            PERFORM GET_ITEM_CHARACTERISTICS.
            PERFORM GET_ITEM_BILLING_SCHEDULES.
            PERFORM GET_ITEM_PRICES.
            PERFORM GET_ITEM_ADDIS.
          ENDIF.
        ENDIF.
      ENDLOOP.
    ENDFORM.                    "GET_DATA
          FORM GET_ITEM_BILLING_SCHEDULES                               *
          In this routine the billing schedules are fetched from the    *
          database.                                                     *
    FORM GET_ITEM_BILLING_SCHEDULES.
      REFRESH TFPLTDR.
      CHECK NOT VBDPA-FPLNR IS INITIAL.
      CALL FUNCTION 'BILLING_SCHED_PRINTVIEW_READ'
        EXPORTING
          I_FPLNR    = VBDPA-FPLNR
          I_LANGUAGE = NAST-SPRAS
          I_VBELN    = VBDKA-VBELN
        TABLES
          ZFPLTDR    = TFPLTDR.
    ENDFORM.                    "GET_ITEM_BILLING_SCHEDULES
    *&      FORM  GET_ITEM_ADDIS
          Additionals data are fetched from database
    FORM GET_ITEM_ADDIS.
      CLEAR: TADDI_PRINT.
      CALL FUNCTION 'WTAD_ADDIS_IN_SO_PRINT'
           EXPORTING
                FI_VBELN              = VBDKA-VBELN
                FI_POSNR              = VBDPA-POSNR
              FI_LANGUAGE           = SY-LANGU
           TABLES
                FET_ADDIS_IN_SO_PRINT = TADDI_PRINT
           EXCEPTIONS
                ADDIS_NOT_ACTIVE      = 1
                NO_ADDIS_FOR_SO_ITEM  = 2
                OTHERS                = 3.
    ENDFORM.                               " GET_ITEM_ADDIS
          FORM GET_ITEM_CHARACTERISTICS                                 *
          In this routine the configuration data item is fetched from   *
          the database.                                                 *
    FORM GET_ITEM_CHARACTERISTICS.
      DATA DA_T_CABN LIKE CABN OCCURS 10 WITH HEADER LINE.
      DATA: BEGIN OF DA_KEY,
              MANDT LIKE CABN-MANDT,
              ATINN LIKE CABN-ATINN,
            END   OF DA_KEY.
      REFRESH TKOMCON.
      CHECK NOT VBDPA-CUOBJ IS INITIAL AND
                VBDPA-ATTYP NE VAR_TYP.
      CALL FUNCTION 'VC_I_GET_CONFIGURATION'
        EXPORTING
          INSTANCE      = VBDPA-CUOBJ
          LANGUAGE      = NAST-SPRAS
          PRINT_SALES   = CHARX
        TABLES
          CONFIGURATION = TKOMCON
        EXCEPTIONS
          OTHERS        = 4.
      RANGES : DA_IN_CABN FOR DA_T_CABN-ATINN.
    Beschreibung der Merkmale wegen Objektmerkmalen auf sdcom-vkond holen
      CLEAR DA_IN_CABN. REFRESH DA_IN_CABN.
      LOOP AT TKOMCON.
        DA_IN_CABN-OPTION = 'EQ'.
        DA_IN_CABN-SIGN   = 'I'.
        DA_IN_CABN-LOW    = TKOMCON-ATINN.
        APPEND DA_IN_CABN.
      ENDLOOP.
      CLEAR DA_T_CABN. REFRESH DA_T_CABN.
      CALL FUNCTION 'CLSE_SELECT_CABN'
       EXPORTING
            KEY_DATE                     = SY-DATUM
            BYPASSING_BUFFER             = ' '
            WITH_PREPARED_PATTERN        = ' '
            I_AENNR                      = ' '
       IMPORTING
            AMBIGUOUS_OBJ_CHARACTERISTIC =
         TABLES
              IN_CABN                      = DA_IN_CABN
              T_CABN                       = DA_T_CABN
         EXCEPTIONS
              NO_ENTRY_FOUND               = 1
              OTHERS                       = 2.
    Preisfindungsmerkmale / Merkmale auf VCSD_UPDATE herausnehmen
      SORT DA_T_CABN.
      LOOP AT TKOMCON.
        DA_KEY-MANDT = SY-MANDT.
        DA_KEY-ATINN = TKOMCON-ATINN.
        READ TABLE DA_T_CABN WITH KEY DA_KEY BINARY SEARCH.
        IF SY-SUBRC <> 0 OR
           ( ( DA_T_CABN-ATTAB = 'SDCOM' AND
              DA_T_CABN-ATFEL = 'VKOND'       ) OR
            ( DA_T_CABN-ATTAB = 'VCSD_UPDATE' ) ) .
          DELETE TKOMCON.
        ENDIF.
      ENDLOOP.
    ENDFORM.                    "GET_ITEM_CHARACTERISTICS
          FORM GET_ITEM_PRICES                                          *
          In this routine the price data for the item is fetched from   *
          the database.                                                 *
    FORM GET_ITEM_PRICES.
      CLEAR: KOMP,
             TKOMV.
      IF KOMK-KNUMV NE VBDKA-KNUMV OR
         KOMK-KNUMV IS INITIAL.
        CLEAR KOMK.
        KOMK-MANDT = SY-MANDT.
        KOMK-KALSM = VBDKA-KALSM.
        KOMK-KAPPL = PR_KAPPL.
        KOMK-WAERK = VBDKA-WAERK.
        KOMK-KNUMV = VBDKA-KNUMV.
        KOMK-KNUMA = VBDKA-KNUMA.
        KOMK-VBTYP = VBDKA-VBTYP.
        KOMK-LAND1 = VBDKA-LAND1.
        KOMK-VKORG = VBDKA-VKORG.
        KOMK-VTWEG = VBDKA-VTWEG.
        KOMK-SPART = VBDKA-SPART.
        KOMK-BUKRS = VBDKA-BUKRS_VF.
        KOMK-HWAER = VBDKA-WAERS.
        KOMK-PRSDT = VBDKA-ERDAT.
        KOMK-KURST = VBDKA-KURST.
        KOMK-KURRF = VBDKA-KURRF.
        KOMK-KURRF_DAT = VBDKA-KURRF_DAT.
      ENDIF.
      KOMP-KPOSN = VBDPA-POSNR.
      KOMP-KURSK = VBDPA-KURSK.
      KOMP-KURSK_DAT = VBDPA-KURSK_DAT.
      if vbdka-vbtyp ca 'HKNOT6'.
        if vbdpa-shkzg ca ' A'.
          komp-shkzg = 'X'.
        endif.
      else.
        if vbdpa-shkzg ca 'BX'.
          komp-shkzg = 'X'.
        endif.
      endif.
      IF PRICE_PRINT_MODE EQ CHARA.
        CALL FUNCTION 'RV_PRICE_PRINT_ITEM'
          EXPORTING
            COMM_HEAD_I = KOMK
            COMM_ITEM_I = KOMP
            LANGUAGE    = NAST-SPRAS
          IMPORTING
            COMM_HEAD_E = KOMK
            COMM_ITEM_E = KOMP
          TABLES
            TKOMV       = TKOMV
            TKOMVD      = TKOMVD.
      ELSE.
        CALL FUNCTION 'RV_PRICE_PRINT_ITEM_BUFFER'
          EXPORTING
            COMM_HEAD_I = KOMK
            COMM_ITEM_I = KOMP
            LANGUAGE    = NAST-SPRAS
          IMPORTING
            COMM_HEAD_E = KOMK
            COMM_ITEM_E = KOMP
          TABLES
            TKOMV       = TKOMV
            TKOMVD      = TKOMVD.
      ENDIF.
    ENDFORM.                    "GET_ITEM_PRICES
          FORM GET_HEADER_PRICES                                        *
          In this routine the price data for the header is fetched from *
          the database.                                                 *
    FORM GET_HEADER_PRICES.
      LOOP AT TVBDPA.
        CALL FUNCTION 'SD_TAX_CODE_MAINTAIN'
          EXPORTING
            KEY_KNUMV           = VBDKA-KNUMV
            KEY_KPOSN           = TVBDPA-POSNR
            I_APPLICATION       = ' '
            I_PRICING_PROCEDURE = VBDKA-KALSM
          TABLES
            XKOMV               = TKOMV.
      ENDLOOP.
      IF PRICE_PRINT_MODE EQ CHARA.
        CALL FUNCTION 'RV_PRICE_PRINT_HEAD'
          EXPORTING
            COMM_HEAD_I = KOMK
            LANGUAGE    = NAST-SPRAS
          IMPORTING
            COMM_HEAD_E = KOMK
          TABLES
            TKOMV       = TKOMV
            TKOMVD      = TKOMVD.
      ELSE.
        CALL FUNCTION 'RV_PRICE_PRINT_HEAD_BUFFER'
          EXPORTING
            COMM_HEAD_I = KOMK
            LANGUAGE    = NAST-SPRAS
          IMPORTING
            COMM_HEAD_E = KOMK
          TABLES
            TKOMV       = TKOMV
            TKOMVD      = TKOMVD.
      ENDIF.
    ENDFORM.                    "GET_HEADER_PRICES
          FORM PRINT_DATA                                               *
          Print Quotation                                               *
    FORM PRINT_DATA.
      DATA: ls_control       TYPE ssfctrlop.
      data: OUTPUT_OPTIONS TYPE  SSFCOMPOP,cf_retcode type sy-subrc.
      DATA: ls_print_data_to_read TYPE lbbil_print_data_to_read.
      DATA: ls_addr_key           LIKE addr_key.
      DATA: ls_dlv-land           LIKE vbrk-land1.
      DATA: ls_job_info           TYPE ssfcrescl.
      DATA: ls_control_param      TYPE ssfctrlop.
      DATA: ls_composer_param     TYPE ssfcompop.
      DATA: ls_recipient          TYPE swotobjid.
      DATA: ls_sender             TYPE swotobjid.
      DATA: NAST_ANZAL LIKE NAST-ANZAL.      "Number of outputs (Orig. + Cop.)
      DATA: NAST_TDARMOD LIKE NAST-TDARMOD.  "Archiving only one time
      DATA: ls_bil_invoice TYPE lbbil_invoice.
      SELECT SINGLE SFORM INTO LF_FORMNAME
            FROM TNAPR
            WHERE KSCHL = NAST-KSCHL
            AND   NACHA = NAST-NACHA.
    *IF NAST-KSCHL = 'ZORD'.
      lf_formname = 'ZSDORDERCONF'.
    *ELSEIF NAST-KSCHL = 'ZOR1'.
      lf_formname = 'ZSDORDERCONF'.
    *ELSEIF NAST-KSCHL = 'ZOR2'.
      lf_formname = 'ZCSORDERCONF'.
      ENDIF.
    determine smartform function module for invoice
      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.
      READ TABLE I_HEADER INDEX 1.
    ls_controL-no_dialog = 'X'.
    if sy-ucomm = 'VIEW'.
    LS_CONTROL-PREVIEW = 'X'.
    endif.
      CALL FUNCTION LF_FM_NAME
        EXPORTING
          control_parameters = ls_control
          OUTPUT_OPTIONS     = OUTPUT_OPTIONS
          SO_VBELN           = I_HEADER-VBELN
          SO_AUDAT           = I_HEADER-AUDAT
          SO_REPEAT          = REPEAT
          SO_TYPE            = I_HEADER-VBTYP
          SO_CADD            = ADDCOMP
          SO_CCODE           = COMPCD
        TABLES
          I_HEADER           = I_HEADER
          TKOMV              = TKOMV
          I_ITEM             = TVBDPA
          I_XDATA            = I_XDATA
        EXCEPTIONS
          FORMATTING_ERROR   = 1
          INTERNAL_ERROR     = 2
          SEND_ERROR         = 3
          USER_CANCELED      = 4
          OTHERS             = 5.
      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.                    "PRINT_DATA
          FORM PROTOCOL_UPDATE                                          *
          The messages are collected for the processing protocol.       *
    FORM PROTOCOL_UPDATE.
      CHECK XSCREEN = SPACE.
      CALL FUNCTION 'NAST_PROTOCOL_UPDATE'
        EXPORTING
          MSG_ARBGB = SYST-MSGID
          MSG_NR    = SYST-MSGNO
          MSG_TY    = SYST-MSGTY
          MSG_V1    = SYST-MSGV1
          MSG_V2    = SYST-MSGV2
          MSG_V3    = SYST-MSGV3
          MSG_V4    = SYST-MSGV4
        EXCEPTIONS
          OTHERS    = 1.
    ENDFORM.                    "PROTOCOL_UPDATE
          FORM SENDER                                                   *
          This routine determines the address of the sender (Table VKO) *
    FORM SENDER.
      SELECT SINGLE * FROM TVKO  WHERE VKORG = VBDKA-VKORG.
      IF SY-SUBRC NE 0.
        SYST-MSGID = 'VN'.
        SYST-MSGNO = '203'.
        SYST-MSGTY = 'E'.
        SYST-MSGV1 = 'TVKO'.
        SYST-MSGV2 = SYST-SUBRC.
        PERFORM PROTOCOL_UPDATE.
        EXIT.
      ENDIF.
      CLEAR GV_FB_ADDR_GET_SELECTION.
      GV_FB_ADDR_GET_SELECTION-ADDRNUMBER = TVKO-ADRNR.         "SADR40A
      CALL FUNCTION 'ADDR_GET'
        EXPORTING
          ADDRESS_SELECTION = GV_FB_ADDR_GET_SELECTION
          ADDRESS_GROUP     = 'CA01'
        IMPORTING
          SADR              = SADR
        EXCEPTIONS
          OTHERS            = 01.
      IF SY-SUBRC NE 0.
        CLEAR SADR.
      ENDIF.                                                    "SADR40A
      VBDKA-SLAND = SADR-LAND1.
      IF SY-SUBRC NE 0.
        SYST-MSGID = 'VN'.
        SYST-MSGNO = '203'.
        SYST-MSGTY = 'E'.
        SYST-MSGV1 = 'SADR'.
        SYST-MSGV2 = SYST-SUBRC.
        PERFORM PROTOCOL_UPDATE.
      ENDIF.
    SELECT SINGLE * FROM TVBUR  WHERE VKBUR = VBDKA-VKBUR.
    IF SY-SUBRC NE 0.
       SYST-MSGID = 'VN'.
       SYST-MSGNO = '203'.
       SYST-MSGTY = 'E'.
       SYST-MSGV1 = 'TVBUR'.
       SYST-MSGV2 = SYST-SUBRC.
       PERFORM PROTOCOL_UPDATE.
    ENDIF.
    ENDFORM.                    "SENDER
    *&      Form  GET_ITEM_SERIALS
          This routine give back the serialnumbers of salesdocument      *
          position. The numbers are processed as print-lines in the      *
          table KOMSER_PRINT.                                            *
    -->  US_VBELN  Salesdocument
    -->  US_POSNR  Position of the salesdocument
    FORM GET_ITEM_SERIALS.
      DATA: KEY_DATA LIKE RSEROB,
            SERNOS LIKE RSEROB OCCURS 0 WITH HEADER LINE.
      KEY_DATA-TASER = 'SER02'.
      KEY_DATA-SDAUFNR = VBDKA-VBELN.
      KEY_DATA-POSNR = VBDPA-POSNR.
      IF KEY_DATA-SDAUFNR IS INITIAL AND NOT
         KEY_DATA-POSNR IS INITIAL.
    beim Anlegen ist Belegnummer leer - deshalb Dummy-Belegnummer
        KEY_DATA-SDAUFNR = CHAR$.
      ENDIF.
    Read the Serialnumbers of a Position.
      REFRESH: TKOMSER,
               TKOMSER_PRINT.
      CALL FUNCTION 'GET_SERNOS_OF_DOCUMENT'
        EXPORTING
          KEY_DATA            = KEY_DATA
        TABLES
          SERNOS              = SERNOS
        EXCEPTIONS
          KEY_PARAMETER_ERROR = 1
          NO_SUPPORTED_ACCESS = 2
          NO_DATA_FOUND       = 3
          OTHERS              = 4.
      IF SY-SUBRC NE 0 AND
         SY-SUBRC NE 3.
        PERFORM PROTOCOL_UPDATE.
      ENDIF.
      CHECK SY-SUBRC EQ 0.
    Serialnummern übergeben
      TKOMSER-VBELN = SERNOS-SDAUFNR.
      TKOMSER-POSNR = SERNOS-POSNR.
      LOOP AT SERNOS.
        TKOMSER-SERNR = SERNOS-SERNR.
        APPEND TKOMSER.
      ENDLOOP.
    Process the stringtable for Printing.
    CALL FUNCTION 'PROCESS_SERIALS_FOR_PRINT'
          EXPORTING
               I_BOUNDARY_LEFT             = '(_'
               I_BOUNDARY_RIGHT            = '_)'
               I_SEP_CHAR_STRINGS          = ',_'
               I_SEP_CHAR_INTERVAL         = '_-_'
               I_USE_INTERVAL              = 'X'
               I_BOUNDARY_METHOD           = 'C'
               I_LINE_LENGTH               = 50
               I_NO_ZERO                   = 'X'
               I_ALPHABET                  = SY-ABCDE
               I_DIGITS                    = '0123456789'
               I_SPECIAL_CHARS             = '-'
               I_WITH_SECOND_DIGIT         = ' '
          TABLES
               SERIALS                     = TKOMSER
               SERIALS_PRINT               = TKOMSER_PRINT
          EXCEPTIONS
               BOUNDARY_MISSING            = 01
               INTERVAL_SEPARATION_MISSING = 02
               LENGTH_TO_SMALL             = 03
               INTERNAL_ERROR              = 04
               WRONG_METHOD                = 05
               WRONG_SERIAL                = 06
               TWO_EQUAL_SERIALS           = 07
               SERIAL_WITH_WRONG_CHAR      = 08
               SERIAL_SEPARATION_MISSING   = 09.
    IF SY-SUBRC NE 0.
       PERFORM PROTOCOL_UPDATE.
    ENDIF.
    ENDFORM.                               " GET_ITEM_SERIALS
    *eject
    *&      Form  GET_CONTROLL_DATA
          Checks if servicedata for the header exists.                   *
          Checks if servicedata for the position exists.                 *
          Checks if noticedata for the header exists.                    *
          Checks if noticedata for the position exists.                  *
    FORM GET_CONTROLL_DATA.
      DATA: LINES TYPE I.
    Exists servicedata for the header?
      DESCRIBE TABLE TKOMSERVH LINES LINES.
      IF LINES GT 0.
        STEU-VDKEX = 'X'.
      ENDIF.
    Exists servicedata for the position?
      DESCRIBE TABLE TKOMSERVP LINES LINES.
      IF LINES GT 0.
        STEU-VDPEX = 'X'.
      ENDIF.
    Exists noticedata for the header?
      DESCRIBE TABLE TKOMSERVHN LINES LINES.
      IF LINES GT 0.
        STEU-KBKEX = 'X'.
      ENDIF.
    Exists noticedata for the position?
      DESCRIBE TABLE TKOMSERVPN LINES LINES.
      IF LINES GT 0.
        STEU-KBPEX = 'X'.
      ENDIF.
    ENDFORM.                               " GET_CONTROLL_DATA
    *eject
    *&      Form  get_fax_land
          text
         -->P_NAST_TLAND  text
    form get_fax_land using   p_nast_land like nast-tland.
      DATA  L_land    like nast-tland .
      clear L_land.
      IF NOT addr_key-addrnumber IS INITIAL.
        CALL FUNCTION 'WFMC_FAXNUMBER_FOR_ADDRESS'
          EXPORTING
            adrnr          = addr_key-addrnumber
          IMPORTING
            tland          = L_land
          EXCEPTIONS
            addr_not_exist = 1
            OTHERS         = 2.
        IF sy-subrc = 0 AND NOT L_land IS INITIAL.
          p_nast_land = L_land.
        ENDIF.
      ENDIF.
    endform.                    " get_fax_land
    *&      Form  get_data1
          text
         -->P_LS_PRINT_DATA_TO_READ  text
         <--P_LS_ADDR_KEY  text
         <--P_LS_DLV_LAND  text
         <--P_LS_BIL_INVOICE  text
         <--P_CF_RETCODE  text
    FORM get_data1
         USING    IS_PRINT_DATA_TO_READ TYPE LBBIL_PRINT_DATA_TO_READ
         CHANGING CS_ADDR_KEY           LIKE ADDR_KEY
                  CS_DLV-LAND           LIKE VBRK-LAND1
                  CS_BIL_INVOICE        TYPE LBBIL_INVOICE
                  CF_RETCODE.
      IF NAST-OBJKY+10 NE SPACE.
        NAST-OBJKY = NAST-OBJKY+16(10).
      ELSE.
        NAST-OBJKY = NAST-OBJKY.
      ENDIF.
    read print data
    CALL FUNCTION 'LB_BIL_INV_OUTP_READ_PRTDATA'
       EXPORTING
         IF_BIL_NUMBER         = NAST-OBJKY
         IF_PARVW              = NAST-PARVW
         IF_PARNR              = NAST-PARNR
         IF_LANGUAGE           = NAST-SPRAS
         IS_PRINT_DATA_TO_READ = IS_PRINT_DATA_TO_READ
       IMPORTING
         ES_BIL_INVOICE        = CS_BIL_INVOICE
       EXCEPTIONS
         RECORDS_NOT_FOUND     = 1
         RECORDS_NOT_REQUESTED = 2
         OTHERS                = 3.
    IF SY-SUBRC <> 0.
    error handling
       CF_RETCODE = SY-SUBRC.
       PERFORM PROTOCOL_UPDATE.
    ENDIF.
    get nast partner adress for communication strategy
      PERFORM GET_ADDR_KEY USING    CS_BIL_INVOICE-HD_ADR
                           CHANGING CS_ADDR_KEY.
    get delivery land
      PERFORM GET_DLV-LAND USING    CS_BIL_INVOICE-HD_GEN
                           CHANGING CS_DLV-LAND.
    ENDFORM.                                                    " get_data1
    *&      Form  GET_ADDR_KEY
          text
         -->P_CS_BIL_INVOICE_HD_ADR  text
         <--P_CS_ADDR_KEY  text
    FORM GET_ADDR_KEY   USING    IT_HD_ADR   TYPE LBBIL_INVOICE-HD_ADR
                      CHANGING CS_ADDR_KEY LIKE ADDR_KEY.
      FIELD-SYMBOLS -ADDRESS_TYPE.
      ENDIF.
    ENDFORM.                    " GET_ADDR_KEY
    *&      Form  GET_DLV-LAND
          text
         -->P_CS_BIL_INVOICE_HD_GEN  text
         <--P_CS_DLV_LAND  text
    FORM GET_DLV-LAND USING    IT_HD_GEN   TYPE LBBIL_INVOICE-HD_GEN
                      CHANGING CS_DLV-LAND LIKE VBRK-LAND1.
      CS_DLV-LAND = IT_HD_GEN-DLV_LAND.
    ENDFORM.                    " GET_DLV-LAND
    *&      Form  set_print_data_to_read
          text
         -->P_LF_FORMNAME  text
         <--P_LS_PRINT_DATA_TO_READ  text
         <--P_CF_RETCODE  text
    FORM set_print_data_to_read   USING    IF_FORMNAME LIKE TNAPR-SFORM
             CHANGING CS_PRINT_DATA_TO_READ TYPE LBBIL_PRINT_DATA_TO_READ
                      CF_RETCODE.
      FIELD-SYMBOLS:  TYPE XFELD.
      DATA: LT_FIELDLIST TYPE TSFFIELDS.
    set print data requirements
      DO.
        ASSIGN COMPONENT SY-INDEX OF STRUCTURE
                         CS_PRINT_DATA_TO_READ TO  = 'X'.
      ENDDO.
      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.
    error handling
        CF_RETCODE = SY-SUBRC.
        PERFORM PROTOCOL_UPDATE.
      ENDIF.
    ENDFORM.                    " set_print_data_to_read
    *&      Form  set_print_param
          text
         -->P_LS_ADDR_KEY  text
         -->P_LS_DLV_LAND  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
                                  IS_DLV-LAND LIKE VBRK-LAND1
                         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.
      LF_REPID = SY-REPID.
      CALL FUNCTION 'WFMC_PREPARE_SMART_FORM'
        EXPORTING
          PI_NAST       = NAST
          PI_COUNTRY    = IS_DLV-LAND
          PI_ADDR_KEY   = IS_ADDR_KEY
          PI_REPID      = LF_REPID
          PI_SCREEN     = XSCREEN
        IMPORTING
          PE_RETURNCODE = CF_RETCODE
          PE_ITCPO      = LS_ITCPO
          PE_DEVICE     = LF_DEVICE
          PE_RECIPIENT  = CS_RECIPIENT
          PE_SENDER     = CS_SENDER.
      IF CF_RETCODE = 0.
        MOVE-CORRESPONDING LS_ITCPO TO CS_COMPOSER_PARAM.
      CS_CONTROL_PARAM-NO_OPEN
      CS_CONTROL_PARAM-NO_CLOSE
        CS_CONTROL_PARAM-DEVICE      = LF_DEVICE.
        CS_CONTROL_PARAM-NO_DIALOG   = 'X'.
        CS_CONTROL_PARAM-PREVIEW     = XSCREEN.
        CS_CONTROL_PARAM-GETOTF      = LS_ITCPO-TDGETOTF.
        CS_CONTROL_PARAM-LANGU       = NAST-SPRAS.
      CS_CONTROL_PARAM-REPLANGU1
      CS_CONTROL_PARAM-REPLANGU2
      CS_CONTROL_PARAM-REPLANGU3
      CS_CONTROL_PARAM-STARTPAGE
      ENDIF.
    ENDFORM.                    " set_print_param
    *&      Form  add_smfrm_prot
          text
    -->  p1        text
    <--  p2        text
    FORM add_smfrm_prot .
      DATA: LT_ERRORTAB             TYPE TSFERROR.
    DATA: LF_MSGNR                TYPE SY-MSGNO.
      FIELD-SYMBOLS:   TYPE LINE OF TSFERROR.
    get smart form protocoll
      CALL FUNCTION 'SSF_READ_ERRORS'
        IMPORTING
          ERRORTAB = LT_ERRORTAB.
    add smartform protocoll to nast protocoll
      LOOP AT LT_ERRORTAB ASSIGNING .
      CLEAR LF_MSGNR.
      LF_MSGNR = <FS_ERRORTAB>-ERRNUMBER.
        CALL FUNCTION 'NAST_PROTOCOL_UPDATE'
             EXPORTING
                  MSG_ARBGB = -MSGID
                MSG_NR    = LF_MSGNR
                  MSG_NR    = -MSGV4
             EXCEPTIONS
                  OTHERS    = 1.
      ENDLOOP.
    ENDFORM.                    " add_smfrm_prot
    *&      Form  protocol_update_spool
          text
         -->P_1115   text
         -->P_LS_SPOOLID  text
         -->P_SPACE  text
         -->P_SPACE  text
         -->P_SPACE  text
    FORM protocol_update_spool  USING    SYST_MSGNO
                                         P_LS_SPOOLID
                                         P_SPACE1
                                         P_SPACE2
                                         P_SPACE3.
      syst-msgid = 'VN'.
      syst-msgno = syst_msgno.
      syst-msgv1 = p_ls_spoolid.
      CONDENSE syst-msgv1.
      CHECK xscreen = space.
      CALL FUNCTION 'NAST_PROTOCOL_UPDATE'
        EXPORTING
          msg_arbgb = syst-msgid
          msg_nr    = syst-msgno
          msg_ty    = syst-msgty
          msg_v1    = syst-msgv1
          msg_v2    = p_space1
          msg_v3    = p_space2
          msg_v4    = p_space3
        EXCEPTIONS
          OTHERS    = 1.
    ENDFORM.                    " protocol_update_spool
    This is Include ZSDI0003
    *&  Include           ZSDI0003
    TABLES: KOMK,                          "Communicationarea for conditions
            KOMP,                          "Communicationarea for conditions
            KOMVD,                         "Communicationarea for conditions
            VBCO3,                         "Communicationarea for view
            VBDKA,                         "Headerview
            VBDPA,                         "Itemview
            VBDPAU,                        "Subitemnumbers
            CONF_OUT,                      "Configuration data
            SADR,                          "Addresses
            TVAG,                          "Reason for rejection
            VEDKA,                         "Servicecontract head data
            VEDPA,                         "Servicecontract position data
            VEDKN,                         "Servicecontract head notice data
            VEDPN,                         "Servicecontract pos. notice data
            RISERLS,                       "Serialnumbers
            KOMSER,                        "Serialnumbers for print
            TVBUR,                         "Sales office
            TVKO,                          "Sales organisation
            ADRS,                          "Communicationarea for Address
            FPLTDR,                        "billing schedules
            WTAD_ADDIS_IN_SO_PRINT,        "additional
            WTAD_BUYING_PRINT_EXTRA_TEXT,  "texts belonging to additional
            VBAK,                          "Sales Document Header
            VBAP,                          "Sales Document Item
            VBPA,                          "Sales Document: Partner
            T001,                          "Company codes
            MAST,                          "Material to BOM Link
            STKO.                          "BOM Header
    INCLUDE RVADTABL.
    INCLUDE RVDIREKT.
    INCLUDE VEDADATA.
    data for access to central address maintenance
    INCLUDE SDZAVDAT.
    TYPE-POOLS: ADDI.
    DATA PRICE_PRINT_MODE(1) TYPE C.       "Print-mode
    DATA: RETCODE   LIKE SY-SUBRC.         "Returncode
    DATA: REPEAT(1) TYPE C.
    DATA: XSCREEN(1) TYPE C.               "Output on printer or screen
    DATA: BEGIN OF STEU,                   "Controldata for output
            VDKEX(1) TYPE C,
            VDPEX(1) TYPE C,
            KBKEX(1) TYPE C,
            KBPEX(1) TYPE C,
      

    1) you shouldn't have to do anything with the properties file written for a specific Locale.
    2) check this out: http://java.sun.com/j2se/1.4/docs/guide/intl/encoding.doc.html
    3) BIG5 is BIG5 everywhere.
    4) don't know about this one
    5,6,7) If you have Windows 98 Chinese Edition, you can probably switch back and forth between English and Chinese -- just put the Chinese characters in a string much like the normal characters. Otherwise, you'll have to enter the Unicode char.
    V.V.

  • Urgent! Need help in GUI!

    Hi, I am doing a small java project and I am expected to code all the GUI I need in just one class file. Can someone help me? My GUI consists of 2 JButtons, 2 JLabels and 1 JTextField. Also I need to have ActionListener for both of the buttons all in just 1 class file. Anyone please help. It is better if you can provide me with some sample coding to view

    That sounds like a very arbitrarily cooked-up requirement. Homework?
    Assuming your class needs to be a component itself, simply add the buttons, labels and fields into it, typically within the constructor.
    If you mean "one source file" then I would advise using an inner class as your ActionListener; you may even want two. You may like to use anonymous classes which, for instance, call methods in your outer class. All of these solutions will produce more than one class file from the single source file.
    If you really do mean "one class file" then you will need your outer class to implement ActionListener and determine from the getActionCommand() or getSource() methods which of the two buttons the event emanated from. It's a less clean way of going about it, but you get your single class file.
    No sample code - if you need further explanation of the above then just Google for the underlined terms.

  • Urgent. Need help in the Calendar Object.

    Hello developers, best regards!
    Well my problem is that i'm facing a fact that i need a calendar object just like that one when u click the time down there in the taskbar, i need to embedd it in my java windows application.
    To be more clear, if u're familiar with the Visual Basic.NET environment, just the kind of calendars that i need is found there, in which it displays a small box which i can select the months, and accordingly i can select the specific date i need.
    Please i need your help so much.
    Thank you in advance.

    [url http://www.google.co.uk/search?hl=en&q=jcalendar&meta=]click

  • Urgent I need help about Problem with macbook pro

    The first sorry for my english,
    I have a macbook pro buy it me almost one year ago, and these days me the mouse remains I want and cannot do anything have to wait a few seconds and it returns to work, and also when it puts in rest it touched all the keys and the trackpad but it does not answer, I have to close the screen and wait awhile to raise it and return to react, if someone can help me it be be to him very grateful, in addition the guarantee of hardware is ended in 8 days. thank you very much

    Hi leptones, and welcome to Apple Discussions.
    I'm not sure if your warranty expires in 8 more days or it already expired 8 days ago? If you're still under warranty, I would definitely call AppleCare or go to an Apple Store or AASP; they can troubleshoot it and determine if it's something that needs fixing while you're still under warranty (if you are).

  • About the idoc(DEBMAS) inbound, contact info, need help!

    Hi everyone,
    we have SAP and SIEBEL system, and crate/update customer info(or say account) at SIEBEL first, then send account info to SAP via IDOC, message type is DEBMAS06.
    Now there is a bug. create/update contact info at siebel, it always create new contact at SAP when inbound to SAP system.
    Is there anyone can give me any advice about how to fix this bug?
    Thanks & best regards.

    Hi Sir,
    First thanks very much for your reply.
    I known the MSGFN field, segment E1KNVKM(contact info) has MSGFN field too. but there is a still some issues. I found you must pass the PARNR field to SAP if want to update info(If not, even I set the MSGFN as Deleted or UPDATE, it not works). PARNR is the only key for table KNVK. but you know, PARNR is created at SAP when create this contact info, I need create/update contact at SIEBEL, that's not easy to know what's the value of PARNR will be created.
    Is that possible too pass PARNR value to SAP? I know a little about the SAP BASIS Setting.
    Thanks again.

  • URGENT! need help ASAP please!

    Hi, I've created a site in Flash, put the swf file into an
    html file using Dreamweaver CS3, uploaded it to my host
    (123-reg.co.uk). The url is
    http://www.simpson-house.org
    and you can see in the source file that it's all there. The file
    plays in Dreamweaver, when I test it in Browsers etc. I have all
    the folders in the right places (The paths are all correct for the
    links etc), but the uploaded swf will not play. I'm tearing my hair
    out. Is it to do with the fact I exported the swf to use Flash
    Player 9? I have Firefox 3 and Safari.
    Please Help as the people who paid me to do this are
    expecting it up today.
    Regards
    Stephen

    In the future, please use a subject line that gives some clue
    as to the
    topic. Having 500 people check this thread and realize that
    it's on a topic
    they aren't well-versed in doesn't help an urgent situation
    at all! :-)
    Patty Ayers | www.WebDevBiz.com
    Free Articles on the Business of Web Development
    Web Design Contract, Estimate Request Form, Estimate
    Worksheet
    "jollygrizzly" <[email protected]> wrote in
    message
    news:gbdptv$3b0$[email protected]..
    > Hi, I've created a site in Flash, put the swf file into
    an html file using
    > Dreamweaver CS3, uploaded it to my host (123-reg.co.uk).
    The url is
    >
    http://www.simpson-house.org
    and you can see in the source file that it's
    > all
    > there. The file plays in Dreamweaver, when I test it in
    Browsers etc. I
    > have
    > all the folders in the right places (The paths are all
    correct for the
    > links
    > etc), but the uploaded swf will not play. I'm tearing my
    hair out. Is it
    > to
    > do with the fact I exported the swf to use Flash Player
    9? I have Firefox
    > 3
    > and Safari.
    >
    > Please Help as the people who paid me to do this are
    expecting it up
    > today.
    >
    > Regards
    >
    > Stephen
    >

  • Urgent please- need help to retreive all values within a range

    Hi,
    I need to retreive all the values(ID) within a range no matter if it is available in the database or not. I just need this in a sql query not a stored proc.
    for ex:
    select id, name, age
    from employee
    where id between (1 and 10)
    It returns
    id name age
    1 x 22
    3 y 26
    4 z 23
    10 c 32
    I need a query which should return values as follows.
    id name age
    1 x 22
    2
    3 y 26
    4 z 23
    5
    6
    7
    8
    9
    10 c 32
    quick replies will be appreciated.

    This is one way of doing
    select decode(id,null,lev,id),name,age from employee,(select level lev from dual
    connect by level < 11)
    where employee.id(+)=lev
    The above will display between 1 and 10. If you want to specify some other range then the below query will do,
    select decode(id,null,lev,id),name,age from employee,(select level lev from dual
    connect by level <=10
    minus
    select level lev from dual
    connect by level <5)
    where employee.id(+)=lev
    The above query will display between 5 and 10

  • Urgent..need help to buy a dell laptop.

    I am from India.My friend is coming to Boston on next week.I want to buy Dell XPS 17 laptop.I want to know whether Dell XPS17 and XPS15 laptop is available in the shop and location of shop near to the Boston,MA,USA airport.I want to know the price of Dell XPS17 laptop with processor i5 and i7.Please anybody help me..

    Here I'll help. http://www.bestbuy.com/site/olspage.jsp;jsessionid=E6742A3E6BD1FD0C354B377FDC6E0A95.bbolsp-app03-24?...
    Crystal
    Superuser
    Forum Guidelines | Terms & Conditions | Community Guidelines | What is a Superuser?
    *Remember to mark your questions solved and click the star to give kudos to show your thanks!*
    While I used to be a Best Buy Employee, I no longer have any affiliation with Best Buy.
    My opinions do not in any way shape or form represent Best Buy's Official decisions.

  • URGENT! Need help with scrolling on a JPanel!

    Hello Guys! I guess there has been many postings about this subject in the forum, but the postings I found there.... still couldn't solve my problem...
    So, straight to the problem:
    I am drawing some primitive graphic on a JPanel. This JPanel is then placed in a JScrollPane. When running the code, the scrollbars are showing and the graphic is painted nicely. But when I try to scroll to see the parts of the graphics not visible in the current scrollbarview, nothing else than some flickering is happening... No movement what so ever...
    What on earth must I do to activate the scroll functionality on my JPanel??? Please Help!
    And yes, I have tried implementing the 'Scrollable' interface... But it did not make any difference...
    Code snippets:
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.image.*;
    import java.awt.geom.*;
    import javax.swing.*;
    import javax.swing.event.*;
    import javax.swing.tree.*;
    import java.util.*;
    public class FilterComp extends JPanel {//implements Scrollable {
      protected DefaultMutableTreeNode root;
      protected Image buffer;
      protected int lastW = 0;
      protected int origoX = 0;
      protected final StringBuffer sb = new StringBuffer();
    //  protected int maxUnitIncrement = 1;
      protected JScrollPane scrollpane = new JScrollPane();
       *  Constructor for the FilterComp object
       *@param  scrollpane  Description of the Parameter
      public FilterComp(JScrollPane scrollpane) {
        super();
    //    setPreferredSize(new Dimension(1000, 500));
        this.setBackground(Color.magenta);
    //    setOpaque(false);
        setLayout(
          new BorderLayout() {
            public Dimension preferredLayoutSize(Container cont) {
              return new Dimension(1000, 600);
        this.scrollpane = scrollpane;
        scrollpane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        scrollpane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
        scrollpane.setPreferredSize( new Dimension( 500, 500 ) );
        scrollpane.getViewport().add( this, null );
    //    scrollpane.getViewport().setScrollMode(JViewport.SIMPLE_SCROLL_MODE);
        repaint();
      public void paintComponent(Graphics g) {
        super.paintComponent(g);
        int w = getSize().width;
        if (w != lastW) {
          buffer = null;
        Graphics2D g2 = (Graphics2D) g;
        g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
        if (root != null) {
          int h = getHeight(root);
          if (buffer == null) {
            buffer = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_ARGB);
            Graphics2D g3 = (Graphics2D) buffer.getGraphics();
            g3.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
            g3.setColor(Color.black);
            g3.setStroke(new BasicStroke(2));
            paint(g3, (w / 2) + origoX, 10, w / 2, root); 
          lastW = w;
          AffineTransform old = g2.getTransform();
          AffineTransform trans = new AffineTransform();
          trans.translate((w / 2) + origoX, (getHeight() - (h * 40)) / 2);
          g2.setTransform(trans);
          g2.drawImage(buffer, (-w / 2) + origoX, 0, null);
          g2.setTransform(old);
        updateUI();
       *  Description of the Method
       *@param  g  Description of the Parameter
      public void update(Graphics g) {
        // Call paint to reduce flickering
        paint(g);
       *  Description of the Method
       *@param  g2    Description of the Parameter
       *@param  x     Description of the Parameter
       *@param  y     Description of the Parameter
       *@param  w     Description of the Parameter
       *@param  node  Description of the Parameter
      private void paint(Graphics2D g2, int x, int y, int w, DefaultMutableTreeNode node) {
        if (node.getChildCount() == 2) {
          DefaultMutableTreeNode c1 = (DefaultMutableTreeNode) node.getChildAt(0);
          DefaultMutableTreeNode c2 = (DefaultMutableTreeNode) node.getChildAt(1);
          if (c1.getChildCount() == 0 && c2.getChildCount() == 0) {
            String s = c1.getUserObject().toString() + " " + node.getUserObject() + " " + c2.getUserObject();
            paint(g2, x, y, s);
          } else {
            g2.drawLine(x - (w / 2), y, x + (w / 2), y);
            Font f = g2.getFont();
            g2.setFont(new Font(f.getName(), Font.BOLD | Font.ITALIC, f.getSize() + 2));
            paint(g2, x, y, node.getUserObject().toString());
            g2.setFont(f);
            g2.drawLine(x - (w / 2), y, x - (w / 2), y + 40);
            g2.drawLine(x + (w / 2), y, x + (w / 2), y + 40);
            paint(g2, x - (w / 2), y + 40, w / 2, c1);
            paint(g2, x + (w / 2), y + 40, w / 2, c2);
        } else if (node.getChildCount() == 0) {
          paint(g2, x, y, node.getUserObject().toString());
       *  Description of the Method
       *@param  g2  Description of the Parameter
       *@param  x   Description of the Parameter
       *@param  y   Description of the Parameter
       *@param  s   Description of the Parameter
      private void paint(Graphics2D g2, int x, int y, String s) {
        y += 10;
        StringTokenizer st = new StringTokenizer(s, "\\", false);
        if (s.indexOf("'") != -1 && st.countTokens() > 1) {
          int sh = g2.getFontMetrics().getHeight();
          while (st.hasMoreTokens()) {
            String t = st.nextToken();
            if (st.hasMoreTokens()) {
              t += "/";
            int sw = g2.getFontMetrics().stringWidth(t);
            g2.drawString(t, x - (sw / 2), y);
            y += sh;
        } else {
          int sw = g2.getFontMetrics().stringWidth(s);
          g2.drawString(s, x - (sw / 2), y);
       *  Sets the root attribute of the FilterComp object
       *@param  root  The new root value
      public void setRoot(DefaultMutableTreeNode root) {
        this.root = root;
        buffer = null;
       *  Gets the root attribute of the FilterComp object
       *@return    The root value
      public DefaultMutableTreeNode getRoot() {
        return root;
       *  Gets the height attribute of the FilterComp object
       *@param  t  Description of the Parameter
       *@return    The height value
      private int getHeight(TreeNode t) {
        int h = 1;
        int c = t.getChildCount();
        if (c > 0) {
          if (c > 1) {
            h += Math.max(getHeight(t.getChildAt(0)), getHeight(t.getChildAt(1)));
          } else {
            h += getHeight(t.getChildAt(0));
        return h;
       *  Sets the x attribute of the FilterComp object
       *@param  x  The new x value
      public void setX(int x) {
        origoX = x;
       *  Gets the x attribute of the FilterComp object
       *@return    The x value
      public int getX() {
        return origoX;
       *  Gets the preferredScrollableViewportSize attribute of the FilterComp
       *  object
       *@return    The preferredScrollableViewportSize value
    //  public Dimension getPreferredScrollableViewportSize() {
    //    return getPreferredSize();
       *  Gets the scrollableBlockIncrement attribute of the FilterComp object
       *@param  r            Description of the Parameter
       *@param  orientation  Description of the Parameter
       *@param  direction    Description of the Parameter
       *@return              The scrollableBlockIncrement value
    //  public int getScrollableBlockIncrement(Rectangle r, int orientation, int direction) {
    //    return 10;
       *  Gets the scrollableTracksViewportHeight attribute of the FilterComp object
       *@return    The scrollableTracksViewportHeight value
    //  public boolean getScrollableTracksViewportHeight() {
    //    return false;
       *  Gets the scrollableTracksViewportWidth attribute of the FilterComp object
       *@return    The scrollableTracksViewportWidth value
    //  public boolean getScrollableTracksViewportWidth() {
    //    return false;
       *  Gets the scrollableUnitIncrement attribute of the FilterComp object
       *@param  r            Description of the Parameter
       *@param  orientation  Description of the Parameter
       *@param  direction    Description of the Parameter
       *@return              The scrollableUnitIncrement value
    //  public int getScrollableUnitIncrement(Rectangle r, int orientation, int direction) {
    //    return 10;
    }

    The Scrollable interface should be implemented by a JPanel set as the JScrollPane's viewport or scrolling may not function. Although it is said to be only necessary for tables, lists, and trees, without it I have never had success with images. Even the Java Swing Tutorial on scrolling images with JScrollPane uses the Scrollable interface.
    I donot know what you are doing wrong here, but I use JScrollPane with a JPanel implementing Scrollable interface and it works very well scrolling images drawn into the JPanel.
    You can scroll using other components, such as the JScrollBar or even by using a MouseListener/MouseMotionListener combination, but this is all done behind the scenes with the use of JScrollPane/Scrollable combination.
    You could try this approach using an ImageIcon within a JLabel:
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.image.*;
    import javax.swing.*;
    import javax.swing.event.*;
    public class Test extends JFrame {
         BufferedImage bi;
         Graphics2D g_bi;
         public Test() {
              super("Scroll Test");
              makeImage();
              Container contentPane = getContentPane();
              MyView view = new MyView(new ImageIcon(bi));
              JScrollPane sp = new JScrollPane(view);
              contentPane.add(sp);
              setSize(200, 200);
              setVisible(true);
         private void makeImage() {
              bi = new BufferedImage(320, 240, BufferedImage.TYPE_INT_ARGB);
              g_bi = bi.createGraphics();
              g_bi.setColor(Color.white);
              g_bi.fillRect(0,0,320,240);
              g_bi.setColor(Color.black);
              g_bi.drawLine(0,0,320,240);
         public static void main(String args[]) {
              Test test = new Test();
    class MyView extends JLabel {
         ImageIcon icon;
         public MyView(ImageIcon ii) {
              super(ii);
              icon = ii;
         public void paintComponent(Graphics g) {
              g.drawImage(icon.getImage(),0,0,this);
    }Robert Templeton

Maybe you are looking for

  • What to be given in JDBC receiver comm channel?

    Hi I have given JDBC driver:com.sap.aii.messaging.adapter.ModuleXMB2DB Connection:jdbc:microsoft:sqlserver://sapep:1433;DatabaseName=SAPXI am i giving correct params? please help me where and how to check whether iam using correct params in my JDBC r

  • Problems with syc with PC

    Hello All: when I try to syc i get the following error. 0x80040fb3 Thanks

  • [SOLVED] jdk6 JAVA_HOME overriding jdk JAVA_HOME

    Placing this here for future reference to others having the same problem Symptoms: jdk6-compat installed alongside jdk $JAVA_HOME still defined as /opt/java6 upon login Problem: in /etc/profile it uses: if test -d /etc/profile.d/; then for profile in

  • My Ipod mini gives error -47 (ipod cannot be updated, the required file is in use).

    When I try to sync my Ipod mini, I get the following error : Error -47 (ipod cannot be updated, the required file is in use).  My software is all up to date and the ipod was restored.  Nothing helped, how do I fix this?  I have a macbook pro. Thanks

  • Mono outs in channel strip possible?

    i have created a couple of mono output channels in my audio mixer, but they are still showing up as stereo channels in the channel strip. i want to be able to set tracks to output to mono channels 5 OR 6, not stereo channel 5-6.