How to Handle Barcode scanning in SRM

Hi Guys,
Can anyone suggest me how to handle the barcode scanning in SRM system, this is in SRM 4.0 version.
If so what are the steps to be followed.
Regards
Srujan K

Hi
Do have any information what are the config settings do we have to do for this in the SPRO.
Regards
Srujan K

Similar Messages

  • How to Handle BARCODE related issues in WebDynpro ABAP

    Hi All,
    How to handle barcode related issues in WDA?
    is it possible in WDA or not?
    please provide information or any links related..
    Thanks,
    raj.

    Hi ,
    You just need to install the software comes with the barcode scanner in the local PC and while reading you have to put the cursor on the field like inputfield . a barcode when interpreted by scanner is nothing but alphanumeric words.
    Regards
    Yash

  • Handling barcodes in scripts

    friends , please let me know how to handle barcodes in scripts?please provide me an example ?

    Hi Raja Reddy
    Barcode Standard
    To Create a Bar code prefix:
    1) Go to T-code - SPAD -> Full Administration -> Click on Device Type -> Double click the device for which you wish to create the print control -> Click on Print Control tab ->Click on change mode -> Click the plus sign to add a row or prefix say SBP99 (Prefix must start with SBP) -> save you changes , it will ask for request -> create request and save
    2) Now when you go to SE73 if you enter SBP00 for you device it will add the newly created Prefix
    Create a character format C1.Assign a barcode to the character format.Check the check box for the barcode.
    The place where you are using the field value use like this
    <C1> &itab-field& </C1>.
    You will get the field value in the form of barcode.
    Which barcode printer are you using ? Can you download this file and see.
    http://www.servopack.de/Files/HB/ZPLcommands.pdf.
    It will give an idea about barcode commands.
    Check this link:
    http://help.sap.com/saphelp_nw04/helpdata/en/d9/4a94c851ea11d189570000e829fbbd/content.htm
    Details information about SAP Barcodes
    A barcode solution consists of the following:
    - a barcode printer
    - a barcode reader
    - a mobile data collection application/program
    A barcode label is a special symbology to represent human readable information such as a material number or batch number
    in machine readable format.
    There are different symbologies for different applications and different industries. Luckily, you need not worry to much about that as the logistics supply chain has mostly standardized on 3 of 9 and 128 barcode symbologies - which all barcode readers support and which SAP support natively in it's printing protocols.
    You can print barcodes from SAP by modifying an existing output form.
    Behind every output form is a print program that collects all the data and then pass it to the form. The form contains the layout as well as the font, line and paragraph formats. These forms are designed using SAPScript (a very easy but frustratingly simplistic form format language) or SmartForms that is more of a graphical form design tool.
    Barcodes are nothing more than a font definition and is part of the style sheet associated with a particular SAPScript form. The most important aspect is to place a parameter in the line of the form that points to the data element that you want to represent as barcode on the form, i.e. material number. Next you need to set the font for that parameter value to one of the supported barcode symbologies.
    The next part of the equation can be a bit tricky as you will need to get a printer to print that barcode font. Regular laser printers does not normally print barcode fonts, only specialized industrial printers that is specifically designed to support that protocol and that uses specialized label media and heat transfer (resin) ribbon to create the sharp image required for barcodes.
    Not to fear though, there are two ways to get around this:
    - You can have your IT department do some research -
    most laser printers can accept a font cartridge/dimm chip (similar to computer memory), called a BarDIMM that will allow a laser printer to support the printing of barcodes.
    - Secondly, you can buy software that you can upload in your SAP print Server that will convert the barcode symbology as an image that will print on a regular laser printer. I found that this option results in less sharper barcodes. This option is really if you need to convert a large quantity of printers (>10) to support barcodes.
    - Thirdly, you can buy a third party software like Barcode.dll and install on your frontend PC connected to the laser printer.
    Now you have a barcode printed - what next?
    Well there are two options, depending on your business requirements:
    - You can use an existing SAP transaction on a regular workstation and get a barcode wedge reader to hook up between the keyboard and the PC. These wedge readers comes in a wand or scanner format. There are even wireless wedge scanners available that allows you to roam a few yards from the workstation to scan a label. This approach is mostly used where you want to prevent human errors in typing in long material, batch or serial numbers in receiving or issuing of material. The problem is that it's just replacing the keyboard input and you are basically locked down in one location and have to bring all the material to that location to process.
    - Another solution is to use SAPConsole transactions
    or write your own ABAP Dialog programs that will fit onto a barcode enabled wireless handheld terminal and that will follow the business logic as executed on the shop floor.
    These programs are highly complex exercises in industrial engineering and ergonomics because of the limited screen sizes and limited ability to accept keyboard input. The user is instructed step-by-step and only scan and push F-keys to interact with the SAP system. Scan, scan, beep, beep, enter - highly automated.
    Regards
    Sreeni

  • Any How-to handle SRM scenarios in BI 7.0

    Hi,
       BI 7.0 is being implemented for a client.He is trying to use SRM 5.0.Can u provide me some how-to handle SRM scenarios in BW guides or documents please.
    Regards,
    Joy

    Hi ,
    I need to retract data from BW-BPS 7.1 to SRM.I am new to BW
    (4 months experience)
    Can anyone send me documentation , links or steps by steps guide to explain how
    to do the link please?
    Is it more or less the same as with retraction into CO-Pa?Is there a standard retractor?
    If there are no standard retractors, what is the solution?
    This a challenging task for me and I really need to do it at work.
    Thanks in advance for your help.
    I'll surely assign points if one can help me.
    My mail is [email protected]
    Nevil

  • How-to handle SRM scenarios in Bi 7.0---any help ???

    Hi,
    BI 7.0 is being implemented for a client.He is trying to use SRM 5.0.Can u provide me some how-to handle SRM scenarios in BW guides or documents please.
    Regards,
    Joy

    Hi ,
    I need to retract data from BW-BPS 7.1 to SRM.I am new to BW
    (4 months experience)
    Can anyone send me documentation , links or steps by steps guide to explain how
    to do the link please?
    Is it more or less the same as with retraction into CO-Pa?Is there a standard retractor?
    If there are no standard retractors, what is the solution?
    This a challenging task for me and I really need to do it at work.
    Thanks in advance for your help.
    I'll surely assign points if one can help me.
    My mail is [email protected]
    Nevil

  • Suggestions on how to handle "Hacked Skype Account...

    I. User Can Still Access Account
    Run a full anti-virus scan (and other security scans available in your computer).  This may help to detect and remove any elements that the hacker may have used in gaining access to your account.
    2.  Immediately Change Your Password, preferably with something that is difficult to guess, and not related or totally different from the passwords you previously used. 
    3.  If the hacker also changed your registered email address, changed it back to your own email address.  Here is the link on how to change your registered email address;
    https://support.skype.com/en/faq/FA96/How-do-I-change-my-email-address-or-add-another-email-address-...
    4.  Contact Skype to report the incident.  They may be able to provide you with further explanation, clarification and helpful advice.  Use the Subject Security & Privacy >> Identity theft / Account takeover.
    https://support.skype.com/support_selection
    5.  You can also contact your bank to inform or alert them of the incident if there is a payment method registered in your Skype account.   They may also be able to provide you with additional suggestions, advice, or options.
    II. User Can Not Access Account (Password Has Been Changed) – Registered Email Address Not Changed.
    Run a full anti-virus scan (and other security scans available in your computer).  This may help to detect and remove any elements that the hacker may have used in gaining access to your account.
    2. Open the “Forgotten Your Password” page, then request for a new password to be sent to your registered email address;
    https://login.skype.com/account/password-reset-request
    3. Contact Skype to report the incident.  They may be able to provide you with further explanation, clarification and helpful advice.   Select the subject  Security & Privacy >> Identity theft / Account takeover.
    https://support.skype.com/support_request
    4. You can also contact your bank to inform or alert them of the incident if there is a payment method registered in your Skype account.   They may also be able to provide you with additional suggestions, advice, or options.
    III.  User Can Not Access Account (Password Has Been Changed) – Registered Email Address Has Also Been Changed.
    Run a full anti-virus scan (and other security scans available in your computer).  This may help to detect and remove any elements that the hacker may have used in gaining access to your account.
    2.  If your account has a billing or purchase history in the last 6 months, you can request for a new password without the need of your registered email address.  just click the link below;
         https://login.skype.com/account/password-automation
        After acquiring a new password, you can proceed in changing the registered email address to your own           email address;
        https://support.skype.com/en/faq/FA96/How-do-I-change-my-email-address-or-add-another-email-address-...
    3.  Contact Skype to report the incident.  They may be able to provide you with further explanation, clarification and helpful advice.  They will most likely ask you to provide some details in order for them to verify that you are the real account owner.  Select subject/topic Security & Privacy >> Identity theft / Account takeover.
         https://support.skype.com/support_request
    4.  You can also contact your bank to inform or alert them of the incident if there is a payment method registered in your Skype account.   They may also be able to provide you with additional suggestions, advice, or options.
    5.  If your account has no recent purchase, it may no longer be possible to retrieve your account.   Still you can try to contact Skype to know if you have other possible options.
    Note:  If for some reason the links to contact customer support don't work, you can also send an email to [email protected]
    Useful Links
    A. Protecting your Computer
    http://www.skype.com/intl/en-gb/security/online-safety/#protecting
    B. Skype Security - Protecting your online safety, security and privacy.
    http://www.skype.com/intl/en/security/
    C.  What can I do if someone has taken over my account? (from support.skype.com)
    https://support.skype.com/en-us/faq/FA10920/What-can-I-do-if-someone-has-taken-over-my-account;jsess...
    D.  How can I contact Skype Customer Service?
    https://support.skype.com/en/faq/FA1170/How-can-I-contact-Skype-Customer-Service
    CONTACT SKYPE CUSTOMER SERVICE   |  HOW TO RECORD SKYPE VIDEO CALLS  | HOW TO HANDLE SUPICIOUS CALLS AND MESSAGES   |  WINDOWS PROBLEMS TROUBLESHOOTING   |  SKYPE DOWNLOAD LINKS  
    MORE TIPS, TRICKS AND UPDATES AT
    skypefordummies.blogspot.com

    Skype is useless for this.
    They will claim that you the user are responsible, and that they don't need to do anyhing.
    So....
    Do not allow Skype to autorefill your account when it runs low on balance, and do not store a creditcard, or other payment info with them.
    Each user is liable for whatever the hackers can steal.
    As this is from recent personal experience, I recommend you to never keep payment information on file with Skype.

  • How to handle images (or let say mimes)

    Dear MDM Gurus,
    I want to start a discussion on how to handle MIMEs in MDM best.
    Szenario is MDM as a SRM Catalog System - Some million products(records) and as many mimes.
    - Import or linking?
    - What are the pros and cons of these two ways?
    - If I link images can MDM Server deliver them or do I need a seperate Webserver?
    - If I import them how will the DB Size extend?
    - If I "only" link the does it make a difference while lookup at import?
    Maybe some of you have more questions and hopefully some of you have a kind of best-practice help for us.
    Best regards
    Roman

    Hi Roman,
    Its a nice discussion you have started. According to me
    Advantage of linking
    1. You can store the millions of images in the separate machine so the disk space on which SQL Server is installed can be used to store other data.
    Disadvantage of linking
    1. It may take some time to load the repository or in accessing the MDM clients because system has to actually search the location and fetch the mimes where they are stored.
    Advantage of Storing
    1. Loading and Opening of MDM Clients time can be reduced since all the images are stored in the repository itself
    Disadvantage of Storing
    1. If there are millions of images as you have said then majority of drive space will be used by these mimes and hence we can create less MDM records
    Note: Sounds, Videos when stored in the repository cannot be played directly from the MDM Data manager they are first saved some where then only we can play them while this is not the case with linking
    Regards,
    Jitesh Talreja

  • How to handle HTTP Message Format

    Hi All,
    i have the interface like XML File(Supplier)--XI--HTTP Message Post(SRM Server)
    How to handle this case and how to handle the HTTP Message formats, what Adapters and all i need to use here
    Regards
    Vamsi

    check susma's reply
    File to HTTP
    File to HTTP
    /people/kausik.medavarapu/blog/2005/12/29/csv-file-lookup-with-http-request-and-response-in-xi

  • SAP WM 6.1 : Barcode Scanning Time&Date stamp capture

    Hi Experts,
    Our client have new requirement: we enable the Barcode scanning functionality for Functional Location in Notification screen, when user scan the functional location we need capture the time & date stamp also.   I am able to capture the functional location but not able to capture the date&time stamp of barcode scanning.
    can any body guide me how to capture the date&time stamp during scanning.
    Thanks
    Chigari

    Chigari,
    How you accomplish this will depend on where exactly you are scanning.
    If you are on a transaction screen you can simply add an additional property to the transaction to store the current date and time.
    If you are scanning to a list screen then you can look at adding / updating the single match action and no match actions to add in a transaction to store the timestamp.
    --Bill

  • Identifying goods movements which have been barcode scanned

    Hi,
    We are developing the use of ITS for barcode scanning in the warehouse, using Symbol 9090 HHDs.
    The transactions used are MIGO-like:- MB01, MB11.
    Goods are issued to PM orders, goods are receipted.
    How can we identify and report in SAP which movements have been performed using the handheld device, and which have been performed using manual input directly in the SAP gui?
    Thanks.

    Hi..
            I think mb51 is the apt report...filter by movement type 101 (G.R.N) and from the list filter the materials and vendor...a bit lengthy process but will work.
    Edamanayil

  • How to generate Barcode for Storage Bins

    Hi,
    How to generate Barcode for the all the newly created storage bins in order to get scanned with the RF devices.
    Thanks and regards,
    I.Jacob Milton

    Hello Jacob,
    We generate our barcodes with the help of the PPF action. For example, our labels have the barcodes onto them and when we finish a task that requires packing/unpacking/deconsolidation we have the PPF trigger the printing of the neccesary labels.
    I direct you to the path SCM SPRO - Supply Network Collaboration - Tools - Actions (Post Processing Framework). Here you need to set the action and namely the trigger.
    All the best,
    Claudiu Maxim

  • How To Handle Stale Stats Scenario.

    hi ,
    I am using Release 10.2.0.1.0 of Oracle. I am having a scenario in which i am getting poor execution plans due to stale stats , and how should i tackle the scenario. below is the part of my main query which deviates the execution path due to wrong cardinality estimation.
          My column c1 of table tab1 holds javatimestamp values i.e. its NUMBER datatype which points to a date and time component only. And we gather stats each weekend on this table tab1.
          below is my query:
          select /*+gather_plan_statistics*/* from tab1         
          where c1 BETWEEN 1346300090668 AND 1346325539486    ;     
    Plan hash value: 3167980259
    | Id  | Operation                   | Name                    | Starts | E-Rows | A-Rows |   A-Time   | Buffers | Reads  |
    |   1 |  TABLE ACCESS BY INDEX ROWID| tab1                    |      1 |   1    |    167K|00:01:13.72 |     158K|  12390 |
    |*  2 |   INDEX RANGE SCAN          | IDX_N1                  |      1 |   1    |    167K|00:00:13.27 |   13880 |   1736 |
         Above shows a big gap in actual and estimated cardinality estimation, and its due to the fact that the HIGH_VALUE (1346203206173 points to 8/29/2012 1:20:06 AM) in DBA_TAB_COLUMN for     column C1 is well below  the STARTRANGE(1346300090668 points to 8/30/2012 4:14:51 AM) and ENDRANGE(1346325539486 points to 8/30/2012 11:18:59 AM) of the BETWEEN clause.
         So even gathering stats daily on the table wont help me as because, in morning again it will require updated maxvalue for the column C1 for estimating proper, So how to handle this situation?  Dont want to go with 'hint' , want to make the stats proper so that optimizer will automatically pick the right path.Edited by: 930254 on Aug 30, 2012 4:41 AM

    930254 wrote:
    hi ,
    I am using Release 10.2.0.1.0 of Oracle. I am having a scenario in which i am getting poor execution plans due to stale stats , and how should i tackle the scenario. below is the part of my main query which deviates the execution path due to wrong cardinality estimation.
          My column c1 of table tab1 holds javatimestamp values i.e. its NUMBER datatype which points to a date and time component only. And we gather stats each weekend on this table tab1.
          below is my query:
          select /*+gather_plan_statistics*/* from tab1         
          where c1 BETWEEN 1346300090668 AND 1346325539486    ;     
    Plan hash value: 3167980259
    | Id  | Operation                   | Name                    | Starts | E-Rows | A-Rows |   A-Time   | Buffers | Reads  |
    |   1 |  TABLE ACCESS BY INDEX ROWID| tab1                    |      1 |   1    |    167K|00:01:13.72 |     158K|  12390 |
    |*  2 |   INDEX RANGE SCAN          | IDX_N1                  |      1 |   1    |    167K|00:00:13.27 |   13880 |   1736 |
         Above shows a big gap in actual and estimated cardinality estimation, and its due to the fact that the HIGH_VALUE (1346203206173 points to 8/29/2012 1:20:06 AM) in DBA_TAB_COLUMN for     column C1 is well below  the STARTRANGE(1346300090668 points to 8/30/2012 4:14:51 AM) and ENDRANGE(1346325539486 points to 8/30/2012 11:18:59 AM) of the BETWEEN clause.
         So even gathering stats daily on the table wont help me as because, in morning again it will require updated maxvalue for the column C1 for estimating proper, So how to handle this situation?  Dont want to go with 'hint' , want to make the stats proper so that optimizer will automatically pick the right path.Edited by: 930254 on Aug 30, 2012 4:41 AMUm, refresh the stats on a regular basis?
    Oracle 10 and later has a default job to do that. Runs at 2200 daily.
    If you need an 'on demand' refresh, that's easy enough to set up.

  • How to set approvals limit in SRM.

    Hello Experts.
    I would like to know how to set approval limit in SRM. I know in R/3 it is done at release startegy level. We will have class and rerlease strategies with number of characteristics and it will be subjected to approval.
    But I would like to know how it is handled in SRM. and also I would like to know it is varies with respect to scenarios (Classic, extended classic)  or same for all the scenarios?
    Kindly help me to understand.
    Thanking you
    Regards
    Sharan

    Hello Sharan,
    Approval limit is managed with "Extended attributes" tab, radio-button "PO Value limits" for Organizational Unit (object 'O') or Position (object 'S'). This is for all SRM releases and you can use it for all document category wokflow.
    Then, in SRM 7.0 (don't remember for lower releases), use method GET_APPROVAL_LIMIT from class interface /SAPSRM/CL_WF_RULE_CONTEXT.
    Regards.
    Laurent.

  • NAC - How to troubleshooting network scanning not working

    I'm testing Cisco NAC agentless in-bound layer2 mode following the CAM manual:
    •Configure the Quarantine Role
    •Load Nessus Plugins into the Clean Access Manager Repository,
    •Configure General Setup,
    •Apply Plugins,
    •Configure Plugin Options,
    •Configure Vulnerability Handling,
    •Test Scanning (I can successfully "test from Manager" from "test" tab)
    I'm sure I disabled personal firewall on the testing client on untrusted vlan.
    When I using a testing PC to open a browser to access internet, I was redirected to the authentication pape, after login, I got unlimited access. The problem is It looks CAS did not do any scan to the PC as expected according to the policy I defined for "unauthenticated" role, there is no any scan report poped up.
    1.Any way I can check if Nessus Scanning is working properly on CAS?
    2.Any log or evidence I can check to make sure the scanning start, in process, complete , so I can know the status.
    3.How to check all plugin already pushed and sycronized by CAM?
    Thanks in advance

    Following links may help you
    http://www.cisco.com/en/US/products/ps6128/products_tech_note09186a0080545b62.shtml
    http://www.cisco.com/en/US/docs/security/nac/profiler/configuration_guide/217/p_integration.html#wp1055771

  • How to handle exception CX_SY_REF_IS_INITIAL

    hi experts,
    im working on a test scenario for abap mapping in SAP XI im getting this error
    An exception with the type CX_SY_REF_IS_INITIAL occurred, but was neither handled locally, nor declared in a RAISING clause Dereferencing of the NULL reference
    i understand that i need to catch this exception in the abap coding but i'm not familiar with oops concepts
    can any one please suggest me how to handle this exception for the following code...
    method IF_MAPPING~EXECUTE.
      break x1149.
    * initialize iXML
      TYPE-POOLS: ixml.
      class cl_ixml definition load.
    ** Instances & Variable declaration =======================
    * instance main factory
      TYPES: BEGIN OF t_xml_line,
              data(256) TYPE x,
            END OF t_xml_line.
      DATA: l_ixml TYPE REF TO if_ixml,
    * instance input stream factory
       l_streamfactory TYPE REF TO if_ixml_stream_factory,
    * instance input stream
      l_istream  TYPE REF TO if_ixml_istream,
    * instance input document
      l_document TYPE REF TO if_ixml_document,
    * instance parse input document
      l_parser TYPE REF TO if_ixml_parser,
    * instance for elements within the nodes
      node      TYPE REF TO if_ixml_node,
    *instance of nodemap
      nodemap   TYPE REF TO if_ixml_named_node_map,
    * instance for iterator
      iterator  TYPE REF TO if_ixml_node_iterator,
      name      TYPE string,
      value     TYPE string,
    * instance main factory
       o_ixml   TYPE REF TO if_ixml,
    * instance output document
       o_document TYPE REF TO if_ixml_document,
    * instance output stream
      o_istream  TYPE REF TO if_ixml_ostream,
    * instance parse output document
      o_parser  TYPE REF TO if_ixml_parser,
    * instance fot renderer
      renderer type ref to if_ixml_renderer,
      irc type i,
      l_xml_size   TYPE i,
    *ROOT ELEMENT
    l_element_MT_DEMANDTEC_COST TYPE REF TO if_ixml_element,
    *NEXT CHILD ELEMENT FROM THE ABOVE PARENT
    l_element_DT_DEMANDTEC TYPE REF TO if_ixml_element,
    *CHILDREN1 ELEMENT FOR DT_DEMANDTEC
    l_element_DT_WHSE  TYPE REF TO if_ixml_element,
    *CHILDREN2 ELEMENT FOR DT_DEMANDTEC
    l_element_DT_DC    TYPE REF TO if_ixml_element,
    *CHILDREN3 ELEMENT FOR DT_DEMANDTEC
    l_element_DT_PLANT    TYPE REF TO if_ixml_element,
    *CHILDREN4 ELEMENT FOR DT_DEMANDTEC
    l_element_DT_QTY    TYPE REF TO if_ixml_element.
    *saving the xml document
      DATA: l_xml_table       TYPE TABLE OF t_xml_line.
      types: begin of t_source,
              whse(5),
              dc(4) ,
              plant(4),
              qty    type i,
             end of t_source.
      types: tt_source TYPE STANDARD TABLE OF t_source.
      data:  wa_source type t_source.
      data: it_source TYPE  tt_source,
            ivalue type string.
    * Procedures and business logic =======================================
    *   Creating the main iXML factory
      l_ixml = cl_ixml=>create( ).
    *   Creating a stream factory
      l_streamfactory = l_ixml->create_stream_factory( ).
    * create input stream
      l_istream = l_streamfactory->create_istream_xstring( source ).
    *  initialize input document
      l_document = l_ixml->create_document( ).
    *  Create a Parser
      l_parser = l_ixml->create_parser( stream_factory = l_streamfactory
                                          istream        = l_istream
                                          document       = l_document ).
    * parse input document
      l_parser->parse( ).
    *   Validate a document
      l_parser->set_validating( mode = if_ixml_parser=>co_validate ).
    *   Parse the stream
      IF l_parser->parse( ) NE 0.
        IF l_parser->num_errors( ) NE 0.
          DATA: parseerror TYPE REF TO if_ixml_parse_error,
                str        TYPE string,
                i          TYPE i,
                count      TYPE i,
                index      TYPE i.
          count = l_parser->num_errors( ).
          WRITE: count, ' parse errors have occured:'.
          index = 0.
          WHILE index < count.
            parseerror = l_parser->get_error( index = index ).
            i = parseerror->get_line( ).
            WRITE: 'line: ', i.
            i = parseerror->get_column( ).
            WRITE: 'column: ', i.
            str = parseerror->get_reason( ).
            WRITE: str.
            index = index + 1.
          ENDWHILE.
        ENDIF.
      ENDIF.
    *   Process the document
      IF l_parser->is_dom_generating( ) EQ 'X'.
        refresh : it_source.
        node ?= l_document.
        CHECK NOT node IS INITIAL.
    *   create a node iterator
        iterator  = node->create_iterator( ).
    *   get current node
        node = iterator->get_next( ).
    *   loop over all nodes
        WHILE NOT node IS INITIAL.
          CASE node->get_type( ).
            WHEN if_ixml_node=>co_node_element.
    *         element node
              name    = node->get_name( ).
              nodemap = node->get_attributes( ).
            WHEN if_ixml_node=>co_node_text.
    *         text node
              value  = node->get_value( ).
              if name eq 'DT_WHSE'.
                wa_source-whse = value.
              ELSEIF name eq 'DT_DC'.
                wa_source-DC = value.
              ELSEIF name eq 'DT_PLANT'.
                wa_source-PLANT = value.
              ELSEIF name eq 'DT_QTY'.
                wa_source-QTY = value.
                COLLECT wa_source INto it_source.
                CLEAR   wa_source.
              ENDIF.
          endcase.
          node = iterator->get_next( ).
        endwhile.
      ENDIF.
      loop at it_source into wa_source .
        at first.
    *       Creating a ixml factory
          o_ixml = cl_ixml=>create( ).
    *       Creating the dom object model
          o_document = l_ixml->create_document( ).
        endat.
    *       Build and Fill  root node MT_DEMANDTEC_COST
        AT FIRST.
          l_element_MT_DEMANDTEC_COST    =
    O_document->create_simple_element(
                                  name   = 'MT_DEMANDTEC_COST'
                                  parent = o_document ).
        ENDAT.
    *      Build and Fill  Child node DT_DEMANDTEC for parent
    *                                                  MT_DEMANDTEC_COST
        l_element_DT_DEMANDTEC    = O_document->create_simple_element(
                                     name   = 'DT_DEMANDTEC'
                                     parent = l_element_MT_DEMANDTEC_COST ).
    *      Build and Fill  Child node1 DT_WHSE for parent DT_DEMANDTEC
        ivalue              = wa_source-WHSE.
        l_element_DT_WHSE    = O_document->create_simple_element(
                                         name   = 'DT_WHSE'
                                         VALUE  = ivalue
                                         parent = l_element_DT_DEMANDTEC  ).
    *      Build and Fill  Child node2 DT_WHSE for parent DT_DEMANDTEC
        ivalue              = wa_source-DC.
        l_element_DT_DC   = O_document->create_simple_element(
                                             name   = 'DT_DC'
                                              VALUE  = ivalue
                                    parent = l_element_DT_DEMANDTEC ).
    *      Build and Fill  Child node3 DT_WHSE for parent DT_DEMANDTEC
        ivalue              = wa_source-PLANT.
        l_element_DT_PLANT   = O_document->create_simple_element(
                                                 name   = 'DT_PLANT'
                                                  VALUE  = ivalue
                                   parent = l_element_DT_DEMANDTEC  ).
    *      Build and Fill  Child node4 DT_QTY for parent DT_DEMANDTEC
        ivalue              = wa_source-QTY.
        l_element_DT_QTY     = O_document->create_simple_element(
                                                 name   = 'DT_QTY'
                                                  VALUE  = ivalue
                                   parent = l_element_DT_DEMANDTEC  ).
      endloop.
    * render document ======================================================
    * create output stream
      o_istream  = l_streamfactory->create_ostream_xstring( result ).
    *   Connect internal XML table to stream factory
      o_istream  = l_streamfactory->create_ostream_itable( table =
    l_xml_table ).
      renderer = o_ixml->create_renderer( ostream = o_istream
                                              document = o_document ).
      irc = renderer->render( ).
    * how do i catch the exception for type CX_SY_REF_IS_INITIAL ...?
    endmethod.
    full reward points for answers.
    Thanks & Regards,
    Uday Kumar.
    Edited by: UDAY on May 6, 2008 9:32 PM

    Hi Uday,
    Its occurs because you're trying to access a objects with null reference. Or you forgot to create an instance or an error occurs during the instance creation. So You should put all your "Procedures and business logic" inside a Try/catch block. as follow.
    " Define a class exception object to get error message......
    DATA o_exception TYPE REF TO cx_sy_ref_is_initial.
    "// Use the statment Try block to catch the error.
    TRY.
    *   Creating the main iXML factory
      l_ixml = cl_ixml=>create( ).
    *   Creating a stream factory
      l_streamfactory = l_ixml->create_stream_factory( ).
    * create input stream
      l_istream = l_streamfactory->create_istream_xstring( source ).
    *  initialize input document
      l_document = l_ixml->create_document( ).
    *  Create a Parser
      l_parser = l_ixml->create_parser( stream_factory = l_streamfactory
                                          istream        = l_istream
                                          document       = l_document ).
    * parse input document
      l_parser->parse( ).
    *   Validate a document
      l_parser->set_validating( mode = if_ixml_parser=>co_validate ).
    *   Parse the stream
      IF l_parser->parse( ) NE 0.
        IF l_parser->num_errors( ) NE 0.
          DATA: parseerror TYPE REF TO if_ixml_parse_error,
                str        TYPE string,
                i          TYPE i,
                count      TYPE i,
                index      TYPE i.
          count = l_parser->num_errors( ).
          WRITE: count, ' parse errors have occured:'.
          index = 0.
          WHILE index < count.
            parseerror = l_parser->get_error( index = index ).
            i = parseerror->get_line( ).
            WRITE: 'line: ', i.
            i = parseerror->get_column( ).
            WRITE: 'column: ', i.
            str = parseerror->get_reason( ).
            WRITE: str.
            index = index + 1.
          ENDWHILE.
        ENDIF.
      ENDIF.
    *   Process the document
      IF l_parser->is_dom_generating( ) EQ 'X'.
        refresh : it_source.
        node ?= l_document.
        CHECK NOT node IS INITIAL.
    *   create a node iterator
        iterator  = node->create_iterator( ).
    *   get current node
        node = iterator->get_next( ).
    *   loop over all nodes
        WHILE NOT node IS INITIAL.
          CASE node->get_type( ).
            WHEN if_ixml_node=>co_node_element.
    *         element node
              name    = node->get_name( ).
              nodemap = node->get_attributes( ).
            WHEN if_ixml_node=>co_node_text.
    *         text node
              value  = node->get_value( ).
              if name eq 'DT_WHSE'.
                wa_source-whse = value.
              ELSEIF name eq 'DT_DC'.
                wa_source-DC = value.
              ELSEIF name eq 'DT_PLANT'.
                wa_source-PLANT = value.
              ELSEIF name eq 'DT_QTY'.
                wa_source-QTY = value.
                COLLECT wa_source INto it_source.
                CLEAR   wa_source.
              ENDIF.
          endcase.
          node = iterator->get_next( ).
        endwhile.
      ENDIF.
      loop at it_source into wa_source .
        at first.
    *       Creating a ixml factory
          o_ixml = cl_ixml=>create( ).
    *       Creating the dom object model
          o_document = l_ixml->create_document( ).
        endat.
    *       Build and Fill  root node MT_DEMANDTEC_COST
        AT FIRST.
          l_element_MT_DEMANDTEC_COST    =
    O_document->create_simple_element(
                                  name   = 'MT_DEMANDTEC_COST'
                                  parent = o_document ).
        ENDAT.
    *      Build and Fill  Child node DT_DEMANDTEC for parent
    *                                                  MT_DEMANDTEC_COST
        l_element_DT_DEMANDTEC    = O_document->create_simple_element(
                                     name   = 'DT_DEMANDTEC'
                                     parent = l_element_MT_DEMANDTEC_COST ).
    *      Build and Fill  Child node1 DT_WHSE for parent DT_DEMANDTEC
        ivalue              = wa_source-WHSE.
        l_element_DT_WHSE    = O_document->create_simple_element(
                                         name   = 'DT_WHSE'
                                         VALUE  = ivalue
                                         parent = l_element_DT_DEMANDTEC  ).
    *      Build and Fill  Child node2 DT_WHSE for parent DT_DEMANDTEC
        ivalue              = wa_source-DC.
        l_element_DT_DC   = O_document->create_simple_element(
                                             name   = 'DT_DC'
                                              VALUE  = ivalue
                                    parent = l_element_DT_DEMANDTEC ).
    *      Build and Fill  Child node3 DT_WHSE for parent DT_DEMANDTEC
        ivalue              = wa_source-PLANT.
        l_element_DT_PLANT   = O_document->create_simple_element(
                                                 name   = 'DT_PLANT'
                                                  VALUE  = ivalue
                                   parent = l_element_DT_DEMANDTEC  ).
    *      Build and Fill  Child node4 DT_QTY for parent DT_DEMANDTEC
        ivalue              = wa_source-QTY.
        l_element_DT_QTY     = O_document->create_simple_element(
                                                 name   = 'DT_QTY'
                                                  VALUE  = ivalue
                                   parent = l_element_DT_DEMANDTEC  ).
      endloop.
    * render document ======================================================
    * create output stream
      o_istream  = l_streamfactory->create_ostream_xstring( result ).
    *   Connect internal XML table to stream factory
      o_istream  = l_streamfactory->create_ostream_itable( table =
    l_xml_table ).
      renderer = o_ixml->create_renderer( ostream = o_istream
                                              document = o_document ).
      irc = renderer->render( ).
    "   The Statement CATCH define a block that catches the exceptions of the
    "   exception class cx_sy_ref_is_initial
        CATCH cx_sy_ref_is_initial INTO o_exception.
    " If you need to get the error message text do as follow
    DATA errorMsg type string.
    " Get the message text
      errorMsg = o_exception->GET_TEXT( ).
    " Display the error information
      MESSAGE errorMsg TYPE 'I'.
      ENDTRY.
    The TRY block defines a guarded area whose class-based exceptions can be caught in the subsequent CATCH blocks. If no exception occurs in the TRY block and it reaches its end, the system continues the processing after ENDTRY. If a class-based exception occurs in the TRY block, the system searches for an exception handler in the same or an external TRY control structure.
    Font: SAP Help
    You can see a how to create and use an exception in this example [ ABAP Objects - Defining a Class-based exceptions|https://wiki.sdn.sap.com/wiki/x/19w] .
    Best Regards.
    Marcelo Ramos

Maybe you are looking for

  • Currency conversion in Import Duties

    Dear All, I have created Import PO , duty calculation is correct in PO. For same Custom bill passing done (MIRO). IR values are calculated correctly. While doing the GR the values are coming in ERU it should be in INR. Exchange rate is maintained in

  • Applications won't launch after Installing Safari 3

    I recently tried to download and install Safari 3 on Mac OS 10.3.9. After installation, Safari would not launch and neither will Mail. I have since gone back to Safari 1.3.2 but the Mail application still will not launch. I would greatly appreciate a

  • Trying to open AI

    BEen running AI with no problems, 4 days ago went to open and got the message " Could not complet the requested operation" Have since unistalled and reinstalled, but getting the same error message.  All of the other Adobe programs are opening fine wi

  • Is it possible to use WL SSL from an applet.

    In other words, how I set the WL https classes as handlers of a https request? Is this possible at all, or I must use Context/T3Client We are using WL5.1.0/SP8 Domestic. Thanks!

  • Officejet 4500 G510n-z (all in one wireless) - how to eliminate power save option?

    My Officejet 4500 G510n-z (All in one, wireless) works fine until it sits idle - then it goes into power save mode and won't "wake up".  I have tried every button on the control panel - and nothing gets it out of power save idle.  In this state, you