How to Restrict the Message Processing Before IE

Hello Experts,
I have a specific business requirement for one of my interfaces.
It looks like: 3rd party -
> WMQ -
>PI
Example: 3rd party sends 3 (Header, detail and Trailer) messages WMQ and MQ processes these 3 messages one by one through specific Queue.
TO be approach: We have to ignore Header and Trailer messages before processing through Integration Engine as it does not contain any business data, we should only process the Detail message to the receiver.
Message 1 Header:
<FIData>
     <detail>
          <HeaderReference/>
          <PostingItem>
               <ProfitCentre/>
               <CostCentre/>
               <RunDate>TOTAL NUMBER OF RECORDS SENT 4</RunDate>
               <Description/>
               <Assignment/>
               <CalculateTaxBase/>
          </PostingItem>
     </detail>
<FIData>
Message 1 Detail:
<FIData>
     <detail>
          <HeaderReference>483061</HeaderReference>
          <PostingItem>
               <ProfitCentre>AU21</ProfitCentre>
               <CostCentre/>
               <RunDate>20090512</RunDate>
               <Description>9587531|57372.000|41348.00|.00</Description>
               <Assignment/>
               <CalculateTaxBase/>
          </PostingItem>
     </detail>
<FIData>
Message 1 Trailer:
<FIData>
     <detail>
          <HeaderReference/>
          <PostingItem>
               <ProfitCentre/>
               <CostCentre/>
               <RunDate>COCS</RunDate>
               <Description/>
               <Assignment/>
               <CalculateTaxBase/>
          </PostingItem>
     </detail>
<FIData>
Note: Structures of 3 messages is same, and remember these 3 are individual messages and the runDate values in header and trailer messages will not have any impact on business.
Valuable inputs are much appreciated!!
Receiver is same(only one).
Regards,
Raj

You can use message selector feature of JMS adapter: The adpater only pick up certain messages that has particular value of a attribute.
You have to work with your MQ consultant, when publish the publish the message into the queue, they can set the value of attribute.
Please refer my wiki:
Usage of Message Selector for JMS Sender Adapter
https://www.sdn.sap.com/irj/scn/wiki?path=/display/xi/usage%252bof%252bmessage%252bselector%252bfor%252bjms%252bsender%252badapter
Regards.
Liang

Similar Messages

  • How to restart the Successfully processed messages

    Hi,
    I have IDOC to File Scenario
    we posted the idoc from R/3 and it has processed successfully.
    Now again i want to process that idoc again with out going to R/3.
    How to restart the Successfully processed message from MONI.
    we have one option in MONI Restart. this is not working for Successfully processed messages.
    How to achieve this
    Regards
    Suman

    Hello Suman..
    XI: Restarting successfully processed messages..
    Go through this : Michal Krawczyk Blog This will really helpful to you..
    /people/michal.krawczyk2/blog/2005/11/09/xi-restarting-successfully-processed-messages
    Reward Points If it is Helpful...
    Thanks,
    Satya Kumar..

  • How to restrict the GR for Production Order when Goods Issue is not done

    Hi Gurus
    How to restrict the GR for Production Order when all the required components for production order are not issued with all required quantity. Even for partial issue system should not allow GR with 101. The user status with RMWA, RMWF & CGFB is not working.
    Pls suggest best solution.
    Abhijit.

    Hi,
    You can club together the GI nad GR at the time of confirmation..
    I.e Backflush for the components and auto GR for the Product.
    So that you can stream line the Process.
    The best Option would be to use the User Exit:
    Enhancement - MBCF0002
    Functional Module - EXIT_SAPMM07M_001
    Include - ZXMBCU02
    Refer below link for further details..
    How to stop the goods receipt before issueing the goods for production orde
    Regards,
    Siva

  • How to restrict the changes in Relesed PO?.

    Hi all,
    How to restrict the users to make a changes in the Released PO?. User should make the changes only if it is unreleased by the respective codes.
    1. Is there any user parameters like functional authorisation?
    2. I have already suggested two solutions to the clients that
        1. To restrict the authorisation of TCodes ME22n at the user level, but it's not a suitable solution, if user want to make any changes before releasing, then system is not allow to do the changes.
        2. I have made release indicator as a 1 - not changeable if it is released, in release strategy settings. But the system is not allowing the all the users including release codes to make the changes?.
    If there is any solution, please reply immediately.
    with regards,
    Raja.

    hi,
    if u set release indicator 1, after release is taken place, for any changes, u need to revoke the release. and then change the PO.
    even u cant directly block the changes to already released PO, because, in future if at all qty or some changes is required to change, it should allow u to change!

  • How to restrict the duplicate values in lov column of VO based Adv Table

    Hi Gurus,
    I want to restrict the duplicate values at lov which is a colunm in an Adv Table.
    If user enters duplicate values then first it should show an error msg that Duplicate values have been entered.
    After the duplicate values have been removed, then the user can save all the values in the table.
    My Adv Table is based on a VO.
    The link how to restrict the duplicate values at form level
    talks about Adv Table based on a EoVO, which doesnot work in my case.
    My Approach,
    I am iterating through RowSetIterator and committing through PROCEDURE.
    I am able to avoid duplicate entry through a function checkRespId. (given below)
    Below code is for iterating and committing.
    public void saveline(String reqid,String userid)
    System.out.println("RequestId/saveline"+reqid);
    System.out.println("UserId/saveline"+userid);
    OAViewObject vo = (OAViewObject)getRespLineVO1();
    RespLineVORowImpl row = null;
    int fetchedRowCount = vo.getFetchedRowCount();
    RowSetIterator deleteIter = vo.createRowSetIterator("deleteIter");
    if (fetchedRowCount > 0)
    deleteIter.setRangeStart(0);
    deleteIter.setRangeSize(fetchedRowCount);
    for (int i = 0; i < fetchedRowCount; i++)
    System.out.println("Inside the for LOOP");
    row = (RespLineVORowImpl)deleteIter.getRowAtRangeIndex(i);
    String respoidid = row.getAttribute("ResponsibilityId")+"";
    String respname = row.getAttribute("ResponsibilityName")+"";
    String stdate = row.getAttribute("StartDate")+"";
    String enddate = row.getAttribute("EndDate")+"";
    String linestatus ="A";
    if(userid!=null)
    if(!(respoidid.equals("null")) && respoidid!=null)
    String checkingrespid=null;
    checkingrespid = checkRespId(userid,respoidid);+contains no if not duplicate and yes if its duplicate+
    System.out.println("checkingrespid for Resp with ID :"+respoidid+"exists or not "+checkingrespid);
    if(checkingrespid.equals("No"))
         String message, result = null;
    Connection txn = getOADBTransaction().getJdbcConnection();
    try
    calling PROC ...
    catch(Exception e)
    message = "Error in Inserting into line" + e;
    throw new OAException(message, OAException.ERROR);
    else
    throw new OAException("You have entered duplicate no. of values", OAException.ERROR);
    else
    System.out.println("respoidid is null");
    break;
    deleteIter.closeRowSetIterator();
    public String checkRespId(String userid,String respoidid)
    String createRow="No";
    OAViewObject vo = (OAViewObject)findViewObject("CheckRespVO1");
    if (vo != null)
    vo.setWhereClauseParams(null);
    vo.setWhereClauseParam(0, userid);
    vo.setWhereClauseParam(1, respoidid);
    vo.executeQuery();
    System.out.println("ROW COUNT IS "+vo.getRowCount());
    if(vo.getRowCount()>0)
    createRow="Yes";
    else
    createRow="No";
    return createRow;
    Problem:
    I remove the duplicate entries and click on save and get this error.
    Unable to perform transaction on the record. \nCause: The record contains stale data. The record has been modified by another user.
    \nAction: Cancel the transaction and re-query the record to get the new data.
    Thanks,
    Sombit

    Hi Anil,
    I am trying out your code but stuck in inserting the rows
    using your code in URL: http://oracleanil.blogspot.com/2010/09/oaf-passing-table-type-object-to-oracle.html
    I am always getting the same exception i.e COde blast in when I run.
    My modified code is:
    String[] as = null;
    Number[] vNumber = null;
    Number[] vNumberrespid = null;
    Number reqidnumber = null;
    reqidnumber = new Number(Integer.parseInt(reqid));
    Connection txn = getOADBTransaction().getJdbcConnection();
    String mCreateSearchRequestStatement = null;
    OAViewObject vo = (OAViewObject)findViewObject("RespLineVO1");
    int j = vo.getFetchedRowCount();
    try
    System.out.println("abouce try");
    vo.reset();
    if (vo.getFetchedRowCount() > 0)
    System.out.println(String.valueOf("Fetched row count ").concat(String.valueOf(vo.getFetchedRowCount())));
    int i = 0;
    as = new String[j];
    vNumber = new Number[j];
    vNumberrespid = new Number[j];
    while (vo.hasNext())
    vo.next();
    System.out.println(String.valueOf("Inisde the do while loop").concat(String.valueOf(i)));
    vNumber[i] = (reqidnumber);
    vNumberrespid = ((Number)vo.getCurrentRow().getAttribute("ResponsibilityId"));
    as[i] = String.valueOf(vo.getCurrentRow().getAttribute("ResponsibilityName")).concat(String.valueOf(""));
    System.out.println("Request ID "+reqidnumber[i]);//getting null even there is some value selected
    System.out.println("ResponsibilityId "+vNumberrespid[i]);//getting null even there is some value selected
    System.out.println("Resp Name "+as[i] );//getting null even there is some value selected
    i++;
    CallableStatement cs = txn.prepareCall("{call XX_PassTableType.XX_PassTableType_prc(:1, :2,:3)}");
    ARRAY array = new ARRAY(new ArrayDescriptor("APPS.JTF_NUMBER_TABLE", txn), txn, vNumber);
    ARRAY arraynew = new ARRAY(new ArrayDescriptor("APPS.JTF_NUMBER_TABLE", txn), txn, vNumberrespid);
    ARRAY array1 = new ARRAY(new ArrayDescriptor("APPS.JTF_VARCHAR2_TABLE_100", txn), txn, as);
    cs.setArray(1, array);
    cs.setArray(2, arraynew);
    cs.setArray(3, array1);
    cs.registerOutParameter(3, 2003, "JTF_VARCHAR2_TABLE_100");
    cs.execute();
    ARRAY error = null;
    error = (ARRAY)cs.getArray(2);
    if ((error != null) && (error.length() > 0))
    System.out.println(String.valueOf("Error is ").concat(String.valueOf(error.getArray())));
    String[] retError = new String[j];
    retError = (String[])error.getArray();
    System.out.println(String.valueOf("Error in saving data").concat(String.valueOf(retError[0])));
    cs.close();
    catch (Exception exception)
    throw new OAException("code blast", OAException.ERROR);
    Thanks,
    Sombit

  • How to restrict the delivery quantity not more than target quantity?

    Dear Gurus,
    How to restrict the delivery quantity not more than target quantity in a scheduling agreement? I think there are 2 methods.
    1. I found that setting 0 in Overdelivery Tolerance Limit in Info Record is not effective. Why?
    2. I want to set E for the message but can't find the place. The message is generated when entering and saving quantity as delivery quantity that is larger than target quantity. How can I set E to a message (067, as I remember)
    Any other effective method? Please advice. Thanks.
    Regards,
    David

    Dear all,
    It is not OK after checking everywhere you mentioned. I tested in 2 clients. In the development enviroment client, it works whatever E or W. In test enviroment, it does not work (meassge is W).
    I think there must be somewhere besides of those you menetioned.
    I notes that SAP help for the overdelivery tollerance setting of scheduling agreement: 
    Overdelivery Tolerance Limit
    Percentage (based on the order quantity) up to which an overdelivery of this item will be accepted.
    Dependencies
    If you have set the indicator in the Partial delivery/Item field to 'D' (partial delivery allowed), this takes priority. It makes no sense to define a tolerance limit for overdelivery in such case.
    Where can I see: 'the indicator in the Partial delivery/Item field to 'D' (partial delivery allowed)'? I want to check it.
    Pls help! Thanks.
    Regards,
    David

  • How to restrict the quantity & rate of MIRO with MIGO and PO

    Hi friends,
    Can any body tell me how to restrict the quantity & rate of MIRO with MIGO and PO.
    e.g. if we have done MIGO for quantity 10 and the rate maintained in the PO is Rs.100.Then at the time of MIRO system should not allow to change the quantity and rate.
    How we can do this?
    Regards  
    Purnesh Sharma

    Hi,
    You are misunderstanding the use of MIRO.
    If you change the details in MIRO you are NOT changing anything. You are just entering the price and quantity from the Invoice.
    If this price and or qty is different from the GR aqty and PO price then the system will block the invoice for payment (and it can issue messages toinform the buyer if configured correctly).
    The whole design of MIRO is based on the principle that you enter EXACTLY what the vendor has put on the invoice. By preventing the users from changing anything you will get NO mismatched invoices, but you will not be paying the vendor the amount specified on their invoice. This will surely cause problems.
    If you do want to ensure that ONLY the GR qty and the PO price are used and cannot be changed then why not consider using ERS (Eveluated Receipt Settlement. this is basically self billing.
    Effectively you will be paying the vendor based on what you have received in MIGO multiplied by the price from the PO. (which is what you would be doing if you stop any changes in MIRO)
    Steve B

  • How to restrict the decimal entry on dynamic table in adf 11 .6

    Hi All,
      JDev version 11.6
      I have a usecase based on dynamic VO. How to restrict the decimal numbers on table columns . When user enter the decimal number .I have to show error message.
      In order to achieve above requirement .I have added value change listener on table column .its not working as expected
    <af:table rows="#{bindings.EmployeeDynamicVO.rangeSize}"
                      fetchSize="#{bindings.EmployeeDynamicVO.rangeSize}"
                      emptyText="#{bindings.EmployeeDynamicVO.viewable ? 'No data to display.' : 'Access Denied.'}"
                      var="row" rowBandingInterval="0"
                      value="#{bindings.EmployeeDynamicVO.collectionModel}"
                      selectedRowKeys="#{bindings.EmployeeDynamicVO.collectionModel.selectedRow}"
                      selectionListener="#{bindings.EmployeeDynamicVO.collectionModel.makeCurrent}"
                      rowSelection="single" id="t1"
                      styleClass="AFStretchWidth" autoHeightRows="-1"
                      columnStretching="last" contentDelivery="immediate" >
              <af:forEach items="#{bindings.EmployeeDynamicVO.attributeDefs}"
                          var="def">
                <af:column headerText="#{bindings.EmployeeDynamicVO.labels[def.name]}"
                           sortProperty="#{def.name}" id="c1">
                  <af:inputText value="#{row[def.name]}" id="ot1"
                                valueChangeListener="#{backingBeanScope.EmployeeBean.validateINputs}"
                                autoSubmit="true">
                    </af:inputText>
                  <af:outputText value="#{row[def.name]}" id="ot6"
                                 visible="#{def.name eq 'Dummy'}"/>
                </af:column>
              </af:forEach>
            </af:table>
    So appriciate if any alternatives on above usecase. Thanks in advance

    HI
    Expected :as soon as user enter the decimal values in table column , it should throw the error message in new small new window
    Getting the value change listener and validating , but its working only tab out (Because VO is dynamic )
    please suggest us any reg expression and Validators to achieve the above scenario ?

  • How to restrict the entry of same material twice on the order

    HI,
    How to restrict the entry of same material twice on the order before saving the Order ?
    I do not want my users to enter the same material as two different line items in the order.
    Any inputs wud b appreciated

    Hi Vam,
    For this you need to take the help of an ABAPer . Ask him to modify the user exit and add the logic.
    For user exit please go through the below link it will help you to resolve your issue.
    http://help.sap.com/saphelp_46c/helpdata/en/1c/f62c7dd435d1118b3f0060b03ca329/content.htm
    Regards,
    Krishna O
    Edited by: Krishna O on Jun 3, 2010 12:29 PM

  • How to restrict the display of report variants

    Hello All,
    I want t know how to restrict the display of report variants.
    I mean, when a user saves a variant for his/her purpuse on some report program, only he/she can refer the variant while other users cannot.
    I know that by setting the attribute of the variant ("Protect Variant ", "Only Display in Catalog"), this would be possible, but I want to know another way, without this setting.
    Thank you for your help in advance.
    Regards,

    Hi,
    Can you just try this
    DATA:it_varid TYPE TABLE OF varid.
    DATA:wa_varid TYPE varid.
    INITIALIZATION.
      SELECT * FROM varid INTO TABLE it_varid
          WHERE report = sy-repid
          and ename = sy-uname.
      IF sy-subrc = 0.
        LOOP AT it_varid INTO wa_varid .
          CALL FUNCTION 'RS_SUPPORT_SELECTIONS'
            EXPORTING
              report               = sy-repid
              variant              = wa_varid-variant
            EXCEPTIONS
              variant_not_existent = 1
              variant_obsolete     = 2
              OTHERS               = 3.
          IF sy-subrc <> 0.
            MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
          ENDIF.
        ENDLOOP.
      ENDIF.

  • How to restrict the user to enter only numeric values in a input field

    How to restrict the user to enter only numeric values in a input field.
    For example,
    i have an input field in that i would like to enter
    only numeric values. no special characters,alphabets .
    reply ASAP

    Hi Venuthurupalli,
    As valery has said once you select the value to be of type integer,once you perform an action it will be validated and error message that non numeric characters are there will be shown. If you want to set additional constraints like max value, min value etc you can use simple types for it.
    On the project structure on left hand side under local dictionary ->datatypes->simple types create a simple type of type integer
    The attribute which you are binding to value property ;make its type as simple type which you made
    Hope this helps you
    Regards
    Rohit

  • How to restrict the length of the input?

    Hi all, could any one tell me how to restrict the length of the input string? My SOA Suite is 10.1.3.1
    I tried the following; getting an error.
    <element name="RestrictLengthProcessRequest">
    <simpleType name="SSN">
    <restriction base="string">
    <length value="10"/>
    </restriction>
    </simpleType>
    where RestrictLengthProcessRequest is the message name of the corresponding .wsdl and SSN is the input whose length is to be restricted.
    The error is : 'Attribute name not defined on element simpleType'
    Thanks in advance.
    Edited by: user11275112 on Aug 27, 2009 11:44 PM

    Hi swathi,
    For this you have to create a simple data type. No need of writing a code.
    Go to Dictionaries -> Local Dictionary -> Data Type - > Simple Type - > Right click and "Create Simple Type".
    Here you should create a Simple type with String as built-in Type. Here you will also see the Length Constraints option.
    Set the value of maximum length and minimum length. In your case set the value of maximum length to 10. At runtime this will not allow the user to enter more than 10 characters.
    Now create an attribute and bind it to this newly created simple type. Bind the value of the input field with this particular attribute.
    Regards
    Manohar

  • How to restrict the st loc list applicable to particular plant mm01

    Hi,
    While creating material master user after selecting a particular plant user sees all the storage locations available in the system.How to restrict the storage location list applicable to particular plant while material creation
    Best Regards,
    BM

    Hi,
    As Mahesh said , you need to put validation there, please contact your development team for this.
    Though you are able to see all storgae location you are not able to create the material master, it throws as error if you select incorrect storage location which is not maintained for that particulare plant.
    It gives an error message
    Entry Plant SL  does not exist in T001L (check entry)
    So user will not be able to create material master for improper plant SL combination.
    Thanks,
    Ravi

  • How to enforce the message "Do you want to save changes?"

    Hello,
    How to enforce the message "Do you want to save changes?" when the user attempts to close a form after checking a non-database item (check-box).
    All the other database items in the block are not updateable and only viewable.
    After checking the non database item check-box, if the user tries to commit, then the system is saving the changes and call the appropriate procedure on save.
    But if the user tries to close the window without committing, the form is not showing the message "Do you want to save changes?" since the check-box is a non database item.
    How to enforce the message "Do you want to save changes?" in this scenario when the user tries to close the window?
    Thanks in advance.
    Cheers
    Sri

    This is a fairly common question in the forum. You will need to override the default exit form process and check to see if the checkbox is checked. You can do this in the Key-Exit trigger. For Example:
    DECLARE
      al_id     ALERT;
      al_button  NUMBER;
    BEGIN
      IF ( CHECKBOX_CHECKED('YOUR_BLOCK.CHECKBOX_ITEM') ) THEN
         /* Display an Alert here that asks, "Do you want to save changes?" */
         ...code here to set the properties of your alert...
         al_button := Show_Alert(al_id);
         IF ( al_button = ALERT_BUTTON1 ) THEN
            --YES
            /* Perform COMMIT Processing here...*/
         ELSIF ( al_button = ALERT_BUTTON2 ) THEN
            --No
            Exit_Form(NO_VALIDATE);
         ELSE
            --Cancel
            RAISE Form_Trigger_Failure;
         END IF;
      ELSE
         Exit_Form;
      END IF;
    END;If you need more help with the Alert, please check out the SHOW_ALERT topic in the Forms Help.
    BTW, what happens if all the user does is check the checkbox? No other changes have occured. What changes are you trying to process?
    Hope this helps,
    Craig B-)
    If someone's response is helpful or correct, please mark it accordingly.

  • How to learn the Business Process and how it is related to BI?

    Dear Experts,
    How to learn the Business Process? for example the business process from finance to sales. As I am more involved in technical development of BI; I dont know or having very hard time to understand what the business process. And how the Business Process is related to BI?
    I think if I don't understand the business process than it is very hard to satisfy the User requirements. If you have any documentation please feel free to forward it to [email protected]
    I wish you happy new year. Thank you in advance.
    Aslam.

    If only plan data entered, try to delete the planning data before delete the object and then re-create it again. Otherwise you may have to leave it as is and change the description for the usage by the different company code.

Maybe you are looking for

  • Substitution-Strings in external JS-Files

    Hi, can anybody tell me how to include external JavaScript-Files? When loading them in "Static-Files" Substitution-Strings like "#WORKSPACE_IMAGES#" or "&WORKSPACE_IMAGES." are not working. Thanks for your help!

  • Creting PO through Visual Basic

    Hello Guys, I have to create a Purchase order with Visual Basic. I have created following code but at the end error is showing that <b>NO MASTER RECORD EXIST FOR VENDOR (VENDOR NO).</b> but with the help of same data i am able to create PO in SAP. I

  • Why is the latest version SO HORRIBLY UGLY?? what where you thinking with this new rounded tabs?

    you really should reconsider who is your design chief!!! as with your mobile OS you are just imitating others, imitating a bad version of android, now you want to imitate CHROME, firefox is going down more and more with time, and this little details

  • Search Help for Route - VA01

    Hi All, I need help in assigning search help to ROUTE(VBAP-ROUTE) field in VA01 Transaction.Instead of standard F4 list I need a list of Routes from the Custom table which will be maintaned.This new F4 list has to be displayed based on order types...

  • How do i stop the preparing to copy music bar

    I was trying to copy music from my external hard drive to my new macbook pro 13 inch. I ended up copying the music through select and move manually to itunes. But the operation that was copying the music to the music folder in the finder still says p