Using of BAPI_TRANSACTION_COMMIT in BPM

Hi,
I have a scenario where I will be changing salesorder using BAPI_SALESORDER_CHANGE and as we know it will not commit automatically. So I am trying to call BAPI_TRANSACTION_COMMIT synchrnously in BPM after  first bapi.... I see that still the values are not getting updated. Is calling commit bapi in BPM directly works?
Could any one help me to solve this issue?
Thanks,
Yaseen Mahammad.
Message was edited by: Yaseen Mahammad

Hi Yaseen,
Please can you look at the following paramter of the Receiver RFC adapter: Commit Control for Individual BAPI Calls
If you want to use this communication channel to call BAPIs as remote-enabled function modules that change data in the database, set the indicator.
From SAP HELP:
If executed successfully, the transaction is written to the database by calling the function module BAPI_TRANSACTION_COMMIT explicitly. If an error occurs, the transaction is rolled back by BAPI_TRANSACTION_ROLLBACK.
The result is determined by the value of the field TYPE in parameter RETURN. If successful, the tables are empty and the values “”, “S”, “I”, and “W” are displayed. All other values are regarded as errors.
To change this setting, set the indicator BAPI Advanced Mode.
In the Successful RETURN-TYPE Values table, enter the values that should lead to a successful execution.
Regards
Vijaya

Similar Messages

  • How to post a cross-company invoice using the BAPI_TRANSACTION_COMMIT?

    Hi
    I would like to post an inter-company invoice using the BAPI_TRANSACTION_COMMIT.
    There is a comp_code in the header strusture. The BAPI's documentation says that this is possible and in the ACCOUNTGL table there is a field COMP_CODE.
    The only problem is that the field is not there…
    Does anybody know whet to do?
    Thanks,
    Magdalena

    BAPI BAPI_TRANSACTION_COMMIT is not used for a specific application, but needs to be called always after any BAPI is called to post the data that were changed in the BAPI to the database.
    You need to find the BAPI that is used to post the invoice and then call BAPI_TRANSACTION_COMMIT.
    Always do:
    call function 'BAPI_application_specific'
    if sy-subrc eq 0.
      call function 'BAPI_TRANSACTION_COMMIT'.
    endif.
    Check the documentation you have to see if you can find the application specific BAPI.
    Hope that helps,
    Michael

  • Correlation and Async/Sync Communication using JMS adapter without BPM

    Hello
    1. Pls explain with simple example docs/links --- Correlation
    2. Async/Sync Communication using JMS adapter without BPM
       If i see blog --- If I go with blog --- /people/sudheer.babu2/blog/2007/01/18/asyncsync-communication-using-jms-adapter-without-bpm-sp-19
    Pls explain --- Correlation Settings, select JMSMessageID for the XI Conversation ID.
    Pls explain --  Correlation Settings, select XI Conversation ID as jMSCorrelationID.
    Can you pls explain me this example with JMSMessageID and JMSCorrelationID context
    Regards

    Hi Henry,
    For Correlation, please go through the below link.
    /people/sravya.talanki2/blog/2005/08/24/do-you-like-to-understand-147correlation148-in-xi
    Sync / Async Bridge communication using JMS : http://help.sap.com/saphelp_nw04s/helpdata/en/45/20d251c20a0732e10000000a155369/frameset.htm
    Sync / Async communication without BPM in JMS : /people/venkataramanan.parameswaran/blog/2007/01/18/syncasync-communication-in-jms-adapter-without-bpm-sp19
    /people/henrique.pinto/blog/2007/08/02/syncasync-scenarios-without-bpm
    Hope these help
    Regards
    Kiran..

  • Async/Sync Communication using JMS adapter without BPM

    Hello ,
    Pls suggest how Async/Sync Communication using JMS adapter without BPM .
    In my scenario I have JMS Sender and then RFC/JDBC as Sync and then again JMS receiver
    Pls explain  the concept of
    JMSMessageID and JMSCorrelationID  and how to use it by an example.
    Regards

    Hi,
    If you have selected JMSMessageID, JMSCorrelationID, or JMSProperty and entered a JMS message ID in these fields, you should see the Remove 'ID:' Marker from JMSMessageIDindicator. Set the indicator.
    This is necessary because the JMS specification stipulates that each JMS message ID starts with 'ID'. However, this conflicts with ISO-11578.
    - JMSMessageID (Uniqueness Is JMS-Provider-Dependent)
    (String) The unique message ID. Note that this is not a required field and can be null. Since the JMS provider might not use your provided message ID, the Connector sets a special property called $jms.messageid after sending a message. This is to insure that the message ID always is available to the user. To retrieve this value use conn.getProperty("$jms.messageid") in your After Add hook.
    - JMSCorrelationID (Uniqueness Is JMS-Sender-Dependent)
    (String) This header is set by the application for use by other applications.
    Hope this will help you.
    Regards
    Aashish Sinha
    PS : reward points if helpful

  • How to use factory calender in BPM (NWDS 7.1 environement )

    hi guys,
    I have requirement to send u201Cnotification of missed deadlineu201D using factory calendar.
    The time to send notification is in hours and its is less than a day. So a task created on Friday 5u2019o clock should send missed alert on Monday 9 AM (assuming business run from 9 to 5).
    this need to be achieve using BPM workflow can any suggest me how to use factory calendar in BPM .

    Hi,
    You can use "BUSINESS_DATE_CREATE" function module in the ECC system for your requirement.
    This will calculate exact date and time and return next business day.
    You need to some datetime convertions on the BPM side to get it working
    Regards, Anil

  • Authentication error using PAPI-WS for BPM Studio 10.3

    I followed the steps laid out in the material from this thread using SOAP UI:
    PAPI Web Service (PAPI-WS) Example for Oracle BPM Studio
    It seems that BPM Studio does not recognize the default credentials user: "test" and password: "test"
    I receive the following error when I try to make any call:
    <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
    <S:Fault xmlns:ns3="http://www.w3.org/2003/05/soap-envelope">
    <faultcode>S:Client</faultcode>
    <faultstring>Participant could not be authenticated. A wrong username or password might have been specified.</faultstring>
    <detail>
    <oens:OperationException xmlns:oens="http://bea.com/albpm/PapiWebService">
    <exceptionName>fuego.papi.webservice.handlers.AuthenticationException</exceptionName>
    <message>Participant could not be authenticated. A wrong username or password might have been specified.</message>
    <technicalInfo>fuego.papi.webservice.handlers.AuthenticationException: Participant could not be authenticated. A wrong username or password might have been specified.
         at fuego.papi.webservice.handlers.AuthenticationHandler.processAuthentication(AuthenticationHandler.java:144)
         at fuego.papi.webservice.handlers.AuthenticationHandler.handleMessage(AuthenticationHandler.java:74)
         at fuego.papi.webservice.handlers.AuthenticationHandler.handleMessage(AuthenticationHandler.java:46)
         at com.sun.xml.ws.handler.HandlerProcessor.callHandleMessage(HandlerProcessor.java:292)
         at com.sun.xml.ws.handler.HandlerProcessor.callHandlersRequest(HandlerProcessor.java:135)
         at com.sun.xml.ws.handler.ServerSOAPHandlerTube.callHandlersOnRequest(ServerSOAPHandlerTube.java:133)
         at com.sun.xml.ws.handler.HandlerTube.processRequest(HandlerTube.java:116)
         at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:595)
         at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:554)
         at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:539)
         at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:436)
         at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:243)
         at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:444)
         at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:244)
         at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:135)
         at com.sun.xml.ws.transport.http.servlet.WSServletDelegate.doGet(WSServletDelegate.java:129)
         at com.sun.xml.ws.transport.http.servlet.WSServletDelegate.doPost(WSServletDelegate.java:160)
         at com.sun.xml.ws.transport.http.servlet.WSServlet.doPost(WSServlet.java:75)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
         at java.lang.reflect.Method.invoke(Unknown Source)
         at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:243)
         at java.security.AccessController.doPrivileged(Native Method)
         at javax.security.auth.Subject.doAsPrivileged(Unknown Source)
         at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:275)
         at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:161)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:245)
         at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:50)
         at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:156)
         at java.security.AccessController.doPrivileged(Native Method)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:152)
         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
         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:667)
         at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
         at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
         at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
         at java.lang.Thread.run(Unknown Source)
    Caused by: fuego.papi.exception.AuthenticationException: Cannot authenticate participant 'test'.
         at fuego.papi.impl.ProcessServiceImpl.authenticatePassport(ProcessServiceImpl.java:297)
         at fuego.papi.webservice.pool.ProcessServiceSessionPoolManager.getSession(ProcessServiceSessionPoolManager.java:185)
         at fuego.papi.webservice.WebServiceManager.getProcessServiceSession(WebServiceManager.java:156)
         at fuego.papi.webservice.handlers.AuthenticationHandler.processAuthentication(AuthenticationHandler.java:141)
         ... 45 more
    Caused by: fuego.directory.AuthenticationException: Login incorrect.
    Detail:Verify that the information provided is correct.
    If you cannot solve the problem, check with your administrator.
    ID [default] PARTICIPANT [test] REASON [Login incorrect.
    Detail:Verify that the information provided is correct.
    If you cannot solve the problem, check with your administrator.
    ID [Project:Test] PARTICIPANT [test] REASON [invalid username or password].
         at fuego.directory.AuthenticationException.wrap(AuthenticationException.java:104)
         at fuego.directory.project.engine.EmbeddedEngineAuthenticationAccessor.connect(EmbeddedEngineAuthenticationAccessor.java:69)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
         at java.lang.reflect.Method.invoke(Unknown Source)
         at fuego.directory.provider.DirectorySessionImpl$AccessorProxy.invoke(DirectorySessionImpl.java:756)
         at $Proxy12.connect(Unknown Source)
         at fuego.directory.provider.DirectorySessionImpl.connect(DirectorySessionImpl.java:250)
         at fuego.directory.provider.Factory.startSession(Factory.java:405)
         at fuego.directory.Directory.startSession(Directory.java:268)
         at fuego.papi.impl.ProcessServiceImpl.authenticatePassport(ProcessServiceImpl.java:287)
         ... 48 more
    Caused by: fuego.directory.AuthenticationException: Login incorrect.
    Detail:Verify that the information provided is correct.
    If you cannot solve the problem, check with your administrator.
    ID [Project:Test] PARTICIPANT [test] REASON [invalid username or password].
         at fuego.directory.project.engine.ProjectFullParticipantsAccessor.fetchHumanParticipant(ProjectFullParticipantsAccessor.java:82)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
         at java.lang.reflect.Method.invoke(Unknown Source)
         at fuego.directory.provider.DirectorySessionImpl$AccessorProxy.invoke(DirectorySessionImpl.java:756)
         at $Proxy15.fetchHumanParticipant(Unknown Source)
         at fuego.directory.project.engine.EmbeddedEngineAuthenticationAccessor.connect(EmbeddedEngineAuthenticationAccessor.java:66)
         ... 58 more</technicalInfo>
    </oens:OperationException>
    </detail>
    </S:Fault>
    </S:Body>
    </S:Envelope>
    Like I said above, it seems that BPM Studio does not recognize the default credentials user: "test" and password: "test"
    Is there anyway to change these default credentials?
    Thanks!
    Edited by: user9001687 on Feb 10, 2010 2:14 PM
    Edited by: user9001687 on Feb 10, 2010 2:16 PM

    Thanks so much Dan. I changed as you mentioned and then added WSS-Username Token as while processing BPM process as web service I have used the same opetion. Still I am getting the same error for Authorization Failure.
    SOAP Requests look like :
    <soapenv:Envelope xmlns:pps="http://bea.com/albpm/ProLogisBPM/PPSFTProcess" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Header>
    <wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
    <wsse:UsernameToken wsu:Id="UsernameToken-2" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
    <wsse:Username>Paul</wsse:Username>
    <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">Paul</wsse:Password>
    <wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">AlmoI4QkO2hp9z10BQGA0A==</wsse:Nonce>
    <wsu:Created>2010-03-17T15:48:04.843Z</wsu:Created>
    </wsse:UsernameToken>
    </wsse:Security>
    </soapenv:Header>
    <soapenv:Body>
    Adter
    <ns1:stackTrace xmlns:ns1="http://xml.apache.org/axis/">fuego.webservices.security.AuthorizationException: Authorization Failed.
         at fuego.soaptype.ProcessWebServiceAuthorization.authorize(ProcessWebServiceAuthorization.java:57)
         at fuego.soaptype.AxisSoapService$HttpBasicAuthentitcationHandler.invoke(AxisSoapService.java:888)
         at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
         at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
         at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
         at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
         at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
         at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
         at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
         at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
         at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
         at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:453)
         at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
         at fuego.soaptype.AxisSoapService.invoke(AxisSoapService.java:357)
         at fuego.soaptype.AxisSoapService.invoke(AxisSoapService.java:122)
         at fuego.webservices.HttpSoapListener.process(HttpSoapListener.java:206)
         at fuego.http.HttpExecution$1.run(HttpExecution.java:71)
         at fuego.component.Message.process(Message.java:576)
         at fuego.component.ExecutionThread.processMessage(ExecutionThread.java:780)
         at fuego.component.ExecutionThread.processBatch(ExecutionThread.java:755)
         at fuego.component.ExecutionThread.doProcessBatch(ExecutionThread.java:142)
         at fuego.component.ExecutionThread.doProcessBatch(ExecutionThread.java:134)
         at fuego.http.HttpExecution$HttpPrincipal.processBatch(HttpExecution.java:190)
         at fuego.component.ExecutionThread.work(ExecutionThread.java:839)
         at fuego.component.ExecutionThread.run(ExecutionThread.java:408)
    Caused by: java.lang.IllegalArgumentException: user: null
         at fuego.components.WebServiceSessionManager.createSession(WebServiceSessionManager.java:88)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
         at java.lang.reflect.Method.invoke(Unknown Source)
         at fuego.lang.JavaClass.invokeMethod(JavaClass.java:1410)
         at fuego.lang.JavaObject.invoke(JavaObject.java:227)
         at fuego.lang.Invokeable.invokeImpl(Invokeable.java:234)
         at fuego.lang.Invokeable.invokeDynamic(Invokeable.java:188)
         at fuego.lang.Invokeable.invoke(Invokeable.java:160)
         at fuego.fengine.FEngineWebServiceExecutor$2.execute(FEngineWebServiceExecutor.java:133)
         at fuego.server.execution.DefaultEngineExecution$AtomicExecutionTA.runTransaction(DefaultEngineExecution.java:304)
         at fuego.transaction.TransactionAction.startBaseTransaction(TransactionAction.java:470)
         at fuego.transaction.TransactionAction.startTransaction(TransactionAction.java:551)
         at fuego.transaction.TransactionAction.start(TransactionAction.java:212)
         at fuego.server.execution.DefaultEngineExecution.executeImmediate(DefaultEngineExecution.java:123)
         at fuego.server.execution.EngineExecution.executeImmediate(EngineExecution.java:66)
         at fuego.fengine.FEngineWebServiceExecutor$1.run(FEngineWebServiceExecutor.java:65)
         at fuego.component.Message.process(Message.java:576)
         at fuego.component.ExecutionThread.processMessage(ExecutionThread.java:780)
         at fuego.component.ExecutionThread.processBatch(ExecutionThread.java:755)
         at fuego.component.ExecutionThread.doProcessBatch(ExecutionThread.java:142)
         at fuego.component.ExecutionThread.doProcessBatch(ExecutionThread.java:134)
         at fuego.fengine.FEngineProcessBean.processBatch(FEngineProcessBean.java:244)
         at fuego.fengine.FEngineWebServiceExecutor$WebServiceExecutorPrincipal.processBatch(FEngineWebServiceExecutor.java:168)
         ... 2 more
    Caused by: fuego.directory.AuthenticationException: Login incorrect.
    Detail:Verify that the information provided is correct.
    If you cannot solve the problem, check with your administrator.
    ID [default] PARTICIPANT [null] REASON [participant is empty].
         at fuego.directory.AuthenticationException.error(AuthenticationException.java:50)
         at fuego.directory.AuthenticationException.participantIdIsWrong(AuthenticationException.java:94)
         at fuego.components.WebServiceSessionManager$SessionImpl.&lt;init>(WebServiceSessionManager.java:220)
         at fuego.components.WebServiceSessionManager.createSession(WebServiceSessionManager.java:79)
         ... 26 more</ns1:stackTrace>
    Any help or guiding pointer would be deeply appreciated. TIA

  • Using Flex Fields in BPM worklist

    Hi,
    Am trying to use flexfileds in BPM worklist so that I can have additional attributes from the payload associated from the humantask type , in the task header that appears in home page.
    Am able to create new label and then tried following steps :-
    1. Clicked Edit mappings by task type and selected my task type whose payload attributes are required to be mapped with the flex fields.
    2. The value "default/sampleta!1.0*soa_b4396581-d005-4374-be29-5cd725c3e134/Humantask" gets populated in the fields "Edit mappings by task type".
    3. However , it shows the message "There are no simple Payload Attributes associated with this TaskType".
    I thought that I need to make use of Mapped Attributes section in the Data tab found in humanworkflow task . However when I tried adding attribute there it showed me following error message :-
    Error in workflow service Web service operation invocation.
    Error in workflow service Web service operation invocation. The error is ORA-30501:Error in authenticating user.
    Error in authenticating and creating a workflow context for user jazn.com/dev_soa_admin.
    Verify that the user credentials and identity service configurations are correct.
    Verify that the SOAP connection information for the server is correct.
         at oracle.bpel.services.workflow.query.client.TaskQueryServiceSOAPClient.convertSOAPFaultException(TaskQueryServiceSOAPClient.java:242)
         at oracle.bpel.services.workflow.query.client.TaskQueryServiceSOAPClient.invoke(TaskQueryServiceSOAPClient.java:203)
         at oracle.bpel.services.workflow.query.client.TaskQueryServiceSOAPClient.authenticate(TaskQueryServiceSOAPClient.java:253)
         at oracle.bpel.services.workflow.query.client.AbstractDOMTaskQueryServiceClient.authenticate(AbstractDOMTaskQueryServiceClient.java:167)
         at oracle.bpel.services.workflow.query.client.AbstractDOMTaskQueryServiceClient.authenticate(AbstractDOMTaskQueryServiceClient.java:185)
         at oracle.tip.tools.ide.pm.modules.humanworkflow.task.taskflow.wizard.lookup.LookupUtil.listAttributeLabels(LookupUtil.java:436)
         at oracle.tip.tools.ide.pm.modules.humanworkflow.task.taskflow.wizard.lookup.LookupUtil.listProtectedAttributeLabels(LookupUtil.java:406)
         at oracle.tip.tools.ide.pm.modules.humanworkflow.task.taskflow.wizard.lookup.LookupDataProviderImpl.handleFlex(LookupDataProviderImpl.java:105)
         at oracle.tip.tools.ide.pm.modules.humanworkflow.task.taskflow.wizard.lookup.LookupDataProviderImpl.getResult(LookupDataProviderImpl.java:38)
         at oracle.tip.tools.ide.workflow.api.FlexFieldDetailsPanel.initializeAttributeCombo(FlexFieldDetailsPanel.java:175)
         at oracle.tip.tools.ide.workflow.api.ConnectionComponent._applicationServerChanged(ConnectionComponent.java:350)
         at oracle.tip.tools.ide.workflow.api.ConnectionComponent.access$1000(ConnectionComponent.java:60)
         at oracle.tip.tools.ide.workflow.api.ConnectionComponent$1.run(ConnectionComponent.java:361)
         at java.lang.Thread.run(Thread.java:619)
    ORABPEL-30044
    I have couple of questions :-
    1. For the payload attribute to appear in the BPM worklist sreen while mapping for the flex field , I understand that it should be of simple type . My payload looks like this :-
    <ns:employees>
    <ns:employee>
    <ns:name>John</ns:name>
    <ns:age>37</ns:initiator>
    <ns:salary>20000</ns:salary>
    </ns:employee>
    </ns:employees>
    I expected name , age , salary to appear in BPM worklist for mapping after I select task type against "Edit mappings by task type" while doing flex field mapping however it is showing me : There are no simple Payload Attributes associated with this TaskType
    2. Please advise if I need to anything extra like adding mapped attributes (in Data section of Humantask) or Collections in Task parameter window .
    Can anyone please help me on this .
    Thanks in advance !

    Are you sure the xml is correct here:
    <ns:employee>
    <ns:name>John</ns:name>
    <ns:age>37</ns:initiator>
    <ns:salary>20000</ns:salary>
    </ns:employee>
    It should be <ns:age>37</ns:age>, I believe.
    I have a xsd definition like this:
    <element name="loanApplication">
    <complexType>
    <sequence>
         <element name="SSN" type="string"/>
         <element name="email" type="string"/>
         <element name="customerName" type="string"/>
         <element name="customerAge" type="int"/>
         <element name="customerAnnualIncome" type="double"/>
         <element name="city" type="string"/>
         <element name="state" type="string"/>
         <element name="country" type="string"/>
         <element name="loanAmount" type="double"/>
         <element name="carMake" type="string"/>
         <element name="carModel" type="string"/>
         <element name="carYear" type="string"/>
         <element name="creditRating" type="int"/>
         <element name="creditRisk" type="string"/>
         <element name="creditMaxAmount" type="double"/>
    </sequence>
    </complexType>
    </element>
    And I am able to do the mapping without any issues.

  • Using Error Message in BPM Error Handling Branch

    Hello,
    I closed the old BPM thread not to mix up different questions.
    As I found out now a synchronous Send Step with Eror handling branch is working fine to directly handle errors.
    As in the send step there could be several errors possible, e.g. XML validation fails, error in communication channel etc.
    Is it possible to have access to the error message that can be seen in monitoring and use this as input parameter for message mapping for example?
    Would be helpful because otherwise I just would be able to send back a generic error message to the sender.

    Hii Florian,
    Adapter module can only provide information about the failures in Adapters.
    But other failures like XML Validations, can be informed depending on the mode of Validation.
    As per help.sap.com
    You can perform the structure check at the following points in PI message processing:
    ●      Validation in the sender adapter
    If the sender adapter has created the PI message, you can then perform the validation of the PI payload. If the structure of the payload differs from the definition of the data type provided for comparison, message processing is stopped. The adapter sends a synchronous response to the sender of the message, informing it about the structure error. The industry-specific adapters inform the sender asynchronously, as required by the RNIF protocol and the CIDX protocol.
    ●      Validation in the Integration Engine
    In inbound and outbound processing, *validation of the PI message payload takes place as a pipeline step *of the Integration Engine. If the structure of the message payload does not match the saved definition of the data type, an error description is generated. The error description contains status information and a list of all structure errors. Message processing is stopped. The message is set to error status and an error report is saved.
    If validation takes place in the Integration Engine, the sender of the message is not automatically informed of the structure error. The message is set to error status and an administrator can process the message further using the Runtime Workbench.
    So if you use XML Validation in Sender Adapter you can get back the Exception ( i think you need to do some java mapping here). Else if you are using Integration Engine, then alerts are there for them.
    Anyway this discussion has opened a lot of To Be Explored area for me. I will keep looking for them.
    Regards
    Suraj

  • Alert using Dynamic text in BPM.

    Hi,
    I am using dynamic text function in alrtcatdef transaction for raising an alert using BPM.
    But in the alert inbox I am not getting the an alert error message which is passed to alert catagory in control step of BPM. Can anyone please let me know what may be the possible solution of it.
    I have done the below configuration:
    Configuration done in Alrtcatdef transaction:
    Created an alert catagory
    assigned the fixed recipient
    click the dynamic text button in alert catagory property.
    Configuration done in BPM:
    Used the Control step.
    given the Alert catagory name,action and the alert error message.
    Please let me know the solution soon.
    Thanks and Regards,
    Sandeep.

    HI Bhavesh,
    I have referred the michal weblog and I have done the same step except the container operation step.
    My requirement was to send the hard coded error message to the alert catagory so I didnt used the container operation step.
    In the Control step I have hard coded my error message.
    But still it is not showing in my alert inbox.
    Can you please let me know is there any other settings needs to be done.
    Thanks and Regards,
    Sandeep.

  • Message splitting using java mapping and BPM

    Hi all,
    I have a PLAIN FILE to IDOC Scenario.
    We decide to use javamapping instead of message mapping because we have several hierachical structures.
    We has more than one IDOC for file. And the mapping it's unable to detect the another header and create it at XI.
    I had seen:
    /people/michal.krawczyk2/blog/2005/12/04/xi-idoc-bundling--the-trick-with-the-occurance-change
    "XI: IDOC bundling - the "trick" with the occurance change"
    But the problem it's we doesn't use mapping programs, so we can't apply to this case.
    So now i need to create a BPM scenario for resolve this issue. Anyone knows any example for split the income message and send any idocs to destination?
    Thanks in advance,

    IT WORKED !!!!
    The only thing it's at out code line we must improve it in another way.
    For everyone who needs to resolve, i copy the code line of the java mapping program.
    The relationship is from the specific mapping for every scenary calling GenToHierMap.
    0.0.0.0.0.0.0.0.0.0.0.0.1. GENERIC PACKAGE (GenToHierMap)
    0.0.0.0.0.0.0.0.0.0.0.0.2.
    package com.sap.javaMapping;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.util.Map;
    import java.util.Vector;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.transform.Transformer;
    import javax.xml.transform.TransformerFactory;
    import javax.xml.transform.dom.DOMSource;
    import javax.xml.transform.stream.StreamResult;
    import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    import org.w3c.dom.Node;
    import org.w3c.dom.NodeList;
    import org.w3c.dom.Text;
    import com.sap.aii.mapping.api.StreamTransformation;
    public class GenToHierMap
         private Element root, idoc;
         private Element nodeArrayRef[];
         private String nodeArrayTagName[];
         private Relation  rel ;
         private int  stack_count ;
         private String nameSpace;
         private String separator="#!";
         protected String msgName;
         GenToHierMap(InputStream in, OutputStream out,Vector v1,String msgName1,String nameSpace1)
         msgName = msgName1;
         nameSpace = nameSpace1;
         rel = new Relation(v1);
         execute(in,out);
        public void execute(InputStream in, OutputStream out)
              Element e ;
              Relation cur_rel;
              DOMSource domS = null;
              Element keyNodeParent;
              //int numdocs;
              try
                           DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
                           factory.setNamespaceAware(true);
                             TransformerFactory tf = TransformerFactory.newInstance();
                             Transformer transform = tf.newTransformer();
                             // Create DOM structure from input XML
                             DocumentBuilder builderel = factory.newDocumentBuilder();
                             Document docIn = builderel.parse(in);
                            NodeList rows = docIn.getElementsByTagName("ROW");
                            nodeArrayTagName = new String[rows.getLength() + 1];
                            nodeArrayRef = new Element[rows.getLength() + 1];
                             Document docOut = builderel.newDocument();
                             root = docOut.createElement(msgName);
                             docOut.appendChild(root);
                             //idoc = docOut.createElement("IDOC");
                             //root.appendChild(idoc);     
                            //Número de documents inicialitzat a 0
                            //numdocs=0;
                            //Per cada filera ROW
                       for (int count=0;count<rows.getLength();count++)
                                  String dataRecord = "";
                                  Node node = rows.item(count);
                                  node = node.getFirstChild();
                                  dataRecord = node.getNodeValue();
                                  String fieldValue [] = dataRecord.split(separator);
                                  //Cada cop que es troba una nova capçalera es crea un nou document.
                                  //Això permet que hi hagi més d'un IDOC per missatge processat.
                                  if (Integer.valueOf(fieldValue[0]).intValue()==1){
                                       //numdocs = numdocs + 1;
                                       //if (numdocs > 1){
                                            //Es dona sortida al document anterior abans de crear-ne un de nou - BE AWARE BECAUSE IN THE NEXT LINES WE DEFINE THE UNBOUNDED IDOC ATTRIBUTE, WITH BEGIN = 1 ****
                                            //transform.transform((domS),new StreamResult(out));
                                            //docOut = builderel.newDocument();
                                            //root = docOut.createElement(msgName);
                                            //docOut.appendChild(root);
                                            idoc = docOut.createElement("IDOC");
                                            idoc.setAttribute("BEGIN","1");
                                            root.appendChild(idoc);     
                                  cur_rel = (Relation) rel.v.get(Integer.valueOf(fieldValue[0]).intValue());                    
                                  String keyId = cur_rel.node;
                                  keyNodeParent = searchNode(keyId);
                                  nodeArrayTagName[count] = keyId;
                               e = docOut.createElement(keyId);
                                  e.setAttribute("SEGMENT",fieldValue[0]);
                               nodeArrayRef[count]= e;
                              keyNodeParent.appendChild(e);
                              createXmlTree(docOut,e,keyId,fieldValue);
                              domS = new DOMSource(docOut);
                              stack_count = stack_count + 1;
                         transform.transform((domS),new StreamResult(out));
           catch (Exception t)
                  t.printStackTrace();
    return;
    //returns the parent of the given node
    private Element searchNode(String keyId)
         Relation cur_rel;
         for (int i=0;i<rel.v.size();i++)
              cur_rel = (Relation) rel.v.get(i);
              if (cur_rel.node.equals(keyId))
                     for (int j=0;j<cur_rel.parents.length;j++)
                              if (cur_rel.parents[j].equals("NULL")) return root;
                              if (cur_rel.parents[j].equals("IDOC")) return idoc;
                               for (int k=(stack_count-1);k>=0;k--)
                                   for (int p=0;p<cur_rel.parents.length;p++)
                                       if (nodeArrayTagName[k].equals(cur_rel.parents[p]))
                                       return nodeArrayRef[k];
    return null;
    //Creates all the elements of the given node
    private void createXmlTree(Document docOut,Element node,String keyId, String fieldValue[])
          Element tagName;
          Text tagValue;
          Relation cur_rel;
          for (int i=0;i<rel.v.size();i++)
                     cur_rel = (Relation) rel.v.get(i);
                     if (cur_rel.node.equals(keyId))
                        for (int j=1;j<cur_rel.elements.length;j++)
                           tagName = docOut.createElement(cur_rel.elements[j]);
                           node.appendChild(tagName);
                           if ( j < fieldValue.length  && fieldValue[j].length() != 0 )
                           if ( fieldValue[j].substring(0,1).equals("""))
                           if ( fieldValue[j].length() > 2 )
                           fieldValue[j] = fieldValue[j].substring(1,( fieldValue[j].length() - 1 ));
                           else
                           fieldValue[j] = new String ();
                           if ( j >= fieldValue.length )
                           tagValue = docOut.createTextNode(new String());
                           else
                           tagValue = docOut.createTextNode(fieldValue[j]);
                           tagName.appendChild(tagValue);
                        return;
    //Main thread of execution
    0.0.0.0.0.0.0.0.0.0.0.0.1. SPECIFIC ONE
    0.0.0.0.0.0.0.0.0.0.0.0.2.
    package com.sap.javaMapping;
    * Mapping Program to Convert NOM IDOC Master Structure to the Generic structure Expected by
    * the FTP Receiver adapter
    import com.sap.aii.mapping.api.*;
    import java.io.*;
    import java.util.Map;
    import java.util.Vector;
    import javax.xml.parsers.*;
    import javax.xml.transform.*;
    import javax.xml.transform.dom.DOMSource;
    import javax.xml.transform.stream.StreamResult;
    import org.w3c.dom.*;
    import org.xml.sax.*;
    //Specify the Hirearchial Structure
    public class INT938_mapping implements StreamTransformation
         public Vector v;
        private Map map;
        /** * method setParamters is required, but we do not anything with it */
         public void setParameter(Map param)
              map = param;
         } /** * method execute is called by the XI mapping program */
    public void buildXsd()
      Relation  mriRel ;
      v = new Vector();
      /* INICI MODIFICACIÓ ESTRUCTURA DE SORTIDA DEL MAPPING */
      // --> TOCAR AQUEST NODE IMPLICA MODIFICAR EL CÒDI!!!
      mriRel = new Relation();
      mriRel.parents = new String[1];
      mriRel.node =  "IDOC" ;
      mriRel.parents[0] =   "NULL" ;
      v.add(mriRel) ;
      /* ESTRUCTURA DEL IDOC DE SORTIDA */
      //NODE - 01
      mriRel = new Relation();                          
      mriRel.parents = new String[1];                                                    
      mriRel.elements = new String[22];                                                                 
      mriRel.node = "E1BPEBANC";                                    
      mriRel.parents[0]   =   "IDOC";                                              
      mriRel.elements[0]  =   "SEGMENT";   
      mriRel.elements[1]  =   "PREQ_ITEM"; 
      mriRel.elements[2]  =   "DOC_TYPE";  
      mriRel.elements[3]  =   "PUR_GROUP"; 
      mriRel.elements[4]  =   "CREATED_BY";
      mriRel.elements[5]  =   "PREQ_NAME"; 
      mriRel.elements[6]  =   "PREQ_DATE"; 
      mriRel.elements[7]  =   "SHORT_TEXT";
      mriRel.elements[8]  =   "MATERIAL";  
      mriRel.elements[9]  =   "PLANT";     
      mriRel.elements[10] =   "STORE_LOC";
      mriRel.elements[11] =   "TRACKINGNO";
      mriRel.elements[12] =   "MAT_GRP";   
      mriRel.elements[13] =   "QUANTITY";  
      mriRel.elements[14] =   "UNIT";      
      mriRel.elements[15] =   "DELIV_DATE";
      mriRel.elements[16] =   "ACCTASSCAT";
      mriRel.elements[17] =   "DES_VENDOR";
      mriRel.elements[18] =   "PURCH_ORG"; 
      mriRel.elements[19] =   "BATCH";     
      mriRel.elements[20] =   "VEND_MAT";  
      mriRel.elements[21] =   "CURRENCY";
      v.add(mriRel) ; 
      //NODE - 02
      mriRel = new Relation();                                   
      mriRel.parents = new String[1];                                                    
      mriRel.elements = new String[2];                                                                  
      mriRel.node = "Z1SOLCOM";                                    
      mriRel.parents[0]  =   "E1BPEBANC";                                                     
      mriRel.elements[0] =   "SEGMENT";  
      mriRel.elements[1] =   "ZPO_NUMBER";
      v.add(mriRel) ;
      //NODE - 03
      mriRel = new Relation();                                   
      mriRel.parents = new String[1];                                                    
      mriRel.elements = new String[3];                                                                 
      mriRel.node = "E1BPEBKN";                                    
      mriRel.parents[0]  =   "IDOC";                                                   
      mriRel.elements[0] =   "SEGMENT";
      mriRel.elements[1] =   "PREQ_ITEM";   
      mriRel.elements[2] =   "COST_CTR";
      v.add(mriRel) ;
      //NODE - 04
      mriRel = new Relation();                                   
      mriRel.parents = new String[1];                                                    
      mriRel.elements = new String[8];                                       
      mriRel.node = "Z1SOLRES";                                    
      mriRel.parents[0]  =   "E1BPEBKN";                                                   
      mriRel.elements[0] =   "SEGMENT";            
      mriRel.elements[1] =   "DADES_PACIENT";      
      mriRel.elements[2] =   "NOHIS";              
      mriRel.elements[3] =   "ZNINTER";            
      mriRel.elements[4] =   "ZFEIMP";             
      mriRel.elements[5] =   "NMPAC";              
      mriRel.elements[6] =   "ZNLOTE";             
      mriRel.elements[7] =   "ZNSERIE";            
      v.add(mriRel) ;
      /* FI    MODIFICACIÓ ESTRUCTURA DE SORTIDA DEL MAPPING */
    public void execute(InputStream in, OutputStream out) throws com.sap.aii.mapping.api.StreamTransformationException
         INT938_mapping rel = new INT938_mapping();
         rel.buildXsd();
         new GenToHierMap(in,out,rel.v,"ZPREEX01","http://namespace1/namespace");
    public static void main (String[] args) throws Exception
              try
                   INT938_mapping rel = new INT938_mapping();
                   FileInputStream in = new FileInputStream ("C:/DOM_IN.xml");
                   FileOutputStream out = new FileOutputStream ("C:/DOM_OUT.xml");
                   rel.buildXsd();
                   new GenToHierMap(in,out,rel.v,"ZPREEX01","http://namespace1/namespace");
              }catch(Exception e) {e.printStackTrace();}
    //Transformation of flat structure to hirearchial structure
    Any issue you can contact me. Best regards and reward points !

  • How to use Parametric Roles in BPM 11g ?

    Hi Experts,
    How do I use the "parametric roles" in the Oracle BPM 11g?
    I want to use this concept of subroles but could not do this in the BPM 11g.
    Has anyone used and can help me or pass me an example?
    Thanks.
    Leo.
    Edited by: user13269730 on 07/06/2010 13:21

    Ditto here too... looking for an example of how to set this up.
    Here is a scenario:
    I have multiple application roles setup:
    PM - city a (bunch of users)
    PM - city b (bunch of users)
    PM - city c (bunch of users)
    PM - all (has all 3 PM roles and is used as the security to the swimlane).
    I have a business requirement where the PMs (Project managers) should only be able to see and do work ONLY for their city. I have a metadata of 'city' but don't know how to setup an assignment based on this in the human task.
    How does one setup a complex task?

  • Spliting files based on condition using multi mapping with BPM

    Hi All,
    Can any one please let me know How to <b>Splite the outbound records based on condition using multi mapping with Integration Process in BPM</b>?
    Thanks
    Govindu.

    Hi All,
    Sorry for mistake this question for Exchange infrastructure guys.
    Thanks,
    Govindu

  • Posting a File with Date Time using FTP in a BPM scenario

    Hi All,
      I have got a following requirement within the BPM ::-
    Step 1: We receive a file from an external system using FTPS with File Content Conversion Mode. The file is a comma separated file.
    Step 2 : We need to write the same file without any changes in data elements to another File System. The file to be written will be comma separated.
    Step 3 : The data will be mapped to an RFC and there will be a RFC Call to the ECC system.
    Step 4 : On successful call to RFC, the file will be dumped into the SAP File system also.
    The issue here is in Step 2. The additional requirement for Step 2 is to name the file with the following convention -
    ABCDEF_<Date in MMDDYYYY>_<Time in HHMMSS>_<Time in ms>_data.txt
    Can you help me on how to configure this from within the BPM ? I have seen blogs and replies in forum on using UDF's for the same. I am not sure on how to do this in BPM.
    Please help !!!
    Thanks,
    Amit

    Hi,
    I dont think you required BPM in this case,you can achieve this requirement using Multi mapping.
    3 Receive comunication channels
    1)to send file to receive File directory9Content conversion required)
    2)RFC Receiver Communication channel to make a cal to SAP ECC to send RFC..
    3)One more File communication channel to send data to SAP File System.
    refer below blog.
    /people/jin.shin/blog/2006/02/07/multi-mapping-without-bpm--yes-it146s-possible
    Regarding r file name use dynam ic configuration UDF or ASMA to chnage file name format to your desired format,if you decided to use UDF then map root nod of receiver file structure in multimapping.
    Regards,
    Raj

  • Download runtime version of rule used and create in bpm process

    Dear experts,
    does anybody know, if there is a possibility of updating used brm rules used in a bpm process? There seems to be a way, when you create a separate brm project:
    Importing an Updated Project into the Rules Composer - Working with the Rules Manager - SAP Library
    How does this work for rules coming from bpm?
    Do i really have to manually export and import things e. g. over excel for this?
    Regards,
    Markus

    Dear Siddhant,
    thanks a lot for your reply. You got it perfectly right.
    What do you mean with "always points to the updated rules"?
    Do you mean, that using the "Download runtime version" feature on the brm project helps us to keep the rule up-to-date within NWDS?
    Regards,
    Markus

  • Use of Containers in BPM

    hey guys
    wats the main use of container elements in BPM,i know they are used as variables to store value during the design time but wat purpose they serve by storin values,also do we need to have separate containers for every step in BPM?
    thanx
    ahmad

    Ansari,
    To describe which data a container can hold at runtime, of which type and under which ID, the container must first be defined. This container definition defines which container elements a container holds.Also container element is a step by itself. We dont need to have separate containers for every step. It depends upon your requirement. You can use the same container element in different steps.
    Go through this help:
    http://help.sap.com/saphelp_nw2004s/helpdata/en/c5/e4b06d453d11d189430000e829fbbd/frameset.htm
    http://help.sap.com/saphelp_nw2004s/helpdata/en/a6/9bac935f2c11d194a40000e82dec10/content.htm
    http://help.sap.com/saphelp_nw2004s/helpdata/en/78/62373f58502e48e10000000a114084/content.htm
    ---Satish

Maybe you are looking for

  • How to export data from one DB to another?

    Hi everyone, I have 2 oracle db A and B. And I want to transfer data from table aa in A to table aa in B. These 2 tables have the identical structure. How can I do it? Thanks. Houmin

  • ASCII to EBCDIC conversion

    Hi there! I am working on an Oracle data extract project. My output file will send to a DB2 database and a mainframe application. In my file, some fields' type is COMP-3. I use Oracle build-in function convert () to convert to EBCDIC. This works fine

  • I cant open ITunes because of QuickTime

    Hi, I am really hoping someone can help me! I cant open ITunes, every time I try a message pops up stating 'Itunes requires QuickTime 7.5.5 or later' but i have now downloaded QuickTime and installed 3 times and it still isnt working! Please help com

  • Any idea when Apple will have a raw converter for the fuji x10

    Any idea when Apple will have a raw converter for th eFuji X10. Might have to switch to Lightroom!

  • Finding the right computer

    I'm not that knowledgable on laptops and I'm looking to purchase one where do I start?