cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Exception Caught!! payloadName Error!!

Former Member
0 Likes
1,956

Hello Experts,

     My Scenario is IDoc to Mail. I need to send the file as an attachment with dynamic filename and body. I am able to send the the file with attachment and body but not with the dynamic filename. Also  I am not supposed to use Mail Package.So for the reason I have implemented Module code for changing the dynamic filename.Here is the code and error exception occurred in the Message Log.

Module Code:

package com.sap.mailmodule;

import javax.ejb.Stateless;

import com.sap.aii.af.lib.mp.module.ModuleContext;

import com.sap.aii.af.lib.mp.module.ModuleData;

import com.sap.aii.af.lib.mp.module.ModuleException;

import com.sap.engine.interfaces.messaging.api.Message;

import com.sap.engine.interfaces.messaging.api.MessageKey;

import com.sap.engine.interfaces.messaging.api.MessagePropertyKey;

import com.sap.engine.interfaces.messaging.api.Payload;

import com.sap.engine.interfaces.messaging.api.PublicAPIAccessFactory;

import com.sap.engine.interfaces.messaging.api.auditlog.AuditAccess;

import com.sap.engine.interfaces.messaging.api.auditlog.AuditLogStatus;

/**

* Session Bean implementation class MailAdapterModule

*/

@Stateless

public class MailAdapterModule implements MailAdapterModuleRemote, MailAdapterModuleLocal

{

    public ModuleData process(ModuleContext moduleContext, ModuleData inputModuleData)throws ModuleException

    {      

        Message msg = (Message) inputModuleData.getPrincipalData();

        MessageKey key = null;

        AuditAccess audit = null;

        String attName = null;

        String targetFileName = null;

       

        try

             {          

             //Custom Adapter module  : Module called

            //Reading file name from message header

            attName = moduleContext.getContextData("AttachmentName");

            Payload payload = msg.getAttachment(attName);                  

            MessagePropertyKey fileKey = new MessagePropertyKey("FileName","http://sap.com/xi/XI/System/Mail");

            targetFileName = fileKey.getPropertyName();

             audit = PublicAPIAccessFactory.getPublicAPIAccess().getAuditAccess();

            audit.addAuditLogEntry(key, AuditLogStatus.SUCCESS, "Input file read successfully");

            //Reading the Directory Names from the Module Context           

            if(targetFileName == null)

            {

                targetFileName = "Reservation.txt";

            }

            audit.addAuditLogEntry(key, AuditLogStatus.SUCCESS, " Name of Attachment after msg.getattchment method: " + targetFileName);

            audit.addAuditLogEntry(key, AuditLogStatus.SUCCESS, " Name of Attachment after msg.getattchment method: " + targetFileName);

            payload.setName(targetFileName);

            audit.addAuditLogEntry(key, AuditLogStatus.SUCCESS,"Attachment renamed successfully : " +targetFileName);

            audit.addAuditLogEntry(key, AuditLogStatus.SUCCESS, " Entering Mail Adapter");

             inputModuleData.setPrincipalData(msg);

    

            }

       

        catch (Exception e)

        {

            throw new ModuleException(e);

        }

     return inputModuleData;

    } 

}

Channel Module Configuration:

Message Exception Error ScreenShot:

Kindly help on the same.!!!

View Entire Topic
Former Member
0 Likes

Hi Eng,

Apologies for the delay!!!

Thanks for your Patience and reply.

As per your previous blogs, I have splitted the requirement in to two flows. Here are the below details.

1.IDOC-PI-SOAP

2.SOAP-PI-MAIL

In the first flow I have created one node MAIL with the fields THeaderTo, THeaderCC, THeaderSubject, FileName underneath to it.

In the second flow I have used content conversion in SOAP Channel and then in the Mapping part I have used Java mapping with dynamic configuration parameters with all the above MAIL fields.

Also the first of the flat file I have replaced with blank data instead of MAIL field values and used While loop for multiple Item occurrences.

This is the way we have completed it Eng with out constructing any MIME parameters in JAVA mapping.

Please let me know if you need in detail with screenshots so that i can share the same.

Also will try your case and update you soon.

Thanks in advance!!

Many Thanks,

Best Regards,

Prashanth Bharadwaj Ch.

engswee
Active Contributor
0 Likes

Hi Prashanth

That's fine. I was just curious if setting the Content-Disposition helped resolved your issue, since that worked for me.

Anyway, if your issue has been been fully resolved, I'd suggest that you close this thread.

Regards

Eng Swee