Syslinux Installer / Update Script - Testers Needed

For those who don't follow the ML that closely....
Hello Community,
Over the last few weeks I have been working on Syslinux support for the installer. With the help Thomas and Dieter I am nearing the completion of this project. As part of this project, I have written a script that will help install and update Syslinux (similar to that of grub-install).
Some key features of the script: syslinux-install_update.sh
* Install Syslinux to the FS + Partition Boot Loader (extlinux --install /boot/syslinux)
* Install Syslinux MBR
* Detect and optionally set the boot flag on the boot partition
* Update Syslinux – copy files and execute (extilnux --update /boot/syslinux)
* Support for GPT disks
* Support for RAID configurations
The goal is to include this script in the official Syslinux package. Therefore we need your help to test it.
syslinux-install_update.sh -i -a -m ..... install Syslinux, set the boot flag (if needed), and install the MBR
We need tests for the following setups:
/ + /boot on the *same* partition
/ + /boot on the *same* partition - RAID
/boot + root on *separate* partition
/boot + root on *separate* partition - RAID
All of the above using but using the GPT partition layout
NOTE: This is an alpha/beta stage script. The script modifies the first 440 bytes of the disk (using dd) and the partition table (using either sfdisk or sgdisk). Although the script should be safe to run, I am not responsible for any data loss that may occur.
Let us know the following:
* Did the script work for you?
* What was your partition setup? (see above)
* What version did you use?
* If the script did not work, please provide as much information as possible
Get the script here: https://gist.github.com/772138
Syslinux Sample Config File: http://projects.archlinux.org/svntogit/ … slinux.cfg
The Syslinux package in testing includes the above configuration file.
Cheers,
pyther

As Thomas puts it:
Thomas wrote:Syslinux is way more flexible and extensible than grub or lilo, actively developped (by someone who knows what he is doing and is always willing to fix bugs like yours) and feature-rich.
http://mailman.archlinux.org/pipermail/ … 17368.html
In regards to bootloaders in core
Pierre wrote:
ATM. we have grub1 in core/base and install that by default. The problem is that this project is virtually dead for a long time now and also not available on x86_64. Technically it has to be in the multilib repo.
Grub2 is currently in extra. Upstream development is still in flux. Imho its quite heavy and complex. An alternative successor would be extlinux from the syslinux package. It's very simple, easy to configure, actively maintained and reliable. Sure, it only supports booting from ext* and btrfs afaik but to be honest, if you use any other FS you should have a separate /boot even when using grub.
http://mailman.archlinux.org/pipermail/ … 18445.html
Why I like it:
  * It is simple and easy to understand (see https://wiki.archlinux.org/index.php/Sy … t_Process)
  * The devs are willing to help you out (they have helped me understand the Syslinux boot process and write this script)
  * It is modular in nature and the Hardware Detection Tool (HDT) com32 module is cool
  * Configuration is simple
  * KISS (IMHO)
  * GPT Support
Disadvantages:
  * Can't boot from LVM volumes
  * only ext2/3/4, btrfs, vfat file systems supported
Last edited by pyther (2011-01-16 21:56:41)

Similar Messages

  • Update fails (Failed to run database update script)

    Still unable to update my zmm. it fails to uppgrade the sqldb.
    logfiles ends like this.
    Msg 512, Level 16, State 1, Server xxxxx, Procedure , Line 2
    [Microsoft][ODBC SQL Server Driver][SQL Server]Subquery returned more than 1
    value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or
    when the subquery is used as an expression.
    The statement has been terminated.
    1> 2> 3> 4> 5> 6> 7> [17:04:44] RunShellCommand: Command: osql exited with code: 1
    [17:04:44] RunShellCommand: Exit code indicates failure.
    [17:04:44] UpdateDatabase: Failed to run database update script.
    Need some help plz

    dahlholm,
    It appears that in the past few days you have not received a response to your
    posting. That concerns us, and has triggered this automated reply.
    Has your problem been resolved? If not, you might try one of the following options:
    - Visit http://www.novell.com/support and search the knowledgebase and/or check all
    the other self support options and support programs available.
    - You could also try posting your message again. Make sure it is posted in the
    correct newsgroup. (http://forums.novell.com)
    Be sure to read the forum FAQ about what to expect in the way of responses:
    http://forums.novell.com/faq.php
    If this is a reply to a duplicate posting, please ignore and accept our apologies
    and rest assured we will issue a stern reprimand to our posting bot.
    Good luck!
    Your Novell Forums Team
    http://forums.novell.com

  • HT5839 After having installed OS X v10.9.1 on my computer, the apple store purchases suggests downloading 10.9 update or the full OS X installer. Do I need to do that?

    After having installed OS X v10.9.1 on my computer, the apple store purchases suggests downloading 10.9 update or the full OS X installer. Do I need to do that?

    Are these shown in the App Store's Updates page? If not, then you don't need them. You could download the full Mavericks installer application if you want to create a bootable USB flash drive installer or just to keep handy should you need it (store it in your Downloads folder.)

  • Says installer update is needed

    I have the new leopard operating system on my MacBook Pro. I just purchased an older Apple Airport system. When I put the installer CD into my computer it says cannot install on this machine - installer update is needed. Does this mean the airport CD I have is outdated for my operating system? How can I fix this? Thanks

    Which "older Airport system" do you own? If you need help figuring it out, see:
    http://docs.info.apple.com/article.html?artnum=107908
    On your Mac, you will find an "Airport Utility" already installed in the Applications -> Utilities folder. The Airport Utility will configure all versions of the Airport Extreme Base Station as well as the Airport Express.
    If you have an old Snow or Graphite Base Station, you need to use the Airport Admin Utility v4.2. Installing it on your Mac is a bit of a chore - see this recent discussion for instructions:
    http://discussions.apple.com/thread.jspa?messageID=6613840

  • Server Side activties have been updated. You need to restart SharePoint Designer to use the updated version of activities.

    Hello,
    I have the following scenario for the installation of EPM 2013 environment:
    1 Server running Windows 2008 R2 SQL Server 2008 R2 Service Pack 2
    1 Windows Server 2008 R2 Standard SP1, running Sharepoint 2013 Enterprise (Standard Initially installed and then migrated to the Enterprise in order to install Project Server 2013), Project Server 2013 and Workflow 1.0 (2013).
    After configuring and validating the configuration of Workflow 1.0 by http://server_name.example.com:12291 page and also check the Application Services in Central Administration and receive the Workflow Status = Connected.
    Alright, but when I run the SPD 2013 RTM to test the creation of Sharepoint Workflow 2013, I get the following warning:
    "Server Side activties have been updated. You need to restart SharePoint Designer to use the updated version of activities."
    I've tried:
    a. Restart SPD2013;
    b. Restart Server 2013 and Sharepoint Workflow 1.0;
    c. Reinstall and reconfigure Workflow 1.0
    And the message is always displayed, preventing the use of Workflow Sharepoint 2013.
    Can anyone help me, I'm in the middle of a deployment to a customer.
    Print of alert

    How did you uninstalledLanguage Pack from SharePoint 2013 ? when I googled it I found that language pack cannot be uninstall@
    http://technet.microsoft.com/en-us/library/cc262108.aspx
    "If you no longer have to support a language for which you have installed a language pack, you can remove the language pack by using the Control Panel. Removing a language pack removes the language-specific site
    templates from the computer. All sites that were created that have those language-specific site templates will no longer work (the URL will produce a HTTP 500 - Internal server error page). Reinstalling the language pack will make the site functional again.
    You cannot remove the language pack for the version of SharePoint 2013 that you have installed on the server. For example, if you are running the Japanese version of SharePoint 2013, you cannot uninstall the Japanese language support for SharePoint 2013."

  • Software update says I need to do the lastest update which I have tried to do at least 6 times. It downloads the software, the computer restarts, it starts to finish the download and then says ' there was an error in installing the software" What is up?

    Software update says I need to download MacOS 10.6.7. Each time I try, I have tried 6 times, the software downloads, it has me restart the system, it then writes the files to disk and then I get an error measage that "there was error in installing the softare. Anybody have this problem and how do you fix it? I am running 10.6.6

    Try this before trying to install the update.
    Repair the Hard Drive and Permissions
    Boot from your Snow Leopard 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 Utilities menu. 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.
    If DU reports errors it cannot fix, then you will need Disk Warrior and/or Tech Tool Pro 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 you still have a problem then I suggest you download the 10.6.7 Combo Updater and install it.

  • Update script taking long time....

    Dear all,
    I have to update more then 2 mil records in a table but below update script took whole day still did not finish, is there any other way to enhance this update statement.
    update  customer_table  p
      set P.ic_no   = fn_change_iden_no_dirct(p.v_ic_no, p.ic_code)
      where P.ic_no is not null
    " fn_change_iden_no_dirct"  is a finction which returns the correct ic_no?
    BELOW IS THE COSTING OF THE ABOVE UPDATE SCRIPT
    ID     PID     Operation     Name     Rows     Bytes     Cost     CPU Cost     IO Cost
    0          UPDATE STATEMENT     2292K     34M     1192            1192
    1     0     UPDATE CUSTOMER_TABLE                              
    2     1       TABLE ACCESS FULL  CUSTOMER_TABLE     2292K     34M     1192       1192
    .....Thank you

    One reason the update is slow is because Oracle will do two switches between the SQL engine and the pl/sql engine for each row that it has to process. Such a switch usually is very slow. In 11g you could profit from funcion result cache. But the best way would be not to use a user-defined pL/sql function.
    I just noticed that you will do 4 context switches because inside of your function you do a not needed SELECT to get the length.
    First thing I would do is replace
    BEGIN
          select length(trim(PI_INSTR))
          into lv_length from dual;
    ...with
    BEGIN
          lv_length := length(trim(PI_INSTR));
    ...Here is a version where I tried to copy the logic from your function to the SQL statement. Also note that I tried to update only those rows that require a change.
    starting point
    update  customer_table  p
      set P.ic_no   = fn_change_iden_no_dirct(p.v_ic_no, p.ic_code)
      where P.ic_no is not null
      and P.ic_no  != fn_change_iden_no_dirct(p.v_ic_no, p.ic_code)
    changed logic
    update  customer_table  p
      set P.ic_no =
            decode(p.ic_code
                       /* NEW IC part */
                       ,'NEWIC', case when  length(trim(p.v_ic_no)) = 12
                                       then substr(trim(p.v_ic_no),1,6)||'15'||'999'||substr(trim(p.v_ic_no),12,1)
                                       when length(trim(p.v_ic_no)) > 12
                                       then substr(trim(p.v_ic_no),1,6)||'15'||'999'||substr(trim(p.v_ic_no),-(length(trim(p.v_ic_no)) -11))
                                       when length(trim(p.v_ic_no)) between 8 and 11
                                       then substr(trim(p.v_ic_no),1,6)||'15'||'999'
                                       else p.v_ic_no
                                 end
                       /* IC part */
                       ,'UIC', case when  length(trim(p.v_ic_no)) > 4
                                       then substr(trim(p.v_ic_no),1,1)|| substr(trim(p.v_ic_no),4,1)||substr(trim(p.v_ic_no),3,1)||substr(trim(p.v_ic_no),2,1) ||substr(trim(p.v_ic_no),- (length(trim(p.v_ic_no)) -4))
                                       else p.v_ic_no
                                 end
                       /* else part */
                       ,p.v_ic_no)
      where P.ic_no is not null
      and (p.ic_code in ('NEWIC','UIC')  or   p.v_ic_no !=  P.ic_no)
       ;Edited by: Sven W. on Jul 5, 2010 1:35 PM

  • HELP! adobe reader XI (11.0.09)  hangs on installation (running scripts package)

    adobe reader XI (11.0.09) hangs on installation (running scripts package). I cannot shut my computer down, because the installer won't let it and says "interrupting the install will damage the computer) I just wanted to update from 11.0.07 but it said contents had been changed so I had to reinstall adobe reader. So I am trying but it has been hours.

    Hi andrea02,
    Are you still facing this issue?
    You may try uninstall previous installation copy using Adobe Acrobat/Reader cleaner tool::  http://labs.adobe.com/downloads/acrobatcleaner.html
    Regards,
    Ajlan Huda.

  • Can't install installer update

    hi everyone, my beige g3 died, so i got another off ebay, it arrived in a shocking condition. however with a new pram battery,new 40gb hd in 3 partitions, memory at 416mb, 9.2.2. on 2nd partition, 10.1 on 1st partition, its humming along except i cannot install the installer update in order to do further updates, the disk is greyed out. i did have it on once but had to do a clean install on 1st partition. i have a retail copy of tiger and have tried to install from 9.2 with xpostfacto but it won't have it, tried several versions, there is a ! next to the install disk and sometimes on all the partitions don't know what this means....

    thanks for the replies, its funny isn't it how one can do something then next time you can't. i installed 10 on 1st 5.5 gb partition, 9.2 on next. took it up to 10.1.5 but had start up issues so did a clean install on 1st partition, and am now stuck in 10.1 because i need installer update to continue. so stuck!! also i want to get rid of all that and put panther or tiger on, now i'm caught with no dvd drive so i took apart my lacie ext. and put that one in and it works fine but i can't boot from it. i am now surrounded by dismantled things drives hard drives a spare imac for fire wire but you can't target disk the beige to the imac. i have a beautiful g5 imac sitting downstairs will some one explain why i have bought another beige?

  • Run e-tester from a server and have staff remotely update scripts

    Can we run the floating e-tester from a server and have staff remotely access the server to run and update scripts instead of installing the client on everyone's workstation?

    Original Question:
    Can we run the floating e-tester from a server and have staff remotely access the server to run and update scripts instead of installing the client on everyone's workstation?
    There are different alternatives to consider and different ways to answer the question.
    1) You can run e-Tester with a floating license from a server and have people to use remote desktop to run and create scripts.
    Pros:
    * Multiple users can be updating scripts in the server at the same time.
    * There is no need to install e-Tester in any other computer.
    Cons:
    * If the max number of floating licenses is reached no other person can open another instance of e-Tester.
    * Having multiple people running scripts in the Job scheduler will create conflicts therefore is not recommended. Running multiple instances of e-Tester manually shouldn't cause problems, but it is a slow way to do regression testing. The job scheduler can run a script after another without user intervention. Teamwork can be affected if the default settings are changed by different users.
    * Running thru remote desktop(or any other remote tool such as vnc) is slower than having etester in the computer. The refresh rate of the screen tends to be slower.
    * If multiple users are using the server resources at the same time it can slow down the work of others. The server can run out of memory or it will be slow because the CPU running near max capacity.
    2) You can run eTester with a node lock license from a server and have people to use remote desktop to run and create scripts.
    Pros:
    * Multiple users can be updating scripts in the server at the same time.
    * There is no need to install eTester in any other computer.
    * Only one license is required.
    Cons:
    * Having multiple people running scripts in the Job scheduler will create conflicts therefore is not recommended. Running multiple instances of etester manually shouldn't cause problems, but it is a slow way to do regression testing. The job scheduler can run a script after another without user intervention. Teamwork can be affected if the default settings are changed by different users.
    * Running thru remote desktop(or any other remote tool such as vnc) is slower than having etester in the computer. The refresh rate of the screen tends to be slower.
    * If multiple users are using the server resources at the same time it can slow down the work of others. The server can run out of memory or it will be slow because the CPU running near max capacity.
    Notes:
    1) Having eTester installed in each individual's computer will allow the person to run tests with no worries about conflicts of server resources or job schedules trying to start an etester instance. Installing etester is a one time thing that takes in general less than 10 minutes.
    2) Instead of sharing the server resources you can share the place where the scripts reside. You can place the scripts in a central location and and configure etester to read the scripts from there. Instructions on how to do this should be in the knowledge base (if not please let me know)(Don't be lazy Zuriel, paste the link here).
    3) You can consider to have eManager Enterprise if you want to have better organization of the scripts. In eManager Enterprise you can relate your test cases to your scripts, you can run the scripts from a central location, it is less limited for scheduling scripts than the JobScheduler, and it can be accessed from anywhere inside the company with a web browser (for security reasons requires username and password). eManager Enterprise doesn't have the ability to create or update scripts, it uses scripts that were created in eTester already.
    eManager can also create schedules conflicts if multiple runs are attempted. There are ways to deal with this situation by having multiple computers to run the tests. (Please post in another thread if more information is necessary).
    I hope this helps.
    Regards,
    Zuriel

  • Installer Update problem

    I was going to install Mac OS X update 10.1.5 but it said I need to update my installer. So I dowloaded it, ran it, but when I got to the part of the installer update install where it asks you to pick a volume to install the software on, none of the volumes are able to be picked. They're like transperent. Any pointers?
    iMac G3   Mac OS X (10.1.x)  

    Can you install the Security Update 7-18-02? If so, run the Mac OS X 10.15 updater next without installing the Installer Update.
    (10165)

  • Installer update

    I'm trying to install something and it says I need Installer Update. I don't understand what that is.

    OK, does your G4 meet these requirements?
    Leopard requirements/10.5.x...
    * Mac computer with an Intel, PowerPC G5, or PowerPC G4 (867MHz or faster) processor
    minimum system requirements
    * 512MB of memory (I say 2GB at least)
    * DVD drive for installation
    * 9GB of available disk space (I say 30GB at least)
    Might try LeopardAssist if not...
    http://www.macupdate.com/app/mac/26562/leopardassist/

  • Error while saving a workflow via sharepoint designer: Server-side activities have been updated. You need to restart SharePoint Designer to use the updated version of activities.

    While saving a workflow using SharePoint designer on a SharePoint site, I get the following error: 
    Server-side activities have been updated. You need to restart SharePoint Designer to use the updated version of activities.
    Steps to recreate error:
    Login to the WFE server hosting IIS and workflow manager, open SharePoint Designer 2013 and login to a SharePoint site.
    Access the list using SharePoint Designer 2013, in the workflow section, click new workflow. 
    In the new workflow dialog, enter workflow details, click save (see screenshot below).
    Error message is displayed as below:
    After restarting SharePoint Designer, the saved workflow is not seen in the site/workflows or list/workflow section.
    Workaround
    When the above steps are repeated while accessing the site via SPD from any other box besides the WFE/Workflow manager host server, the error is not encountered and its possible to save/publish workflows.
    Notes
    Workflow Manager 1.0 is installed.
    The site has been registered with Workflow manager using Register-SPWorkflowService
    cmdlet.
    Any clue on why is this happening?

    Hi Vivek,
    Please close your SharePoint Designer application, clear/delete the cached files and folders under the following directories from your server installed SharePoint Designer, then check results again.
    <user profile>\appdata\roaming\microsoft\SharePoint Designer\ProxyAssemblyCache
    <user profile>\appdata\local\microsoft\websitecache\<sitename>
    http://www.andreasthumfart.com/2013/08/sharepoint-designer-2013-server-side-activities-have-been-updated/
    Thanks
    We are trying to better understand customer views on social support experience, so your participation in this
    interview project would be greatly appreciated if you have time.
    Thanks for helping make community forums a great place.

  • HT1338 I bought my macbook pro november 2011 and I still cannot use my toshiba external hard drive.  what updates do i need to get?

    I don't know my operating system.  I bought it in nov of 2011.  I am trying to axcess a toshiba external hard drive.  what new update do I need to get?

    You can find out your current system version by select About This Mac from the Apple menu.  To make sure it is updated, select Software Update from the Apple menu.  A Mac from Nov. 2011 is probably running "Lion," and the latest version of Lion is Mac OS X 10.7.4.
    But that should not affect the connection of an external hard drive.  There are no special updates for connecting standard external drives.
    Does the external Toshiba drive connect by USB port?  Is it the smaller type that gets power from the port (no conection except for the one cable), or is it larger (with its own power supply)?

  • Ihave created a script, i need to email in pdf format.

    Hi Experts,
    There are 2 criterias...
    1. criteria
    I have created a script, i need to mail it. Please give me a step by step guide to perform it .. . Please give the comments in all the functional module to be used.
    Do we have to write a separate program to send email or in the same program. i'll post my program along with this mail. I'm using this program to display report after delivery on that particular date.
    REPORT  ZREPORTTOEMAIL LINE-SIZE 400.
    data : count, i  type i.
    TABLES :  VBFA,         "Sales Document Flow
              VBAK,
              KNA1,
              VBKD,
              VBAP,
              LIPS,
              LIKP,
              KONP,
              KOMK,
              KOMP,
              zkna1,
              konv.
    data : l_vbeln like vbfa-vbeln,
           l_posnr like vbfa-posnn,
           l_KNUMV like vbak-KNUMV,
           L_BILL_ITEM LIKE vbfa-posnn ,
           l_netwr like vbrp-netwr,
           l_MWSBP like vbrp-mwsbp.
    DATA: BEGIN OF TKOMV OCCURS 50.
            INCLUDE STRUCTURE KOMV.
    DATA: END OF TKOMV.
    DATA: BEGIN OF TKOMVD OCCURS 50.
            INCLUDE STRUCTURE KOMVD.
    DATA: END OF TKOMVD.
    TYPE-POOLS: SLIS.
    DATA: FIELDTAB TYPE SLIS_T_FIELDCAT_ALV,
          HEADING  TYPE SLIS_T_LISTHEADER,
          LAYOUT   TYPE SLIS_LAYOUT_ALV,
          EVENTS   TYPE SLIS_T_EVENT,
          REPNAME  LIKE SY-REPID,
          F2CODE   LIKE SY-UCOMM VALUE  '&ETA',
          G_SAVE(1) TYPE C,
          G_EXIT(1) TYPE C,
          G_VARIANT LIKE DISVARIANT,
          GX_VARIANT LIKE DISVARIANT.
    DATA: GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
    CONSTANTS: FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.
    DATA: BEGIN OF itab occurs 0,
            kunnr like likp-kunnr,      "ship to party
            NAME2   LIKE  KNA1-NAME1,   "text
            ORT01   LIKE  KNA1-ORT01,   "City
            BSTNK   LIKE  VBAK-BSTNK,   "customer P O
            BSTDK   LIKE  VBAK-BSTDK,   "date
            vbeln like likp-vbeln,      "delivery
            ernam like likp-ernam,      "person
            vstel like likp-vstel,      "shipping point
            vkorg like likp-vkorg,      "sales org
            lfdat like likp-lfdat,      "delivery date
            kunag like likp-kunag,      "sold to party
            NAME1   LIKE  KNA1-NAME1,   "text
            bil_to like VBAK-KUNNR,
            name3 like kna1-name1,
            traid like likp-traid,      "transport/vehicle no
            BOLNR LIKE LIKP-BOLNR,
            wadat_ist like likp-wadat_ist, "good mov. date
            posnr like lips-posnr,      "item
            matnr like lips-matnr,      "material
            arktx like lips-arktx,      "item text
            matkl like lips-matkl,      "mat group
            werks like lips-werks,      "plant
            lgort like lips-lgort,      "stoage location
            lfimg like lips-lfimg,      "del qty
            MEINS LIKE LIPS-MEINS,
            vrkme like lips-vrkme,      "sales unit
            UMVKZ LIKE LIPS-UMVKZ,
            UMVKN LIKE LIPS-UMVKN,
            charg like lips-charg,      "batch
            vgbel like lips-vgbel,      "reference doc
            mtart like lips-mtart,      "mat type
            vkbur like lips-vkbur,      "sales office
            vkgrp like lips-vkgrp,      "sales group
            vtweg like lips-vtweg,      "Distribution Channel
            spart like lips-spart,      "division
            billno like vbak-vbeln,
            basic like komvd-kwert,
            budat like bkpf-budat,
            fin_amt like vbrp-NETWR,
    END OF itab.
    data : begin of jtab occurs 0,
    kunnr like likp-kunnr,
    name2 like kna1-name2,
    vbeln like likp-vbeln,
    zkunnr like zkna1-zkunnr,
    zname like zkna1-zname,
    end of jtab.
    SELECTION-SCREEN SKIP 1 .
    SELECTION-SCREEN BEGIN OF BLOCK BLOCK1 WITH FRAME TITLE TEXT-003.
    SELECT-OPTIONS   : ABC FOR LIKP-WADAT_IST DEFAULT SY-DATUM
                                  NO INTERVALS   .
    SELECT-OPTIONS   : S_MATNR FOR  LIPS-MATNR NO INTERVALS   .
    SELECT-OPTIONS   : S_VKORG FOR  LIKP-VKORG NO INTERVALS.
    SELECT-OPTIONS   : S_VSTEL FOR  LIKP-VSTEL NO INTERVALS.
    SELECT-OPTIONS   : S_VKBUR FOR  LIKP-VKBUR NO INTERVALS.
    SELECT-OPTIONS   : S_VKGRP FOR  LIPS-VKGRP.
    SELECT-OPTIONS   : S_SPART FOR  LIPS-SPART.
    SELECT-OPTIONS   : S_VBELN3 FOR  LIKP-VBELN.
    SELECT-OPTIONS   : S_MATKL FOR  LIPS-MATKL NO INTERVALS,
                       S_KUNAG FOR LIKP-KUNAG.
    SELECTION-SCREEN  END OF BLOCK BLOCK1.
    select * from likp into corresponding fields of itab
                  WHERE  WADAT_IST IN ABC
                  AND    VBELN IN S_VBELN3
                  AND    VKORG IN S_VKORG
                  and VSTEL in S_VSTEL
                  AND VKBUR IN S_VKBUR
                  and lfart like 'Z%'
                  AND    VBTYP = 'J'
                  AND KUNAG IN S_KUNAG.
    select * from lips into corresponding fields of itab
                    WHERE VBELN =  ITAB-VBELN
                    AND   MATNR IN S_MATNR
                    AND   MATKL IN S_MATKL
                    AND VKBUR IN S_VKBUR
                    AND VKGRP IN S_VKGRP
                    AND SPART IN S_SPART.
    IF ITAB-VRKME = 'RM' AND ITAB-MEINS = 'KG'.
    ITAB-LFIMG = ITAB-LFIMG * ( ITAB-UMVKZ / ITAB-UMVKN ).
    ITAB-VRKME = 'KG'.
    ENDIF.
    SELECT SINGLE BSTNK BSTDK INTO (ITAB-BSTNK,ITAB-BSTDK) FROM VBAK
                     WHERE VBELN = ITAB-VGBEL.
    SELECT SINGLE NAME1 ORT01 FROM KNA1 INTO (ITAB-NAME2,ITAB-ORT01)
                                 WHERE KUNNR = ITAB-KUNNR.
    SELECT SINGLE NAME1 FROM KNA1 INTO ITAB-NAME1
                                 WHERE KUNNR = ITAB-KUNAG.
    *select single vbeln POSNN into (itab-billno,L_BILL_ITEM)  from vbfa where VBELV = itab-vbeln
    *and POSNV = itab-posnr and VBTYP_N in ('M','U').
    select vbeln POSNN from vbfa up to 1 rows into (itab-billno,L_BILL_ITEM)   where VBELV = itab-vbeln
    and POSNV = itab-posnr and VBTYP_N in ('M','U') order by vbeln DESCENDING .
    endselect.
    select single * from vbfa where vbelv = itab-billno and posnv = l_bill_item and
    vbtyp_n = 'N'.
    if sy-subrc = 0.
    clear : itab-billno, l_bill_item.
    endif.
    select single budat from bkpf into itab-budat where xblnr = itab-billno and
    blart = 'RV'.
    select single NETWR MWSBP into (l_netwr, l_MWSBP) from vbrp where vbeln = itab-billno
    and posnr = l_bill_item.
    itab-fin_amt = l_netwr + l_MWSBP.
    clear : l_netwr, l_MWSBP.
    select single kunnr from vbpa into itab-bil_to where
    vbeln = itab-BILLNO and PARVW = 'RE'.
    select single name1 into itab-name3 from kna1
    where kunnr = itab-bil_to.
    *select single VBELV POSNV from vbfa into (l_vbeln,l_posnr)
    *where VBELN = itab-vbeln and
    *POSNN = itab-posnr and VBTYP_N = 'J'.
    *select single VBELN POSNN from vbfa into (l_vbeln,l_posnr)
    *where VBELV = itab-vbeln and
    *POSNV = itab-posnr and VBTYP_N = 'M'.
    select VBELN POSNN from vbfa up to 1 rows into (l_vbeln,l_posnr)
    where VBELV = itab-vbeln and
    POSNV = itab-posnr and VBTYP_N = 'M' order by vbeln DESCENDING.
    endselect.
    select single * from vbfa where vbelv = l_vbeln and posnv = l_posnr and
    vbtyp_n = 'N'.
    if sy-subrc = 0.
    clear : l_vbeln, l_posnr.
    endif.
    if sy-subrc = 0.
    *select single KNUMv into l_KNUMv from vbak where vbeln = l_vbeln
    select single KNUMv into l_KNUMv from vbRk where vbeln = l_vbeln
    select * from konv where knumv = l_knumv and kposn = l_posnr and
    kschl in ('ZR00','ZR01','ZR02','ZOBC').
    itab-basic = itab-basic + KONV-KBETR.
    ENDSELECT.
    else.
    *select single KNUMv into l_KNUMv from ekko where ebeln = itab-vgbel.
    *select single KBETR from konv into itab-basic where knumv = l_knumv
    *and kposn = itab-posnr and kschl = 'P101'.
    select single KNUMv into l_KNUMv from VBRK where VBELN = itab-BILLNO.
    select * from konv where knumv = l_knumv and kposn = l_BILL_ITEM AND
    kschl in ('ZR00','ZR01','ZR02','ZOBC').
    itab-basic = itab-basic + KONV-KBETR.
    ENDSELECT.
    *zkna1-zkunnr = itab-kunnr.
    *insert zkna1.
    endif.
         clear : l_vbeln, L_BILL_ITEM, L_POSNR.
    APPEND ITAB.
    clear : itab-basic, itab-lfimg.
         ENDSELECT.
              clear : itab.
    ENDSELECT.
    <b>perform zscript.</b>
    *&      Form  zscript
          text
    -->  p1        text
    <--  p2        text
    FORM zscript .
    CALL FUNCTION 'OPEN_FORM'
    EXPORTING
      APPLICATION                       = 'TX'
      ARCHIVE_INDEX                     =
      ARCHIVE_PARAMS                    =
      DEVICE                            = 'PRINTER'
      DIALOG                            = 'X'
       FORM                              = 'ZREPORT2EMAIL'
       LANGUAGE                          = SY-LANGU
      OPTIONS                           =
      MAIL_SENDER                       =
      MAIL_RECIPIENT                    =
      MAIL_APPL_OBJECT                  =
      RAW_DATA_INTERFACE                = '*'
      SPONUMIV                          =
    IMPORTING
      LANGUAGE                          =
      NEW_ARCHIVE_PARAMS                =
      RESULT                            =
    EXCEPTIONS
      CANCELED                          = 1
      DEVICE                            = 2
      FORM                              = 3
      OPTIONS                           = 4
      UNCLOSED                          = 5
      MAIL_OPTIONS                      = 6
      ARCHIVE_ERROR                     = 7
      INVALID_FAX_NUMBER                = 8
      MORE_PARAMS_NEEDED_IN_BATCH       = 9
      SPOOL_ERROR                       = 10
      CODEPAGE                          = 11
      OTHERS                            = 12
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    LOOP AT ITAB.
    CALL FUNCTION 'WRITE_FORM'
    EXPORTING
       ELEMENT                        = 'MANU'
       FUNCTION                       = 'SET'
       TYPE                           = 'BODY'
       WINDOW                         = 'MAIN'
    IMPORTING
      PENDING_LINES                  =
    EXCEPTIONS
      ELEMENT                        = 1
      FUNCTION                       = 2
      TYPE                           = 3
      UNOPENED                       = 4
      UNSTARTED                      = 5
      WINDOW                         = 6
      BAD_PAGEFORMAT_FOR_PRINT       = 7
      SPOOL_ERROR                    = 8
      CODEPAGE                       = 9
      OTHERS                         = 10
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ENDLOOP.
    CALL FUNCTION 'CLOSE_FORM'
    IMPORTING
      RESULT                         =
      RDI_RESULT                     =
    TABLES
      OTFDATA                        =
    EXCEPTIONS
      UNOPENED                       = 1
      BAD_PAGEFORMAT_FOR_PRINT       = 2
      SEND_ERROR                     = 3
      SPOOL_ERROR                    = 4
      CODEPAGE                       = 5
      OTHERS                         = 6
    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.                    " zscript
    The above one is first criteria just to understand how to send mail to the customers.
    <b>Second criteria</b> is i have to send the mail to the particular customer with only their details, the process should continue until it sends to all the customers with their details for that particular date.
    Please help me out.
    I have seen so many posts in the sdn but not able to understand the functional modules, how they declare that and how does it works...
    Please provide me a good material to understand the functional module and to declare them.
    Please solve this query i'll reward them with very good points.
    Thanks in advance.
    A.Rafique.

    Hi babar haroon,
    Thanks for the link.....
    I went through that link, i created smart form but i was not able to get the results because the pgm gets terminated after executing. I'll show u the code, the code is active. Please check out and tell me if  i have missed anything in the code...
    *& Report  ZZZ_TEST3
    REPORT  ZZZ_TEST3.
    *internal table declarations
    data: i_otf type itcoo occurs 0 with header line,
          i_tline type table of tline with header line,
          i_receivers type table of somlreci1 with header line,
          i_record like solisti1 occurs 0 with header line,
    *Objects to send mail.
          i_objpack like sopcklsti1 occurs 0 with header line,
          i_objtxt like solisti1 occurs 0 with header line,
          i_objbin like solisti1 occurs 0 with header line,
          i_reclist like somlreci1 occurs 0 with header line,
    *workarea declaration.
          w_objhead TYPE soli_tab,
          w_ctrlop TYPE ssfctrlop,
          w_compop TYPE ssfcompop,
          w_return TYPE ssfcrescl,
          w_doc_chng typE sodocchgi1,
          w_data TYPE sodocchgi1,
          w_buffer TYPE string,"To convert from 132 to 255
    Variables declarations
          v_form_name TYPE rs38l_fnam,
          v_len_in LIKE sood-objlen,
          v_len_out LIKE sood-objlen,
          v_len_outn TYPE i,
          v_lines_txt TYPE i,
          v_lines_bin TYPE i.
    call function 'SSF_FUNCTION_MODULE_NAME'
    *call function '/1BCDWB/SF00000105'
          exporting
          formname = 'ZZZ_TEST2'
          importing
          fm_name = v_form_name
          exceptions
          no_form = 1
          no_function_module = 2
          others = 3.
          IF sy-subrc <> 0.
          MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
          WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
          ENDIF.
          w_ctrlop-getotf = 'X'.
          w_ctrlop-no_dialog = 'X'.
          w_compop-tdnoprev = 'X'.
         CALL FUNCTION '/1BCDWB/SF00000105'
          EXPORTING
            ARCHIVE_INDEX              =
            ARCHIVE_INDEX_TAB          = itab1
            ARCHIVE_PARAMETERS         =
            CONTROL_PARAMETERS         =
            MAIL_APPL_OBJ              =
            MAIL_RECIPIENT             =
            MAIL_SENDER                =
            OUTPUT_OPTIONS             =
            USER_SETTINGS              = 'X'
          IMPORTING
            DOCUMENT_OUTPUT_INFO       =
            JOB_OUTPUT_INFO            = wa
            JOB_OUTPUT_OPTIONS         =
          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.
    CALL FUNCTION v_form_name
          EXPORTING
          control_parameters = w_ctrlop
          output_options = w_compop
          user_settings = 'X'
          IMPORTING
          job_output_info = w_return
          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.
          i_otf[] = w_return-otfdata[].
          CALL FUNCTION 'CONVERT_OTF'
          EXPORTING
          format = 'PDF'
          max_linewidth = 132
          IMPORTING
          bin_filesize = v_len_in
          TABLES
          otf = i_otf
          lines = i_tline
          EXCEPTIONS
          err_max_linewidth = 1
          err_format = 2
          err_conv_not_possible = 3
          OTHERS = 4.
          IF sy-subrc <> 0.
          MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
          WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
          ENDIF.
          Convert PDF from 132 to 255.
          LOOP AT i_tline.
          Replacing space by ~
          TRANSLATE i_tline USING '~'.
          CONCATENATE w_buffer i_tline INTO w_buffer.
          ENDLOOP.
    Replacing ~ by space
          TRANSLATE w_buffer USING '~'.
          DO.
          i_record = w_buffer.
          Appending 255 characters as a record
          APPEND i_record.
          SHIFT w_buffer LEFT BY 255 PLACES.
          IF w_buffer IS INITIAL.
          EXIT.
          ENDIF.
          ENDDO.
          Refresh: i_reclist,
          i_objtxt,
          i_objbin,
          i_objpack.
          clear w_objhead.
          Object with PDF.
          i_objbin[] = i_record[].
         DESCRIBE TABLE i_objbin LINES v_lines_bin.
          Object with main text of the mail.
          i_objtxt = 'Find attached the output of the smart form.'.
          APPEND i_objtxt.
         DESCRIBE TABLE i_objbin LINES v_lines_txt.
          i_objtxt = 'Regards,'.
          APPEND i_objtxt.
          i_objtxt = 'J.Jayanthi'.
          APPEND i_objtxt.
          DESCRIBE TABLE i_objtxt LINES v_lines_txt.
          Document information.
          w_doc_chng-obj_name = 'Smartform'.
          w_doc_chng-expiry_dat = sy-datum + 10.
          w_doc_chng-obj_descr = 'Smart form output'.
          w_doc_chng-sensitivty = 'F'. "Functional object
          w_doc_chng-doc_size = v_lines_txt * 255.
          Pack to main body as RAW.
          Obj. to be transported not in binary form
          CLEAR i_objpack-transf_bin.
          Start line of object header in transport packet
          i_objpack-head_start = 1.
          Number of lines of an object header in object packet
          i_objpack-head_num = 0.
          Start line of object contents in an object packet
          i_objpack-body_start = 1.
          Number of lines of the object contents in an object packet
          i_objpack-body_num = v_lines_txt.
          Code for document class
          i_objpack-doc_type = 'RAW'.
          APPEND i_objpack.
          Packing as PDF.
          i_objpack-transf_bin = 'X'.
          i_objpack-head_start = 1.
         i_objpack-head_num = 1.
          i_objpack-head_num = 0.
          i_objpack-body_start = 1.
          i_objpack-body_num = v_lines_bin.
          i_objpack-doc_type = 'PDF'.
          i_objpack-obj_name = 'Smartform'.
          CONCATENATE 'Smartform_output' '.pdf'
          INTO i_objpack-obj_descr.
          i_objpack-doc_size = v_lines_bin * 255.
          APPEND i_objpack.
          Document information.
          CLEAR i_reclist.
          e-mail receivers.
         i_reclist-receiver = '[email protected]'.
          i_reclist-receiver = '[email protected]'.
          i_reclist-express = 'X'.
          i_reclist-rec_type = 'U'. "Internet address
          APPEND i_reclist.
          Sending mail.
          CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
          EXPORTING
          document_data = w_doc_chng
          put_in_outbox = 'X'
          TABLES
          packing_list = i_objpack
          object_header = w_objhead
          contents_hex = i_objbin
          contents_txt = i_objtxt
          receivers = i_reclist
          EXCEPTIONS
          too_many_receivers = 1
          document_not_sent = 2
          document_type_not_exist = 3
          operation_no_authorization = 4
          parameter_error = 5
          x_error = 6
          enqueue_error = 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.
    Please reply me back, it is very urgent..
    Thanks and regards.
    A.Rafique

Maybe you are looking for