Exact purpose of MimeHeaders param to MessageFactory.createMessage()

I'm building a web service intermediary, and I'm trying to make sure I can handle
SOAP messages with attachments.
When I first saw the "MimeHeaders" parameter in "MessageFactory.createMessage(MimeHeaders,
InputStream)", I was a little befuddled. I figured this was related to handling
attachments, but I find almost zero documentation on what I'm supposed to be doing
here.
In my experiments, I tried sending a message with a simple "text/xml" attachment.
I set the content type of the attachment when creating the attachment. If my
"createMessage()" call passed "null" for the MimeHeaders parameter, then the resulting
SOAPMessage ignored the MIME-ness of the message and just stored the SOAP envelope.
If I instead create a MimeHeaders object and add a "Content-Type" header of "text/xml",
and pass that object instead of "null" for the MimeHeaders parameter, then it
appears to record the SOAP envelope along with the attachment. I'm guessing the
"Content-Type" header that I added in the MimeHeaders object applies to the main
body of the message, and not the attachment.
My main problem is that I tried that change with the MimeHeaders object through
pure guesswork. I can't find anything in the BEA docs that gives me a clue what
really should be done here.

Yes, you will want to create MIME headers from the HTTP headers.
Q1. Are you saying that if the content-type of the HTTP header is "text/xml",
it wouldn't find the attachments?
A1. Dunno. I wouldn't though, because that's not how the SwA (or SAAJ) says to
do it. See the following link: http://www.w3.org/TR/2000/NOTE-SOAP-attachments-20001211#SOAPMultipart
Q2. If the content-type of the HTTP request is "multipart/related", is there any
assumption about whether the main SOAPMessage is 1.0/1.1 or 1.2?
A2. I hope not, because that (determining the SOAP version based on the MIME type)
is dictated in the SOAP specs themselves. See the following link: http://www.w3.org/TR/2000/NOTE-SOAP-20000508/#_Toc478383526.
Regards,
Mike Wooten
"David Karr" <[email protected]> wrote:
>
Ok, that's helpful. However, your description seems to imply that the
only way
for the incoming message to be considered to have attachments is to use
"multipart/related".
Are you saying that if the top-level content-type is "text/xml", it
wouldn't
find the attachments? Also, if the top-level content-type is "multipart/related",
is there any assumption about whether the main SOAPMessage is 1.0/1.1
or 1.2?
So if the intermediary is a servlet, I should just pass the HTTP headers
into
the MimeHeaders?
"Michael Wooten" <[email protected]> wrote:
Hi David,
These classes are part of the JAX-RPC API, so you would want to search
for this
information on Sun's (or Javasoft's) website. If you can't find it there,
it may
be because they (Sun) wants to be able to change the implementationwithout
breaking
your code :-) That's actually what makes seperating the interface from
the implementation,
powerful.
That said, the Content-type header, in this MimeHeader object, is used
to determine
the MIME type of the InputStream. If it's multipart/related, an attempt
will be
made to create a SOAPMessage with attachment parts, from the InputStream.
The
format of this multipart/related message is covered in RFC 2387 (http://www.faqs.org/rfcs/rfc2387.html).
This document says that the Content-type of each part, is in the Header
fields
of the part itself. These parts are the AttachmentPart objects thatare
returned
(in a java.util.Iterator), when you call the SOAPMessage.getAttachments()
method.
If the Content-type header in this MimeHeader is application/soap+xml,
the InputStream
is assumed to be a SOAP 1.2 message (http://www.w3.org/TR/2002/CR-soap12-part2-20021219/).
If it's text/xml, the InputStream is assumed to be a SOAP 1.0/1.1 message.
Typically, a Web Service intermediary is realized as a Servlet Filter
or JAX-RPC
Handler. In the case of the former, you would use the createMessage(MIMEHeaders,InputStream)
method. The HttpServletRequest contains the headers you use, as well
as the ServletInputStream.
In the case of the later, the SOAPMessage has already been created by
the JAX-RPC
implementation in WLS :-)
HTH,
Mike Wooten
"David Karr" <[email protected]> wrote:
I'm building a web service intermediary, and I'm trying to make sure
I can handle
SOAP messages with attachments.
When I first saw the "MimeHeaders" parameter in "MessageFactory.createMessage(MimeHeaders,
InputStream)", I was a little befuddled. I figured this was related
to handling
attachments, but I find almost zero documentation on what I'm supposed
to be doing
here.
In my experiments, I tried sending a message with a simple "text/xml"
attachment.
I set the content type of the attachment when creating the attachment.
If my
"createMessage()" call passed "null" for the MimeHeaders parameter,then
the resulting
SOAPMessage ignored the MIME-ness of the message and just stored the
SOAP envelope.
If I instead create a MimeHeaders object and add a "Content-Type" header
of "text/xml",
and pass that object instead of "null" for the MimeHeaders parameter,
then it
appears to record the SOAP envelope along with the attachment. I'mguessing
the
"Content-Type" header that I added in the MimeHeaders object applies
to the main
body of the message, and not the attachment.
My main problem is that I tried that change with the MimeHeaders object
through
pure guesswork. I can't find anything in the BEA docs that gives me
a clue what
really should be done here.

Similar Messages

  • Setting mime headers for MessageFactory.createMessage(...)

    Hi-,
    I am trying to read the attached SOAP1.1 w/ attc. message from a plain file with a piece of simple Java code. The 'MessageFactory.createMessage(MimeHeaders headers, java.io.InputStream in)' is not very informative as to what goes in for headers, so I tried all of the below commented headers - no luck, only exceptions. Any explanation as to what I am doing wrong? I am using JWSDP1.5 with J2SE5.0.
    =============JAVA CODE=================
    public class SOAPTest {
    static public void main(String[] args) throws SOAPException, IOException
    MimeHeaders headers = new MimeHeaders();
    //headers.addHeader("Content-Type","multipart/related");
    //headers.addHeader("Content-Location","");
    //headers.addHeader("Content-Type","text/xml; charset=UTF-8");
    //headers.addHeader("Content-Type","text/xml");
    //headers.addHeader("Content-Transfer-Encoding","8Bit");
    //headers.addHeader("Content-Transfer-Encoding","Binary");
    //headers.addHeader("Content-Type","application/pdf");
    MessageFactory factory = MessageFactory.newInstance();
    InputStream sample = new FileInputStream(args[0]);
    SOAPMessage message = factory.createMessage(headers,sample);
    System.out.println("Soap Header\n:"+message.getSOAPHeader());
    sample.close();
    =============SOAP message w/ ATTC.=================
    MIME-Version: 1.0
    Content-Type: multipart/related; boundary=4444741.1049296259836.MIMEBoundary; type="text/xml"
    Content-Description: Acknowledgement - P20030811030857.0504
    --4444741.1049296259836.MIMEBoundary
    Content-Type: text/xml; charset=UTF-8
    Content-Transfer-Encoding: 8bit
    Content-Location: Envelope1120
    <?xml version="1.0" encoding="UTF-8"?>
    <SOAP:Envelope xmlns="http://www.irs.gov/efile" xsi:schemaLocation="http://schemas.xmlsoap.org/soap/envelope/ 2004v1.0/Common/SOAP.xsd http://www.irs.gov/efile 2004v1.0/Common/efileMessage.xsd" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" xmlns:efile="http://www.irs.gov/efile">
    <SOAP:Header>
    <efile:AcknowledgementHeader transmissionVersion="1.0">
    <AcknowledgementTimestamp>2003-10-20T16:15:33+05:00</AcknowledgementTimestamp>
    </efile:AcknowledgementHeader>
    </SOAP:Header>
    <SOAP:Body>
    <efile:AcknowledgementManifest count="2">
    <Reference contentLocation="TID01"/>
    <Reference contentLocation="Return0001"/>
    </efile:AcknowledgementManifest>
    </SOAP:Body>
    </SOAP:Envelope>
    --4444741.1049296259836.MIMEBoundary
    Content-Type: text/xml; charset=UTF-8
    Content-Transfer-Encoding: 8bit
    Content-Location: TID01
    <?xml version="1.0" encoding="UTF-8"?>
    <TransmissionAcknowledgement xmlns="http://www.irs.gov/efile" xmlns:efile="http://www.irs.gov/efile" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.irs.gov/efile 2004v1.0/Common/efileMessage.xsd" transmissionVersion="1.0"><TransmissionId>TID01</TransmissionId><TransmissionTimestamp>2003-10-20T15:25:36+05:00</TransmissionTimestamp><TransmissionStatus>A</TransmissionStatus><GTXKey>P20030811030857.0504</GTXKey></TransmissionAcknowledgement>
    --4444741.1049296259836.MIMEBoundary
    Content-Type: text/xml; charset=UTF-8
    Content-Transfer-Encoding: 8bit
    Content-Location: Return0001
    <?xml version="1.0" encoding="UTF-8"?>
    <ReturnAcknowledgement xmlns="http://www.irs.gov/efile" xmlns:efile="http://www.irs.gov/efile" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.irs.gov/efile 2004v1.0/Common/efileMessage.xsd" returnVersion="2004v1.0" validatingSchemaVersion="2004v1.0"><ReturnId>01000020032881234567</ReturnId><FilerEIN>010000000</FilerEIN><ReturnType>1120</ReturnType><TaxYear>2004</TaxYear><ReturnStatus>A</ReturnStatus><CompletedValidation>yes</CompletedValidation><PaymentIndicator>Payment Request Received</PaymentIndicator></ReturnAcknowledgement>
    --4444741.1049296259836.MIMEBoundary--

    Never mind. I fixed it - it turned out that the first MIME headers are the "protocol specific" stuff. Once I transfered them to the MessageFactory, all worked out well.

  • What is the exact purpose of Transaction NACE and NAST Table?

    Hi All,
    What is the exact purpose of Transaction NACE and NAST Table?
    Pls help me…
    Akshitha.

    Hi
    When a Output type in an apllication doc is configured with a Medium, Partner, Lang and other communication paramters an entry is created in NAST table
    so to trigger the output an entry in NAST is compulsory
    Output is a link between the Driver Program and the Sapscript,
    An output type summarizes messages of the same meaning. It contains parameters that are valid for all its assigned messages, for example appropriate partner functions.
    Transmission medium is a medium which the layout will be come out, this may be printout, Fax or Mail
    Check this link.
    http://help.sap.com/saphelp_nw2004s/helpdata/en/c8/19884743b111d1896f0000e8322d00/content.htm
    ex-how to config output type.
    You will assign output types using Transaction NACE.
    Do the follow steps to assign output type
    1)Select Application Type V2 which will have description Shipping.
    2)Click on Output types button.
    3)Go to change mode by pressing Ctrl+F4.
    4)Select one output type which already exists
    5)Do Copy As(F6)
    6)Give your output type against Output Type field.
    7)Under General data Tab, Give Program and Form routine and Save the data.
    i think it a work of functional guy but at senior level i think it is not a big deal for abaper.
    Check the following documentation
    In NACE t-codewe have the application for each one. based on the application output type can be defined, based on output type script and print progrma can be defined.
    If suppose data can be read from EDI then we should go for condition records.
    So whenever we execute the script first composer checks the output type and then execute the program. in program whenever opn form FM will be populate then script will open first. After that again program till another FM will populate if it then script will populate........like it is cycle proces. Composer does all these things and at last it will submit that output to spool.
    Go to the Transaction NACE.
    choose the related sub module.. like billing or shipping
    doubel click on Output Types
    Choose the Output Type for which whcih you wanted your script to trigger
    Then select the Output Type and double click on Processing Routine
    Then go to create new entries--> Select the Medium (1- print output), then enter your Script and Print Program detls --> Save and come out
    Now go to the Transaction (for which you have created the output type)... Issue output--> Select the output type --> Print....
    Device Types for SAP Output Devices (Detail Information)
    Definition
    The device type indicates the type of printer to be addressed. When you define an output device, choose the name of the device type that was defined in the SAP System for your printer model, such as Post2 for a PostScript printer. In the case of frontend printing under Microsoft Windows, you can also use the generic (device-independent) device type SWIN.
    The system uses the information in the device type to convert a document from the internal SAP character representation (spool request in OTF or in text format) to a device-specific, print-ready data stream (output request). Since a device type specifies attributes that apply to all devices of a certain model, it can be shared among device definitions. For example, all devices in the SAP spool system that are compatible with Hewlett-Packard LaserJet IIID printers would use the HPLJIIID device type.
    You should not confuse the device type with the printer driver. The device type is the total of all attributes of an output device that the SAP System must know to control the output device correctly, such as control commands for font selection, page size, character set selection, and so on. These attributes also include the printer driver that SAPscript/Smart Forms (the SAP form processor) should use for this printer. The SAPscript printer driver that is to be used for devices of this type for output formatting is therefore only an attribute that the device type specifies.
    How do I choose the correct device type?
    • In most cases, the SAP System already provides the appropriate device type for the printer type for the printer model that you want to use.
    These standard device types are completely defined and need no modification or extension before you use them in device definitions.
    • You can also download missing device types from the sapserv server. For a current list of the supported device types, see SAP Note 8928 in the SAP Service Marketplace.
    • Most printers can be controlled using a generic format, such as PostScript. They can be switched to a mode that is compatible with one of the standard printers for which an SAP device type is available. In this case, a supported model is emulated.
    • Almost all printers are delivered with Microsoft Windows printer drivers. The system can control these printers with the generic (device-independent) device type SWIN. The Microsoft Windows spool system then performs the processing of the print data.
    • If the specified device types are not available, and generic device types cannot be used, you must create your own device type or edit a copy of an existing device type. We recommend that only those with specialist knowledge of the SAP Spool System and printer driver code do this. For more information, see Defining a New Device Type .
    Attributes of a Device Type
    A device type is distinguished by the attributes listed below. If you change an existing device type or create a new device type, you must change at least some of these attributes.
    • Character set: A character set specifies the codes with which characters must be represented in the print-ready output stream (output request). This code replaces the generic SAP characters set that is used internally by the SAP spool system (spool request).
    • Printer driver: You can specify different printer drivers for printing SAPscript documents and ABAP lists.
    • Print controls: Print controls represent printer operations, such as boldface or changing the font size. These print control are replaced by printer-specific commands during the creation of the output request from a spool request.
    • Formats: Formats specify the format supported by the SAP system. The system differentiates between SAPScript formats (DINA4 and LETTER) and ABAP list formats (X_65_132 = 65 rows/132 columns).
    • Page format: A page format is the interface between a format and SAPscript. It specifies the paper dimensions with which SAPScript can calculate the row and column lengths.
    • Actions: Actions are output device-specific commands that are required for the implementation of a format. The action printer initialization, for example, can contain a printer command with which the number of rows on a page is defined. There is a set of actions for every format supported by a device type.
    Reward points for useful Answers

  • Let me know exact purpose of Free memory statement...

    What happens when we write the statement like below:
    Free memory id ‘ZBTS_BAPIRET2'.
    Kindly let me know exact purpose of that….!
    Akshitha.

    Hi,
    Just Type FREE in the programe and press F! on that ,, no need to post ok all the best
    FREE - Resets a data object to its original value and releases the resources
    it occupied.
    Basic form    FREE f.
    Effect        FREE f has the same effect as CLEAR f, namely that a Data
                  object f is reset to the initial value corresponding to its
                  type.
                  Unlike CLEAR, FREE also releases any resources taken up by the
                  data object f. This can be important with internal tables ,
                  structures containing tables, and table work areas (created
                  using TABLES).
                  After FREE f, the data object f can be re-addressed at any
                  time. The only condition is that you may need to re-allocate
                  resources to the object.
    Note          If f is an internal table with header line (where the name f
                  in a sense has two meanings) the statement FREE f refers to
                  the body of the table, and the statement CLEAR f refers to the
                  header line.
    Note          Performance:
                  The runtime required to reset an internal table and free its
                  resources depends how much memory the internal table has been
                  occupying.
                  To reset a small internal table takes around  80 msn (standard
                  microseconds), a 200 KB table takes around 700 msn, and a 1 MB
                  table around 3500 msn.
                  If the table has an index or hash table (because it was  created using INSERT, DELETE or SORT, or edited using
                  COLLECT), the runtime increases, since the index or hash table
                  also need to be released.
    FREE - Releasing an Area of ABAP Memory
    Basic form    FREE MEMORY.
                   Addition:
                   ... ID key
                   In an ABAP Objects context, a more severe syntax check is
                   performed that in other ABAP areas. See ID must be specified.
    Effect        This statement releases an area of  ABAP Memory previously
                   created with an EXPORT TO MEMORY statement. After this, an
                   IMPORT ... FROM MEMORY statement would return the return code
                   4.
    Notes         -  FREE MEMORY deletes the entire ABAP-Memory, that is, all of
                      the data exported using EXPORT TO MEMORY.
                   -  Please consult Data Area and Modularization Unit
                      Organization documentation as well.
    Addition      ... ID key
    Effect        Only the ABAP-Memory with ID key is released.
    Related       EXPORT TO MEMORY, IMPORT FROM MEMORY
    Additional help  Deleting Data Clusters from Memory
    Return ->
    FREE - Release memory occupied by an external object
    Basic form    FREE OBJECT obj.
                   Addition
                   ... NO FLUSH
    Effect        Releases the memory needed for object obj. The object cannot
                   be processed afterwards.
                   The return code is set as follows:
                   SY-SUBRC = 0:  Object was released successfully.
                   SY-SUBRC = 1:  Error during communication with SAPgui.
                   SY-SUBRC = 2:  Error during function call in SAPgui.
                                  The OLE function modules are only implemented
                                  in Windows.
    Addition      ...NO FLUSH
    Effect        Collects all of the FREE OBJECT calls on the application
                   server before sending explicitly to the SAPgui in a single
                   operation by calling the function module FLUSH.
         FREE OBJECT belongs to a group of key words that allows you to process
    external objects with ABAP/4. At present, only the object model OLE2 is
    supported, i.e. all objects must be of type OLE2_OBJECT. This type and other
    necessary data are defined in the include program OLE2INCL.
    Example       Release an EXCEL object:
                   INCLUDE OLE2INCL.
                 DATA EXCEL TYPE OLE2_OBJECT.
                 CREATE OBJECT EXCEL 'Excel.Application'.
                 FREE   OBJECT EXCEL.
    elated       >CREATE OBJECT, SET PROPERTY, GET PROPERTY, CALL METHOD

  • What is the exact purpose of At New Commanad

    What is the exact purpose of At New Commanad.
    Ex: At New VBELN
    Thanx in Advance.
    Akshitha.

    Hi Akshitha,
    Variant 1
    AT NEW f.
    Variant 2
    AT END OF f.
    Effect
    f is a field from the field group HEADER . The enclosed sequence of statements is executed if
    the field f occurs in the sort key of the extract dataset (and thus also in the field group HEADER ) and
    the field f or a superior sort criterion has a different value in the current LOOP line than in the prceding ( AT NEW ) or subsequent ( AT END OF ) record of the extract dataset.
    Example
    DATA: NAME(30),
          SALES TYPE I.
    FIELD-GROUPS: HEADER, INFOS.
    INSERT: NAME  INTO HEADER,
            SALES INTO INFOS.
    LOOP.
      AT NEW NAME.
        NEW-PAGE.
      ENDAT.
      AT END OF NAME.
        WRITE: / NAME, SUM(SALES).
      ENDAT.
    ENDLOOP.
    Notes
    If the extract dataset is not sorted before processing with LOOP , no control level structure is defined and the statements following AT NEW or AT END OF are not executed.
    Fields which stand at hex zero are ignored by the control break check with AT NEW or AT END OF . This corresponds to the behavior of the SORT statement, which always places unoccupied fields (i.e. fields which stand at hex zero) before all occupied fields when sorting extract datasets, regardless of whether the sort sequence is in ascending or descending order.

  • What's the exact purpose of the tcode VT01N?

    Hi All,
    Can some body let me know what's exact purpose of VT01N transaction(create sheipment) how it differs to VL01N(outbound delivery) among this which one we have to create Ist shipment or delivery? What's the exact link between these  two sales document?
    Thanks&Regards
    Mahesh

    Dear Mahesh,
    You create a shipment document when the goods are relevant for delivery in the sales order. After you create a sales order, you create a delivery. The delivery must have a route in the transportation tab. Then you can club different deliveries in a shipment document. These are the bare minimum required for creation of a shipment document with one stage.
    There are three fields in VT01N
    1) Transportation planning point
    A group of employees responsible for transportation activities.
    Use
    Each shipment is allocated to a transportation planning point for transportation planning. It helps to determine responsibility for transportation processing during which it can be used as a selection criterion, in order to create a list of shipments to be processed, for example.
    Examples
    Within a company, one transportation planning point can be responsible for sea shipments and one for shipments sent by road, for example. Transportation planning points can also be defined geographically.
    Dependencies
    Before a transportation planning point can carry out transportation planning, it must be set in Customizing.
    2) Shipment type
    Specifies what type of transportation processing is to be performed.
    Use
    The shipment type has various control features for transportation processing. These include:
    •number range from which the shipment document number is assigned
    •specifications such as the transportation processing type and processing control indicator
    •control elements such as the output determination procedure, text determination procedure, etc.
    •default values such as the shipping type, service level, leg indicator
    Procedure
    When you create a shipment, you must specify a shipment type.
    Examples
    Shipment by road:
    •In the case of a stop-off shipment, the shipment legs are determined by the system using specific rules.
    •An individual shipment could be a preliminary leg for a shipment by sea
    Shipment by sea
    •Specific output is required for processing.
    Shipment by rail:
    •Specific texts are required so that the rail consignment note can be filled in completely.
    Dependencies
    A shipment document is assigned to one particular shipment document type.
    3) Selection variant for transportation planning
    Defines the default values for the criteria used to select inbound or outbound deliveries for transportation planning.
    Use
    You can specify the selection variant on the initial transportation screen. The predefined selection criteria are then proposed on the selection screen.
    You can specify a selection variant for each shipment type. This is then proposed when you create shipments of this type.
    Procedure
    Selection variants for selecting inbound and outbound deliveries for transportation planning must be created for report RV56LFSL.
    Regards,
    Rakesh
    P.S. Award point if your find it useful

  • What is the exact purpose of the TUme capsule? I thought it acted like a hard drive

    I was in the understanding that the time capsule was Wi-Fi hub and a hard drive to back up files. My primary purpose was for a Hard drive. Not using it as a network.

    TC is designed to work with Time Machine, which is the backup software in the Mac. It is not really designed as a NAS. It is sealed unit without any method to back it up other than full USB. There is no raid, so no mirror if a disk fails, and if it fails Apple will offer no help doing file recovery.
    Still if you want to use it as NAS you can. Simply set it to bridge mode.. turn off wireless. Plug it into your network. voila

  • Exact purpose of the field MTCOR-RMCHA and MTCOR-RMCH1

    Hi All,
    I need to know more about MATERIAL_READ function module.
    I have a trouble with the MTCOR table which has fields related with the above mentioned FM. I need to know how is the field MTCOR-RMCHA and MTCOR-RMCH1related to the the Function Module MATERIAL_READ.
    Thanks in advance.
    Bye.

    Hi All,
    I need to know more about MATERIAL_READ function module.
    I have a trouble with the MTCOR table which has fields related with the above mentioned FM. I need to know how is the field MTCOR-RMCHA and MTCOR-RMCH1related to the the Function Module MATERIAL_READ.
    Thanks in advance.
    Bye.

  • Gurus, what exactly is the purpose of this NLS_LENGTH_SEMANTICS para?

    Gurus, it would be greatly appreciated if you could also explain what the exact purpose of this NLS_LENGTH_SEMANTICS parameter and what "LENGTH SEMATICS" mean?
    I read some posts in this Forum and got some idea but still don't get the REAL PURPOSE of this variable.
    I mean, I have never changed these parameters in my 5 years as an Oracle developer when creating tables or doing anything else for that matter..
    I have done all my programming and everything in ENGLISH. I have never used multi-ling apps.
    Our DBs are 10.2.0.4.0s.
    Our DB character set is WE8ISO8859P1.
    NLS_NCHAR_CHARACTERSET is AL16UTF16.
    NLS_LENGTH_SEMANTICS is BYTE
    (1.) Why would anybody want to change this NLS_LENGTH_SEMANTICS to CHAR??
    (2.) Is it only used when you want to store NON-ENGLISH characters like Chinese, Persian etc.?
    (3.) If so why?
    (4.) Is there a storage advantage when CHAR is used instead of BYTES? Can you put BOTH as the parameter value?
    (5.) Is there issues when searching when non-English characters are stored in the DB??
    (6.) Is AL16UTF16 a multi-byte character set?
    (7.) Is WE8ISO8859P1 multi-byte or single-byte character set?? How to find these things???
    (8.) What is the real advantage of this NLS_LENGTH_SEMANTICS column and when should we use it and not use it??
    In easy to understand language please.
    thanks in advance.
    Edited by: user12240205 on Oct 28, 2011 12:36 AM

    user12240205 wrote:
    Gurus, it would be greatly appreciated if you could also explain what the exact purpose of this NLS_LENGTH_SEMANTICS parameter and what "LENGTH SEMATICS" mean?
    This is useful only when you use multi bytes character set for you database. Multi bytes characterset means the database stores one character more than one bytes. It can use 2-4 bytes and it can be vary even within one character set. I mean e.g. AL32UTF8 can store an English character in one byte while it can store a Chinese char in 4 bytes only.
    VARCHAR2(10 CHAR) means that you define the maximum length of your column in characters no matter how many bytes needed for those to store.
    You can also check the docs. There is a really good book called [url http://download.oracle.com/docs/cd/B19306_01/server.102/b14225/ch1overview.htm#sthref51]Oracle® Database Globalization Support Guide also [url http://download.oracle.com/docs/cd/B19306_01/server.102/b14225/ch3globenv.htm#sthref385]LENGTH SEMATICS has a page in it...
    I read some posts in this Forum and got some idea but still don't get the REAL PURPOSE of this variable.
    I mean, I have never changed these parameters in my 5 years as an Oracle developer when creating tables or doing anything else for that matter..
    I have done all my programming and everything in ENGLISH. I have never used multi-ling apps.
    Our DBs are 10.2.0.4.0s.
    Our DB character set is WE8ISO8859P1.
    NLS_NCHAR_CHARACTERSET is AL16UTF16.
    NLS_LENGTH_SEMANTICS is BYTE
    (1.) Why would anybody want to change this NLS_LENGTH_SEMANTICS to CHAR??I think the above explanation gives you the answer.
    >
    (2.) Is it only used when you want to store NON-ENGLISH characters like Chinese, Persian etc.? mainly yes. but for any other multi-byte character set
    >
    (3.) If so why? see above.
    >
    (4.) Is there a storage advantage when CHAR is used instead of BYTES? Can you put BOTH as the parameter value?BYTE or CHAR
    you can use only one, but you can change the value in your sessions. and you can mix CHAR and BYTES column length definitions in a table.
    >
    (5.) Is there issues when searching when non-English characters are stored in the DB??>
    (6.) Is AL16UTF16 a multi-byte character set?16 means 16 bites and this character set always uses 2 bytes to store any characters if I know well.
    >
    (7.) Is WE8ISO8859P1 multi-byte or single-byte character set?? How to find these things???single.
    See MB for multibyte in comment column in [url http://download.oracle.com/docs/cd/B19306_01/server.102/b14225/applocaledata.htm#sthref1960]Recommended Database Character Sets
    >
    (8.) What is the real advantage of this NLS_LENGTH_SEMANTICS column and when should we use it and not use it??Well in a multi language column where many languages can be stored it is good to use IMHO.
    So you can type/store into that column equal amount of Japanese, Chinese or English characters.
    >
    In easy to understand language please.
    thanks in advance.
    Finally if you have MOS access see
    [url https://support.oracle.com/CSP/main/article?cmd=show&type=NOT&doctype=BULLETIN&id=144808.1]Examples and limits of BYTE and CHAR semantics usage (NLS_LENGTH_SEMANTICS) ID 144808.1
    Edited by: Kecskemethy on Oct 28, 2011 7:46 AM

  • Purpose of the following tables?

    Hi All,
    Does anyone knows the exact purpose of the following tables;
    1. BSIK
    2. BSAK
    3. BSAS
    4. BSIS
    I need a clear description.
    Thanks,
    Kishan

    Hi
    The main tables of FI document are:
    - BKPF (header data)
    - BSEG (Item   data)
    The Item can be for Vendor, Customer and G/L.
    You can know the type of item seeing the field BSEG-KOART:
    KOART = K -
    > Vendor
    KOART = D -
    > Customer
    KOART = S -
    > G/L
    An item can be cleared or open:
    IF BSEG-AUGBL IS INITIAL     -
    > Item is open
    IF NOT BSEG-AUGBL IS INITIAL -
    > Item is cleared
    For every type of BSEG there are always two tables: one for open item and one for cleared item.
    These tables have data of BSEG and BKPF, their name is always:
    BS<X><Z>
    Where
    <X> = A for cleared item
    <X> = I for open    item
    <Z> = K (Vendor item)
    <Z> = D (Custome item)
    <Z> = S (G/L item)
    So
    BSIK is index table for open vendor items
    BSAK is index table for cleared vendor items
    BSIS is index table for open G/L items
    BSAS is index table for cleared G/L items
    It always should be better to read these table than BSEG.
    Iy should read BSEG table only if it knows the keys.
    Max

  • Can anybody tell me the exact use of "SQVI" T-Code in SAP

    Hi,
    Can anybody help me the exact purpose of "SQVI" t-code with one example of scenario to understand.
    Regards,
    Prasad.

    Here is the extra code: ( I had to take out the arrows)
    TR
    TH ALIGN="LEFT" style="background-color:#C0C0A0> /TH
    TH ALIGN="LEFT" style="background-color:#C0C0A0"> /TH
    TH ALIGN="LEFT" style="background-color:#C0C0A0"> /TH
    TH ALIGN="LEFT" stye="background-color:#C0C0A0"> /TH
    TH ALIGN="LEFT" style="background-color:#C0C0A0"> /TH
    /TR

  • Purpose each of these is: Gui_upload and upload

    Hi Friends,
    Kindly let me know what the Exact Purpose each of these is: Gui_upload and upload
    What is the difference between those two?
    Akshitha.

    Hi,
    UPLOAD fm is the old function module which is now obsolete. From 4.6C onwards SAP has delivered new FM's for uploading and that is GUI_UPLOAD.
    the diff is  UPLOAD pops up a box during runtime to accept the file path the GUI_UPLOAD does not pop up any box during runtime instead takes the path as a paramter.
    This is what SAP HELP SAYS
    Files on the Presentation Server
    WS_UPLOAD and WS_DOWNLOAD, the function modules used until now are not part of the standard set of ABAP commands. They are used to display the file interface on the presentation server. WS_UPLOAD and WS_DOWNLOAD are not compatible with USs and have been replaced by GUI_UPLOAD and GUI_DOWNLOAD.
    The new function modules, GUI_UPLOAD and GUI_DOWNLOAD, have an interface that also allows you to write Unicode format to the local hard drive. For a description of these interfaces, refer to the documentation for each function module, available under SAP Easy Access " Development " Function Builder " Goto " Documentation.
    Instead of using the function modules, you can use the static methods GUI_UPLOAD and GUI_DOWNLOAD of the global class CL_GUI_FRONTEND_SERVICES.
    Cheers
    VJ
    Message was edited by:
            Vijayendra  Rao

  • Purpose of Commit work and wait

    Hi Friends,
    Kindly let me know what is the Exact Purpose of Commit work and wait
    Akshitha.

    Hai,
    <b>COMMIT WORK</b>
    This is the standard form, which specifies asynchronous processing. Your program does not wait for the requested functions to finish processing.
    <b>COMMIT WORK AND WAIT</b>
    This form specifies synchronous processing. The commit statement waits for the requested functions to finish processing. Control returns to your program after all high priority (V1) function modules have run successfully.
    The AND WAIT form is convenient for switching old programs to synchronous processing without having to re-write the code. Functionally, using AND WAIT for update-task updates is just the same as dialog-task updates with PERFORM ON COMMIT.
    Regards,
    Padmam.

  • Purpose of NACE Transaction and Output Types?

    Hi All,
    Can you please let me know the exact purpose of NACE Transaction and Output Types?
    Ashok

    Hi,
    In addition to the above threads you can also refer the fallowing threads:
    Re: how to configure/ smart form to standard program
    OUTPUT TYPE  in Nace!
    Regards,
    Shirisha

  • There is ClassNotFoundException when executing createMessage funciton

    There is ClassNotFoundException when executing createMessage funciton,but I cannot trace which class cannot be found.
    import java.io.*;
    import javax.xml.soap.*;
    import javax.xml.transform.stream.StreamSource;
    private SOAPMessage produceMessage() {   
    try {
    MessageFactory messageFactory = MessageFactory.newInstance();
    SOAPMessage message = messageFactory.createMessage();
    SOAPPart soapPart = message.getSOAPPart();
    StreamSource src = new StreamSource(new FileInputStream("soapmessage.xml"));
    soapPart.setContent(src);
    message.saveChanges();
    return message;
    } catch (SOAPException e) {
    System.err.println(e.getMessage());
    } catch (IOException e){
    System.err.println(e.getMessage());
    }

    the error message should tell you the class it could not load. (maybe the name, maybe the whole package name). Theres a BOAT load of library files used for soap messaging (with JAXM at least) that ive found need to be included on your classpath.
    try saaj-api.jar and saaj-ri.jar.
    Chris

Maybe you are looking for

  • In 4.6c system, alternate table for SRGBTBREL (available in ECC6)

    In ECC6 we have SRGBTBREL which contains the relationship between business object and the documents attached (attached using Generic services for object --> Create Attachment) to it.\ But in SAP 4.6c the same table is not available. Please suggest is

  • "Microsoft componenet......"Error message

    Though I have posted this b4 and I havent gotten any response; here is my sitiuation again, I have OS 9.2.2 and OS X 10.2.8 on my G4 which I have pagemaker 6.5 among other packages. The pagemaker 6.5 crashed and I saw this error message while trying

  • Intel Smart Response and RAID bios option

    hi unfortunately, i have lenovo M5400 and i am disappointed that i have another problem with this notebook. i cannot enable intel smart response in intel rapid storage because i ave no RAID option in bios, only compatible/ahci. why? how to fix it?

  • Cannot read/write error message when synching

    I've been doing my best to get my iPod up to date, but every time I try to sync the message that the drive is not able to be read from or written to appears about an tenth of the way in. I've restored my iPod and updated iTunes but the message contin

  • Zapfdingbats missing in JVM 1.3

    I wrote an applet using Zapfdingbats font and it worked fine with JVM 1.1. Now I loaded JVM 1.3. and my applet shows hyroglyphes. I haven't changed my program. What is wrong here? Claude