Function element value in ARTMAS IDoc

Hi,
My scenario is IDoc->Xi->File, my mapping is based on Function element (if the IDoc contains changes or new data) but all time I got just 005 as Function witch mean new article.
Is there any set up to do in order to get 004 for changes and 005 for new data?
Thank you,

Hi,
You are doing an Idoc to File and the idoc is sent from your SAP system.
In real time, the functional team would have scheduled a report that will create the idoc and send it to XI. The Logic for creating the idoc would be with your functional team. So,. it would be best to ask the functional team for the clarification on this and ask them to send the appropriate data.
Regards,
Bhavesh

Similar Messages

  • FUNCTION elememt in ARTMAS IDOC?

    Hi,
    I m looking for the e;eaning of the FUNCTION elememt in ARTMAS IDOC! is it relation to creation / upadate data?
    If it s true, how it s look this maching?
    Thanks,
    FF

    hi,
    values for Function element from WE60
    '003' Delete: Message contains objects to be deleted
    '004' Change: Message contains changes
    '005' Replace: This message replaces previous messages
    '009' Original: First message for process
    '023' Wait/Adjust: Data should not be imported
    '018' Resend
    Regards,
    michal
    <a href="/people/michal.krawczyk2/blog/2005/06/28/xipi-faq-frequently-asked-questions"><b>XI / PI FAQ - Frequently Asked Questions</b></a>

  • How to call pl/sql function from element values

    EBS 11.5.10.2
    XMLP 5.6.3
    Hello,
    I noticed that the output of the rdf-to-data template conversion process makes use of an undocumented feature of data templates, and I would like to get input from experts as to which situations this feature is usable.
    The closest thing I can find in the documentation is a sample in the user guide. There is a "General Ledger Journals Data Template Example" that has a <dataStructure> section that contains <element> nodes which are NOT children of a <group> node. I can't find any explanation of this in the user guide.
    I've noticed from converted templates that in these un-grouped elements you can make calls to PL/SQL functions in the "value" attribute, like this:
    <dataStructure>
      <group name="G_LINES" source="Q_MAIN">
        <element name="Line_Num"           value="Line_Num"/>
      </group>
      <element name="C_CALCULATED_VALUE" dataType="number" value="XX_CUSTOMPROCS.SOME_FUNCTION"/>
    </dataStructure>Has anyone had any success being able to call PL/SQL functions from grouped elements? Whenever I try, it doesn't seem to work.
    When I try something like this:
    <dataStructure>
      <group name="G_LINES" source="Q_MAIN">
        <element name="Line_Num"           value="Line_Num"/>
        <element name="some_calculation"   value="XX_CUSTOMPROCS.SOME_FUNCTION"/>
        <element name="some_calculation_b" value="XX_CUSTOMPROCS.SOME_FUNCTION_B(:Line_Num)"/>
      </group>
      <element name="C_CALCULATED_VALUE" dataType="number" value="XX_CUSTOMPROCS.SOME_FUNCTION"/>
    </dataStructure>The <SOME_CALCULATION/> and <SOME_CALCULATION_B/> nodes come out empty in the output data xml file, but <C_CALCULATED_VALUE> would have a value as desired.

    ah - perfect. That makes sense. Thank you for the response!
    But what about when we need to pass parameters to those functions whos values are the results of aggregate element values?
    This happens a lot in the converted data templates, where pl/sql package functions are meant to replace formula columns from the original Oracle Report. Take this example from the conversion of ARXAGMW.rdf (Aging Report, 7 Buckets):
    (note the function call in the value of "Set_Percent_Inv_Inv" is using aggregate results from subgroups)
      <group name="G_INV_INV" dataType="varchar2" source="Q_Invoice">
        <element name="Total_Inv_Inv_Amt" function="sum" dataType="number" value="G_Invoice.C_Amt_Due_Rem_Inv"/>
        <element name="Total_Inv_Inv_B0" function="sum" dataType="number" value="G_Invoice.C_Inv_B0"/>
        <element name="Total_Inv_Inv_B1" function="sum" dataType="number" value="G_Invoice.C_Inv_B1"/>
        <element name="Total_Inv_Inv_B2" function="sum" dataType="number" value="G_Invoice.C_Inv_B2"/>
        <element name="Total_Inv_Inv_B3" function="sum" dataType="number" value="G_Invoice.C_Inv_B3"/>
        <element name="Total_Inv_Inv_B4" function="sum" dataType="number" value="G_Invoice.C_Inv_B4"/>
        <element name="Total_Inv_Inv_B5" function="sum" dataType="number" value="G_Invoice.C_Inv_B5"/>
        <element name="Total_Inv_Inv_B6" function="sum" dataType="number" value="G_Invoice.C_Inv_B6"/>
        <element name="Set_Percent_Inv_Inv"  dataType="number"  value="XX_CUSTOMPROCS.XXC_ARXAGMW.set_percent_inv_invformula(:Total_Inv_Inv_Amt, :Total_Inv_Inv_B0, :Total_Inv_Inv_B1, :Total_Inv_Inv_B2, :Total_Inv_Inv_B3, :Total_Inv_Inv_B4, :Total_Inv_Inv_B5, :Total_Inv_Inv_B6)"/>
        <element name="Sum_Percent_B0_Inv" dataType="number" value="XX_CUSTOMPROCS.XXC_ARXAGMW.Sum_Percent_B0_Inv_p"/>
        <element name="Sum_Percent_B1_Inv" dataType="number" value="XX_CUSTOMPROCS.XXC_ARXAGMW.Sum_Percent_B1_Inv_p"/>
        <element name="Sum_Percent_B2_Inv" dataType="number" value="XX_CUSTOMPROCS.XXC_ARXAGMW.Sum_Percent_B2_Inv_p"/>
        <element name="Sum_Percent_B3_Inv" dataType="number" value="XX_CUSTOMPROCS.XXC_ARXAGMW.Sum_Percent_B3_Inv_p"/>
        <element name="Sum_Percent_B4_Inv" dataType="number" value="XX_CUSTOMPROCS.XXC_ARXAGMW.Sum_Percent_B4_Inv_p"/>
        <element name="Sum_Percent_B5_Inv" dataType="number" value="XX_CUSTOMPROCS.XXC_ARXAGMW.Sum_Percent_B5_Inv_p"/>
        <element name="Sum_Percent_B6_Inv" dataType="number" value="XX_CUSTOMPROCS.XXC_ARXAGMW.Sum_Percent_B6_Inv_p"/>
        <group name="G_Cust_Inv" dataType="varchar2" source="Q_Invoice">
          <group name="G_Site_Inv" dataType="varchar2" source="Q_Invoice">
            <group name="G_1" dataType="varchar2" source="Q_Invoice">
              <group name="G_Invoice" dataType="varchar2" source="Q_Invoice">
                <element name="C_Amt_Due_Rem_Inv" dataType="number" value="C_Amt_Due_Rem_Inv"/>
                <element name="C_Inv_B0" dataType="number" value="C_Inv_B0"/>
                <element name="C_Inv_B1" dataType="number" value="C_Inv_B1"/>
                <element name="C_Inv_B2" dataType="number" value="C_Inv_B2"/>
                <element name="C_Inv_B3" dataType="number" value="C_Inv_B3"/>
                <element name="C_Inv_B4" dataType="number" value="C_Inv_B4"/>
                <element name="C_Inv_B5" dataType="number" value="C_Inv_B5"/>
                <element name="C_Inv_B6" dataType="number" value="C_Inv_B6"/>
              </group>
            </group>
          </group>
        </group>
      </group>
      ...All of these groups and sub-groups are based on one single query, so I am not sure how I would move the function call into the query without changing the results of the function.
    In the example above, elements Sum_Percent_B0_Inv through Sum_Percent_B6_Inv grab the results of the calculation done in set_percent_inv_invformula. Here is the essence of that function:
      sum_percent_b0_inv := ROUND ((total_inv_inv_b0 / total_inv_inv_amt) * 100, 2);
      sum_percent_b1_inv := ROUND ((total_inv_inv_b1 / total_inv_inv_amt) * 100, 2);
      sum_percent_b2_inv := ROUND ((total_inv_inv_b2 / total_inv_inv_amt) * 100, 2);
      sum_percent_b3_inv := ROUND ((total_inv_inv_b3 / total_inv_inv_amt) * 100, 2);
      sum_percent_b4_inv := ROUND ((total_inv_inv_b4 / total_inv_inv_amt) * 100, 2);
      sum_percent_b5_inv := ROUND ((total_inv_inv_b5 / total_inv_inv_amt) * 100, 2);
      sum_percent_b6_inv := ROUND ((total_inv_inv_b6 / total_inv_inv_amt) * 100, 2);The only solution I can think of is to have separate queries, one for each subgroup, that do the "sum" in sql; but that seems terribly inefficient.

  • XSL mapping of ARTMAS IDoc - carriage returns and white space

    Hi all. I have tried all sorts here and am completely stuck. I am mapping an article master ARTMAS IDoc using XSL mapping and an extra carriage return and white space characters are being added to the FIELD1 and FIELD2 fields of the E1BPE1MARAEXTRT segment and I don't know why! These fields contain all our bespoke field values joined together so they are 229 and 250 characters long respectively, which I think is related to the problem. The mapping program looks like this:
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:output method="xml" encoding="UTF-8" omit-xml-declaration="no" indent="yes"/>
    <xsl:template match="/">
    <ARTMAS04>
    <IDOC>
      <xsl:copy-of select="//ARTMAS04/IDOC/EDI_DC40"/>
      <xsl:copy-of select="//ARTMAS04/IDOC/E1BPE1MATHEAD"/>
      <xsl:copy-of select="//ARTMAS04/IDOC/E1BPE1MARART"/>
      <xsl:copy-of select="//ARTMAS04/IDOC/E1BPE1MARAEXTRT"/>
      <xsl:copy-of select="//ARTMAS04/IDOC/E1BPE1MAKTRT"/>
      <xsl:for-each select="//ARTMAS04/IDOC/E1BPE1MARCRT">
        <xsl:if test="(PLANT='D100') or (PLANT='D200') or (PLANT='D300')">
          <xsl:copy-of select="."/>
        </xsl:if>
      </xsl:for-each>
      <xsl:copy-of select="//ARTMAS04/IDOC/E1BPE1MARMRT"/>
      <xsl:copy-of select="//ARTMAS04/IDOC/E1BPE1MEANRT"/>
    </IDOC>
    </ARTMAS04>
    </xsl:template>
    </xsl:stylesheet>
    I have a test IDoc going through this and the first 3 characters of the FIELD1 are "BIK". If I look at the source of the XML file, the problem area looks like this:
    <E1BPE1MARAEXTRT SEGMENT="1">
          <FUNCTION>004</FUNCTION>
          <MATERIAL>000000000000895649</MATERIAL>
          <b><FIELD1>
            BIK</b>      0  0.00 T                                    000000001CARRERA FURY 04 20"     CARRERA FURY 04 20" 2005092420040622    X                    00000000   20031104 00200406140000000000                    0.00 0000000
          </FIELD1>
    You can't really see it above, but there is a carriage return and 8 white spaces before the BIK. Where does this carriage return and white space come from?! Any help would be really appreciated - this is driving me crazy!
    Many thanks,
    Stuart Richards

    Stuart,
    I think I know the cause to your problem. I am not an XSLT programmer but based on searching this forum I found how I can acheive the carriage return at the end of my document. Your xsl statement is as follows:
    <xsl:output method="xml" encoding="UTF-8" omit-xml-declaration="no" indent="yes"/>
    Change the indent value from yes to no. This should remove the carraige return. Hope this works for you.
    I actually need a carriage return and line feed on my document so I am still stuck. All I have acheived is the carraige return.
    Thanks,
    Jim

  • Problem with ParseEscapedXML with " " in element value

    I'm having trouble with using getContentAsString, manipulating using a translate in a java embed, and then converting back using ParseEscapedXML. The trouble is occuring when there are "<" and ">" as element values. I'm not sure of a good way to convert the ">" to an escape value for only element values.
    I haven't been able to get the xsl:character-map function to work.
    Any tips would be greatly appreciated.

    HL7 is a flat file old style pipe and bar format for healthcare messaging. It has a section that lists the delimeters, which usually looks something like:
    MSH|^~\&|PMS|ASF|||200704200000||ADT^A04|1177045234.756.19114|P|2.4|||AL|AL
    Where the "&" is designated at the subcomponent separator. When Oracle's B2B tool parses the message and sticks it into an XML format it would break up the fields incorrectly if I had the customer put & lt ; in the flat file. I'm also trying to build a solution that is able to deal with this kind of issue without effecting the source feed.

  • Huge size of ARTMAS IDOC

    Hello gurus,
    We are facing an issue in trasmiting generic articles(MARA-ATTYP = 01) along with all its variants via outbound ARTMAS IDOC(Transaction BD10). Some of the articles have around 40-50 variants. When such generic articles are transmitted via BD10, the size of IDOC is too huge for middleware to handle.
    These IDOCs fail at the middleware end as the XML file is too huge for them to handle.
    Do we have any standard functionality which wouldallow us to split the IDOC data into smaller chunks and transmit the same.
    Any pointers to this issue would be a great help!
    Thanks in advance.
    Regards,
    Mohini
    Edited by: Mohini Shewale on Feb 12, 2009 1:30 PM

    Hi Mohini,
    what does it mean, the IDOC is too big ?
    Which segments have the biggest numbers?
    With a generic article you have
    1 MARA segment for generic article
    and 40 MARAs for the variants.
    Which middleware is not able to handle this size?
    Do you really need all the data in the IDOC? Maybe you can filter some segments like MBEW or MARD to make it smaller.
    Or you reduce some fields per segment.
    You can filter it in distribution model transaction BD64.
    regards
    Björn
    Edited by: Björn Panter on Feb 12, 2009 2:22 PM

  • Huge size of ARTMAS IDOCs

    Hello gurus,
    We are facing an issue in trasmiting generic articles(MARA-ATTYP = 01) along with all its variants via outbound ARTMAS IDOC(Transaction BD10). Some of the articles have around 40-50 variants. When such generic articles are transmitted via BD10, the size of IDOC is too huge for middleware to handle.
    These IDOCs fail at the middleware end as the XML file is too huge for them to handle.
    Do we have any standard functionality which wouldallow us to split the IDOC data into smaller chunks and transmit the same.
    Any pointers to this issue would be a great help!
    Thanks in advance.
    Regards,
    Mohini

    Hi
       I think you should split the idoc to 2 separate idoc's
    Please refer to this link to split the idoc's
    Message split to 2 differenet IDOCs
    Thanks
    Viquar Iqbal

  • Container element value late update in ECC6

    Hi All,
    I have a problem with container element "RECEIVED" which has incomplete value. I'm using function SAP_WAPI_READ_CONTAINER (simple container) in my custom object ZBUS2081 method priceapproval. When 2nd person want to approve the workitem, the container value of element name "RECEIVED" only has previous approval person instead of table that has 2 line values (previous person who has already approved and 2nd person who want to approve this workitem).
    We have upgrade our SAP version from 4.7 into ECC6/ERP6, which in 4.7 version this container element returned table of 2 line values.
    Since the container element value has late to update the value, then it did not recognise as a final approval at the end of workflow step and raise an error for agent determination. If there is any related SAP note, please let me know.
    Thanks,
    Charlie

    Hello Charlie !
                Your RECEIVED container stores approver details.
                Please check the binding between method container to task container to workflow container.Imperfect binding could be a reason why approver details are not populated properly.It seems your container is multiline container.Make sure the method,task and workflow containers are multiline enabled. 
               Check at SWO1, whether the PRICEAPPROVAL method behaves as expected and if you are using rule for agent determination, you have to check the rule at PFAC as well as binding details.Also check at workflow log.
                Hope you have delegated ZBUS2081.
    Regards,
    S.Suresh

  • After a function call values in the system sy-msgty.........

    After a function call values in the system sy-msgty,sy-msgit and sy-msgno are getting empty. And the program dumped suddenly with showing a message_type_unknown message.
    Here i wanted to know y these values are becoming empty
    Pls help me out here

    The first Idoc has two line items and the second idoc has 7 line items. As the split is per 5 line item- the target has 3 Idocs.
    Now the problem is that the header value in the target: REF_DOC_NO has to be created as per the number of line items and doesnt come from header record directly.

  • Function module for finding related IDOCs of a document

    Hi All,
    I have a requirement where the inout will be shipment numbers. The expected output is the list of all the IDOCs that are related to the shipments. I know that this is a replica of the WE09 functionality but the users will not have access to WE09 and more over WE09 takes a long time to give this result.
    My expectation is someting like the relationship in the "Services for objects2 that we have in the document which will give this detail very quickly.
    I know one function module (WFMC_PROTOCOL_GET) which will give the list of outbound IDOCs if we know the output type  and the shipment number. Also there is another function module GOS_EXECUTE_SERVICE which will do very similar to the servie for objects. But I need to know exactly the class or function module which will give me the relationship output alone so I can use this for further processing.
    Also kindly let me know if there is some other standard way of looking  at this requirement.
    regards,
    Vijay V

    Vijay,
    You can use FM  'DRB_NEIGHBOURS_GET' for the required functionality . Here is sample code :
    DATA : L_BORIDENT  TYPE  BORIDENT ,
            T_RELATIONS TYPE TABLE OF BORIDENT .
      L_BORIDENT-OBJKEY = Delivery_no .      "Document no
      L_BORIDENT-OBJTYPE = 'LIKP' .          "Object type e.g. LIKP , BUS2025 
        CALL FUNCTION 'DRB_NEIGHBOURS_GET'
          EXPORTING
            BORIDENT           = L_BORIDENT
          TABLES
            T_RELATIONS        = T_RELATIONS.
    Linked Idoc type will be in table T_RELATIONS with OBJTYPE value equal to 'IDOC' .
    - Tushar Shukla

  • How to read multiline element values to a table

    Hello every one,
    I am facing a problem while reading multiline element values for workflow container.
    Through portal i am populating multipul records to the structure in wrokflow and they are storing fine, but when i am trying to read
    them through SAP_WAPI_READ_CONTAINER and reding with SWC_GET_TABLE OR SWC_GET_ELEMENT to a table with similar structure, i am not geitting the values.
    DATA: lt_url TYPE STANDARD TABLE OF ZHRESS_URL WITH HEADER LINE.
    CALL FUNCTION 'SAP_WAPI_READ_CONTAINER'
            EXPORTING
              workitem_id                    = '476329'                            "for instance i have hard coded the value
             LANGUAGE                       = SY-LANGU
             USER                           = SY-UNAME
          IMPORTING
            RETURN_CODE                    =
            IFS_XML_CONTAINER              =
            IFS_XML_CONTAINER_SCHEMA       =
           TABLES
             SIMPLE_CONTAINER               = lt_container
            MESSAGE_LINES                  =
            MESSAGE_STRUCT                 =
            SUBCONTAINER_BOR_OBJECTS       =
            SUBCONTAINER_ALL_OBJECTS       =
      swc_get_table wf_container 'URL' lt_url.
    the above element URL is multiline structure(ZHRESS_URL).
    Request your guidence.
    Thanks,
    Krish.

    Hello,
    Just look in SIMPLE_CONTAINER, you'll see mutiple entries if there's a table, eg:
    ADDRESSSTRINGS                   USSMITHJ
    ADDRESSSTRINGS                   USJONESB
    You can just read them using normal ABAP.
    regards
    Rick Bakker
    hanabi technology

  • Unable to see function return values in Visual Studio 2013 debugger

    Hi!
    I can't see function return values in
    Microsoft Visual Studio Ultimate 2013
    Version 12.0.31101.00 Update 4
    Microsoft .NET Framework
    Version 4.5.51650
    Installed Version: Ultimate<o:p></o:p>
    as described in  http://blogs.msdn.com/b/visualstudioalm/archive/2013/06/27/seeing-function-return-values-in-the-debugger-in-visual-studio-2013.aspx
    So what can I do to get this functionality back?
    MsdnMezzo

    Hi MsdnMezzo,
    Reference:
    http://blogs.msdn.com/b/visualstudioalm/archive/2013/06/27/seeing-function-return-values-in-the-debugger-in-visual-studio-2013.aspx
    If use the same sample in the above blog provided by you, how about the result? Could you debug it with the same steps? I could debug it in my side using the VS2013.
    So to make sure that whether it is your VS IDE issue, please debug it with this sample, if it works well, I doubt that we would think about your specific project and the debugging steps.
    If so, to really repro this issue, could you share us a sample with one drive? You could upload your project to one drive and share us the downloaded link in your new reply, I will download and repro this issue in my side.
    Best Regards,
    Jack
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Function return value == -10. Native error code -2146824584 ADOBD.Recordset: Operation is not allowed when object is closed

    I want to call Stored Procedure that return records and output parameter, from CVI
    I can get output parrameter but when I want to get records stream I recieve following wrror:
    function return value == -10. Native error code -2146824584 ADOBD.Recordset: Operation is not allowed when object is closed

    in Stored procedure I create table variable and and insert into string values
    when I remove usage of table variable the error desappear

  • How to find out the inbound function module in the extended idoc

    Hi,
    how to find out the inbound function module in the extended idocs
    Thanks .

    through we41/we42 you can find the inbound function module.......
    or
    thorough we19(idoc test tool) ....
    give the input as message type or basic idoc..
    press exec...
    then you can find th button on application tool bar as inbound funtion module....
    from here also you can find..........
    <REMOVED BY MODERATOR>
    Khasimsa
    Edited by: Alvaro Tejada Galindo on Apr 14, 2008 1:34 PM

  • Exception in assigning XML elements value in Workshop

    Hi ,
    I tried creating a variable of type XML object(OrderREsponse). I have one MB Publisher control which sends in a variable of type OrderResponse. Before sending it , I try setting the individual XML elements value in it. So, for all the individual elemtns , I set accordinglly in both the formats.
    responseXML.addNewOrderResponse().setOrderNumber("N12121212");
    responseXML.getOrderResponse().setOrderNumber("N12121212");
    where responseXML is a variable of type OrderResponse document.
    This place while executing I'm getting an exception.
    Here is the exception I'm getting.
    <Jan 4, 2005 10:51:11 AM MST> <Warning> <WLW> <000000> <Id=top-level; Method=com.bea.wli.bpm.runtime.ProcessState.processNodeOrchestration()
    ; Failure=com.bea.wli.bpm.runtime.UnhandledProcessException: Unhandled process exception [ServiceException]>
    <Jan 4, 2005 10:51:12 AM MST> <Warning> <WLW> <000000> <A message was unable to be delivered from a WLW Message Queue. Attempting to deliver
    the onAsyncFailure event>
    Let me know if the approach is the right one... or how can i set the individual XML elements value from a XML variable.
    Thanks
    Ramesh

    Hi ,
    I tried creating a variable of type XML object(OrderREsponse). I have one MB Publisher control which sends in a variable of type OrderResponse. Before sending it , I try setting the individual XML elements value in it. So, for all the individual elemtns , I set accordinglly in both the formats.
    responseXML.addNewOrderResponse().setOrderNumber("N12121212");
    responseXML.getOrderResponse().setOrderNumber("N12121212");
    where responseXML is a variable of type OrderResponse document.
    This place while executing I'm getting an exception.
    Here is the exception I'm getting.
    <Jan 4, 2005 10:51:11 AM MST> <Warning> <WLW> <000000> <Id=top-level; Method=com.bea.wli.bpm.runtime.ProcessState.processNodeOrchestration()
    ; Failure=com.bea.wli.bpm.runtime.UnhandledProcessException: Unhandled process exception [ServiceException]>
    <Jan 4, 2005 10:51:12 AM MST> <Warning> <WLW> <000000> <A message was unable to be delivered from a WLW Message Queue. Attempting to deliver
    the onAsyncFailure event>
    Let me know if the approach is the right one... or how can i set the individual XML elements value from a XML variable.
    Thanks
    Ramesh

Maybe you are looking for