Interpret items in watch folder

Is is possible to interpret the footage of items in a watch folder - for example, I have a lot of Avid DNxHD120 exported at 1080i but I'd like the output .mp4 files to encode properly to progressive.
If I don't interpret the footage manually as upper field first then AME will make a right mess of my encode.

It thinks it's progressive - no idea why! As far as I can make out there are no secondary dialogues for field order in Avid MC6 (we've had this issue since I can remember, from before MC5) other than the standard options + codec-specific options, so I don't think it's an issue with the Avid side of things. Are there any hidden options to assume a certain interpretation a la AE?

Similar Messages

  • Find and replace with multiple files and with a watch folder

    I am trying to create a watch folder that uses red_menace script to:
    1. Have a folder that receives multiple xml files that run the script one by one.
    2. then move the files to an output folder.
    I tried modifying the set TheFIle to choose file -- the original text file to:
    with multiple selections allowed
    But that doesn't seem to work. I know i'm missing a step. Any help is much appreciated!
    Thanks!
    The way i'd like to setup things is having an input folder on the desktop (or just have the application on the desktop and I can drag the files onto it), and let it do it's thing. Once it's done have it export the xml files into an output folder.
    Here's what i got so far:
    on open
    set TheFIle to choose file -- the original text file
    set TheFolder to ("Macintosh HD:Users:user1:Desktop:out") -- the folder for the output file
    set TheName to (GetUniqueName for TheFIle from TheFolder) -- the name for the output file
    set TheText to read TheFIle -- get the text to edit
    set Originals to {"KPCALDATE", "KPCALEVENT", "KPCALDAY", "KPCALBODY", "obituaries name", "" & return & "</cstyle></pstyle>" & return & "<pstyle name=\"obituaries text\"><cstyle>", "<pstyle name=\"obituaries text\"><cstyle name=\"Graphics Bold leadin\" font=\"ADV AGBook-Medium 2\">", "<pstyle name=\"Recipe Ingredients\"><cstyle>", " .com", " .net", " .org", " .edu", "www .", "www. ", "Ho- nolulu", "<pstyle name=\"kicker 12\"><cstyle allcaps=\"1\">fashion news</cstyle><cstyle allcaps=\"1\">" & return & "</cstyle></pstyle>" & return & "", "<component name=\"Headline 1\" type=\"Headline\">" & return & "<header>" & return & "<field name=\"Component name\" type=\"string\" value=\"Headline 1\"/>" & return & "<field name=\"Component type\" type=\"popup\" value=\"Headline\"/>" & return & "</header>" & return & "<body>" & return & "<pstyle name=\"hed STANDARD 36\"><cstyle>", "<pstyle name=\"obituaries text\"><cstyle allcaps=\"1\">", "<pstyle name=\"obituaries text\"><cstyle name=\"Graphics Bold leadin\">", "<pstyle name=\"tagline\"><cstyle>-", "-", "
    Per serving:", "<pstyle name=\"Titlebar - mini, red\"><cstyle allcaps=\"1\">NATION & World </cstyle><cstyle allcaps=\"1\">Report</cstyle><cstyle allcaps=\"1\">" & return & "</cstyle></pstyle>" & return & "", "</cstyle></pstyle>"} -- the terms that can be replaced
    set Replacements to {"subhed", "subhed", "subhed", "Normal", "obituaries text", ", ", "<pstyle name=\"obituaries text\"><cstyle name=\"Graphics Bold leadin\" font=\"ADV AGBook-Medium 2\">", "<pstyle name=\"Recipe Ingredients\"><cstyle>
    ", ".com", ".net", ".org", ".edu", "www.", "www.", "Honolulu", "", "<component name=\"Headline1\" type=\"Headline\">" & return & "<header>" & return & "<field name=\"Component name\" type=\"string\" value=\"Headline1\"/>" & return & "<field name=\"Component type\" type=\"popup\" value=\"Headline\"/>" & return & "</header>" & return & "<body>" & return & "<pstyle name=\"hed STANDARD 27\"><cstyle>", "<pstyle name=\"obituaries text\"><cstyle allcaps=\"1\">", "<pstyle name=\"obituaries text\"><cstyle name=\"Graphics Bold leadin\">", "<pstyle name=\"tagline\"><cstyle>—", " —", "
    Per serving:", "","" & return & "</cstyle></pstyle>"} -- the replacement terms
    repeat with AnItem from 1 to count Originals
    set TheText to (replaceText of TheText from (item AnItem of Originals) to (item AnItem of Replacements))
    end repeat
    try -- write a new output file
    tell application "Finder" to make new file at TheFolder with properties {name:TheName}
    set OpenFile to open for access (result as alias) with write permission
    write TheText to OpenFile starting at eof
    close access OpenFile
    on error errmess
    try
    log errmess
    close access OpenFile
    end try
    end try
    end open
    to GetUniqueName for SomeFile from SomeFolder
    check if SomeFile exists in SomeFolder, creating a new unique name if needed
    parameters - SomeFile [mixed]: a source file path
    SomeFolder [mixed]: a folder to check
    returns [text]: a unique file name and extension
    set {Counter, Divider} to {"00", "_"}
    -- get the name and extension
    set {name:TheName, name extension:TheExtension} to info for file (SomeFile as text)
    if TheExtension is missing value then set TheExtension to ""
    set TheName to text 1 thru -((count TheExtension) + 2) of TheName
    set NewName to TheName & "." & TheExtension
    tell application "System Events" to tell (get name of files of folder (SomeFolder as text))
    repeat while it contains NewName
    set Counter to text 2 thru -1 of ((100 + Counter + 1) as text) -- leading zero
    set NewName to TheName & Divider & Counter & "." & TheExtension
    end repeat
    end tell
    return NewName
    end GetUniqueName
    to EditItems of SomeItems given Title:TheTitle, Prompt:ThePrompt
    displays a dialog for multiple item edit (note that a return is used between each edit item)
    for each of the items in SomeItems, a line containing it's text is placed in the edit box
    the number of items returned are padded or truncated to match the number of items in SomeItems
    parameters - SomeItems [list]: a list of text items to edit
    TheTitle [boolean/text]: use a default or the given dialog title
    ThePrompt [boolean/text]: use a default or the given prompt text
    returns [list]: a list of the edited items, or {} if error
    set {TheItems, TheInput, TheCount} to {{}, {}, (count SomeItems)}
    if TheCount is less than 1 then return {} -- error
    if ThePrompt is in {true, false} then -- "with" or "without" Prompt
    if ThePrompt then
    set ThePrompt to "Edit the following items:" & return -- default
    else
    set ThePrompt to ""
    end if
    else -- fix up the given prompt a little
    set ThePrompt to ThePrompt & return
    end if
    if TheTitle is in {true, false} then if TheTitle then -- "with" or "without" Title
    set TheTitle to "Multiple Edit Dialog" -- default
    else
    set TheTitle to ""
    end if
    set {TempTID, AppleScript's text item delimiters} to {AppleScript's text item delimiters, return}
    set {SomeItems, AppleScript's text item delimiters} to {SomeItems as text, TempTID}
    set TheInput to paragraphs of text returned of (display dialog ThePrompt with title TheTitle default answer SomeItems)
    repeat with AnItem from 1 to TheCount -- pad/truncate entered items
    try
    set the end of TheItems to (item AnItem of TheInput)
    on error
    set the end of TheItems to ""
    end try
    end repeat
    return TheItems
    end EditItems
    to replaceText of SomeText from OldItem to NewItem
    replace all occurances of OldItem with NewItem
    parameters - SomeText [text]: the text containing the item(s) to change
    OldItem [text]: the item to be replaced
    NewItem [text]: the item to replace with
    returns [text]: the text with the item(s) replaced
    set SomeText to SomeText as Unicode text -- TID's are case insensitive with Unicode text
    set {TempTID, AppleScript's text item delimiters} to {AppleScript's text item delimiters, OldItem}
    set {ItemList, AppleScript's text item delimiters} to {text items of SomeText, NewItem}
    set {SomeText, AppleScript's text item delimiters} to {ItemList as text, TempTID}
    return SomeText
    end replaceText
    Message was edited by: gamebreakers

    When you use the open or adding folder items to handlers, you need to add the parameters for the file items passed to them.
    I'll go ahead and post the applet/droplet version of my original script from the previous topic for reference:
    <pre style="
    font-family: Monaco, 'Courier New', Courier, monospace;
    font-size: 10px;
    margin: 0px;
    padding: 5px;
    border: 1px solid #000000;
    width: 720px; height: 340px;
    color: #000000;
    background-color: #FFEE80;
    overflow: auto;"
    title="this text can be pasted into the Script Editor">
    -- search and replace multiple items applet/droplet/folder action
    -- the terms to replace - edit as needed
    property EditableItems : {¬
    "one", ¬
    "two", ¬
    "three", ¬
    "four", ¬
    "five", ¬
    "six", ¬
    "seven", ¬
    "eight", ¬
    "nine", ¬
    "ten", ¬
    "eleven", ¬
    "twelve", ¬
    "thirteen", ¬
    "fourteen", ¬
    "fifteen", ¬
    "sixteen", ¬
    "seventeen", ¬
    "eighteen", ¬
    "nineteen", ¬
    "twenty"}
    -- the folder for the output file(s) - change as needed
    property TheFolder : (path to desktop)
    property LastEditItems : EditableItems
    on run
    the applet/droplet was double-clicked
    open (choose file with multiple selections allowed)
    end run
    on open TheItems
    items were dropped onto the applet/droplet
    parameters - TheItems [list]: a list of the items (aliases) dropped
    returns nothing
    repeat with AnItem in TheItems
    ReplaceMultipleItems from AnItem
    end repeat
    end open
    on adding folder items to this_folder after receiving these_items
    folder action - items were added to a folder
    parameters - this_folder [alias]: the folder added to
    these_items [list]: a list if items (aliases) added
    returns nothing
    repeat with AnItem in these_items
    ReplaceMultipleItems from AnItem
    end repeat
    end adding folder items to
    to ReplaceMultipleItems from SomeFile
    replace multiple text items in SomeFile
    parameters - SomeFile [alias]: the file to replace items in
    returns nothing
    set TheName to (GetUniqueName for SomeFile from TheFolder) -- the name for the output file
    set TheText to read SomeFile -- get the text to edit
    set Originals to (choose from list EditableItems default items LastEditItems with prompt "Select the terms to replace:" with multiple selections allowed) -- the specific terms to replace
    set LastEditItems to Originals
    set Replacements to (EditItems of Originals with Title given Prompt:"Edit the following replacement terms:") -- the replacement terms
    repeat with AnItem from 1 to count Originals
    set TheText to (ReplaceText of TheText from (item AnItem of Originals) to (item AnItem of Replacements))
    end repeat
    try -- write a new output file
    tell application "Finder" to make new file at TheFolder with properties {name:TheName}
    set OpenFile to open for access (result as alias) with write permission
    write TheText to OpenFile starting at eof
    close access OpenFile
    on error errmess
    try
    log errmess
    close access OpenFile
    end try
    end try
    end ReplaceMultipleItems
    to GetUniqueName for SomeFile from SomeFolder
    check if SomeFile exists in SomeFolder, creating a new unique name if needed
    parameters - SomeFile [mixed]: a source file path
    SomeFolder [mixed]: a folder to check
    returns [text]: a unique file name and extension
    set {Counter, Divider} to {"00", "_"}
    -- get the name and extension
    set {name:TheName, name extension:TheExtension} to info for file (SomeFile as text)
    if TheExtension is in {missing value, ""} then
    set TheExtension to ""
    else
    set TheExtension to "." & TheExtension
    end if
    set {NewName, TheExtension} to {TheName, (ChangeCase of TheExtension to "upper")}
    set TheName to text 1 thru -((count TheExtension) + 1) of TheName
    tell application "System Events" to tell (get name of files of folder (SomeFolder as text))
    repeat while it contains NewName
    set Counter to text 2 thru -1 of ((100 + Counter + 1) as text) -- leading zero
    set NewName to TheName & Divider & Counter & TheExtension
    end repeat
    end tell
    return NewName
    end GetUniqueName
    to EditItems of SomeItems given Title:TheTitle, Prompt:ThePrompt
    displays a dialog for multiple item edit (note that a return is used between each edit item)
      for each of the items in SomeItems, a line containing it's text is placed in the edit box
        the number of items returned are padded or truncated to match the number of items in SomeItems
    parameters - SomeItems [list]: a list of text items to edit
    TheTitle [boolean/text]: use a default or the given dialog title
    ThePrompt [boolean/text]: use a default or the given prompt text
    returns [list]: a list of the edited items, or {} if error
    set {TheItems, TheInput, TheCount} to {{}, {}, (count SomeItems)}
    if TheCount is less than 1 then return {} -- error
    if ThePrompt is in {true, false} then -- "with" or "without" Prompt
    if ThePrompt then
    set ThePrompt to "Edit the following items:" & return -- default
    else
    set ThePrompt to ""
    end if
    else -- fix up the given prompt a little
    set ThePrompt to ThePrompt & return
    end if
    if TheTitle is in {true, false} then if TheTitle then -- "with" or "without" Title
    set TheTitle to "Multiple Edit Dialog" -- default
    else
    set TheTitle to ""
    end if
    set {TempTID, AppleScript's text item delimiters} to {AppleScript's text item delimiters, return}
    set {SomeItems, AppleScript's text item delimiters} to {SomeItems as text, TempTID}
    set TheInput to paragraphs of text returned of (display dialog ThePrompt with title TheTitle default answer SomeItems)
    repeat with AnItem from 1 to TheCount -- pad/truncate entered items
    try
    set the end of TheItems to (item AnItem of TheInput)
    on error
    set the end of TheItems to ""
    end try
    end repeat
    return TheItems
    end EditItems
    to ReplaceText of SomeText from OldItem to NewItem
    replace all occurances of OldItem with NewItem
    parameters - SomeText [text]: the text containing the item(s) to change
    OldItem [text]: the item to be replaced
    NewItem [text]: the item to replace with
    returns [text]: the text with the item(s) replaced
    set SomeText to SomeText as text
    if SomeText contains OldItem then
    set {TempTID, AppleScript's text item delimiters} to {AppleScript's text item delimiters, OldItem}
    try
    set {ItemList, AppleScript's text item delimiters} to {text items of SomeText, NewItem}
    set {SomeText, AppleScript's text item delimiters} to {ItemList as text, TempTID}
    on error ErrorMessage number ErrorNumber -- oops
    set AppleScript's text item delimiters to TempTID
    error ErrorMessage number ErrorNumber
    end try
    end if
    return SomeText
    end ReplaceText
    to ChangeCase of SomeText to CaseType
    changes the case or capitalization of SomeText to the specified CaseType using Python
    parameters - SomeText [text]: the text to change
    CaseType [text]: the type of case desired:
    "upper" = all uppercase text
    "lower" = all lowercase text
    "title" = uppercase character at start of each word, otherwise lowercase
    "capitalize" = capitalize the first character of the text, otherwise lowercase
    returns [text]: the changed text 
    set SomeText to SomeText as text
    if CaseType is not in {"upper", "lower", "title", "capitalize"} then return SomeText
    return (do shell script "/usr/bin/python -c \"import sys; print unicode(sys.argv[1], 'utf8')." & CaseType & "().encode('utf8')\" " & quoted form of SomeText)
    end ChangeCase
    </pre>
    Edit: how does the choose from list dialog handle those big strings? I'm guessing not very well - is that why you avoided using them?
    Message was edited by: red_menace

  • Watch Folder doesn't work with cineform codec - help needed

    My computer is a:
    2x Intel Xeon Processor E5-2650 (2000 MHz, 20MB);
    16x Kingston DIMM 8 GB PC3-8500 ECC Reg.;
    PNY Quadro 4000 with 2048 MB GDDR5-RAM;
    2x 2000 GB Western Digital RE4 (7200 UPM/S-ATA II) as a RAID I
    1x 120 GB OCZ Vertex 3 SSD
    1x 240 GB OCZ Vertex 3 SSD (system disk)
    Tyan S7050GM4NR motherboard
    Windows 7
    with the actual version of media encoder cc and as codec I use cineform GoProStudioPremium-2.0.1.319
    I have about 2000 files to be converted from cineform avi with 4k resolution to cineform avi with 1920x1080.
    All files are pre-keyed and have rgb+alpha (4:4:4:4).
    When I add the folder to the "watch folder"-list then it encodes the first few clips and then I get the error message:
    the AMEEncodingErrorLog shows:
    - Encoding Time: 00:00:00
    03/26/2014 12:27:49 AM : Encoding Failed
    A low-level exception occurred in: CineForm AVI File (Exporter)
    A low-level exception occurred in: CineForm AVI File (Exporter)
    Export Error
    Error compiling movie.
    Unknown error.
    My cineform settings are:
    Does anybody know how to solve the problem or any workaraound?
    What I already tried is to drag and drop a "few" files, for example 50 clips manually into the ame. What then happens is that the media encoder crashes completely.
    I've got a client that needs all those files converted until the end of this week, so I would be really happy if anybody could help me.
    Or has anyone an idea for another encoder I could use? I also tried it with telestream episode but it does not support avi container with cinepro-codec...
    VirtualDub doesn't support alpha channels, so which program could work?
    Best regards,
    Wolfram

    Hello Nariman,
    thanks for your answer
    1. Exactly what version does it say you have?
    Version 7.2.0.43
    2. what happens if you open other types of files like .MOV or WMV and convert to Cineform?
    I tested it with mov- and wmv-files:
    No, same problem: [..\..\Src\LegacyTime.cpp-101]
    3. what happens if you take your Cineform files and convert them to other formats like H264?
    This works fine.
    4. How large or small are your files?
    The size of the files is between 70MB and 300MB, but 90 % of them are between 90MB and 130 MB.
    5  Are these stills or movies ?  How many minutes?
    All items are pre-keyed movies (which I exported from after effects via media encoder to the 4k-cineform files). The length of all files is between 2 und 5 seconds.
    6. Are you using 3rd party plugin to import and export Cineform?
    I have got the cineform studio premium codec installed. It shows up directly in the media encoder options. So I don't use anything else than media encoder and the cineform codec

  • Can Media Encoder take an image sequence in the watch folder and turn it into a video file?

    I'm using OSX and Media Encoder 6 (from premier 6) and can't figure out how to make the watch folder take a .jpeg or .dpi sequence and turn it into a single video file.
    I tried copying all the stills into the watch folder, that made 60 individual video files (one for each image).
    I tried making a folder inside the watch folder, and copying all the images into it.. to which Media Encoder did nothing.
    What am I missing? Will Media Encoder take image sequences and render them out as a audio-less video for me?
    Thanks for any imput.

    Hi action_packed,
    This is from the documentation: http://helpx.adobe.com/media-encoder/using/add-items-encoding-queue.html
    Still Image Sequences are not supported as source footage through Watch Folders. If a set of still images is placed in the folder being watched, each individual still file will be added as a separate item to the Queue rather than than the entire sequence as a single piece of footage.
    Make a feature request for that here: http://adobe.ly/feature_request
    Thanks,
    Kevin

  • Imported items not in folder Photoshop Elements 12 Organizer; when import error states already in catalog

    I have several folders that are in the same folder in Windows.  Most folders are visible, but some are not.  I attempted moved the folders I could not see in organizer to a folder not in the watch list.  Re-booted, and tried to move them back into the watch folder.  It started the process of importing into Organizer, but failed and stated already in catalog, the they are not visible.  I've uninstalled Photoshop, moved items off the machine, re-installed Photoshop and moved the files back to the watch folder.  But still, not all folders will show up.  Looked at all settings I could find that could impact.  Not sure what to do next.  Any ideas?

    Try the solution here:
    http://feedback.photoshop.com/photoshop_family/topics/photoshop_elements_9_cd_program_purc hased#reply_5626978

  • Watch Folder to Overwrite Sequence Files? – Templated Project with Custom Images

    So I want users to be able to upload an image to my server, have it added to a video, and rendered out and served to them.  Simple right?  Maybe my workflow needs adjustment:
    I have a project saved with an image sequence render queued, and a subsequent movie file render (of the image sequence) queued and collected. (the image sequence is to utilize multi-machine rendering because of intense effects, etc.)  When a user uploads an image, the server duplicates this template-project collected folder.  The project has a placeholder image that is replaced by the user's uploaded image (into the footage folder).  The server then drops it all in a watch folder for multi-machine rendering.  The sequence renders and the movie renders just fine!  All good.
    The only PROBLEM is that when the second instance comes along, "skip existing files" is checked (by necessity to use the multi-machine function) and therefore just keeps the existing image sequence without overwriting.  Every instance of the project is just a duplicate, and so has the same target path for the image sequence.  So the subsequent movie file comes out the same as the first.
    So how can I either:
    1) force overwriting the image sequence
    2) automate unique directories for each image sequence render – without physically opening the project to specify a different target path
    -or- 3) move/delete the image sequence folder AFTER movie render, but BEFORE another watch folder render (considering multiple queued projects in the watch folder at once).
    An ideas??  Thanks!!!

    > So is there a way to automate importing the image sequence through aerender and tell it to render a movie?
    Are you familiar with post-render actions? They exist to do this kind of thing.
    Here's a relevant excerpt from After Effects Help:
    http://helpx.adobe.com/after-effects/using/basics-rendering-exporting.html#post_render_act ions
    "Use the Import & Replace Usage option to create a chain of dependent render items. For example, you can set one render item to use a watch folder and multiple computers to create a still-image sequence, and then the next render item can render a single movie file from that still-image sequence"

  • Bridge Watch Folder

    I'm beating my head against what I think should be a fairly simple problem:
    1. Bridge watches a folder for incoming files.
    2. When files are added to that folder, they get loaded into a Photoshop file as a layer stack.
    3. A Photoshop Action runs, doing some image adjustments, etc.
    4. The processed file is saved as an animated gif.
    I found a solution that looked promising here: https://forums.adobe.com/message/4826884#4826884. The first script adds a "Hot Folder" menu item to Bridge. When the hot folder is started, it is supposed to hand off an array of files to the second script, which does the work of opening the files and processing them in Photoshop. It seems like it should work, but I haven't been able to make it fire off that second script, and I can't for the life of me figure out where it's failing. It could be that I'm just not familiar enough with ExtendScript Toolkit to figure out how to debug it usefully.
    Any help would be greatly appreciated - pointers toward scripting resources, maybe a different approach to the issue that I may not have thought of - whatever.
    Simon

    The fact that the watch folder is not local to the AME machine may indeed factor in.The process is definitely more robust in a local scenario; network environments complicate matters in a number of ways. Can you run a test where you copy the same batch of files to a watch folder on the AME box?
    A few other questions:
    Is the "Auto-Encode Watch Folders"  option enabled (at the top right of the Queue panel)? And are all 350 files getting added to the AME queue?
    If Auto-Encode *is* enabled and some jobs are *not* getting added to the queue, then please try with Auto-Encode enabled.
    We're not suggesting this as a workaround but just to give us more insight into where things are failing.
    What are CPU and memory usage though the process, from the time you drop files into the watch folder until AME hangs? Are either getting maxed out?
    How big are the VOB files? How long does it take to copy all of them into the watch folder?
    I know of no way to disable the creation of media cache files.
    Thanks for bringing this issue to our attention and giving us an opportunity to troubleshoot it.
    Mark Mapes
    Premiere Pro/AME Sr. Quality Engineer

  • AppleScript watched folder

    I need of a "watched folder" that will email a URL of any new files for me automatically. I have a folder on a Snow Leopard server that is in the Web Server’s Document’s folder. People drop QuickTime Movie files in this folder and then I send out an email with the URL to the file. Do you know of a way to automate this process for each new file dropped into the folder? The email would have this link: http://3.156.4.93/len/filename. The people would recieve the email and click on the link and the QuickTime movie opens up in their web browser.

    This sounds like a simple Folder Action script. Indeed, Apple provide several samples that trigger on a file being added to a folder - check /Library/Scripts/Folder Action Scripts for starters.
    One trickier element is that most AppleScript examples of sending emails usually hinge around Mail.app, but if this is running on a server then Mail.app might not be running, so you may have to look at alternative options, such as generating mail via a command line:
    on adding folder items to my_folder after receiving the_files
              repeat with each_file in the_files
      -- work out the file name
                        set filename to name of (info for each_file)
      -- build the URL
                        set fileURL to "http://3.156.4.93/len/" & filename
      -- here's your message text
                        set msg to "A new movie has been uploaded, click " & fileURL & " to view it."
      -- save that to a temp file
                        do shell script "/bin/echo '" & msg & "' > /var/tmp/msgTxt"
      -- setup the recipient
                        set rcpt to "[email protected]"
      -- send it via the command line
                        do shell script "/usr/bin/mail -s 'New Movie' " & rcpt & " < /var/tmp/msgTxt"
              end repeat
    end adding folder items to
    Save this as a folder action script, then you can assign it to your upload directory via the Finder on the server.
    The alternative, non-AppleScript option, is to use Launchd with a WatchPath defined. This will trigger a shell script whenever a directory changes. Without a GUI running on the server, though, you're still restricted to command-line driven mail.

  • Javascript Watch Folder in Mac?

    Hi Scripters,
    Need guide lines about Watch folder in mac platform for the InDesign automation.
    Thanks
    Karpanai

    Both of those posted links relate to 'mouse position'… I think Harbs posted them in the wrong thread…? What you have asked for does NOT exist… AppleScript can 'watch' a folder and has events such as 'on adding items' and 'on removing items' these events can trigger your script. JavaScript with the ESTK does not provide system level events for objects like File or Folder. You could create a script that is triggered by an AppleScript outer wrapper by using app.doScript()… The closest the CS Suite has is Bridge's scheduleTask()
    Personally I find AppleScript's 'Folder Action Scripts' tend to be a little flakey…

  • Excel save as pdf hangs when launched through a watch folder

    Hi there,
    I've configured a watch folder to launch a batch file which launch a .exe file I've written in C++
    In this application I launch Excel which open a .XLS document which contains macros.
    At the end of the computations there is a macro which save as pdf.
    At this point everything hangs and I have to cancel the job I've created for the watch folder.
    If I disable the watch folder and I place the starting file inside the watch folder
    and I manually launch the .bat file (which usually is launched by the watch folder) everything works perfectly.
    I really really hope there will be someone here coming with a solution for me.
    By the way on the windows forum I've got a very disappointing answer where they stated it was probably a fault of my application.
    Well fortunately that was not the problem because
    I can reproduce the problem even removing my application from the equation so now we have cleared
    the issue is not casued by my application.
    So if you want to try it yourself just follow the steps below:
    1) create an excel document so that after you open it it automatically run a save as pdf operation and close excel. (let's call this document "PRINT_TEST.xls")
    2) create a batch file named "Excel_launcher.bat" and write the command
    ""C:\Program Files\Microsoft Office 15\root\office15\EXCEL.EXE" "C:\teststampapdf\PRINT_TEST.xls""
    3) Now create a watch folder job that execute that batch file.
    something like "C:\watchfolderX\Excel_launcher.bat"
    4) now create a watch folder that uses that job and for file filter use "*.txt" enable it and start it
    5) now launch manually the batch file and you'll see that it print the pdf and closes itself
    6) drop a txt file inside the watch folder you've created and you'll see it hangs at the save as pdf operation.
    This is something that have to be fixed and it's due to excel.
    I can launch and save documents with all the application I want but excel so that's the problem.
    Please take a look and keep me updated I badly need to find a solution for this issue.
    THANK YOU in advance,
    Davide

    Hi Davide,
    This is no the right forum for your issue. I think you can consult this issue on some Excel end-user related forum.
    Best regards,
    Barry
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • How to delete all items in download folder under bookmark in the shortest time?

    I understand that all downloads from internet and yahoo/google mail are stored in the "Download" folder which I see under bookmark when I want to delete. I think that if the download folder is never emptied, then my mac will slow down. Therefore I want to delete these downloads which I have already seen. How do I delete ALL items in the shortest time? Deleting items, even in groups, takes a long time. Is there a method that I can use so that all items in the folder are deleted in one stroke?
    Thanks.
    Unguja

    Try (first button on toolbar) Organize > Select All (Command + A) to select all items in the right pane in the Library.

  • How do I determine the name of a file from a watched folder

    I would like to generate a log to track the names and outcomes of files processed from a watched folder.  I don't see a way to access the name of the file from within the process.  I have a variable "inPDF" which is data type "document" and "outResult" which is type "xml" but I don't see a way to access the file name (or path) of the "inPDF" "document" object.  Is there a way to access the file name and path?

    Thank you, this sounds promising.
    Where can I find documentation describing the attributes that can be retrieved using the getDocumentAttribute function?  Also, where can I find a complete reference on the Document object?
    Best Regards,
    Noam

  • I use Windows Vista and Microsoft Outlook. After migrating to iCloud, the calendar of iCloud tranferred only part of my past Calendar items to the folder iCloud Calendar in my Outlook. How can I transfer all the entries?

    I use Windows Vista and Microsoft Outlook. After migrating to iCloud, the calendar of iCloud tranferred only part of my past Calendar items to the folder iCloud Calendar in my Outlook. How can I transfer all the entries? In iCloud's site all are there.

    If the calendar is on iCoud.com, all you would need to do to get it on your phone is go to Settings>iCloud on your phone, sign into your iCoud account and turn Calendars on.  The iCloud calendars will then download to your phone.

  • I want to read the content of a text file dropped in a watched folder into a string variable

    I have a workbench process with 2 variable.
    inDoc (DataType=Document/input/required)
    outStr (DataType = String/output)
    The document being passed to the workflow is a text file with 4 lines of text in it.  when the text file is dropped into the watched folder, it will be assigned to the inDoc parameter in the workflow.
    My workflow needs to extract the 4 lines of text and write it into a string (outStr).
    Id like to use the FileUtilsService.ReadString service but i can't since its input parameter is the file path.  When i do, i get the following error...
    Caused by: ALC-FUT-001-011: File rO0ABXNyABZjb20uYWRvYmUuaWRwLkRvY3VtZW50yAEFUxsO+CEDACNJAAtfY2FsbGJhY2tJZFoADV9kZXNlcmlhb Gl6ZWRJABBfZGlzcG9zYWxUaW1lb3V0WgAJX2Rpc3Bvc2VkWgAZX2lzRGlzcG9zYWxUaW1lb3V0RGVmYXVsdFoAE19 pc1RyYW5zYWN0aW9uQm91bmRKAAdfbGVuZ3RoSQAOX21heElubGluZVNpemVaAAhfb3duRmlsZVoAC19wYXNzaXZhd GVkWgALX3BlcnNpc3RlbnRJABFfc2VuZGVyQ2FsbGJhY2tJZFoAEV9zZW5kZXJQYXNzaXZhdGVkWgARX3NlbmRlclB lcnNpc3RlbnRJAA5fc2VuZGVyVmVyc2lvbkkABl9zdGF0ZUwAC19hdHRyaWJ1dGVzdAATTGphdmEvdXRpbC9IYXNoT WFwO0wACF9jYWNoZUlkdAAfTGNvbS9hZG9iZS9pZHAvRG9jdW1lbnRDYWNoZUlEO0wADF9jYWxsYmFja1JlZnQAIUx jb20vYWRvYmUvaWRwL0lEb2N1bWVudENhbGxiYWNrO0wADF9jb250ZW50VHlwZXQAEkxqYXZhL2xhbmcvU3RyaW5nO 0wAC19kYXRhQnVmZmVydAAeTGNvbS9hZG9iZS9zZXJ2aWNlL0RhdGFCdWZmZXI7TAAPX2V4cGlyYXRpb25UaW1ldAA QTGphdmEvbGFuZy9Mb25nO0wABV9maWxldAAOTGphdmEvaW8vRmlsZTtMABBfZ2xvYmFsQmFja2VuZElkdAAhTGNvb S9hZG9iZS9pZHAvRG9jdW1lbnRCYWNrZW5kSUQ7WwAHX2lubGluZXQAAltCTAAMX2lucHV0U3RyZWFtdAAVTGphdmE vaW8vSW5wdXRTdHJlYW07TAAPX2xvY2FsQmFja2VuZElkcQB+AAhMAAxfcHVsbFNlcnZhbnR0ACRMY29tL2Fkb2JlL 2lkcC9JRG9jdW1lbnRQdWxsU2VydmFudDtMABFfcmFuZG9tQWNjZXNzRmlsZXQAGkxqYXZhL2lvL1JhbmRvbUFjY2V zc0ZpbGU7TAAVX3NlbmRlckNhbGxiYWNrUmVmSU9ScQB+AARMABZfc2VuZGVyR2xvYmFsQmFja2VuZElkcQB+AAhMA A1fc2VuZGVySG9zdElkcQB+AARMABVfc2VuZGVyTG9jYWxCYWNrZW5kSWRxAH4ACEwAGl9zZW5kZXJQdWxsU2VydmF udEpuZGlOYW1lcQB+AARMAARfdXJsdAAOTGphdmEvbmV0L1VSTDt4cHcGAAAAAwAAcHd1AHMwOjA6MDowOjA6MDowO jEvMTI3LjAuMC4xLy8vLy8vLy8vZmU4MDowOjA6MDo3NDMyOmU0OWQ6NmUzMToxNTU0JTEwLzEwLjI0LjIzOS4xMjY vZmU4MDowOjA6MDowOjVlZmU6YTE4OmVmN2UlMTEvLy8vdXIAAltCrPMX+AYIVOACAAB4cAAAAcRJTU01MjU3XzAxL TIwMTFfMXwwMXx8YXx8fHxGZW1hbGV8MjAwMHw2fDh8Y3wyNTZ8MjU2fDkxMnwwMXx8fHx8fHx8Tnx8fHx8fHx8fHx 8fHx8fHx8fHxZfHx8fHx8fHx8fDAyfHx8fHx8TnwyMDEyfDJ8MTR8DQpJTU01MjU3XzAxLTIwMTFfMnx8fHx8fHx8f Hxhc2RmfDI1NnwyMDEyfDAyfDAxfDIwMTJ8MDN8MDJ8fHx8YXxhfDI1Mnx8fHxZfHx8fHx8fHx8fHx8fHx8DQpJTU0 1MjU3XzAxLTIwMTFfM3xOfHx8fHx8fHx8fDIwMDB8Nnx8fGFzZGZ8YXNkZnxhc2RmfDI1Nnx8fHx8fHx8fHx8fHx8f Hx8fHx8DQpJTU01MjU3XzAxLTIwMTFfNHxOfE58fE58TnxOfHxOfE58fE58TnxOfA0KSU1NNTI1N18wMS0yMDExXzV 8U2luZ2xlfDAxfHwyMDEyfDAyfDE4fDIwMTJ8MDN8MDN8MjM0fGFzZGZ8fGFzZGZhc3x8fHxFeGNoYW5nZS1Qcm8uO S40MDEuRnVsbC5XSU4uZW5fQ0EuRU5VLTEwLTIwMTF8DQoNCnBwdwYAAAAAAAB0AAp0ZXh0L3BsYWlucHNyABFqYXZ hLnV0aWwuSGFzaE1hcAUH2sHDFmDRAwACRgAKbG9hZEZhY3RvckkACXRocmVzaG9sZHhwP0AAAAAAAAx3CAAAABAAA AADdAAKd3NmaWxlbmFtZXQAJ0M6XFVzZXJzXENodWxseS5QYXJrXERlc2t0b3BcaGRzY2FuLnR4dHQACGJhc2VuYW1 ldAAKaGRzY2FuLnR4dHQABGZpbGVxAH4AFXh3NwAtYWRvYmUvaWRwL0RvY3VtZW50UHVsbFNlcnZhbnQvYWRvYmVqY l9MQ19ERVYx//////////94 does not exist.
    at com.adobe.livecycle.fileutils.FileUtilsService.readDocument(FileUtilsService.java:363)
    which is what i expected...
    I've also tried with the Script.executeScript to call some java code but im not too strong in java and in all the examples i find, the file pointer requires a file path.
    import java.io.*;
    FileInputStream f = new FileInputStream(patExecContext.getProcessDataValue("/process_data/inDoc"));
    OR
    File f = new File(patExecContext.getProcessDataValue("/process_data/inDoc"));
    OR
    File f = patExecContext.getProcessDataValue("/process_data/inDoc");
    Any clue how to resolve my problem?

    Try the following code snippet to read the String content from the file recieved through watched folder endpoint.
    com.adobe.idp.Document inputDoc = patExecContext.getProcessDataDocumentValue("/process_data/inDoc");
    java.io.InputStream inStream = inputDoc.getInputStream();
    byte[] dataBuffer = new byte[inStream.available()];
    inStream.read(dataBuffer);
    String strData = new String(dataBuffer);
    patExecContext.setProcessDataStringValue("/process_data/outStr",strData);
    The code is not tested, hence if you find any mistakes, correct and test the functionality.
    Nith

  • Problem creating items in a folder owned by another user

    Hi
    Iam getting an exception when i try to create a folder owned (or shall i say) created by another user.Let me explain what iam doing :
    1. I have created a folder "INPRISE" under "/home".I have
    created an ACL "MyAcl" having group INPRISEGROUP
    as the ACE having all permissions.I have set the ACL "MyAcl" on the folder "INPRISE".
    2. I have created two users i1 and i2
    and placed them in the group INPRISEGROUP .Both these users have a link under thei home folder to "INPRISE" folder(achieved by using and addItem()).
    3. I could successfully login as i1 and create a folder "WebApps" under "INPRISE" and upload a document "A.txt" under "WebApps".
    4.But when i log in as "i2" and try to create a document "B.txt" under "WebApps" which was created by user "i1" i get the following exception :
    javawebserver: Got the user
    javawebserver: got the primary user profile
    javawebserver: THE HOME FOLDER IS --> i1
    javawebserver: The home folder name is --> i1
    javawebserver: home folder
    javawebserver: Got the user
    javawebserver: got the primary user profile
    javawebserver: THE HOME FOLDER IS --> i1
    javawebserver: The home folder name is --> i1
    javawebserver: home folder
    javawebserver: Got the user
    javawebserver: got the primary user profile
    javawebserver: THE HOME FOLDER IS --> i1
    javawebserver: The home folder name is --> i1
    javawebserver: home folder
    javawebserver: **********Creating document in /home/i1/INPRISE/WebApps
    javawebserver: Created document..
    javawebserver: Setting permissions for the document....
    javawebserver: setting the access level
    javawebserver: Got the user
    javawebserver: got the primary user profile
    javawebserver: THE HOME FOLDER IS --> i2
    javawebserver: The home folder name is --> i2
    javawebserver: home folder
    javawebserver: Got the user
    javawebserver: got the primary user profile
    javawebserver: THE HOME FOLDER IS --> i2
    javawebserver: The home folder name is --> i2
    javawebserver: home folder
    javawebserver: Got the user
    javawebserver: got the primary user profile
    javawebserver: THE HOME FOLDER IS --> i2
    javawebserver: The home folder name is --> i2
    javawebserver: home folder
    javawebserver: **********Creating document in /home/i2/INPRISE/WebApps
    javawebserver: Error while creating document.....
    javawebserver: oracle.ifs.common.IfsException: IFS-30002: Unable to create new
    LibraryObject
    javawebserver: oracle.ifs.common.IfsException: IFS-30048: Insufficient access t
    o add items to a Folder
    javawebserver: oracle.ifs.common.IfsException: IFS-30030: Permission not grante
    d on specified ACL
    javawebserver: at java.lang.Throwable.<init>(Compiled Code)
    javawebserver: at java.lang.Exception.<init>(Compiled Code)
    javawebserver: at org.omg.CORBA.UserException.<init>(Compiled Code)
    javawebserver: at oracle.ifs.common.IfsException.<init>(Compiled Code)
    javawebserver: at oracle.ifs.common.IfsException.<init>(Compiled Code)
    javawebserver: at oracle.ifs.common.IfsException.<init>(Compiled Code)
    javawebserver: at oracle.ifs.server.S_AccessControlList.verifyStandardPermissi
    onEnabled(S_AccessControlList.java:602)
    javawebserver: at oracle.ifs.server.S_PublicObject.verifyPublicObjectPermissio
    n(S_PublicObject.java:2169)
    javawebserver: at oracle.ifs.server.S_Folder.verifyCanAddItem(S_Folder.java:10
    05)
    javawebserver: at oracle.ifs.server.S_Folder.addReference(S_Folder.java:719)
    javawebserver: at oracle.ifs.server.S_Folder.addReference(S_Folder.java:697)
    javawebserver: at oracle.ifs.server.S_PublicObject.postCreateAddToFolder(S_Pub
    licObject.java:2753)
    javawebserver: at oracle.ifs.server.S_PublicObject.extendedPostInsert(S_Public
    Object.java:995)
    javawebserver: at oracle.ifs.server.S_LibraryObject.postInsert(S_LibraryObject
    .java:1341)
    javawebserver: at oracle.ifs.server.OperationState.executeAtomicOperations(Com
    piled Code)
    javawebserver: at oracle.ifs.server.S_LibraryObject.createInstance(S_LibraryOb
    ject.java:2348)
    javawebserver: at oracle.ifs.server.S_LibrarySessio n.newLibraryObject(S_Librar
    ySession.java:6596)
    javawebserver: at oracle.ifs.server.S_LibrarySession.newPublicObject(S_Library
    Session.java:6637)
    javawebserver: at oracle.ifs.server.S_LibrarySession.newPublicObject(S_Library
    Session.java:6619)
    javawebserver: at oracle.ifs.server.S_LibrarySession.DMNewPublicObject(S_Libra
    rySession.java:6407)
    javawebserver: at oracle.ifs.beans.LibrarySession.DMNewPublicObject(LibrarySes
    sion.java:6913)
    javawebserver: at oracle.ifs.beans.LibrarySession.NewPublicObject(LibrarySessi
    on.java:4564)
    javawebserver: at oracle.ifs.beans.LibrarySession.createPublicObject(LibrarySe
    ssion.java:2562)
    javawebserver: at oracle.ifs.utils.common.PublicObjectUtilities.createDocument
    (PublicObjectUtilities.java:537)
    javawebserver: at oracle.ifs.utils.common.PublicObjectUtilities.putAsDocumentW
    ithVersioning(PublicObjectUtilities.java:163)
    javawebserver: at oracle.ifs.adk.filesystem.IfsFileSystem.createDocument(IfsFi
    leSystem.java:922)
    javawebserver: at dp.DPDocManager.uploadDocument(DPDocManager.java:374)
    javawebserver: at ifs.jsp_sbin._dp._dpDoc._jspService(_dpDoc.java:115)
    javawebserver: at oracle.ifs.protocols.http.jsp.pagecompile.jsp.runtime.HttpJs
    pBase.service(HttpJspBase.java:94)
    javawebserver: at javax.servlet.http.HttpServlet.service(Compiled Code)
    javawebserver: at oracle.ifs.protocols.http.jsp.IfsJspServlet.runServlet(IfsJs
    pServlet.java:865)
    javawebserver: at oracle.ifs.protocols.http.jsp.IfsJspServlet.processJspPage(C
    ompiled Code)
    javawebserver: at oracle.ifs.protocols.http.jsp.IfsJspServlet.service(IfsJspSe
    rvlet.java:240)
    javawebserver: at javax.servlet.http.HttpServlet.service(Compiled Code)
    javawebserver: at com.sun.server.ServletState.callService(ServletState.java:22
    6)
    javawebserver: at com.sun.server.ServletManager.callServletService(ServletMana
    ger.java:936)
    javawebserver: at com.sun.server.ProcessingState.invokeTargetServlet(Processin
    gState.java:423)
    javawebserver: at com.sun.server.http.HttpProcessingState.execute(HttpProcessi
    ngState.java:79)
    javawebserver: THE ERROR MESSAGE IS IFS-30002: Unable to create new LibraryObje
    ct
    javawebserver: Setting permissions for the document....
    javawebserver: setting the access level
    javawebserver: at com.sun.server.http.stages.Runner.process(Runner.java:79)
    javawebserver: at com.sun.server.ProcessingSupport.process(Compiled Code)
    javawebserver: at com.sun.server.Service.process(Service.java:204)
    javawebserver: at com.sun.server.http.HttpServiceHandler.handleRequest(HttpSer
    viceHandler.java:374)
    javawebserver: at com.sun.server.http.HttpServiceHandler.handleRequest(Compile
    d Code)
    javawebserver: at com.sun.server.HandlerThread.run(Compiled Code)
    javawebserver:
    javawebserver:
    javawebserver: Error during JSP page processing: /ifs/jsp-bin/dp/dpDoc.jsp
    javawebserver: java.lang.NullPointerException
    The Code is :
    package dp;
    import oracle.ifs.beans.*;
    import oracle.ifs.common.*;
    import oracle.ifs.beans.parsers.*;
    import oracle.ifs.adk.security.*;
    import oracle.ifs.adk.filesystem.*;
    import java.io.*;
    import java.util.Locale;
    import javax.servlet.http.*;
    * The document manager bean for the Deal Planner app.
    * <p>
    * This class provides a login session/creates a new account in the IFS. The class
    * implements the <code>IfsHttpLogin</code> interface so it can share login data with other
    * beans.
    * @author Srinivas Sampige
    * @version 1.0
    * @see IfsHttpLogin
    public class DPDocManager implements IfsHttpLogin
    private String userName = "";
    private LibrarySession ifsSession = null;
    private FolderPathResolver fPathResolver = null;
    private IfsFileSystem ifsFileSystem; // File System object
    public DPDocManager()
    {//does nothing
    *Creates a new account in the IFS for
    *a new deal when the deal code is passed in.
    *@ param dealCode The deal code of the deal for which an account has to be created
    *@ param password A system generate d password for the account being created.
    *@ return String Will return "SUCCESS" on creating the account or the reason if an
    * error occurrs.
    public String createDealFolder(String dealCode)
    String result = "SUCCESS";
    try
    ifsSession = getIfsConnection("system","manager","ServerManager","i5ifs");
    ifsSession.setAdministrationMode(true);
    //create a new folder for this deal
    Folder dealFolder = createFolder("/home",dealCode);
    //create a group for this deal;place the group as
    //an access control entry in an access control list.
    //Set the access control list to the folder.
    AccessControlList acl = createDealGroup(dealCode);
    dealFolder.setAcl(acl);
    ifsSession.setAdministrationMode(false);
    }catch(IfsException ie)
    int code = ie.getErrorCode();
    System.out.println("THE ERROR CODE WHILE CREATING DEAL FOLDER IS -- "+code);
    ie.printStackTrace();
    result = ie.getMessage();
    return result;
    }//createDealFolder
    public String createUser(String userId,String password,String dealCode)
    String result = "SUCCESS";
    System.out.println("Creating user and adding to a group "+userId);
    try
    this.ifsSession = getIfsConnection("system","manager","ServerManager","i5ifs");
    ifsSession.setAdministrationMode(true);
    System.out.println("Logged in successully");
    //form the XML necessary for creating the simple user;
    //the new user in the IFS will be the Deal.User id will be the deal code;
    //password is fetched from the DEALS table.
    String simpleUserString = "<?xml version = '1.0' standalone = 'yes'?>\n"
    + "<SimpleUser>\n"
    + " <UserName>"+userId+"</UserName>\n"
    + " <Password>"+userId+"</Password>\n"
    + " <HomeFolderRoot>/home</HomeFolderRoot>\n"
    + "</SimpleUser>\n";
    System.out.println("Parsing "+simpleUserString);
    //invoke the XML parser for creating the new user
    StringReader userDefinition = new StringReader(simpleUserString);
    SimpleXmlParser xmlParser = new SimpleXmlParser(ifsSession);
    xmlParser.parse(userDefinition,null,null);
    //a valid user for a deal must belong to the deals group;add the user
    //to the appropriate group for the deal
    String userToGroupString = "<?xml version = '1.0' standalone = 'yes'?>\n"
    + "<DirectoryGroup>\n"
    + " <Update reftype='Name'>" + dealCode+"Group" + "</Update>\n"
    + " <Members>"
    + " <Member reftype='Name'>" + userId + "</Member>"
    + " </Members>"
    + "</DirectoryGroup>\n";
    //invoke the XML parser for adding the new user to the group
    StringReader groupUpdate = new StringReader(userToGroupString);
    xmlParser = new SimpleXmlParser(ifsSession);
    LibraryObject lo = xmlParser.parse(groupUpdate,null,null);
    System.out.println ("The LO returned by parse is " + lo);
    //link this user's home folder to the deal folder
    Collection c = ifsSession.getDirectoryUserCollection();
    DirectoryUser du = (DirectoryUser) c.getItems(userId);
    System.out.println("The DirectoryUser created is " + du.getDistinguishedName());
    //Folder homeFolder = (Folder) getIfsFileSystem().findPublicObjectByPath("/home/"+dealCode);
    Folder homeFolder = du.getPrimaryUserProfile().getHomeFolder();
    System.out.println("Home folder is"+homeFolder);
    homeFolder.addItem((Folder)getIfsFileSystem().findPublicObjectByPath("/home/"+dealCode));
    System.out.println("Created a link to the deal folder... ");
    ifsSession.setAdministrationMode(false);
    }catch(IfsException ie)
    IfsException.setVerboseMessage(true);
    ie.printStackTrace();
    return result;
    }//public
    /* public String addUserToGroup(String groupName)
    try
    InternetFileSystem ifs = getFileSystem();
    ifs.findPublicObjectByPath(goupName);
    }catch(IfsException ie)
    ie.setVerboseMessage(true);
    System.out.println("Problem while adding user to the group "+ie.getMessage());
    ie.printStackTrace();
    }//addUserToGroup
    *This method creates a group that for a particular deal.
    *All members having access to this deal must belong to thi                                                                                                            s
    * group.
    public AccessControlList createDealGroup(String dealCode)
    AccessControlList acl = null;
    try
    DirectoryGroupDefinition def = new DirectoryGroupDefinition(ifsSession);
    def.setAttribute("NAME",AttributeValue.newAttributeValue(dealCode+"Group"));
    DirectoryGroup dealGroup = (DirectoryGroup)ifsSession.createPublicObject(def);
    AccessControlListDefinition aclDef = new AccessControlListDefinition(ifsSession);
    AccessControlEntryDefinition aceDef = new AccessControlEntryDefinition(ifsSession);
    AccessLevel aLevel = new AccessLevel();
    aLevel.enableAllStandardPermissions();
    aLevel.disableStandardPermission(AccessLevel.ACCESSLEVEL_ADDITEM);
    aLevel.disableStandardPermission(AccessLevel.ACCESSLEVEL_CREATE);
    aLevel.disableStandardPermission(AccessLevel.ACCESSLEVEL_ALL);
    aceDef.setGrantee(dealGroup);
    aceDef.setDistinctAccessLevel(aLevel);
    aclDef.addAceDefinition(aceDef);
    acl = (AccessControlList) ifsSession.createPublicObject(aclDef);
    acl.setName(dealCode+"ACL");
    }catch(IfsException ie)
    System.out.println("error while creating group for deal");
    IfsException.setVerboseMessage(true);
    ie.printStackTrace();
    return acl;
    }//createUser
    *makes a connection the the IFS and returns the LibrarySession object.
    *@param userName user name for a valid IFS account.
    *@param password password for a valid IFS account.
    *@param serviceName the IFS service name.
    *@param schemaPassword the IFS schema password.
    private LibrarySession getIfsConnection(String username, String password, String serviceName,
    String schemaPassword) throws IfsException
    LibraryService service = new LibraryService();
    CleartextCredential me = new CleartextCredential(username, password);
    ConnectOptions connection = new ConnectOptions();
    connection.setLocale(Locale.getDefault());
    connection.setServiceName(serviceName);
    connection.setServicePassword(schemaPassword);
    ifsSession = service.connect(me, connection);
    fPathResolver = new FolderPathResolver(ifsSession);
    ifsFileSystem = new IfsFileSystem(ifsSession);
    return ifsSession;
    }//getIfsConnection()
    public String loginToIfs(String userName,String password,String serviceName,String schemaPassword)
    String result = "SUCCESS";
    try
    getIfsConnection(userName,password,serviceName,schemaPassword);
    this.userName = userName;
    //getResolver().setHomeFolder("/home/"+userName);
    }catch(IfsException ie)
    int code = ie.getErrorCode();
    System.out.println("ERROR CODE "+code);
    result = "FAILED -- "+code+" -- "+ie.getMessage();
    System.out.println("Failed to login "+ie.getMessage());
    ie.printStackTrace();
    return result;
    }//loginToIfs
    public LibrarySession getSession()
    return ifsSession;
    }//getSession()
    public FolderPathResolver getResolver()
    return fPathResolver;
    public IfsFileSystem getIfsFileSystem()
    return ifsFileSystem;
    public Folder getHomeFolder()
    Folder homeFolder = null;
    try
    DirectoryUser user = ifsSession.getUser();
    System.out.println("Got the user");
    PrimaryUserProfile primary = user.getPrimaryUserProfile();
    System.out.println("got the primary user profile");
    homeFolder = primary.getHomeFolder();
    System.out.println("THE HOME FOLDER IS --> "+homeFolder);
    System.out.println("The home folder name is --> "+homeFolder.getName());
    }catch(IfsException ie)
    ie.printStackTrace();
    System.out.println("home folder");
    return homeFolder;
    }//getHomeFolderPath()
    * Called when this object is bound to the HTTP session object.
    * @param event The event when the object is bound to the Http session.
    public void valueBound(HttpSessionBindingEvent event)
    // do nothing
    * Called when this object is unbound from the HTTP session object.
    * @param event The event when the object is unbound to the Http session.
    public void valueUnbound(HttpSessionBindingEvent event)
    //release the reources like the ifsSession etc.
    fPathResolver = null;
    try
    if (ifsSession != null)
    ifsSession.di sconnect();
    }catch (IfsException e)
    e.printStackTrace();
    finally
    ifsSession = null; // release the resources
    }//valueUnbound()
    public Folder createFolder(Folder destinationFolder,String theNewFolderPath)
    Folder createdFolder = null;
    try
    System.out.println("<*---*> IN THE FOLDER "+destinationFolder);
    IfsFileSystem ifs = getIfsFileSystem();
    System.out.println("Creating the folder..");
    createdFolder = ifs.createFolder(theNewFolderPath,destinationFolder,true,null);
    System.out.println("Created the folder..");
    }catch(IfsException ie)
    System.out.println("ERROR CREATING A FOLDER IN THE DESTINATION FOLDER");
    IfsException.setVerboseMessage(true);
    ie.printStackTrace();
    return createdFolder;
    }//createFolder(String inTheFolder,theNewFolder)
    public Folder createFolder(String inTheFolder,String theNewFolderPath)
    Folder createdFolder = null;
    try
    System.out.println("<*---*> IN THE FOLDER "+inTheFolder);
    IfsFileSystem ifs = getIfsFileSystem();
    System.out.println("Creating ANOTHER folder for test");
    Folder destinationFolder = (Folder) ifs.findPublicObjectByPath("/"+inTheFolder);
    System.out.println("The destination folder is "+destinationFolder);
    /* Folder destinationFolderMyTest = (Folder) ifs.findPublicObjectByPath("/home/c6/COREL/MY-TEST/");
    System.out.println("The destination folder my test is "+destinationFolderMyTest);*/
    createdFolder = ifs.createFolder(theNewFolderPath,destinationFolder,true,null);
    /* System.out.println("Created folder in destination folder ");
    createdFolder = ifs.createFolder(theNewFolderPath,(Folder) ifs.findPublicObjectByPath(inTheFolder),true,null);
    System.out.println("Created folder in MY-TEST ");*/
    }catch(IfsException ie)
    System.out.println("ERROR CREATING A FOLDER IN THE DESTINATION FOLDER");
    IfsException.setVerboseMessage(true);
    ie.printStackTrace();
    return createdFolder;
    }//createFolder(String inTheFolder,theNewFolder)
    *Method creates a folder in the path specified(the path includes the name of the folder
    *to be created).If a parent of any of the folders in the path
    *is not found then that folder is automatically created.
    public String createFolder(String folderPath)
    System.out.println("*-*-*-*-* Creating folder *-*-*-*-*");
    String result = "SUCCESS";
    try
    //ifsSession.setAdministrationMode(true);
    IfsFileSystem ifs = new IfsFileSystem(ifsSession);
    Folder folder = (Folder) ifs.findPublicObjectByPath("home/"+userName);
    ifs.createFolder(folderPath,(Folder) folder,true,null);
    }catch(IfsException ie)
    result = ie.getMessage();
    ie.printStackTrace();
    return result;
    }//createFolder
    //Upload a document to the ifs
    public Document uploadDocument(String localPath,String destinationPath)
    Document document = null;
    try
    IfsFileSystem ifs = new IfsFileSystem(ifsSession);
    FileInputStream fis = new FileInputStream(localPath);
    System.out.println("**********Creating document in "+destinationPath);
    document = ifs.createDocument("B.txt", fis, destinationPath, null, false, null);
    System.out.println("Created document..");
    }catch(IfsException e)
    System.out.println("Error while creating document.....");
    IfsException.setVerboseMessage(true);
    e.printStackTrace();
    System.out.println("THE ERROR MESSAGE IS "+e.getMessage());
    catch(Exception e)
    System.out.println("File not found/io exception ");
    e.printStackTrace();
    return document;
    }//uploadDocument
    * Adds an access control entry to the public object passed in.
    *@param PublicObject the publicObject for which permissions have to be set.
    public void setAccessControlOnObject(PublicObject publicObject)
    try
    System.out.println("Setting permissions for the document....");
    AccessControlListDefinition aclDef = new AccessControlListDefinition();
    aclDef.setName(publicObject+"ACL");
    AccessControlEntryDefinition aceDef = new AccessControlEntryDefinition();
    //this sets the acceess control entry's granntee as the "user" who ha s loggen on
    aceDef.setGrantee(ifsSession.getDirectoryUser());
    aceDef.enableGrantToWorld(false);
    String[] permissions = {"ACCESSLEVEL_NONE"};
    System.out.println("setting the access level");
    AccessLevel accessLevel = new AccessLevel(permissions);
    /*PermissionBundleDefinition pbDef = new PermissionBundleDefinition(ifsSession);
    PermissionBundle pb = (PermissionBundle) ifsSession.createSystemObject(pbDef);
    pbDef.setAccessLevel(accessLevel);
    pbDef.setAccessLevel(accessLevel);
    aceDef.addPermissionBundle(pb);*/
    aceDef.setDistinctAccessLevel(accessLevel);
    aclDef.addAceDefinition(aceDef);
    AccessControlList acl = (AccessControlList) ifsSession.createPublicObject(aclDef);
    publicObject.setAcl(acl);
    }catch(IfsException ie)
    System.out.println("The error while settin access control is -0> "+ie.getMessage());
    ie.setVerboseMessage(true);
    ie.printStackTrace();
    }//createAccessControlList
    }//class DPDocManager
    Note : since iam still experimenting with the code please ignore any irrelevant/wrong commenting.Iam using method "CreateDealFolder()" to create the folder "INPRISE" and "CreateUser()" to create users "i1","i2"

    Iam not able to set the main folder's (i.e INPRISE) acl (MyAcl) on the subfolder "MyFolder" because the owner of MyAcl is "system" whereas the owner of MyFolder is user "i1" .Which is the best way of solving these ownership issue which iam running into ? I want to be able to create different folders ,assign a group of uers to each of the folders who can create as well as modify,delete each other's folders/documents (as i have mentioned in my first post in this thread) ?
    thanks
    Srinivas

Maybe you are looking for

  • My itunes library is gon

    Short Version: all my files are in the itunes media folder on my external harddrive, and they were all working fine yesterday, i checked the locations of several of them, and they all were in the H drive. I open my itunes today. and everything is gon

  • Running MacOS 10.8.4  Contacts 7.1 (1170) can't drag cards from one folder to another.

    I am running 10.8.4 with contacts 7.1 (1170).  I find I can't drag cards from one (any) group to another group.  When I restart it shows the card and indicates that it should accept it as it isn't in that group.  But doesn't move cards.  Then it no l

  • How to I get my already existing iCloud account to work on my Mac?

    I have already created an icloud account on my iphone and ipad but just updated my Mac to now have icloud. I tried to set up the account on my Mac but when i put in the email i already created it says it is being used already. Do I have to create a n

  • FileOpenDialog appearing 2 times

    Hi all, we are getting fileDialoag box two times when we execute this code.please help us.We want that dialog box should appear only once.Thanks in advance. code response.setHeader("Content-Disposition","attachment;inline;filename="+filename); respon

  • Query Related to TOP-OF-PAGE Overflow

    Hi All,         I had a Different query, The selection screen input value we pass  we need to print on TOP-OF-PAGE... I did fine and when its get overflow like exceeding page its going to short dump... exp:/ i have 100 records. i am printing on top-o