BPM Collect -Query

Hi All,
I have BPM to collect the Idoc from SAP and send it.
I have a condtion in the loop for collecting 50 Idocs and sending to the traget system.
The scenario works fine If I receive the 100 Idocs, it will execute two send steps. If the number of Idcos is not a multiple of "50". then BPM needs to wait for the next batch of Idocs to process further, until the loop condtion triggers.
Can we have any steps in BPM which will address the below 2 requirments:
1. BPM should collect the 50 messages are sent it.
2 If the number of messages are not reached 50 after a period of time then also trigger the collected messages out.
Regards,
Sunil.

Can we have any steps in BPM which will address the below 2 requirments:
1. BPM should collect the 50 messages are sent it.
2 If the number of messages are not reached 50 after a period of time then also trigger the collected messages out.
Did you check if combination of Payload & Time-Dependent pattern helps you?
http://help.sap.com/saphelp_nwpi71/helpdata/EN/08/16163ff8519a06e10000000a114084/content.htm
Having the payload-dependent loop in a block with Deadline branch may solve your problem.....my understanding
Regards,
Abhishek.

Similar Messages

  • BPM Collect pattern is not coming out  and it is in loop.

    Hi Experts,
    We have implemented a BPM Collect Time pattern and it was working fine in Dev and QA environments perfectly. Couple of days back we have some server issue in Dev environment and Basis team has done some thing with File Storage. From that time, all our BPM's were not working in Dev. It is showing that the block is waiting for some event to trigger and it is in Process state.  We have set it for 5 min and block is not coming out from loop.   We exported the code to QA and it is working in QA.  We tried SWU3 transaction as given in the below forum and it didn't help us.
    bpm collect time infinite loop error
    Some one please help us.
    Thanks
    Venkat
    Edited by: Venkata Gupta on Nov 27, 2008 12:54 AM

    Hi
    Is Your BPM having deadline branch ?
    If there is any system Exception then catch it.
    http://help.sap.com/saphelp_nw04/helpdata/en/33/4a773f12f14a18e10000000a114084/content.htm.
    According to thread mentioned by you ,Schedule your Missed Deadline Branch.
    Also check your BPM using transaction SXMB_MONI_BPE and find out which step have error.

  • BPM Collect Transformation Step Raise Alert need help

    Hi,
    Scenario BPM Collect.
    Block 1 - Multiple xml messages received and collected into multiline container.
    Block 2 - Transform multiline container element into single message. Mapping Error throw Transformation Exception.
    Block 2:Exception Branch - Transform multiline container element to error multiline container element (based on BpmPatternReqRespTimeOut with a twist).
    Block 2:Exception Branch - Send multiline container element to Communication Channel for further error analysis.
    Block 2:Exception Branch - Throw Alert BPM_ALERT Transformation Failure message.
    Getting Compilation errors because I am not allowed to output a multiline container element...?
    Behaviour without the Exception Branch Transform and Send is that the first message collected in the ccBPM goes to Green Flag and the others goto chequered flag when the BPM_ALERT is thrown. This is not desirable behaviour.
    Would like to output multiple line container element so I easily know which group of messages failed ie file 1,2,3... so that I can go to the Error folder and repost them in the Sender Communication Channel if required.
    Once this is working I am trying to identify which file had the conversion problem so I can filter if out from the others and process the others attempting to pass information from a UDF as to which item in the multiline container element I reached before I had a problem int he original mapping...?
    I have read Michal Krawcyzk's blog on ALERT variables and Help on Throwing Alerts etc but I am progressing slowly with my solution...
    thanks,
    V

    Thankyou Chirag for those Blogs.
    The first is the one I have looked at most recently and the second has given me an idea.
    If I change my mapping of the multiline container element each line holds an xml message to the error element by calling a UDF to map the payload across then at least I would have output my Payload that errored? I will try it and see Java coding is not my forte currently.
    thanks,
    V

  • BPM Collect Scenario errors at transform stage

    The BPM Collect scenario is using a Fork within a Block.
    Branch 1 - Loop Receive Append Container Endloop
    Branch 2 - Receive step of triggerIdoc
    End of Block
    Transform step - multiline container of XML documents to one XML document
    Send step
    BPM Errors at Transform step with JCo mapping not available.
    Whilst BPM in Error (Workflow in Error) more messages being received but never processed as the RECEIVE event is "lost" for these messages.
    We are looking at redesigning the BPM to reduce the likelihood of this transform error.
    In the meantime was looking at ways to Alert the administrator straight away to the error. As we have a workaround to get the process going and to pick up the stranded messages. So have started setting up the ALERT categories as described in How to Guide, for Adapter and Interface. Will this work?
    Also in the Transform step there is a box (system exception) but I can't enter anything in. Is there a way to do this if the Alert category doesn't report an error in the BPM. OR do I have to add the Transform step into a Block of its own?
    Advice gratefully received if we come up with a working solution will post it out here. Have spent a large amount of time reading posts and blogs on here but have not got a clear picture yet of what is best to do.
    thanks,

    > Whilst BPM in Error (Workflow in Error) more messages
    > being received but never processed as the RECEIVE
    > event is "lost" for these messages.
    This should give you an issue called Parked Messages. The best way to deal with this is to actually define a Local Correlation. In the Block Step properties, you will have an option, Use Correlation --> Give the name of the Correlation . This will make sure that when there is an error, the Correlation become inactiva and a new BPM instance is created.
    > In the meantime was looking at ways to Alert the
    > administrator straight away to the error. As we have
    > a workaround to get the process going and to pick up
    > the stranded messages. So have started setting up the
    > ALERT categories as described in How to Guide, for
    > Adapter and Interface. Will this work?
    Not sure if this will work. The issue is that the messages are passed to the IE already and will be in wait step waiting for an active BPM 's receive step How will another interface pick up this message?
    > Also in the Transform step there is a box (system
    > exception) but I can't enter anything in. Is there a
    > way to do this if the Alert category doesn't report
    > an error in the BPM. OR do I have to add the
    > Transform step into a Block of its own?
    This is what is called exception handler. Defined a Exception handler for the Block. Right Click block, insert Exception Branch, give name of the Hanler and then you can select this in the Transformation Step's System Error. This is like Try - Catch of Java.
    Regards
    Bhavesh

  • BPM Collect Message dependent AND time dependent

    Hi
    I have a IDOC to file scenario where I have to collect all the IDOC until I receive a stop IDOC.
    Once the End collect IDOC is received I have to do a n:1 transformation and write the file to the FTP.
    The problem is, at times the IDOC which is suppose to end the collect loop gets stuck in ECC R3 system.
    So Im wondering If I can do something like say, we have two options inside BPM both time dependent and message dependent.
    In this case which ever comes first (the Stop/END IDOC or the Time say 3 mins) will end the collect process.
    Can anyone pls suggest will it work and if so what are the additional steps I have to introduce in the BPM.
    Pls advice.
    Right Now these are the steps in the BPM Collect Message dependent.
    1. Block (I have used correlation)
    2. Fork inside the block
    3. Fork branch one has a look with end condition as 1=1; then a receive step and a container operation inside the loop.
    4. Fork branch two receives the end collect idoc.
    5. Transform step outside the block.
    6. Send step.
    Thanks
    Prasanna

    Hi Abhishek/ Raj
    Thanks!!
    I have done the changes let me confirm after testing it once. In the mean time I have one more question regarding the same BPM, as I have mentioned in the first post, the BPM contains the 6 steps mentioned but the the 6th step is inside another block (Block2).
    The steps 1 to 4 are inside Block1.
    The step 5 ie the transformation step (n:1) is in between the Blocks ie not inside any block (hope im not confusing).
    The second block is for sending the file to the FTP and based on the acknowledgement (transport level) I have to send an email.
    So Block2 already contains a deadline branch, it is to wait for the positive acknowledgement for say 3 mins and send the error email if incase we dont get positive ack within the time limit.
    My doubt is,
    1. Is it the only way (having two block and two wait steps) to achieve this.
        (one block for collecting and one block for ack)
    2. Is there any way I can have a single Block in the BPM insted of two. If so what are the steps.
        Having single block, Will improve anything??
    Thanks
    Prasanna

  • BPM collect messages error

    Hi
    we are experiencing problems in BPM Collect pattern, error is not clear.
    Our payload before input to BPM
    <record>
    <row>
    <key>1</key>
    <val1>1</val1>
    </row>
    <row>
    <key>1</key>
    <val1>1</val1>
    </row>
    </record>
    this is given to BPM, and BPM is following exact collect pattern in SAP Documentation like
    1. Block with restricted by correlation (/record:key1), deadline with 1 minute, used by correlation
    2. within Block, unlimited loop, with started recieve step, activated correlation, and append records with container operation
    3. multi-mapping transform step, with multiple records to single record and followed by send step.
    we are getting error in the blok step, no description of error.
    BPM is activated without any errors
    Please advise, appreciate all ur help.

    Any body got the solution for this . I am having same problem .
    My Payload as follows
      <?xml version="1.0" encoding="UTF-8" ?>
    - <ns0:BpmPatternCollectMessageToBeCollected xmlns:ns0="http://sap.com/xi/XI/System/Patterns">
      <ID>1</ID>
      <OverallNumber>1</OverallNumber>
      </ns0:BpmPatternCollectMessageToBeCollected>
    for BPMPattrenCollectTime BPM and I amhaving error on outbound side in BPE
    when I dig into technical details The BPM details as follows
    Error during result processing of work item for Reciving Message Step
    Regards
    Murali

  • BPM Collect Pattern Scenario :Container is empty for the loop at run time

    Hi Friends,
    I am working on BPM Collect Pattern Scenario after looking into the example delivered by SAP in namespace http://sap.com/xi/XI/System/Patterns and IP name as BpmPatternCollectPayload.
    After configuring the same and when it is run, I see strange behaviour as illustrated below
    1. Container step is empty and not able to see the counter for which it needs to be incremented at runtime
    2. I understand that Loop should start and it need to be incremented as when we get a new message into the same BPM.
    But I observe that it is creating a new message and loop never stops and completes the condition and comes out to go to next step.
    Request your help.
    Regards,
    Hussain

    Hi,
    define or declare a variable with name counter and type as integer in Container where you define abstarct variables...
    Thanks,
    Madhu

  • BPM Collect Pattern:File to IDoc

    Hi,
    My scenario is File to Idoc. An invoice excel file will be sent by the vendor.The excel has a built in macro, which converts the excel to a csv file and file is placed in a file share server.
    *Logic of Macro: *
    There will be a button in the excel file containing macro. In one excel file there would be multiple invoices that contains different number of item lines, The macro checks the u2018Invoice Numberu2019, lines with the same invoice number will be saved in one CSV file. So for example a excel file contains 5 invoices, when press the button that contains the macro, there will be 5 CSV files created under the same path, each CSV file contains one invoiceu2019s information.
      After this I have to post the Inovices in to SAP using an IDoc.
    So, I am using BPM collect pattern to achieve this. In the collect pattern,  I see a correlation defined on one of the source fields,  What does correlation exaclty do in my  case. Let's say I have defined a correlation on Source field called Invoice number.
    BTW I am using FCC on the filed adapter to change the CSV(Invoice) to xml
    Thanks,
    Kiran

    Hi
    to use Xpath for your receiver det. ref these blogs;
    a combination of logics should help you in this case ...
    Customise your 'XPATH' Expressions in Receiver Determination
    XPath to show the path (Multiple Receivers)
    File to Multiple IDocs (XSLT Mapping)
    Try removing BPM from ur scenario.
    1:n could be achieved without BPM
    Various multi-mappings and Optimizing their Implementation in Integration Processes (BPM) in XI.
    Regards,
    Suryanarayana

  • BPM collect pattern based on payload

    Hi,
    i am doing BPM Collect pattern based on stop message which is RFC. Means, i need to collect the IDOCs until i get the RFC from another system.
    For this i am using predefined pattern BPMcolllect pattern which is in BASIS SWCV.
    is it possible to do with out correlation?
    if correlation is required, there should be one common fiield between two messages?
    Thanks,
    karthik

    Hi ,
    Your design it self wrong, when you develop interface as a sender IDoc , then how come you will receive RFC in to BPM??
    so check your requirement with your client, if you want to collect messages there are different ways, implementing patterns in last option.
    search in sdn.
    Regards,
    Raj

  • Collection query for computers with windows management framework 3.0

    Hi,
    collection query for computers with windows management framework 3.0, but I cant found a way. I cant see that it is in the inventory data for SMS_G_System_ADD_REMOVE_PROGRAMS_64.DisplayName.
    So any way to get computers with windows management framework 3.0?
    /SaiTech

    select SMS_R_SYSTEM.ResourceID,SMS_R_SYSTEM.ResourceType,SMS_R_SYSTEM.Name,SMS_R_SYSTEM.SMSUniqueIdentifier,SMS_R_SYSTEM.ResourceDomainORWorkgroup,SMS_R_SYSTEM.Client from SMS_R_System inner join SMS_G_System_SoftwareProduct on SMS_G_System_SoftwareProduct.ResourceId
    = SMS_R_System.ResourceId where SMS_G_System_SoftwareProduct.ProductName like "Windows Management Framework 3.0%"
    That won't work because as mentioned, it doesn't appear in ARP.
    Torsten's suggestion will work or you can resort to software/hardware inventory using the info at
    http://serverfault.com/questions/555100/methods-to-detect-version-of-windows-management-framework
    Jason | http://blog.configmgrftw.com

  • SCCM collection Query - Wrong output

    Hi 
    We are working on Creating Dynamic SCCM collection which get populated based on following two condition
    1) Belongs to a Test OU in AD
    2) Doesn't have scom agent installed
    We have been trying to work out why following query doesn't populate collection with correct object instead populate by every object that exist in this OU. Seems like condition after AND is totally ignored. is there anything I am doing wrong here
    select SMS_R_SYSTEM.ResourceID,SMS_R_SYSTEM.ResourceType,SMS_R_SYSTEM.Name,SMS_R_SYSTEM.SMSUniqueIdentifier,SMS_R_SYSTEM.ResourceDomainORWorkgroup,SMS_R_SYSTEM.Client from SMS_R_System inner join SMS_G_System_SERVICE on SMS_G_System_SERVICE.ResourceID =
    SMS_R_System.ResourceId where SMS_R_System.SystemOUName = "AD.local/Servers/DEV/Test" and SMS_G_System_SERVICE.DisplayName != "Microsoft Monitoring Agent"
    Where as below query is working and condition after AND is calculated and collection get populated with right objects.
    select SMS_R_SYSTEM.ResourceID,SMS_R_SYSTEM.ResourceType,SMS_R_SYSTEM.Name,SMS_R_SYSTEM.SMSUniqueIdentifier,SMS_R_SYSTEM.ResourceDomainORWorkgroup,SMS_R_SYSTEM.Client from SMS_R_System inner join SMS_G_System_SERVICE on SMS_G_System_SERVICE.ResourceID =
    SMS_R_System.ResourceId where SMS_R_System.SystemOUName = "AD.MONASH.EDU/Managed/Servers/DEV/OCIO/SplunkTest" and SMS_G_System_SERVICE.DisplayName = "Microsoft Monitoring Agent"
    We tried with different combination such as "not like", "is null" etc etc. seems to us that as soon as we try have negative criteria after AND that criteria has been ignored.
    To my little knowledge of SQL query, condition after AND is not optional and has to meet, if it doesn't query should return no value.
    is this same with SCCM collection query? will appreciate if some one can shade some light here.
    Thank you in advance. 

    Thank you All for the reply
    Our End Goal is to be able to automate software/configuration deployment based on criteria we set. SCOM is first of the rank if you like and we want this to be hands off approach so when a server move into certain OU based on criteria server get populated
    into SCCM collection and SCCM pushes out software/configuration packages out to the server.
    but having said that if we have to create two collection to satisfy our two criteria than most likely we will need number of collections depending on numbers and types of criteria. This will make managing collection and their relationship more challenging
    and not sure if that is the path we want to take. This will need to be discussed through unless we find better solution.
    Thank you again

  • How to get SQL statement from (Collection) query.execute();

    We have a JDO Persistence class ClassName that execute query using following code. After this statement get executed, record does not get updated in the DB. Is there a way to check what SQL statement got submitted in the (Collection) query.execute(); ??? <br><br>
    Extent extent = pm.getExtent(ClassName.class, false); <br>
    Query query = null; <br>
    try { <br>
    query = pm.newQuery(extent, filter); <br>
    Collection results = (Collection) query.execute();<br>
    Iterator i = results.iterator();<br>
    if (i.hasNext()) {<br>
    ...<br>
    }<br>

    You can always find out the names of tables that are views, using java.sql.DatabaseMetaData and its getTables() method.
    This tends to be a nice source of examples:
    javaalmanac.com
    However, if you're asking for the underlying SQL used to CREATE VIEW, I don't see anything in the API that will give you that. After all, JDBC shouldn't have to know if it's dealing with an ordinary table or a view. I think you'd have to ask your DBA for the underlying SQL.
    Once you have it, what do you plan to do with it?
    %

  • Need to make collection Query statement by sccm 2012 sp1 for Count of Licenses by License Status

    I want to make collection Query statement by sccm 2012 sp1 for all windows activated and all non-activated windows.
    Ahmed Sherif

    Have a look at the Software Licensing Product attribute classes when creating a Query - remember to choose
    System Ressource when creating the Query. You would have to enable this class to be collected during Hardware Inventory. Go to
    Client Settings -> Hardware Inventory ->
    Set Classes -> Select Software Licensing Product.
    This Class is part of the Asset Intelligence classes so you could enable it from there as well.
    Another way to accomplish is to use Compliance Settings to get this information.
    Create a Configuration item that query the Win32_WindowsProductActivation WMI Class, if you are using XP and the
    SoftwareLicensingProduct class for later os´s
    Add this Configuration Item to a Baseline ad deploy it to your Collections as needed.
    When the Baseline has been evaluated you can use this information to create query
    Machines reported as compliant is actived and machines reported as Non-Compliant is not activated.
    You can read about the Win32_WindowsProductActivation WMI Class here:
    http://msdn.microsoft.com/en-us/library/aa394520(v=vs.85).aspx
    and the SoftwareLicensingProduct here:
    http://msdn.microsoft.com/en-us/library/cc534596(v=vs.85).aspx

  • Collection query to get the Linux machines details

     Hi,
    Can I get the collection query to create list of Linux  machines . Please help me to get 

    Hello, I think, you are asking about SCCM collections !??? if yes, kindly post your query no SCCM forums.
    if not, please elaborate your question?
    Devaraj G | Technical solution architect

  • SCCM collection query to create ESX host machines

    Hello Everyone
    I am looking SCCM collection query to create  ESX host collection. Any one can share the query to create EST host machines collection please

    For the actual ESXi hosts you can't.
    For host machines, that would be a query for all virtual servers, like this one:
    select SMS_R_SYSTEM.ResourceID,SMS_R_SYSTEM.ResourceType,SMS_R_SYSTEM.Name,SMS_R_SYSTEM.SMSUniqueIdentifier,SMS_R_SYSTEM.ResourceDomainORWorkgroup,SMS_R_SYSTEM.Client from SMS_R_System where SMS_R_System.IsVirtualMachine = "True"
    Make sure you limit the above query to servers collection or you can expand it to include servers, like this:
    select SMS_R_System.ResourceId, SMS_R_System.ResourceType, SMS_R_System.Name, SMS_R_System.SMSUniqueIdentifier, SMS_R_System.ResourceDomainORWorkgroup, SMS_R_System.Client from  SMS_R_System inner join SMS_G_System_OPERATING_SYSTEM on SMS_G_System_OPERATING_SYSTEM.ResourceId
    = SMS_R_System.ResourceId where SMS_R_System.IsVirtualMachine = "True" and SMS_G_System_OPERATING_SYSTEM.Caption like "%server%"

Maybe you are looking for

  • The bar icon for downloading that appears next to "trash" and the "bootcamp" icon are gone.   How do I get them back?

    This format confuses me.   I intended to simply ask a question but then this discussion window opened up and my question appears as though it were a topic. Can we ask a question without beginning a discussion?   Then I am chided for trying to post a

  • HT4059 How to cancel a pre-order?

    Where do I go to cancel a book pre-order

  • Bookmarks come and go

    My bookmarks in Safari disappear and are gone for several hours and then they are back. This happens sometimes every day,sometimes just about once a week. It all started when I updated to the new IOS version. How can I end this irritating coming and

  • Confusion in executeQuery() method of ViewObject

    Hi, Can any one tell me executeQuery() method of ViewObject is actually going in database or what ? how do it fetches the records ? I mean whether to go in database or from cache ? how does the viewobject knows from where to fetch data? Thanks, Janak

  • Home Sharing Login Problem

    So I am trying to set up my Apple TV (3rd Gen) in my college dorm. I have set everything up, but I cannot log into Home Sharing via Apple TV. It says my password is wrong or my Apple ID is wrong. I just logged using my same Apple ID and password to i