Get image file name

Hi ALL,
I want all image file naming like a caption in my source document. Source document contains more than 100 images.
But i got a script through the forum and tuned for my script. Still, the file naming comes for the Ist page image only.
From second page onwards the file naming not comes like a caption.
Trying script:
//To Get image file name
var tgt = app.activeDocument.rectangles;
for (i=0;i<tgt.length;i++){
    myCaption = app.activeDocument.textFrames.add();
    myCaption.textFramePreferences.verticalJustification = VerticalJustification.TOP_ALIGN
    myCaption.contents = tgt[i].graphics[0].itemLink.name
    myCaption.paragraphs[0].justification = Justification.CENTER_ALIGN;
    bnds = tgt[i].visibleBounds;
    myCaption.visibleBounds =
        [bnds[2]+12, bnds[1], bnds[2]+4,bnds[3]];
        //[bnds[0]-6, bnds[1], bnds[0]-1,bnds[3]];
        myCaption.fit(FitOptions.FRAME_TO_CONTENT);
Thanks in advance
BEGINNER

If you use the add() method in conjunction with the document without specifying the page or better the spread, all objects added will end up on the first spread of your document.
But your testing scenario is also too narrow. You are expecting:
1. All your graphics are sitting in Rectangle objects (what about Ovals or Polygons?)
Therefore: All graphics placed in ovals or polygons are left out.
2. That really ALL rectangles in your document contain graphics
You are in trouble, if there happen to be empty rectangles on a page. I would suggest to test that with your script. It will give you an error, because there is no graphics[0] for this specific rectangle, where you can draw the "name" for the "itemLink".
3. That there are no graphics in anchored objects or pasted inside other objects; left alone graphics inside table cells.
And who can say that thiese three restrictions exist in all documents you want to run this script against?
So, if you want to get to all image files in the document, why don't you start with the images in the first place?
Let's see:
the Document object has an "allGraphics" property.
Use that as a starting point and you will not missing a single graphic.*
Iterate through "allGraphics" will get you:
the "name" of the placed image through its itemLink.name property;
the container of the graphic, that's the "parent" of the graphic.
Now you need one other thing:
the page, or even better(!) the spread where the graphic is located. Imagine a graphic sitting outside of a page.
If you want to handle thiese, you must know the spread.
If  writing this script for InDesign CS5 or above, you are in luck. There is a "parentPage" property of the "Graphic" object, you could use for your add() method. For graphics outside of pages this property will be "null".
And another important thing:
if a graphic is copy/pasted from e.g. PhotoShop to InDesign, the "itemLink"  property of that graphic is also "null".
We can handle that in a try/catch scenario…
//Scope: all graphics on all pages
//(that includes graphics of anchored objects, active states of MSOs, graphics in table cells as well)
var tgt = app.activeDocument.allGraphics;
for(var i=0;i<tgt.length;i++){
    //Narrow the scope to all graphics on pages only:
    if(tgt[i].parentPage != null){
        //What to do with graphics, that are pasted directly from none-InDesign files:
        //the caption will read "Undefined"
        try{
        var myName = tgt[i].itemLink.name;
        }catch(e){var myName = "Undefined"};
        //targets the page of the graphic:
        var myPage = tgt[i].parentPage;
        //adds a text frame to the page of the graphic:
        var myCaption = myPage.textFrames.add();
        myCaption.textFramePreferences.verticalJustification = VerticalJustification.TOP_ALIGN;
        myCaption.contents = myName;
        myCaption.paragraphs[0].justification = Justification.CENTER_ALIGN;
        //Why visible bounds and not geometric bounds?
        var bnds = tgt[i].parent.visibleBounds;
        myCaption.visibleBounds = [bnds[2]+12, bnds[1], bnds[2]+4,bnds[3]];
        myCaption.fit(FitOptions.FRAME_TO_CONTENT);
*Not exactly true, because it is missing graphics in not-active states of  MultiStateObjects.
Since MSOs were introduced in InDesign CS5 the DOM documentation left out this fact so far.
//EDIT: in the first version I had a comment on a different scope. Since  Document Objects have no "graphic" property, I removed that comment. Sorry.
Uwe
P.S. And a Happy New Year to all!
Message was edited by: Laubender

Similar Messages

  • How to access iPhone "Photo Library" to get image file properties?

    I want to access iPhone "Photo Library" to get image file properties(name, list etc..) without dialog.
    Is there any suitable method/class to this?

    Allan,
    Thank you for your reply!
    My purpose is access to "Photo Library" by iPhone API.
    Because, I know several iPhone application which has own image list and the list is synced to "Photo Library".
    If I take photo by iPhone native camera, the taken photo is listed up on the image list so I guess those applications can access to "Photo Library" directly.
    Or.. any other solution..?
    Gazza

  • Adding image file name and logo to image

    Can you do batch processing of images to automatically insert the image file name, say at the bottom along with a logo, in black font. The logo stays constant but the image deatils will change with each image?
    Can this be done in Lightroom or then the full Photoshop?
    Thanks!

    I've taken the script mentioned above and modified it to the best of my abilities.  Still getting the same error, unfortunately:
    function main(){
    var suffix ="cropped";
    var docPath =Folder("~/Desktop");
    if(!docPath.exists){
       alert(docPath + " does not exist!\n Please create it!");
       return;
    var fileName =activeDocument.name.match(/(.*)\.[^\.]+$/)[1];
    var fileExt =activeDocument.name.toLowerCase().match(/[^\.]+$/).toString();
    var saveFile = new File(docPath +"/"+fileName+suffix+'.'+fileExt);
    switch (fileExt){
       case 'jpeg' : SaveJPEG(saveFile); break;
       default : alert("Unknown filetype please use manual save!"); break;
    if(documents.length) main();
    function SaveJPEG(saveFile, jpegQuality){
    jpgSaveOptions = new JPEGSaveOptions();
    jpgSaveOptions.embedColorProfile = true;
    jpgSaveOptions.formatOptions = FormatOptions.STANDARDBASELINE;
    jpgSaveOptions.matte = MatteType.NONE;
    jpgSaveOptions.quality = jpegQuality; //1-12
    activeDocument.saveAs(saveFile, jpgSaveOptions, true,Extension.LOWERCASE);

  • How can I assign image file name from Main() class

    I am trying to create library class which will be accessed and used by different applications (with different image files to be assigned). So, what image file to call should be determined by and in the Main class.
    Here is the Main class
    import org.me.lib.MyJNIWindowClass;
    public class Main {
    public Main() {
    public static void main(String[] args) {
    MyJNIWindowClass mw = new MyJNIWindowClass();
    mw.s = "clock.gif";
    And here is the library class
    package org.me.lib;
    public class MyJNIWindowClass {
    public String s;
    ImageIcon image = new ImageIcon("C:/Documents and Settings/Administrator/Desktop/" + s);
    public MyJNIWindowClass() {
    JLabel jl = new JLabel(image);
    JFrame jf = new JFrame();
    jf.add(jl);
    jf.setVisible(true);
    jf.pack();
    I do understand that when I am making reference from main() method to MyJNIWindowClass() s first initialized to null and that is why clock could not be seen but how can I assign image file name from Main() class for library class without creating reference to Main() from MyJNIWindowClass()? As I said, I want this library class being accessed from different applications (means different Main() classes).
    Thank you.

    Your problem is one of timing. Consider this simple example.
    public class Example {
        public String s;
        private String message = "Hello, " + s;
        public String toString() {
            return message;
        public static void main(String[] args) {
            Example ex = new Example();
            ex.s = "world";
            System.out.println(ex.toString());
    }When this code is executed, the following happens in order:
    1. new Example() is executed, causing an object to constructed. In particular:
    2. field s is given value null (since no value is explicitly assigned.
    3. field message is given value "Hello, null"
    4. Back in method main, field s is now given value "world", but that
    doesn't change message.
    5. Finally, "Hello, null" is output.
    The following fixes the above example:
    public class Example {
        private String message;
        public Example(String name) {
            message = "Hello, " + name;
        public String toString() {
            return message;
        public static void main(String[] args) {
            Example ex = new Example("world");
            System.out.println(ex.toString());
    }

  • How do I get the file names on a customized proof sheet?

    How do I get the file names on a customized proof sheet?

    Actually, I really don't know what you say.
    But when you see the properties of a file in Windows, you can see there are two file size. One is called "SIze" and the other one is called "Size on disk".
    Therefore, I would like to know the size on disk but not just the size.

  • How is it posible to get the File name, size and type from a File out the H

    How is it posible to get the File name, size and type from a File out the HttpServletRequest. I want to upload a File from a client and save it on a server with the client name. I want to conrole before saving the name, type and size of the file.How is it posible to get the File name, size and type from a File out the HttpServletRequest.
    form JSP
    <form name="form" method="post" action="procesuploading.jsp" ENCTYPE="multipart/form-data">
    File: <input type="file" name="filename"/
    Path: <input type="text" readonly="" name="path" value="c:"/
    Saveas: <input type="text" name="saveas"/>
    <input name="submit" type="submit" value="Upload" />
    </form>
    proces JSP
    <%@ page language="java" %>
    <%@ page import="java.util.*" %>
    <%@ page import="FileUploadBean" %>
    <jsp:useBean id="TheBean" scope="page" class="FileUploadBean" />
    <%
    TheBean.doUpload(request);
    %>
    BEAN
    import java.io.*;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.ServletInputStream;
    public class FileUploadBean {
    public void doUpload(HttpServletRequest request) throws IOException
              String melding = "";
              String filename = request.getParameter("saveas");
              String path = request.getParameter("path");
              PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter("test.java")));
              ServletInputStream in = request.getInputStream();
              int i = in.read();
              System.out.println("filename:"+filename);
              System.out.println("path:"+path);
              while (i != -1)
                   pw.print((char) i);
                   i = in.read();
              pw.close();
    }

    Thanks it works great.
    Here an excample from my code
    import org.apache.commons.fileupload.*;
    public class FileUploadBean extends Object implements java.io.Serializable{
    String foutmelding = "geen";
    String path;
    String filename;
    public boolean doUpload(HttpServletRequest request) throws IOException
         try
         // Create a new file upload handler
         FileUpload upload = new FileUpload();
         // Set upload parameters
         upload.setSizeMax(100000);
         upload.setSizeThreshold(100000000);
         upload.setRepositoryPath("/");
         // Parse the request
         List items = upload.parseRequest(request);
         // Process the uploaded fields
         Iterator iter = items.iterator();
         while (iter.hasNext())
         FileItem item = (FileItem) iter.next();
              if (item.isFormField())
                   String stringitem = item.getString();
         else
              String filename = "";
                   int temp = item.getName().lastIndexOf("\\");
                   filename = item.getName().substring(temp,item.getName().length());
                   File bestand = new File(path+filename);
                   if(item.getSize() > SizeMax && SizeMax != -1){foutmelding = "bestand is te groot.";return false;}
                   if(bestand.exists()){foutmelding ="bestand bestaat al";return false;}
                   FileOutputStream fOut = new FileOutputStream(bestand);     
                   BufferedOutputStream bOut = new BufferedOutputStream(fOut);
                   int bytesRead =0;
                   byte[] data = item.get();
                   bOut.write(data, 0 , data.length);     
                   bOut.close();
         catch(Exception e)
              System.out.println("er is een foutontstaan bij het opslaan de een bestand "+e);
              foutmelding = "Bestand opsturen is fout gegaan";
         return true;
         }

  • File Upload, how to get full file name

    Hi Experts,
    I have to get the complete file path when I use fileupload UI Element. but I am not able to achive this.
    I used a File Upload UI, with filename property mapped to string variable filename and Data mapped to a binary variable filedata.
    I tried to get the file name in below ways
    1. wdContext.nodefile().currentfileelement.getfilename();
    and
    2. through modifiablebinary type also.
    but in both cases I am getting only the file name, but not the complete path.
    Is there any way that I can get the file path.
    If I uplod a file in D drive (example.txt),
    I am getting the file name as example.txt but I want to get it as D://example.txt
    Please help me,
    Regards,
    Srinivas

    Hi
    What Stream are you using for read a file ?
    InputStream inputStream = resource.read(false);
    File  filePath = new File(inputStream.toString());
    wdComponentAPI.getMessageManager().reportWarning(filePath .getAbsolutePath());
    Best Regards
    Satish Kumar

  • Get FTP file name

    Hi,
       I have a question about how to get the file name from FTP.
       Use Function 'FTP_COMMAND'
      CALL FUNCTION 'FTP_COMMAND'
        EXPORTING
          HANDLE                = handle
          command               = 'ls'
        tables
          data                  =  data_list
       EXCEPTIONS
         TCPIP_ERROR           = 1
         COMMAND_ERROR         = 2
         DATA_ERROR            = 3
         OTHERS                = 4
    the return data_list data like this:
        -rw-rw-rw  1 user  group  1245  oct 8  08:18   1101_433.txt.
    The question is that  how can i get the file name?  At the example is '1101_433.txt.'.
    Which Function can process it ?

    Hi Zheng,
    FYI link which will guide you through FTP process
    http://wiki.sdn.sap.com/wiki/display/Snippets/ABAPsolutiontoimplementFTP+transactions
    Cheers
    S.Janagar

  • Get the file name into a Odi variable

    Hi,
    I need to get the file name into odi variable like ..A/ETC/file.txt
    For eg.the filename file.txt should get store in a variable.
    Then i want to compare the file name stored in the variable with some other value.
    Please suggest.
    Thanks.

    in package,
    declare the variable, then evaluate it with another variable, generally using # syntax
    if the variable is date type, suggest to use : syntax, because # will treat the variable value as text value
    in loadplan
    use case when syntax,

  • How to get the file name from Oracle B2B 10g

    Hi My requirement is I am getting a CSV file from Trading partner, I am using oracle 10g b2b to translate the data.
    In my BPEL 10g I am using AQ adapter to get the message from IP_IN_QUEUE.
    Now I want to get the file name Eg: SampleFile.dat of the CSV file in my BPEL process.
    I tried using the b2b.filename property in the receive activity and it is not getting the file name.
    <sequence name="main">
        <receive name="Receive_Note" partnerLink="GetB2BNote"
                 portType="ns1:Dequeue_ptt" operation="Dequeue"
                 variable="Receive_Note_Dequeue_InputVariable"
                 createInstance="yes">
                 <bpelx:property name="b2b.fileName" variable="WriteFileName"/>
        </receive>
      </sequence>
    Can you help me to get the file name from Oracle b2b 10g ?
    Thanks,
    b2b user

    Hi My requirement is I am getting a CSV file from Trading partner, I am using oracle 10g b2b to translate the data.
    In my BPEL 10g I am using AQ adapter to get the message from IP_IN_QUEUE.
    Now I want to get the file name Eg: SampleFile.dat of the CSV file in my BPEL process.
    I tried using the b2b.filename property in the receive activity and it is not getting the file name.
    <sequence name="main">
        <receive name="Receive_Note" partnerLink="GetB2BNote"
                 portType="ns1:Dequeue_ptt" operation="Dequeue"
                 variable="Receive_Note_Dequeue_InputVariable"
                 createInstance="yes">
                 <bpelx:property name="b2b.fileName" variable="WriteFileName"/>
        </receive>
      </sequence>
    Can you help me to get the file name from Oracle b2b 10g ?
    Thanks,
    b2b user

  • How to get the file name in one of the Xml node field?

    Hi Experts,
    i have one requirement with file name in xml file.
    i need to get <b>the file name of file</b> in one of the node in xml content of that file.
    how can i achieve that req?
    treat this as Very Urgent.

    Hi Bheem,
    Explain your scenario in detail..
    >>i need to get the file name of file in one of the node in xml content of that file.
    1. Create an node <b>Filename</b> in the target datatype.
    2. Check the Option Filename in the Adapter Specific Message Attributes in the sender file CC.
    3. Use the following UDF and map it to the Filename field in the target message type.
    public String getFileName(Container container)
    DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File","FileName");
    String ourSourceFileName = conf.get(key);
    return  ourSourceFileName; 
    Regards
    San

  • Getting the file name using ehdr:getRequestHeader function in style sheet

    Hi, I am facing an issue while using ehdr:getRequestHeader function to get the name of the file, which was placed in FTPS server and read by FTP Adapter. In style sheet I am trying to get the file name as below.
    <xsl:variable name="fileName"
    select="ehdr:getRequestHeader('/fhdr:InboundFTPHeaderType/fhdr:fileName','fhdr=http://xmlns.oracle.com/pcbpel/adapter/ftp/;')"/>
    and based on the file name I am trying to fetch the values from Property file, map it to a schema and make a SOAP service call.
    When i use the above functionality in style sheet exception occurs and in ESB instance I am not able to view the exception.
    It is saying as 'Details of the message are not available, The message details would have been purged'. In logs it is showing the following error trace.
    <MSG_TEXT>Failed to process deferred message</MSG_TEXT>
    <SUPPL_DETAIL>oracle.tip.esb.server.common.exceptions.BusinessEventRejectionException: Error occured while handling monitor message dequeued from monitor topic. Message text is "&lt;activityMessages>&lt;activityMessage order='10' type='6'>&lt;flowId>cRfy7g6a-8HDUKqyf4GsKw==&lt;/flowId>&lt;subFlowId>1245307693657&lt;/subFlowId>&lt;timestamp>1245307703862&lt;/timestamp>&lt;operationGUID>2F1C13905B3F11DE8F0BD923A1148BB1&lt;/operationGUID>&lt;operationQName>ESBTest.InvokeESB&lt;/operationQName>&lt;errorMessage>&lt;![CDATA[An unhandled exception has been thrown in the ESB system. The exception reported is: "org.collaxa.thirdparty.apache.wsif.WSIFException: exception on JaxRpc invoke: serialization error: java.lang.IllegalArgumentException: getSerializer requires a Java type and/or an XML type
            at com.collaxa.cube.ws.wsif.providers.oc4j.jaxrpc.WSIFOperation_JaxRpc.invokeOperation(WSIFOperation_JaxRpc.java:1714)
            at com.collaxa.cube.ws.wsif.providers.oc4j.jaxrpc.WSIFOperation_JaxRpc.invokeRequestResponseOperation(WSIFOperation_JaxRpc.java:1460)
            at com.collaxa.cube.ws.wsif.providers.oc4j.jaxrpc.WSIFOperation_JaxRpc.executeInputOnlyOperation(WSIFOperation_JaxRpc.java:1141)
            at oracle.tip.esb.server.common.wsif.WSIFInvoker.executeOperation(WSIFInvoker.java:894)
            at oracle.tip.esb.server.common.wsif.WSIFInvoker.nextService(WSIFInvoker.java:810)
            at oracle.tip.esb.server.common.wsif.WSIFInvoker.nextService(WSIFInvoker.java:832)
            at oracle.tip.esb.server.service.impl.outadapter.OutboundAdapterService.nextService(OutboundAdapterService.java:227)
            at oracle.tip.esb.server.service.impl.outadapter.OutboundAdapterService.processBusinessEvent(OutboundAdapterService.java:136)
            at oracle.tip.esb.server.dispatch.InitialEventDispatcher.dispatchNonRoutingService(InitialEventDispatcher.java:407)
            at oracle.tip.esb.server.dispatch.InitialEventDispatcher.dispatch(InitialEventDispatcher.java:165)
            at oracle.tip.esb.server.dispatch.BusinessEvent.raise(BusinessEvent.java:1988)
            at oracle.tip.esb.server.dispatch.BusinessEvent.raise(BusinessEvent.java:1467)
            at oracle.tip.esb.utils.EventUtils.raiseBusinessEvent(EventUtils.java:205)
            at oracle.tip.esb.utils.EventUtils.raiseBusinessEvent(EventUtils.java:136)
            at oracle.tip.esb.server.service.EsbRouterSubscription.onBusinessEvent(EsbRouterSubscription.java:310)
            at oracle.tip.esb.server.dispatch.EventDispatcher.executeSubscription(EventDispatcher.java:138)
            at oracle.tip.esb.server.dispatch.InitialEventDispatcher.processSubscription(InitialEventDispatcher.java:547)
            at oracle.tip.esb.server.dispatch.InitialEventDispatcher.processSubscriptions(InitialEventDispatcher.java:529)
            at oracle.tip.esb.server.dispatch.EventDispatcher.dispatchRoutingService(EventDispatcher.java:94)
            at oracle.tip.esb.server.dispatch.InitialEventDispatcher.dispatch(InitialEventDispatcher.java:161)
            at oracle.tip.esb.server.dispatch.BusinessEvent.raise(BusinessEvent.java:1988)
            at oracle.tip.esb.server.dispatch.BusinessEvent.raise(BusinessEvent.java:1467)
            at oracle.tip.esb.utils.EventUtils.raiseBusinessEvent(EventUtils.java:119)
            at oracle.tip.esb.utils.EventUtils.raiseBusinessEvent(EventUtils.java:65)
            at oracle.tip.esb.server.service.impl.inadapter.ESBListenerImpl.processMessage(ESBListenerImpl.java:722)
            at oracle.tip.esb.server.service.impl.inadapter.ESBListenerImpl.onMessage(ESBListenerImpl.java:407)
            at oracle.tip.adapter.fw.jca.messageinflow.MessageEndpointImpl.onMessage(MessageEndpointImpl.java:281)
            at oracle.tip.adapter.file.inbound.ProcessWork.publishMessage(ProcessWork.java:1173)
            at oracle.tip.adapter.file.inbound.ProcessWork.doTranslation(ProcessWork.java:882)
            at oracle.tip.adapter.file.inbound.ProcessWork.processMessages(ProcessWork.java:342)
            at oracle.tip.adapter.file.inbound.ProcessWork.run(ProcessWork.java:224)
            at oracle.j2ee.connector.work.WorkWrapper.runTargetWork(WorkWrapper.java:242)
            at oracle.j2ee.connector.work.WorkWrapper.doWork(WorkWrapper.java:215)
            at oracle.j2ee.connector.work.WorkWrapper.run(WorkWrapper.java:190)
            at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:825)
            at java.lang.Thread.run(Thread.java:595)
    ]]&gt;&lt;/errorMessage>&lt;exception>&lt;![CDATA[oracle.tip.esb.server.common.exceptions.BusinessEventRetriableException: An unhandled exception has been thrown in the ESB system. The exception reported is: "org.collaxa.thirdparty.apache.wsif.WSIFException: exception on JaxRpc invoke: serialization error: java.lang.IllegalArgumentException: getSerializer requires a Java type and/or an XML type
            at com.collaxa.cube.ws.wsif.providers.oc4j.jaxrpc.WSIFOperation_JaxRpc.invokeOperation(WSIFOperation_JaxRpc.java:1714)
            at com.collaxa.cube.ws.wsif.providers.oc4j.jaxrpc.WSIFOperation_JaxRpc.invokeRequestResponseOperation(WSIFOperation_JaxRpc.java:1460)
            at com.collaxa.cube.ws.wsif.providers.oc4j.jaxrpc.WSIFOperation_JaxRpc.executeInputOnlyOperation(WSIFOperation_JaxRpc.java:1141)
            at oracle.tip.esb.server.common.wsif.WSIFInvoker.executeOperation(WSIFInvoker.java:894)
            at oracle.tip.esb.server.common.wsif.WSIFInvoker.nextService(WSIFInvoker.java:810)
            at oracle.tip.esb.server.common.wsif.WSIFInvoker.nextService(WSIFInvoker.java:832)
            at oracle.tip.esb.server.service.impl.outadapter.OutboundAdapterService.nextService(OutboundAdapterService.java:227)
            at oracle.tip.esb.server.service.impl.outadapter.OutboundAdapterService.processBusinessEvent(OutboundAdapterService.java:136)
            at oracle.tip.esb.server.dispatch.InitialEventDispatcher.dispatchNonRoutingService(InitialEventDispatcher.java:407)
            at oracle.tip.esb.server.dispatch.InitialEventDispatcher.dispatch(InitialEventDispatcher.java:165)
            at oracle.tip.esb.server.dispatch.BusinessEvent.raise(BusinessEvent.java:1988)
            at oracle.tip.esb.server.dispatch.BusinessEvent.raise(BusinessEvent.java:1467)
            at oracle.tip.esb.utils.EventUtils.raiseBusinessEvent(EventUtils.java:205)
            at oracle.tip.esb.utils.EventUtils.raiseBusinessEvent(EventUtils.java:136)
            at oracle.tip.esb.server.service.EsbRouterSubscription.onBusinessEvent(EsbRouterSubscription.java:310)
            at oracle.tip.esb.server.dispatch.EventDispatcher.executeSubscription(EventDispatcher.java:138)
            at oracle.tip.esb.server.dispatch.InitialEventDispatcher.processSubscription(InitialEventDispatcher.java:547)
            at oracle.tip.esb.server.dispatch.InitialEventDispatcher.processSubscriptions(InitialEventDispatcher.java:529)
            at oracle.tip.esb.server.dispatch.EventDispatcher.dispatchRoutingService(EventDispatcher.java:94)
            at oracle.tip.esb.server.dispatch.InitialEventDispatcher.dispatch(InitialEventDispatcher.java:161)
            at oracle.tip.esb.server.dispatch.BusinessEvent.raise(BusinessEvent.java:1988)
            at oracle.tip.esb.server.dispatch.BusinessEvent.raise(BusinessEvent.java:1467)
            at oracle.tip.esb.utils.EventUtils.raiseBusinessEvent(EventUtils.java:119)
            at oracle.tip.esb.utils.EventUtils.raiseBusinessEvent(EventUtils.java:65)
            at oracle.tip.esb.server.service.impl.inadapter.ESBListenerImpl.processMessage(ESBListenerImpl.java:722)
            at oracle.tip.esb.server.service.impl.inadapter.ESBListenerImpl.onMessage(ESBListenerImpl.java:407)
            at oracle.tip.adapter.fw.jca.messageinflow.MessageEndpointImpl.onMessage(MessageEndpointImpl.java:281)
            at oracle.tip.adapter.file.inbound.ProcessWork.publishMessage(ProcessWork.java:1173)
            at oracle.tip.adapter.file.inbound.ProcessWork.doTranslation(ProcessWork.java:882)
            at oracle.tip.adapter.file.inbound.ProcessWork.processMessages(ProcessWork.java:342)
            at oracle.tip.adapter.file.inbound.ProcessWork.run(ProcessWork.java:224)
            at oracle.j2ee.connector.work.WorkWrapper.runTargetWork(WorkWrapper.java:242)
            at oracle.j2ee.connector.work.WorkWrapper.doWork(WorkWrapper.java:215)
            at oracle.j2ee.connector.work.WorkWrapper.run(WorkWrapper.java:190)
            at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:825)
            at java.lang.Thread.run(Thread.java:595)
            at oracle.tip.esb.server.common.wsif.WSIFInvoker.executeOperation(WSIFInvoker.java:1020)
            at oracle.tip.esb.server.common.wsif.WSIFInvoker.nextService(WSIFInvoker.java:810)
            at oracle.tip.esb.server.common.wsif.WSIFInvoker.nextService(WSIFInvoker.java:832)
            at oracle.tip.esb.server.service.impl.outadapte]]&gt;&lt;/exception>&lt;retryable>false&lt;/retryable>&lt;/activityMessage>&lt;/activityMessages>"
    at oracle.tip.esb.monitor.manager.ActivityMessageReceiver.handleMessage(ActivityMessageReceiver.java:96)
    at oracle.tip.esb.server.dispatch.agent.ESBWork.process(ESBWork.java:178)
    at oracle.tip.esb.server.dispatch.agent.ESBWork.run(ESBWork.java:132)
    at oracle.j2ee.connector.work.WorkWrapper.runTargetWork(WorkWrapper.java:242)
    at oracle.j2ee.connector.work.WorkWrapper.doWork(WorkWrapper.java:215)
    at oracle.j2ee.connector.work.WorkWrapper.run(WorkWrapper.java:190)
    at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:825)
    at java.lang.Thread.run(Thread.java:595)
    Caused by: oracle.tip.esb.monitor.MonitorException: Due to the error "", the activity message could not be stored.
    at oracle.tip.esb.monitor.manager.database.AbstractFaultPersister.persist(AbstractFaultPersister.java:107)
    at oracle.tip.esb.monitor.manager.database.DBActivityMessageStore.persistMessage(DBActivityMessageStore.java:340)
    at oracle.tip.esb.monitor.manager.database.DBActivityMessageStore.store(DBActivityMessageStore.java:131)
    at oracle.tip.esb.monitor.manager.ActivityMessageReceiver.handleMessage(ActivityMessageReceiver.java:83)
    ... 7 more
    Caused by: java.lang.NullPointerException
    at oracle.tip.esb.monitor.manager.database.oracle.OracleFaultPersister.persist(OracleFaultPersister.java:102)
    at oracle.tip.esb.monitor.manager.database.AbstractFaultPersister.persist(AbstractFaultPersister.java:105)
    ... 10 more
    </SUPPL_DETAIL>
    When I use the same function getRequestHeader for FileAdapter, it is working fine. Do anyone know why this issue occurs? Is this an issue with environment?

    As far as I can see the problem is the invoke of the SOAP service. This could be because of an empty filename but maybe there are other issues. First, make sure that the filename is read correctly by looking it up in the BPEL runtime process. Maybe the content is different than you expected it so that the read action for the properties give wrong result. Are you sure that ehdr is the correct prefix for the ftpheader?

  • Get the File Name received from FTP Adapter

    Hi,
    How to get the File name reived through the FTP Adpater. I have created a variable with the Message type from ftpAdapterinboundheader.wsdl. from there I mapped the filename attribute to a local string variable.
    But I did not receive the file name. The output in the Audit trail is as follows:
    <?xml version="1.0" encoding="UTF-8" ?>
    - <Invoke_File_Process_FileProcess_InputVariable>
    - <part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="InputParameters">
    - <InputParameters xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/PIERS/SP_FILE_PROCESS_UPDATE/">
    <AS_DIR xmlns="">I</AS_DIR>
    <AS_FILE_NAME xmlns="" />
    </InputParameters>
    </part>
    </Invoke_File_Process_FileProcess_InputVariable>
    Can any one let me know how to get the recevied file name from FTP adapter.
    Thanks

    you have to define variable of type InboundHeader_msg. Then in receive activity click on Adapter tab and for header variable chose your newly created variable (InboundHeader_msg). Once you receive message from FTP you should see in this variable fileName.

  • File adapter polling and getting the file name 11g Jdeveloper

    I am using JDeveloper 11g. My process is something like;
    A file adapter reads a XML file
    This triggers the BPM process, file content is sent to start activity as message
    I have to get the file name that is read by file adapter.
    How to do that? Any help is appreciated.
    I have seen couple of answers like bellow in forum but did not help me much
    This is a very simple task in JDeveloper 11g, file adapters are linked to the receive activity, here there is a tab called Properties which you can use to extract the file name. Please follow the steps below:
    1. Create a Simple Type variable of string type, call it fileName_var or any name you wish.
    2. Open the Receive activity in your bpel project.
    3. Scroll down to jca.file.FileName and double click on the value column, click on the browse button (...), select Variable, then click the search icon
    4. Locate your recently created variable
    5. Now when your project runs it will assign the file name to this variable, you can use this same approach also to pull the directory, file size, etc.
    *************************/

    hi,
    Like you said.. steps are simple and clearly mentioned in guide.
    1. create a variable of type string
    2. after configuring the file adapter , go to corresponding receive activity , go to properties tab
    3. search for a property with name as jca.file.FileName . This basically keeps track of file name
    4. for this property, give the value as name of variable created in step 1 above
    5. Use this variable anywhere in assign / transform
    HTH,
    Ketan

  • Get the file name using XSLT mapping

    Hi
    How to get the file Name at receiver side using XSLT mapping.
    Could any one please help me
    Regards
    sowmya

    Sowmya
    If you will use Grpahical Mesage Mapping then this can be achieved using Adapter-Specific Attribute u201CFileNameu201D
    http://help.sap.com/saphelp_nw04/helpdata/en/43/03612cdecc6e76e10000000a422035/content.htm
    Code Snippet -->
    DynamicConfiguration conf = (DynamicConfiguration) container
    .getTransformationParameters()
    .get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey key = DynamicConfigurationKey.create(
    u201Chttp://sap.com/xi/XI/System/Fileu201D,
    u201CFileNameu201D);
    But in case you have to ONLY use XSLT mapping then I would suggest to use the same jave code & call it from your XSLT mapping. I never tried such thing you might use couple of jar files too.
    - lalit -

Maybe you are looking for

  • S-Video Vs. VGA

    After getting my MacBook Pro a few days ago, I'm eager to hook it up to a TV and watch some video from bittor'...i mean uncopyrighted content However, the TV I want to connect it to doesn't have any digital inputs, although it does have both S-Video

  • Iphone 6plus won't turn on

    Hi my iphone 6plus 128Gb,get turn off but before that sudenly the right part of display get darkness and then it's start to get warm and warmer at least 10 min,the battery used and then i restart the phone then it's start but with half darkness displ

  • Registering classes to raise noncustom events in ActionScript 3

    I'm using ActionScript 3 in Flash Professional and I'd like my class to raise an event, not a custom event but an existing one. I've set up my class so that it extends EventDispatcher. In the documentation http://help.adobe.com/en_US/FlashPlatform/re

  • Table_name(1)

    Can anyone plz tell me what is the significance of "(1)" in below query where as phr is a table name I have two environment both the environment(sybase & Oracle) gives result for the below query, I was working on converting sybase code to oracle. Adv

  • Large number of deadlocks seen after upgrade to 2.4.14

    We upgraded the BDB version to 2.4.14 and are using the latest 4.7 release. Without code change on our part we are seeing large number of deadlocks with the new version. Do let me know if more information is needed. BDB: 106 lockers BDB: 106 lockers