Server value in content header

Looking at the content header of web pages I am serving to a web browser from Sun Java System Web Server 6.1 SP7, the value of the Server: value is an empty string. How do I control this so that the value is a string reflecting the name of the web server ?

Can you send your magnus.conf? If it has a line starting with "ServerString" remove it.

Similar Messages

  • BC Ecommerce SOAP Error: Server did not recognize the value of HTTP Header SOAPAction

    I am trying to add a product to an ecommerce site with this soap action: Product_UpdateInsert
    I have followed this very brief instruction: https://jollyrogers.worldsecuresystems.com/catalystwebservice/catalystecommercewebservice. asmx?op=Product_UpdateInsert
    I have a html page in a secure area with a jQuery ajax soap script.
    I get the this error when I run the script:
    <?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><soap:Fault><faultcode>soap:Client</faultcode><faultstring>Server did not recognize the value of HTTP Header SOAPAction: https://jollyrogers.worldsecuresystems.com/CatalystDeveloperService/CatalystEcommerceWebse rvice/Product_UpdateInsert.</faultstring><detail /></soap:Fault></soap:Body></soap:Envelope>
    I have also tried to add a header with the Soap action with the beforeSend in the ajax call.
    This must have been solved before I suppose?
    Here is my script:
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <title>Test SOAP Request</title>
        <script type="text/javascript" src="//code.jquery.com/jquery-1.10.2.min.js"></script>
        <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.3.1/jquery.cookie.min.js"></script>
        <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.5.1/underscore-min.js"></script>
        <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/backbone.js/1.0.0/backbone-min.js"></script>
        <script type="text/javascript" src="//cdn.worldsecuresystems.com/bcapi/bcapi-0.0.1.min.js"></script>
    </head>
    <body>
    <script>
    var wsUrl = "https://jollyrogers.worldsecuresystems.com/catalystwebservice/catalystecommercewebservice. asmx";
    var soapRequest =
    '<?xml version="1.0" encoding="utf-8"?> \
    <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> \
      <soap12:Body> \
        <Product_UpdateInsert xmlns="https://jollyrogers.worldsecuresystems.com/CatalystDeveloperService/CatalystEcommerceWebse rvice"> \
          <username>myEmailAdress</username> \
          <password>mySecretPassw</password> \
          <siteId>1894001</siteId> \
          <productList> \
            <Products> \
              <productCode>ZJAWEyuuyN</productCode> \
              <productName>My test product</productName> \
              <description>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</description> \
              <smallImage>/images/product1/small.jpg</smallImage> \
              <largeImage>/images/product1/large.jpg</largeImage> \
             <cataloguesArray> \
                 <string>/Store/</string> \
              </cataloguesArray> \
              <pricesSaleArray> \
                <string>US/19.95,3/17.96,7/16.96</string> \
              </pricesSaleArray> \
              <pricesRetailArray> \
                <string>US/20,5/19,8/20</string> \
              </pricesRetailArray> \
              <pricesWholesaleArray> \
                <string>US/20,5/19,8/20</string> \
              </pricesWholesaleArray> \
              <wholesaleTaxCodeArray> \
                <string>US/0.00</string> \
              </wholesaleTaxCodeArray> \
              <taxCodeArray> \
                <string>GB/VAT</string> \
              </taxCodeArray> \
              <groupProducts> \
                <string>580H0036BL</string> \
                <string>ACAI60</string> \
                <string>ABC-123</string> \
              </groupProducts> \
              <groupProductsDescriptions> \
                <string>Lorem ipsum dolor sit amet</string> \
                <string>consectetur adipisicing elit</string> \
              </groupProductsDescriptions> \
              <supplierEntityId>1234</supplierEntityId> \
              <supplierCommission>0</supplierCommission> \
              <weight>30</weight> \
              <tags>NEW!</tags> \
              <unitType>string</unitType> \
              <minUnits>0</minUnits> \
              <maxUnits>2</maxUnits> \
              <inStock>43</inStock> \
              <onOrder>3</onOrder> \
              <reOrder>2</reOrder> \
              <inventoryControl>true</inventoryControl> \
              <canPreOrder>true</canPreOrder> \
              <custom1>Text in custom field 1</custom1> \
              <custom2>Text in custom field 2</custom2> \
              <custom3>Text in custom field 3</custom3> \
              <custom4>Text in custom field 4</custom4> \
              <popletImages>/images/image1.jpg;/images/image2.jpg;</popletImages> \
              <enabled>true</enabled> \
              <deleted>false</deleted> \
              <captureDetails>true</captureDetails> \
              <downloadLimitCount>20</downloadLimitCount> \
              <limitDownloadsToIP>0</limitDownloadsToIP> \
              <isOnSale>true</isOnSale> \
              <hideIfNoStock>true</hideIfNoStock> \
              <productAttributes>Size*|5|Y:L||UK/2|US/20,S||UK/1|US/10</productAttributes> \
              <isGiftVoucher>false</isGiftVoucher> \
              <enableDropShipping>true</enableDropShipping> \
              <productWeight>0</productWeight> \
              <productWidth>0</productWidth> \
              <productHeight>0</productHeight> \
              <productDepth>0</productDepth> \
              <excludeFromSearch>false</excludeFromSearch> \
              <productTitle>My product title</productTitle> \
              <cycletypeId>3</cycletypeId> \
              <cycletypeCount>-1</cycletypeCount> \
              <slug>my-product</slug> \
              <hasVariations>true</hasVariations> \
              <variations> \
                <ProductVariation xsi:nil="true" /> \
                <ProductVariation xsi:nil="true" /> \
              </variations> \
            </Products> \
          </productList> \
        </Product_UpdateInsert> \
      </soap12:Body> \
    </soap12:Envelope>';
    $.ajax({
         type: "POST",
         beforeSend: function(xhr){xhr.setRequestHeader('SOAPAction', 'https://jollyrogers.worldsecuresystems.com/CatalystDeveloperService/CatalystEcommerceWebse rvice/Product_UpdateInsert');},
         url: wsUrl,
         contentType: "text/xml",
         dataType: "xml",
         data: soapRequest,
         success: processSuccess,
         error: processError
    function processSuccess(data, status, req)
       if (status == "success")
       alert("Success!");
    function processError(data, status, req)
       alert("Failed!");
       alert(req.responseText + " " + status);
    </script>
    </body>
    </html>

    This line is a target namespace so it should not be changed: <Product_Retrieve xmlns="http://tempuri.org/CatalystDeveloperService/CatalystEcommerceWebservice"> It is very easy to think that it's a placeholder and that it should be replaced with your own url, which it should not and which will fail.
    This works now:
    <!DOCTYPE html>
    <html lang="en">
        <head>
            <title>Test 7 SOAP Request</title>
            <script type="text/javascript" src="//code.jquery.com/jquery-1.10.2.min.js"></script>
        </head>
        <body>
            <script>    
                var SoapMessage = '<?xml version="1.0" encoding="utf-8"?> \
    <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> \
    <soap12:Body> \
    <Product_Retrieve xmlns="http://tempuri.org/CatalystDeveloperService/CatalystEcommerceWebservice"> \
    <username>Your Email</username> \
    <password>Your password</password> \
    <siteId>1894001</siteId> \
    <productCode>HHKDKXS5MB</productCode> \
                </Product_Retrieve> \
                </soap12:Body> \
                </soap12:Envelope>';
                var url = "https://jollyrogers.worldsecuresystems.com/catalystwebservice/catalystecommercewebservice. asmx";
                $.support.cors = true;
                $.ajax({
                    type: "POST",
                    url: url,
                    data: SoapMessage,
                    dataType: "xml",
                    processData: true,
                    contentType: "text/xml; charset=\"utf-8\"",
                    success: function (msg) {
                        alert("suc: " + msg);
                    error: function (msg) {
                        alert("Failed: " + msg);
            </script>
        </body>
    </html>   

  • Server did not recognize the value of HTTP Header SOAPAction: .

    hello friends,
    I am wrote a WebService client as below
    import org.apache.axis.client.Call;
    import org.apache.axis.client.Service;
    import javax.xml.namespace.QName;
    public class AtmuClient
    public static void main(String [] args) {
    try {
    String req="request";
    String endpoint ="http://10.1.3.104/mims/service.asmx?WSDL";
    String nameSpaceUri = "http://www.cum.com/MIMS";
    Service service = new Service();
    Call call = (Call) service.createCall();
    call.setTargetEndpointAddress( new java.net.URL(endpoint) );
    call.setOperationName(new QName(nameSpaceUri, "echoString") );
    String ret = (String) call.invoke( new Object[] { req } );
    System.out.println("Sent 'Hello!', got '" + ret + "'");
    } catch (Exception e) {
    System.err.println(e.toString());
    the out put I am getting is
    Server did not recognize the value of HTTP Header SOAPAction: .
    what still I need to incorporate to my code. Do i need to add any methods still ? and one more thing is do i need to write WSDD for this? how ?. can any bady guide me
    thanQ for any greatful guidance.
    HAN.

    Try setting an empty header object for the Call
    SOAPContext ctx = new SOAPContext();
         Header header = new Header();
         Call call = new Call("", "", params, header, "", ctx);   Regards
    Byju Joy

  • How to delete value in the header line of itab

    dear all,
    i have create an internal table.
    i would like to delete value of the header line after have used read table to read the contents.
    how can i do it ?

    If your internal table is something like this:
    data: begin of i_mara occurs 0.
    include structure mara.
    data: end of i_mara.
    That clears the matnr field of the header line...
    CLEAR i_mara-matnr.

  • Cdparanoia 004: Unable to read table of contents header

    Hi. I've been trying to rip wavs with grip but it was unable to locate any audio cd even though I could explore it from my desktop (xfce 4.10) and I am part of the optical group. Because of this, I tried running cdparanoia from the terminal.
    Running the next command: cdparanoia -vsQ displays the next warning:
    cdparanoia III release 10.2 (September 11, 2008)
    Using cdda library version: 10.2
    Using paranoia library version: 10.2
    Checking /dev/cdrom for cdrom...
        Testing /dev/cdrom for SCSI/MMC interface
            SG_IO device: /dev/sr0
    CDROM model sensed sensed: ASUS DVD-E616P3H 1.04
    Checking for SCSI emulation...
        Drive is ATAPI (using SG_IO host adaptor emulation)
    Checking for MMC style command set...
        Drive is MMC style
    004: Unable to read table of contents header
    Unable to open disc.  Is there an audio CD in the drive?
    if I try to listen a track from an external application like mplayer it won't play any audio but if I manually locate the audio and choose them an application to play, they will. Also, the hardware itself is functional since I ripped music from a debian squeeze (dvd) installation.
    Finally If it's useful, I used gvfs and exec ck-launch-session dbus-launch startxfce4 in my .xinitrc to mount usb and other devices automatically
    Thanks in advance

    You removed all mailboxes (.mbox files) located within this problem account named folder at Home > Library > Mail and the same occurs when re-launching Mail?
    The TableofContents file is a package file for a .mbox so it is hidden.
    I'm not sure how you removed all mailboxes for this account but quit Mail first and using the Finder, go to Home > Library > Mail > this POP account named folder (named by the user name and incoming mail server for the account). Move the account named folder to the Desktop.
    Launch Mail and if it launches successfully without locking up and quitting, a new account named folder will be created automatically by Mail within the account named folder.
    All email clients have limits and the recommended size limit for a Jaguar or Panther mailbox is 1GB and for Tiger Mail, 2GB.
    An "overstuffed" mailbox issue can occur at any mailbox size (which means the mailbox has some corruption and/or is over the recommended size limit) but is more likely to occur depending on the number and size of message attachments contained in a mailbox and especially as a Jaguar or Panther mailbox approaches or exceeds 1GB in size.
    Since an account's Inbox mailbox is usually the most active mailbox, it is not a good idea to use an account's Inbox mailbox as the final storage location for all received messages not deleted.

  • Uploading Page Blob to Azure - Storage Exception: Make sure the value of Authorization header is formed correctly

    I am using Microsoft Azure Java SDK for Uploading Page Blobs (Size: 20G/40G). IN mid of Uploading, SDK throws Storage Exception:
    java.io.IOException: null
    at com.microsoft.azure.storage.core.Utility.initIOException(Utility.java:584) ~[classes/:na]
    at com.microsoft.azure.storage.blob.BlobOutputStream$2.call(BlobOutputStream.java:414) ~[classes/:na]
    at com.microsoft.azure.storage.blob.BlobOutputStream$2.call(BlobOutputStream.java:398) ~[classes/:na]
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) ~[na:1.7.0_25]
    at java.util.concurrent.FutureTask.run(FutureTask.java:166) ~[na:1.7.0_25]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) ~[na:1.7.0_25]
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) ~[na:1.7.0_25]
    at java.util.concurrent.FutureTask.run(FutureTask.java:166) ~[na:1.7.0_25]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) ~[na:1.7.0_25]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) ~[na:1.7.0_25]
    at java.lang.Thread.run(Thread.java:724) ~[na:1.7.0_25]
    Caused by: com.microsoft.azure.storage.StorageException: Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature.
    at com.microsoft.azure.storage.StorageException.translateException(StorageException.java:162) ~[azure-storage-1.2.0.jar:na]
    at com.microsoft.azure.storage.core.StorageRequest.materializeException(StorageRequest.java:306) ~[azure-storage-1.2.0.jar:na]
    at com.microsoft.azure.storage.core.ExecutionEngine.executeWithRetry(ExecutionEngine.java:178) ~[classes/:na]
    at com.microsoft.azure.storage.blob.CloudPageBlob.putPagesInternal(CloudPageBlob.java:642) ~[classes/:na]
    at com.microsoft.azure.storage.blob.CloudPageBlob.uploadPages(CloudPageBlob.java:971) ~[classes/:na]
    at com.microsoft.azure.storage.blob.BlobOutputStream$2.call(BlobOutputStream.java:402) ~[classes/:na]
    ... 9 common frames omitted
    SDK Version:
    <groupId>com.microsoft.azure</groupId>
    <artifactId>azure-storage</artifactId>
    <version>1.2.0</version>
    Please note this error shows up in the mid of Upload randomly: For example: Transferred bytes: 27325890560 out of total 42949673472 successfully and then fails with Exception pasted above.
    Is there a chance of time drift on a Linux Box causing this issue ? Any other pointers would help.
    Thanks.

    Hi Kriti,
    We believe its a timing issue. Would you be able to refer the following link and check if it helps?
    http://blogs.msdn.com/b/kwill/archive/2013/08/28/http-403-server-failed-to-authenticate-the-request-when-using-shared-access-signatures.aspx
    If not, would you be able to share the fiddler trace for this?
    Regards,
    Malar.

  • Need to display a value before the header based on a user parameter.

    I have a select on the user parameter list of values.
    SELECT DISTINCT GROUP_ROWID, STR_GROUP_NAME
    FROM TBL_COMPANY_GROUP;
    I select the option hide the first column in order to show only a list of values and not the row_ids.
    I need to display the str_group_name within the header as a title. I insert a field in the header and in source select the name of the parameter p_groupid but the only thing that I get is the row_id value not the name. I use the row_id to pass it on my queries but I need the name value in the header. Any ideas? Please help.
    Thanks.

    create a parameter called p_header.
    in the after parameter form trigger
    select str_group_name into :p_header
    from tbl_company_group
    where group_id = :p_groupid;Have the header field source be p_header.

  • FIELD VALUE IN ALV HEADER

    Hi friends,
    I make one header alv ok I want and take one variable count in my program so I want to display its value in ALV HEADER
    Total Target Qty:
    Total EMP. Efficiency 
    Total Machine Effi. 
    I take may header like this and pass thre text here.ok Now I want to display value of this three.
    Total Trget Qty: 2.23 like that.
    CLEAR st_line.
      st_line-typ = 'S'.
      CONCATENATE 'Total Target Qty: '  count     ' ' INTO st_line-info.
      APPEND st_line TO t_list_top_of_page.
    So I took like this in header count is my variable in which I take value.
    So how can we pass the value in ALV Header please tell me.
    its urgent so.
    Thnaks in Advance.
    Prashant.

    HI DHWANI,
    *& Report  ZPP_RE_EMP_DETAILS
    *& This Report is used to check the Employee Performance And Used Machine Quantity
    *& Rqueirement By Santhosh
    *& Developed By Prashant On Date 01.02.2008
    *&  Created By: Prashant Brahmbhatt
    *&  Creation Date: 20080201
    *&  Module: PP (Production & Plannig)
    *&  Changed By         Changed Date        Reason
    REPORT  zpp_re_emp_details.
    TABLES:zpplan.
    TYPE-POOLS:slis.
    DATA:BEGIN OF itab OCCURS 0,
         zdate LIKE zpplan-zdate,
         werks LIKE zpplan-werks,
         mname LIKE zpplan-mname,
         shftin LIKE zpplan-shftin,
         iserh LIKE zpplan-iserh,
         quaty LIKE zpplan-quaty,
         plan_qty LIKE zpplan-plan_qty,
         act_prod LIKE zpplan-act_prod,
         temp TYPE c,
         tar_qty(10) TYPE c,
         ach_qty(10) TYPE c,
         mch_eff(10) TYPE c,
        a(10) TYPE c,
         END OF itab.
    DATA:BEGIN OF temp OCCURS 0,
         zdate LIKE zpplan-zdate,
         werks LIKE zpplan-werks,
         mname LIKE zpplan-mname,
         shftin LIKE zpplan-shftin,
         iserh LIKE zpplan-iserh,
         quaty LIKE zpplan-quaty,
         plan_qty LIKE zpplan-plan_qty,
         act_prod LIKE zpplan-act_prod,
         temp TYPE c,
         tar_qty(10) TYPE c,
         ach_qty(10) TYPE c,
         mch_eff(10) TYPE c,
        a(10) TYPE c,
         END OF temp.
    DATA:BEGIN OF itab_t OCCURS 0,
         zdate LIKE zpplan-zdate,
         werks LIKE zpplan-werks,
         mname LIKE zpplan-mname,
         shftin LIKE zpplan-shftin,
         iserh LIKE zpplan-iserh,
         quaty LIKE zpplan-quaty,
         plan_qty LIKE zpplan-plan_qty,
         act_prod LIKE zpplan-act_prod,
         temp TYPE c,
         tar_qty(10) TYPE c,
         ach_qty(10) TYPE c,
         mch_eff(10) TYPE c,
        a(10) TYPE c,
         END OF itab_t.
    DATA:BEGIN OF itab1 OCCURS 0,
         zdate LIKE zpplan-zdate,
         werks LIKE zpplan-werks,
         mname LIKE zpplan-mname,
         shftin LIKE zpplan-shftin,
         act_prod LIKE zpplan-act_prod,
         quaty LIKE zpplan-quaty,
         planned LIKE zpplan-planned,
         iserh LIKE zpplan-iserh,
         temp TYPE c,
         tar_qty TYPE p DECIMALS 2,
         ach_qty TYPE p DECIMALS 2,
         mch_eff TYPE p DECIMALS 2,
         END OF itab1.
    DATA: wa LIKE  itab1.
    DATA:BEGIN OF itab2 OCCURS 0,
         zdate LIKE zpplan-zdate,
         werks LIKE zpplan-werks,
         mname LIKE zpplan-mname,
         shftin LIKE zpplan-shftin,
         act_prod LIKE zpplan-act_prod,
         quaty LIKE zpplan-quaty,
         planned LIKE zpplan-planned,
         iserh LIKE zpplan-iserh,
         temp TYPE c,
         tar_qty(10) TYPE p DECIMALS 2,
         ach_qty(10) TYPE p DECIMALS 2,
         mch_eff(10) TYPE p DECIMALS 2,
         count(10) TYPE c,
         END OF itab2.
    DATA: a(10) TYPE c,
          b(10) TYPE c,
          count(10) TYPE c,
          count1(10) TYPE c.
         c(2) TYPE p DECIMALS 2.
    DATA:t_fcat TYPE slis_t_fieldcat_alv,
         t_events TYPE slis_t_event,
         t_list_top_of_page TYPE slis_t_listheader,
         t_list_end_of_page TYPE slis_t_listheader.
    CONSTANTS:c_formname_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE'.
    CONSTANTS:c_formname_end_of_page TYPE slis_formname VALUE 'END_OF_PAGE'.
    DATA: st_line TYPE slis_listheader.
                  SELECTION-SCREEN
    SELECTION-SCREEN:BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.
    *PARAMETERS:shftin LIKE zpplan-shftin.
    SELECT-OPTIONS:date FOR zpplan-zdate,
                   shftin FOR zpplan-shftin,
                   werks FOR zpplan-werks.
    SELECTION-SCREEN:END OF BLOCK blk1.
                   ALV CALL
    INITIALIZATION.
      PERFORM build_fieldcatalog USING t_fcat .
      PERFORM event_call.
      PERFORM head_built USING t_events.
    START-OF-SELECTION.
      PERFORM data_retrieval.
      PERFORM display_alv.
    *&      Form  build_fieldcatalog
          text
         -->P_T_FCAT  text
    FORM build_fieldcatalog  USING temp_fcat TYPE slis_t_fieldcat_alv.
      DATA:w_fcat TYPE slis_fieldcat_alv.
      w_fcat-tabname = 'ITAB2'.
      w_fcat-fieldname = 'MNAME'.
      w_fcat-seltext_m = 'Machine Name'.
      APPEND w_fcat TO temp_fcat.
      CLEAR w_fcat.
      w_fcat-tabname = 'ITAB2'.
      w_fcat-fieldname = 'SHFTIN'.
      w_fcat-seltext_m = 'Emp No'.
      APPEND w_fcat TO temp_fcat.
      CLEAR w_fcat.
      w_fcat-tabname = 'ITAB2'.
      w_fcat-fieldname = 'ZDATE'.
      w_fcat-seltext_m = 'Pos Date'.
      APPEND w_fcat TO temp_fcat.
      CLEAR w_fcat.
    w_fcat-tabname = 'ITAB2'.
    w_fcat-fieldname = 'QUATY'.
    w_fcat-seltext_m = 'Quantity'.
    APPEND w_fcat TO temp_fcat.
    CLEAR w_fcat.
      w_fcat-tabname = 'ITAB2'.
      w_fcat-fieldname = 'ACT_PROD'.
      w_fcat-seltext_m = 'Actual Quantity'.
      APPEND w_fcat TO temp_fcat.
      CLEAR w_fcat.
      w_fcat-tabname = 'ITAB2'.
      w_fcat-fieldname = 'ISERH'.
      w_fcat-seltext_m = 'Down Time'.
      APPEND w_fcat TO temp_fcat.
      CLEAR w_fcat.
      w_fcat-tabname = 'ITAB2'.
      w_fcat-fieldname = 'TAR_QTY'.
      w_fcat-seltext_m = 'Target Qty.'.
      APPEND w_fcat TO temp_fcat.
      CLEAR w_fcat.
      w_fcat-tabname = 'ITAB2'.
      w_fcat-fieldname = 'ACH_QTY'.
      w_fcat-seltext_m = 'EMP Effec.'.
      APPEND w_fcat TO temp_fcat.
      CLEAR w_fcat.
      w_fcat-tabname = 'ITAB2'.
      w_fcat-fieldname = 'MCH_EFF'.
      w_fcat-seltext_m = 'Machine Effec.'.
      APPEND w_fcat TO temp_fcat.
      CLEAR w_fcat.
    w_fcat-tabname = 'ITAB2'.
    w_fcat-fieldname = 'COUNT'.
    w_fcat-seltext_m = 'Machine Effec.'.
    APPEND w_fcat TO temp_fcat.
    CLEAR w_fcat.
    ENDFORM.                    " build_fieldcatalog
    *&      Form  event_call
          text
    -->  p1        text
    <--  p2        text
    FORM event_call .
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
       EXPORTING
         i_list_type           = 0
       IMPORTING
         et_events             = t_events
      EXCEPTIONS
        LIST_TYPE_WRONG       = 1
        OTHERS                = 2
      IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    " event_call
    *&      Form  data_retrieval
          text
    -->  p1        text
    <--  p2        text
    FORM data_retrieval .
      IF shftin <> ''.
        SELECT zdate werks mname shftin  INTO CORRESPONDING FIELDS OF TABLE
         temp FROM zpplan
         WHERE shftin IN shftin
         AND zdate IN date
         AND werks IN werks.
      ELSE.
        SELECT zdate werks mname INTO CORRESPONDING FIELDS OF TABLE
           temp FROM zpplan
           WHERE  zdate IN date
           AND werks IN werks.
      ENDIF.
      SORT temp BY mname zdate shftin.
      DELETE ADJACENT DUPLICATES FROM temp.
      SORT temp BY mname shftin zdate.
      DELETE ADJACENT DUPLICATES FROM temp.
      APPEND temp.
      LOOP AT temp.
        SELECT zdate werks mname shftin act_prod quaty iserh   FROM zpplan INTO CORRESPONDING FIELDS OF TABLE itab_t
        WHERE mname = temp-mname
        AND zdate = temp-zdate
        AND werks = temp-werks.
        LOOP AT itab_t.
          MOVE-CORRESPONDING itab_t TO itab.
          APPEND itab.
        ENDLOOP.
      ENDLOOP.
      *******************************************8
    SELECT zdate werks mname shftin act_prod quaty iserh   FROM zpplan INTO CORRESPONDING FIELDS OF TABLE itab
         FOR ALL ENTRIES IN temp
         WHERE zdate = temp-zdate AND
               werks = temp-werks
              AND mname = temp-mname.
    SELECT zdate werks mname shftin act_prod quaty iserh   FROM zpplan INTO CORRESPONDING FIELDS OF TABLE itab
       WHERE zdate IN date AND
             werks IN werks AND
    shftin = shftin.
      SORT itab BY mname zdate.
    DELETE ADJACENT DUPLICATES FROM itab.
      LOOP AT itab.
        MOVE-CORRESPONDING itab TO itab1.
        COLLECT itab1.
      ENDLOOP.
      LOOP AT itab1.
        itab1-tar_qty = itab1-tar_qty + ( itab1-quaty / 3 ).
        IF  ( itab1-tar_qty NE 0 ).
          itab1-ach_qty = ( itab1-ach_qty +  itab1-act_prod / itab1-tar_qty ) * 100.
        ELSE.
          itab1-ach_qty = 0 * 100.
        ENDIF.
        itab1-mch_eff = ( ( 8 - itab1-iserh ) / 8 ) * 100.
        MODIFY itab1 TRANSPORTING tar_qty ach_qty mch_eff.
      ENDLOOP.
      LOOP AT itab1.
        READ TABLE itab1 INDEX 1 INTO wa.
        IF itab1-mname = wa-mname.
          itab1-zdate = wa-zdate.
          itab2-shftin = itab1-shftin.
          itab2-mname = itab1-mname.
          itab2-zdate = itab1-zdate.
               itab2-quaty = itab2-quaty + itab1-quaty.     
               itab2-act_prod = itab2-act_prod + itab1-act_prod.
               itab2-iserh = itab2-iserh + itab1-iserh.
               itab2-tar_qty = itab2-tar_qty + itab1-tar_qty.
               itab2-ach_qty = itab2-ach_qty + itab1-ach_qty.
          itab2-mch_eff = itab2-mch_eff + itab1-mch_eff.
        ELSE.
               APPEND itab2.
               CLEAR itab2.
               MOVE-CORRESPONDING itab1 TO wa.
          itab2-shftin = itab1-shftin.
          itab2-mname = itab1-mname.
          itab2-zdate = itab1-zdate.
          itab2-quaty = itab2-quaty + itab1-quaty.     
          itab2-act_prod = itab2-act_prod + itab1-act_prod.
               itab2-iserh = itab2-iserh + itab1-iserh.
               itab2-tar_qty = itab2-tar_qty + itab1-tar_qty.
               itab2-ach_qty = itab2-ach_qty + itab1-ach_qty.
               itab2-mch_eff = itab2-mch_eff + itab1-mch_eff.
        ENDIF.
      ENDLOOP.
      APPEND itab2.
      LOOP AT itab2.
        IF  ( itab2-tar_qty NE 0 ).
          itab2-ach_qty = ( itab2-ach_qty +  itab2-act_prod / itab2-tar_qty(10) ) * 100.
        ELSE.
          itab2-ach_qty = 0 * 100.
        ENDIF.
        itab2-mch_eff = ( ( 8 - itab2-iserh ) / 8 ) * 100.
        MODIFY itab2 TRANSPORTING tar_qty ach_qty mch_eff.
      ENDLOOP.
    APPEND itab2.
      LOOP AT itab2.
       count = sy-tfill.
        a = a + itab2-tar_qty.
        b = b + itab2-ach_qty.
      ENDLOOP.
      CLEAR itab2.
      itab2-tar_qty = a.
      itab2-ach_qty = b.
      APPEND itab2.
      CLEAR itab2.
      count = a / sy-tfill.
      count1 = b / sy-tfill.
      itab2-tar_qty = count.
      itab2-ach_qty = count1.
    itab2-tar_qty = count.
      APPEND itab2.
    ENDFORM.                    " data_retrieval
    *&      Form  head_built
          text
         -->P_T_EVE  text
    FORM head_built  USING    p_t_eve TYPE slis_t_event.
    count = a / sy-tfill.
      DATA: ls_event TYPE slis_alv_event.
      REFRESH t_list_top_of_page.
      READ TABLE p_t_eve WITH KEY name = slis_ev_top_of_page INTO ls_event.
      IF sy-subrc = 0.
        MOVE c_formname_top_of_page TO ls_event-form.
        MODIFY p_t_eve FROM ls_event   INDEX sy-tabix.
      ENDIF.
       CLEAR st_line.
        st_line-typ = 'S'.
        st_line-key = 'Total Target Qty: '.
        st_line-info = count.
        APPEND st_line TO t_list_top_of_page.
    CLEAR st_line.
    st_line-typ = 'S'.
    st_line-info = count.
    CONCATENATE 'Avg Target Qty.'  count  ' ' INTO st_line-info.
    APPEND st_line TO t_list_top_of_page.
      CLEAR st_line.
        st_line-typ = 'S'.
        st_line-key = 'Avg.EMP Efficiency: '.
        st_line-info = count1.
        APPEND st_line TO t_list_top_of_page.
      CLEAR st_line.
        st_line-typ = 'S'.
        st_line-key = 'Avg. Machine Efficincy: '.
       st_line-info = count.
        APPEND st_line TO t_list_top_of_page.
    REFRESH t_list_end_of_page.
    READ TABLE p_t_eve WITH KEY name =  slis_ev_end_of_list INTO ls_event.
    IF sy-subrc = 0.
       MOVE c_formname_end_of_page TO ls_event-form.
       MODIFY p_t_eve FROM ls_event INDEX sy-tabix.
    ENDIF.
    CLEAR st_line.
    st_line-typ = 'S'.
    CONCATENATE 'END OF PAGE' ' ' INTO st_line-info.
    APPEND st_line TO t_list_end_of_page.
    ENDFORM.                    " head_built
    *&      Form  top-of-page
          text
    FORM top_of_page.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          it_list_commentary = t_list_top_of_page
        I_LOGO                   =
        I_END_OF_LIST_GRID       =
        I_ALV_FORM               =
    ENDFORM.                    "top-of-page
    *&      Form  display_alv
          text
    -->  p1        text
    <--  p2        text
    FORM display_alv .
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
      I_INTERFACE_CHECK                 = ' '
      I_BYPASSING_BUFFER                = ' '
      I_BUFFER_ACTIVE                   = ' '
         i_callback_program                = 'ZPP_RE_EMP_DETAILS'
      I_CALLBACK_PF_STATUS_SET          = ' '
      I_CALLBACK_USER_COMMAND           = ' '
      I_CALLBACK_TOP_OF_PAGE            = ' '
      I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
      I_CALLBACK_HTML_END_OF_LIST       = ' '
      I_STRUCTURE_NAME                  =
       i_background_id                   = 'ALV_BACKGROUND'
       i_grid_title                      = 'EMP Information'
      I_GRID_SETTINGS                   =
      IS_LAYOUT                         =
         it_fieldcat                       = t_fcat
      IT_EXCLUDING                      =
      IT_SPECIAL_GROUPS                 =
      IT_SORT                           =
      IT_FILTER                         =
      IS_SEL_HIDE                       =
      I_DEFAULT                         = 'X'
      I_SAVE                            = ' '
      IS_VARIANT                        =
         it_events                         = t_events
      IT_EVENT_EXIT                     =
      IS_PRINT                          =
      IS_REPREP_ID                      =
      I_SCREEN_START_COLUMN             = 0
      I_SCREEN_START_LINE               = 0
      I_SCREEN_END_COLUMN               = 0
      I_SCREEN_END_LINE                 = 0
      I_HTML_HEIGHT_TOP                 = 0
      I_HTML_HEIGHT_END                 = 0
      IT_ALV_GRAPHICS                   =
      IT_HYPERLINK                      =
      IT_ADD_FIELDCAT                   =
      IT_EXCEPT_QINFO                   =
      IR_SALV_FULLSCREEN_ADAPTER        =
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER           =
      ES_EXIT_CAUSED_BY_USER            =
        TABLES
          t_outtab                          = itab2
    EXCEPTIONS
      PROGRAM_ERROR                     = 1
      OTHERS                            = 2
      IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    " display_alv

  • Populating the values of AQ header, IP_MESSAGE_TYPE,Payload

    Please if anyone can advise me about the ways that should be followed in order to populate
    the values of AQ header, IP_MESSAGE_TYPE,Payload of any B2B message through JDeveloper

    Robert,
    The input message itself will be of IP_MESSAGE_TYPE and hence by using simple xpath you may extract out values of doc type, action, doc type revision etc.. For an example, the input message to the BPEL will be like -
    <InputIPMsg>
    <part name="IP_MESSAGE_TYPE">
    <IP_MESSAGE_TYPE>
    <MSG_ID>testmsg1</MSG_ID>
    <INREPLYTO_MSG_ID NULL="TRUE"/>
    <FROM_PARTY>RemoteTPName</FROM_PARTY>
    <TO_PARTY>HostTpName</TO_PARTY>
    <ACTION_NAME>ActionName</ACTION_NAME>
    <DOCTYPE_NAME>DocTypeName</DOCTYPE_NAME>
    <DOCTYPE_REVISION>DocTypeVersion</DOCTYPE_REVISION>
    <MSG_TYPE>MsgType</MSG_TYPE>
    <PAYLOAD><?xml version="1.0" encoding="UTF-8"?> <po:PurchaseOrder xsi:schemaLocation="http://xmlns.oracle.com/ns/order po.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:po="http://xmlns.oracle.com/ns/order"><po:CustID>111-11-1111</po:CustID><po:ID>PO12345</po:ID></po:PurchaseOrder> </PAYLOAD>
    <ATTACHMENT NULL="TRUE"/>
    </IP_MESSAGE_TYPE>
    </part>
    </InputIPMsg>
    Now if you want to fetch the doc type name into a string variable DoctypeName then you should use xpath like below in an assign activity -
    <assign name="GetDocType">
              <copy>
                <from variable="InputIPMsg" part="IP_MESSAGE_TYPE"
                      query="/ns2:IP_MESSAGE_TYPE/DOCTYPE_NAME"/>
                <to variable="DoctypeName"/>
              </copy>
              <copy>
    </assign>Regards,
    Anuj

  • Could not able to show a scalar value in Page Header/Group Header of the re

    Hi,
    I could not able to show a scalar value in Page Header/Group Header of the report which is returned from Sub-report. But I am able to display it in both Group Footer and Page Footer.
    I used shared variable in formula filed of both main and sub report and both are placed in the main and sub-report.
    Please do needful.
    Thanks & Regards,
    Mani G.S.

    You can only show Shared variables in main report in a location after the subreport has executed.
    If you want to show values in page header or group header you must place subreport in a section above these. This is unlikely to be possible so you will have to live with displaying results in Group/page footer.
    Alternatively you can execute subreport twice, once where subreport is hidden in a section above page/group header and pass summary figure you require and then again where you currently have subreport so you can see details as required.
    Ian

  • How to select all single values in the header area

    Dear Experts
    I got a request that the user wants to select a single value or all single values in the header area. E.g. if the values from characteristic master data are A, B, C and D, the selection can be one of these values or all of them. With the standard BPS configuration, due to the unique combination in the header area, selection of  'All' single values is not possible. Is there a way to select all single values in the header area?
    Thanks, Jessica

    Hi Jessica,
    Here is a solution where you need not to change your planning layout or to create a new variable or any exit function.
    Step 1 - Maintain master data value 'ALL' in the required characteristic.
    Step 2 - Create a copy function to copy all the required data records to 'ALL'. you can use standard copy function where you have to include only this characteristic in the fields to be change.
    Copy -
    From = all values (A,B,C,D etc)
    To = "ALL".
    Step 3 - Call this function on layout opening. you can include it in the planning folder and change the function attribute to call it on layout opening.
    Step 4 - Create a standard Delete function. you have to call this function on save operation. In this function, you have to delete all data records present in the buffer where required char contains 'ALL' value.
    This approach can impact the performance of the planning application. It depends on the number of data records you are dealing with. Standard Copy and Delete functions are pretty fast in nature.
    I hope it will help you. please let me know if you need more inputs.
    Regards
    Tarun

  • Server returned code (500) with message Internal Server Error and content

    Hi cracks,
    I am trying to run the web service
    InternalRequestSRMUpdateRequestConfirmation_In
    an get following error :
    Server returned code (500) with message <Internal Server Error> and content type <text/html; charset=utf-8>.
    any idea?
    rgds
    Vincent

    yes,
    you got crash aka shortdump in your system.
    - webserver: didn't crash, because it issued an error 500, so it works
    - remains either the soap runtime, which usually doesn't dump but throw errors and the application itself.
    I'd look into the tracefiles (ST11) or tie the debugger to the service in question (SICF) and try to find out hat happens/d.
    anton

  • Do I need to download a DNLA server to play contents of my iMac on my TV through a blue ray player?

    Do I need to download a DNLA server to play contents of my imac on my TV through a blue ray player?  I have Mountain Lion.

    No, but if you want to do this wirelessly or as Apple calls it, AirPlay, then you need a compatible iMac and an Apple TV or other compatible AirPlay device.
    Otherwise you can connect the two with a suitable cable.

  • Problem with aligning values in ALV header???????

    I am supposed to show  some values in ALV header some thing like this
    PGMID:      xxxxx
    Material:    p_Matnr-low    to   p_Matnr high
    Plant:        p_werks-low    to  p_werks-high
       ALV Reoport
    For this i wrote code something like this.
    Fieldcatalog-status='s'.
    Fieldcatalog-key = 'PGMID:'.
    FieldCatalog-info = 'xxxxxxxx'
    append field catlalog.
    Fieldcatalog-status='s'.
    Fieldcatalog-key = 'Material:'.
    Concatenate p_Matnr-low
                       'to'
                        p_Matnr-high into FieldCatalog-info. 
    append field catlalog.
    etc................
    Now output shown is like this
    PGMID:      xxxxx
    Material:    p_Matnr-low  to p_Matnr high
    Plant:        p_werks-low  to p_werks-high
    I am not able to give a good gap in between the 'to' as shown initially. Any idea on this??
    Rakesh

    Hi,
    Please find attached below code :
      IF NOT so_bukrs-low IS INITIAL AND NOT so_bukrs-high IS INITIAL.
        CLEAR: gs_line.
        gs_line-typ  = gc_s.
        gs_line-key  = 'Company Code'(015).
        CONCATENATE so_bukrs-low 'to' so_bukrs-high INTO gs_line-info
        SEPARATED BY space.
        APPEND gs_line TO lt_top_of_page.
      ELSEIF so_bukrs-low IS INITIAL AND so_bukrs-high IS INITIAL.
        CLEAR: gs_line.
        gs_line-typ  = gc_s.
        gs_line-key  = 'Company Code'(015).
        gs_line-info = 'ALL Values'(012).
        APPEND gs_line TO lt_top_of_page.
      ELSEIF so_bukrs-high IS INITIAL.
        CLEAR: gs_line.
        gs_line-typ  = gc_s.
        gs_line-key  = 'Company Code'(015).
        gs_line-info = so_bukrs-low.
        APPEND gs_line TO lt_top_of_page.
      ENDIF.
    *Fiscal Year
      CLEAR gs_line.
      gs_line-typ = gc_s.
      gs_line-key = 'Year'(014).
      MOVE sp_gjahr TO gs_line-info.
      APPEND gs_line TO lt_top_of_page.
    *Period
      CLEAR gs_line.
      gs_line-typ = gc_s.
      gs_line-key = 'Period'(013).
      MOVE sp_monat TO gs_line-info.
      APPEND gs_line TO lt_top_of_page.
    *Currency Key
      IF NOT so_waers-low IS INITIAL AND NOT so_waers-high IS INITIAL.
        CLEAR: gs_line.
        gs_line-typ  = gc_s.
        gs_line-key  = 'Currency'(011).
        CONCATENATE so_waers-low 'to' so_waers-high INTO gs_line-info
        SEPARATED BY space.
        APPEND gs_line TO lt_top_of_page.
      ELSEIF so_waers-low IS INITIAL AND so_waers-high IS INITIAL.
        CLEAR: gs_line.
        gs_line-typ  = gc_s.
        gs_line-key  = 'Currency'(011).
        gs_line-info = 'ALL Values'(012).
        APPEND gs_line TO lt_top_of_page.
      ELSEIF so_waers-high IS INITIAL.
        CLEAR: gs_line.
        gs_line-typ  = gc_s.
        gs_line-key  = 'Currency'(011).
        gs_line-info = so_waers-low.
        APPEND gs_line TO lt_top_of_page.
      ENDIF.
    *Clearing Doc
      IF NOT so_augbl-low IS INITIAL AND NOT so_augbl-high IS INITIAL.
        CLEAR: gs_line.
        gs_line-typ  = gc_s.
        gs_line-key  = 'Clearing Doc'(020).
        CONCATENATE so_augbl-low 'to' so_augbl-high INTO gs_line-info
        SEPARATED BY space.
        APPEND gs_line TO lt_top_of_page.
      ELSEIF so_augbl-low IS INITIAL AND so_augbl-high IS INITIAL.
        CLEAR: gs_line.
        gs_line-typ  = gc_s.
        gs_line-key  = 'Clearing Doc'(020).
        gs_line-info = 'ALL Values'(012).
        APPEND gs_line TO lt_top_of_page.
      ELSEIF so_augbl-high IS INITIAL.
        CLEAR: gs_line.
        gs_line-typ  = gc_s.
        gs_line-key  = 'Clearing Doc'(020).
        gs_line-info = so_augbl-low.
        APPEND gs_line TO lt_top_of_page.
      ENDIF.
    *User ID
      IF NOT so_usrid-low IS INITIAL AND NOT so_usrid-high IS INITIAL.
        CLEAR: gs_line.
        gs_line-typ  = gc_s.
        gs_line-key  = 'User ID'(021).
        CONCATENATE so_usrid-low 'to' so_usrid-high INTO gs_line-info
        SEPARATED BY space.
        APPEND gs_line TO lt_top_of_page.
      ELSEIF so_usrid-low IS INITIAL AND so_usrid-high IS INITIAL.
        CLEAR: gs_line.
        gs_line-typ  = gc_s.
        gs_line-key  = 'User ID'(021).
        gs_line-info = 'ALL Values'(012).
        APPEND gs_line TO lt_top_of_page.
      ELSEIF so_usrid-high IS INITIAL.
        CLEAR: gs_line.
        gs_line-typ  = gc_s.
        gs_line-key  = 'User ID'(021).
        gs_line-info = so_usrid-low.
        APPEND gs_line TO lt_top_of_page.
      ENDIF.
    *GL Account
      IF NOT so_hkont-low IS INITIAL AND NOT so_hkont-high IS INITIAL.
        SHIFT so_hkont-low LEFT DELETING LEADING '0'.
        SHIFT so_hkont-high LEFT DELETING LEADING '0'.
        CLEAR: gs_line.
        gs_line-typ  = gc_s.
        gs_line-key  = 'GL Account'(004).
        CONCATENATE so_hkont-low 'to' so_hkont-high INTO gs_line-info
        SEPARATED BY space.
        APPEND gs_line TO lt_top_of_page.
      ELSEIF so_hkont-low IS INITIAL AND so_hkont-high IS INITIAL.
        CLEAR: gs_line.
        gs_line-typ  = gc_s.
        gs_line-key  = 'GL Account'(004).
        gs_line-info = 'ALL Values'(012).
        APPEND gs_line TO lt_top_of_page.
      ELSEIF so_hkont-high IS INITIAL.
        SHIFT so_hkont-low LEFT DELETING LEADING '0'.
        CLEAR: gs_line.
        gs_line-typ  = gc_s.
        gs_line-key  = 'GL Account'(004).
        gs_line-info = so_hkont-low.
        APPEND gs_line TO lt_top_of_page.
      ENDIF.
    Thanks,
    Sriram Ponna.

  • Printing of Condition value at both header and Item level

    Dear Sap Gurus,
    Please any body tell me how to print the condition value at both header and at item level in PO print out. ie.  I am using RA00 at both item and header level and i want to print this value at both header and item level.
    Thanks and Regards,
    Patil

    Hi,
    Please check with abaper is he calling the function like mention below or not
    CALL FUNCTION 'PRICING'
        EXPORTING
          calculation_type = 'B'   
    or  (calculation types = as in condition type)
          comm_head_i      = komk
          comm_item_i      = komp
          preliminary      = ' '
          no_calculation   = ' '
        IMPORTING
          comm_head_e      = komk
          comm_item_e      = komp
        TABLES
          tkomv            = i_komv.
    regards
    Edited by: bvdv on Jul 8, 2009 7:35 PM

Maybe you are looking for

  • Error -3221 - please help

    Can anyone point me in the right direction for solving this error? Having bought a pc and loaded up I-tunes before i was connected to broadband I am very dissapointed to find out that now I am on broadband.. every time I go into I-tunes and try to co

  • Quicktime poor resolution and large file how to improve

    I've been trying to use Quicktime Version 10.3 (727.1) to record a screen session. It works OK, but the quality is terrible. The characters are all fuzzy on playback. Despite that the 10minute recording takes up 85MB in .mov format. I'm not changing

  • On hand quantity exists or there are open delivery transactions for this item

    Hi all,        on hand quantity exists or there are open delivery transactions for this item in oracle apps at the master item copy from & lines status in Transaction Form in Backordered. Thank You

  • Help with a timer?

    Here's what I want to do: When the mouse is pressed (on mouseDown), set sprite.BlendLevel to a value (I know how to do this). When the mouse is lifted, begin a timer. If the mouse has not been pressed after 30 seconds, the sprite.BlendLevel value cha

  • Can't use text tool

    I can't use text tool. Text is invisible. I tried all colors fonts and settings. Help me pls