Process, Block & Container Operation

Hi all,
What is the difference between process and block containers?? Where would a container operation step be adptly used?
I am trying to do a BPM scenario with a send step inside a block and I can't set multiline for a block container. I am little confused. Any help.
-Teresa

Hi Teresa,
Block :
Block is similar to what we use curly braces in most of the languages which defines the scope. For example if we are using loop step in bpm to loop through some variable then we can use block step to restrict the scope of loop step up to some point and block is something similar to defining scope in other prog. languages. the local variables defined in this has a scope of it only and others cannot access the same and block Recieve step is not required just use Send step if it is async message.
Block- is for logical grouping of the process steps
http://help.sap.com/saphelp_nw04/helpdata/en/f6/e1283f2bbad036e10000000a114084/content.htm
Container :
A transformation step in BPM is a abstraction of message/interface mappings, So u can use a container variable directly inside your message mappings to map container variable to data element.
U can look at the thread : "Container object in Message Mapping" to know how to access the container variable inside your message mapping.
Contaniers - Variables in the Integration process.
https://www.sdn.sap.com/sdn/collaboration.sdn?contenttype=url&content=https%3A//forums.sdn.sap.com/thread.jspa%3FforumID%3D44%26threadID%3D41502.
Regards
Agasthuri Doss
Message was edited by: Agasthuri Doss Baladandapani

Similar Messages

  • IN PROCESS INSPECTION, QM operation blocking next PP Operation

    Evening dear members.
    It is possible to create a QM operation which could block the next PP operation on a PP recipe/route, until the QM one is released/confirmed/finished.?
    Example:
    10 PP operation CLEANING
    20 QM operation MICROBIOLOGY TESTS
    **if results of 20 are A-OK,,,,release/open/allow**
    30 PP operation 1st PP OPERATION
    40 QM operation DOESNT BLOCK next operation
    50 PP....... and so on
    If yes, what do I have to mantain to do so?
    Appreciate your feedback

    hi,
    Create one new Control key for Inspection operations in:
    QCC0>Quality Planning>Inspection Planning>Operation>Define Control Keys for Insp. Operations.
    If it is for QM operation, do not forget to flag "insp char. required".
    And in "Confirmation" field, Select "1" Milestone Confirmation.
    now, if you assign this key (With Milestone Confirmation) for Operation 0020,0030, 0040;
    System will not allow to Confirm 0030,0040 unless 0020 is not confirmed.
    Check this in your Case. i hope it will solve your problem.
    Regards,
    Amol

  • Files are not appended in the container operation step ?

    Hi Guys,
    I have a BPM scenario where i receive a single file with multiple transactions
    1. Receive step receives the file and starts the process
    2 Transformation Step - Splits the file into individual transactions
    3. Block step --ForEach - Block has the follow 2 steps    
            1. Send - Synchronus - sends the request of each individual transaction to a 3rd party system and receives the response.
           2. Container Operation: Appending all the responses into a single file.
        Properties of container operation:
    Target: Multiline element (Block level element)
        Operation: Append
        Expression: Single element similar to structure above with out multiline.
    4. Send Step: I am writing this file locally to a file and this always shows only the last transaction in case of ParForEachMode and first transaction in the case of ForEach mode.
    can anybody explain why the messages are not appending into a single file. any help would be really appreciated
    Thanks,
    Srini

    Hi Liang,
    Check to see if the Sync Send step send every reply messages it received to container operation step:
    You might need to remove the container operation to see if you receive each individual msgs.
    > I have removed the container operation and i am able to see all the individual responses which i basically written to file just to cross check and every thing looks fine.
    Another way to go to workflow log (Complete Process with all the steps) to get debug information:
    SXMB_MONI -> Click "PE" under outbound queue -> Press "Display WorkFlow Log" button -> Click List with technical details -> Click Show Work item Container
    Here you can see the container and XML message used in this process step.
    You might have information on how message be processed in this step
    > I have checked in the workflow log and workflow shows the container operation only in the case of  ParForEach mode and when the block is in the ForEachMode i dont see any container operation step in the workflowlog and even in the ParForEach mode the container operation dosent have any details.
    Your Container Element reference to response message should also defined in block level, since the response message only exist inside the block. However, using process level container element should not cause any problem
    > I have defined the response messsage at block level in the container and the target i have defined it as multiline element defiend at process level. This multiline element is taken as input in the transformation step at prrocess level.
    are there any other alternatives for this process, i dont understand why the container operation is not appending the elments.
    any help would be appreciated
    Thanks,
    srini
    Edited by: srinivas kapu on Feb 25, 2008 12:10 PM

  • Calling a WS from a servlet...EndpointPort does not contain operation meta.

    Hi all,
    I'm trying to call a service from a servlet but I get an error:
    Error: Endpoint {http://com.susan/SusanWS}SusanWebServiceEndpointPort does not contain operation meta data for: LoginWebService
    ...the WS is up and running (of this I'm sure...cause I also tested it with soapui...and it works..)
    The webservice is running on a local jboss (to which i can successfully connect, and see the wsdl...).
    the servlet is running on a local tomcat (which is also ok...).
    I'm trying to call the WS like this:
    Service service = new Service();
    Call call = (Call)service.createCall();
    call.setTargetEndpointAddress( new URL( wsEndpoint ) ); //http://localhost:8080/webservices/SusanWS (the same I used in soapui...so it should be right)
    call.setOperationName( "LoginWebService"); //name of the method i want to use...
    call.addParameter( "appCode", Constants.XSD_STRING, ParameterMode.IN );
    call.addParameter( "login", Constants.XSD_STRING, ParameterMode.IN );
    call.addParameter( "passwd", Constants.XSD_STRING, ParameterMode.IN );
    //            call.setReturnType( Constants.XSD_INT ); //left this out...should be the cause...
    Object retval = call.invoke( new String[] { appCode, login, passwd} ); //appCode,login,passwd contain the strings i want to  forward as input.if I try to run it I get(in the jboss log...):
    15:41:55,594 ERROR [SOAPFaultExceptionHelper] SOAP request exception
    javax.xml.rpc.soap.SOAPFaultException: Endpoint {http://com.susan/SusanWS}SusanWebServiceEndpointPort does not contain operation meta data for: LoginWebService
    at org.jboss.ws.server.ServiceEndpointInvoker.getDispatchDestination(ServiceEndpointInvoker.java:181)
    at org.jboss.ws.server.ServiceEndpointInvoker.invoke(ServiceEndpointInvoker.java:107)
    at org.jboss.ws.server.ServiceEndpoint.handleRequest(ServiceEndpoint.java:209)
    at org.jboss.ws.server.ServiceEndpointManager.processSOAPRequest(ServiceEndpointManager.java:355)
    at org.jboss.ws.server.StandardEndpointServlet.doPost(StandardEndpointServlet.java:115)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.jboss.ws.server.StandardEndpointServlet.service(StandardEndpointServlet.java:76)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
    at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
    at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
    at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
    at java.lang.Thread.run(Thread.java:595)
    don't know if it can help...the soapui request looks like this:
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="http://com.susan/SusanWS/types">
    <soapenv:Header/>
    <soapenv:Body>
    <typ:LoginWebService>
    <LoginInfo_1>
    <appCode>WEB_SERVICES</appCode>
    <login>root</login>
    <passwd>root</passwd>
    </LoginInfo_1>
    </typ:LoginWebService>
    </soapenv:Body>
    </soapenv:Envelope>
    anybody has an idea of what I'm doing wrong?
    Edited by: Turbo-555 on Mar 18, 2009 8:36 AM

    if I change the code with:
    //call.setOperationName( wsMethod );
    call.setOperationName( new QName("http://com.susan/SusanWS",wsMethod)); //http://com.susan/SusanWS is the targetnamespace...the error changes into:
    16:55:21,051 ERROR [SOAPFaultExceptionHelper] SOAP request exception
    javax.xml.rpc.JAXRPCException: Cannot find child element: {http://com.susan/SusanWS/types}LoginWebService
    at org.jboss.ws.binding.soap.SOAPBindingProvider.getParameterFromMessage(SOAPBindingProvider.java:799)
    at org.jboss.ws.binding.soap.SOAPBindingProvider.unbindRequestMessage(SOAPBindingProvider.java:282)
    at org.jboss.ws.server.ServiceEndpointInvoker.invoke(ServiceEndpointInvoker.java:112)
    at org.jboss.ws.server.ServiceEndpoint.handleRequest(ServiceEndpoint.java:209)
    at org.jboss.ws.server.ServiceEndpointManager.processSOAPRequest(ServiceEndpointManager.java:355)
    at org.jboss.ws.server.StandardEndpointServlet.doPost(StandardEndpointServlet.java:115)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.jboss.ws.server.StandardEndpointServlet.service(StandardEndpointServlet.java:76)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
    at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
    at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
    at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
    at java.lang.Thread.run(Thread.java:595)

  • Container operation type single

    hi all
    I am facing a problem. i have a BPM which has a block step-->Propertie mode=ForEach. inside this block i define some container operation type single whichs ones take some values. i need that the values of the containers elements update for each message in the block(ForEach).is it possible or i need to define the contasiners as multiline??
    T&R
    Rodrigo

    hi,
    there no way to define it as single and update the value.
    i need the those values to pass them as IMPORT to a Message Mapping. so the containers has to be singles.
    if no, i have to define another step in the BPM to get the first value of the all multiline container operation??
    thanks.

  • BPM Container operation not executed

    Hi
    We have a scenario where several Idocs are to be collected to one flat file. I have set up a time loop in BPM to receive idoc (abstract), map idoc to flat file, add flat file to flat_file_list (container operation, append). After 2 minutes the loop ends, and the flat_file_list is mapped to a flat file and sends the flat file to the connected legacy system, via the file adapter.
    Most of the process steps work just fine, but the files are not appended into one file. All mappings are correct, and the FTP adapter correctly sends the files to the FTP server.
    Using the Business Process Engine monitoring I see that all interfaces receive the messages, all mappings are done, but there are no steps for the container operation! Should this container operation be visible in the monitor?
    So it seems that everything is working except the bundling of messages. Does anyone have any experience with this?
    The container operation is setup as following:
    Step name: AddMsgToLst
    Target: FlatFileList
    Operation: Append
    Expression: FlatFile (which is the flat file I am mapping the idoc to)
    Any help is highly appreciated!
    Br
    Kenneth

    Hi Robin
    Thanks for your message. After I insert a new step and save the process, I can't activate the process from the sxi_cache. It says that the Cache entry for directory process is already up-to-date.
    I have tried both with activating first in repository and not activating the process, but in both cases the sxi_cache says it's up-to-date.
    Any suggestions?
    -Kenneth

  • Container operation BPM

    Hi ,
    This question is on container operation inside the BPM (PI 7.0 sorry a bit outdated here )
    why is it that in a container operation you can set a simple type variable to any tag in the payload but not the other way round .
    Is it possible to set an XML tag in a payload with the value in a simple type variable .

    Hi Robin
    Thanks for your message. After I insert a new step and save the process, I can't activate the process from the sxi_cache. It says that the Cache entry for directory process is already up-to-date.
    I have tried both with activating first in repository and not activating the process, but in both cases the sxi_cache says it's up-to-date.
    Any suggestions?
    -Kenneth

  • Time Variable in Container Operation in BPM

    hi,
    how can we add a time variable in container operation in BPM?
    Say i want to increment the time upto 5 hours and see if it has reached in my loop.
    how can we achieve this?
    Tiru

    henrique -
    I have a block with a timeout defined.
    Within the block i have the deadline with control step which triggers the exception
    I have the exception handler which has a send step which sends the actual error message.
    I have a send step which polls the http receiver and is in a infinite loop.
    Now the first time i receive an error message i get an email which is good and should work that way.
    Next time if it errors out it should continue until a deadline of 8 hours and then should send out an error email.
    What happens is i get the second error message immediately without the deadline getting exceeded.
    When i look at the workflow log the exception handler gets executed but i don't see a sign of the deadline getting executed?
    Any reasons why its behaving this way?
    Thanks,
    Tiru

  • Question regarding container operations in BPM

    Hi there,
    i used a container operation to retreive a value from an Idoc, later in the process i need to put that value to a different message on a specified field, the thing is the container operation box only allows me to set a container as the target, any ideas how can i do this?, or if this should be done in a message mapping??, thanks!!
    Roberto.

    Hi if you can use a variable in a mapping use this code and write and UDF function
    Set the Variable
       import com.sap.aii.mappingtool.tf3.rt.*
        public static void setGlobalVar(String gvName , String gvValue , Container container) {       
            GlobalContainer gc = container.getGlobalContainer();
            gc.setParameter(gvName, gvValue);
    Get the variable
        public static String getGlobalVar(String gvName , Container container) {
            GlobalContainer gc = container.getGlobalContainer();
            String output = "";
            if (gc.getParameter(gvName) != null)
                output = String.valueOf(gc.getParameter(gvName));
            return output;

  • Container operations and abstract interfaces

    Hi
    At first, could somebody maybe refer to blogs about how to exploit fault messages in BPM? (how to generate an fault response when a exception is thrown and handled)
    As I could not find a fast way to see how fault messages work in BPM I tried to solve the problem the other way... but run into a problem again. The question is: is it possible to assign values to some elements in an abstract interface type container? Like put into the message a processing code, processing time or some other informative text.
    In a more technical way: container operation allows only the whole container to be the target of the operation, while one can use any part of an container (of abstract interface) to use as the source of operation. Is it also possible to assign a value to a element in abstract interface?
    Waiting for any ideas...

    Hi
    Thanks for Your answer. Still my question is unanswered. As You could read out from my question, I know that such a step exists but the problem is that target can be exactly one container. Its hard to make an example without too much of code samples.
    I agree that if I have containers A and B then I can do:
    A = B
    But if A is of type abstract interface with structure:
    rootNode
    + childNode1
        + anElement as xsd:string
    + childNode2
    and B is a simple type then is it possible to do something like:
    A:/rootNode/childNode1/anElement = B
    As I don't want to change anything else in the response. Any ideas?
    I need to do so because I am not able to throw fault messages as a synchronous interface response (first: there is no way to define fault type as abstract interface, second: send [close S/A bridge] step needs response message only).
    Another way would be to replace response content by inserting fault information but as there is no way but message mappings (transformation step) to change the content of an abstract interface (is there?). It would be a very ugly solution - each fault in BPM shall have its own mapping that generates the whole message... and there would be other issues too.
    Waiting for any ideas on how to solve the problem.
    Any recomendations how to create a SOAP fault answer in BPM are also welcome!

  • Problem initiating process with multiple operations using HTTP/SOAP

    Hi,
    I have defined a process which has multiple operations. My process starts with a pick activity containing onMessage branches for each possible operation. When I initiate this service using the BPEL console, I choose one of the operations and everything works fine.
    However, when I initiate this process using an HTTP/SOAP web service call using JMeter, always the first branch is executed regardless of the message I send.
    My operations are document/literal. Due to some restrictions, I cannot define a SOAPAction for the operations. Could this be the problem? Is there a workaround for this? If this is not the problem, what could be the cause?
    I'm using version 10.1.2.1.
    Any help will be appreciated. Thanks in advance..

    hi i am using 10.1.3 and still i can not initiate a process with multiple operations. Is there anybody to tell if pick activity works fine and if there are some points to consider?
    If there is a problem is there any solution to make a process with multiple operations?

  • Process and initiate operations in port types

    What is the difference between the process and initiate operation in the port types definition found in wsdl file? Is this used too define sync and async processes?

    Hi.
    As far as I understand, process and initiate are just naming conventions. What really makes the difference is that, for sync processes you have a single portType with an input/output operation, and for async processes you have two portType definitions, each one containing an input only operation.
    For sync processes, the requestor makes the call and waits for the response, using the same channel (same port).
    For async processes, the requestor makes the call in one port and forget about it. Later on, a callback can be generated through the other port type as a means of notifying the requestor back in an async way.
    Regards.
    Denis

  • Creating Form Manually w/Process that Contains Multiple Insert Statements

    Hello,
    I've been trying to create a form manually by following the instructions in the Users Manual under "Creating Form Manually - Creating a Process that Contains One or More Insert Statements." I have not had much luck and I think that it is because I'm not sure what is ment when said:
    "Create a conditional process of type PL/SQL that executes when the user clicks the button."
    Here is the PL/SQL that I used:
    BEGIN
    UPDATE T
    SET first_name = :P1_FIRST_NAME,
    last_name = :P1_LAST_NAME
    WHERE ID = :P1_ID;
    END;
    I am not sure where to create this process,however. I've tried several areas (i.e. Processes under Page Processing, Processes under Page Rendering, Under Conditions on the Button, etc.) but will get errors or no effect at all.
    Please let me know what i am doing wrong. If you could provide me with a simple example of how to create a form manually, that would be greatly appreciated.
    Thanks.
    Linda
    Message was edited by:
    lhudak

    Hello Scott,
    I followed your instructions and the error that I get is that nothing happens at all. I submit the page and nothing gets updated, deleted or added.
    I have the table, report, processes and form in place. Here are the settings:
    Process Point: is "on-submit, after computations...(in the Page Processing Section)
    Type: PL/SQL anonymous block
    Source: BEGIN
    INSERT INTO T ( first_name, last_name )
    VALUES (:P1_FIRST_NAME, :P1_LAST_NAME);
    END;
    Conditional Processing: When Button Pressed (Create (ADD))
    For the Button:
    Database Action: SQL Insert action
    URL Redirect: No Target
    Should I have any special settings on the Page Item? (i.e. under Default: Default Value Type: PL/SQL Expression) or maybe under Conditions: Condition Type - PL/SQL?
    Please let me know.
    Thanks
    Linda

  • Alrt with field Lelvel Info - By using Container Operation and Control step

    HI,
    I have developed File to File scenario from /people/michal.krawczyk2/blog/2005/03/13/alerts-with-variables-from-the-messages-payload-xi--updated
    I created Integration Process in IR with two BPM steps Receive and Send step.
    Since I need a filed level info on alerts...I have included Container Operation and Control steps in between receive and send like..
    Receive --- Container Operation --- Control step -
    Send
    And now I have created the Alert category in Alrtcatdef and used the same category in control step.
    I have tested the above scenario with error message ( with mapping fail )...But I am unable to find the alert in the system?!!
    ---S

    HI Stallin
    Did alert generated by BPM itself. Check with BPM workflow.
    Another thing while generating alert from BPM, standard alert element will not work with BPE engine. Create elements for the same
    Thanks
    Gaurav

  • Store Filename in Container Operation of BPM?

    Hi,
    Is it possible to store filename in Container Operation of BPM step? I know that using mapping and assigning that field to Container Operation can be done.
    But, is it possible to do without using payload field assignment?
    Regards,
    Ashish

    That seems to be the only possible way. Bcoz the filename in the dynamic header is lost when the message enters BPM.
    Regards,
    Prateek

Maybe you are looking for

  • Goods Receipt of BOM material- cost centre required for components

    I have created a subcontracting PO with a BOM material. When trying to post a Goods Receipt the components of the BOM material are required to have a cost centre assigned to them. The profit centre for the BOM material and components are the same. Th

  • Bursting XML Control File - only one variable substitution works

    Hello, I have the following from my bursting xml. In my subject I would like to have more than one substitution as in my example. Problem is that when I have more than one, the second one alway is "null". On there own they work fine. Is this a bug/li

  • Upload XLS File, Loop through rows query a DB

    What I would like to do is enable the user to upload an excel spreadsheet with one column and many row of IP's. Then put the ips in a list or array and loop through the list and query a table to get the IPs that match the list. Any help would be grea

  • Hide Dynamic Filters list criteria

    Hello Dear Experts, I would like to ask you whether it is possible and how can i hide the Dynamic Filters list criteria from a BW Portal (Web) report when exporting this or broadcasting this by email in pdf format??? I mean about the first page of th

  • Bridge cs2 keeps crashing. Mac g5 2.0 dual

    Hi, I'm using Bridge version 1.0.4.6 on a Mac G5 2.0 dual with 2 gigs of RAM. Photoshop cs2 When I'm working in Bridge it crashes at seemingly random moments. The crash rate seems to be increasing in frequency. I can't lock it into any particular pat