Can we send the documents in oracle portal as attachment to a mail ?

Hi,
Our Client using Oracle APPlication Server Portal 10.1.2 for data management and employee portal purpose.
our users used to attach or store the files/documents in Portal i.e. like a file item.
They want to send some selected files/documents as attachments to a group of people via email
Is there any possiblity to achieve this please let me know.
Regards,
Rajesh

Hi Rajesh,
If you are just have one email procedure which you want to use to send files from both your desktop and from the Portal repository, you could consider to connect the Portal repository to your desktop through WebDAV. I assume however that you are looking for a sort of 'Email This' button next to file items.
I have not programmed this before but I guess you can do this with a custom item based on file item. Add an attribute based on PL/SQL which will do the email for you. The PL/SQL procedure in the custom attribute can use wwsbr_all_items view to retrieve the content of the item and send it with utl_smtp. Easier said than done - have not programmed it myself. But then, I am not a programmer, so I reckon Portal developers on this forum would be able to help.
Regards,
Erik

Similar Messages

  • How Can i send the data entered in Input text fields to e-mail?

    Iam Jennifer, Iam having a doubt in Flash, I hope that you
    are going to solve my problem, Iam taking 3 Static text fields as
    Name, Age and Country and besides each and every static text fields
    i have taken 3 input text fields with different instance names,
    when i enter my Name, Age and Country details in the input text
    fields and after entering those details if user clicks the submit
    button the data should be send to some mail address, is it possible
    Im not so good at action script, but i hope that any one can
    help me...
    Iam attaching the action script code also, please find the
    attachment below, the actions are given to button.
    Attach Code
    Btn.onPress = function ()
    mail_lv = new LoadVars();
    mail_lv.dummy1 = "";
    mail_lv.subject = "Details";
    mail_lv.message = "hi";
    mail_lv.username = "name_txt".text;
    mail_lv.age = "age_txt".text;
    mail_lv.country = "country_txt".text;
    mail_lv.onLoad = function ()
    trace("Sent successfully...");
    trace("mail_lv.subject = " + mail_lv.subject);
    trace("mail_lv.message = " + mail_lv.message);
    mail_lv.send("mailto:[email protected]", "_blank");

    The names of your variables, "name_txt", for instance, should
    NOT have quotes around them. Use:
    mail_lv.username = name_txt.text;
    mail_lv.age = age_txt.text;
    mail_lv.country = country_txt.text;

  • Regarding Pages: I can't access the document I was writting on at all. I have tried to send the document to my email, I've tried to make a copy but nothing seems to work, it just shows up blank.

    Regarding Pages: I was writing using the app Pages when I left the page I was writting on but now I can't access it at all. I have tried to send the document to my email, I've tried to make a copy but nothing seems to work. The document still exists and I can see my writting as I can with all other documents but I can't open that page.

    Try:
    - Reset the iOS device. Nothing will be lost
    Reset iOS device: Hold down the On/Off button and the Home button at the same time for at
    least ten seconds, until the Apple logo appears.
    - Connect the iPad to your computer and try to get the document via File sharing
    - Try getting the document from iCloud.com if you are using iCloud

  • B2B - Error While sending the document to GXS from Oracle B2B server.

    When I am trying to send the document to GXS, getting the following error. This message is show in the window that pops up when you click on Reports->WireMessage->Details of the Message.
    I am trying to find what is causing the issue.
    State ERROR
    Error Code B2B-50079
    Error Description Transport error: [IPT_HttpSendHttpResponseError] HTTP response error :sun.security.validator.ValidatorException: No trusted certificate found.
    Error Text Transport error: [IPT_HttpSendHttpResponseError] HTTP response error :sun.security.validator.ValidatorException: No trusted certificate found.
    Here is the complete details from the Window.
    Id 812E875712EA19A8EEC000005EF51ED3
    Message Id 4e45f5dff566a29f:-ce624b0:12ea1982d56:-7ff3
    Business Message 812E875712EA19A8E88000005EF51ED0
    Packed Message Packed Message
    Payload Payload
    Protocol Message Id 4e45f5dff566a29f:-ce624b0:12ea1982d56:-7ff3
    Refer To Protocol Message Id
    Protocol Collaboration Id
    Protocol Transport Binding TO=Trader_Joes content-type=application/HTTPstream,actionrequest Content-Transfer-Encoding=binary FROM=AcmeSystems MESSAGE-ID=4e45f5dff566a29f:-ce624b0:12ea1982d56:-7ff3 DATE=Thu, 10 Mar 2011 21:09:43 GMT Connection=close Content-Type=text/plain; charset=us-ascii
    Message Digest Message Digest
    Digest Algorithm
    Transport Protocol HTTP
    Transport Protocol Version 1.1
    Url https://web.tradinggrid.gxs.com/invoke/gxs.https/receive
    security
    Transport Headers TO=Trader_Joes content-type=application/HTTPstream,actionrequest Content-Transfer-Encoding=binary FROM=AcmeSystems MESSAGE-ID=4e45f5dff566a29f:-ce624b0:12ea1982d56:-7ff3 DATE=Thu, 10 Mar 2011 21:09:43 GMT Connection=close Content-Type=text/plain; charset=us-ascii
    certificates certificates
    State ERROR
    Error Code B2B-50079
    Error Description Transport error: [IPT_HttpSendHttpResponseError] HTTP response error :sun.security.validator.ValidatorException: No trusted certificate found.
    Error Text Transport error: [IPT_HttpSendHttpResponseError] HTTP response error :sun.security.validator.ValidatorException: No trusted certificate found.
    exchangeRetryInterval
    exchangeRemainingRetry
    Message Size 0
    Here is the Setup We did sofar.
    1) Created the Document Definition.
         PositionalFlatFile-VDA-1998-4913v4-4913v4_Definition
    2) Created Trading Partner Profile
         Trader_Joes
    3) Added Document Definition to the TP as receiver.
    4) Configured a channel with Protocol "Generic HTTP-1.0". Is it showing only one entry, HTTP.
         Transport Protocol: Selected "HTTP" from the dropdown list.
         url: https://web.tradinggrid.gxs.com/invoke/gxs.https/receive
         username: xxxx
         password: xxxx
         Additional transport headers: content-type=application/HTTPstream,actionrequest=upload,receiverid=xxxxxxx,datatype=EDI,aprf=TEST,snrf=12345678
    NOTE: I don't see tabs for "Exchange Protocol Parameters" and "Security". It only shows "Transport Protocol Parameters" and "Channel Attributes" tabs.
    =====
    5) Created Agreement with the document defition that was created.
    6) Deployed the Agreement and it is showing "Active" state.
    7) Created a Keystore on the server using the following command.
    keytool -genkeypair -alias serverCert -keyalg RSA -keysize 1024 -validity 365 -dname "CN=soa.Acmesystems.com,OU=Support,O=Acmesystems,L=suntown,ST=MD,C=US" -keypass xxxxxxxxxx -keystore AcmeIdentity.jks -storepass xxxxxxxxxx
    keytool -list -keystore AcmeIdentity.jks -storepass xxxxxxxxxx
    8) Imported the certificate that we got from the GXS to the Key store using the following command.
    keytool -importcert -v -noprompt -trustcacerts -alias ws-tradinggrid -file ws-tradinggrid.cer -keystore AcmeIdentity.jks -storepass xxxxxxxxxx
    keytool -list -keystore AcmeIdentity.jks -storepass xxxxxxxxxx
    9) After that When I run my composite bpel program to send B2B message, I am getting the above error.
    Where is the issue?
    Any help is appreciated.
    Thank you
    Krishna

    We loaded the certificate chain into key store and that part is working now.
    We are getting now the following error. Any Idea?
    [2011-03-14T09:12:47.787-07:00] [soa_server1] [NOTIFICATION] [] [oracle.soa.mediator.serviceEngine] [tid: weblogic.work.j2ee.J2EEWorkManager$WorkWithListener@5fddbbc0] [userId: <anonymous>] [ecid: 0000Iup92C3CcpiF_7I7S61DUNHj000lw2,0] [APP: soa-infra] [composite_name: TestBusinessEventShipconfirmed] [component_name: TestBusinessEventMediator] [component_instance_id: E71EFFB04E5511E0BF70B592E6C64FAC] [dcid: 4e45f5dff566a29f:7f62e8ac:12ea26f8103:-7ffd-0000000000000012] [composite_instance_id: 50004] MediatorServiceEngine received a request for operation = Read
    [2011-03-14T09:12:47.996-07:00] [soa_server1] [NOTIFICATION] [] [oracle.soa.mediator.serviceEngine] [tid: weblogic.work.j2ee.J2EEWorkManager$WorkWithListener@5fddbbc0] [userId: <anonymous>] [ecid: 0000Iup92C3CcpiF_7I7S61DUNHj000lw2,0] [APP: soa-infra] [composite_name: TestBusinessEventShipconfirmed] [component_name: TestBusinessEventMediator] [component_instance_id: E71EFFB04E5511E0BF70B592E6C64FAC] [dcid: 4e45f5dff566a29f:7f62e8ac:12ea26f8103:-7ffd-0000000000000012] [composite_instance_id: 50004] MediatorServiceEngine returning after processing the request for operation = Read
    [2011-03-14T09:12:49.384-07:00] [soa_server1] [WARNING] [] [oracle.soa.b2b.engine] [tid: weblogic.work.j2ee.J2EEWorkManager$WorkWithListener@c0ad9a3] [userId: <anonymous>] [ecid: 0000Iup92ObCcpiF_7I7S61DUNHj000lw3,0] [APP: soa-infra] [dcid: 4e45f5dff566a29f:7f62e8ac:12ea26f8103:-7ffd-0000000000000021] [[
    Message Transmission Transport Exception
    Transport Error Code is OTA-HTTP-SEND-403
    StackTrace oracle.tip.b2b.transport.TransportException: [IPT_HttpSendError] HTTP encounters send error :403
    com.wm.app.tn.err.EXMLException: <EXMLException>
    <ErrorCode>0003.4089</ErrorCode>
    <Info>Could not get internal ID for partner (id=null, typeCode=null, typeDesc=ICS Mailbox ID).</Info>
    <OriginalException>
    <JavaClass>com.wm.app.b2b.server.ServiceException</JavaClass>
    <Message>"extID" is required.</Message>
    <StackTrace>com.wm.app.b2b.server.ServiceException: "extID" is required.
         at wm.tn.profileimpl.getInternalID(profileimpl.java:2577)
         at sun.reflect.GeneratedMethodAccessor52.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:585)
         at com.wm.app.b2b.server.JavaService.baseInvoke(JavaService.java:403)
         at com.wm.app.b2b.server.invoke.InvokeManager.process(InvokeManager.java:631)
         at com.wm.app.b2b.server.util.tspace.ReservationProcessor.process(ReservationProcessor.java:40)
         at com.wm.app.b2b.server.invoke.StatisticsProcessor.process(StatisticsProcessor.java:44)
         at com.wm.app.b2b.server.invoke.ServiceCompletionImpl.process(ServiceCompletionImpl.java:241)
         at com.wm.app.b2b.server.invoke.ValidateProcessor.process(ValidateProcessor.java:51)
         at com.wm.app.b2b.server.ACLManager.process(ACLManager.java:228)
         at com.wm.app.b2b.server.invoke.DispatchProcessor.process(DispatchProcessor.java:30)
         at com.wm.app.b2b.server.AuditLogManager.process(AuditLogManager.java:628)
         at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:536)
         at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:381)
         at com.wm.app.b2b.server.ServiceManager.invoke(ServiceManager.java:237)
         at com.wm.app.b2b.server.BaseService.invoke(BaseService.java:189)
         at com.wm.lang.flow.FlowInvoke.invoke(FlowInvoke.java:324)
         at com.wm.lang.flow.FlowState.invokeNode(FlowState.java:581)
         at com.wm.lang.flow.FlowState.step(FlowState.java:441)
         at com.wm.lang.flow.FlowState.invoke(FlowState.java:406)
         at com.wm.app.b2b.server.FlowSvcImpl.baseInvoke(FlowSvcImpl.java:1040)
         at com.wm.app.b2b.server.invoke.InvokeManager.process(InvokeManager.java:631)
         at com.wm.app.b2b.server.util.tspace.ReservationProcessor.process(ReservationProcessor.java:40)
         at com.wm.app.b2b.server.invoke.StatisticsProcessor.process(StatisticsProcessor.java:44)
         at com.wm.app.b2b.server.invoke.ServiceCompletionImpl.process(ServiceCompletionImpl.java:241)
         at com.wm.app.b2b.server.invoke.ValidateProcessor.process(ValidateProcessor.java:51)
         at com.wm.app.b2b.server.ACLManager.process(ACLManager.java:228)
         at com.wm.app.b2b.server.invoke.DispatchProcessor.process(DispatchProcessor.java:30)
         at com.wm.app.b2b.server.AuditLogManager.process(AuditLogManager.java:628)
         at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:536)
         at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:381)
         at com.wm.app.b2b.server.ServiceManager.invoke(ServiceManager.java:237)
         at com.wm.app.b2b.server.BaseService.invoke(BaseService.java:189)
         at com.wm.lang.flow.FlowInvoke.invoke(FlowInvoke.java:324)
         at com.wm.lang.flow.FlowState.invokeNode(FlowState.java:581)
         at com.wm.lang.flow.FlowState.step(FlowState.java:441)
         at com.wm.lang.flow.FlowState.invoke(FlowState.java:406)
         at com.wm.app.b2b.server.FlowSvcImpl.baseInvoke(FlowSvcImpl.java:1040)
         at com.wm.app.b2b.server.invoke.InvokeManager.process(InvokeManager.java:631)
         at com.wm.app.b2b.server.util.tspace.ReservationProcessor.process(ReservationProcessor.java:40)
         at com.wm.app.b2b.server.invoke.StatisticsProcessor.process(StatisticsProcessor.java:44)
         at com.wm.app.b2b.server.invoke.ServiceCompletionImpl.process(ServiceCompletionImpl.java:241)
         at com.wm.app.b2b.server.invoke.ValidateProcessor.process(ValidateProcessor.java:51)
         at com.wm.app.b2b.server.ACLManager.process(ACLManager.java:228)
         at com.wm.app.b2b.server.invoke.DispatchProcessor.process(DispatchProcessor.java:30)
         at com.wm.app.b2b.server.AuditLogManager.process(AuditLogManager.java:628)
         at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:536)
         at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:381)
         at com.wm.app.b2b.server.ServiceManager.invoke(ServiceManager.java:237)
         at com.wm.app.b2b.server.ServiceManager.invoke(ServiceManager.java:119)
         at com.wm.app.b2b.server.HTTPInvokeHandler._process(HTTPInvokeHandler.java:141)
         at com.wm.app.b2b.server.InvokeHandler.process(InvokeHandler.java:110)
         at com.wm.app.b2b.server.HTTPDispatch.handleRequest(HTTPDispatch.java:185)
         at com.wm.app.b2b.server.Dispatch.run(Dispatch.java:333)
         at com.wm.util.pool.PooledThread.run(PooledThread.java:118)
         at java.lang.Thread.run(Thread.java:595)
    </StackTrace>
    </OriginalException>
    <Action></Action>
    <Level></Level>
    </EXMLException>.
         at oracle.tip.b2b.transport.TransportException.create(TransportException.java:94)
         at oracle.tip.b2b.transport.basic.HTTPSender.createTransportResponse(HTTPSender.java:683)
         at oracle.tip.b2b.transport.basic.HTTPSender.send(HTTPSender.java:498)
         at oracle.tip.b2b.transport.b2b.B2BTransport.send(B2BTransport.java:317)
         at oracle.tip.b2b.transport.TransportInterface.send(TransportInterface.java:1492)
         at oracle.tip.b2b.msgproc.Request.outgoingRequestPostColab(Request.java:1551)
         at oracle.tip.b2b.msgproc.Request.outgoingRequest(Request.java:837)
         at oracle.tip.b2b.engine.Engine.processOutgoingMessageImpl(Engine.java:1411)
         at oracle.tip.b2b.engine.Engine.processOutgoingMessage(Engine.java:781)
         at oracle.tip.b2b.engine.Engine.handleMessageEvent(Engine.java:3319)
         at oracle.tip.b2b.engine.Engine.processEvents(Engine.java:2948)
         at oracle.tip.b2b.engine.ThreadWorkExecutor.processEvent(ThreadWorkExecutor.java:575)
         at oracle.tip.b2b.engine.ThreadWorkExecutor.run(ThreadWorkExecutor.java:214)
         at oracle.integration.platform.blocks.executor.WorkManagerExecutor$1.run(WorkManagerExecutor.java:105)
         at weblogic.work.j2ee.J2EEWorkManager$WorkWithListener.run(J2EEWorkManager.java:183)
         at weblogic.work.DaemonWorkThread.run(DaemonWorkThread.java:30)
    [2011-03-14T09:12:49.390-07:00] [soa_server1] [NOTIFICATION] [] [oracle.soa.b2b.engine] [tid: weblogic.work.j2ee.J2EEWorkManager$WorkWithListener@c0ad9a3] [userId: <anonymous>] [ecid: 0000Iup92ObCcpiF_7I7S61DUNHj000lw3,0] [APP: soa-infra] [dcid: 4e45f5dff566a29f:7f62e8ac:12ea26f8103:-7ffd-0000000000000021] Request: outgoingRequestPostColab: Request Message Transmission failed
    [2011-03-14T09:12:49.431-07:00] [soa_server1] [NOTIFICATION] [] [oracle.soa.b2b.engine] [tid: weblogic.work.j2ee.J2EEWorkManager$WorkWithListener@c0ad9a3] [userId: <anonymous>] [ecid: 0000Iup92ObCcpiF_7I7S61DUNHj000lw3,0] [APP: soa-infra] [dcid: 4e45f5dff566a29f:7f62e8ac:12ea26f8103:-7ffd-0000000000000021] Engine: processOutgoingMessageImpl: Message id = 4e45f5dff566a29f:7f62e8ac:12ea26f8103:-7ff0 ToParty = Trader_Joes Doctype = 4913v4 version = VDA-1998

  • I'm trying to send a pages document as an email attachment to pc users.  They can't access the document.

    I'm trying to send a pages document as an email attachment to pc users.  They can't access the document.  When I try go to the "file" menu, there is no "save as" option.

    Hi Shelly,
    Command-P (Print)
    In the Print dialogue, click the PDF button at lower left, choose Mail PDF
    The result should be a new email document with the pdf file attached.
    Address and send.
    The procedure applies to any document which may be printed, not just Pages documents.
    Regards,
    Barry

  • Our organization uses an Oracle database hosted on a Unix platform and one of our data processing outputs is a "stuffer" document that has a barcode, and Unix jobs automatically send the document to a printer.   Is there a way, or does Adobe have a produc

    Our organization uses an Oracle database hosted on a Unix platform and one of our data processing outputs is a “stuffer” document that has a barcode, and Unix jobs automatically send the document to a printer.
    Is there a way, or does Adobe have a product or solution, to create a PDF version of the document including the barcode, before it’s sent to a printer?

    What format is the document that is printed? Or what technology is used to format the printer? There isn't a standard way of doing things in Unix.

  • Pages is sending my documents in docx format, but windows unable to open them. They arrive blank or can only be read as a single line at a time. When view prior to sending the document is divided with black lines after each sentence.

    Pages is sending my documents in docx format, but windows unable to open them. They arrive blank or can only be read as a single line at a time. When viewed prior to sending, the document is divided with black lines after each sentence.

    Windows will only be able to open these if you have Word 2007+. Older versions of Word, for example Word 2003 would require a compatibility pack.
    Perhaps you can try 'Saving As' a different file type instead?
    Regards,
    Steve

  • How can i get the document full path in S_TieDocument?

    I create a new S_TieDocument and override 2 methods:
    extendedPreInsert and extendedPostInsert
    how can i get the document full path in these 2 methods?
    (e.g. if i use the system user to upload a new file named 'test.file' in system root path /home/system, and i want to get the document full path '/home/system/test.file', how to get it?
    anybody know it, pls tell me, thanks a lot.
    java source is as below
    package oracle.ifs.server;
    import oracle.ifs.beans.Document;
    import oracle.ifs.beans.DocumentDefinition;
    import oracle.ifs.beans.LibraryObjectDefinition;
    import oracle.ifs.beans.LibrarySession;
    import oracle.ifs.beans.PublicObject;
    import oracle.ifs.common.AttributeValue;
    import oracle.ifs.common.IfsException;
    import oracle.ord.itech.cmsdk.ws.view.EmbeddedCMSDKWebServicesWSStub;
    public class S_TieDocument extends S_Document
    public S_TieDocument(S_LibrarySession session, S_LibraryObjectData data)
    throws IfsException
    super(session, data);
    public S_TieDocument(S_LibrarySession session, java.lang.Long classID)
    throws IfsException
    super(session, classID);
    // Overrides
    public void extendedPreInsert(OperationState opState,
    S_LibraryObjectDefinition def)
    throws IfsException
    // Always call super
    super.extendedPreInsert(opState, def);
    // Get the LibrarySession
    S_LibrarySession session = getSession();
    def.setUserSetAttribute("CUSTOMATTRIBUTE",
    AttributeValue.newAttributeValue(""));
    //how can i get the document file full path here?
    public void extendedPostInsert(OperationState opState,
    S_LibraryObjectDefinition def)
    throws IfsException
    // Get the LibrarySession
    S_LibrarySession session = getSession();
    //how can i get the document file full path here?
    }

    In the new version of Numbers this option is not available.  You will have to type the file name into the header yourself.  You can post feedback to Apple using the menu item "Numbers > Provide Numbers Feedback"
    or use Numbers2.3 which should be in the folder "/Applications/iWork '09" if you previously had it installed

  • How can I send a document in iworks as a pdf file?

    How can I send a document in iworks as a pdf file?  My friends who have windows are not able to open any attachment I send them.  Very frustrating.

    Click 'Print' - then in the dialogue window in the bottom left, select save as PDF.
    Done!

  • Changing a PDF with a text box, and then flatten the text box onto the underlying PDF before sending the document out.

    I download PDF documents from municipalities, often and from numerous municipalities.
    They have a scanned image of a form that I need to fill out,
    I enter my contact info as a text box onto the form, along with other information,
    but when I save the document, there seems no way to flatten the fields so that the person I send the document to has a true PDF and cannot change the document.
    They could delete one of the text boxes or change the text in the box (by mistake),
    which could case some major complications.
    How do I flatten the document, so I can send it back to the municipalities as a PDF that cannot be changed.
    I am using Acrobat X Pro, on windows XP machine

    I doubt you could fix this. Generally a "garbled" file is considered unusable for copying, and that's that. If a PDF uses random mappings instead of standard ones it looks fine on screen, but text extraction is impossible.
    Short of converting every page to bitmap and OCRing again.

  • When typing a word document my laptop keeps sending the document

    Can anyone help - When typing a word document my laptop keeps sending the document when I start typing. Not sure why. Any help appreciated

    Hello
    I don?t know what you mean with laptop keeps sending the document but if you have this issue with office word or some other office application, try to check some forum where you can find discussion about similar theme.
    I can not give you any precise answer but it is maybe because of office specific settings or you press accidentally some key on the keyboard and on this way interrupt symbols entering.

  • CAn anyone send me documents related to key production support issues

    CAn anyone send me documents related to key production support issues in SD and MM
    thanks &regards
    aman

    Hi Priya,
    Please find the below link to have a very good stuff on Foreign Trade;
    http://help.sap.com/bp_bblibrary/500/html/G09_ForgTrade_EN_IN.htm
    Please Reward If Really Helpful,
    Thanks and Regards,
    Sateesh.Kandula

  • When i submit a document the receiving parties can't open the document.  How do i change the document to a word (.doc)?

    When i submit a document the receiving parties can't open the document.  How do I change my document to WORD (.doc)????

    wolfpack22 wrote:
    When i submit a document the receiving parties can't open the document.  How do I change my document to WORD (.doc)????
    How are you creating the document? In your word processing app save the document as a Word doument then send this saved document.

  • How can we send the smartform output to mail.

    Dear Friends,
    My query is how can we send the smart form output to mail.
    In my company,payslip are given to the employee in printed format.instead of that we need to send payslip in mail.how can i do..plz help me.
    [email protected]

    The code below demonstrates how to retrieve a spool request and email it as a PDF document. Please note to process a spool request the program can be executed in background or foreground. Because of the additional functionality to allow this to work in both background and foreground it has made it a little more confusing soyou might want to start by looking at the background only program. Also see transaction SCOT for SAPConnect administration.
    *& Report  ZSPOOLTOPDF2                                                *
    *& Converts spool request into PDF document and emails it to           *
    *& recipicant.                                                         *
    *& Execution                                                           *
    *& This program can be run in background or online and a spool request *
    *& will still be created                                               *
    REPORT  zspooltopdf2.
    PARAMETER: p_email1 LIKE somlreci1-receiver
                                        DEFAULT '[email protected]',
               p_sender LIKE somlreci1-receiver
                                        DEFAULT '[email protected]',
               p_delspl  AS CHECKBOX,
               p_online no-display.
    *DATA DECLARATION
    DATA: gd_recsize TYPE i.
    Spool IDs
    TYPES: BEGIN OF t_tbtcp.
            INCLUDE STRUCTURE tbtcp.
    TYPES: END OF t_tbtcp.
    DATA: it_tbtcp TYPE STANDARD TABLE OF t_tbtcp INITIAL SIZE 0,
          wa_tbtcp TYPE t_tbtcp.
    Job Runtime Parameters
    DATA: gd_eventid LIKE tbtcm-eventid,
          gd_eventparm LIKE tbtcm-eventparm,
          gd_external_program_active LIKE tbtcm-xpgactive,
          gd_jobcount LIKE tbtcm-jobcount,
          gd_jobname LIKE tbtcm-jobname,
          gd_stepcount LIKE tbtcm-stepcount,
          gd_error    TYPE sy-subrc,
          gd_reciever TYPE sy-subrc.
    DATA:  w_recsize TYPE i,
           w_spool_nr like sy-spono.
          %_print LIKE pri_params.
    DATA: gd_subject   LIKE sodocchgi1-obj_descr,
          it_mess_bod LIKE solisti1 OCCURS 0 WITH HEADER LINE,
          it_mess_att LIKE solisti1 OCCURS 0 WITH HEADER LINE,
          gd_sender_type     LIKE soextreci1-adr_typ,
          gd_attachment_desc TYPE so_obj_nam,
          gd_attachment_name TYPE so_obj_des.
    Spool to PDF conversions
    DATA: gd_spool_nr LIKE tsp01-rqident,
          gd_destination LIKE rlgrap-filename,
          gd_bytecount LIKE tst01-dsize,
          gd_buffer TYPE string.
    Binary store for PDF
    DATA: BEGIN OF it_pdf_output OCCURS 0.
            INCLUDE STRUCTURE tline.
    DATA: END OF it_pdf_output.
    CONSTANTS: c_dev LIKE  sy-sysid VALUE 'DEV',
               c_no(1)     TYPE c   VALUE ' ',
               c_device(4) TYPE c   VALUE 'LOCL'.
    *START-OF-SELECTION.
    START-OF-SELECTION.
    Write statement to represent report output. Spool request is created
    if write statement is executed in background. This could also be an
    ALV grid which would be converted to PDF without any extra effort
      WRITE 'Hello World'.
      new-page.
      commit work.
      new-page print off.
      If p_online = 'X'.
      Processing performed when program calls itself when run online
        gd_spool_nr = sy-spono.
        EXPORT gd_spool_nr TO MEMORY ID 'SPOOLTOPDF'.
        EXIT.
      endif.
      IF sy-batch EQ 'X'.
        PERFORM get_job_details.
        PERFORM obtain_spool_id.
      ELSE.
        gd_spool_nr = sy-spono.
    If executed online, it submits a program to perform the write statements
    instructing it to create a spool request, this could be another program
    which just performs the write statements and then exports sy-spono
    to memory. But in this example it calls itself passing X to parameter
    p_online, which takes it down an alternative procesing path.
        submit ZSPOOLTOPDF2
               with p_online = 'X'
               to sap-spool
               spool parameters   %_print
              archive parameters %_print
               without spool dynpro
               and return.
      ENDIF.
    Get spool id from program called above
      IMPORT gd_spool_nr FROM MEMORY ID 'SPOOLTOPDF'.
      PERFORM convert_spool_to_pdf.
      PERFORM process_email.
      if p_delspl EQ 'X'.
        PERFORM delete_spool.
      endif.
      IF sy-sysid = c_dev.
        wait up to 5 seconds.
        SUBMIT rsconn01 WITH mode   = 'INT'
                        WITH output = 'X'
                        AND RETURN.
      ENDIF.
          FORM obtain_spool_id                                          *
    FORM obtain_spool_id.
      CHECK NOT ( gd_jobname IS INITIAL ).
      CHECK NOT ( gd_jobcount IS INITIAL ).
      SELECT * FROM  tbtcp
                     INTO TABLE it_tbtcp
                     WHERE      jobname     = gd_jobname
                     AND        jobcount    = gd_jobcount
                     AND        stepcount   = gd_stepcount
                     AND        listident   <> '0000000000'
                     ORDER BY   jobname
                                jobcount
                                stepcount.
      READ TABLE it_tbtcp INTO wa_tbtcp INDEX 1.
      IF sy-subrc = 0.
        message s004(zdd) with gd_spool_nr.
        gd_spool_nr = wa_tbtcp-listident.
        MESSAGE s004(zdd) WITH gd_spool_nr.
      ELSE.
        MESSAGE s005(zdd).
      ENDIF.
    ENDFORM.
          FORM get_job_details                                          *
    FORM get_job_details.
    Get current job details
      CALL FUNCTION 'GET_JOB_RUNTIME_INFO'
           IMPORTING
                eventid                 = gd_eventid
                eventparm               = gd_eventparm
                external_program_active = gd_external_program_active
                jobcount                = gd_jobcount
                jobname                 = gd_jobname
                stepcount               = gd_stepcount
           EXCEPTIONS
                no_runtime_info         = 1
                OTHERS                  = 2.
    ENDFORM.
          FORM convert_spool_to_pdf                                     *
    FORM convert_spool_to_pdf.
      CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'
           EXPORTING
                src_spoolid              = gd_spool_nr
                no_dialog                = c_no
                dst_device               = c_device
           IMPORTING
                pdf_bytecount            = gd_bytecount
           TABLES
                pdf                      = it_pdf_output
           EXCEPTIONS
                err_no_abap_spooljob     = 1
                err_no_spooljob          = 2
                err_no_permission        = 3
                err_conv_not_possible    = 4
                err_bad_destdevice       = 5
                user_cancelled           = 6
                err_spoolerror           = 7
                err_temseerror           = 8
                err_btcjob_open_failed   = 9
                err_btcjob_submit_failed = 10
                err_btcjob_close_failed  = 11
                OTHERS                   = 12.
      CHECK sy-subrc = 0.
    Transfer the 132-long strings to 255-long strings
      LOOP AT it_pdf_output.
        TRANSLATE it_pdf_output USING ' ~'.
        CONCATENATE gd_buffer it_pdf_output INTO gd_buffer.
      ENDLOOP.
      TRANSLATE gd_buffer USING '~ '.
      DO.
        it_mess_att = gd_buffer.
        APPEND it_mess_att.
        SHIFT gd_buffer LEFT BY 255 PLACES.
        IF gd_buffer IS INITIAL.
          EXIT.
        ENDIF.
      ENDDO.
    ENDFORM.
          FORM process_email                                            *
    FORM process_email.
      DESCRIBE TABLE it_mess_att LINES gd_recsize.
      CHECK gd_recsize > 0.
      PERFORM send_email USING p_email1.
    perform send_email using p_email2.
    ENDFORM.
          FORM send_email                                               *
    -->  p_email                                                       *
    FORM send_email USING p_email.
      CHECK NOT ( p_email IS INITIAL ).
      REFRESH it_mess_bod.
    Default subject matter
      gd_subject         = 'Subject'.
      gd_attachment_desc = 'Attachname'.
    CONCATENATE 'attach_name' ' ' INTO gd_attachment_name.
      it_mess_bod        = 'Message Body text, line 1'.
      APPEND it_mess_bod.
      it_mess_bod        = 'Message Body text, line 2...'.
      APPEND it_mess_bod.
    If no sender specified - default blank
      IF p_sender EQ space.
        gd_sender_type  = space.
      ELSE.
        gd_sender_type  = 'INT'.
      ENDIF.
    Send file by email as .xls speadsheet
      PERFORM send_file_as_email_attachment
                                   tables it_mess_bod
                                          it_mess_att
                                    using p_email
                                          'Example .xls documnet attachment'
                                          'PDF'
                                          gd_attachment_name
                                          gd_attachment_desc
                                          p_sender
                                          gd_sender_type
                                 changing gd_error
                                          gd_reciever.
    ENDFORM.
          FORM delete_spool                                             *
    FORM delete_spool.
      DATA: ld_spool_nr TYPE tsp01_sp0r-rqid_char.
      ld_spool_nr = gd_spool_nr.
      CHECK p_delspl <> c_no.
      CALL FUNCTION 'RSPO_R_RDELETE_SPOOLREQ'
           EXPORTING
                spoolid = ld_spool_nr.
    ENDFORM.
    *&      Form  SEND_FILE_AS_EMAIL_ATTACHMENT
          Send email
    FORM send_file_as_email_attachment tables it_message
                                              it_attach
                                        using p_email
                                              p_mtitle
                                              p_format
                                              p_filename
                                              p_attdescription
                                              p_sender_address
                                              p_sender_addres_type
                                     changing p_error
                                              p_reciever.
      DATA: ld_error    TYPE sy-subrc,
            ld_reciever TYPE sy-subrc,
            ld_mtitle LIKE sodocchgi1-obj_descr,
            ld_email LIKE  somlreci1-receiver,
            ld_format TYPE  so_obj_tp ,
            ld_attdescription TYPE  so_obj_nam ,
            ld_attfilename TYPE  so_obj_des ,
            ld_sender_address LIKE  soextreci1-receiver,
            ld_sender_address_type LIKE  soextreci1-adr_typ,
            ld_receiver LIKE  sy-subrc.
    data:   t_packing_list like sopcklsti1 occurs 0 with header line,
            t_contents like solisti1 occurs 0 with header line,
            t_receivers like somlreci1 occurs 0 with header line,
            t_attachment like solisti1 occurs 0 with header line,
            t_object_header like solisti1 occurs 0 with header line,
            w_cnt type i,
            w_sent_all(1) type c,
            w_doc_data like sodocchgi1.
      ld_email   = p_email.
      ld_mtitle = p_mtitle.
      ld_format              = p_format.
      ld_attdescription      = p_attdescription.
      ld_attfilename         = p_filename.
      ld_sender_address      = p_sender_address.
      ld_sender_address_type = p_sender_addres_type.
    Fill the document data.
      w_doc_data-doc_size = 1.
    Populate the subject/generic message attributes
      w_doc_data-obj_langu = sy-langu.
      w_doc_data-obj_name  = 'SAPRPT'.
      w_doc_data-obj_descr = ld_mtitle .
      w_doc_data-sensitivty = 'F'.
    Fill the document data and get size of attachment
      CLEAR w_doc_data.
      READ TABLE it_attach INDEX w_cnt.
      w_doc_data-doc_size =
         ( w_cnt - 1 ) * 255 + STRLEN( it_attach ).
      w_doc_data-obj_langu  = sy-langu.
      w_doc_data-obj_name   = 'SAPRPT'.
      w_doc_data-obj_descr  = ld_mtitle.
      w_doc_data-sensitivty = 'F'.
      CLEAR t_attachment.
      REFRESH t_attachment.
      t_attachment[] = it_attach[].
    Describe the body of the message
      CLEAR t_packing_list.
      REFRESH t_packing_list.
      t_packing_list-transf_bin = space.
      t_packing_list-head_start = 1.
      t_packing_list-head_num = 0.
      t_packing_list-body_start = 1.
      DESCRIBE TABLE it_message LINES t_packing_list-body_num.
      t_packing_list-doc_type = 'RAW'.
      APPEND t_packing_list.
    Create attachment notification
      t_packing_list-transf_bin = 'X'.
      t_packing_list-head_start = 1.
      t_packing_list-head_num   = 1.
      t_packing_list-body_start = 1.
      DESCRIBE TABLE t_attachment LINES t_packing_list-body_num.
      t_packing_list-doc_type   =  ld_format.
      t_packing_list-obj_descr  =  ld_attdescription.
      t_packing_list-obj_name   =  ld_attfilename.
      t_packing_list-doc_size   =  t_packing_list-body_num * 255.
      APPEND t_packing_list.
    Add the recipients email address
      CLEAR t_receivers.
      REFRESH t_receivers.
      t_receivers-receiver = ld_email.
      t_receivers-rec_type = 'U'.
      t_receivers-com_type = 'INT'.
      t_receivers-notif_del = 'X'.
      t_receivers-notif_ndel = 'X'.
      APPEND t_receivers.
      CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
           EXPORTING
                document_data              = w_doc_data
                put_in_outbox              = 'X'
                sender_address             = ld_sender_address
                sender_address_type        = ld_sender_address_type
                commit_work                = 'X'
           IMPORTING
                sent_to_all                = w_sent_all
           TABLES
                packing_list               = t_packing_list
                contents_bin               = t_attachment
                contents_txt               = it_message
                receivers                  = t_receivers
           EXCEPTIONS
                too_many_receivers         = 1
                document_not_sent          = 2
                document_type_not_exist    = 3
                operation_no_authorization = 4
                parameter_error            = 5
                x_error                    = 6
                enqueue_error              = 7
                OTHERS                     = 8.
    Populate zerror return code
      ld_error = sy-subrc.
    Populate zreceiver return code
      LOOP AT t_receivers.
        ld_receiver = t_receivers-retrn_code.
      ENDLOOP.
    ENDFORM.
    Regards,
    Shakti Barath

  • Could not parse XMBMessage due to Can't parse the document

    *Dear all,*
    *i have a SOAP to RFC Scenario. XML Validation by Adapter is turned on in SenderAgreement.*
    *XSD Files are placed in the correct directory. Incoming requests are validated. However,*
    *it seems that responses produce an error in the soap adapter.*
    *This is the error message i am getting:*
    +SOAP:Fault>+
             +<faultcode>SOAP:Server</faultcode>+
             +<faultstring>Server Error</faultstring>+
             +<detail>+
                +<s:SystemError xmlns:s="http://sap.com/xi/WebService/xi2.0">+
                   +<context>XIAdapter</context>+
                   +<code>ADAPTER.JAVA_EXCEPTION</code>+
                   +<text>com.sap.engine.interfaces.messaging.api.exception.MessagingException: com.sap.engine.interfaces.messaging.api.exception.MessagingException: Could not parse XMBMessage due to Can't parse the document+
    +     at com.sap.aii.adapter.soap.ejb.XISOAPAdapterBean.process(XISOAPAdapterBean.java:1173)+
    +     at sun.reflect.GeneratedMethodAccessor678.invoke(Unknown Source)+
    +     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)+
    +     at java.lang.reflect.Method.invoke(Method.java:592)....+
    *In SXMB_MONI my response includes the following passages*
    +- <!--  ************************************+
      -->
      +<Trace level="3" type="T">Pipeline Service = PLSRV_XML_VALIDATION_RS_OUT</Trace>+
      +<Trace level="3" type="T">Skip Inbound Validation =</Trace>+
      +<Trace level="3" type="T">Skip Outbound Validation =</Trace>+
      +<Trace level="3" type="T">Area = XML_VALIDATION_OUT</Trace>+
      +<Trace level="1" type="T">Reading sender agreement</Trace>+
      +<Trace level="3" type="T">Validation Mode = Validation by Adapter</Trace>+
      +<Trace level="1" type="T">Outbound validation of response takes place</Trace>+
      +<Trace level="3" type="T">Interface Name = SI_xxx_xxx_xxx_Sync_Outbound</Trace>+
      +<Trace level="3" type="T">Interface Namespace = http://xxx.de/xxx</Trace>+
      +<Trace level="3" type="T">Software Component Version = D390B9E10A6B11DF8C15C7540A484C06</Trace>+
      +<Trace level="2" type="T">Java Validation Service Call</Trace>+
      +<Trace level="1" type="T">System error occurred during XML validation</Trace>+
      +<Trace level="1" type="E">CL_XMS_PLSRV_VALIDATION~ENTER_PLSRV</Trace>+
      +</Trace>+
      +<Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_TO_PERSIST" />+
    +- <!--  ************************************+
      -->
      +<Trace level="3" type="T">Persisting message Status = 023</Trace>+
      +<Trace level="3" type="T">Message version 009</Trace>+
      +<Trace level="3" type="T">Pipeline CENTRAL</Trace>+
      +</SAP:Trace>+
    *I see the following error message:*
      +<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>+
    +- <!--  Aufruf eines Adapters+
      -->
    - <SAP:Error SOAP:mustUnderstand="1" xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
      <SAP:Category>XIServer</SAP:Category>
      <SAP:Code area="XML_VALIDATION_OUT">CX_XMS_SYSERR_VALIDATION</SAP:Code>
      <SAP:P1>Schema xxx.response.xsd not found in J:\usr\sap\xxx\SYS\global\xi\runtime_server\validation\schema\00000000000000000000000000000000\ u00D3u00B9u00E1 k u00DFŒ u00C7T HL \SI_xxx_xxx_xxx_Sync_Outbound\urnsap-comdocumentsaprfc~functions\xxx.response.xsd (J:\usr\sap\xxx\SYS\global\xi\runtime_server\validation\schema)</SAP:P1>
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText>not used at the moment.</SAP:AdditionalText>
      <SAP:Stack>System error occurred during XML validation</SAP:Stack>
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    There seems to be an error in the adapter trying to validate the response. Does anyone has a clue as to why ?

    Since i cannot get i running, i helped myself using a java mapping, that i packaged into a jar
    along with the xsd files. See code below:
    import com.sap.aii.*;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.BufferedReader;
    import java.io.OutputStream;
    import java.io.OutputStreamWriter;
    import java.io.UnsupportedEncodingException;
    import java.io.InputStreamReader;
    import java.io.Reader;
    import javax.xml.transform.sax.SAXResult;
    import javax.xml.transform.sax.SAXSource;
    import javax.xml.transform.stream.StreamSource;
    import javax.xml.validation.Schema;
    import javax.xml.validation.SchemaFactory;
    import javax.xml.validation.Validator;
    import org.xml.sax.InputSource;
    import org.xml.sax.SAXException;
    @SuppressWarnings("unused")
    public class CustomValidator extends AbstractTransformation {
         public void transform(TransformationInput arg0, TransformationOutput arg1)
                   throws StreamTransformationException {
              Validator validator;
              InputStreamReader insr;
              String inputPayloadString;
              try {
                   // Trace
                   getTrace().addInfo("com.xxx.pi.mapping.validation.CustomValidator called");
                   InputStream inputPayloadStream = arg0.getInputPayload()
                             .getInputStream();
                   insr = new InputStreamReader(inputPayloadStream);
                   InputHeader inpHeader = arg0.getInputHeader();          
                   String intfName = inpHeader.getInterface();
                   getTrace().addInfo("Interface Name is :" + intfName);
                   String xsdName = "";
                   if (intfName
                             .equalsIgnoreCase("SI_xxx_Sync_Outbound")) {
                        xsdName = "Z_xxx.xsd";
                   if (intfName.equalsIgnoreCase("SI_xxx")) {
                        xsdName = "Z_xxx.xsd";
                   if (intfName
                             .equalsIgnoreCase("SI_xxx_Sync_Outbound")) {
                        xsdName = "Z_xxx.xsd";
                   if (intfName
                             .equalsIgnoreCase("SI_xxxx_Sync_Outbound")) {
                        xsdName = "Z_xxx.xsd";
                   getTrace().addInfo("Using schema: " + xsdName);
                   if (xsdName.equals(""))
                        throw new StreamTransformationException("Schema für "
                                  + intfName + " nicht gefunden.");
                   BufferedReader reader = new BufferedReader(new InputStreamReader(
                             getClass().getResourceAsStream(
                                       "/com/xxx/pi/mapping/xsd/" + xsdName)));
                   // prepare document validator:
                   String schemaLang = "http://www.w3.org/2001/XMLSchema";
                   SchemaFactory jaxp = SchemaFactory.newInstance(schemaLang);
                   Schema schema = jaxp.newSchema(new StreamSource(reader));
                   validator = schema.newValidator();
              } catch (SAXException saxe) {
                   throw new StreamTransformationException(saxe.getMessage());
              // validate
              try {
                   SAXSource source = new SAXSource(new InputSource(insr));
                   validator.validate(source);
              } catch (Exception e) {
                   getTrace().addInfo(e.getMessage());
                   String trace = e.getMessage();
                   throw new StreamTransformationException(trace, e.getCause());
              // Write the response
              try {
                   inputPayloadString = convertStreamToString(arg0.getInputPayload()
                             .getInputStream());
                   arg1.getOutputPayload().getOutputStream()
                             .write(inputPayloadString.getBytes("UTF-8"));
                   getTrace().addInfo("Schema Validierung erfolgreich !");
              } catch (Exception e) {
                   throw new StreamTransformationException(e.getMessage());
         // helper to convert to String
         private static String convertStreamToString(InputStream in) {
              StringBuffer sb = new StringBuffer();
              try {
                   InputStreamReader isr = new InputStreamReader(in);
                   BufferedReader reader = new BufferedReader(isr);
                   String line;
                   while ((line = reader.readLine()) != null) {
                        sb.append(line);
              catch (Exception exception) {
              return sb.toString();

Maybe you are looking for

  • Screen not displaying

    Black screen. How do I resolve to get screen back? Thank You!

  • Is the case of iphone 5s fit to iphone 5?

    is the case of iphone 5s fit to iphone 5

  • PSE 12 running slow in Windows 7?

    I have just installed PSE 12 on a Windows 7 platform and it runs very slow and freezes when I try to selct files in organizer. Is there anyhting I can do in settings, etc.?

  • Possibly Fix To Unresponsive Screens

    apple didnt fix my ipod touch cause of cracked screen but my screen is unresponsive to touch only button work do you think if i reconnect the ribbon vable it will work cause my friends old iphone was crck every 2 cen. and it still worked so can someo

  • Reading and extracting information from pdf file

    Hi everybody! what am looking for is Java packages which can allow me to read and extract information form pdf file I would really appreciate link wtih sample code thanks in advance!