Problems mapping 2 messages into 1

Hi.
I'm facing a problem mapping 2 messages into 1.
I have a BPM that has 2 abstract messages. In a transformation step, i transform this two messages into one but when i check the IDOC that finally has arrived to R3 backend, the fields that belogns to one of the source messages doesn't appear.
In message mapping i select the two source messages and the target message and the same in interface mapping.
Because is a transformation step inside the BPM, i can't see in SXI_MONITOR what's happening.
any idea of what's happening?
Regards.
Inigo.

Inigo,
Though its in BPM u can where well test the transformation mapping
wht are the messages going in what is coming out
Check How to monitorcc BPM
https://websmp206.sap-ag.de/~sapdownload/011000358700003141152005E/HowToMonitorccBPM.pdf
This PDF is very handy
Regards
Kavitha

Similar Messages

  • Oracle BPM and JMS Queue: How to associate data from Map Messages to Process Data Objects?

    Good Day!
    I'm currently working on a project wherein it tries to get data from a JMSqueue Map Message being populated by CEP.
    After CEP pushes some data in the JMSqueue. I have BPM configured with a JMS adapter to look up whether there are any messages to be processed upon.
    Inside BPM, I want to know how can I correlate the data from the Map Message to my Process Data Object.
    For example, If I have a Map Object wherein it has 3 attributes:
    FirstName:String
    LastName:String
    Age:int
    What is the expression I need to use inside Oracle BPM Data Association screen in order to map the data from the Map Messages into my process data objects?
    Thanks!
    Regards,
    Jeff

    Any ideas? Thanks!

  • Problem in message mapping index.

    HI All,
    I am doing idoc to file scenario.
    I have a problem in message mapping.
    Issue is,
    pallet1
      palletheader(here i used counter to increment the value)
      palletline(here i used INDEX to increment the value)
            pallet linenumber1(it should be 1)
            pallet linenumber2(it should be 2)
    so on       )
    so on
    pallet2
      palletheader
      palletline
            pallet linenumber1(here again it should be 1)
            pallet linenumber2(here again it should be 2)
    so on              )
    so on
    In INDEX we have option called reset index in that we have two radio buttons
    one is "reset index to intial value with each new context"
    and next one is "donot reset index to intiak value"
    if i use the first radio button which is working fine in only one pallet and more pallet lines but not more than one pallet.
    If i use the second radio buttton which is working fine in more than one pallet but not satisfying the more pallet lines in one pallet.
    Can you please help me on the issue

    my requirement is like this.
    IF DELVRY05/IDOC/E1EDL20/E1EDL24/POSNR equals to /DELVRY05/IDOC/E1EDL20/E1EDL37/E1EDL44/EXIDV
    then map to 'pallet line' .
    I tried to keep posnr context as E1EDL20 and also IDOC level.
    And at the same way to EXIDV too.
    pallet(1 to unbounded)
       pallet header(1 to 1)
       pallet lines(1 to 1)
            in sub level  pallet line(1 to unbounded) (here i applied the index logic)
    The out put should be pallet line 1,2,3,----- so on
    In the second pallet the pallet lines should be again 1,2,3,4-------so on .
    But when i try to apply thsi logic,
    I am getting only one pallet line instead of two.
    second is not comming .
    please help on this i am facing this problem for the long time back.
    if i solve then i can complete my scenario.

  • Problem with Mulit Mapping/Message Split

    Hi,
    I am a newbie to XI trying to set up a file2file scenario with multi-mapping/message splitting without BPM.
    System is XI 3.0 SP14
    Scenario is:
    read an XML-File and multiply it and write 2 XML-files using the File adaptor.
    For reference I used "multimapping without BPM".
    - setting occurancy of Message types to unbounded in both Message Mapping and Interface Mapping.
    - using the RB_Split button
    - setting up one business service containing 2 message interfaces and 2 communication channels for output.
    Designing and Konfiguring worked fine.
    File is read but no file is written.
    XML-Moni tells me "Mapping did not create Messages" 
    I did extensive studies in sap.help, forum and various blogs. Also to verify Messagetypes and Kommunication channels I set up similar file2file scenario without splitting. Nothing really helped.
    Any clues?

    Hi again,
    very efficient method to test XML-source file. - Thanks.
    Unfortunately it did not solve my problem.
    Again: "Split mapping did not create messages"
    Below you can find a part of the trace created when processing this message:
    <Trace level="3" type="T">Multi mapping required.</Trace>
      <Trace level="3" type="T">Creating Java mapping com/sap/xi/tf/_MM_data_duplic_async_.</Trace>
      <Trace level="3" type="T">Load ac6179b0-a92e-11da-be15-e51f0a000472, http://MyTutorial/SHeinz05, -1, com/sap/xi/tf/_MM_data_duplic_async_.class.</Trace>
      <Trace level="3" type="T">Search com/sap/xi/tf/_MM_data_duplic_async_.class (http://MyTutorial/SHeinz05, -1) in swcv ac6179b0-a92e-11da-be15-e51f0a000472.</Trace>
      <Trace level="3" type="T">Loaded class com.sap.xi.tf._MM_data_duplic_async_</Trace>
      <Trace level="2" type="T">Call method execute of the application Java mapping com.sap.xi.tf._MM_data_duplic_async_</Trace>
      <Trace level="2" type="T">Java mapping com/sap/xi/tf/_MM_data_duplic_async_ completed. (executeStep() of com.sap.xi.tf._MM_data_duplic_async_</Trace>
      <Trace level="3" type="T">Nachrichtentyp 1 Anzahl der Nachrichten 0</Trace>
      <Trace level="3" type="T">Nachrichtentyp 2 Anzahl der Nachrichten 0</Trace>
      <Trace level="1" type="E">CL_XMS_PLSRV_MAPPING~ENTER_PLSRV</Trace>
      </Trace>
    - <Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_LOG_TO_PERSIST">
      <Trace level="3" type="T">Persisting message after plsrv call</Trace>
      <Trace level="3" type="T">Message-Version = 005</Trace>
      <Trace level="3" type="T">Message version 005</Trace>
      <Trace level="3" type="T">Pipeline CENTRAL</Trace>
      </Trace>
      <Trace level="3" type="System_Error">Error exception return from pipeline processing!</Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_TO_PERSIST" />
    - <!--  ************************************
      -->
      <Trace level="3" type="T">Persisting message Status = 014</Trace>
      <Trace level="3" type="T">Message version 006</Trace>
      <Trace level="3" type="T">Pipeline CENTRAL</Trace>
      </SAP:Trace>
    Test of MM and IM is always successful.
    Any clues?

  • Mapping 2 messages into 1 using BPM

    hello
    I have a BPM tha recieve 2 messages, and combine them into 1 message. I would like to know how can I map the 2 messages into 1.
    more over, is there a way to decide the value of the attribute for the mapping? (for example, if in one of the messages I have attribute value=4, and when mapping it I want 4 to be translated to write Mr. if the value was 3, I would like the value to be Miss, etc.
    Thanks
    Kfir

    Hi Kfir.
    As I understand your requirement, you want to combine two messages into one.
    If both of the messages have the same structure, then, in BPM, you can use a while loop which contains the receive step followed by the container step into which the messages will be collected. You can use "APPEND" option in the container step. After the while loop, use a transformation step and then followed by the send step.
    Now for the loops, you can go with a Time-Dependent, Message-Dependent or Payload-Dependent Loops. Now, that depends on your business requirement.
    For this scenario to work, you need to create a correlation, for which the two incoming messages should have one field in common and also should contain the same value. Else, it would fail.
    If that is not the case, then in the correlation, define a constant and set it's value to 1 for both of the messages. This will make it work.
    Check out the Integration Processes BPMPatternCollectTime, BPMPatternCollectPayload, BPMPatternCollectMessage under the http://sap.com/xi/XI/System/Pattern of the SAP BASIS Software component.
    I think this would give you an idea.
    Regards,
    Hari.

  • Question: map the whole source message into one field in the target.

    Hi Friends,
    Is there a way to populate the whole source message into one of the fields in the target message?
    I am trying to do this in message mapping. Guide if this could be done in any other way or is there a way to do it in message mapping.
    Waiting for your valuable guidance,
    Regards,
    Lakshmi

    Hi Friends,
    I tried to convert the source message into a string using XSLT mapping. It was successful, however i need to have the source message in XML format and not in any other format. This is because, I am mapping the source XML into a field in a WSDL. The webservice requires the entire source message be inside a field called "Request" in the WSDL (it is like XML inside another XML).
    Is there any way to do this? Please suggest.. (Im not good at java programming... may be i dont know)

  • Problem with message mapping ...

    Hello,
    I have problem with message mapping. I implemented SOAP-to-RFC scenario. The source message is of type http://sntcz.cz/xmlns/holidays:MT_Holiday, the target message of type urn:sap-com:document:sap:rfc:functions:Z_GET_SUPERIOR. But some error is still generated in Request Message Mapping step:
    com.sap.aii.utilxi.misc.api.BaseRuntimeException: RuntimeException in Message-Mapping transformation: Cannot produce target element /ns1:Z_GET_SUPERIOR/USR. Check xml instance is valid for source xsd and target-field mapping fulfills requirements of target xsd at com.sap.aii.mappingtool.tf3.AMappingProgram.start(AMappingProgram.java:403) at com.sap.aii.mappingtool.tf3.Transformer.start(Transformer.java:142) at com.sap.aii.mappingtool.tf3.AMappingProgram.execute(AMappingProgram.java:102) at .....
    This is XSD definition of source message:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://sntcz.cz/xmlns/holidays" targetNamespace="http://sntcz.cz/xmlns/holidays">
    <xsd:element name="MT_Holiday" type="DT_Holiday" />
    <xsd:complexType name="DT_Holiday">
    <xsd:annotation>
    <xsd:appinfo source="http://sap.com/xi/TextID">
    030495e1742f11dd963600301875333b
    </xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
    <xsd:element name="SinceDay" type="xsd:string">
    <xsd:annotation>
    <xsd:appinfo source="http://sap.com/xi/TextID">
    fba049b067aa11dd8be6eee20abb2a3f
    </xsd:appinfo>
    </xsd:annotation>
    </xsd:element>
    <xsd:element name="SinceMounth" type="xsd:string">
    <xsd:annotation>
    <xsd:appinfo source="http://sap.com/xi/TextID">
    fba293a067aa11dda311eee20abb2a3f
    </xsd:appinfo>
    </xsd:annotation>
    </xsd:element>
    <xsd:element name="SinceYear" type="xsd:string">
    <xsd:annotation>
    <xsd:appinfo source="http://sap.com/xi/TextID">
    fba293a167aa11dd9b4eeee20abb2a3f
    </xsd:appinfo>
    </xsd:annotation>
    </xsd:element>
    <xsd:element name="UntilDay" type="xsd:string">
    <xsd:annotation>
    <xsd:appinfo source="http://sap.com/xi/TextID">
    fba293a267aa11ddc352eee20abb2a3f
    </xsd:appinfo>
    </xsd:annotation>
    </xsd:element>
    <xsd:element name="UntilMounth" type="xsd:string">
    <xsd:annotation>
    <xsd:appinfo source="http://sap.com/xi/TextID">
    fba293a367aa11ddc33aeee20abb2a3f
    </xsd:appinfo>
    </xsd:annotation>
    </xsd:element>
    <xsd:element name="UntilYear" type="xsd:string">
    <xsd:annotation>
    <xsd:appinfo source="http://sap.com/xi/TextID">
    fba293a467aa11dda8cfeee20abb2a3f
    </xsd:appinfo>
    </xsd:annotation>
    </xsd:element>
    <xsd:element name="UserId" type="xsd:string">
    <xsd:annotation>
    <xsd:appinfo source="http://sap.com/xi/TextID">
    fba293a567aa11dd9698eee20abb2a3f
    </xsd:appinfo>
    </xsd:annotation>
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:schema>
    This is XSD definition of target message:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:sap-com:document:sap:rfc:functions" targetNamespace="urn:sap-com:document:sap:rfc:functions">
    <xsd:element name="Z_GET_SUPERIOR">
    <xsd:complexType>
    <xsd:all>
    <xsd:element name="USR" type="xsd:string" minOccurs="0" />
    </xsd:all>
    </xsd:complexType>
    </xsd:element>
    </xsd:schema>
    It's strange that if I use Message Mapping Test it works fine. But in pipeline not.
    Do you have any idea where could be the problem?
    Thank you in advance!
    Best regard,
    Zbynek

    Hi,
    To know the correct error Take the Inbound Payload from MONI and Test it in Mapping Test TAB. then u will come to know the exact error.
    Procedure to take the Payload
    goto MONI-Double click on MessageInbound Message ( CENTRAL ) --Payloads ---Double click on MainDocument ( application/xml ) -Just Right Click on the second window-View Source
    then now Copy this and paste it in Mapping Test and Execute.
    REgards
    Seshagiri

  • After i installed ios 7 in my iPhone 4s and I got problem to login into my icloud account. There is a message appear and said  "the operation couldn't be completed (com.apple.appleaccount error 403)" can you help me ? how can i fix this problem ? iPhone 4

    After i installed ios 7 in my iPhone 4s and I got problem to login into my icloud account.
    There is a message appear and said  "the operation couldn't be completed (com.apple.appleaccount error 403)"
    can you help me ? how can i fix this problem ?
    iPhone 4, iOS 7
    iPhone 4S, iOS 7, (com.apple.appleaccount error 403)"

    Error: com.apple.appleaccount error 403
    Recreate Error: On a Iphone/Ipad device that has "already" created the maximum of 3 per device Apple limit of ICloud account creation attempt to create or login to ICloud service tab in Settings. You will be presented with "com.apple.appleaccount error 403" which does not tell the laymen anything useful.
    Cause: IOS 7 reports a "best guess" error instead of detailed error explanation.
    How To Resolve Error: Find a device that has not been used to create an ICloud account the maximum 3 times and use it to create the ICloud account by logging into the Settings/ICloud tab with the Apple ID you want a ICloud account created for.
    Keep in mind this will use up one of the three lifetime allowed ICloud account creations allowed by Apple on that device.
    Also per support: If an existing account is logged into the ICloud service. A. Backup phone using iTunes on a mac/pc. B. At bottome of Settings/ICloud Delete the account "AND" all the user date from the phone. It will offer the Delete all data option. The reason for Deletion(and is why we backed up on a pc vs. the cloud) is when you create the new ICloud account it will backup all of the Device owners information to the wrong persons account.
    Once you have created the new ICloud account log into that account on device that was presenting error: "com.apple.appleaccount error 403" it should allow the ICloud login.
    Once you have verified the "device with error" is ICloud functional delete the ICloud account from the device used to seed the ICloud account and delete again all user data from cloud. Restore the recently created mac/pc Itunes locally created backup to the phone and then go to Settings/ICloud and login with the device owners Apple ID and password and verify your backup to the ICloud settings and Eureka! your done.
    It took less time to do that for me to type this lol.

  • Having a problem importing xml into an indesign template.

    I am having a problem importing xml into an indesign template. The xml data is there and will populate the columns on the document but I am having problems matching styles, removing data that should not be mapped and importing repeated same fields but differnet data.
    Message me if this is something you can do quickly for a fee.

    Also you can check the following link
    [Reporting|http://devlibrary.businessobjects.com/BusinessObjectsXIR2/en/devsuite.htm]
    Regards,
    Tej

  • Problem while inserting into a table which has ManyToOne relation

    Problem while inserting into a table *(Files)* which has ManyToOne relation with another table *(Folder)* involving a attribute both in primary key as well as in foreign key in JPA 1.0.
    Relevent Code
    Entities:
    public class Files implements Serializable {
    @EmbeddedId
    protected FilesPK filesPK;
    private String filename;
    @JoinColumns({
    @JoinColumn(name = "folder_id", referencedColumnName = "folder_id"),
    @JoinColumn(name = "uid", referencedColumnName = "uid", insertable = false, updatable = false)})
    @ManyToOne(optional = false)
    private Folders folders;
    public class FilesPK implements Serializable {
    private int fileId;
    private int uid;
    public class Folders implements Serializable {
    @EmbeddedId
    protected FoldersPK foldersPK;
    private String folderName;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "folders")
    private Collection<Files> filesCollection;
    @JoinColumn(name = "uid", referencedColumnName = "uid", insertable = false, updatable = false)
    @ManyToOne(optional = false)
    private Users users;
    public class FoldersPK implements Serializable {
    private int folderId;
    private int uid;
    public class Users implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer uid;
    private String username;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "users")
    private Collection<Folders> foldersCollection;
    I left out @Basic & @Column annotations for sake of less code.
    EJB method
    public void insertFile(String fileName, int folderID, int uid){
    FilesPK pk = new FilesPK();
    pk.setUid(uid);
    Files file = new Files();
    file.setFilename(fileName);
    file.setFilesPK(pk);
    FoldersPK folderPk = new FoldersPK(folderID, uid);
         // My understanding that it should automatically handle folderId in files table,
    // but it is not…
    file.setFolders(em.find(Folders.class, folderPk));
    em.persist(file);
    It is giving error:
    Internal Exception: java.sql.SQLException: Field 'folderid' doesn't have a default value_
    Error Code: 1364
    Call: INSERT INTO files (filename, uid, fileid) VALUES (?, ?, ?)_
    _       bind => [hello.txt, 1, 0]_
    It is not even considering folderId while inserting into db.
    However it works fine when I add folderId variable in Files entity and changed insertFile like this:
    public void insertFile(String fileName, int folderID, int uid){
    FilesPK pk = new FilesPK();
    pk.setUid(uid);
    Files file = new Files();
    file.setFilename(fileName);
    file.setFilesPK(pk);
    file.setFolderId(folderId) // added line
    FoldersPK folderPk = new FoldersPK(folderID, uid);
    file.setFolders(em.find(Folders.class, folderPk));
    em.persist(file);
    My question is that is this behavior expected or it is a bug.
    Is it required to add "column_name" variable separately even when an entity has reference to ManyToOne mapping foreign Entity ?
    I used Mysql 5.1 for database, then generate entities using toplink, JPA 1.0, glassfish v2.1.
    I've also tested this using eclipselink and got same error.
    Please provide some pointers.
    Thanks

    Hello,
    What version of EclipseLink did you try? This looks like bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=280436 that was fixed in EclipseLink 2.0, so please try a later version.
    You can also try working around the problem by making both fields writable through the reference mapping.
    Best Regards,
    Chris

  • How to add the error message into Delivery Error Log (VL10A,VL10X)

    Hi,
    I have a to add my custom message into Delivery creation error log (VBFS, VBSS)
    This message should be shown in the Collective process log (VL10X, VL10A).
    Please give me the soln to solve this problem.
    I have searched in SDN, i didnt get the proper solution
    Thanks
    Shankar

    HI,
    Make use of the BADi "LE_SHP_DELIVERY_PROC"
    Use the method DELIVERY_FINAL_CHECK.
    Pass the error messages in table CT_FINCHDEL.
    Regards,
    Ankur Parab

  • Warning message into Application log of Service request

    Hi Experts,
    I have a requirement where I am using Event handlers(CRMV_EVENT) to redetermine partners of a service request whenever certain values are changed in the transaction CRMD_ORDER.
    Partners will be retrieved from a custom table.
    In any circumstances, if the partners cannot be determined then we need to push a WARNING message stating that "Partners can not be determined, pls maintain the values in the custom table'.
    For this purpose I am using the function module CRM_MESSAGE_COLLECT with the following parameters, but still I am not able to see the same into the Application log of the Service request that is going to be created.
    CALL FUNCTION 'CRM_MESSAGE_COLLECT'
      EXPORTING
        iv_caller_name         = 'ORDERADM_H'
        IV_REF_OBJECT          = iv_header_guid
        IV_REF_KIND            = 'A'
       IV_LOGICAL_KEY         = '0001'
        IV_MSGNO               = '001'
        IV_MSGID               = 'ZSP'
        IV_MSGTY               = 'W'
      IV_MSGV1               = SY-MSGV1
      IV_MSGV2               = SY-MSGV2
      IV_MSGV3               = SY-MSGV3
      IV_MSGV4               = SY-MSGV4
        IV_MSGLEVEL            = '1'
      IV_FIELDNAME           =
      IV_ACTION              =
        IV_LOG_HANDLE          = lv_log_handle
        IV_CUMULATE            = 'X'
    IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
             WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    Do I missed in passing of any additional parameters?
    Can any one of you have encountered the same problem and solved this, pls through some light on me too(if possible with block of code).
    Thanks in advance.

    Hi,
    Here is the block of code that I used to push a message in to Application log.
    Push your message into a variable called dummy and then call the below mentioned function module.
    DATA:        lv_dummy(254)    TYPE  c,            "#EC NEEDED
              MESSAGE w052(sppf_media) WITH text-001
                                            text-002
                                        INTO lv_dummy.
              CALL FUNCTION 'CRM_MESSAGE_COLLECT'
                EXPORTING
                  iv_caller_name = 'ORDERADM_H'
                  iv_ref_object  = iv_header_guid
                  iv_ref_kind    = lc_ref_kind_a
                  iv_msgno       = sy-msgno
                  iv_msgid       = sy-msgid
                  iv_msgty       = sy-msgty
                  iv_cumulate    = lc_x
                IMPORTING
                  ev_msgty       = lv_msgtyp
                  es_msg_handle  = gv_msghandle
                EXCEPTIONS
                  not_found      = 1
                  appl_log_error = 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.
            ENDIF.
    Hope this helps to resolve your issue.
    Regards,
    Usha.

  • Append two message into one message in BPM

    hi,
    i have to receive two different outbound message interface in fork step. as soon as two message received
    i have to append those message to one message as below;
    A message
    1001 AAAA  BBBB CCCCC
    1002 DDDD  BBBB DDDDD
    B message
    1003 CCCC  1321 12213
    1004 DAFD  DDDD DDDDD
    1005 EDDD  DDDD DDDDD
    target message for C
    1001 AAAA  BBBB CCCCC
    1002 DDDD  BBBB DDDDD
    1003 CCCC  1321 12213
    1004 DAFD  DDDD DDDDD
    1005 EDDD  DDDD DDDDD
    and then i have to send C
    is it possible on BPM? i think not mapping issue and correlation.
    how can i append two abstract message to one abstract message?
    thanks
    venjamin

    hi all,
    BpmPatternCollectMessageToBeCollected in basis in ir is not multi-row,  this message type structure is just for individual message..
    in my case, source message type can be received multi record in row in once.
    so, what i want to say is interface mapping regarding
    appending two abs message into one inbound message for transformation.
    if it is possible, we may not need to container operation step because we already have bundled message in target abstract message. we can just send target abstract message.
    if it is not possible, how do you map to use in transformation step? and configure container operation?
    container operation should be appened from one structure message into one multi message.
    does it make sense?
    thanks
    venjamin

  • DVD Studio burning problem error message: "remove the VIDEO_TS folder from the Build Location"; where is build location

    DVD Studio burning problem error message: "remove the VIDEO_TS folder from the Build Location"; where is build location?

    Thanks Shane I followed your instructions and it turned out pretty well. One quick question, Im working with DVD Studio Pro 4, how do i implement a theme into my project? I cant even fin where thay are located. Thanks.

  • How to save message into internal table?

    Hi,everyone!
    I have a problem when I'm coding.I want to store messages into a internal table.Can you help me?
    Thanks!

    Hello Feng
    If you are already working on SAP basis release >= 6.20 I would recommend the most versatile message handler of all: interface <b>IF_RECA_MESSAGE_LIST</b>
    Perhaps you will find the following sample report ZUS_SDN_APOLLO_13
    (see also: <a href="https://wiki.sdn.sap.com/wiki/display/profile/2007/07/09/MessageHandling-FindingtheNeedleintheHaystack">Message Handling - Finding the Needle in the Haystack</a>) useful.
    *& Report  ZUS_SDN_APOLLO_13
    REPORT  zus_sdn_apollo_13
      LINE-SIZE 200.
    TYPE-POOLS: abap.
    TYPES: BEGIN OF ty_s_outtab.
    TYPES:   status     TYPE exception.
    INCLUDE TYPE bapiret2  AS msg.
    TYPES: END OF ty_s_outtab.
    TYPES: ty_t_outtab  TYPE STANDARD TABLE OF ty_s_outtab
                        WITH DEFAULT KEY.
    DATA:
      gs_layout         TYPE lvc_s_layo,
      gt_outtab         TYPE ty_t_outtab.
    DATA:
      gd_title          TYPE lvc_title,
      gd_msgv           TYPE symsgv,
      gd_msg            TYPE bapi_msg,
      gs_msg            TYPE recamsg,
      gs_return         TYPE bapiret2,
      gt_return         TYPE bapirettab,
      go_msglist        TYPE REF TO if_reca_message_list,
      go_random         TYPE REF TO cl_random_number,
      gif_random        TYPE REF TO if_random_number.
    PARAMETERS:
      p_opt1  RADIOBUTTON GROUP radi  DEFAULT 'X',
      p_opt2  RADIOBUTTON GROUP radi,
      p_opt3  RADIOBUTTON GROUP radi.
    SELECTION-SCREEN ULINE.
    PARAMETERS:
      p_opt4  RADIOBUTTON GROUP radi,
      p_opt5  RADIOBUTTON GROUP radi,
      p_opt6  RADIOBUTTON GROUP radi.
    SELECTION-SCREEN ULINE.
    PARAMETERS:
      p_count    TYPE numc3     DEFAULT '4',
      p_level    TYPE ballevel  DEFAULT '7'.
    DEFINE mac_build_msg.
      clear: gs_msg.
      gs_msg-msgty = &5.
      gs_msg-msgid = '00'.
      gs_msg-msgno = '398'.
      gs_msg-msgv1 = &1.
      gs_msg-msgv2 = &2.
      gs_msg-msgv3 = &3.
      gs_msg-msgv4 = &4.
      gs_msg-detlevel = &6.
    END-OF-DEFINITION.
    *  msgty
    *  msgid
    *  msgno
    *  msgv1
    *  msgv2
    *  msgv3
    *  msgv4
    *  msgv1_src
    *  msgv2_src
    *  msgv3_src
    *  msgv4_src
    *  detlevel
    *  probclass
    *  alsort
    *  time_stmp
    *  msg_count
    *  context
    *  params
    START-OF-SELECTION.
      " Create message handler
      go_msglist = cf_reca_message_list=>create( ).
      " Create random number instance
      CREATE OBJECT go_random TYPE cl_random_number.
      gif_random ?= go_random.
      gif_random->init( ).
      PERFORM message_handling_1.
      PERFORM message_handling_2.
      PERFORM message_handling_3.
      PERFORM message_handling_4.
    END-OF-SELECTION.
    *&      Form  MESSAGE_HANDLING_1
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM message_handling_1 .
      CHECK ( p_opt1 = abap_true ).
      gd_title = 'Information System 1 (IS1)'.
      SET TITLEBAR 'TITLE' WITH gd_title.
      WRITE: / 'Apollo 13 Mission'.
      WRITE: / syst-uline.
      WRITE: / 'Take-Off             -> ok'.
      WRITE: / 'Leaving Orbit        -> ok'.
      WRITE: / 'Trajectory           -> ok'.
      WRITE: /.
      FORMAT COLOR COL_NEGATIVE.
      WRITE: / 'Explosion happened   -> not ok'.
      WRITE: / 'Command and Service module (CSM) -> damaged'.
      FORMAT RESET.
      WRITE: / 'Lunar module (LM)    -> not affected, ok'.
      MESSAGE text-hou TYPE 'S'.
    ENDFORM.                    " MESSAGE_HANDLING_1
    *&      Form  message_handling_2
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM message_handling_2 .
    * define local data
      DATA:
        ld_success(6)  TYPE n,
        ld_warning(6)  TYPE n,
        ld_failure(6)  TYPE n,
        ld_total(6)    TYPE n.
      CHECK ( p_opt2 = abap_true ).
      gd_title = 'Information System 2 (IS2)'.
      SET TITLEBAR 'TITLE' WITH gd_title.
      PERFORM generate_messages.  " simulation of messages
      CALL METHOD go_msglist->get_list_as_bapiret
        IMPORTING
          et_list = gt_return.
      " Calculate message types and total
      ld_total   = 0.
      ld_success = 0.
      ld_warning = 0.
      ld_failure = 0.
    " Print messages as WRITE list
      LOOP AT gt_return INTO gs_return.
        IF ( gs_return-type = 'E' ).
          ADD 1 TO ld_failure.
        ELSEIF ( gs_return-type = 'W' ).
          ADD 1 TO ld_warning.
        ELSE.
          ADD 1 TO ld_success.
        ENDIF.
      ENDLOOP.
      ld_total = ld_success + ld_warning + ld_failure.
      WRITE: / 'Total Message =', ld_total.
      WRITE: / 'Failures      =', ld_failure.
      WRITE: / 'Warnings      =', ld_warning.
      WRITE: / 'Successes     =', ld_success.
      WRITE: / syst-uline.
      SKIP.
    " Colouring depending on message type
      LOOP AT gt_return INTO gs_return.
        IF ( gs_return-type = 'E' ).
          FORMAT COLOR COL_NEGATIVE.
        ELSEIF ( gs_return-type = 'W' ).
          FORMAT COLOR COL_TOTAL.
        ELSE.
          FORMAT RESET.
        ENDIF.
        WRITE: / gs_return-type, gs_return-message+0(100).
      ENDLOOP.
    ENDFORM.                    " message_handling_2
    *&      Form  message_handling_3
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM message_handling_3 .
    * define local data
      DATA:
        ls_outtab    TYPE ty_s_outtab.
      DATA:
        ld_success(6)  TYPE n,
        ld_warning(6)  TYPE n,
        ld_failure(6)  TYPE n,
        ld_total(6)    TYPE n.
      CHECK ( p_opt3 = abap_true ).
      gd_title = 'Information System 3 (IS3)'.
      SET TITLEBAR 'TITLE' WITH gd_title.
      PERFORM generate_messages.  " simulation of messages
      CALL METHOD go_msglist->get_list_as_bapiret
        IMPORTING
          et_list = gt_return.
      REFRESH: gt_outtab.
      " Calculate message types and total
      ld_total   = 0.
      ld_success = 0.
      ld_warning = 0.
      ld_failure = 0.
    " Define the logic for setting exception status (LED)
      LOOP AT gt_return INTO gs_return.
        CLEAR: ls_outtab.
        ls_outtab-msg = gs_return.
        IF ( gs_return-type = 'E' ).
          ls_outtab-status = '1'.  " red
          ADD 1 TO ld_failure.
        ELSEIF ( gs_return-type = 'W' ).
          ls_outtab-status = '2'.  " yellow
          ADD 1 TO ld_warning.
        ELSE.
          ls_outtab-status = '3'.  " green
          ADD 1 TO ld_success.
        ENDIF.
        APPEND ls_outtab TO gt_outtab.
      ENDLOOP.
      ld_total = ld_failure + ld_warning + ld_success.
      CLEAR: gs_layout.
      gs_layout-cwidth_opt = abap_true.
      gs_layout-zebra      = abap_true.
      gs_layout-excp_fname = 'STATUS'.
      gs_layout-excp_led   = abap_true.
      gs_layout-smalltitle = abap_true.
      CONCATENATE 'T(' ld_total   ')  '
                  'E(' ld_failure ')  '
                  'W(' ld_warning ')  '
                  'S(' ld_success ')  '
        INTO gd_title SEPARATED BY space.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
        EXPORTING
          i_structure_name = 'BAPIRET2'
          i_grid_title     = gd_title
          is_layout_lvc    = gs_layout
        TABLES
          t_outtab         = gt_outtab
        EXCEPTIONS
          OTHERS           = 1.
    ENDFORM.                    " message_handling_3
    *&      Form  message_handling_4
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM message_handling_4 .
    * define local data
      CHECK ( p_opt4 = abap_true   OR
              p_opt5 = abap_true   OR
              p_opt6 = abap_true ).
      IF ( p_opt4 = abap_true ).
        gd_title = 'Information System 4 (IS4)'.
        SET TITLEBAR 'TITLE' WITH gd_title.
      ELSEIF ( p_opt5 = abap_true ).
        gd_title = 'Information System 5 (IS5)'.
        SET TITLEBAR 'TITLE' WITH gd_title.
      ELSE.
        gd_title = 'Information System 6 (IS6)'.
        SET TITLEBAR 'TITLE' WITH gd_title.
      ENDIF.
      PERFORM generate_messages.  " simulation of messages
      PERFORM display_log.
    ENDFORM.                    " message_handling_4
    *&      Form  GENERATE_MESSAGES
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM generate_messages .
    * define local data
      mac_build_msg 'Apollo 13 Mission: Spacecraft'
                     space space space 'I' '1'.
    **  DEFINE mac_build_msg.
    **    clear: gs_msg.
    **    gs_msg-msgty = &5.
    **    gs_msg-msgid = '00'.
    **    gs_msg-msgno = '398'.
    **    gs_msg-msgv1 = &1.
    **    gs_msg-msgv2 = &2.
    **    gs_msg-msgv3 = &3.
    **    gs_msg-msgv4 = &4.
    **    gs_msg-detlevel = &6.
    **  END-OF-DEFINITION.
      go_msglist->add( is_message = gs_msg ).
      DO 6 TIMES.
        CASE syst-index.
          WHEN '1'.
            mac_build_msg 'Command and Service Module (CSM)'
               space space space 'I' '2'.
          WHEN '2'.
            mac_build_msg 'Lunar Module (LM)' space space space 'I' '2'.
          WHEN '3'.
            mac_build_msg 'Additional Module (M-1)'
              space space space 'I' '2'.
          WHEN '4'.
            mac_build_msg 'Additional Module (M-2)'
              space space space 'I' '2'.
          WHEN '5'.
            mac_build_msg 'Additional Module (M-3)'
              space space space 'I' '2'.
          WHEN '6'.
            mac_build_msg 'Additional Module (M-4)'
              space space space 'I' '2'.
          WHEN OTHERS.
            EXIT.
        ENDCASE.
        go_msglist->add( is_message = gs_msg ).
    "   recursive call of routine
        PERFORM generate_messages_1 USING syst-index 'Modul' '3'.
      ENDDO.
    ENDFORM.                    " GENERATE_MESSAGES
    *&      Form  GENERATE_MESSAGES_1
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM generate_messages_1
                         USING
                            value(ud_index)     TYPE i
                            value(ud_msgv)      TYPE symsgv
                            value(ud_detlevel)  TYPE ballevel.
    * define local data
      DATA:
        ld_integer         TYPE i,
        ld_msgty           TYPE symsgty,
        ld_msgv            TYPE symsgv,
        ld_detlevel        TYPE ballevel.
      DO p_count TIMES.
        WRITE syst-index TO ld_msgv NO-ZERO LEFT-JUSTIFIED.
        IF ( ud_detlevel = '3' ).
          CONCATENATE ud_msgv ld_msgv INTO ld_msgv
            SEPARATED BY space.
        ELSE.
          CONCATENATE ud_msgv ld_msgv INTO ld_msgv
            SEPARATED BY '.'.
        ENDIF.
        CONDENSE ld_msgv.
        gd_msgv = ld_msgv.
        IF ( ud_index = 1 ).
          ld_integer = gif_random->get_random_int( 300 ).
          IF ( ld_integer = 1 ).
            ld_msgty = 'E'.
            CONCATENATE gd_msgv 'failed' INTO gd_msgv SEPARATED BY ' -> '.
          ELSEIF ( ld_integer BETWEEN 1 AND 10 ).
            ld_msgty = 'W'.
            CONCATENATE gd_msgv 'check(?)' INTO gd_msgv SEPARATED BY ' -> '.
          ELSE.
            ld_msgty = 'S'.
            CONCATENATE gd_msgv 'OK' INTO gd_msgv SEPARATED BY ' -> '.
          ENDIF.
        ELSE.
          ld_msgty = 'S'.
          CONCATENATE gd_msgv 'OK' INTO gd_msgv SEPARATED BY ' -> '.
        ENDIF.
        mac_build_msg gd_msgv space space space ld_msgty ud_detlevel.
        go_msglist->add( is_message = gs_msg ).
        IF ( ud_detlevel < p_level ).
          ld_detlevel = ud_detlevel + 1.
          PERFORM generate_messages_1 USING ud_index ld_msgv ld_detlevel.
        ENDIF.
      ENDDO.
    ENDFORM.                    " GENERATE_MESSAGES_1
    *&      Form  DISPLAY_LOG
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM display_log .
    * define local data
      DATA:
        ld_handle           TYPE balloghndl,
        lt_log_handles      TYPE bal_t_logh,
        ls_profile          TYPE bal_s_prof.
    " Get log handle of collected message list
      ld_handle = go_msglist->get_handle( ).
      APPEND ld_handle TO lt_log_handles.
      IF ( p_opt4 = 'X' ).
    *   get a display profile which describes how to display messages
        CALL FUNCTION 'BAL_DSP_PROFILE_DETLEVEL_GET'
          IMPORTING
            e_s_display_profile = ls_profile.  " tree & ALV list
      ELSEIF ( p_opt5 = 'X' ).
    *   get standard profile to display one log
        CALL FUNCTION 'BAL_DSP_PROFILE_SINGLE_LOG_GET'
          IMPORTING
            e_s_display_profile = ls_profile.
      ELSE.
        CALL FUNCTION 'BAL_DSP_PROFILE_NO_TREE_GET'
          IMPORTING
            e_s_display_profile = ls_profile.
      ENDIF.
    * set report to allow saving of variants
      ls_profile-disvariant-report = sy-repid.
    *   when you use also other ALV lists in your report,
    *   please specify a handle to distinguish between the display
    *   variants of these different lists, e.g:
      ls_profile-disvariant-handle = 'LOG'.
      CALL FUNCTION 'BAL_DSP_LOG_DISPLAY'
        EXPORTING
          i_s_display_profile          = ls_profile
          i_t_log_handle               = lt_log_handles
        EXCEPTIONS
          profile_inconsistent         = 1
          internal_error               = 2
          no_data_available            = 3
          no_authority                 = 4
          OTHERS                       = 5.
      IF sy-subrc <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    " DISPLAY_LOG
    Regards
      Uwe

Maybe you are looking for

  • Error message "network connection reset" only affects one user

    I'm running 10.3.9 on a 400Mhz iMac. I have 3 users, myself and my 2 kids. When I try to access a web page using Safari on one of the kid's user accounts I get an error message saying that the server cannot be contacted because the "network connectio

  • Confirmation control key check for inbound delivery creation

    Hi, Currently, in the Client's company, the process of receiving goods from purchase orders looks like that (SAP-wise): - create a purchase order, - receive goods using MIGO and automatically create an inbound delivery, - pack the delivery and post g

  • Inserting pictures in HTML Code (DM CS5)

    Hello Community, Can somebody send me please the code how I can insert a picture left to the text? I inserted already the <img>-Code before the <div>-tag for the text, but DreamWeaver places the picture always above the text. Sed ei modo malis sapere

  • Why can't I create a new user preset?

    Hi there, I recently got Adobe Lightroom 5 - upgraded to 5.6 but I can't seem to be able to make a new user preset. I have tried re-installing the program and upgrade but nothing seems to work. I've also clicked 'create' several times with the preset

  • Group by in update and index

    Hi All, I was trying to run an update SQL statement as follows: update tableA a set a.foo = (select b.foo from another_schema.tableB b where b.bar = a.bar group by b.bar,b.foo); I have an index in tableA on the bar column (it is a number(10,0) type c