Queue SYSFAIL after message split "Whole number overflow on addition"

Hi,
I'm using a message mapping in PI 7.1 to split a message in several messages for each line of an invoice. It's a mapping 1 to 0..n. Everything went well since I had maximum 100 invoice lines to split (then 100 messages at the output of the mapping).
But since I have now messages with 200 invoice lines, everytime the queue is stopped in SYSFAIL status with a message "Whole number overflow on addition". But all messages are processed even if the queue is stopped.
ST22 gives me a COMPUTE_INT_PLUS_OVERFLOW in the method determin_message_size. It seams that PI doen't support a large message at output of a mapping. How can I split the message into multple messages at the outplut of a message mapping ?
Does anyone have a solution ?

Hi,
I guess you can use the Message Packing feature.
See below the links to help you:
http://help.sap.com/saphelp_nwpi711/helpdata/en/46/7ef9124f176be3e10000000a155369/frameset.htm
http://help.sap.com/saphelp_nwpi711/helpdata/en/46/7a6e3469454b2be10000000a155369/frameset.htm
http://help.sap.com/saphelp_nwpi711/helpdata/en/46/79e8e13872275ae10000000a11466f/frameset.htm
Regards,
Caio Cagnani

Similar Messages

  • BPM: error at exactly 2500 messages after message split: no coincidence?

    Hi everybody,
    we poll a message, split it in BPm and than call a WebService.
    We got an error exactly after 2500 messages were processed successful.
    Is there a special parameter which influences the BPM?
    Thanks a lot
    Regards Mario

    Hi,
    In SXMB_ADM you can set the time out higher for the sync processing.
    Go to Integration Processing in SXMB_ADM and add parameter SA_COMM CHECK_FOR_ASYNC_RESPONSE_TIMEOUT to 120 (seconds). You can also increase the number of parallel processes if you have more waiting now. SA_COMM CHECK_FOR_MAX_SYNC_CALLS from 20 to XX. All depends on your hardware but this helped me from the standard 60 seconds to go to may be 70 in some cases.
    Make sure that your calling system does not have a timeout below that you set in XI otherwise yours will go on and finish and your partner may end up sending it twice
    when you go for BPM the whole workflow
    has to come into action so for example
    when your mapping last < 1 sec without bpm
    if you do it in a BPM the transformation step
    can last 2 seconds + one second mapping...
    (that's just an example)
    so the workflow gives you many design possibilities
    (brigde, error handling) but it can
    slow down the process and if you have
    thousands of messages the preformance
    can be much worse than having the same without BPM
    see below links
    http://help.sap.com/bp_bpmv130/Documentation/Operation/TuningGuide.pdf
    http://help.sap.com/saphelp_nw04/helpdata/en/43/d92e428819da2ce10000000a1550b0/content.htm
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/xi/3.0/sap%20exchange%20infrastructure%20tuning%20guide%20xi%203.0.pdf
    BPM Performance tuning
    BPM Performance issue
    BPM performance question
    BPM performance- data aggregation persistance
    Regards
    Chilla..

  • BPM send step not executed in BPM (after Message split)

    Hello everybody,
    we use BPM:
    We have a paralell Block which should send the rows of a multiline element. In SXMB_BPE_MONI the send step is not executed?
    Any idea?
    Thanks  lot, regards Mario

    HI,
    Go to SXMB_MONI_BPE->and check the workflow log (technical details).and go to SXI_CACHE and check the return code of the Integration Process. It should be zero. If not try to activate the same
    If there is no error then go with like this-
    Also check the Syntax in Integration Repository with F7. Change the IP and activate it. If there is no syntax errors.
    Then reimport the IP into Directory and then test your scenario
    Regards,
    Moorthy

  • 1 to unbounded in Message Split

    Hi Experts,
    We have a requirement where we need to do a message split
    based on the number of line items in the source message.
    I have sucessfully managed to achieve the message split,
    but the problem is trying to map the "1 to unbounded"
    list section in the source message header to the
    "1 to unbounded" list section in the target message
    lineItem. If possible, please can you help me to achieve the
    following result:
    Source message:
    <source>
    <header>
    <list>
    <ref>
    <rec1>r1<rec1>
    <rec2>r2<rec2>
    <ref>
    <ref>
    <rec1>r3<rec1>
    <rec2>r4<rec2>
    <ref>
    <list>
    <lineItem>
    <item1>i1<item1>
    <item2>i2<tem2>
    <lineItem>
    <lineItem>
    <item1>i3<item1>
    <item2>i4<item2>
    <lineItem>
    <source>
    Target Message:
    <target>
    <lineItem>
    <item1>
    <item2>
    <list>
    <ref>
    <rec1>
    <rec2>
    <ref>
    <list>
    <lineItem>
          <target>
    Required Result After message split:
    <target>
    <lineItem>
    <item1>i1<item1>
    <item2>i2<item2>
    <list>
    <ref>
    <rec1>r1<rec1>
    <rec2>r2<rec2>
    <ref>
    <ref>
    <rec1>r3<rec1>
    <rec2>r4<rec2>
    <ref>
    <list>
    <lineItem>
    <target>
    <target>
    <lineItem>
    <item1>i3<item1>
    <item2>i4<item2>
    <list>
    <ref>
    <rec1>r1<rec1>
    <rec2>r2<rec2>
    <ref>
    <ref>
    <rec1>r3<rec1>
    <rec2>r4<rec2>
    <ref>
    <list>
    <lineItem>
    <target>
    At the moment the "1 to unbounded" list section is not mapping correctly.
    I need a function similar to the useOneAsMany function to achieve this
    because I cant get the useOneAsMany to work with the "1 to unbounded"
    list section. I have tried creating my own UDF but for some reason it
    only generates 1 reference record in the second target message instead of 2.
    I have been struggling for ages to achieve the required result above
    but still have not been successful. Any help will be appreciated very much.
    Thanks and regards,
    Brendon

    Brendon,
    I hope the given solution will work for you! If any issues, please let us know
    Mapping
    http://www.flickr.com/photos/8764045@N06/4514926701/sizes/o/
    http://www.flickr.com/photos/8764045@N06/4515563978/sizes/o/
    http://www.flickr.com/photos/8764045@N06/4514926759/sizes/o/
    http://www.flickr.com/photos/8764045@N06/4514926895/sizes/o/
    UDF's
    http://www.flickr.com/photos/8764045@N06/4515564064/sizes/o/
    http://www.flickr.com/photos/8764045@N06/4514926851/sizes/o/
    Result
    http://www.flickr.com/photos/8764045@N06/4515564202/sizes/l/
    UDF code's for your reference
    zuseOneAsMany
    for(int i=0;i<LineItem.length;i++)
    for(int j=0;j<Ref.length;j++)
    result.addValue("");
    result.addContextChange();
    z1useOneAsMany
    for(int i=0;i<LineItem.length;i++)
    for(int j=0;j<Record.length;j++)
    result.addValue(Record[j]);
    result.addContextChange();
    Thanks!

  • I'm using acrobat pro in my project after debuging the project and after opening a certain number of PDF files I receive the message: the maximum number of files opened has been reached, you have to close some files to continu.even doing that, I steel rec

    I'm using acrobat pro in my project after debuging the project and after opening a certain number of PDF files I receive the message: the maximum number of files opened has been reached, you have to close some files to continu.even doing that, I steel receive the same message.Some one can tel what to do please? Thanks

    Hi Memalyn
    Essentially, the bare issue is that you have a 500GB hard drive with only 10GB free. That is not sufficient to run the system properly. The two options you have are to move/remove files to another location, or to install a larger hard drive (eg 2TB). Drive space has nothing to do with SMC firmware, and usually large media files are to blame.
    My first recommendation is this: download and run the free OmniDiskSweeper. This will identify the exact size of all your folders - you can drill down into the subfolders and figure out where your largest culprits are. For example, you might find that your Pictures folder contains both an iPhoto Library and copies that you've brought in from a camera but are outside the iPhoto Library structure. Or perhaps you have a lot of purchased video content in iTunes.
    If you find files that you KNOW you do not need, you can delete them. Don't delete them just because you have a backup, since if the backup fails, you will lose all your copies.
    Don't worry about "cleaners" for now - they don't save much space and can actually cause problems. Deal with the large file situation first and see how you get on.
    Let us know what you find out, and if you manage to get your space back.
    Matt

  • I have a problem with my viber.It has stopped working.I tried reinstalliing it again .On the setup option after entering my phone number and continuing ..it either exists or gives no service message .

    I have a problem with my viber.It has stopped working.I tried reinstalling it again .On the setup option after entering my phone number and continuing ..it either exists or gives no service message .My other applications are working fine ..other applications that require internet too are working fine.

    Please get in touch with Viber's customer support.

  • DTW message 'value must be a whole number for property 'PurchaseWeightUnit'

    I am trying to import Sales and Purchase weights via DTW using the 'oItems' template and get the message that the purchase weight unit needs to be a whole number.  I have the # of decimals to display for 'units' as 3 in Administration/System Initialization/General Settings in the 'display tab.  What could be cause this error?   I need to have weights set to 3 decimals...

    Hi All,
    Misunderstanding !
    This is a unit code of the weigth not the numer of digits!!!!
    defined in: Administration - Setup - Inventory - Weight UoM
    Use the unitcode field there , example 3 for KG.
    use the following query the determine the code there
    SELECT *  FROM OWGT T0
    Regards
    J.

  • Message splitting-- Queue stopped when no message created for one interface

    Hi all,
    I think you saw one post regarding this issue in SDN, but I can't find the post any more.
    So, I have message splitting (it's multiple mappings to map one outbound msg to multip inbound msgs, not one mapping to map 1 to n. This is because of our own reason, but should not affect the analysis of the issue) to split one message to multiple. It works fine if the outbound message contains data for every inbound interface. However if the outbound message does NOT contain data for any one inbound message, there is an error in MONI and all subsequently splitted messages will not be passed in IE. The error in MONI says Split mapping created no messages, and Queue status turns to be Queue Stopped, and thus all the subsequently splitted messages are stuck in the queue.
    Why this? and how to solve this problem?
    Thanks
    Jayson

    >
    Jayson wrote:
    > Hi all,
    >
    > I think you saw one post regarding this issue in SDN, but I can't find the post any more.
    >
    > So, I have message splitting (it's multiple mappings to map one outbound msg to multip inbound msgs, not one mapping to map 1 to n. This is because of our own reason, but should not affect the analysis of the issue) to split one message to multiple. It works fine if the outbound message contains data for every inbound interface. However if the outbound message does NOT contain data for any one inbound message, there is an error in MONI and all subsequently splitted messages will not be passed in IE. The error in MONI says Split mapping created no messages, and Queue status turns to be Queue Stopped, and thus all the subsequently splitted messages are stuck in the queue.
    >
    > Why this? and how to solve this problem?
    >
    > Thanks
    > Jayson
    Hi Jyson,
    what i analyse from this is you may be using different maapings and different inbound interfaces
    but your receiver is the same and hence you are using only one interface determination with all the   interface mappings specified there...
    if this is the case..i suggest you remove the "maintain order at runtime "
    tick in that interface detemination and it will surely work
    giving points is another way to say thanks
    Edited by: Tarang Shah on Mar 20, 2009 7:18 PM

  • TS1702 After changing my phone number on iPhone, my iPad will not connect to my iMessage or FaceTime. Keeps giving me a message (could not sign in. Please check your network and try again).  Please help!!!

    After changing my phone number on iPhone, my iPad will not connect to my iMessage or FaceTime. Keeps giving me this message (Could not sign in. Please check your network and try again).  Please help!!!

    iPhone 4 and iPod touch (4th generation): Using FaceTime
    http://support.apple.com/kb/HT4319
    iPhone 4 and iPod touch (4th generation): Using FaceTime behind a firewall
    http://support.apple.com/kb/HT4245

  • Message Split without BPM - Error

    Hi,
    I am creating a message split scenario without BPM as per weblog <a href="/people/jin.shin/blog/2006/02/07/multi-mapping-without-bpm--yes-it146s-possible Split without BPM</a>
    I am able to receive message in XI but after that it shows error in Integration engine.
    Error Category : MAPPING
    Error Code : GENERIC
    I am able to see the message in SXMB_MONI with error
    <SAP:Category>XIServer</SAP:Category>
      <SAP:Code area="MAPPING">GENERIC</SAP:Code>
      <SAP:P1>No messages created from split mapping</SAP:P1>
    Please advice.
    Thanks,
    Sri.

    Hi Venkat,
    I am not able to see sub-groupid in sxmb_moni.
    Please see below the contents from sxmb_moni trace.
    ============================
      <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--  Request Message Mapping
      -->
    - <SAP:Trace xmlns:SAP="http://sap.com/xi/XI/Message/30">
      <Trace level="1" type="T">Party normalization: sender</Trace>
      <Trace level="1" type="T">Sender scheme external = XIParty</Trace>
      <Trace level="1" type="T">Sender agency external = http://sap.com/xi/XI</Trace>
      <Trace level="1" type="T">Sender party external =</Trace>
      <Trace level="1" type="T">Sender party normalized =</Trace>
      <Trace level="1" type="T">Party normalization: receiver</Trace>
      <Trace level="1" type="T">Receiver scheme external =</Trace>
      <Trace level="1" type="T">Receiver agency external =</Trace>
      <Trace level="1" type="T">Receiver party external =</Trace>
      <Trace level="1" type="T">Receiver party normalized =</Trace>
      <Trace level="1" type="B" name="CL_XMS_HTTP_HANDLER-HANDLE_REQUEST" />
    - <!--  ************************************
      -->
      <Trace level="1" type="T">XMB was called with URL /sap/xi/engine?type=entry</Trace>
      <Trace level="1" type="T">COMMIT is done by XMB !</Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-ENTER_XMS" />
    - <!--  ************************************
      -->
      <Trace level="1" type="B" name="CL_XMS_MAIN-SET_START_PIPELINE" />
    - <!--  ************************************
      -->
      <Trace level="1" type="B" name="SXMBCONF-SXMB_GET_XMB_USE" />
      <Trace level="1" type="B" name="CL_XMS_TROUBLESHOOT-ENTER_PLSRV" />
      <Trace level="1" type="T">****************************************************</Trace>
      <Trace level="1" type="T">* *</Trace>
      <Trace level="1" type="T">* *</Trace>
      <Trace level="1" type="T">XMB entry processing</Trace>
      <Trace level="1" type="T">system-ID = QN7</Trace>
      <Trace level="1" type="T">client = 100</Trace>
      <Trace level="1" type="T">language = E</Trace>
      <Trace level="1" type="T">user = XIAFUSER</Trace>
      <Trace level="1" type="Timestamp">2006-04-18T05:51:20Z CET</Trace>
      <Trace level="1" type="T">* *</Trace>
      <Trace level="1" type="T">* *</Trace>
      <Trace level="1" type="T">****************************************************</Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_UC_EXECUTE" />
    - <!--  ************************************
      -->
      <Trace level="1" type="T">Message-GUID = 67F58830CE9E11DA91CD00111120E6DB</Trace>
      <Trace level="1" type="T">PLNAME = CENTRAL</Trace>
      <Trace level="1" type="T">QOS = EO</Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PIPELINE_ASYNC" />
    - <!--  ************************************
      -->
      <Trace level="1" type="T">Get definition of external pipeline = CENTRAL</Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-LOOKUP_INTERNAL_PL_ID" />
      <Trace level="1" type="T">Get definition of internal pipeline = SAP_CENTRAL</Trace>
      <Trace level="1" type="T">Queue name : XBTI0002</Trace>
      <Trace level="1" type="T">Generated prefixed queue name = XBTI0002</Trace>
      <Trace level="1" type="T">Schedule message in qRFC environment</Trace>
      <Trace level="1" type="T">Setup qRFC Scheduler OK!</Trace>
      <Trace level="1" type="T">----
    </Trace>
      <Trace level="1" type="T">Going to persist message</Trace>
      <Trace level="1" type="T">NOTE: The following trace entries are always lacking</Trace>
      <Trace level="1" type="T">- Exit WRITE_MESSAGE_TO_PERSIST</Trace>
      <Trace level="1" type="T">- Exit CALL_PIPELINE_ASYNC</Trace>
      <Trace level="1" type="T">Async barrier reached. Bye-bye !</Trace>
      <Trace level="1" type="T">----
    </Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_TO_PERSIST" />
    - <!--  ************************************
      -->
      <Trace level="1" type="B" name="CL_XMS_MAIN-PERSIST_READ_MESSAGE" />
      <Trace level="1" type="T">Note: the following trace entry is written delayed (after read from persist)</Trace>
      <Trace level="1" type="B" name="SXMS_ASYNC_EXEC" />
    - <!--  ************************************
      -->
      <Trace level="1" type="T">----
    </Trace>
      <Trace level="1" type="T">Starting async processing with pipeline CENTRAL</Trace>
      <Trace level="1" type="T">system-ID = QN7</Trace>
      <Trace level="1" type="T">client = 100</Trace>
      <Trace level="1" type="T">language = E</Trace>
      <Trace level="1" type="T">user = XIAFUSER</Trace>
      <Trace level="1" type="Timestamp">2006-04-18T05:51:20Z CET</Trace>
      <Trace level="1" type="T">----
    </Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PIPELINE_SYNC" />
    - <!--  ************************************
      -->
      <Trace level="1" type="T">Get definition of external pipeline CENTRAL</Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-LOOKUP_INTERNAL_PL_ID" />
      <Trace level="1" type="T">Corresponding internal pipeline SAP_CENTRAL</Trace>
    - <Trace level="1" type="B" name="PLSRV_RECEIVER_DETERMINATION">
    - <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV">
    - <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV_LOCAL">
    - <Trace level="1" type="B" name="CL_RD_PLSRV-ENTER_PLSRV">
      <Trace level="1" type="T">R E C E I V E R - D E T E R M I N A T I O N</Trace>
      <Trace level="1" type="T">Cache Content is up to date</Trace>
      </Trace>
      </Trace>
      </Trace>
      </Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_LOG_TO_PERSIST" />
    - <Trace level="1" type="B" name="PLSRV_INTERFACE_DETERMINATION">
    - <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV">
    - <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV_LOCAL">
    - <Trace level="1" type="B" name="CL_ID_PLSRV-ENTER_PLSRV">
      <Trace level="1" type="T">I N T E R F A C E - D E T E R M I N A T I O N</Trace>
      <Trace level="1" type="T">Cache Content is up to date</Trace>
      </Trace>
      </Trace>
      </Trace>
      </Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_LOG_TO_PERSIST" />
      <Trace level="1" type="B" name="PLSRV_RECEIVER_MESSAGE_SPLIT" />
    - <!--  ************************************
      -->
    - <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV">
      <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV_LOCAL" />
    - <!--  ************************************
      -->
      <Trace level="1" type="B" name="CL_XMS_PLSRV_RECEIVER_SPLIT-ENTER_PLSRV" />
    - <!--  ************************************
      -->
      <Trace level="1" type="T">number of receivers: 1</Trace>
      <Trace level="1" type="T">Single-receiver split case</Trace>
      <Trace level="1" type="T">Post-split internal queue name = XBTO6___0000</Trace>
      <Trace level="1" type="T">----
    </Trace>
      <Trace level="1" type="T">Persisting single message for post-split handling</Trace>
      <Trace level="1" type="T" />
      <Trace level="1" type="T">Going to persist message + call qRFC now...</Trace>
      <Trace level="1" type="T">NOTE: The following trace entries are always lacking</Trace>
      <Trace level="1" type="T">- Exit WRITE_MESSAGE_TO_PERSIST</Trace>
      <Trace level="1" type="T">Async barrier reached. Bye-bye !</Trace>
      <Trace level="1" type="T">----
    </Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_TO_PERSIST" />
    - <!--  ************************************
      -->
      <Trace level="1" type="B" name="CL_XMS_MAIN-PERSIST_READ_MESSAGE" />
      <Trace level="1" type="T">Note: the following trace entry is written delayed (after read from persist)</Trace>
      <Trace level="1" type="B" name="SXMS_ASYNC_EXEC" />
    - <!--  ************************************
      -->
      <Trace level="1" type="T">----
    </Trace>
      <Trace level="1" type="T">Starting async processing with pipeline CENTRAL</Trace>
      <Trace level="1" type="T">system-ID = QN7</Trace>
      <Trace level="1" type="T">client = 100</Trace>
      <Trace level="1" type="T">language = E</Trace>
      <Trace level="1" type="T">user = XIAFUSER</Trace>
      <Trace level="1" type="Timestamp">2006-04-18T05:51:20Z CET</Trace>
      <Trace level="1" type="T">----
    </Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PIPELINE_SYNC" />
    - <!--  ************************************
      -->
      <Trace level="1" type="T">Get definition of external pipeline CENTRAL</Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-LOOKUP_INTERNAL_PL_ID" />
      <Trace level="1" type="T">Corresponding internal pipeline SAP_CENTRAL</Trace>
      <Trace level="1" type="T">Start with pipeline element PLEL= 5EC3C53B4BB7B62DE10000000A1148F5</Trace>
      <Trace level="1" type="B" name="PLSRV_MAPPING_REQUEST" />
    - <!--  ************************************
      -->
      <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV" />
    - <!--  ************************************
      -->
      <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV_LOCAL" />
    - <!--  ************************************
      -->
      <Trace level="1" type="B" name="CL_MAPPING_XMS_PLSRV3-ENTER_PLSRV" />
    - <!--  ************************************
      -->
      <Trace level="1" type="T">Mapping-Object-Id:29EB87F0231C357A8336DDEBD574EEAB</Trace>
      <Trace level="1" type="T">Mapping-SWCV:0CF1E1E0C5FC11DABCB9E4A50A07012B</Trace>
      <Trace level="1" type="T">Mapping-Step:1</Trace>
      <Trace level="1" type="T">Mapping-Type:JAVA</Trace>
      <Trace level="1" type="T">Mapping-Program:com/sap/xi/tf/_MM_filesplit_without_bpm_</Trace>
      <Trace level="1" type="E">CL_XMS_PLSRV_MAPPING~ENTER_PLSRV</Trace>
      </Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_LOG_TO_PERSIST" />
      <Trace level="1" type="System_Error">Error exception return from pipeline processing!</Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_TO_PERSIST" />
    - <!--  ************************************
      -->
      </SAP:Trace>
    Thanks,
    Sri.

  • IDOC Message Splitting with Logic

    Hi,  I have a business requirement for IDOC to IDOC mapping where the incoming IDOC line item should be split in to multiple line items based on a field value and also the resulting IDOC will be split in to multiple IDOCs based on a limitation on the number of line items. Without using BPM, have anybody used SAP XI to efficiently perform the above logics with proper check logics and error controls ? Appreciate your responses.

    Hi Raj,
    Try this:
    You can use Split by Value node function and set the properties of the split by value as: Each Value.So the for every different number,different item will be created.
    Using the Node Functions you can solve your problem.
    1.SplitByValue:
    The SplitByValue() function is the counterpart to removeContexts(): Instead of deleting a context, you can insert a context change in the source value queue. You then receive this element for each inserted context change instead of a top node element. However, for this to be possible, the top node source field must be assigned a top node target field and minOccurs must be >0. You can insert a context change in the queue after each value, after each change to the value, or after each tag without a value.
    2.RemoveContexts:
    You use removeContexts () to delete all the top contexts for an element. This removes all top hierarchy levels, so that all elements of the target queue are assigned to a root element of the source queue.
    Advanced user-defined functions can import either just one context into the input arrays, or complete queues. Make your selection by selecting or deselecting the Save Entire Queue in Cache checkbox in the function editor.
    3.CreateIf:
    CreateIf node function is used to create a node if true value is passed to it otherwise suppress it.
    4.collapseContext
    To remove the context in between the value and transfer only one value at a time
    5.useOneAsMany
    First Input:
    The value which is needed to be repeated.
    Second Input:
    It defines how many times the first input should be repeated.
    Third Input:
    It define when the context should be changed (on the basis of the required output
    Please go through the given link hope it will be helpful to you.
    /people/sravya.talanki2/blog/2005/12/08/message-mapping-simplified-150-part-ii
    Message Mapping Simplified – Part II
    /people/sravya.talanki2/blog/2005/12/08/message-mapping-simplified-150-part-ii
    Replication of Nodes Using the Graphical Mapping Tool
    /people/claus.wallacher/blog/2006/04/17/replication-of-nodes-using-the-graphical-mapping-tool
    Message Splitting Using the Graphical Mapping Tool
    /people/claus.wallacher/blog/2006/06/29/message-splitting-using-the-graphical-mapping-tool
    Also check this weblogs:
    /people/sravya.talanki2/blog/2005/08/16/message-mapping-simplified--part-i
    /people/sravya.talanki2/blog/2005/12/08/message-mapping-simplified-150-part-ii
    Split by value
    http://help.sap.com/saphelp_nw04/helpdata/en/21/3bb8c495125e4eb5969f0377885fe0/content.htm
    For value mapping check this video presentation and weblog:
    /people/sreekanth.babu2/blog/2005/02/23/value-mapping-replication
    /people/community.user/blog/2007/01/08/valuemapping-using-the-graphical-mapping-tool
    https://www.sdn.sap.com/irj/sdn/docs?rid=/webcontent/uuid/110ff05d-0501-0010-a19d-958247c9f798#xi [original link is broken]
    /people/claus.wallacher/blog/2006/04/17/replication-of-nodes-using-the-graphical-mapping-tool
    Function formatByExample:
    /people/sundararamaprasad.subbaraman/blog/2006/02/21/real-example-for-formatbyexample
    Split by value, remove context and collapse context:
    /people/sravya.talanki2/blog/2005/12/08/message-mapping-simplified-150-part-ii
    Reward points if this helps
    Regards
    Pragathi.

  • Message-Split in a Sync Scenario

    Hello Experts.
    As i am quite new to Pi, i have some problems with an integration scenario we are about to implement. As i am not really into the topic, i do'nt even know, if the prefered solution can be implemented in PI or if our current approach is nonsense after all.
    The currently preferred solution would look like this:
    1.) The sender system collects the data and sends one message using a synchronous webservice call
    2.) PI splits the message into n parts (one outgoing message per receiving system), sends the message-parts synchronously to the receiving systems, collects the response messages into one big message and sends this message as the response message for the webservice-call, the sender system made.
    3.) The sender system receives the response message and updates the database.
    The problem is, that i have no clue how to do a message-split in a Sync scenario. I already experimented with a message-split in Async scenarios and everything worked fine, but i have no idea, how to do the trick in a Sync scenario.
    As the incoming message represents a table (only one kind of element; occurence 0...unbounded), i would have to do the following:
    1.) Split the incoming message line by line (or childnode by childenode)
    2.) Collect the lines for the single receiver systems (each receiver should get only one message)
    3.) Send the messages
    4.) receive the results
    5.) Join the results into one response message / Handle timeouts, if a receiver could not be reached in time
    6.) Send the response message to the sender system
    When experimenting with the async scenario, i used BPM to split the message into parts, but an integration process seems to need asynchronous abstract interfaces. At least PI did not accept my synchronous message-Interface and even if it would do so, i would have no idea how to send the message parts synchronously and how to join the results.
    Of course we could also send one record per message - in this case everything would be easy and clear, but unfortunatelly this is not the preferred solution, but the "Plan B"...
    Does anybody know how to do what we want? Any suggestions would be highly appreciated.
    And by the way: We are using PI 7.0.
    Regards, Jörg

    Thanks for your reply.
    I was already afraid, that the preferred approach could be a dead end. If the described scenario is impossible to implement, i could immagine two alternative solutions:
    1.) Our "Plan B":
    -> Single records
    -> One record per message
    -> Synchronous communication
    PI would only have to do a quite stupid routing based on a certain field in the message.
    2.) Something totally different:
    -> Asynchronous communication
    -> The sender still send the data for n receivers in one message
    -> PI splits the message and sends the n parts to n receivers
    -> The receiver sends a response after processing the data
    -> PI simply forwards this message to the sender
    I think scenario #2 could have a better performance, as the total number of messages is limited to the necessary minimum, but as i'm not experienced in PI, i'm not actually sure about this.
    Any recommendations?
    regards, Jörg

  • Clean up queue in SUN Messaging Server 6.3

    I have a couple of SUN Messaging servers with each about a 1'000'000 e-mail messages in their queues.
    The reason is one of our customers being infected with some trojan, and a firewall misconfiguration which allowed direct access to the SUN messagings servers (where we host our customers mailboxes) , rather then through the Postfix boxes with rate limiting, anti-spam and anti-virus scanning which they are supposed to use as outgoing SMTP servers. In short we were used as a SPAM relay. Grrr.
    As you can image the queue is now filled with undeliverable e-mail and undeliverable bounces.
    The question is simply can I safely delete the offending messages from the queue directory, because the imsimta qclean does a lousy job.
    imsimta qclean -content=<IP-OFFENDER> -delete* found only 75'000 messages from which 20% was removed. A simple grep <IP-OFFENDER> found still thousand of messages in the queue.
    Arg, by default imsimta qclean only scans message ID's found in it's own database which is limited in size (and much smaller then our actual queue size)
    imsimta qclean -content=<IP-OFFENDER> -directory_tree -delete* scans the actual queue directory and found indeed over a million mail messages in the queue. After scanning for a couple of hours it removed 150'000 messages. Leaving about 85% of the spam mails untouched!
    Is it safe to simply use a shell script to find and remove the messages in the queue directory and delete them? Or will that break SUN messaging servers internal queue handler?
    TIA
    Herman

    Hi,
    hbruijn wrote:
    The reason is one of our customers being infected with some trojan, and a firewall misconfiguration which allowed direct access to the SUN messagings servers (where we host our customers mailboxes) , rather then through the Postfix boxes with rate limiting, anti-spam and anti-virus scanning which they are supposed to use as outgoing SMTP servers. In short we were used as a SPAM relay. Grrr.As an aside, Messaging Server 6.3 also offers rate-limiting capability (metermaid) and various anti-virus/anti-spam capability. I wrote up a general document about this at:
    http://msg.wikidoc.info/index.php/Main_Page
    As you can image the queue is now filled with undeliverable e-mail and undeliverable bounces. You are not the only forum person to hit such an issue recently:
    http://forum.java.sun.com/thread.jspa?threadID=5210669&messageID=9848719
    The question is simply can I safely delete the offending messages from the queue directory, because the imsimta qclean does a lousy job. Yes. If the job_controller sees that the message has been deleted, it will simply remove the queued message from its cache and move on. Depending on your log level you may see an entry in the imta log file about this.. something along the lines of file <queue file> no longer exists.
    imsimta qclean -content=<IP-OFFENDER> -delete* found only 75'000 messages from which 20% was removed. A simple grep <IP-OFFENDER> found still thousand of messages in the queue.
    Arg, by default imsimta qclean only scans message ID's found in it's own database which is limited in size (and much smaller then our actual queue size)By default the job_controller will only keep a maximum of 100,000 messages in cache - a percentage of this is dedicated towards new emails and the rest is queued emails. This limit is to stop the job_controller consuming all your available RAM when you get hit by events such as this. The imsimta qclean uses this cache to search for messages -- which is vastly quicker then (re)scanning so many emails on disk.
    The maximum is controlled by the MAX_MESSAGES job_controller.cnf parameter - discussed here:
    http://docs.sun.com/app/docs/doc/819-4428/6n6j425uh?l=en&a=view&q=max_messages
    and here:
    http://docs.sun.com/app/docs/doc/819-4428/6n6j425v7?l=en&a=view#bgajv
    imsimta qclean -content=<IP-OFFENDER> -directory_tree -delete* scans the actual queue directory and found indeed over a million mail messages in the queue. After scanning for a couple of hours it removed 150'000 messages. Leaving about 85% of the spam mails untouched! Well I can't explain this off-hand. I would need to try and reproduce the issue in-house with an example email that wasn't matched. What version of MS6.3 are you running (./imsimta version)?
    btw. you can use the "-threads=<number from 1-8>" qclean command to speed up the scanning process by running multiple scanning threads.
    Is it safe to simply use a shell script to find and remove the messages in the queue directory and delete them? Or will that break SUN messaging servers internal queue handler?Should be fine - once you have removed them though you may want to run:
    ./imsimta cache -sync
    This will kick-off a re-sync of the job_controller cache so that the job_controller is better able to process the remaining emails (rather then hitting missing email after missing email).
    Regards,
    Shane.

  • Message Splitting Design Problem

    Hi guys,
    I am an XI newbie so please bear with me.
    I have to build an XI interface to update existing service orders in CRM.  The data is coming from a file, which contains change requests for multiple orders (and possibly multiple requests for the same order).  The sequence in which the requests are processed is important.  The XI system is on version 3.0 SP14, and the CRM system is on WAS 7.00.
    I can think of two approaches to follow:
    1. Push all the requests through to CRM via an ABAP proxy call (one single call).  Inside the proxy, process the requests sequentially.  This approach is simple to implement, but problems arise when some of the requests succeed but others fail.  There is no option to reprocess just the failed requests, because there is just one XI message.
    2. Split up the requests and send them to CRM, queuing the requests by service order number.  This means performing message-splitting in XI (with or without BPM) and using the EOIO quality-of-service.  The endpoint would still be an ABAP proxy.
    I would like to use the second option, but I've got some concerns:
    a) If I use mapping-based message splits (bulk messages), can I still use ABAP proxies?  I cannot see the XI adapter listed in the relevant SAP help page:
    http://help.sap.com/saphelp_nw2004s/helpdata/en/43/ce79623ef30cd5e10000000a1553f7/frameset.htm
    b) If I use BPM to do the splitting, might I run into performance problems?  I do not have precise numbers, but I think we might process up to 50,000 requests daily.
    c) Should I consider using other adapters that support bulk messages, e.g. SOAP adapter.  Or use IDOC bundling as described in this blog?
    /people/michal.krawczyk2/blog/2005/12/04/xi-idoc-bundling--the-trick-with-the-occurance-change
    d) Can someone suggest better approaches?
    Thanks,
    Terry Choy

    c) The standard IDOC is not enough, because there is some extra business logic that needs to be performed. I would need to create a custom IDOC. Is that worth the effort, and would I be losing anything by using IDOC's rather than proxies?
    >>>>
    if the message voluem is too high try to avoid IDocs. (you have to decide on the amount of work that will go in in case u make a custom idoc or a proxy)
    a) I tried bulk messages using ABAP proxies, but got an error in the technical routing step. The error was in the MMF_ENGINETYPE code area, and the message was "A system error occurred in the outbound binding" (not very informative). I didn't get the problem when I used the file adapter. Can someone please confirm that bulk messages with ABAP proxies is OK?
    >>> i dont think it sud be a problem with ABAP proxy but then you can try using EOIO in the proxy code. ref: /people/arulraja.ma/blog/2006/08/18/xi-reliable-messaging-150-eoio-in-abap-proxies

  • Document splitting causes field overflow for currency type 00 in row 003

    Hi ,
    Friends ,
    Our some of sales bills are stucking iduring  posting to finance after upgrading support packages, earlier there was no any problem.
    we are trying to post by tcode vf02 , it is throughing an error message
    Document splitting causes field overflow for currency type 00 in row 003
    Message no. GLT0004
    We are not getting any solution .
    We have raised a message to sap support , but not getting proper solution,
    Please guid us how can we solve this.
    SS
    Mobile no. 9810477923- Sundeep Gupta

    Thanks for all.
    we have solved this issue  after change some customization according sap support consultant reply as under.
    you have 3 different issues within your SD- new g/L interface.
    The most critical one is the fact that you substitute PRCTR and
    Segment assignemnts into line items to be processed by rule based
    split. This leads to the fact that you will only those cases will be
    able to post document in case the assignemnts are unique,
    which means no different kind of prctr, segment and business area
    assignments but only one single kind. This makes no sence at all.
    Please see my last reply regarding this most critical issue.
    This needs to be solved from Consulting point of view.
    Regards.
    SS
    Edited by: Lakshmipathi on Dec 22, 2010 12:21 PM
    When you say it is answered why you have closed the thread with Closed but Unanswered.  Please change it to "Answered".

Maybe you are looking for