Create multiple messages in adapter module

Hi!
I've the problem to solve the following scenario: Mail (1) -> XI -> IDocs (1..n)
Since for IDocs message split is not supported and I don't want to use a BPM, is it possible to create different xi-messages in an adapter module which processes the mail?
Therefore I want to make the message split directly on the source: the adapter module.
Best regards,
Daniel

Daniel,
There is no need for a BPM and for an Adapter Module split.
1. Create an XSD out of your IDOC strcuutre and change the occurence of the IDOC element to 0 to unbounded.
2. Import this XSD and use this in your Message Mapping as the target Message Type. For every IDOC to be created in your Target , you will need to create an IDOC tag in the mapping. Each IDOC tag indiactes one IDOC.
3. In your Interface Mapping, DO NOT CREATE a separate Interface for the IDOC, but use the IDOC itself as the Message Interface and select the mapping with the XSD as the target.
Configuration will be as usual.
Regards,
Bhavesh

Similar Messages

  • Is it possible to send error message from Adapter Module to CCMS?

    Hi
    Is it possible to send error message from Adapter Module  to CCMS...?I have written on adatper module from there i have to send error message to CCMS or SXMB_MONI. Is it possible if yes please send me the related documents
    Best Regards
    Ravi Shankar B

    Hi
    I have written following User Defined Exeption in my Module program
    class DuplicateFileException extends ModuleException{
              DuplicateFileException(String message){
                   super(message);
    I am throwing my Exception like this
    try{
         throw new DuplicateFileException("Duplicate File");
    }catch(DuplicateFileException e){
         throw e;
    But i am not getting this exception in SXMB_MONI. In adpater monitoring i am getting the following exceptions
    <b>
    2007-05-16 15:51:30 GMT+05:30: Retry interval started. Length: 5.000 s
    - 2007-05-16 15:51:30 GMT+05:30: Error: java.lang.NullPointerException
    - 2007-05-16 15:51:30 GMT+05:30: An unknown error occured.
    - 2007-05-16 15:51:30 GMT+05:30: Processing started
    - 2007-05-16 15:51:25 GMT+05:30: Error: java.lang.NullPointerException</b>
    can any one give me the idea how to send error from module program to SXMB_MONI
    Thanks & Regards
    Ravi Shankar B

  • Creating a new message in adapter module

    Hello,
    I already posted the question in this [Thread|Sending Adapter Module to split messages;, but I now create this new topic so you can get points for your answer
    Jan from this thread wrote "I know how to send a new message using a new instance of the Module Processor and using ModuleProcessor.process()" and I'm now searching for a code example how to create a new message from within an adapter module. I think it must be something like [this|http://help.sap.com/saphelp_srm40/helpdata/en/8d/6ad6409ff68631e10000000a1550b0/frameset.htm].
    Regards
    Markus

    Hi Sippy,
    First of all we need to configure the systems. So that we can transfer data from Outbound system to Inbound system.
    Configure an Outbound Process that uses Message Control
    Step 1: Create a new Message Type
    TCode: We 81
    Path: From the Area menu of EDI, choose Development, IDOC Type/ Message
    Step 2: link the IDOC type to the Message Type
    TCode: We 82
    Path: From the Area menu of EDI, choose Development, IDOC Type/ Message
    Step 3: Create a new Process Code
    TCode: We 41
    Path: From the Area menu of EDI, choose Control,Outbound Process COde
    Step 4: Create or Change a Partner Profile
    TCode: We 41
    Path: From the Area menu of EDI, choose IDOC,Partner Profile
    Configure an Outbound Process for Stand-Alone Programs.
    1. Create a new message type
    2. Link the IDOC type to the Message Type
    3. Add the message to the ALE Distribution Model(use BD 64)
    4. Create or change the Partner Profile
    I think this will be helpful for you.
    Reward points if useful.
    Cheers,
    Swamy Kunche

  • Cancel Message in Adapter Module

    Hi,
    I want to set the Status of a message to Canceled from within an Adapter Module. Is this possible?
    The problem I have is with a Mail receiver sending messages with blank attachments. I want the adapter module to check if the attachment is empty, then set the status of the message to cancelled.
    If this isn't possible is there a way of cancelling the message at an earlier stage? I know the File adapter has an option to not create empty files but the mail adapter doesn't.
    Thanks,
    Gareth

    Hi Gareth O´Brien,
    I understand your requirement as, when mail attachment is empty, it should not be sent to mail recepients.
    As far as I know, there is not standard way to do it. You can develop a Java Mapping or Adapter module and raise an error if attachemnt is empty (we cannot set message to canceled state), mail will not be sent with empty attachment.
    Java Mapping is easy to develop and maintian than Adapter Module. Java Mapping API Link1
    Regards,
    Raghu_Vamsee

  • Audit message in adapter module

    hi all
    I have developed a adapter module, in which I write some audit message. If the message is processed successfully, then I can see the audit message in RWB. But when some errors happen and some exceptions are thrown, I cannot see any audit message in RWB, what's more , I even cannot find the message in the adapter message monitoring. That means the message is lost. The only informaiton I can get is from the communication channel monitoring:
    <i>exception caught during processing mail message [4]com.sap.aii.af.mp.processor.ModuleProcessorException: Error during processing local bean: localejbs/PgpMsg caused by: com.sap.engine.services.ejb.exceptions.BaseEJBException: Exception in method process.</i>
    the SP level of XI is 18.
    Any idea?
    Thanks!
    Regards,
    Hui

    Hi Rajeev,
    That's what I do. My catch statement is as follow:
    catch(Exception e) {
    Audit.addAuditLogEntry(
                        amk,
                        AuditLogStatus.ERROR,
                         "Error while message processing----"
                        + e.getMessage());
    throw new ModuleException(e);
    I except that when an Exception is caught, it writes a audit log and throw a ModuleException. The message should be in error state and be resent several times automatically. But the current situation is: I cannot find the message in adapter message monitoring and the whole message is lost. The only information I can get is from the communication channel monitoring.

  • Converting INVOIC02 idoc to EDIFACT INVOIC message (Using Adapter Module

    Hi Friends,
    We are sending customer idoc (INVOIC02) from R/3 to external system through PI. We want to generate EDIFACT output file (message type : INVOIC).
    Is it possible to convert IDoc message to EDI file format through java adapter module ? Will adapter module support this  without using Seeburger adapter ?
    kindly clarify, friends.
    Kind regards,
    Jegathees P.

    There is an alternative to Seeburger.
    DataDirect also has complete EDI-XML conversion by way of deploying a module which is called from an adapter. The range of parameters with the conversion is also quite extensive, allowing tolerance for partners who may have included non-standard EDI qualifiers and such.  The XML tags make for easier mapping.  StylusStudio XML Suite includes the EDI<->XML adapter so you can try the conversions each way directly in that package.  If you are happy with it, you need to then purchase the package from DataDirect.  We did this and implemented EDI for X12 and EDIfact, including Orders and Invoices and some other messages.  The communications part was not included.  We wrote the EDI files and used a separate process to actually send and receive the files. The IDoc <-> EDI mapping  was done using the normal graphical mapping of SAP PI. The Stylus Studio package includes the functionality to generate the XSD, which we imported to SAP PI.

  • Multiple message through FIle Adapter using XI 2.0

    I have scenario to create multiple message using File adapter .My file structure will be like
    EMPID     NAME     SKILLS
    001     A      ABAP
    001     A      XI
    002     B      JAVA
    Now I want to post first 2 records in one message and last record in other message.
    Can we do it in XI 2.0.Any help appreciated

    Hi Suraj.
    Thank you very mutch for your reply.
    Excuse me...my mapping is done for message type and idoc.
    My problem is that when the interface start, on the sxmb_moni I see an error like this:
    Creating Java mapping com.sap.xi.tf._MM_XmlOrderToIdocMapping_ --- Using MappingResolver with context URL //srvsapdev/sapmnt/CX1/SYS/global/xi/mapping/gestione_magazzini/7fa9c9e15a7811dab710f3e3ac10826e/ --- Load of com/sap/xi/tf/_MM_XmlOrderToIdocMapping_.class from //srvsapdev/sapmnt/CX1/SYS/global/xi/mapping/gestione_magazzini/7fa9c9e15a7811dab710f3e3ac10826e failed. --- Class not found: com.sap.xi.tf._MM_XmlOrderToIdocMapping_ --- java.lang.ClassNotFoundException at RUMappingJava.load(): Could not load class: com.sap.xi.tf._MM_XmlOrderToIdocMapping_ Class not found: com.sap.xi.tf._MM_XmlOrderToIdocMapping_ --- com.sap.aii.ibrun.server.map.MappingRuntimeException: at com.sap.aii.ibrun.server.map.MappingRuntimeException.code_STYLESHEET_OR_CLASS_NOT_FOUND
    ..where 'gestione_magazzini' is my namespace and 'MM_XmlOrderToIdocMapping' is my message mapping.
    Can you help me to undestand the problem?
    Thanks,
    Gianluca

  • Multi-Mapping "Split mapping created no messages"

    Hi there
    I have some issie when trying to create multiple messages from a single message. I am using file to file adapter and in the interface determination, enhanced config. Also my file structures are setup correctly. The inbound and outbound structure looks the same so theres no funny mapping used. I cheked my comm channels in the RWB and its fine and when I do a test config in the integration builder it complains about my interface determination but does not say whats wrong. Just the icon. I looked at some of the other blogs but they do not really help. Any ideas what this might be? The inbound message looks like this:
      <?xml version="1.0" encoding="utf-8" ?>
    - <ns:MT_Allocations_Reply_OUTB xmlns:ns="urn:metcash.co.za:test">
    - <IDOC_Recordset>
    - <IDOC_Structure>
      <PLANT>134</PLANT>
      <ORDER_NUM>50885006</ORDER_NUM>
      <FILLER>1</FILLER>
      <PLU_NUM>00000000074893650</PLU_NUM>
      <QTY>000024.00</QTY>
      <FILLER_2>j</FILLER_2>
      </IDOC_Structure>
    - <IDOC_Structure>
      <PLANT>134</PLANT>
      <ORDER_NUM>50885006</ORDER_NUM>
      <FILLER>1</FILLER>
      <PLU_NUM>00000000074893650</PLU_NUM>
      <QTY>000024.00</QTY>
      <FILLER_2>j</FILLER_2>
      </IDOC_Structure>
    - <IDOC_Structure>
      <PLANT>134</PLANT>
      <ORDER_NUM>50885006</ORDER_NUM>
      <FILLER>1</FILLER>
      <PLU_NUM>00000000074893650</PLU_NUM>
      <QTY>000024.00</QTY>
      <FILLER_2>j</FILLER_2>
      </IDOC_Structure>
      </IDOC_Recordset>
      </ns:MT_Allocations_Reply_OUTB>
    *And the Error:*
      <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--  Request Message Mapping
      -->
    - <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="">
      <SAP:Category>XIServer</SAP:Category>
      <SAP:Code area="MAPPING">GENERIC</SAP:Code>
      <SAP:P1>Split mapping created no messages</SAP:P1>
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText />
      <SAP:ApplicationFaultMessage namespace="" />
      <SAP:Stack>Split mapping created no messages</SAP:Stack>
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    Thanx,
    Jan
    Edited by: Jan de Lange on Nov 24, 2008 10:25 AM

    I checked my config in the IR with the following payload, but is still only shows a stop icon on interface determination & mapping with no error trace:
    <?xml version="1.0" encoding="utf-8" ?>
      <ns:MT_Allocations_Reply_OUTB xmlns:ns="urn:metcash.co.za:test">
      <IDOC_Recordset>
      <IDOC_Structure>
      <PLANT>134</PLANT>
      <ORDER_NUM>50885006</ORDER_NUM>
      <FILLER>1</FILLER>
      <PLU_NUM>00000000074893650</PLU_NUM>
      <QTY>000024.00</QTY>
      <FILLER_2>j</FILLER_2>
      </IDOC_Structure>
      <IDOC_Structure>
      <PLANT>134</PLANT>
      <ORDER_NUM>50885006</ORDER_NUM>
      <FILLER>1</FILLER>
      <PLU_NUM>00000000074893650</PLU_NUM>
      <QTY>000024.00</QTY>
      <FILLER_2>j</FILLER_2>
      </IDOC_Structure>
      <IDOC_Structure>
      <PLANT>134</PLANT>
      <ORDER_NUM>50885006</ORDER_NUM>
      <FILLER>1</FILLER>
      <PLU_NUM>00000000074893650</PLU_NUM>
      <QTY>000024.00</QTY>
      <FILLER_2>j</FILLER_2>
      </IDOC_Structure>
      </IDOC_Recordset>
      </ns:MT_Allocations_Reply_OUTB>

  • Multiple message types for an idoc type

    Hi all,
    I created one custom idoc type with six segments. I heard that one idoc type can have any number of message types
    if it is so pls tell me how to assign these two message types for my idoc .
    i want to create multiple message types because i want to send same idoc type to diff legacy systems.
    My requirement is message type one is only for first three segments and message type two is for another three segments .
    The outbound program 1 for mess type 1 should fill fill the data for only first three segments and second outbound program corresponding to mess type 2 should fill the data for last three segments
    how should i design for my requirement. suppose if the idoc has two message types then it has two outbound programs?

    Hi Kunal,
    Below are my thoughts from a design perspective,
    My requirement is message type one is only for first three segments and message type two is for another three segments .
    The outbound program 1 for mess type 1 should fill fill the data for only first three segments and second outbound program corresponding to mess type 2 should fill the data for last three segments
    Before you look upon the no. of message types you need, i guess you need to look at the business requirement. Per your requirement you want to send send two sub sets of data. The first subset in the first 3 segments and other three segments for the second subset of data.
    Is the structure of the first subset of data similar to the second subset If not, better to create two IDOC Types. If they are similar, then create one IDOC Type with three segments and have two message types for each subset of data.
    For Ex: ORDERS05 is the IDOC type for Orders, this IDOC type provides capability to carry data related to any type of orders
    but the action on the data is facilitated by the message type like ORDERS for create, ORDCHG for change, ORDRSP for Order response etc.
    OR
    Are these two subsets of data related to each other, if yes understand the relation? If not related at all then you might be better of creating two separate IDOC Types.
    Like in the above example A purchase order is related to a sales order so you can use the same IDOC type, but in case of a order response and ASN that data sent is different and hence you will need different IDOC types (even though a SO is related to a DN).
    how should i design for my requirement. suppose if the idoc has two message types then it has two outbound programs?
    The above again depends on the how tightly/loosely coupled are the data sets, you can have just one program and have a simple case statement on the message types or have two different programs.
    You will also have to consider points like, if any of the subsets is more prone to more change in terms of the structure and associated business logic. If yes, then you might want to keep the programs separate to reduce work on regression testing etc.
    I am sure you will receive more inputs from the experts on the forum and the list of points to look for will get longer , so understand the requirement, dependencies and if you have any specific questions you could post it on the forum.
    Regards,
    Chen

  • Idocs multiple message types

    Hi all,
    I created one custom idoc type with six segments. I heard that one idoc type can have any number of message types
    if it is so pls tell me how to assign these two message types for my idoc .
    i want to create multiple message types because i want to send same idoc type to diff legacy systems.
    My requirement is message type one is only for first three segments  and message type two is for another three segments .
    The outbound program 1 for mess type 1 should fill fill the data for only first three segments and second outbound program corresponding to mess type 2 should fill the data for last three segments
    how should i design for my requirement. suppose if the idoc has two message types then it has two outbound programs?
    Edited by: kunal kakkar on May 16, 2011 10:21 AM
    Moderator message: duplicate post locked.
    Edited by: Thomas Zloch on May 16, 2011 12:39 PM

    COND_A01 is the IDoc to distribute the condition master data. Sales order (ORDERS05) is transactional data. It is not feasible to generate a master data IDoc from a sales document. Even if it was feasible, what would be the purpose? The master data hasn't changed, why would anyone want to send it again with every order?

  • How to create multiple files with Receiver File Adapter in SAP PI 7.31 Java Stack

    Dear Friends,
    I am using Sender JDBC Adapter and Receiver File Adapter in Integration Flow in SAP PI 7.3 EHP 1 SP08 Java Stack environment. The requirement is that we need to create multiple files based on the row count in jdbc resultset. If there are 5 rows in resultset, we need to create 5 XML files with one row elements in one file. Similarly if there are 10 rows, we need to create 10 XML files.
    So how can we create multiple files in this scenario. I tried placing a for loop in the Java Mapping as below in the transform method:
    DynamicConfiguration conf = arg0.getDynamicConfiguration();
    StringBuffer sbFileData = new StringBuffer();
    for (int i =0; i < record.size(); i++ {
         . // Create XML for each row and Marshal the object into to the String Buffer
         String strFileName = "DC_" + new SimpleDateFormat("ddMMyyyyHHmm").format(new java.util.Date())+"_"+i+".xml";
         conf.put(KEY_FILENAME, strFileName);
         arg1.getOutputPayload().getOutputStream().write(sbFileData.toString().getBytes("UTF-8"));
         arg1.getOutputPayload().getOutputStream().flush();
    So here I'm flushing the OutputStream for each record. But it's not creating the multiple file, instead it creates only one file will all record XMLs appended to each other.
    Please let me know if I missing something or need to do some thing else.
    Regards,
    Shreyansh Shah

    Hi
    You can easily achieve this using graphical mapping.  Create your target message type like below
    MT_Target
      Details  0 to 1
          Data  0 to 1
    Source sample structure
    <resultset>
    <row>
    <column-name>column-value</ column-name>
    </row>
    Then do the message mapping like below
    map <row> with  MT_Target
    contant ----> Deatils
    column-name ------>Data
    In the signature tab of message mapping, choose the occurrence of your target message type as
    0 to unbounded.
    This will generate multiple files from multiple rows.
    Let me know if you have any doubt.

  • How to access Adapter Specific Message Attribute in my  own adapter module

    Hi,
    I'm developing a mail adapter customer module. Now I have a requirement about getting the CC information from mail. Even if I
    checked the option of "use mail package" when configing sender Mail Adapter, I still can not get CC information in my module
    because it is not included in mail package.
    I got to know CC information is included in ASMA(Adapter Specific Message Attribute), but how can I access ASMA in my module?
    Till now I know there are two ways to access ASMA
    1. use AF_Modules/DynamicConfigurationBean XI standard module to access ASMA.I did it as below:
    add this module in front of my own module, then set key: write http://sap.com/xi/XI/System/Mail SHeaderCC and value :      
    <b>message.refToMessageId</b>(which message property should be put here?). I'm trying to get it by message.getRefToMessageId() in my
    own module. But what happens is not as I expected, I get null instead of CC information. Which step I did wrong?
    2. use mapping api
       DynamicConfiguration conf = (DynamicConfiguration) <b>container</b>
        .getTransformationParameters()
        .get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
         DynamicConfigurationKey key = DynamicConfigurationKey.create(
             “http://sap.com/xi/XI/System/Mail”,
             “SHeaderCC”);
    but how can I get <b>container</b> object in my module?
    Is there any other way to access ASMA in customer module?
    Thanks

    hi,
    >>>>but how can I access ASMA in my module?
    have a look at this blog:
    /people/daniel.graversen/blog/2006/10/05/dynamic-configuration-in-adapter-modules
    and try getMessageProperty
    it's also here:
    in Adapter-Specific Message Attributes link
    http://help.sap.com/saphelp_nw04/helpdata/en/17/50d440e14f8431e10000000a1550b0/frameset.htm
    Regards,
    michal
    <a href="/people/michal.krawczyk2/blog/2005/06/28/xipi-faq-frequently-asked-questions"><b>XI / PI FAQ - Frequently Asked Questions</b></a>

  • Reciever File Adapter to create multiple target files

    Hi All,
    I have done the mapping to create multiple output messages . I would like each of the messages to be stored as a separate file in the target .
    Below is the output message with 2 separate MT_CANCELOUT  messages . However, both end up in one single xml file .
    How do I configure the receiver file adapter to ouput 2 separate xml files  ?
    <ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
    <ns0:Message1>
    <ns1:MT_CANCELOUT xmlns:ns1="urn://gm.com:VBVTEST">
    <LineItem>
      <id>456</id>
      <name>HEY</name>
      </LineItem>
      </ns1:MT_CANCELOUT>
    <ns1:MT_CANCELOUT xmlns:ns1="urn://gm.com:VBVTEST">
    <LineItem>
      <id>567</id>
      <name>RAT</name>
      </LineItem>
      </ns1:MT_CANCELOUT>
      </ns0:Message1>
      </ns0:Messages>

    Hi,
    Sorry to say you that but your post show the opposite, it shows you have only one target message !
    <ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
    <ns0:Message1>______<<<<<<<
    <ns1:MT_CANCELOUT xmlns:ns1="urn://gm.com:VBVTEST">
    <LineItem>
    <id>456</id>
    <name>HEY</name>
    </LineItem>
    </ns1:MT_CANCELOUT>
    <ns1:MT_CANCELOUT xmlns:ns1="urn://gm.com:VBVTEST">
    <LineItem>
    <id>567</id>
    <name>RAT</name>
    </LineItem>
    </ns1:MT_CANCELOUT>
    </ns0:Message1>______<<<<<<<
    </ns0:Messages>
    If you want two files, you should generate two Messages, and so to do that:
    In MM, in your target (tab before "function"), you should have 1 source MT and in target MT, you should have two lines (even if you use the same target MT), after having changed the ouccurence 1->N.
    do the same in your operation mapping: 1->N with two receiver service interface (even if it's the same)
    because you should have something like:
    <ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
    <ns0:Message1>
    <ns1:MT_CANCELOUT xmlns:ns1="urn://gm.com:VBVTEST">
    <LineItem>
    <id>456</id>
    <name>HEY</name>
    </LineItem>
    </ns1:MT_CANCELOUT>
    </ns0:Message1>  _____<<<<<<<
    <ns0:Message2> _____<<<<<<<
    <ns1:MT_CANCELOUT xmlns:ns1="urn://gm.com:VBVTEST">
    <LineItem>
    <id>567</id>
    <name>RAT</name>
    </LineItem>
    </ns1:MT_CANCELOUT>
    </ns0:Message2>
    </ns0:Messages>
    regards
    mickael
    Edited by: Mickael Huchet on Dec 2, 2011 8:58 PM

  • PI 7.1 Adapter Module Development - Identify SOAP Fault Message

    Hi Experts,</br>
    here's a PI 7.1 Adapter Module Development issue I hope you can help me to resolve. It's about identifying SOAP fault messages.</br>
    </br>
    Scenario at a glance:</br>
    Adapter Modules placed in the modules chain at request and response time in a synchronous Scenario:</br>
    - Request: SOAP Axis to RFC </br>
    - Response and Fault Response: RFC to SOAP Axis</br>
    </br>
    The issue is how to identify SOAP fault message in SOAP Axis Adapter Module in the response message:</br>
    The client gets SOAP fault messages like the follwong one:</br>
       <SOAP:Body>
          <SOAP:Fault>
             <faultcode>SOAP:Server</faultcode>
             <faultstring>Server Error</faultstring>
             <detail>
                <ns1:exception xmlns:ns1="http://typen.geschaeftsstelle.pab.barmer.de">
                   <ns1:errortext>bla bla bla ...</ns1:errortext>
                </ns1:exception>
             </detail>
          </SOAP:Fault>
       </SOAP:Body>
    </br>
    </br>
    But when trying to access the tags faultcode and/or faultstring in the adapter module via xPath expressions I do not get them. Obviously the SOAP Fault tags are built AFTER the adapter module has been passed. So my question is:</br>
    How can I clearly/uniquely detect a SOAP fault response message (and distinguish it from a "normal" response message) in my SOAP Axis Adapter Module?</br>
    </br>
    I tried it the following way:</br>
    </br>
    </br>
    // Check Message Payload for SOAP Fault Message via xPath expressions</br>
    ...</br>
    // SOAP Fault Code</br>
    zv_xPression = zc_constXPattern.replaceFirst("&", "faultcode");</br>
    zv_soapFaultCode = XPathAPI.eval(zv_doc, (String) zv_xPression).toString();</br>
    // SOAP Fault String</br>
    zv_xPression = zc_constXPattern.replaceFirst("&", "faultstring");</br>
    zv_soapFaultString = XPathAPI.eval(zv_doc, (String) zv_xPression).toString();</br>
    // check for SOAP Fault Message</br>
    if (zv_soapFaultCode.equals("") && zv_soapFaultString.equals("")) {</br>
         // Create Audit Log entry - NOT a SOAP Fault Message</br>
         zv_msgText = zc_constModuleName + " 0190: xPath - OK! This message is NOT a SOAP Fault Message";</br>
         zv_audit.addAuditLogEntry(zv_msgKey, AuditLogStatus.SUCCESS, zv_msgText);</br>
         zv_faultCheck = false;</br>
    }</br>
    else {</br>
         ...</br>
         // Create Audit Log entry - SOAP Fault Message</br>
         zv_msgText = zc_constModuleName </br>
              + " 0200: xPath - this message is a SOAP Fault Message. " </br>
              + " - Faultcode is: " + zv_soapFaultCode </br>
              + " - Faultstring is: " + zv_soapFaultString; </br>
         zv_audit.addAuditLogEntry(zv_msgKey, AuditLogStatus.ERROR, zv_msgText);</br>
         ...</br>
    }</br>
    ...</br>
    </br></br>
    But zv_soapFaultCode and zv_soapFaultString are always empty (with other payload tags this coding works fine).</br>
    </br>
    Any ideas? </br></br>
    Thanx very much in advance!</br></br>
    Regards,</br>
    Volker

    Hi Alex!
    Like already mentioned I solved my problem by identifying the SOAP exception with the messageClass attribute of the PI message header. Acess code:
    try {
    String zv_msgClass = zv_piMsg.getMessageClass().toString();
    } catch (Exception e) {
    zv_msgText = zc_constModuleName
    + " E0110: Message processing terminated."
    + " Reason: Error while getting MessageClass "
    + zv_dataSource
    + e;
    // create trace and audit log entry (severity ERROR) for exception
    zv_location.errorT(ZV_SIGNATURE, zv_msgText);
    zv_audit.addAuditLogEntry(zv_msgKey, AuditLogStatus.ERROR, zv_msgText);
    ModuleException me = new ModuleException(e);
    zv_location.throwing(ZV_SIGNATURE, me);
    e.printStackTrace();
    throw me;
    }     // end of try-catch-block
    But I do not think this will solve your problem. I am almost sure, that something in your Axis configuration is wrong/missing. If a handler cannot be instatiated then it really may be missing. Have a look at defaultTrace.trc. Maybe you will find more suitable information about the root cause of your problem. Also have a look at NWA under software components and/or application modules if you can find/see your modules.
    But there is a general issue when trying to catch PI fault messages. If e.g. the requestor tries to login with wrong userid/pasword, then you will have no chance to catch this kind of error - at least as far as I know. Because in this very early stage of PI message processing no module is called.
    One last question: Did you develop your own Adapter or just an adapter module? In the first case: Is your adapter started and healthy? Have a look at RWB -> communication channel monitoring.
    Regards,
    Volker

  • Set a variable in Adapter Module and read it during message mapping

    Hi guys,
    is there any way, how I could set some variable and store its value during the adapter module processing and read back this value in message mapping and use it? Without using a database or files.. I mean, some j2ee storage or something like that..
    Thanks for your help,
    Olian

    Hi guys,
    thanks for your answers..  just a clarification, what the problem is.
    I need to validate a message in the adapter module, if it's digital signature is valid. If it is, I need to send back to the sender a return code (message) OK, otherwise ERROR. I can't modify the message (or dynamic configuration) as I'm using a WSS in the sender channel. The system doesn't allow me to change anything in the message, so I can't find out in the mapping what the validation result was. I then tried to do the validation directly in the message mapping, but I have some issues there with libraries or what, because the validation code, which works in the adapter module, doesn't work in the mapping java class. So my final thought was maybe I could validate the message in the adapter module and pass the result to the message mapping and then create an appropriate return message (in the mapping). However, I see no way of passing a value there. I'm stuck and have no Idea how to resolve the problem. Any hints guys?
    Thanks a lot for your help!
    Olian

Maybe you are looking for

  • How do I delete a child apple id from family sharing

    I have (please don't ask me how) doubled up my child's account under family sharing and need to delete one of them.  How do I delete a child apple id in family sharing? Any directions gratefully received.  You do not get the normal remove button that

  • Get Info does not allow me to manually add album artwork

    Hello, I am trying to manually upload album artwork on iTunes with my Windows PC (Windows 8.1 64 bit).  I followed all of the steps for doing this as outlined here in the Help section.  I did a Google search, found the album artwork in JPEG format on

  • Asset No. of the scrapped asset not appearing in the GL Line item display

    Hi Friends, As a part of the year end process the users have written of some of the assets thru T Code "ABAVN" - Asset Scrapping without revenue. The losses arising were posted to the particular GL Account as was defined in the config. However, when

  • Next inspection date

    "Inspection interval" is defined in the QM view of Material Master, and the system is calculating the Next inspection date from mfg. date automatically, and feeding it automatically in the relevant field in the Batch. Hence, we need to change u201CNe

  • Strategies for performance.

    Hi Folks, wondering if any data available on posible strategies for benchmarking perfomance of Oracle Portal. Some kinda of data sheet, ??? SKD