Convert .xls files in a folder to .xlsx file

I am getting a file from a client with extension .xls but it can't be read in SSIS or with OPENROWSET function. I believe the file has the .xls extension but it is not excel file. I can open the file manually, I am looking for powershell script to open and
save the file as .xlsx.
I tried to use the following code but it is not working. Any help on this would be appreciated.
$xlFixedFormat
=
[Microsoft.Office.Interop.Excel.XlFileFormat]::xlWorkbookDefault
$excel
= New-Object
-ComObject excel.application
$excel.visible
=
$true
$folderpath
=
"c:\test\*"
$filetype
="*xls"
Get-ChildItem
-Path
$folderpath
-Include
$filetype |
ForEach-Object
`
$path
= ($_.fullname).substring(0,($_.FullName).lastindexOf("."))
"Converting $path to $filetype..."
$workbook
=
$excel.workbooks.open($_.fullname)
$workbook.saveas($path,
$xlFixedFormat)
$workbook.close()
$excel.Quit()
$excel
=
$null
[gc]::collect()
[gc]::WaitForPendingFinalizers()
Mohammedu

Hi Mohammedu,
Let’s see what format the problem file’s
format is first. You might be interested in my Remove-ComObject
function; it gets rid of Excel vestiges, you can get it here and
read about it here.
What does the following code return?
$file
=
'C:\x.xls'
# <-- your Workbook's full path
$xl
= New-Object
-ComObject
Excel.Application
-Property
 Visible
=
$true
$wb
=
$xl.Workbooks.Open($file)
$wb.FileFormat
-as
'Microsoft.Office.Interop.Excel.XlFileFormat'
$wb.Close($false)
$xl.Quit()
Remove-ComObject
  Robert Robelo  

Similar Messages

  • How to convert Xls file into Xml file

    Hi,
    I am trying to convert Xls file into Xml  but there  is no any direct procedure for it
    Pls help me out to convert Xls file into Xml file
    Thanks
    Anushree

    you will require to write a module in your file adapter for the same.
    ref: /people/sap.user72/blog/2005/07/04/read-excel-instead-of-xml-through-fileadapter as mentioned in the earlier post.
    Else you can also use Conversion Agent to read the same.
    Ref: http://help.sap.com/saphelp_nw04/helpdata/en/43/4c38c4cf105f85e10000000a1553f6/content.htm

  • Converting '.xls' file to '.txt' in BDC Session method

    Hi gurus,
    Happy DIWALIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII------',','
    Please help me in converting '.xls' file to '.txt' in BDC Session method. Is there is any method or function module for this conversion. Please help me with coding.
    Thanks and regards,

    Hi
    File->save as -> Save as type ( text tab delimted.txt) ->Click on yes .
    Now open .txt file -> here data will be tab delimted.
    genrally i use tab delimted file to upload the data.
    Even if you want to programtically then get the data from xls file to Internal table,now use concatenate with comma ,now download it.
    Check the below program :
    Upload xls file and you can see .txt file ( with comma delimted)
    Input ( XLS file )
    aaa 1245 2344 233 qwww
    233 2222 qwww www www
    Output ( .txt file with comma delimted)
    aaa,1245,2344,233,qwww
    233,2222,qwww,www,www
    REPORT ZFII_MISSING_FILE_UPLOAD no standard page heading.
    data : begin of i_text occurs 0,
    text(1024) type c,
    end of i_text.
    Internal table for File data
    data : begin of i_data occurs 0,
    field1(10) type c,
    field2(10) type c,
    field3(10) type c,
    field4(10) type c,
    field5(10) type c,
    end of i_data.
    data : begin of i_download occurs 0,
    text(1024) type c,
    end of i_download.
    data : v_lines type sy-index.
    data : g_repid like sy-repid.
    data v_file type string.
    data: itab like alsmex_tabline occurs 0 with header line.
    data : g_line like sy-index,
    g_line1 like sy-index,
    $v_start_col type i value '1',
    $v_start_row type i value '1',
    $v_end_col type i value '256',
    $v_end_row type i value '65536',
    gd_currentrow type i.
    selection-screen : begin of block blk with frame title text.
    parameters : p_file like rlgrap-filename obligatory.
    selection-screen : end of block blk.
    initialization.
    g_repid = sy-repid.
    at selection-screen on value-request for p_file.
    CALL FUNCTION 'F4_FILENAME'
    EXPORTING
    PROGRAM_NAME = g_repid
    IMPORTING
    FILE_NAME = p_file.
    start-of-selection.
    Uploading the data into Internal Table
    perform upload_data.
    download the file into comma delimted file.
    perform download_data.
    *& Form upload_data
    text
    --> p1 text
    <-- p2 text
    FORM upload_data.
    CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
    EXPORTING
    FILENAME = p_file
    I_BEGIN_COL = $v_start_col
    I_BEGIN_ROW = $v_start_row
    I_END_COL = $v_end_col
    I_END_ROW = $v_end_row
    TABLES
    INTERN = itab
    EXCEPTIONS
    INCONSISTENT_PARAMETERS = 1
    UPLOAD_OLE = 2
    OTHERS = 3.
    IF SY-SUBRC <> 0.
    write:/10 'File '.
    ENDIF.
    if sy-subrc eq 0.
    read table itab index 1.
    gd_currentrow = itab-row.
    loop at itab.
    if itab-row ne gd_currentrow.
    append i_data.
    clear i_data.
    gd_currentrow = itab-row.
    endif.
    case itab-col.
    when '0001'.
    first Field
    i_data-field1 = itab-value.
    second field
    when '0002'.
    i_data-field2 = itab-value.
    Third field
    when '0003'.
    i_data-field3 = itab-value.
    fourth field
    when '0004'.
    i_data-field4 = itab-value.
    fifth field
    when '0005'.
    i_data-field5 = itab-value.
    endcase.
    endloop.
    endif.
    append i_data.
    ENDFORM. " upload_data
    *& Form download_data
    text
    --> p1 text
    <-- p2 text
    FORM download_data.
    loop at i_data.
    concatenate i_data-field1 ',' i_data-field2 ',' i_data-field3 ','
    i_data-field4 ',' i_data-field5 into i_download-text.
    append i_download.
    clear : i_download,
    i_data.
    endloop.
    CALL FUNCTION 'GUI_DOWNLOAD'
    EXPORTING
    BIN_FILESIZE =
    FILENAME =
    'C:\Documents and Settings\smaramreddy\Desktop\fff.txt'
    FILETYPE = 'ASC'
    APPEND = ' '
    WRITE_FIELD_SEPARATOR = ' '
    HEADER = '00'
    TRUNC_TRAILING_BLANKS = ' '
    WRITE_LF = 'X'
    COL_SELECT = ' '
    COL_SELECT_MASK = ' '
    DAT_MODE = ' '
    IMPORTING
    FILELENGTH =
    TABLES
    DATA_TAB = i_download
    EXCEPTIONS
    FILE_WRITE_ERROR = 1
    NO_BATCH = 2
    GUI_REFUSE_FILETRANSFER = 3
    INVALID_TYPE = 4
    NO_AUTHORITY = 5
    UNKNOWN_ERROR = 6
    HEADER_NOT_ALLOWED = 7
    SEPARATOR_NOT_ALLOWED = 8
    FILESIZE_NOT_ALLOWED = 9
    HEADER_TOO_LONG = 10
    DP_ERROR_CREATE = 11
    DP_ERROR_SEND = 12
    DP_ERROR_WRITE = 13
    UNKNOWN_DP_ERROR = 14
    ACCESS_DENIED = 15
    DP_OUT_OF_MEMORY = 16
    DISK_FULL = 17
    DP_TIMEOUT = 18
    FILE_NOT_FOUND = 19
    DATAPROVIDER_EXCEPTION = 20
    CONTROL_FLUSH_ERROR = 21
    OTHERS = 22
    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. " download_data
    Regards
    Pavan

  • How to convert xls files into xml

    hi all,
    please tell me how to convert the xls files into xml

    Hey Sayee,
    This gives you step by step procedure to start up
    saptechnical  com/Tutorials/XI/Adapter/Index.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/8b/895e407aa4c44ce10000000a1550b0/content.htm
    Regards
    Pothana

  • Converting .xls to pdf

    Can anyone recommend a good application or the best way to convert .xls files to pdf?
    Thanks

    Have you tried printing and selecting "Save as PDF"? Or Save As and selecting PDF? I don't have Excel 2004 anymore so I don't know if it has the Save as PDF feature but the standard OS X print dialog has the selection for printing to PDF.

  • Conversion of xls file into xml file

    Hi,
    i want to convert xls file into xml
    pls let me know the procedure for it
    Thanks

    Hi Anu,
    U can use FM <b>SAP_CONVERT_TO_XML_FORMAT</b> to convert data to XML.
    Or u can use some threads related to this FM. So that u can get better idea about this.
    Check this link also
    conversion of xls file into xml file
    regards,
    raghu

  • How to use Automator to batch convert xls/xlsx files into tab OR pipe delimited text file.

    If you have answer, please provide specific and detailed steps.
    Situation 1:
    Start:
    150+ files in .xls OR .xlsx format
    data contains many characters EXCEPT "Tab"
    Process:
    Use Automator to:
    Select Files from Finder window
    Convert selected files from xls/xlsx to TAB-DELIMITED file format
    End:
    150+ files in .txt format
    files have identical names to those from "Start:"
    data is TAB-DELIMITED
    Situation 2:
    Start:
    150+ files in .xls OR .xlsx format
    data contains many characters EXCEPT | (pipe, vertical bar)
    Process:
    Use Automator to:
    Select Files from Finder window
    Convert selected files from xls/xlsx to |-delimited file format
    End:
    150+ files in .txt format
    files have identical names to those from "Start:"
    data is "|"-delimited

    If your post is addressed to my response then the answer is you have to write your own or search on-line to see if something exists to do what you want.
    As you note there is no pre-built script for this.
    regards
    Message was edited by: Frank Caggiano - Are you certain there isn;t something in Excel to export as a tab delimited file?
    This link Convert An Excel Spreadsheet To A Tab Delimited Text File seems to indicate that the function is in Excel already.

  • Batch convert Pages files to Doc and stay in the same folder?

    Hi there,
    I use iWork '09 on Mountain Lion. I recently switched to Microsoft Word and prefer it over Pages (personal preference). However, I have nearly 1000 files on my computer that are in Pages format. I have extensively searched this issue in the Apple Support Communities and it appears that there are scripts that DO EXIST that batch convert Pages files into Word files. However, it appears that many of these scripts were built for older versions of iWork and therefore I run into various errors. For example, I used the script available at http://pagesfaq.blogspot.com/2008/01/export-folder-to-word-rtf-pdf-txt-or.html and click run but nothing actually happens (the script runs for less than a second, then I can click run again). I was able to use one script successfully (pasted below), but the only reason I can't use it is because it saves ALL my converted documents in one folder on my desktop and I would like a script that can save them in the original file were the Pages document is located.
    So, is there an iWork '09 compatible script that can convert my Pages documents to Word documents and save them in the same folder as the original? Oh, and for an added bonus, it'd be cool if the script also deleted my Pages version after it was done with the conversion
    --[SCRIPT batch_exportPages2DOC] (* Enregistrer ce script en tant que script ou progiciel. Exécuter ce script ou déposer l'icône d'un dossier sur son icône. Il ouvre tout document Pages du dossier et l' enregistre en fichier DOC  dans le dossier "was_Pages_now_DOC". Celui-ci peut être sur le bureau ou dans le dossier "~/Documents". Si le GUIscripting n'est pas activé le script demande votre mot de passe pour l'activer. Le script récupère le dossier d'exportation par défaut dans le fichier de préférences de Pages. Éviter de cliquer durant l'exécution du script sauf évidemment pour sélectionner le dossier source. ************* Save the script as script or application bundle. Run it or drag and drop a folder icon on its icon. It opens every Pages's documents stored in the folder and save it as DOC file in a folder named "was_Pages_now_DOC". This one may be on the desktop or in the "~/Documents" folder. according to the property storeOnDesktop. If GUIscripting is disabled the script ask for your password to enable it. The script extract the default export path from the Pages's preferences file. Don't click when the script is running. Except, of course, to select the source folder. ************* Yvan KOENIG (VALLAURIS, France) 2008/04/20 2009/06/17 adapté pour format .doc 2009/12/13 updated for MacOs 10.6… *) property theApp : "Pages" property theExt : "pages" property nomDuRapport : "report_Pages2DOC.txt" property nom_du_dossier : "was_Pages_now_DOC" property storeOnDesktop : true (* true = dest folder will be on Desktop false = dest folder will be in "~/Documents" *) property msg1 : "" -- globale property msg90 : "" -- globale property msg91 : "" -- globale -- property msg92 : "" -- globale property msg94 : "" -- globale property msg96 : "" -- globale property msg99 : "" -- globale property rapport : "" -- globale property dossierDeStockage : "" -- globale property dossierParDefaut : "" -- globale property localExport : "" -- globale property newExt : "" -- globale property newType : "" -- globale property isOs4 : missing value -- globale property isOs5 : missing value -- globale property theMenu : missing value -- globale property menuExport : missing value -- globale property types : {{"doc", "SLDocumentTypeMSWord", 2}, {"pdf", "SLDocumentTypePDF", 1}, {"txt", "SLDocumentTypePlainText", 4}, {"rtf", "SLDocumentTypeRichText", 3}, {"rtfd", "SLDocumentTypeRichTextBundle"}, 3} --===== (* our settings *) property typeNum : 1 (* 1 = WORD, 2 = PDF, 3 = Txt, 4 = rtf, 5 = rtfd *) property theButton : missing value (* 1          button PDF 2          button Word 3          button RTF 4 button Standard *) --===== on run (* lignes exécutées si on double clique sur l'icône du script application • lines executed if one double click the application script's icon *)             tell application "System Events" to set dossier to choose folder (* dans un bloc System Events pour avoir un titre de dialogue "localisé" • in a System Events block to get a localized dialog title. *)           my commun({dossier})             --          my commun({"Macintosh HD:Users:yvan_koenig:Desktop:for_see:" as alias}) end run --===== on open (sel) (* sel contient une liste d'alias des éléments qu'on a déposés sur l'icône du script (la sélection) • sel contains a list of aliases of the items dropped on the script's icon (the selection) *)           my commun(sel) end open --===== on commun(elems)           my nettoie()           my prepareMessages()             tell application "System Events"                     if not (UI elements enabled) then set (UI elements enabled) to true (* Active le GUI scripting • Enable GUI scripting *)                     set titres to title of processes           end tell -- to System Events             if theApp is not in titres then my activateTheApp() (* Active et ferme la fenêtre du document créé à l'ouverture • Activate and close the doc's window created at opening *)           set {newExt, newType, theButton} to item typeNum of types (* item 1 = {"doc", "SLDocumentTypeMSWord",2} item 2 = {"pdf", "SLDocumentTypePDF",1} item 3 = {"txt", "SLDocumentTypePlainText",4} item 4 = {"rtf", "SLDocumentTypeRichText",3} item 5 = {"rtfd", "SLDocumentTypeRichTextBundle",3} *)           set sysAtt to (system attribute "sys2")           if 4 > sysAtt then                     if my parleAnglais() then                               error "This script requires MacOs X 10.4 or higher !"                     else                               error "Ce script requiert MacOs X 1.4 ou ultérieur !"                     end if           else if 5 > sysAtt then                     set isOs4 to true                     set isOs5 to false                     if my getVersion() < "4" then                               set theMenu to 3                               set menuExport to 13                     else                               set theMenu to 10                               set menuExport to 9                     end if           else if 6 > sysAtt then                     set isOs4 to false                     set isOs5 to true                     if my getVersion() < "4" then                               set theMenu to 3                               set menuExport to 13                     else                               set theMenu to 10                               set menuExport to 8 (* was a wrong 9 *)                     end if           else                     set isOs4 to false                     set isOs5 to false                     if my getVersion() < "4" then                               set theMenu to 3                               set menuExport to 13                     else                               set theMenu to 10                               set menuExport to 8 (* was a wrong 9 *)                     end if           end if           my fermeFenetres() (* • Close existing windows *)             my afficheLeMessage(msg1) (* Éviter de cliquer… • Don't click… *)           tell application theApp to set localExport to localized string "Export"           set dossierParDefaut to my getDefaultExport() as text           set rapport to ""           set dossierDeStockage to my creeDossierDeStockage(nom_du_dossier) (* Unicode text *)             try                     repeat with elem in elems                               try                                         my exploreTraite(elem as alias, "")                               end try                     end repeat                       if rapport = "" then set rapport to msg90                     -- crée un fichier texte sur le Bureau                     set p2d to path to desktop                     set p2r to (p2d as Unicode text) & nomDuRapport                     tell application "System Events"                               if exists (file p2r) then delete (file p2r)                               make new file at end of p2d with properties {name:nomDuRapport}                     end tell                     set rapport to rapport as text                     write rapport to (p2r as alias)             on error MsgErr number NroErr                     if NroErr is not -128 then                               beep 2                               tell application (path to frontmost application as string) to ¬                                         display dialog "" & NroErr & " : " & MsgErr with icon 0 buttons {msg99} giving up after 20                     end if -- NroErr is…                     return           end try             my nettoie()           if my parleAnglais() then                     my afficheLeMessage("Export done.")           else                     my afficheLeMessage("Traitement terminé.")           end if end commun --===== on nettoie() (* pour ne pas stocker dans le fichier script • So it will not be stored in the script file *)           set dossierDeStockage to ""           set dossierParDefaut to ""           set rapport to ""             set localExport to ""           set newExt to ""           set newType to ""           set isOs4 to missing value           set isOs5 to missing value           set theMenu to missing value           set menuExport to missing value           set theButton to missing value           set msg1 to ""           set msg90 to ""           set msg91 to ""           set msg92 to ""           --           set msg94 to ""           set msg96 to ""           set msg99 to " " end nettoie --=====  on afficheLeMessage(m)           beep 1           tell application (path to frontmost application as string)                     activate                     if my parleAnglais() then                               display dialog m buttons {" OK "} default button 1 giving up after 10                     else                               display dialog m buttons {" Vu "} default button 1 giving up after 10                     end if           end tell end afficheLeMessage --===== on creeDossierDeStockage(Nom) (* S'il n'existe pas, construit un dossier destination sur le bureau ou dans "~/Documents" • If does not exist, create a destination folder on the desktop or in "~/Documents" *)           local dd, dds           if storeOnDesktop is true then                     set dd to path to desktop as Unicode text           else                     set dd to path to documents folder as Unicode text           end if             if Nom ends with ":" then                     set dds to dd & Nom           else                     set dds to dd & Nom & ":"           end if           (* dossierDeStockage n'existe pas, on le crée • dossierDeStockage is not available, build it *)           tell application "System Events" to if not (exists item dds) then make new folder at end of folder dd with properties {name:Nom}           return dds as Unicode text end creeDossierDeStockage --===== on exploreTraite(elem, ptree) (* elem est un alias • elem is an alias *)           local elem_, cl_, type_Id           set elem_ to elem as Unicode text           tell application "System Events" to tell disk item elem_                     set cl_ to class                     if cl_ is folder then                               set type_Id to ""                     else                               set type_Id to type identifier                     end if           end tell --  "System Events"           set cl_ to cl_ as Unicode text             if type_Id is in {"com.apple.iwork.pages.pages", "com.apple.iwork.pages.sffpages"} then (* C'est un fichier Pages. • It's a Pages document *)                     my TraiteUnDocument(elem_)           else if cl_ is in {"file package", "«class cpkg»"} then                     set rapport to rapport & msg91 & elem_ & return (* "Package", Attention, un package EST un dossier "spécial". • Caution, a package IS a "special" folder. *)           else if cl_ is in {"folder", "«class cfol»"} then                     my ExploreUnDossier(elem_, ptree)           else                     set rapport to rapport & msg92 & elem_ & return (*  "Pas un document Pages". • "Not a Pages's document" *)           end if -- typeId_ is … end exploreTraite --===== on ExploreUnDossier(dossier, ptree)           local nomElement, cheminElement, c           repeat with nomElement in list folder dossier without invisibles                     set cheminElement to dossier & nomElement                     tell application "System Events" to set c to name of (dossier as alias)                     my exploreTraite(cheminElement as alias, ptree & c & ":")           end repeat end ExploreUnDossier --===== on TraiteUnDocument(leCheminOriginal_UniText)           my export2Doc(leCheminOriginal_UniText as alias, leCheminOriginal_UniText) end TraiteUnDocument --===== on export2Doc(p, leCheminOriginal_UniText) (* • here p is the path as alias *)           local flag, nom_de_p, nouveauChemin, w, bof, x, p_xport           try                     tell application theApp                               open p                               set flag to false                               repeat 300 times (* Attends que le fichier soit réellement ouvert. • Wait until the file is really open *)                                         if my getNbWindows() > 0 then                                                   set flag to true                                                   exit repeat                                         end if                               end repeat                     end tell -- to theApp                     if flag is false then error number 8888 (* Le fichier n'a pu être ouvert. • The file can't be open. *)           on error MsgErr number NroErr                     if NroErr = 8888 then                               set rapport to rapport & msg94 & leCheminOriginal_UniText & return                     else                               set rapport to rapport & "### " & MsgErr & " ### " & errNbr & return                     end if                     return (* can't do the remaining tasks *)           end try             tell application "System Events" to tell file leCheminOriginal_UniText                     set nom_de_p to name           end tell -- System Events             if nom_de_p ends with theExt then set nom_de_p to text 1 thru -(2 + (length of theExt)) of nom_de_p           set nouveauChemin to dossierParDefaut & nom_de_p & "." & newExt           --log nouveauChemin           tell application "System Events" to if exists (file nouveauChemin) then set name of file nouveauChemin to nom_de_p & my horoDateur(modification date of file nouveauChemin) & "." & newExt (* name stamped *)           try                     set {w, bof} to my getFrontWindow()                       tell application "System Events" to tell application process theApp                               click menu item menuExport of menu 1 of menu bar item theMenu of menu bar 1 (* Exporter… *)                               repeat until exists sheet 1 of window w                                         delay 0.1                               end repeat                               tell sheet 1 of window w (* sheet containing the buttons PDF, Word, RTF, Standard *)                                         --          get properties of UI elements of radio group 1                                         if isOs4 then                                                   click button theButton of radio group 1                                         else if isOs5 then                                                   click checkbox theButton of radio group 1                                         else                                                   click radio button theButton of radio group 1 (* I hope that they will no longer change it *)                                         end if -- isOs4 is true                                         (*                                         if typeNum is 2 then                                                   delay 0.2                                                   tell pop up button 1                                                             click                                                             click menu item quality of menu 1                                                   end tell                                                   delay 0.2                                         end if                                         *)                                         click button 1 (* Suivant… *)                                         repeat until exists button localExport                                                   delay 0.1                                         end repeat                                         click button localExport (* Exporter… *)                               end tell -- to sheet…                                 repeat 20 times                                         if exists sheet 1 of window w then                                                   click button 2 of sheet 1 of window w (* "Ne pas consulter " dans éventuel rapport d'anomalies • "Don't review" in sheet reporting possible export anomalies *)                                                   exit repeat                                         end if                                         delay 0.1                               end repeat                     end tell -- to process … System Events                       if dossierDeStockage is not dossierParDefaut then (* we must move the file from folder dossierParDefaut to folder dossierDeStockage *)                                 set p_xport to dossierDeStockage & nom_de_p & "." & newExt                                 tell application "System Events" to if exists (file p_xport) then set name of file p_xport to nom_de_p & my horoDateur(modification date of file p_xport) & "." & newExt                               tell application "Finder" to duplicate file nouveauChemin to folder dossierDeStockage (*                               • before 10.5, System Events is unable to move *)                                 my wait4File(p_xport)                                 tell application "System Events" to if exists file nouveauChemin then delete file nouveauChemin                     end if -- dossierDeStockage is not…                     my ferme1fenetre()             on error errMsg number errNbr                     set rapport to rapport & msg96 & p & return & errMsg & " ### " & errNbr & return           end try end export2Doc (* ===== • Build a stamp from the modification date_time *) on horoDateur(dt)           local annee, mois, jour, lHeure, lesSecondes, lesMinutes           set annee to year of dt           set mois to month of dt as number (* existe depuis 10.4 *)           set jour to day of dt           set lHeure to time of dt           set lesSecondes to (lHeure mod 60)           set lHeure to round (lHeure div 60)           set lesMinutes to (lHeure mod 60)           set lHeure to round (lHeure div 60)           return "_" & annee & text -2 thru -1 of ("00" & mois) & text -2 thru -1 of ("00" & jour) & "-" & text -2 thru -1 of ("00" & lHeure) & text -2 thru -1 of ("00" & lesMinutes) & text -2 thru -1 of ("00" & lesSecondes) (* • Here, the stamp is  "_YYYYMMDD-hhmmss" *) end horoDateur (* ===== • Take care, the front window may be an Inspector or a dialog one. *) on getFrontWindow()           local namesOfWindows, w, flag           tell application theApp to activate           set flag to false           tell application "System Events" to tell application process theApp                     set namesOfWindows to name of every window                     repeat with w in namesOfWindows                               if subrole of (get properties of window w) is "AXStandardWindow" then                                         set flag to true                                         exit repeat                               end if                     end repeat           end tell           return {w, flag} (* • w is the name of the front document's window *) end getFrontWindow (* ===== • Wait that the file is completely written on disk *) on wait4File(p) (* • p must be Unicode text *)           local oldSize, nnn, newSize           set oldSize to 0           tell application "System Events" to set nnn to name of file p             repeat                     try                               tell application "System Events" to set newSize to physical size of file p                               if oldSize < newSize then                                         set oldSize to newSize                               else                                         exit repeat                               end if                     end try           end repeat end wait4File --===== on activateTheApp()           local bof, status           tell application theApp to activate           if my getStartingStatus() is false then tell application "System Events" to tell application process theApp to keystroke return           repeat                     set {bof, status} to my getFrontWindow()                     if status is true then exit repeat           end repeat end activateTheApp (* ===== • Close existing open windows *) on fermeFenetres()           repeat while my getNbWindows() > 0                     my ferme1fenetre()           end repeat (* • Now there is no open window *) end fermeFenetres --===== on ferme1fenetre()           tell application theApp to activate           tell application "System Events" to tell application process theApp to keystroke "w" using {command down} end ferme1fenetre --===== on getPlistValue(valName, default)           local thePlist, u           set thePlist to (path to preferences folder as Unicode text) & "com.apple.iWork." & theApp & ".plist"           tell application "System Events"                     if exists file thePlist then                               tell contents of property list file thePlist                                         try                                                   set u to (value of property list item valName) (* Unicode Text *)                                         on error (* On est là si Pages n'a rien enregistré avec des préférences neuves • Here if Pages never saved with the new preferences file. *)                                                   set u to default                                         end try                               end tell -- to contents of…                     else (* On est là s'il n'y a pas de fichier de préférences • Here if there is no preferences file. *)                               set u to default                     end if           end tell -- to system events           return u end getPlistValue --===== on getStartingStatus()           return my getPlistValue("LSDefaultsUseDefaultStartingPoint", false) end getStartingStatus --===== on getDefaultExport()           local u           (* son of a *****, I forgot that they don't use the same name !! *)           if theApp contains "Pages" then                     set u to my getPlistValue("SLDocumentDefaultExportDirectory", "~/Documents")           else if theApp contains "Numbers" then                     set u to my getPlistValue("LSDocumentDefaultExportDirectory", "~/Documents")           else                     error "I didn't coded a Keynote version !"           end if             set u to (POSIX file (do shell script "echo " & u)) as text           if u ends with ":" then                     return u           else                     return (u & ":")           end if end getDefaultExport --===== on getNbWindows()           tell application "System Events" to tell application process theApp to return count of windows end getNbWindows --===== on getLocale(a, x)           tell application a to return localized string x end getLocale --===== on getVersion()           try                     tell application theApp to return version           on error                     return "1"           end try end getVersion --===== on parleAnglais()           local z           try                     tell application theApp to set z to localized string "Cancel"           on error                     set z to "Cancel"           end try           return (z is not "Annuler") end parleAnglais --===== on prepareMessages()           if my parleAnglais() then                     set msg1 to "Don’t click when the script is running." & return & "Except, of course, if it ask for."                     set msg90 to "No problem during the export process."                     set msg91 to "Package"                     set msg92 to "Not a " & theApp & "’s document"                     --                     set msg94 to theApp & " can’t read it"                     set msg96 to "Not copied."                     set msg99 to "Oops"           else                     set msg1 to "Éviter de cliquer durant l’exécution du script" & return & "sauf s’il le demande."                     set msg90 to "Exportation réussie sans incident."                     set msg91 to "Package"                     set msg92 to "Pas un document " & theApp                     --                     set msg94 to theApp & " n’a pas pu le lire"                     set msg96 to "Pas copié."                     set msg99 to " Vu "           end if           set msg91 to "### " & msg91 & " ###  "           set msg92 to "### " & msg92 & " ###  "           --           set msg94 to "### " & msg94 & " ###  "           set msg96 to "### " & msg96 & " ###  " end prepareMessages --===== --[/SCRIPT]

    Try this app: http://tyorex.com/iWorkConverter
    Batch convert Pages files to doc and pdf.

  • How can I convert an xls file to a txt file

    I would like to know How I can convert an xls file to a txt file.

    Look for this on google.com:
    "Java Excel API"
    With that, it would be easy to convert an excel file to flat text.

  • Convert an excel (*.xls) file to a xml file with Java Beans

    Hi to all............
    I am new to this ,
    I have a requirement that
    i want to read excel (*.xls ) file which is having some data going to be persist in database. Before going to persist process i want to read that data from xls file and convert those data into xml file.
    Can any one help me how can i do this using java classes?
    Please guide me what are the necessary libraries and requirements to do this?
    If any one have an idea then help me with some example code
    Thanks in advance for your great replay
    Sathish A

    this is the full stack trace i am getting jboss server console
    09:57:17,922 ERROR [application] org.w3c.dom.DOMException: INVALID_CHARACTER_ERR: An invalid or illegal XML character is specified.
    javax.faces.el.EvaluationException: org.w3c.dom.DOMException: INVALID_CHARACTER_ERR: An invalid or illegal XML character is specified.
         at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:102)
         at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
         at javax.faces.component.UICommand.broadcast(UICommand.java:387)
         at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:324)
         at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:299)
         at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:256)
         at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:469)
         at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
         at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
         at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
         at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
         at org.jboss.seam.web.IdentityFilter.doFilter(IdentityFilter.java:40)
         at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
         at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:86)
         at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
         at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
         at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
         at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
         at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
         at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
         at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
         at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
         at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
         at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:56)
         at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
         at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)
         at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
         at org.jboss.seam.web.HotDeployFilter.doFilter(HotDeployFilter.java:53)
         at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
         at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
         at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
         at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
         at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
         at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
         at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
         at java.lang.Thread.run(Thread.java:636)
    Caused by: org.w3c.dom.DOMException: INVALID_CHARACTER_ERR: An invalid or illegal XML character is specified.
         at org.apache.xerces.dom.CoreDocumentImpl.createElement(Unknown Source)
         at org.domain.DigesterDemo.session.ViewList.generateXML(ViewList.java:275)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
         at java.lang.reflect.Method.invoke(Method.java:616)
         at org.jboss.seam.util.Reflections.invoke(Reflections.java:22)
         at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:31)
         at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:56)
         at org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:28)
         at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
         at org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:77)
         at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
         at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:44)
         at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
         at org.jboss.seam.async.AsynchronousInterceptor.aroundInvoke(AsynchronousInterceptor.java:52)
         at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
         at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:107)
         at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:185)
         at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:103)
         at org.domain.DigesterDemo.session.ViewList_$$_javassist_2.generateXML(ViewList_$$_javassist_2.java)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
         at java.lang.reflect.Method.invoke(Method.java:616)
         at org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:329)
         at org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:342)
         at org.jboss.el.parser.AstPropertySuffix.invoke(AstPropertySuffix.java:58)
         at org.jboss.el.parser.AstValue.invoke(AstValue.java:96)
         at org.jboss.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
         at com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68)
         at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
         ... 51 more
    Thanks for your replay

  • Error occurred while converting the file "song name" the required folder cannot be found

    In ITunes 12, while trying to import from CDs I keep getting this message "error occurred while converting the file "song name". The required folder cannot be found". It will import 2 or 3 or 5 songs and then this message. I have tried multiple CDs, a few seem to work fine, but most don't import completely.

    I think I found out why this happens. I am using an external hard drive, not sure if this is relevant, but I believe so. I went into iTunes and deleted the songs, and asked that they be deleted from the library as well. Got same message when I tried to re-import. Went on to the external hard drive, where library is located, and none of the songs had been deleted. Deleted the songs, as well as the albums folder, re-imported, no problems. Hope that helps.

  • Receive message after importing serveral songs from CD into iTunes (latest ver 11.1.5.5)... "Error occurred while converting the file 'songname'.  The required folder cannot be found."  CD/DVD ROM is no longer recognized until restart.

    Consistently receive the following message after importing serveral songs from CD into iTunes (latest ver 11.1.5.5)...
    "Error occurred while converting the file 'songname'.  The required folder cannot be found." 
    CD/DVD ROM is no longer recognized until computer is restarted.

    I have the same problem.  I recently moved my music from a Vista PC to a new Laptop with an external CD drive. It will copy one song from the CD and it will show in the Music file and then I get the message ' Error importing a CD - Folder not found'.  I must unplug the CD drive and plug it back in.  I have seen no fix for this problem.

  • How convert pdf,xls file format into swf

    Hi friends
                   i am making a tool for wducation site and there i need to convert doc xls and pdf file in swf in runtime and show that in container with cropping and panning functionality.so i do it for doc file format but having no idea how to convert .pdf file format and .xls file format into swf.So please guide me how to do it.
    Thanks And Regards
        Vineet Osho

    QuickTime cannot do this of iteslf: you need to add Flip4Mac:
    http://www.telestream.net/flip4mac-wmv/overview.htm

  • Converting OBIEE Answers / Interactive Dashboards into .pdf or .xls files

    Hi all;
    I’m a freshie here as well as in Business Intelligence industry. Right now, without prior knowledge about this tool, I’m working in OBIEE answer.
    Is it possible for us to convert OBIEE answer report/dashboard into .pdf or .xls files? Other tools like Cognos and Business Object have their own utilities to convert the tool’s reports into those formats. I believe OBIEE also have that essential, but untill now, i couldn’t find it.

    You can download Reports on Dashboard to PDF and HTML from:
    Click Printer Friendly icon placed at bottom left corner and PDF or HTML.
    You can download individual reports on Dashboard:
    Page Options ==> Edit ==> Report Properties ==> Report Links. Check the options you want to see below the report.

  • How to convert spool object to XLS file in background job? (please..urgent)

    Hello all.
    My requirment is to convert a spool object to an XLS file in the background (and send it via mail).
    Is it possible?
    If so, please help!
    please attach a code sample if you have one...
    Thanks allot.
    Barak.

    hi ,
    this might healp you ought
    TABLES: TBTCP, T024D.
    *PARAMETERS TEST(5).
    DATA: TJOBNAME LIKE TBTCP-JOBNAME VALUE 'REJ_COMP_MAIL_TO_MRP',
          SPOOLID LIKE TSP01-RQIDENT,
         V_LGORT LIKE MSEG-LGORT,
          V_DISPO LIKE T024D-DISPO,
          V_REPORT TYPE RSVAR-REPORT,
          V_VARIANT TYPE RSVAR-VARIANT.
    DATA: BEGIN OF VVALUES OCCURS 0.
            INCLUDE STRUCTURE RSPARAMS.
    DATA END OF VVALUES.
    DATA : BEGIN OF T_RECEIVERS OCCURS 0.
            INCLUDE STRUCTURE SOMLRECI1.
    DATA END OF T_RECEIVERS.
    DATA: BEGIN OF T_TBTCP,
         jobname like tbtcp-jobname,
         jobcount like tbtcp-jobcount,
          LISTIDENT LIKE TBTCP-LISTIDENT,
          SDLDATE LIKE TBTCP-SDLDATE,
          SDLTIME LIKE TBTCP-SDLTIME,
          VARIANT LIKE TBTCP-VARIANT,
          END OF T_TBTCP,
          ITAB_SPOOL LIKE STANDARD TABLE OF T_TBTCP,
          WA_SPOOL LIKE T_TBTCP.
    DATA: PLIST LIKE SOPCKLSTI1 OCCURS 2 WITH HEADER LINE.
    DATA: DOCUMENT_DATA LIKE SODOCCHGI1.
    DATA: OBJTXT LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE.
    DATA: SO_ALI LIKE SOLI OCCURS 100 WITH HEADER LINE,
          REAL_TYPE LIKE SOODK-OBJTP,
          SP_LANG LIKE TST01-DLANG, LINE_SIZE TYPE I VALUE 255,
          V_NAME LIKE SOEXTRECI1-RECEIVER.
    DATA: GD_EVENTID LIKE TBTCM-EVENTID,
          GD_EVENTPARM LIKE TBTCM-EVENTPARM,
          GD_EXTERNAL_PROGRAM_ACTIVE LIKE TBTCM-XPGACTIVE,
          GD_JOBCOUNT LIKE TBTCM-JOBCOUNT,
          GD_JOBNAME LIKE TBTCM-JOBNAME,
          GD_STEPCOUNT LIKE TBTCM-STEPCOUNT,
          GD_ERROR    TYPE SY-SUBRC,
          GD_RECIEVER TYPE SY-SUBRC.
    START-OF-SELECTION.
      PERFORM GET_SPOOL_REQNUMBER USING TJOBNAME. " CHANGING SPOOLID.
      PERFORM SEND_MAIL.
    PERFORM REMOVE_BLANK_SPOOLS.
    *&      Form  GET_SPOOL_REQNUMBER
          text
         -->P_0111   text                                                *
         <--P_UU  text                                                   *
    FORM GET_SPOOL_REQNUMBER USING P_0111.
      SELECT ALISTIDENT BSTRTDATE BSTRTTIME AVARIANT
       FROM TBTCP AS A INNER JOIN TBTCO AS B
            ON AJOBNAME EQ BJOBNAME AND
               AJOBCOUNT EQ BJOBCOUNT AND
               ASTEPCOUNT EQ BSTEPCOUNT
       INTO TABLE ITAB_SPOOL
          WHERE AJOBNAME = P_0111 AND BSTRTDATE EQ SY-DATUM.
    ENDFORM.                    " GET_SPOOL_REQNUMBER
    *&      Form  send_mail
          text
    -->  p1        text
    <--  p2        text
    FORM SEND_MAIL .
    Get the spool data.
      LOOP AT ITAB_SPOOL INTO WA_SPOOL.
        REFRESH : SO_ALI, PLIST, T_RECEIVERS.
        CLEAR : SO_ALI, PLIST, V_NAME, DOCUMENT_DATA, T_RECEIVERS, SPOOLID,
                V_REPORT, V_VARIANT, V_DISPO.
        IF WA_SPOOL-LISTIDENT <> '0'.
          MOVE WA_SPOOL-LISTIDENT TO SPOOLID.
          CALL FUNCTION 'RSPO_RETURN_SPOOLJOB'
            EXPORTING
              RQIDENT              = SPOOLID
              FIRST_LINE           = 1
              LAST_LINE            = 0
              DESIRED_TYPE         = ' '
            IMPORTING
              REAL_TYPE            = REAL_TYPE
              SP_LANG              = SP_LANG
            TABLES
              BUFFER               = SO_ALI
            EXCEPTIONS
              NO_SUCH_JOB          = 1
              JOB_CONTAINS_NO_DATA = 2
              SELECTION_EMPTY      = 3
              NO_PERMISSION        = 4
              CAN_NOT_ACCESS       = 5
              READ_ERROR           = 6
              TYPE_NO_MATCH        = 7
              OTHERS               = 8.
    Check the return code.
          IF SY-SUBRC <> 0.
            MESSAGE S208(00) WITH 'Error'.
            LEAVE LIST-PROCESSING.
          ENDIF.
    DATA : DATE LIKE SY-DATUM,
           DATE1(10) TYPE C.
    Prepare the data.
    CLEAR OBJTXT.
    REFRESH OBJTXT.
    DATE = SY-DATUM - 1.
    CONCATENATE DATE6(2) '-' DATE4(2) '-' DATE+0(4) INTO DATE1.
    CONCATENATE 'PLEASE CHECK THE LIST OF REJECTED MATERIALS POSTED ON :' DATE1 INTO OBJTXT.
    APPEND OBJTXT.
    SELECT SINGLE DSNAM FROM T024D INTO T024D-DSNAM WHERE WERKS = '1000' AND DISPO = WA_SPOOL-VARIANT.
    CONCATENATE 'MRP CONTROLLER :' WA_SPOOL-VARIANT '-' T024D-DSNAM INTO OBJTXT.
    APPEND OBJTXT.
    OBJTXT = ''.
    APPEND OBJTXT.
    CLEAR PLIST.
    REFRESH PLIST.
    PLIST-TRANSF_BIN = SPACE.
    PLIST-HEAD_START = 1.
    PLIST-HEAD_NUM = 0.
    PLIST-BODY_START = 1.
    DESCRIBE TABLE OBJTXT LINES PLIST-BODY_NUM.
    PLIST-DOC_TYPE = 'RAW'.
    APPEND PLIST.
    CLEAR PLIST.
         PLIST-TRANSF_BIN = 'X'.
         PLIST-HEAD_START = 0.
         PLIST-HEAD_NUM = 0.
         PLIST-BODY_START = 0.
         PLIST-BODY_NUM = 0.
         PLIST-DOC_TYPE = 'RAW'.
          PLIST-OBJ_DESCR = WA_SPOOL-VARIANT.
         APPEND PLIST.
          PLIST-TRANSF_BIN = 'X'.
          PLIST-HEAD_START = 0.
          PLIST-HEAD_NUM = 0.
          PLIST-BODY_START = 1.
          DESCRIBE TABLE SO_ALI LINES PLIST-BODY_NUM.
          PLIST-DOC_TYPE = REAL_TYPE.
    Get the size.
          READ TABLE SO_ALI INDEX PLIST-BODY_NUM.
          PLIST-DOC_SIZE = ( PLIST-BODY_NUM - 1 ) * LINE_SIZE + STRLEN( SO_ALI ).
          APPEND PLIST.
    ***get the values of the variant
          MOVE : WA_SPOOL-VARIANT TO V_VARIANT.
          SELECT * FROM TBTCP WHERE JOBNAME EQ TJOBNAME ORDER BY SDLDATE.
            MOVE TBTCP-PROGNAME TO V_REPORT.
          ENDSELECT.
          CALL FUNCTION 'RS_VARIANT_VALUES_TECH_DATA'
            EXPORTING
              REPORT                     = V_REPORT
              VARIANT                    = V_VARIANT
            SEL_TEXT                   = ' '
            MOVE_OR_WRITE              = 'W'
            SORTED                     = ' '
            EXECUTE_DIRECT             =
          IMPORTING
            TECHN_DATA                 =
            TABLES
              VARIANT_VALUES             = VVALUES
           EXCEPTIONS
             VARIANT_NON_EXISTENT       = 1
             VARIANT_OBSOLETE           = 2
             OTHERS                     = 3.
          LOOP AT VVALUES.
            CASE VVALUES-SELNAME.
              WHEN 'S_DISPO'.
               MOVE VVALUES-LOW TO V_LGORT.
                MOVE VVALUES-LOW TO V_DISPO.
            ENDCASE.
          ENDLOOP.
          SELECT SINGLE USRKEY FROM T024D INTO T024D-USRKEY WHERE WERKS EQ '1000' AND DISPO EQ V_DISPO.
          IF SY-SUBRC EQ 0.
            T_RECEIVERS-RECEIVER = T024D-USRKEY.
            T_RECEIVERS-REC_TYPE = 'U'.
            APPEND T_RECEIVERS.
          IF V_DISPO = '3'   OR V_DISPO = '5'   OR
             V_DISPO = '21'  OR V_DISPO = '48'  OR
             V_DISPO = '51'  OR V_DISPO = '231' OR
             V_DISPO = '512' OR V_DISPO = '921'.
            T_RECEIVERS-RECEIVER = 
            T_RECEIVERS-REC_TYPE = 'U'.
            T_RECEIVERS-COPY = 'X'.
            APPEND T_RECEIVERS.
          ENDIF.
          IF V_DISPO = '14'  OR V_DISPO = '86'  OR
             V_DISPO = '515' OR V_DISPO = '704' OR
             V_DISPO = '711' OR V_DISPO = '712' OR
             V_DISPO = '713'.
            T_RECEIVERS-RECEIVER =
            T_RECEIVERS-REC_TYPE = 'U'.
            T_RECEIVERS-COPY = 'X'.
            APPEND T_RECEIVERS.
          ENDIF.
           T_RECEIVERS-RECEIVER = *        T_RECEIVERS-REC_TYPE = 'U'.
           T_RECEIVERS-COPY = 'X'.
           APPEND T_RECEIVERS.
           T_RECEIVERS-RECEIVER = *        T_RECEIVERS-REC_TYPE = 'U'.
           T_RECEIVERS-BLIND_COPY = 'X'.
           APPEND T_RECEIVERS.
          ENDIF.
          IF NOT SP_LANG IS INITIAL.
            DOCUMENT_DATA-OBJ_LANGU = SP_LANG.
          ELSE.
            DOCUMENT_DATA-OBJ_LANGU = SY-LANGU.
          ENDIF.
          V_NAME = SY-UNAME.
    Subject.
    CONCATENATE 'List of Rejected Materials, MRP Controller:' WA_SPOOL-VARIANT
                INTO DOCUMENT_DATA-OBJ_DESCR.
    Send the email.
          CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
            EXPORTING
              DOCUMENT_DATA              = DOCUMENT_DATA
              SENDER_ADDRESS             = V_NAME
              SENDER_ADDRESS_TYPE        = 'B'
            TABLES
              PACKING_LIST               = PLIST
              CONTENTS_BIN               = SO_ALI
              CONTENTS_TXT               = OBJTXT
              RECEIVERS                  = T_RECEIVERS
            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 E208(00) WITH 'Error in sending email'.
          ENDIF.
          COMMIT WORK.
    Send the email immediately.
          SUBMIT RSCONN01
          WITH MODE = 'INT'
          AND RETURN.
          IF SY-SUBRC EQ 0.
            WRITE 'To get the spool no'.
            CALL FUNCTION 'GET_JOB_RUNTIME_INFO'
              IMPORTING
                EVENTID                 = GD_EVENTID
                EVENTPARM               = GD_EVENTPARM
                EXTERNAL_PROGRAM_ACTIVE = GD_EXTERNAL_PROGRAM_ACTIVE
                JOBCOUNT                = GD_JOBCOUNT
                JOBNAME                 = GD_JOBNAME
                STEPCOUNT               = GD_STEPCOUNT
              EXCEPTIONS
                NO_RUNTIME_INFO         = 1
                OTHERS                  = 2.
            IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
            ENDIF.
            WRITE : / 'Spool id of the job that is sent', SPOOLID,
                     GD_EVENTID,
                     GD_EVENTPARM,
                     GD_EXTERNAL_PROGRAM_ACTIVE,
                     GD_JOBCOUNT,
                     GD_JOBNAME,
                     GD_STEPCOUNT.
          ENDIF.
        ENDIF.
      ENDLOOP.
    ENDFORM.                    " send_mail
    *&      Form  remove_blank_spools
          text
    -->  p1        text
    <--  p2        text
    *FORM REMOVE_BLANK_SPOOLS .
    LOOP AT ITAB_SPOOL INTO WA_SPOOL.
       MOVE WA_SPOOL-LISTIDENT TO SPOOLID.
       CALL FUNCTION 'RSPO_ISELECT_TSP01'
         EXPORTING
           RFCSYSTEM        = SY-SYSID
           RQIDENT          = SPOOLID
      FORUPDATE        = ' '
        IMPORTING
          TSP01_ELEM       = W_INFO
        EXCEPTIONS
          ERROR            = 1
          OTHERS           = 2.
       CALL FUNCTION 'RSPO_IRETURN_RAW_DATA'
         EXPORTING
           RQ                 = W_INFO
         TABLES
          LINE_BUFFER        = W_DATA
       PAGE_INDEX         = W_PAGES
          LINE_BUFFER2       =
        EXCEPTIONS
          ERROR              = 1
          OTHERS             = 2.
       IF W_INFO-RQDOCTYPE = 'LIST'.
         CALL FUNCTION 'RSPO_R_GET_TOC_SPOOLREQ'
           EXPORTING
             RQIDENT = SPOOLID
           TABLES
             TOCDESC = W_TODESC
           EXCEPTIONS
             ERROR   = 1
             OTHERS  = 2.
         CALL FUNCTION 'RSPO_SPOOLDATA_WRITE_INIT'.
         READ TABLE W_DATA WITH KEY DATA_LINE = 'List contains no data'.
         LOOP AT W_DATA.
           IF W_DATA-DATA_LINE CP 'List contains no data'.
           ENDIF.
         ENDLOOP.
       ENDIF.
    ENDLOOP.
    *ENDFORM.                    " remove_blank_spools

Maybe you are looking for

  • How do you reorder pages in documents under Pages 5

    Can't seem to move/reorder and pages in the new Pages 5.  Any ideas?

  • PDF Generation with Digital Signature

    Hi All, We have a requirement to attach digital signature to the generated PDF output. I am trying to use 'SSF' function modules from the function group 'SSFG' to achieve this. Can anyone let me know the detailed steps to attach digital signature to

  • To find Administrators SAP ID in SRM

    Hi all, I wanted to find the table from which i can get the Administrators Id or function module for the same. This is in SRM 5.0 system. I have a requirement where if any id doesnt have an email it should take the email id of Administrators and send

  • Best way to export a huge project?! HELP

    i have recently finished putting together a 2.5 hour movie and i do not know which route to take for export. i plan on creating DVDs with iDVD. should i use quicktime movie or quicktime conversion? Thank you for your assitance. Austin StrikerFilmsINC

  • Preparing the initial data load

    Hallo again, what is the best approach to delete all the test data in our SoD environment? Batch delete or via web services? Any best practices, experiences and suggestions are welcome... Thanks in advance Michael