1 to 1 Mapping using Indirection is causing a StackOverflowError exception

I am trying to map a database column that contains a BLOB (i.e. PDF) to a persistent object's attribute that will contain the BLOB as a "1 to 1 mapping" utilizing "Indirection".
The type of the persistent object's attribute is ValueHolderInterface and it is initialized as ValueHolder in the object's constructor.
The column that contains the BLOB is not a primary key therefore in the "Table Reference" tab of the TopLink Workbench I use the database table's primary key for the "Source Field" and "Target Field".
The mapping seems find until I test the code. When the code is executed a java.lang.StackOverflowError exception is thrown in the following method ServerSession(DatabaseSession).initializeDescriptors(Hashtable).
In this scenario I am using "indirection" for obvious reasons. I want to have the ability to retrieve all the data in the row(s) except the PDF(s) so I can build a list for the user to choose from. If the user makes a selection I want to then go and retrieve the PDF via the persistent object's get/set methods that utilize the ValueHolder's interface methods getValue/setValue.
Does anyone have any idea why this exception is being thrown and anyway to fix it? ANY help would be greatly appreciated. I included the stack trace below.
The IDE our company is using at the moment is IBM's VisualAge for Java 4.0....don't ask.
Debugger Stack Trace Report:
Thread[P=359251:O=0:CT,5,main] (Alive)
Uncaught exception (java.lang.StackOverflowError)
     ServerSession(DatabaseSession).initializeDescriptors(Hashtable)
          this=(oracle.toplink.threetier.ServerSession) ServerSession(
     DatabaseAccessor(connected)
     OraclePlatform)
          arg_1=(java.util.Hashtable) {class com.nwprov.provconnect.qss.domain.QssStatementTypes=Descriptor(com.nwprov.provconnect.qss.domain.QssStatementTypes --> [DatabaseTable(QSS_STATEMENT_TYPES)]), class com.nwprov.provconnect.qss.domain.QssTransactionTypes=Descriptor(com.nwprov.provconnect.qss.domain.QssTransactionTypes --> [DatabaseTable(QSS_TRANSACTION_TYPES)]), class com.nwprov.provconnect.qss.domain.QssTransactions=Descriptor(com.nwprov.provconnect.qss.domain.QssTransactions --> [DatabaseTable(QSS_TRANSACTIONS)]), class com.nwprov.provconnect.qss.domain.QssPolicyStatements=Descriptor(com.nwprov.provconnect.qss.domain.QssPolicyStatements --> [DatabaseTable(QSS_POLICY_STATEMENTS)]), class com.nwprov.provconnect.qss.domain.QssSubaccountPerformance=Descriptor(com.nwprov.provconnect.qss.domain.QssSubaccountPerformance --> [DatabaseTable(QSS_SUBACCOUNT_PERFORMANCE)])}
     ServerSession(DatabaseSession).initializeDescriptors()
          this=(oracle.toplink.threetier.ServerSession) ServerSession(
     DatabaseAccessor(connected)
     OraclePlatform)
     ServerSession(DatabaseSession).login()
          this=(oracle.toplink.threetier.ServerSession) ServerSession(
     DatabaseAccessor(connected)
     OraclePlatform)
     SessionManager.getSession(XMLLoader, String, ClassLoader, boolean, boolean)
          this=(oracle.toplink.tools.sessionmanagement.SessionManager) oracle.toplink.tools.sessionmanagement.SessionManager@5172
          arg_1=(oracle.toplink.tools.sessionconfiguration.XMLLoader) oracle.toplink.tools.sessionconfiguration.XMLLoader@146c
          arg_2=(java.lang.String) qss
          arg_3=(java.lang.ClassLoader) sun.misc.Launcher$AppClassLoader@51e4
          arg_4=(boolean) true
          arg_5=(boolean) false
     SessionManager.getSession(XMLLoader, String, ClassLoader)
          this=(oracle.toplink.tools.sessionmanagement.SessionManager) oracle.toplink.tools.sessionmanagement.SessionManager@5172
          arg_1=(oracle.toplink.tools.sessionconfiguration.XMLLoader) oracle.toplink.tools.sessionconfiguration.XMLLoader@146c
          arg_2=(java.lang.String) qss
          arg_3=(java.lang.ClassLoader) sun.misc.Launcher$AppClassLoader@51e4
     SessionManager.getSession(String)
          this=(oracle.toplink.tools.sessionmanagement.SessionManager) oracle.toplink.tools.sessionmanagement.SessionManager@5172
          arg_1=(java.lang.String) qss
     SessionSingleton.initializeSession(String)
          this=(com.nwprov.toplink.SessionSingleton) com.nwprov.toplink.SessionSingleton@4e0
          projectName=(java.lang.String) qss
     SessionSingleton.getSession(String)
          this=(com.nwprov.toplink.SessionSingleton) com.nwprov.toplink.SessionSingleton@4e0
          projectName=(java.lang.String) qss
          serverSession=(oracle.toplink.threetier.ServerSession) null
     PerformancePdfRetriever(TopLinkPdfAccessor).queryForPdf(Expression)
          this=(com.nwprov.provconnect.qss.statement.PerformancePdfRetriever) [email protected]
          topLinkExpression=(oracle.toplink.expressions.Expression)
Logical operator AND
Logical operator AND
Relation operator =
Query Key legacyProductCode
Base QUERY OBJECT
Constant 00001
Relation operator =
Query Key statementPerformanceDate
Base QUERY OBJECT
Constant 2003-07-01
Relation operator =
Query Key legacyCoCode
Base QUERY OBJECT
Constant 01
     PerformancePdfRetriever.getPdf(String, Date, String)
          this=(com.nwprov.provconnect.qss.statement.PerformancePdfRetriever) [email protected]
          legacyProdCode=(java.lang.String) 00001
          stmntPrfmncDate=(java.sql.Date) 2003-07-01
          legacyCoCode=(java.lang.String) 01
          pdfTopLinkObject=(com.nwprov.provconnect.qss.domain.IPdf) com.nwprov.provconnect.qss.domain.QssSubaccountPerformance@28ea
          expression=(oracle.toplink.expressions.Expression)
Logical operator AND
Logical operator AND
Relation operator =
Query Key legacyProductCode
Base QUERY OBJECT
Constant 00001
Relation operator =
Query Key statementPerformanceDate
Base QUERY OBJECT
Constant 2003-07-01
Relation operator =
Query Key legacyCoCode
Base QUERY OBJECT
Constant 01
     Object.Doit()
          retrievePerformancePdfHelper=(com.nwprov.provconnect.qss.statement.PerformancePdfRetriever) [email protected]
          legacyProdCode=(java.lang.String) 00001
          statementPerfDate=(java.sql.Date) 2003-07-01
          legacyCoCode=(java.lang.String) 01

Hello Don,
Let me preface by saying thanks for being a brave soul to assist with this.
Is there anything in the output leading up to the exception? No. There isn't any other output because the part of the code that I am unit testing just performs the function of retrieving the BLOB (i.e. PDF) from the database. I used hard coded values for the multi-value primary key in the driver.
Is there some sort of obvious recursive query going on? No, not from what I can tell.
Stack overflows usually result from bi-directional relationships where caching is turned off. If this is the case, use a Weak cache.This is not a bi-directinal relationship so let me provide you with details that lead up to the stack overflow.
Details:
- An expression is built using the hard coded values for the primary key:
     Expression exp1 = builder.get(LEGACY_PRODUCT_CODE).equal(legacyProdCode);
     Expression exp2 = builder.get(STATEMENT_PERFORMANCE_DATE).equal(stmntPrfmncDate);
     Expression exp3 = builder.get(LEGACY_CO_CODE).equal(legacyCoCode);
     Expression finalExp = exp1.and(exp2);
     finalExpression = finalExpression.and(exp3);
- Expression is being executed:
Session session = SessionSingleton.getInstance().getSession(SESSION_NAME);
Collection pdfTopLinkObjects = new Vector();
          pdfTopLinkObjects = session.readAllObjects(queryObject.getClass(), topLinkExpression);
- Returned Collection is investigated & utilized for values using Iterator
BTW, in my first post there was an error. Here is the correction:
The column that contains the BLOB is not a primary key therefore in the "Table Reference" tab of the TopLink Workbench I tried both os these situations:
1. Used the database table's primary key for the "Source Field" and "Target Field".
2. Used the database table's column that stores the BLOB (i.e. PDF) for the "Source Field" and "Target Field".
Am I using the write type of mapping for this? As stated before I am currently using "one to one with Indirection" or should I be using something else.
Dan, is this enough info to help diagnose the problem? I hope so :-(

Similar Messages

  • Using Back button causes Null Pointer exception

    Hi,
    I have done some customization by extending the seeded Controller on a Page.I have altered the View query and executed it again dynamically as its not a static query.
    There is a functionality called compare which directs the users to a page from the page I have customised the controller.
    If the user uses the back button to return to the previous page it is giving a Null Pointer exception.
    Also refresh button causes a similar Null Pointer exception on the customised controller page.
    can anybody throw some light?
    Also is there a way to disable the back and refresh button on the page?

    Is the control entering the back button code in process request in your CO? Have you confirmed this by putting some debug comments?It many be that this error might being from the code where you have handled back button.
    Put debugging comments and check.
    --Mukul                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • Mapping using substing is not working after upgrade to PI SP13

    Hi all,
    In XI SP 14 we had a mapping that used a lot of substing commands to switch around a data time stamp. It basically said, if the node was not blank(its is being passed as blank on occasion instead of null) then run all the substing commands to move the date and time around. Now in PI SP13 it is still trying to run the substing mappings for the records with blank values coming in, even though the IF statment acknowledges that it should be suppressed. This is causing a java exception for the command since the field is not long enough for the substing. Has anyone else run into this problem?
    Regards,
    Chris

    HI,
    Before the If condition just try to add the API SplitByVlaue or maybe concat the field with balnk spaces.
    If you could give the exact details of the applied condition then it will be easy to give you the proper way that could achieve with mapping.
    Its surprising that if the same mapping is working out for old SP and now its creating problem for the PI SP13.
    Thanks
    Swarup

  • How to reconcile procedure or function in a mapping using OMB Plus?

    HI,
    Could any one please explain, how to reconcile a procedure or function used in a mapping?
    Thank you,
    Regards,
    Gowtham Sen.

    Hi,
    You can only reconcile Inbound (from Procedure to the mapping) :
    OMBRECONCILE PROCEDURE \
    '/[Project_name]/[Module_name]/[Procedure_name]
    TO MAPPING '[Mapping_name]' \
    OPERATOR '[for example name of a Post-Mapping Process in the mapping]' \
    USE (RECONCILE_STRATEGY 'REPLACE', MATCHING_STRATEGY 'MATCH_BY_OBJECT_ID')
    Hope that will help.
    Best Regards
    Samy

  • Oracle.jbo.NoDefException: JBO-29114 ADFContext is not setup to process messages for this exception. Use the exception stack trace and error code to investigate the root cause of this exception. Root cause error code is JBO-25058. Error message parameters

    Dear Guru's,
    I am not able to solve the above issue for last couple of days.
    I am newbie to the webservice
    My Issue...
    I am using Jdeveloper 11.1.2.4.0 Release 2
    1. Using Jdev I built one small Web Service with two methods.
            While testing the Webservice...
                   I passed User Id as Parameter and it successfully return the values (user id, user name and description) from fnd_user table
    2. I created another application to consume the web service i created.
                   1. I added the webservice SOAP and added the method.
                   2. Created a jsf page and drag and drop the parameter and return values to the jsf page.
    3. While executing the created jsf page I received the error message as below
    "oracle.jbo.NoDefException: JBO-29114 ADFContext is not setup to process messages for this exception. Use the exception stack trace and error code to investigate the root cause of this exception. Root cause error code is JBO-25058. Error message parameters are {0=Attribute, 1=UserName, 2=UserName}"
    Even I know that this issue is repeated one in our forum, I was not able to solve this issue.
    Can anybody help to solve this issue.
    Thanks and Regards,
    Durai S E

    Dear Guru's,
    I am not able to solve the above issue for last couple of days.
    I am newbie to the webservice
    My Issue...
    I am using Jdeveloper 11.1.2.4.0 Release 2
    1. Using Jdev I built one small Web Service with two methods.
            While testing the Webservice...
                   I passed User Id as Parameter and it successfully return the values (user id, user name and description) from fnd_user table
    2. I created another application to consume the web service i created.
                   1. I added the webservice SOAP and added the method.
                   2. Created a jsf page and drag and drop the parameter and return values to the jsf page.
    3. While executing the created jsf page I received the error message as below
    "oracle.jbo.NoDefException: JBO-29114 ADFContext is not setup to process messages for this exception. Use the exception stack trace and error code to investigate the root cause of this exception. Root cause error code is JBO-25058. Error message parameters are {0=Attribute, 1=UserName, 2=UserName}"
    Even I know that this issue is repeated one in our forum, I was not able to solve this issue.
    Can anybody help to solve this issue.
    Thanks and Regards,
    Durai S E

  • File name cant be fetched from Dynamic configuration...mutli-mapping used

    In a scenario, i have a BPM which has a transformation step which contains a mutimapping ...means 2 messages mapped to 1 messgaes, here in the mapping i m using an UDF and written code to extract the file name from dynamic configuration.....
    the problem is ...the same BPM contains another transformation step which contains a message mapping (which is not multi mapping), and here the code (UDF) works to fetch the file name...
    the code is all correct....and it looks like
    DynamicConfiguration conf = (DynamicConfiguration)
    container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File","FileName");
    String sourceFileName = conf.get(key);
    if (sourceFileName == null ){
    sourceFileName = "ErrorFile.xml";}
    return sourceFileName;

    Hi,
    Yes u r correct it will show error in operation mapping.. bcoz u cannot check the DynamicConfiguration in Operation mapping...
    It will throw Exception..
    The parameter to UDF depends on ur requirement.... Let us know ur requirements exactly...
    If u r doing for file to file means no UDF required,, just check ASMA on both sides....
    Babu

  • Reg - XSLT Mapping using stylesheet exception during test

    Hi experts,
    I am new to SAP PI. Currently i am working on PI's XSLT Mapping using Stylusstudio.
    I got error *Transformer Configuration Exception occurred when loading XSLT <name>.xsl; details: Could not compile stylesheet*.
    I tried test by selecting SAP XML TOOLKIT too, then i am facing
    *com.sap.engine.lib.xml.parser.NestedSAXParseException: Fatal Error: com.sap.engine.lib.xml.parser.ParserException: XMLParser: Prefix 'a' is not mapped to a namespace (:main:, row:4, col:15)(:main:, row=4, col=15) -> com.sap.engine.lib.xml.parser.ParserException: XMLParser: Prefix 'a' is not mapped to a namespace (:main:, row:4, col:15)*.
    Kindly help me to overcome this issue.

    Hi,
    Simply your XSLT file is not a well-formed XML. Check your syntax. You could also use the XML Tools plugin to Notepad++ to help you determine where the syntax error is precisely.
    Moreover, this error "Prefix 'a' is not mapped to a namespace" might mean that you are using a tag: <a:something>, but "a" is not properly declared as a namespace, for instance like: xmlns:a="something.sap.com".
    Hope this helps,
    Greg

  • N:1 mapping using XSLT

    Hi,
    I have a scenario in which i have to do a N:1 mapping using XSLT.
    I am doing this using the BpmPatternCollectMultiIf giving the XSLT mapping in the transformation step...
    But, the transformation step is returning the following error:
    Error: Exception CX_MERGE_SPLIT occurred (program: CL_MERGE_SPLIT_SERVICE========CP, include: CL_
    My XSLT mapping is as follows:
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
    <xsl:template match="/">
         <item xmlns:xs="http://www.w3.org/2001/XMLSchema-instance">
              <KEYCODE>
                   <xsl:value-of select="ns0:Messages/ns0:Message1/fsxml/item/keycode"/>
                   </KEYCODE>
                   <DESCRIPTION>
                        <xsl:value-of select="ns0:Messages/ns0:Message1/fsxml/item/description"/>
                   </DESCRIPTION>
                   <CLASS>
                        <xsl:value-of select="ns0:Messages/ns0:Message1/fsxml/item/class"/>
                   </CLASS>
                   <ONE>
                       <xsl:value-of select="ns0:Messages/ns0:Message2/test/row/one"/>
                   </ONE>
                   <TWO>
                       <xsl:value-of select="ns0:Messages/ns0:Message2/test/row/two"/>                                                      </TWO>
              </item>
         </xsl:template>
    </xsl:stylesheet>
    Here,<b> fsxml</b> is the first message and<b> test</b> is the second message.
    Kindly let me know if there is any problem in the XSLT mapping.
    Thanks in advance,
    Thanks,
    Karen Pereira

    Hi,
    There was problem in the XSLT mapping. i figured it out and fixed it and the scenario worked.
    The new mapping was as follows:
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
         <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
         <xsl:template match="/">
              <ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
                   <ns0:Message1>
                        <item xmlns:xs="http://www.w3.org/2001/XMLSchema-instance">
                             <!-- Mapping for tags which are to be directly replicated in the target message-->
                             <KEYCODE>
                                  <xsl:value-of select="ns0:Messages/ns0:Message1/fsxml/item/keycode"/>
                             </KEYCODE>
                             <DESCRIPTION>
                                  <xsl:value-of select="ns0:Messages/ns0:Message1/fsxml/item/description"/>
                             </DESCRIPTION>
                             <CLASS>
                                  <xsl:value-of select="ns0:Messages/ns0:Message1/fsxml/item/class"/>
                             </CLASS>
                             <ONE>
                                  <xsl:value-of select="ns0:Messages/ns0:Message2/test/row/one"/>
                             </ONE>
                             <TWO>
                                  <xsl:value-of select="ns0:Messages/ns0:Message2/test/row/two"/>
                             </TWO>
                   </item>
                   </ns0:Message1>
              </ns0:Messages>
         </xsl:template>
    </xsl:stylesheet>
    Thanks,
    Karen

  • Error: 1:n multi-mapping using BPM for file to file scenario

    Hi. Iu2019m trying to do 1:n multi-mapping using bpm scenario. I use file to file. Input file consists of many records and then I want many record to be transformed into many file at target system. I follow step in http://www.riyaz.net/blog/xipi-1n-multi-mapping-using-bpm/. However, I have a problem when file is retrieved in to XI. It doesnu2019t create any output file.
    When I look at SXMB_MONI, it shows u201CNo object type found for the message Check that the corresponding process is activated.u201D Besides, it shows error message "Unable to perform action for selected message" when i clikc at PE in SXMB_MONI.
    I have check at many previous posts with the same error message but still couldnu2019t solve it. I already activate my BPM and check that status in SXI_CACHE = 0. There is noting left in change list of my IR and ID.
    Here is my design and configuration.
    IR
    Data Type: DT_file_split -> for both input and output file
    Message Type: MT_file_split_sender, MT_file_split_receiver
    Message Interface: SI_file_split_in, SI_file_split_out, SI_file_abs_source, SI_file_abs_target
    Message mapping: MM_file_split for mapping MT_file_split_sender with MT_file_split_receiver
    Interface mapping: OM_file_split
    u2022     Source = SI_file_split_out
    u2022     Target = SI_file_split_in
    u2022     Mapping Program = MM_file_split
    BPM following this link http://www.riyaz.net/blog/xipi-1n-multi-mapping-using-bpm/.
    ID
    Import my Integration process
    2 Communication Channel for getting input file (CC_File_split_sender) and creating output file (CC_File_split)
    2 Receiver determination:
    u2022     Source system to BPM using interface SI_File_Abs_source
    u2022     BPM to target system using interface SI_File_Abs_target
    1 Interface determination:
    u2022     from source system to BPM
    u2022     Sender interface: SI_File_Split_Out
    u2022     Receiver interface: SI_file_abs_source
    1 Sender Agreement
    u2022     Commu. Component: Source System
    u2022     Using interface: SI_File_Abs_source
    u2022     Sender Communication Channel: CC_File_Split_Sender
    1 Receiver Agreement
    u2022     Sender Communication Component: BPM
    u2022     Receiver Communication Component: Target System
    u2022     Receiver Interface: SI_File_Split_In
    u2022     Receiver Communication Channel: CC_File_Split
    Anyone know how to fix this?
    Thanks,
    Pavin

    Hi,
    Yes, thats the problem.
    You are creating file from test tab of  1..N mapping .
    In case of 1..N mappping in mapping Extra tags of messages are addded to the data.As shown here:-
    Messages
          Message1
               MessageType
    When you use this mapping to generate xml message then it will add additional tags for <Messages> and <Message1>, which is not correct. it should only have structure of you MT.
    So remove start and end tag of <Messages> and <Message1> from your data file. Mentioned below in bold.
    <xml......>
    <Messages>
    <Message1>
    <MT_...>
    </MT_...>
    </Message1>
    </Messages>
    This should solve your problem.
    Regards,
    Sami.

  • Create Attachment within Graphical Mapping using UDF

    Hi!
    We want to create an attachment witihn a graphical mapping using an UDF function.
    I use that function:
    public String addAttachment(String filename, String mimeType, String content, Container container) throws StreamTransformationException{
         BASE64Decoder decoder=new BASE64Decoder();
         try {
              GlobalContainer globalContainer = container.getGlobalContainer();
              OutputAttachments outputAttachments = globalContainer.getOutputAttachments();
              Attachment attachments = outputAttachments.create(filename, mimeType,decoder.decodeBuffer(content));
              outputAttachments.setAttachment(attachments);
              return "Adde1: "+filename;
         } catch (Exception e) {
              return e.toString();
    (SDN helped me much in creating that
    This function has no compiling errors, anything workes fine:
    It takes 3 input-parameters, see also: http://help.sap.com/javadocs/pi/SP3/xpi/com/sap/aii/mapping/api/OutputAttachments.html
    filename (ok, more or less contentID)
    mimeType (more or less contentType)
    content: Base64-encoded String which should be set as content
    In my sample I use the following constants for that function:
    filename = "fn1.txt"
    mimeType="application/xml"
    content = "UG9seWZvbiB6d2l0c2NoZXJuZCBhw59lbiBNw6R4Y2hlbnMgVsO2Z2VsIFLDvGJlbiwgSm9naHVydCB1bmQgUXVhcms=" --> cames directly from http://de.wikipedia.org/wiki/Base64
    When using the message, I got this error within SXMB_MONI:
    <SAP:AdditionalText>com.sap.engine.interfaces.messaging.api.exception.MessagingException: Could not queue receive for
    message 0022642d-b106-02df-8e8c-f41c243bd112(INBOUND). Reason: java.lang.NullPointerException: while trying to
    invoke the method com.sap.aii.af.sdk.xi.lang.Binary.getBytes() of an object returned from
    com.sap.aii.af.sdk.xi.mo.xmb.XMBPayload.getContent()</SAP:AdditionalText>
    This looks pretty much the same as Add Attachment from ABAP Mapping but this tread is also not answered.
    Adding attachment from PI level looks also in that direction, again, no answer.
    So, I was wondering if someone has solved such problem?

    Hi Divyesh!
    We did it that way:
    1. Choosing the XML-Mailstructure as Destination as described in Configuring the Receiver Mail Adapter - Advanced Adapter Engine - SAP Library -  Example (XI payload with mail package)
    2. now we have created a UDF for creating the "content"
    public void getContent(String[] text, String[] attFname, String[] attType, String[] attContent, ResultList result, Container container) throws StreamTransformationException{
    // vergleich ob alle att-Arrays selbe anzahl haben
    if (attFname.length!=attType.length || attFname.length!=attContent.length) {
        result.addValue(Integer.parseInt("Fehler: alle Attachment-Eingänge müssen die selbe Anzahl an Elementen haben!"));
        String CRLF = "\r\n";
        String output="This is a multi-part message in MIME format."+CRLF+CRLF+
        "--"+getBoundary(container)+CRLF+
        "Content-Type: text/plain; charset=UTF-8"+CRLF+
        "Content-Disposition: inline" + CRLF + CRLF +
        text[0]+CRLF;
    for (int i=0;i<attFname.length;i++) {
        output+="--"+getBoundary(container)+CRLF+
        "Content-Type: "+attType[i]+"; name="+((char)34)+attFname[i]+((char)34)+CRLF+
        "Content-Disposition: attachment; filename="+((char)34)+attFname[i]+((char)34)+CRLF+
        "Content-Transfer-Encoding: Base64"+CRLF+CRLF+attContent[i]+CRLF;
    output+="--"+getBoundary(container)+CRLF;
    result.addValue(output);
    This UDF is configured as "QUEUE"
    We have configured this input-structure
    The Content itself is allready base64.
    So we can call this mapping and it creates a Multipart-Mail for us.

  • Is it possible to do message mapping using different namespace message type

    Hi all,
    Is it possible to do message mapping using different namespaces message types
    Example :
    i am having message type MT_1 in namespace http://sap.com/abc
    and second message type MT_2 in namespace http://partner.com/xyz
    so MT_1 can be mapped with MT_2 or not having different namespace.
    Thanks

    Read through my reply in this thread for Defining Software component dependencies.
    Though it explains this for Improted Archives, it also holds true for Message Types to be used in message mappings.
    Re: Payload Extraction
    Regards
    Bhavesh

  • How to test ABAP mapping used in a Integration Process node

    Hi,
    anyone can suggest me how to debug an ABAP mapping used into a transformation node belonging to an Integration Process ?
    Thanks.
    Francesco

    Hi, Francesco.
    I've debugged ABAP Mapping with SXI_MAPPING_TEST transaction.
    If you have creted a scenario including your ABAP Mapping, you only hace to put the correct sender/sender interface and receiver/receiver interface. You have to put some XML document as an input.
    I wrote in my code the Break-point instruction an debugged the process without problems.
    regards,
    Francisco

  • JAVA mapping using SAX parser adds extra tags

    Hi,
      We are using  java mapping using a SAX parser.It works well in standalone application ie it parses correctly and gets our desired xml structure and the xml is well formed too but when we import it in XI as a jar file it does not throw any errors but adds extra start tags, as a result the output xml is not well formed.XI is adding extra start tags.
    If any one else has faced a similar situation please help.
    Regards,
    Anirban.

    Hi Roberto,
    Thank you for the response.
    As I said, it doesnt throw any error. It is working perfectly in standalone application. But when we deploy it to XI Server, it is not forming the well formed XML. We too are puzzled by this situation.
    Okay, i will explain my scenario here.
    The following is my input XML to the java pgm..
    <Header>
    </Header>
    <Body>
    </Body>
    <SubBody1>
    </SubBody1>
    <SubBody2>
    </SubBody2>
    <SubBody3>
    </SubBody3>
    <SubBody4>
    </SubBody4>
    <Trail>
    </Trail>
    The desired output is
    <Header>
      <Body>
         <NameChanged1>
            <NameChanged2>
    <SubBody3>
    <SubBody4>
    </SubBody4>
    </SubBody3>
    </NameChanged2>
    </NameChanged1>
    <Trail>
    </Trail>
    Just look at the SubBody2 and SubBody1 node, its tag name has been changed in the output XML. Thats y i have decided to use java mapping instead of message mapping.
    I have developed the code for everything, i.e for changing the tag name and for forming the nested xml and it is working fine as a standalone application. But while deploying it to XI, the output is not well formed. I dont know the reason for it. Even I have checked the cardinality of the output Data types, that I have created. Its perfectly okay with all.
    Any Ideas???
    Regards,
    Anirban

  • MAPPING USING FLAT FILE SOURCE MODULE

    I created a mapping using a flat file as source and a dimension as target, I've already configure both modules and their locations.
    When I try to deploy this mapping in the deploy manager, it generates the script for the control file and when I hit the deploy button it says that the deploy was succesfull, but I really don�t know what it did.
    Does it put the file in my target schema?, what do I suposs to do next?

    Hi,
    So,i don't have to manually run the sql loader from the command prompt???
    All i have to do is Execute the map normally from the deployment manager and it will load the .ctl file itself.Ok great,i did so but i got the following error:
    Starting Execution BM_DEBIT_CARDS_DAT_MAP
    Starting Task BM_DEBIT_CARDS_DAT_MAP
    C:\Documents and Settings\CORAL 2000\Desktop\Flat filesBM_DEBIT_CARDS_DAT_MAP.ctl (The file access permissions do not allow the specified action.)
    RPE-01008: Recovery of this request is in progress.
    RPE-01009: Completion of this task could not be completed due to an earlier system failure.
    Completing Task BM_DEBIT_CARDS_DAT_MAP
    Completing Execution BM_DEBIT_CARDS_DAT_MAP
    So are there any permissions i should grant or what?
    Dina Nagia

  • Mapping using Java Coding

    I've got a big trouble. First, I'm trying to do mapping using Java Coding based on the TopLink Developer's Guide.
    I'm using a Employee's Table as usual, but here is the problem, I can not do inserting on the database after I do mapping. As a note, there is no error compile and also I can do the session login already.
    Employee.java
    public class Employee extends oracle.toplink.sessions.Project{
         private Long id;
         private String fnama;
         private String lnama;
    public Employee() {
    setName("ObjectTab");
    applyLogin();
    addDescriptor(empDesc());
    conformAllDescriptors();
    public String getFnama() {
         return this.fnama;
    public String getLnama() {
         return this.lnama;
    public void setFnama(String fnama) {
         this.fnama = fnama;
    public void setLnama(String lnama) {
         this.lnama = lnama;
    public void applyLogin() {
    DatabaseLogin login = new DatabaseLogin();
    // use platform appropriate for underlying database
    login.usePlatform(
    new oracle.toplink.platform.database.oracle.Oracle9Platform());
    login.setDriverClassName("oracle.jdbc.OracleDriver");
    login.setConnectionString("jdbc:oracle:thin:localhost:1521:pusat");
    login.setUserName("tryo");
    login.setEncryptedPassword("a, ENCRYPTED");
    // Configuration Properties
    setDatasourceLogin(login);
    public ClassDescriptor empDesc() {
    ObjectRelationalDescriptor descriptor = new ObjectRelationalDescriptor();
    descriptor.setJavaClass(Employee.class);
    descriptor.setTableName("EMPLOYEES");
    descriptor.setStructureName("EMPLOYEE_T");
    descriptor.setPrimaryKeyFieldName("ID");
    descriptor.addFieldOrdering("ID");
    descriptor.addFieldOrdering("F_NAME");
    descriptor.addFieldOrdering("L_NAME");
    descriptor.addDirectMapping("id", "OBJECT_ID");
    descriptor.addDirectMapping("fnama", "F_NAME");
    descriptor.addDirectMapping("lnama", "L_NAME");
    return descriptor;
    Main Class:
    protected String getSessionsXmlPath() {
    return "sessions.xml";
    protected String getSessionName() {
    return "Session";
    protected void createSession() {
    XMLSessionConfigLoader loader = new XMLSessionConfigLoader(getSessionsXmlPath());
    SessionManager mgr = SessionManager.getManager();
    session = (DatabaseSession)mgr.getSession(loader, getSessionName(), Thread.currentThread().getContextClassLoader(), true, true);
    public static void closeSession(){
    SessionManager.getManager().destroyAllSessions();
    session = null;
    private void jButton1_actionPerformed(ActionEvent e) {
    Employee myEmp = new Employee();
    createSession();
    private void jButton2_actionPerformed(ActionEvent e) {
    Employee theEmp = new Employee();
    UnitOfWork uow = session.acquireUnitOfWork();
    try{
    theEmp.setFnama("A");
    theEmp.setLnama("B");
    uow.commit();
    }finally{
    uow.release();
    For everybody who already knows the solution, please reply as soon as possible. Because I really need this solution to finish my last final project.
    Thanks

    When you create a new instance you must register it with the UnitOfWork in order to have the new entity persisted.
    Employee theEmp = new Employee();
    UnitOfWork uow = session.acquireUnitOfWork();
    theEmp.setFnama("A");
    theEmp.setLnama("B");
    uow.registerObject(theEmp);
    uow.commit();
    Doug

Maybe you are looking for

  • Account Location Frustration: How best to match this when importing?

    Scenario: Database of existing accounts in SOD. Accounts use the billing country for the account location. Have new contacts to add to existing accounts, but the contacts do not have the same country listed or the country is blank. Siebel will not re

  • How to get the smartforms name

    Hello ABAPers, Im quite confused regarding the filename of smartforms...using the CALL FUNCTION gy_sf_fm_name.. the value of gy_sf_fm_name is /1BCDWB/SF00000022 but how can i get the real sf name? Kindly help. Will reward points Thanks in advance aVa

  • Install program two computer

    I will make a purchase student package. I want to know I can install program on my two computer.

  • 11.5.10 on Oracle Enterprise Linux 5

    Is this likely to work? I've tried installing a couple of times but end us snarled up in library issues and all the documentation I can find is for 4.5 - which doesn't like my server for some reason - or SUSE Linux - would it be better just to try wi

  • Default username in SAP logon

    Hi Gurus. Good day. Kindly advice if there is a way to default user name on SAP log on pad. Thank you.