Removing "Doc Type" tag

We are using our PI system for sending cxml messages back and forth from customers to our R/3 SAP system.
My question is that when we receive the cxml documents from our customers, we need to remove the <Doc Type> tag for PI to process it. However, when we send the message back to the customer, we always have to add the doc type tag back into the message.
We are currently on PI 7.0.
Is there a fix for this or is this just the way that PI processes it?
Thanks,
Dale Dingmann

Hi
  I am not sure if this is fixed in PI, but there is a good old trick of doing it by using a Java map
(if this is what you are looking for)
check my posts in these threads
Re: Message Mapping validates against DTD
/message/549856#549856 [original link is broken]
also
Mapping API
Regards
Vishnu

Similar Messages

  • Removing message type tag in output file

    Hi guys,
    I'm new to XI. I have done an xml file to xml file scenario. It is working successfully
    The output file has a format
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:mt_xml_receiver xmlns:ns0="http://xml2xml">
         <DETAILS>
              <ID>111</ID>
              <NAME>Varun</NAME>
              <LOCATION>India</LOCATION>
              <ADD>Bangalore</ADD>
              <MOBILE>46572727</MOBILE>
              <EMAIL>[email protected]</EMAIL>
         </DETAILS>
    </ns0:mt_xml_receiver>
    I want to remove the additional tag present for the message type and i want the output in the format
    <?xml version="1.0" encoding="UTF-8"?>
         <DETAILS>
              <ID>111</ID>
              <NAME>Varun</NAME>
              <LOCATION>India</LOCATION>
              <ADD>Bangalore</ADD>
              <MOBILE>46572727</MOBILE>
              <EMAIL>[email protected]</EMAIL>
         </DETAILS>
    Can any one help me on how to achieve this???
    Pl help me on this guys
    Regards
    Varun

    HI Varun,
    This will help you..
    In the message type <b>mt_xml_receive</b>r there is a box where the namespace name is specified.
    Simply delete the same and activate the message type.
    In your case what you can do is as you dont want the message type name also.
    you can create the message type name as DETAILS instead of mt_xml_receiver.
    Regards,
    Sumit
    ps : reward points if tht helped u.

  • How to remove Doc Type in incoming message

    Hi all,
    I have a scenario Websevice -> XI > RFC. The incoming message has document type declaration which needs to be removed. Somebody directed me to  note number 812966.
    I could understand that i need to capture the incoming message and remove the document type but i don't know how to do that.
    I amd new to this type where Java program needs to be invoked. Does i require UFD needs to be created? If yes, what should be the input. If XML message is the input, how to capture that, means which input parameter contains that and to which, it should be passed back.
    Can any body please suggest the steps.
    Any help will really appriciated.
    Thanks and best regards,
    Kulwant

    Hi Kulwant,
    Could you pls explain how you have done that in xslt? Have you used any tool for xslt mapping?
    I am using Altova mapforce for doing xslt mapping but when i load my xml file (source) in this tool, It gives me error that it could not load dtd file which is mentioned in doctype node.
    Any idea?
    Regards
    Sumit

  • Inserting a node in XML and retaining the doc type

    Hi All,
    I want to insert one new node in an XML. Using the following code I can do that. But the problem is if the XML has doc type declaration then its giving me problem. After inserting the node the transformer is removing my doc type declaration from the XML. I have to retain the doc type definition (including entity declaration) as it is in the original XML file.
    The following is the code that I'm using.
    Document vDoc = null;
    try {
    // Contruct the DOM document
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder builder = factory.newDocumentBuilder();
    vDoc = builder.newDocument();
    Node vFormNode = vDoc.createElement("Form");
    vDoc.appendChild(vFormNode);
    // Convert into a String the DOM document
    TransformerFactory tFactory = TransformerFactory.newInstance();
    Transformer transformer = tFactory.newTransformer();
    DOMSource source = new DOMSource(vDoc);
    StringWriter sw = new StringWriter();
    StreamResult result = new StreamResult(sw);
    transformer.transform(source, result);
    catch (Exception e) {
    System.out.println("Error: " + e.getMessage());
    }The doc type def. in the original file is some thing like this.
    <!DOCTYPE article SYSTEM "someurl/TFJA.dtd"[
    <!ENTITY T0001 SYSTEM ".\BTN_A_000112809_O_XML_IMAGES\BTN_A_000112809_O_T0001.gif" NDATA GIF>
    <!ENTITY F0001 SYSTEM ".\BTN_A_000112809_O_XML_IMAGES\BTN_A_000112809_O_F0001g.gif" NDATA GIF>
    <!ENTITY F0002 SYSTEM ".\BTN_A_000112809_O_XML_IMAGES\BTN_A_000112809_O_F0002g.jpg" NDATA JPEG>
    ]>I know that I can set up the doc type definition in the new XML using the following properties of the transformer.
    transformer.setOutputProperty( OutputKeys.DOCTYPE_SYSTEM,"article" );
    transformer.setOutputProperty( OutputKeys.DOCTYPE_PUBLIC,"my DTD def");
    I cannot hard code the DTD def. as it can vary from one XML to another. Using doc.getDocType() I can get the doctype of the original XML. But is it is not returning the complete def. including entities declaration. Its giving me "someurl/TFJA.dtd".
    Is there any way to retain the complete doc type in the original XML file? I don't have much experience in XML and this issue is eating my head.. Also do I have to modify the DTD to accommodate the new tags added in order to make it a valid XML?
    Any help and sample code would be highly appreciated.

    Hi,
    I also had similar requirement and when searching i came across this post. Later i found the solution for this. Instead of hardcoding the doctype you can get it from Document as follows..Snippet from the code i used..
    DocumentType doctype = document.getDoctype();
    if(doctype != null) {
                   String id = doctype.getSystemId();
                   if(id == null || id.length() == 0)
                        return;
                   transformer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM, id);
                   id = doctype.getPublicId();
                   if(id == null || id.length() == 0)
                        return;
                   transformer.setOutputProperty(OutputKeys.DOCTYPE_PUBLIC, id);
    Hope this helps.
    Regards,
    Deepak

  • Revise ME57 revise default to PO doc type CR instead of NB

    The oonly PO doc doc type  used for assign and process in our organization is CR. 
    SAP defines the default as NB.
    Does any one know how to change this default to CR.

    Hi
    Thanks for your response but this does not impact the PO doc type proposed on ME57 using the ALV layout. 
    I am not sure that I want to go the BADI route. 
    I tried some other things and removed the old transactions ME21 and ME51 entries in OLME;
    ME21N and ME51N were already defaulted to CR or NB.  Didn't impact ME57 and the default proposed was still NB PO. 
    Changed the ME51N from NB to blank and again it didn't change it.  I thought maybe the logic was that SAP always looked for the req type first - I'll try anything at this point. 
    But now when I want to reset ME51N to B NB Req it doesn't recognize it as a valid Document type - and yet it is standard delivered????
    Any other suggestions?

  • Remove the unnecessary tags in XML using PL/SQL

    Hi Friends
    from the below XML, its generate by a complex SQL query, Now we need to remove all the object type tags, and all the empty tags.
    Version - PL/SQL Release 11.2.0.3.0 - Production
    <MajorLine>
        <MAJOR_LINE_OBJECT_TYPE> -- Need to remove these Objects types showing in the XML
            <LINEID>143424538</LINEID>
            <ITEMNAME>TC-ABC-123</ITEMNAME>
            <ITEMPATH>78245</ITEMPATH>
            <QUANTITY>10</QUANTITY>
            <SERVICELINE/> -- Need to remove all the Empty tags
            <MINORLINE>
                <MINOR_LINE_OBJECT_TYPE> -- Need to remove these Objects types showing in the XML
                    <LINEID>143424799</LINEID>
                    <ITEMNAME>TCC-abc</ITEMNAME>
                    <ITEMPATH>78245</ITEMPATH>
                    <QUANTITY>10</QUANTITY>
                    <SERVICELINE/>-- Need to remove all the Empty tags
                    <MINOR_MINOR_LINES>
                        <M_MINOR_LINE_TYPE> -- Need to remove these Objects types showing in the XML
                            <LINEID>143424798</LINEID>
                            <ITEMNAME>SF15-abc-xyz</ITEMNAME>
                            <ITEMPATH>78245</ITEMPATH>
                            <QUANTITY>10</QUANTITY>
                      </M_MINOR_LINE_TYPE>-- Need to remove these Objects types showing in the XML
                    </MINOR_MINOR_LINES>
                </MINOR_LINE_OBJECT_TYPE>--Need to remove these Objects types showing in the XML
            </MINORLINE>
        </MAJOR_LINE_OBJECT_TYPE>-- Need to remove these Objects types showing in the XML
    </MajorLine>
    i tried one of the queries posted in this blog ,PFB  to remove the empty tags , but it didnt work for me unfortunately. Please help.
    PFB
    WITH sample_data AS (
      SELECT xmltype('<MajorLine>
        <MAJOR_LINE_OBJECT_TYPE>
            <LINEID>143424538</LINEID>
            <ITEMNAME>hijk</ITEMNAME>
            <ITEMPATH>78245</ITEMPATH>
            <QUANTITY>10</QUANTITY>
            <SERVICELINE/>
            <MINORLINE>
                <MINOR_LINE_OBJECT_TYPE>
                    <LINEID>143424799</LINEID>
                    <ITEMNAME>efg</ITEMNAME>
                    <ITEMPATH>78245</ITEMPATH>
                    <QUANTITY>10</QUANTITY>
                    <SERVICELINE/>
                    <MINOR_MINOR_LINES>
                        <M_MINOR_LINE_TYPE>
                            <LINEID>143424798</LINEID>
                            <ITEMNAME>abc</ITEMNAME>
                            <ITEMPATH>78245</ITEMPATH>
                            <QUANTITY>10</QUANTITY>
                        </M_MINOR_LINE_TYPE>
                    </MINOR_MINOR_LINES>
                </MINOR_LINE_OBJECT_TYPE>
            </MINORLINE>
        </MAJOR_LINE_OBJECT_TYPE>
    </MajorLine>') xmldoc
      FROM dual
    SELECT deleteXML( t.xmldoc
                    , '/MajorLine/*[.="" or contains(.,"?")]'
                    ) as result
    FROM sample_data t
    My email ID is [email protected] -- You can reach me
    thanks in advance ... Arun thomas T

    Hey Odie. Great to see you again, the query is
    SELECT XMLELEMENT (
              "MajorLine",
              major_line_object_type (
    oola_major.line_id,
    oola_major.ordered_item,
    oola_major.header_id,
    oola_major.ordered_quantity,
                 CAST (
                    MULTISET (
                       SELECT oola_ser.line_id,
    oola_ser.ordered_item,
    --oola_ser.header_id,
    oola_ser.ordered_quantity,
    CAST (
                                 MULTISET (
    SELECT oola_ser2.service_start_date,
    oola_ser2.service_end_date,
    oola_ser2.service_duration
                                      FROM oe_order_lines_all oola_ser2
                                     WHERE oola_major.line_id =
    oola_ser2.service_reference_line_id
                                           AND oola_ser2.header_id =
    oola_major.header_id) AS service_period_table_type)
    FROM oe_order_lines_all oola_ser
                        WHERE oola_major.line_id =
                                 oola_ser.service_reference_line_id
    AND oola_ser.header_id = oola_major.header_id) --As of now excluding cross order service line
    AS SERVICE_TABLE_TYPE),
                 CAST (
                    MULTISET (
                       SELECT oola_minor.line_id,
    oola_minor.ordered_item,
    oola_minor.header_id,
    oola_minor.ordered_quantity,
    CAST (
                                 MULTISET (
                                    SELECT oola_ser1.line_id,
    oola_ser1.ordered_item,
                                           -- oola_ser1.header_id,
    oola_ser1.ordered_quantity,
                                           CAST (
                                              MULTISET (
                                                 SELECT oola_ser3.
    service_start_date,
    oola_ser3.
    service_end_date,
    oola_ser3.
    service_duration
                                                   FROM oe_order_lines_all oola_ser3
                                                  WHERE oola_minor.line_id =
    oola_ser3.
    service_reference_line_id
    AND oola_ser3.header_id =
    oola_major.
    header_id) AS service_period_table_type)
                                      FROM oe_order_lines_all oola_ser1
                                     WHERE oola_minor.line_id =
    oola_ser1.service_reference_line_id
                                           AND oola_ser1.header_id =
    oola_major.header_id) --As of now excluding cross order service line
    AS SERVICE_TABLE_TYPE),
    CAST (
                                 MULTISET (
                                    SELECT oola_minor_m.line_id,
    oola_minor_m.ordered_item,
                                           oola_minor_m.header_id,
    oola_minor_m.ordered_quantity
                                      FROM oe_order_lines_all oola_minor_m
                                     WHERE oola_minor.line_id =
                                              oola_minor_m.link_to_line_id
                                           AND oola_minor_m.header_id =
    oola_major.header_id) --As of now excluding cross order service line
                                                                       AS m_minor_line_table_type)
    FROM oe_order_lines_all oola_minor
                        WHERE    --oola_minor.top_model_line_id=oola_major.line_id
    oola_minor.link_to_line_id = oola_major.line_id
    AND oola_minor.header_id = oola_major.header_id
    AND oola_minor.item_type_code != 'SERVICE') AS MINOR_LINE_TABLE_TYPE)))
              AS "XMLOutput"
      FROM oe_order_lines_all oola_major
    WHERE oola_major.line_id = 143424538 AND oola_major.link_to_line_id IS NULL;
    can we rewirte it to get the desired out put ..
    Desired output is Just remove the Object_type tags and empty tags coming in the output xml.
    The previous issues i mentioned are not solved yet  . actually will update the challenges ..
    Odie .. thanks.. again

  • Text determination procedure with sales doc type

    For the Sales Doc type 'OR' , I am getting TEXT automatically in the Sales Order Header data , TEXT tab page.
    Can Any one tell me how can I remove the text, when i create sales order.
    Or please can any one give me the document or link or explain how the text determination procedure with sales doc type.

    Hi Sanjay,
    Thanks for your help.
    I managed to go there but I am really confused of what changes I have to do there.
    If you dont mind can you explain a bit in detail.
    Sorry for the trouble

  • What is the purpose of using rush order  doc type?

    what is the purpose of using rush order  doc type?

    hi,
    In a rush order transaction, the customer picks up the goods or you deliver the goods on the same day as the order is placed. In the standard system, when you save this sales document type, a delivery is automatically created and billing is related to the delivery.
    In the standard system, sales document type SO is saved for rush orders with immediate delivery type LF. Once the goods have been removed from storage, the goods are picked, and goods issue is posted.
    Once the billing documents are created (for example, in collective processing), invoice papers are printed and sent to the customer.
    CHAN

  • What is the purpose of using  credit process sales  doc type?

    what is the purpose of using  credit process sales  doc type?

    hi,
    A transaction that reduces Amounts Receivable from a customer is a credit memo.
    Credit memo request is a sales document used in complaints processing to request a credit memo for a customer. If the price calculated for the customer is too high, for example, because the wrong scale prices were used or a discount was forgotten, you can create a credit memo request. The credit memo request is blocked for further processing so that it can be checked. If the request is approved, you can remove the block. The system uses the credit memo request to create a credit memo.
    CHAN

  • What is the purpose of using  debit process sales  doc type?

    what is the purpose of using  debit process sales  doc type?

    hi,
    A debit memo is a transaction that reduces Amounts Payable to a vendor because; you send damaged goods back to your vendor.
    Debit memo request is a sales document used in complaints processing to request a debit memo for a customer. If the prices calculated for the customer were too low, for example, calculated with the wrong scaled prices, you can create a debit memo request. The debit memo request can be blocked so that it can be checked. When it has been approved, you can remove the block. It is  like a standard order. The system uses the debit memo request to create a debit memo.
    CHAN

  • How do I add a type tag to my enclosure with iWeb?

    I encode my video with QuickTime, manage my website with iWeb, and upload it to the web with Transmit.
    A few episodes ago, my podcasts stopped updating on Podcast Alley. Tech support pointed out the problem: There are no type tags on any of my enclosures.
    From what I gather, the type tag tell you what kind file it is - ie, a .m4v
    I don't have any idea how to add a type tag to an enclosure using iWeb, and I don't even know if its possible. I would think that iWeb would do it automatically.
    Also, how do I change my feed? I originally just used the feed iWeb created:
    http://www.leilajones.com/jonescast/...esCast/rss.xml
    But then set up a feedburner feed - which I now submit when I submit anywhere new.
    http://feeds.feedburner.com/jonescast
    But how do I change the rss feed on my website with iWeb... I love the simplicity of it, but it's so limiting...
    Also, how do I change the feed in iTunes to the Feedburner feed?
    Thanks for your help,
    http://www.jonescast.com

    Page 215 might help:  http://manuals.info.apple.com/en_US/iPhone_iOS4_User_Guide.pdf

  • KR doc type posted without vendor line item a mandatory item category

    Hello Gurus,
    We have SPL document splitter activated in our ECC system. We have the business transaction variant 0300 / Z001 assigned to doc type KR. The vendor line is obligatory in the above business transaction variant (BTV). THe splitting rule is also assigned for this BTV.
    THe problem is that despite having the vendor as obligatory for this BTV, we are able to post the doc type KR (vendor invoice) without the vendor line item e.g.. doc with doc type KR and debit and credit to expense a/c.
    Please share your experience if anyone has come across this issue,
    Prakash

    Hi,
    To make the vendor line mandatory for KR document type, you can write the validation as below:-
    Step 1:-
    Create a message ID via transaction code SE91 for message class /EACC/MSG/ACC_COMP as you want to display to user.
    Step 2:-
    Go to transaction GGB0 and create the validation step at complete document level in Financial Accounting as below:-
    Pre Requisits:-
    BKPF-BLART = 'KR'.
    Check:-
    Create a exit code using user exit and check that line items have at least one vendor line item.
    For this take the help of ABAPer and create a copy of the program RGGBR000 and code your check here and assign to the application area GBLR in view V_T80D via transaction code SM30.
    Message:-
    Message created in step 1 as error message.
    Step 3:-
    Please also check that this validation has active status (Status=1) at line complete document level (level 3) for your company code in transaction OB28.
    Regards,
    Gaurav

  • Changing doc. type after creating a doc. type.

    Hi Friends,
    We are doing our time ageing from the time of creating the document in DMS. We created a document with particular doc. type wrongly, after two days we found that the DMS creation was done with wrong doc. type. In this how to transfer to new correct doc. Type, if we delete this & create a new we canu2019t get any info that it was created two days back.
    We made Z report for this time ageing report.
    Regards,
    Sai Krishna

    You cannot change the document type after the document has been created. The only way to do this would be with an enhancement and this would create major issues with the integrity of your system

  • Billing doc types

    Hi Gurus,
    Can I confirm that invoice list is not a billing doc type and
    Returns and External transactions are also not billing doc types.
    I am not sure if only 'returns' is mentioned, does it mean the Returns order , the Returns delivery or credit memo request of that return or the credit memo for the returns.
    thanks.
    M Russo

    Yes it is true that you can consider Invoice List also as one of the billing document type.  I hope you would be aware of the functionality of Invoice List.
    For more details, go through these documentations.
    [Creating an Invoice List|http://help.sap.com/saphelp_45b/helpdata/en/dd/56111c545a11d1a7020000e829fd11/frameset.htm]
    [Invoice List|http://help.sap.com/saphelp_46c/helpdata/en/dd/561102545a11d1a7020000e829fd11/content.htm]
    thanks
    G. Lakshmipathi

  • WRP1 excluding open POs based on doc type

    Hi friends,
    We are using SAP IS Retail ECC 6.0
    In our business, we are having requirement that Open PO quantity of particular document type (eg ZNBA) should be excluded from the WRP1 requirement calculation.
    Eg:
    For an article 100001, Site A001, following are the details,
    Reorder point - 10
    Target stock - 20
    Current stock - 5
    Open PO quantity: (ZPO1 and ZPO2 are PO doc. types)
    ZPO1 - 2
    ZPO2 - 1
    Now WRP gives requirement of article as of 12 quantities.
    My requirement is to it should not include ZPO1 open quantity in consideration but should take ZPO2 into consideration.
    Hence requirement is to create PO for 14 quantities
    How do I achieve this?
    We have a control in SAP IS Retail where we can specify, that stock of which storage location should be considered in replenishment requirment calculation.
    Do we have a similar control for the PO Doc type?  If not, how do I achieve workaround?
    Thank you,
    regards,
    Gaurav

    Hi,
       Do the Following,  Create a new storage location., "ZL01"
    Whenever your creating a PO with this "ZPO1" document type assin this Slocation "ZL01", then do the below settings in SPRO..
    SPRO->Materials Management->Consumption-based Planning->Planning->Define Storage Location MRP per plant.
    (In RP indicatior please give "1"Storage location stock excluded from RP, this will exclude the stk from this location)
    Regards
    GK.
    Edited by: Gnana Kumar on Oct 22, 2010 11:15 AM

Maybe you are looking for

  • Limit the size of Attachments in Portal

    Dear Group, I have a question. We're on SRM 7.0 + EP. In SRM 4+5 it was possible to limit the file size for attachments. Now in SRM 7.0 is not possible in the same way. This is a huge problem as users upload big files which are then sent-out by mail

  • Dynamic populating Drop down using BI Query

    Hi, I have a form which has four drop down lists in it.  I need to populate one drop down using a BI Query dynamically. How to do this ? Thanks in advance. Regards, Bir.

  • Date Picker - show specific month of perticaular year

    Hi Experts, I am using sam.m.DatePicker control. By default date picker show current month-year when user open date picker. I want to show specific month of specific year when date picker is open. for eg: In my app, if student appearing for next year

  • After offline drop datafile, v$datafile.status='RECOVER'

    OS version: [oracle@base ~]$ uname -a Linux base.no.sohu.com 2.6.9-55.ELsmp #1 SMP Fri Apr 20 17:03:35 EDT 2007 i686 i686 i386 GNU/Linux DB version: SQL> select version from v$instance; VERSION 9.2.0.1.0Here is my steps, SQL>alter database datafile '

  • How to pass parameter from one form to another

    Hi, I have created a form based on a procedure . Now i want to pass a filed value from this form to another form . How can i do this. How can i pass a vlue from one form to another form in oracle portal. Thanks