Tasks to run your own apex-environment ?

Hi,
we are preparing to have our own apex production-environment.
the management wants to know what tasks have to be done to run such an environment.
does anyone have an overview and can we get a copy of it ?
any thoughts,comments will be appreciated, too
Leo

In an EJB environment, you have absolutely no control over threading issues. (It was purposefully designed that way.) However, you do have your own little "sandbox" in the EJB ClassLoader - which is why there is a lot of use of the Singleton pattern for factories and (very carefully!) as small caching mechanisms. You might want to look into that avenue - but you have to know how your EJB vendor's ClassLoader scheme works (there does appear to be a convergence in this area) and you must be very sensitive to potential thread-blocking operations that may take a while to complete.

Similar Messages

  • Roll Your Own - APEX 4.0 and JQuery-UI Application

    For those with a apex.oracle.com account and want to see jQeury tabs running via 4.0 in your own Workspace, use following this script to create your own version of Shijesh's (Apex_Noob) application.
    Credit also goes out to Alistair Laing for his hard work in investigating why 4.0 is requiring the use of the googleapis jquery.js... libraries.
    Application Builder - Create
    Application Type - Database
    Create Application - From Scratch
    Name - jQuery Application
    Add Page - keep default and Click Add Page
    Click CreateMy application defaulted to Theme 2, you will need to switch the theme to one of the following: If you don't the tabs will not render properly.
    8 Orange
    10 Sand
    13 Classic Blue
    14 Simple Green
    15 Light Blue
    16 Dark Blue
    18 Simple Gray
    19 Red Gray
    Message - Application created successfully.
    Click Shared ComponentsUnder User Interface Click - ThemesIf you don't see one of the above Themes, you will need to Create and switch your Theme.
    Click - CreateFrom the Repository selected Click - Next and select one of the above Themes
    Click - Switch ThemeSelect one of the above Themes and Click - Next
    Click -NextClick - Switch ThemeReturn to your newly created Application by Clicking on Application xxxxxxx Breadcrumb
    Click - Create PageSelect - Blank PageClick - NextAssign the page a name
    Click - NextAccept defaults and Click - NextClick - FinishClick - Edit PageI still work in Component View, to toggle to this View, click on the control adjacent to Page number and Go button. Hover over the ones on the far right and you will see both Component View and Tree View
    From Component View
    Click on the Page Edit Control
    In the Text Area labeled Javascript/Execute when Page Loads - paste in the following code:
    $x("tabs").appendChild( $x("tabs-1"));
    $x("tabs").appendChild( $x("tabs-2"));
    jQuery("#tabs").tabs();In the Text Area labeled HTML Header and Body Attribute/HTML Header - paste in the following code:
    <link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/themes/redmond/jquery-ui.css" type="text/css" />
    <script src= "http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/jquery-ui.js"> </script>Click - Apply ChangesRequired use of the Google jqueryui libraries is being questioned by recent threads created by Alistair Laing since it appears that 4.0 does not currently support jQeury tabs
    {thread:id=1083507}
    {thread:id=1083540}
    Create a Region
    Type HTML Text - accept defaults
    Provide a Title like "Tabs" and accept defaults
    Template - Reports Region
    Sequence 10
    Click - NextIn the Enter HTML Text Region Source: Text Area - paste in the following code:
    <div id="tabs">
    <ul>
    <li><a href="#tabs-1">Employees</a></li>
    <li><a href="#tabs-2">Departments</a></li>
    </ul>
    </div>Click - Create RegionCreate a second Region
    Type Report/Sql Report
    Provide a Title like "Employees" and accept defaults
    Template Reports Region
    Sequence 20
    Click - NextIn the Enter SQL Query or PL/SQL function returning a SQL Query: Text Area - paste in the following code:
    SELECT empno,
           ename,
           job,
           mgr,
           hiredate,
           sal,
           comm,
           deptno
    FROM   empClick - Create RegionEdit the newly created Report Region
    Under Attributes/Static ID - paste in the following code:
    tabs-1Click - Apply ChangesCreate a third Region
    Type Report/Sql Report
    Provide a Title like "Departments" and accept defaults
    Template Reports Region
    Sequence 30
    Click - NextIn the Enter SQL Query or PL/SQL function returning a SQL Query: Text Area - paste in the following code:
    SELECT deptno,
           dname,
           loc
    FROM   deptClick - Create RegionEdit the newly created Report Region
    Under Attributes/Static ID - paste in the following code:
    tabs-2Click - Apply ChangesRun you page and you should see you tabs.
    Jeff

    Great post Jeff,
    With regard to Jquery UI and tabs I've contacted the Apex dev team and received a reply from them.
    All the jQueryUI files are included in the APEX 4.0 distribution, but not all jQueryUI components
    are loaded by default to avoid a huge initial download. It's not necessary to load your own version of jQueryUI, just load the missing component.
    For the "Tabs" you have to add
    <link href="IMAGE_PREFIX#libraries/jquery-ui/1.8/themes/base/jquery.ui.tabs.css" rel="stylesheet" type="text/css" />
    <script src="#IMAGE_PREFIX#libraries/jquery-ui/1.8/ui/minified/jquery.ui.tabs.min.js" type="text/javascript"></script>
    to your page template or the header attribute of your page where you want to use it.They did not mention which other Jquery UI widgets were not included so people need to check to see if they get any JS errors Like "$('#tabs').tabs() is not a function" this would suggest that tabs is not being loaded. To included it in you page header directly after #HEAD# you need to place the css and js as stated above.
    If you need jquery help just post you queries here or the is some other jquery links that maybe of some use
    jQuery
    http://jquery.com/ - Official jQuery Website
    http://api.jquery.com/ - jQuery API Library
    http://plugins.jquery.com/ - jQuery Plugins (Not APEX related)|
    http://yayquery.com/ - yayQuery - jQuery Podcast
    http://jqueryui.com/ - Official jQuery UI Website
    http://jqueryui.com/demos/ - jQuery UI Demos
    Edited by: Alistair Laing on Jun 9, 2010 4:04 PM
    Add more links
    Edited by: Alistair Laing on Jun 9, 2010 4:09 PM

  • How to define your own context in an EJB environment - possibly distributed

    I would like to setup a context (an object accissible per logical thread) in an EJB environment, but I am too unfamiliar with the options I may have.
    My objective is to create a context in which I may set a value, then invoke a method on an object (which in turn invokes a method on another object and so forth) and eventually get back the value from the context. In other words I am trying to pass a value without passing it as a parameter. More specifically, I have written a JDBC Driver wrapper in which I want to intercept a number of method calls and based on the context settings perform one or the other JDBC preprocessing. The reason for not passing the values as parameters is to interfere as little as possible with any environment in which this code is to be integrated. I simply want to set the context and get the context (in my JDBC wrapper) without the surrounding code needing to change.
    I have succeded partially by using a ThreadLocal object to hold my context. I can set and get the values to and from the context and actually pass values to my Driver wrapper without explicitly passing them as parameters. This works well in a non-EJB environment. My concern arises when I switch to the EJB environment.
    If my context is set in a session bean, which invokes an entity bean, am I then guaranteed that these will execute in the same physical thread?
    If the session and the entity beans are hosted on seperate machines then the answer would certainly be NO. Is there any way to have the container manage the context and propagate it accross containers when needed?
    Any thoughts or suggestions on this topic are wellcome, even if they don't solve the issue entirely.
    Looking forward to hear from you all!
    /poul

    In an EJB environment, you have absolutely no control over threading issues. (It was purposefully designed that way.) However, you do have your own little "sandbox" in the EJB ClassLoader - which is why there is a lot of use of the Singleton pattern for factories and (very carefully!) as small caching mechanisms. You might want to look into that avenue - but you have to know how your EJB vendor's ClassLoader scheme works (there does appear to be a convergence in this area) and you must be very sensitive to potential thread-blocking operations that may take a while to complete.

  • [Solved] Setting my own desktop environment

    Hi, I'm trying to setup my own desktop environment with the following packages:
    * slim
    * metacity
    * compton
    * wbar
    This is my slim conf:
    # Path, X server and arguments (if needed)
    # Note: -xauth $authfile is automatically appended
    default_path /bin:/usr/bin:/usr/local/bin
    default_xserver /usr/bin/X
    xserver_arguments -nolisten tcp vt07
    # Commands for halt, login, etc.
    halt_cmd /sbin/shutdown -h now
    reboot_cmd /sbin/shutdown -r now
    console_cmd /usr/bin/xterm -C -fg white -bg black +sb -T "Console login" -e /bin/sh -c "/bin/cat /etc/issue; exec /bin/login"
    #suspend_cmd /usr/sbin/suspend
    # Full path to the xauth binary
    xauth_path /usr/bin/xauth
    # Xauth file for server
    authfile /var/run/slim.auth
    # Activate numlock when slim starts. Valid values: on|off
    numlock on
    # Hide the mouse cursor (note: does not work with some WMs).
    # Valid values: true|false
    # hidecursor false
    # This command is executed after a succesful login.
    # you can place the %session and %theme variables
    # to handle launching of specific commands in .xinitrc
    # depending of chosen session and slim theme
    # NOTE: if your system does not have bash you need
    # to adjust the command according to your preferred shell,
    # i.e. for freebsd use:
    # login_cmd exec /bin/sh - ~/.xinitrc %session
    login_cmd exec /bin/bash -login ~/.xinitrc %session
    # Commands executed when starting and exiting a session.
    # They can be used for registering a X11 session with
    # sessreg. You can use the %user variable
    # sessionstart_cmd some command
    # sessionstop_cmd some command
    # Start in daemon mode. Valid values: yes | no
    # Note that this can be overriden by the command line
    # options "-d" and "-nodaemon"
    # daemon yes
    # Set directory that contains the xsessions.
    # slim reads xsesion from this directory, and be able to select.
    sessiondir /usr/share/xsessions/
    # Executed when pressing F11 (requires imagemagick)
    screenshot_cmd import -window root /slim.png
    # welcome message. Available variables: %host, %domain
    welcome_msg Bienvenido a %host
    # Session message. Prepended to the session name when pressing F1
    # session_msg Session:
    # shutdown / reboot messages
    shutdown_msg The system is halting...
    reboot_msg The system is rebooting...
    # default user, leave blank or remove this line
    # for avoid pre-loading the username.
    #default_user simone
    # Focus the password field on start when default_user is set
    # Set to "yes" to enable this feature
    #focus_password no
    # Automatically login the default user (without entering
    # the password. Set to "yes" to enable this feature
    #auto_login no
    # current theme, use comma separated list to specify a set to
    # randomly choose from
    current_theme archlinux-slim-theme-whitey
    # Lock file
    lockfile /var/lock/slim.lock
    # Log file
    logfile /var/log/slim.log
    Now, my desktop entry for the sessions, which is located $HOME/.config/joelDE/joelDE.desktop:
    [Desktop Entry]
    Name=joelDE
    Comment=Mi entorno de escritorio
    Exec=/home/joel/.config/joelDE/joelDE
    TryExec=/home/joel/.config/joelDE/joelDE
    Icon=/home/joel/.config/joelDE/joelDE.png
    Type=Application
    I made the symlink: ln -s /home/joel/.config/joelDE/joelDE.desktop /usr/share/xsessions/joelDE.desktop and it DOES appears in slim sessions (F1), now jolDE script:
    #!/bin/bash
    # mi propio entorno
    (sleep 1s && metacity --replace &)
    bash $HOME/.fehbg &
    xscreensaver -no-splash &
    (sleep 1s && compton --config $HOME/.config/compton.conf -b) &
    (sleep 1s && wbar) &
    and finally my .xinitrc:
    #!/bin/bash
    # ~/.xinitrc
    if [[ ! "$1" ]]; then
    WM_Name=startxfce4
    else
    WM_Name=$1
    fi
    setxkbmap -layout latam
    if [ -z "$GTK_PATH" ] ; then
    GTK_PATH="/usr/lib/gtk-2.0"
    else
    GTK_PATH="$GTK_PATH:/usr/lib/gtk-2.0"
    fi
    export GTK_PATH
    if [ -z "$GTK_MODULES" ] ; then
    GTK_MODULES="canberra-gtk-module"
    else
    GTK_MODULES="$GTK_MODULES:canberra-gtk-module"
    fi
    export GTK_MODULES
    export LANG=es_MX.UTF-8
    echo ${WM_Name} >$HOME/DE_name.txt
    if [ ${WM_Name} != "startxfce4" ]; then
    export DESKTOP_SESSION=${WM_Name}
    export GTK2_RC_FILES=$HOME/.gtkrc-2.0
    exec dbus-launch --sh-syntax --exit-with-session ${WM_Name} >$HOME/xinitrc-log.txt 2>&1
    else
    exec ${WM_Name} >$HOME/xinitrc-log.txt 2>&1
    fi
    # :~ EOF
    This is the thing: after choosing "joelDE" in slim sessions it shows a black screen and rerun slim...
    1.- Doesn't SLim run x11?
    2.- If not, how do I call it?
    Thanks!
    Last edited by Joel (2014-07-14 04:37:30)

    Try moving the metacity line in joelDE to the end of the file and remove the last '&':
    #!/bin/bash
    # mi propio entorno
    bash $HOME/.fehbg &
    xscreensaver -no-splash &
    (sleep 1s && compton --config $HOME/.config/compton.conf -b) &
    (sleep 1s && wbar) &
    sleep 1s && metacity --replace
    With startx, and I think that this is true for SLiM as well, your X session will last as long as your ~/.xinitrc (or, I think more technically, the exec $whatever that may be at the end of the file).  So if everything in ~/.xinitrc forks (or in your case, your joelDE script), that script will complete immediately, and the X session will exit with it.

  • Making Your Own Map Component in crystal xcelsius

    Post Author: sunbrain
    CA Forum: Xcelsius and Live Office
    http://www.liwaili.com.cn support
    http://www.liwaili.com.cn support
    http://www.liwaili.com.cn support
    Making Your Own Map Component in crystal xcelsius
    Although the Map components in Crystal Xcelsius are cool, your choice ofmaps is severely limited. This might leave you wondering how you can createyour own Map components in Crystal Xcelsius. Although there is no way totechnically make a Map component, you do have a workaround that you canuse to create interactivity based on your own maps.As an example, I created the dashboard in Figure 13-25 to report on popula-tion data for the five counties in Rhode Island. In this dashboard, movingyour mouse from county to county changes the data that displays.
    Take a closer look at this dashboard to see that the map is nothing more thanan Image component that has a few Icon Selector components on top. Hereu2019show it works:1. Import an image of the map by adding an Image component onto yourdashboard and selecting the image using the Filename property, asshown in Figure 13-26.
    2. Add Icon Selectors on each point in the map where you want interactivity.These icon selectors provide the hot spot areas on your map (seeFigure 13-27): that is, the areas that give you interactivity at run-time.
    3. Expand the selectors to ensure that you optimize the hot spots on yourmap. (See Figure 13-28.)You can expand the Icon selectors by clicking on the bounding box han-dles and dragging them until the selector is the appropriate size andshape. Expanding the size of the selectors reduces the chance of hittingdead spots that donu2019t have interactivity at run-time.
    At this point, the icon selectors can be given some functionality basedon some scenario, but thatu2019s not your focus here. The point is that afteryou configure the icon selectors with some functionality, you haveessentially added interactivity to your map.Time for smoke and mirrors.4. Make the icon selectors invisible so that only the map is showing bygoing to the Appearance tab and adjusting the Transparency propertyto 0, as shown in Figure 13-29.The final effect is a custom map that has interactivity.
    Keep in mind that you can use this technique with any image; it doesnu2019t have tobe a map per se. For instance, you can use this technique with organizationalcharts, floor plans, park maps, and various types of diagrams. Incorporatingpictures into your dashboards in this way can help you add something extrato your dashboards.
    liwaili.com.cn
    http://www.liwaili.com.cn support

    Post Author: sam pewgo
    CA Forum: Xcelsius and Live Office
    Hiit is rather disappointing that one can not import maps into crystal xcelsius as this is my main operation, the alternative approach that you so in great detail, whilst it works is not sutable for the tasks I carryout. I have access to all the maps for our operations and some are quite detailed, however I cannot use them? becuase your programme cannot import them. Is there a tool or method that you guys use to get the maps in to crystal xcelsius that you would be willing to share, as I would hate to have to find an alternative product to do that job Thnx Sam

  • AP Check printing setups for printing checks on your own

    HI
    I am wondering if there a good document which deals with AP check printing with MICR and signature on your own check stock
    thanks

    Recently we started to deal with AP check printing in our organizatin. It was a daunting task with the information and resources scattered all over and missing critical pieces of information to make sense out of the whole process flow. We attempted to go through the AP check printing internally and succeded.
    I decided to post the information for the benefit of people about the our experience
    Check Printing Basics and Beyond for Printing Checks on Your Own
    by
    Sarma Chilukuri
    This article deals with what is needed to get your own checks printed. It is a first attempt to uncover all the hidden rules that one should be aware to get your own checks printed. The first section deals with the basic AP check printing setup, while the 2nd half explores some of the flow of events that make it possible to print the check.
    Part I – Basic Setup
    AP Setup for check printing
    There are multiple steps in the AP check printing. First set of steps deal with the AP side setups. The second step is to get the System side setups. The system side setup deals with printer setup and program options setups. The last step would be to make the print format files configured with the vendor provided escape sequences in the laser print format file.
    Step 1: login as Payable Manager
    Step 2: Bank Setup: Navigate to Setup: Payments > Banks
    1.     Make sure the Bank # etc are present
    2.     Tab to “Bank Accounts”, and make sure your account # has been setup
    3.     On the Bank Accounts screen, tab to the “Payables Documents” and verify that Payment format (E.g., COK Laser Format) has been entered. This “Payment format links to next section where we associate it to the right payment program.
    Fig 1. AP Payment Bank Setup Screen
    Step 3: Program Setup (Setup: Payments > Programs)
    As we know there are only 5 formats 3 of which are “Ever Green Laser” (APXPBFE G|L|F) which are explained in the AP Users Guide. For your own form printing, you have to associate the format to APXPFEL (laser format) program. Also, the APXPBFEL or APXPBFEF call the APXPBFEG, which is the base program that pulls the data from oracle base tables. APXPBFEL is the one which allows us to print the checks with MICR and signature on a plain paper not on a pre printed stationery.
    Fig. 2 AP Payment Format Setup Screen
    Printer Styles, Drivers setup
    The above process summarizes the AP Setup. As a DBA, the printer setup needs to be validated. The base install provides the right setup to some extent. But the differences in printers and print queues may add some complexity to the final configuration. The following section discusses the set up the base install provides and changes as needed.
    Step 1. Login as system Administrator
    Step 2: Style (Install : Printer > Style)
    Look for the “PORTRAITHPLJ4LASCHECK”. This one is associated with the SRW Driver Called, “APLASP” (AP Laser printer format).
    Step 3: Driver (Install : Printer > Driver).
         1. The “PORTRAITHPLJ4LASCHECK” is associated with a “User Driver” of PORTRAIT for HPLJ4 and and a SRW driver of “APLASP”
         2. Also notice that there is an Initialization string at the bottom of it. This initialization string gets called as pre-report trigger for the APXPBFEG program (APXPBFEG.rdf) file. It sets the kind of format it should be. Please see the Appendix A for details on these printer pcl code translations. The Initialization string was as follows:
    Initialization: /eE/e&l0o2a7C/e(s0P/e(8U
    Step 4: Printer type (Install : Printer > Register)
    Each printer type is associated with a set of styles. Make sure the printer that was selected has the above style and its associated driver listed against that.
    Fig. 3 System Administrator Printer Seups
    Step 5: Program Setup (Concurrent > Program > Define)
    This step holds the key for check printing. It is necessary to define whether you need the check on top followed by the Stub or the other way around. The way it is controlled is based on the APXPBFEG.rdf, the report definition file and the APLASP.prt (Printer Style associate with the Portrait laser check format SRW driver). The APLASP.prt file ($FND_TOP/reports) has two identical setups called the 100 series and the 200 series. Those identical sets of setups define where the MICR and signature print on the check. The following table lists the some of the codes in the 100 series. Please refer to Doc ID #146452.1 for complete details.
    Fig. 4 System Administrator Concurrent Program Definitions
    CODE #     Code Definition
    100     Electronic check activation string
    101     1st Check #
    102     2nd Check #
    104     Deactivate check number mode string
    111     Activate MICR line
    112     MICR Deactivation / reset the printer head position
    121     1st Signature
    122     2nd Signature
    141     Address font activation string
    199     Return to default state string
    Table 1. APLASP.prt -- MICR Activation Codes
    The above code block repeats itself the same way in the 200 series. The decision to activate one way or the other controls the Check printing.
    Step 2: Setting up the Option block
    In the concurrent program definition for the APXPBFEL, there is an Options block in the middle. You need to list the codes that you want to activate. Please refer to Doc ID # 186640.1 for some explanation on these.
    E.g.,
    p_printer_code_mask="201,211,221,241" p_sig2_amount="" p_sig3_amount="" p_sig1_vendnum="" p_sig2_vendnum="" p_sig3_vendnum="" p_country_to_ignore="US" p_continuous_stationery="N"
    Step 3: Output format is Text
    Text format is sufficient, as the printer will pick up these escape sequences anyway.
    Fig. 5 System Administrator Concurrent Program APXPBFEL Options Definition
    UIPRINT.TXT, UIFONTS.ALI
    One needs to be aware of a few more pieces in this puzzle. The UIPRINT.TXT identifies to the Oracle Applications the print queues that were setup. This file is needed to set your PCL / Post Script printer definitions. I did not have to really tinker with these files other than identifying the PCL and Post Script Q’s that were setup on the UNIX box.
    Part II: Integrating all the pieces
    The above setups are all documented in various articles. We need to understand a few more steps to see how all these pieces come together.
    What you need to know about APXPBFEG.rdf
    APXPBFEG (.rdf) is the report file which when called pulls the data from Oracle. If you open the APXPBFEG.rdf in the Oracle reports, there is initialization to the report called, SRW.Init. This will bring in the initialization string associated with the PORTRAITHPLJ4LASCHECK driver definition file. Also, please be very careful with this report format file. When you open it, there is small tiny empty block. in the first block which calls the printer initialization code 100/200 under the Format Mask (from APLASP.prt). If this portion gets changed or messed up, one can end up with some unexpected results. Each of those blocks like MICR, CHECK etc… have associated format triggers and printer codes.
    Please make sure that the printer mask is properly handled. I noticed that the 200 series MICR (211) and Signature (221) printer masks were tied to 111 and 121 respectively. These should have been 211 and 221. The other place you need to be careful was the printer code before and after is proper.
    For E.g.,
    For the MICR, the ”printer code before and after columns “ should be 111 and 112 (or 211 / 212) respectively while Format Trigger should reference to 111 (211).
    Fig. 6 APXPBFEG rdf file printer mask and Format Triggers
    The escape sequences in the APLASP.prt file for these codes will play the crucial role in getting our format around the report output that gets generated from the APXPBFEG program. Please refer to the explanation of these escape sequence codes in the APPENDIX A.
    At this point when you run the program, you will see that the formatted output report file will have all the initialization strings and the output associated with that. You can compare the fields and verify the results. Let us closely examine the parts of the 111 and 121 where the micr and signature prints. The key to this to code the escape sequences the right way to get the associate MICR and signature print out correctly.
    Fig. 7 APXPBFEG rdf file MICR printer mask and Format Triggers
    Code 111 and Code 112 from the APLASP.prt file.
    I broke the line into pieces to illustrate the exact escape sequence code.
    Code "211"
    Part 1: esc "&f0S" esc "&f0y0X" esc "&l0E" esc "&a0L"
    Part 2: esc "(8M" esc "(s0p8.00h8.0v0s0b80T" --- This will be provided by the ROM
    Cartridge provider
    Part 3: esc "&k15H" esc "*p3215Y" esc "&a13.8C"
    code "212"
    Part 1 : esc "&f1x3x8X"
    Part 2 : esc "&f1S"
    Let us go over these 2 sets of codes carefully.
    Escape Code     Meaning     Comment
    esc "&f0S"      Push Cursor Position     
    esc "&f0y0X"     Define Macro ID 0 and Start Macro Definition     
    esc "&l0E"      Define Top Margin at 0 Lines     
    esc "&a0L"      Define Left Margin at Column 0     
    esc "(8M"     8M Symbol SetNote : As per pcl codes this happens to be Font Primary JIS Math 8 symbol     MICR Part 1 : Provided by the Vendor from where you the ROM cartridge
    esc "(s0p8.00h8.40s0b0T"     {Fixed Pitch}{pitch 8.00 cpi}{Font Style 8.40}{Medium Weight}{Typeface 0}     MICR Part 2 : Provided by the Vendor
    esc "&k15H" esc "*p907Y"     Set HMI = 15/120" Vert position = 907 Dots     
    esc "&a13.8C"     Move to Column 13.8     
         CODE 112     
    esc "&f1x3x8X"     {End Macro Definition}{Call Macro}{Delete Macro ID}     
    esc "&f1S"     {Pop Cursor Position}     At this point, the MICR gets printed
    Table 2. Escape Sequences in APLAP.prt file Explanation
    Fig. 8 APXPBFEG rdf file Signature printer mask and Format Triggers
    The signature piece (221) has also similar meaning.
    Escape Code     Meaning     Comment
    esc "&f0S"     Push Cursor Position     
    esc "*t300R"     300 DPI Graphics resolution     
    esc "*p1500X"     Horiz position = 1500 Dots     
    esc "*p650Y"     Vert position = 470 Dots     
    esc "(4B" esc "(s1p53v0s0b102T"esc "&f0S!"     Symbol SetProportionalPoint Size 53UprightMedium WeightTypeface 102Push Cursor Position!     Vendor gave the us esc "(4B"esc"(s1p53v0s0b102T!"Note: the ! when the it pushes the ! and that is where it prints the signature piece. The first part forms the symbol set , say (4B and the later part forms the signature font and ! is the piece. I took the ! from the above and let it stay with the 3rd part of it so that signature does not print twice.
    esc "&f1S"      Pop Cursor Position     
    esc "*p+121Y"     Move down 121 Dots     
    esc "&f1S"     Pop Cursor Position     
    Table 3. Escape Sequences for Signature in APLAP.prt file and Explanation
    Summary
    One can print their own checks using the above steps. This can work as a cost effective solution for small organizations where the budgetary constraints are tighter. We are successful in getting the AP Checks printed using the above method.
    References
    Metalink Doc ID # 186640.1, Different Payment Formats …
    Metalink Doc ID # 60936.1, Step by Step Guide to Setup a Printer in Oracle Applications
    Metalink Doc ID # 250543.1, How to Create An Initialization String for a Payable Check Format
    Metalink Doc ID # 48680.1, Accounts Payable FAQ – Payment Batch, Check
    Metalink Doc ID # 1074792.6, Exclamation Point (!) Prints On Check When Using APXPBFEL And Cartridge
    Metalink Doc ID # 158486.1, APXPBFEL Evergreen (Long Laser)
    Metalink Doc ID # 146452.1, Listing of p_printer_code_mask Default Values for APXPBFEL
    Chapter 2, Oracle Payables user guide
    Appendix A
    APLASP.prt printer codes explanation
    code "200" esc "&l0o2a6d66p8.000c2e1x0l63f1H" esc "&k12.00H" esc "(8U"
    esc "(s0p10.00h12.00v0s0b3T" esc "&k11.75H" esc "&a1l0R" control(M) esc"&f3005y4X"
    {Portrait}
    {Letter}
    {6 LPI}
    {Define Page Length to 66 Lines}
    {Set VMI = 8.000/48"}
    {Define Top Margin at 2 Lines}
    {Select 1 Copies}
    {Disable Perf Skip}
    {Define Text Length as 63 Lines}
    {Feed from Tray 1 (upper)}
    0.1 esc "&k12.00H"
    {Set HMI = 12.00/120"}
    0.2 esc "(8U"
    {Roman-8 Symbol Set}
    0.3 esc "(s0p10.00h12.00v0s0b3T"
    {Fixed Pitch}
    {pitch 10.00 cpi}
    {Point Size 12.00}
    {Upright}
    {Medium Weight}
    {Typeface 3}
    0.4 esc "&k11.75H"
    {Set HMI = 11.75/120"}
    0.5 esc "&a1l0R"
    {Define Left Margin at Column 1}
    {Move to Row 0}
    control(M)
    0.6 esc"&f3005y4X"
    {Define Macro ID 3005}
    {Enable Overlay}
    code "201" esc "&f0S" esc "&a1.25r70C" esc "(8U" esc "(s1p14v0s3b4148T"
    {Push Cursor Position} esc "&f0S"
    1.1 esc "&a1.25r70C"
    {Move to Row 1.25}
    {Move to Column 70}
    1.2 esc "(8U"
    {Roman-8 Symbol Set}
    1.3 esc "(s1p14v0s3b4148T"
    {Proportional}
    {Point Size 14}
    {Upright}
    {Bold}
    {Typeface 4148}
    code "202" esc "&f0S" esc "&a20.25r70C" esc "(8U" esc "(s1p14v0s3b4148T"
    {Push Cursor Position}
    2.1 esc "&a20.25r70C"
    {Move to Row 20.25}
    {Move to Column 70}
    2.2 esc "(8U"
    {Roman-8 Symbol Set}
    2.3 esc "(s1p14v0s3b4148T"
    {Proportional}
    {Point Size 14}
    {Upright}
    {Bold}
    {Typeface 4148}
    code "211" esc "&f0S" esc "&f0y0X" esc "&l0E" esc "&a0L"
    esc "(0Q" esc "(s0p8.00h8.40s0b0T" esc "&k15H" esc "*p907Y" esc "&a13.8C"
    {Push Cursor Position}
    11.1 esc "&f0y0X"
    {Define Macro ID 0}
    {Start Macro Definition}
    11.2 esc "&l0E"
    {Define Top Margin at 0 Lines}
    11.3 esc "&a0L"
    {Define Left Margin at Column 0}
    11.4 esc "(0Q"
    {0Q Symbol Set}
    11.5 esc "(s0p8.00h8.40s0b0T"
    {Fixed Pitch}
    {pitch 8.00 cpi}
    {Font Style 8.40}
    {Medium Weight}
    {Typeface 0}
    11.6 esc "&k15H" esc "*p907Y"
    {Set HMI = 15/120"}
    {Vert position = 907 Dots}
    11.7 esc "&a13.8C"
    {Move to Column 13.8}
    code "212" esc "&f1x3x8X" esc "&f1S"
    {End Macro Definition}
    {Call Macro}
    {Delete Macro ID}
    12.1 esc "&f1S"
    {Pop Cursor Position}
    code "221" esc "&f0S" esc "*t300R" esc "*p1500X" esc "*p470Y"
    esc "(30C" esc "(4B" esc "(s1p53v0s0b102T!"
    esc "&f0S!" esc "&f1S" esc "*p+121Y" esc "&f1S"
    esc "&f0S"
    {Push Cursor Position}
    21.1 esc "*t300R"
    {300 DPI Graphics resolution}
    21.2 esc "*p1500X"
    {Horiz position = 1500 Dots}
    21.3 esc "*p470Y"
    {Vert position = 470 Dots}
    21.4 esc "(30C"
    {30C Symbol Set}
    21.5 esc "(4B"
    {4B Symbol Set}
    21.6 esc "(s1p53v0s0b102T!"
    {Proportional}
    {Point Size 53}
    {Upright}
    {Medium Weight}
    {Typeface 102}
    21.7 esc "&f0S!"
    {Push Cursor Position}
    21.8 esc "&f1S"
    {Pop Cursor Position}
    21.9 esc "*p+141Y"
    {Move down 121 Dots}
    21.10 esc "&f1S"
    {Pop Cursor Position}
    code "222" esc "&f0S" esc "*t300R" esc "*p1500X" esc "*p650Y"
    esc "(30A" esc "(s0p.426h35.25v0s0b128T" esc "&f0S!"
    esc "&f1S" esc "*p+141Y" esc "&f1S"
    {Push Cursor Position}
    22.1 esc "*t300R"
    {300 DPI Graphics resolution}
    22.2 esc "*p1500X"
    {Horiz position = 1500 Dots}
    22.3 esc "*p650Y"
    {Vert position = 650 Dots}
    22.4 esc "(30A
    {30A Symbol Set}
    22.5 esc "(s0p.426h35.25v0s0b128T"
    {Fixed Pitch}
    {pitch .426 cpi}
    {Point Size 35.25}
    {Upright}
    {Medium Weight}
    {Typeface 128}
    22.6 esc "&f0S!"
    {Push Cursor Position}
    22.7 esc "&f1S"
    {Pop Cursor Position}
    22.8 esc "*p+141Y"
    {Move down 141 Dots}
    22.9 esc "&f1S"
    {Pop Cursor Position}
    code "241" esc "&a-100V" esc "&l5.8C" esc "(8U" esc "(s0p12.00h10.00v0s3b3T" esc "&k11.75H"
    41.0 esc "&a-100V"
    {Move up 100 Decipoints}
    41.1 esc "&l5.8C"
    {Set VMI = 5.8/48"}
    41.2 esc "(8U"
    {Roman-8 Symbol Set}
    41.3 esc "(s0p12.00h10.00v0s3b3T"
    {Fixed Pitch}
    {pitch 12.00 cpi}
    {Point Size 10.00}
    {Upright}
    {Bold}
    {Typeface 3}
    41.4 esc "&k11.75H"
    {Set HMI = 11.75/120"}
    code "299" esc "(8U" esc "(s0p10.00h12.00v0s0b3T" esc "&k11.75H" esc "&l6D"
    {Roman-8 Symbol Set}
    99.1 esc "(s0p10.00h12.00v0s0b3T"
    {Fixed Pitch}
    {pitch 10.00 cpi}
    {Point Size 12.00}
    {Upright}
    {Medium Weight}
    {Typeface 3}
    99.2 esc "&k11.75H"
    {Set HMI = 11.75/120"}
    99.3 esc "&l6D"
    {6 LPI}

  • Re: Unable to Run forms in Web Environment....

    Hi Everybody,
    My current environment:
    1. Windows NT Server 4.0 (Service Pack 3)
    2. Oracle8 V8.0.4
    3. Oracle Web App Server 4.0.5 CR
    4. Oracle Developer 6.0
    All of the above have been installed on the same machine.
    Developer 6.0 has been installed on a separate Oracle Home
    directory and the rest (Db and WAS) resides in one Home.
    Problem:
    I have tried both, cartridge and non-cartridge implementation,
    but failed to run web forms.
    My Browser starts up, initializes all class files and finally
    states "Applet Started", but after that I see no UI. (this is
    during Non-Cartridge Implementation).
    With Cartridge Implementation, I get "Internal Error, Please Try
    Again"
    Another vague thing, if I set the "CLASSPATH" and
    "FORMS60_JAVADIR", and open the form in the designer and hit
    "Runform Web", it works.
    If set the CLASSPATH and leave it, then I am unable to use
    OASMGR from the browser (applet for the navigator fails).
    If I unset it, then oasmgr works fine.
    Finally, If someone can give me the right environment of Web
    Forms, in terms of the versions of the Oracle Software and the
    configuration (Home Dir's), plus some sample settings for
    Virtual directory mappings for WAS or Web Cartridge settings, I
    would really really really really appreciate.
    One more request, Do we need use JINITIATOR 1.1.5.3 for Dev 6.0 ?
    (I tried using as well as not using, but does not help me in
    deployment).
    Thanks in advance,
    Bala.
    LIMITrader Securities, Inc.
    NJ.
    null

    Bala (guest) wrote:
    : Hi Frank,
    : Thanks for replying, but I got it done even with 8.0.4. The
    only
    : small mistake that I did was having the width and height of
    the
    : applet as 20, which was displayed as the size of an iconic
    : button. After increasing the width and height in the HTML
    file,
    : everything runs o.k. Finally the news is, it runs both on
    8.0.4
    : (separate Oracle home directory) and 8.0.5 (same home
    directory)
    : too.
    : Just out of curiosity, I have a question based on your
    previous
    : response: How is the performance of Webforms over a Modem, say
    a
    : standard connection of 31,200 bps ? How much time does the
    : application take to startup ? Over here, I tested out over a
    : 28.8 connection and it took almost 1 min and a half (this with
    : f50all.jar and not f50web.jar) ? Did you follow any tuning
    : guidelines such as creating your own jars ??
    : Thanks in advance,
    : Bala.
    : Frank Huether (guest) wrote:
    : : Bala (guest) wrote:
    : : : Hi Everybody,
    : : : My current environment:
    : : : 1. Windows NT Server 4.0 (Service Pack 3)
    : : : 2. Oracle8 V8.0.4
    : : : 3. Oracle Web App Server 4.0.5 CR
    : : : 4. Oracle Developer 6.0
    : : : All of the above have been installed on the same machine.
    : : : Developer 6.0 has been installed on a separate Oracle Home
    : : : directory and the rest (Db and WAS) resides in one Home.
    : : : Problem:
    : : : I have tried both, cartridge and non-cartridge
    : implementation,
    : : : but failed to run web forms.
    : : : My Browser starts up, initializes all class files and
    : finally
    : : : states "Applet Started", but after that I see no UI. (this
    : is
    : : : during Non-Cartridge Implementation).
    : : : With Cartridge Implementation, I get "Internal Error,
    Please
    : : Try
    : : : Again"
    : : : Another vague thing, if I set the "CLASSPATH" and
    : : : "FORMS60_JAVADIR", and open the form in the designer and
    hit
    : : : "Runform Web", it works.
    : : : If set the CLASSPATH and leave it, then I am unable to use
    : : : OASMGR from the browser (applet for the navigator fails).
    : : : If I unset it, then oasmgr works fine.
    : : : Finally, If someone can give me the right environment of
    Web
    : : : Forms, in terms of the versions of the Oracle Software and
    : the
    : : : configuration (Home Dir's), plus some sample settings for
    : : : Virtual directory mappings for WAS or Web Cartridge
    : settings, I
    : : : would really really really really appreciate.
    : : : One more request, Do we need use JINITIATOR 1.1.5.3 for
    Dev
    : 6.0
    : : : (I tried using as well as not using, but does not help me
    in
    : : : deployment).
    : : : Thanks in advance,
    : : : Bala.
    : : : LIMITrader Securities, Inc.
    : : : NJ.
    : : Bala,
    : : supported configuration on the same machine is:
    : : Win NT 4.0, SP3
    : : DB 8.0.5
    : : OAS 4.0.5 CR (or 4.0.7)
    : : Dev 6
    : : all in the same oracle_home but be aware of the installation
    : : steps as n the documentation on CD
    : : Jinitiator 1.1.5.3 or better 1.1.5.21
    : : I have this configuration running with Jinit on my machine
    and
    : : did a demo with a modem.
    : : Frank
    Bala,
    we just did a demo with a 33K Modem and Dev 6, OAS 4.0.7,... all
    on the same machine and this is really eating up resources
    (mostly memory). The startup time is horrible but one thing is
    the server machine, another is the tuning by creating your own
    jar files which is really necessary. Somewhere I read about
    problems with caching the jar files so they are loading the jar
    files again and again. So right now we are more experimenting
    with Oracle's Web Form than developping.
    There are a lot of bugs from Forms 5 (Web) which should be fixed
    in Dev 6 production. IMHO they are not doing any fixes on Forms
    5 anymore because Forms 6 will be an Oracle Applications release
    but Forms 5 isn't.
    Personally I will drive my company not to develop any new
    project in Forms 5 only in Forms 6.
    Frank
    null

  • Make your own Fax Server with Automator! (Pagesender solution for Mavericks)

    I have been scouring these discussion boards for some time now looking for a suitable substitute to PageSender, an awesome fax solution for the Mac from SmileOnMyMac LLC, which for some inexplicable reason stopped development and updates after OS 10.6.8. The result is that many small business office users who still rely on fax (and yes...no matter what they tell you, most of the business world DOES still use fax because it's legally binding and more secure than email for the transmission of legal documents or healthcare records, and does not rely on database integration accross different systems, which is sadly but very realistically still a long ways off), and no longer have a way to integrate faxes into a paperless or digital workflow office system.
    I suspect like many folks who receive faxes, those who used PageSender, used a very powerful feature to forward faxes by email, thereby turning your Mac into a Fax server that could distribute your faxes to other workstations and staff throughout the business via email. Presumably, if you have your own email server (Exchange, Kerio, AppleMail server, PostFix enabler etc.) you could distribute faxes on your own internal network, securely behind a firewall, and effectively create a digitial/paperless workflow for your faxes.
    Even if you have a USB modem or multifunction printer that allows you to recieve a Fax to your desktop (Apple's internal fax via printer preferences, and some HP models like the HP MFP 127fw) for example will allow you to recieve a Fax to a desktop folder or forward to a single email address. But the former is of limited functionaliy and the later only lets you send to an email address out over the internet with a registered public domain, which means you give up all control of privacy and means you can't process it through a private mail server to create a digital workflow for your office...
    ...Until now!!!
    I am happy to report that I have finally discovered a very easy and useable feature that will save a lot of time, money, and headaches for those looking to create a digital workflow and fax server system for a small office system. (I don't think there is any limit to scale here, but I suspect offices with more than 10 employees probably have a BizHub, or HP MFP/digital sender that can create the same process directly from the printer, but of course these come with a price tag of $2000 and up...).
    To accomplish this however, you will need some basic requirements which are as follows:
    1) A USB modem from either US Robotics or Zoom Modem. These are readily available from Amazon, MacMall or any number of other online vendors and work very well and seemlessly with all Macs running OSX right up through Mavericks
    OR
    A Multifunction printer that is capable of receiving faxes to a desktop Mac like the HP 127 fw. Other models exist from other manufacturers as well, but you will have to do a bit of research and probably check with the vendor or user manual directly to confirm that Fax to desktop is supported for Mac and OS 10.9.
    2) A dedicated Mail Server (MSFT Exchange, Kerio, MacOSX server with mail server enabled, or PostFix enalber or MailServe from Cutedge Systems)
    You will need to set up an email account on your server that is the parent for all incoming faxes from which the faxes will be sent out as part of your digital workflow. This is beyond the scope of this discussion but if you've come this far and you're still reading, you probably know  how to do this already. I recommend setting this up as a POP account, not IMAP. This way, the attatchments (your faxes) will always remain on your server as a back up, until you delete them from the server.
    3) Now simply go to System preferences and select "Printers and Scanners". Select either the Fax printer for your multifunction printer, or add a fax printer/reviever using the + button and select "Fax" if you are using a USB modem. You must have the USB modem attatched to the computer in order to use the built-in Apple Fax feature for the latter option.
    4) Now click on the receive options. Select "Recieve faxes to this computer" and set your ring answer settings. Check "Save to" and select the designated folder (either Faxes or Shared Faxes on your computer) or create a new folder. Depending on the volume of faxes, and your back up systems, you may want to designate a separate folder on a separate drive, exclusively for your Faxes. This is where all your faxes will be stored.
    5) Now launch "Automator" in your applications folder and create a new workflow. You will be presented with several options. Select "Folder Action".
    6) At the top right of the window space you will see "Folder Action receives files and folders added to" . Select the Fax folder you created in step 4.
    7)On the left hand side of the "Actions" menu select "Mail"
    8) From the list of actions select "New Mail Message" this will take the latest Fax added to your Fax folder and attach it as a PDF to a new outgoing mail. In the "TO" address put the email address that belongs to the parent account your created for the Faxes on your mail server eg. [email protected].  In the subject field you can put "Fax Workflow" or any other generic subject that will identify to all reciptients that this is an email that contains a Fax/PDF attatchment.
    Under "account" use the SMTP account you set up on your mail server to handle the routing of internal emails. In most cases, this will be the same as the parent account created above. (Effectively, this account is sending and receiving emails to itself).
    9) From the list of actions, select "Send outgoing messages".
    10) Save the Automator workflow with a name like "FaxDistribution" or "FaxFlow".
    11) Go back to the Fax folder you created in step 4. Right click or option click on the folder and scroll down the options menu and select "Folder Actions Setup". You will see a list of scripts including the Automator workflow you just created. Choose it.
    That's it!! From now on, when you get a fax, it will get dumped into the designated fax folder, and this will automatically trigger the workflow to atttach and send it as an email to anyone in your office that is set up to receive emails with the "faxserver" address. You now have a paperless fax digital workflow server system for distributing your faxes digitally to anyone in your office who needs to review your faxes. Good luck!

    Thank you for this interesting posting.

  • Steps to create your own self signed certificate with java plugin working

    You need two tools that comes with your jdk which are keytool and jarsigner.
    Steps explain below in detail. Don't use netscape signtool, it will NEVER work!
    * keytool -genkey -keyalg rsa -alias tstkey -keypass 2br2h2m -dname "cn=Test Object Signing Certificate, o=AI Khalil, ou=Java Products, c=AU"
    cn = Certificate name
    o = organistation
    ou = organistation unit
    c = country (first two letters)
    If don't put the -dname, you can fill it line by line.
    The -keypass has to be verify at the end, and you have to wait for it to create the rsa signing keys.
    On NT by default it will put the alias information at D:\WINNT\Profiles\Administrator (if log in as administrator) with the default file called ".keystore". Windows 98 etc, don't know, search for .keystore
    file. When you update it, check for the timestamp change and you know if you at the right spot.
    You can store your alias information via the -storepass option to your current directory you work on, if you don't want to update the default .keystore file?
    The .keystore contains a list of alias so you don't have to do this process again and again.
    Another tip if you want your certificate encryption validity to be more than the default one month is simply
    add the -validity <valDays>, after the -genkey option, to make your certificate usage for encryption to last much longer.
    Note: You MUST use the -keyalg rsa because for starters the rsa encyption alogorthim is supported on ALL browsers instead of the default DSA and the other one SHA. Java plugins must work with the RSA algorthim when signing applets, else you will get all sorts of weird errors :)
    Do not use signtool because thats a browser dependant solution!! Java plugin is supposed to work via running it owns jre instead of the browser JVM. So if you going to use netscape signtool, it starts to become a mess! ie certificate will install, but applet won't start and give you funny security exception errors :)
    * keytool -export -alias tstkey -file MyTestCert.crt
    It will read the alias information in the .keystore information picking up the rsa private/public keys info and
    create your self sign certificate. You can double click this certificate to install it? But don't think this step is needed but maybe for IE? Someone else can check that part.
    If you make a mistake with the alias, simply keytool -delete -v -alias <your alias key>
    If not in default .keystore file, then simply keytool -delete -v -alias <your alias key> -keystore <your keystore filename>
    * Put your classes in your jar file, my example is tst.jar.
    * jarsigner tst.jar tstkey
    Sign your testing jar file with your alias key that supports the RSA encryption alogorthim.
    * jarsigner -verify -verbose -certs tst.jar
    Check that its been verified.
    The last step is the most tricky one. Its to do with having your own CA (Certified Authority) so you don't
    have to fork out money straight away to buy a Verisign or Twarte certificate. The CA listing as you see in
    netscape browsers under security/signers, is NOT where the plugin looks at. The plugin looks at a file called
    CACERTS. Another confusion is that the cacerts file is stored in your jre/lib/security AND also at your
    JavaSoft/Jre/<Java version>/lib/security. When you install the Java plugin for the first time in uses your
    JavaSoft folder and its the cacerts file that has to be updated you add your own CA, because thats where
    the plugin look at, NOT THE BROWSER. Everything about plugin is never to do with the browser!! :)
    * keytool -import -file MyTestCert.crt -alias tstkey -keystore "D:\Program Files\JavaSoft\JRE\1.3.1\lib\security/cacerts"
    Off course point to your own cacerts file destination.
    Password to change it, is "changeit"
    Before you do this step make a copy of it in its own directory in case you do something silly.
    This example will add a CA with alias of my key called "tstkey" and store to my example destination.
    * keytool -list -v -keystore "E:/jdk/jdk1.3/jre/lib/security/cacerts"
    List to see if another CA is added with your alias key.
    Your html, using Netscape embed and Internet explorer object tags to point to the java plugin,
    your own self sign applet certificate should work
    Cheers
    Abraham Khalil

    I follow Signed Applet in Plugin, and it's working on
    my computer. Thanks
    But When I open my applet from another computer on
    network, why it does not work ..?
    How to make this applet working at another computer
    without change the policy file ..?
    thanks in advance,
    AnomYou must install the certificate on that computers plugin. Can this be done from the web? can anyone suggest a batch file or otherwise that could do this for end users?
    I want a way for end users to accept my cert as Root or at least trust my cert so I dont have to buy one. I am not worried about my users refusing to accept my cert. just how do I make it easy for them? IE you can just click the cert from a link, but that installs for IE, and not the plugin where it needs to be.

  • How to recreate APEX environment

    I posted recently about best practices for prod / dev environments with APEX, and this grows from that. I have reviewed the suggested solutions with developers and met with some, shall we say, resistance. So, here is what they want to do. Please help me understand whether it's possible, and how I might accomplish it.
    Our test/development server contains APEX 4.2 and Banner (our ERP) data, all in a database called DALY11G.
    Developers want to to develop daily on this server, and they need current data in order to do so.
    I recreate this database nightly via RMAN duplicate, and so the entire database is dropped, and recreated from production backups.
    They want me to export the APEX environment nightly, before I drop and re-clone the DALY11G database, thus preserving any development they've done during the day. Then, after the clone (RMAN duplicate) process runs, they want the APEX environment dropped and reimported from that previous night's export. Once this is done they will have the up to date data they want, along with the in process development that they don't want to lose nightly.
    I realize the supported method for doing this sort of thing is to export the apps and reimport them through the GUI development tool, but my users refuse this method, saying it will add too much time to their work load.
    SO... is what they ask possible? And if so, how might I accomplish it? I have tried exporting (before the DALY11G database gets re-cloned) the APEX_040200, APEX_DOC, APEX_WORK, APEX_DATA, and APEX_READONLY schemas (I realize some of those are specific to us). After the clone, then, I drop the production versions of those schemas, recreate them, and then import from the exported file. But the exports throw errors, and I end up with invalid objects. Is the means of importing / exporting the entire 4.2 environment like this documented somewhere? I've been unable to locate it.
    Thanks for any advice. And if you have any suggestions for how I can convince the developers to export / import their apps through the GUI, let me know that, too!
    Regards,
    Bill Johnson

    Hi Bill,
    I've never known an example of being able to move or recreate an Apex installation by exporting and importing the schemas associated with Apex. I think the relationships between schemas and objects are just too complicated for this to work easily.
    I would have thought it would be easier to move the application you are developing against, but given I know nothing about Banner ERP, this may also not be an option. Also what I don't understand, given that you are trying to save any changes the developers make to their application in development, if you are refreshing the whole environment, aren't you also losing any changes the developers make at the database level. What about custom versions of DB objects they may be using for development purposes? How do you allow for this?
    My preference for overcoming this would be rather than dropping the refreshed Apex environment at the schema level, but to do it at the Apex level. In order to automate this, and please you developers, there are command line options for exporting and importing applications that you can use to automate this process.
    Applications can be exported through a tool Oracle supplies with the Apex download called APEXExport.class and as applications are simply sqlplus scripts, they can be imported using sqlplus command line. I haven't done this personally, but I think it would be possible.
    Hope this helps.
    Regards
    Andre

  • MDT 2010 Deleted task still running

    Hi Guys, I have been using MDT 2010 with Litetouch for deploying Windows 7 x64 clents for the last month. I have a main task sequence which does the deployment and a test task sequence for me to try new things out.
    On the test task sequence I created custom task which deletes a desktop icon, the problem now is that even after I have deleted this task it still runs even though its not in the task sequence any longer.
    Even when I create a new task sequence the deleted custom task still runs! This is very strange any ideas?

    Hi,
    it sounds impossible :)
    I think the same action might have been configured in another step, or it might be added as a dependency on some application.
    To verify, you could take a look at the xml files that descrive your applications and taks sequences in .\control.
    MCP/MCSA/MCTS/MCITP

  • Now draw your own ScriptUIGraphics graphics! (1st testing)

    Hey everyone, I've made this little system of drawing ScriptUIGraphics from your illustrator document.  Please be advised, the graphics resulting from this are not anti-aliased and look bad at medium sizes --> terrible at small sizes, but they may help with making some dynamic icons for some really specific scriptUI purposes.
    Basically, you just draw something in an AI doc, run this window and use the function from it as well as the object resource string to recreate that drawing in your own scriptUI windows.
    This method only uses straight lines and ellipses when it detects ellipses.  After seeing the quality of these drawings, I'm thinking for the prettier icons you'd surely want to embed images into your UI, but there may come a very very rare time when there exists a need for some dynamic image with many states, so this may be what it may end up perhaps being useful for.
    Attached are screenshots with original drawing (artboard is 100x100px), the captured image drawn in window and last, pretty much the same- is the result drawn from object resource string.  The screenshots JPEGs have smoothed out the little icons, making them look actually better than they really are!
    Edit: 
         Oh yes, I did need to mention: the colors used can be any color, spot/Lab included!  They just get changed to some version of RGB for rendering.
    // ScriptUI Graphics Display by Vasily
    function graphicsDisplay(){
        function itemShape(myShape){
            // Going to test for circles.
            var shapeKind={
                isrectangle: null,
                iscircle: null,
                isellipse: null
            if(myShape.typename=='PathItem' && myShape.pathPoints.length == 4){ // RECTANGLE CHECKER
                //--------------------2 diagonals-------------------------
                var recEquaDistOne = parseInt(Math.pow((myShape.pathPoints[0].anchor[0] - myShape.pathPoints[2].anchor[0]),2) +
                Math.pow((myShape.pathPoints[0].anchor[1] - myShape.pathPoints[2].anchor[1]),2)); // diagonal
                var recEquaDistTwo = parseInt(Math.pow((myShape.pathPoints[1].anchor[0] - myShape.pathPoints[3].anchor[0]),2) +
                Math.pow((myShape.pathPoints[1].anchor[1] - myShape.pathPoints[3].anchor[1]),2)); // diagonal
                //---------------------4 sides of rectangle---------------
                var sideA = parseInt(Math.pow((myShape.pathPoints[0].anchor[0] - myShape.pathPoints[1].anchor[0]),2) +
                Math.pow((myShape.pathPoints[0].anchor[1] - myShape.pathPoints[1].anchor[1]),2)); 
                var sideB = parseInt(Math.pow((myShape.pathPoints[1].anchor[0] - myShape.pathPoints[2].anchor[0]),2) +
                Math.pow((myShape.pathPoints[1].anchor[1] - myShape.pathPoints[2].anchor[1]),2)); 
                var sideC = parseInt(Math.pow((myShape.pathPoints[2].anchor[0] - myShape.pathPoints[3].anchor[0]),2) +
                Math.pow((myShape.pathPoints[2].anchor[1] - myShape.pathPoints[3].anchor[1]),2)); 
                var sideD = parseInt(Math.pow((myShape.pathPoints[3].anchor[0] - myShape.pathPoints[0].anchor[0]),2) +
                Math.pow((myShape.pathPoints[3].anchor[1] - myShape.pathPoints[0].anchor[1]),2)); 
                if(recEquaDistOne == recEquaDistTwo){ // If two diagonals connecting opposite points are same length, it's a 90 degree box               
                    if((sideA == sideC) && (sideB == sideD)){
                        for(var j=0; j<4; j++){
                            var point = myShape.pathPoints[j];             
                                if((point.leftDirection[0] == point.anchor[0]) &&
                                    (point.anchor[0] == point.rightDirection[0]) &&
                                    (point.leftDirection[1] == point.anchor[1]) &&
                                    (point.anchor[1] == point.rightDirection[1])){                                                   
                                    shapeKind.isrectangle = true;
                                } else {
                                    shapeKind.isrectangle = false;
                                    break;
                if(myShape.pathPoints.length == 4){  // CIRCLE CHECKER
                    if(shapeKind.isrectangle == false || shapeKind.isrectangle == null){
                        var circlePts = new Array();
                        var circleSlopes = new Array();
                        for (k=0; k<4; k++){
                        var point = myShape.pathPoints[k]; 
                        var leftHandleDist = parseInt(Math.pow((point.leftDirection[0] - point.anchor[0]),2) +
                        Math.pow((point.leftDirection[1] - point.anchor[1]),2));
                        var rightHandleDist = parseInt(Math.pow((point.rightDirection[0] - point.anchor[0]),2) +
                        Math.pow((point.rightDirection[1] - point.anchor[1]),2));
                        circlePts.push(leftHandleDist, rightHandleDist);
                        var leftHandleSlope = ((point.leftDirection[0] - point.anchor[0])/(point.leftDirection[1] - point.anchor[1])).toFixed(2);
                        var rightHandleSlope = ((point.rightDirection[0] - point.anchor[0])/(point.rightDirection[1] - point.anchor[1])).toFixed(2);
                        circleSlopes.push(leftHandleSlope, rightHandleSlope);
                    for(var f=0; f<8; f++){ // Allows non-rotated circles.
                        if(circleSlopes[f] == "-0.00"){
                            circleSlopes[f] = "0.00";
                        if(circleSlopes[f] == "-Infinity"){
                            circleSlopes[f] = "Infinity";
                    var cirEquaDistOne = parseInt(Math.pow((myShape.pathPoints[0].anchor[0] - myShape.pathPoints[2].anchor[0]),2) +
                    Math.pow((myShape.pathPoints[0].anchor[1] - myShape.pathPoints[2].anchor[1]),2));
                    var cirEquaDistTwo = parseInt(Math.pow((myShape.pathPoints[1].anchor[0] - myShape.pathPoints[3].anchor[0]),2) +
                    Math.pow((myShape.pathPoints[1].anchor[1] - myShape.pathPoints[3].anchor[1]),2));
                    if(circleSlopes[0] != "NaN"){ // Filters out asymmetric rhombus  <><><>^^^^^^<><><>
                        if((circlePts[0] == circlePts[1]) && // Filters out shapes with control handles not of equal distance from anchor point.
                            (circlePts[1] == circlePts[2]) &&
                            (circlePts[2] == circlePts[3]) &&
                            (circlePts[3] == circlePts[4]) &&
                            (circlePts[4] == circlePts[5]) &&
                            (circlePts[5] == circlePts[6]) &&
                            (circlePts[6] == circlePts[7]) &&
                            (circlePts[7] == circlePts[0])){
                            if((circleSlopes[0] == circleSlopes[1]) && // Filters out the equadistant 4-pointed Star shape (dismisses negative slopes).
                                (circleSlopes[2] == circleSlopes[3]) &&
                                (circleSlopes[4] == circleSlopes[5]) &&
                                (circleSlopes[6] == circleSlopes[7])){
                                if(cirEquaDistOne == cirEquaDistTwo){ // Filters out Ellipses (non-equadistant circles).
                                    // Filters out the very RARE 4-pointed star which has all control points in its center on top of each other!
                                    if(((myShape.pathPoints[0].leftDirection[0]).toFixed(2) != (myShape.pathPoints[1].leftDirection[0]).toFixed(2)) &&
                                        ((myShape.pathPoints[0].leftDirection[1]).toFixed(2) != (myShape.pathPoints[1].leftDirection[1]).toFixed(2))){
                                        shapeKind.iscircle = true;
                                    } else {
                                        shapeKind.iscircle = false;
                        } else {
                            if((circlePts[0]==circlePts[1]) &&
                                (circlePts[2]==circlePts[3]) &&
                                ((circlePts[4]==circlePts[5]) && (circlePts[4]==circlePts[1]) && (circlePts[5]==circlePts[1])) &&
                                ((circlePts[6]==circlePts[7]) && (circlePts[6]==circlePts[2]) && (circlePts[7]==circlePts[3]))){
                                shapeKind.isellipse=true;
        //~                     $.writeln(circlePts[0]+'\r'+circlePts[1]+'\r'+circlePts[2]+'\r'+circlePts[3]+'\r'+
        //~                     circlePts[4]+'\r'+circlePts[5]+'\r'+circlePts[6]+'\r'+circlePts[7]);
            return shapeKind;
        if(app.name=='Adobe Illustrator' && app.documents.length>0){
            function round2(num){
                return Math.round(num*100)/100;
            function convertToUIRGB(color){
                if(color=='[CMYKColor]'){
                    var c=color.cyan, m=color.magenta, y=color.yellow, k=color.black;
                    return [
                        round2((1-(c/100))*(1-(k/100))),
                        round2((1-(m/100))*(1-(k/100))),
                        round2((1-(y/100))*(1-(k/100)))
                } else if(color=='[GrayColor]'){
                    var k=color.gray;
                    var grayValue=1-(Math.round(((k/100)*255)*100)/100)/255;
                    return [grayValue,grayValue,grayValue];
                } else if(color=='[GradientColor]'){
                    $.writeln('Sorry, no gradient colors please.');
                    return [0,0,0];
                } else if(color=='[PatternColor]'){
                    $.writeln('Sorry, no pattern colors please.');
                    return [0,0,0,];
                } else if(color=='[SpotColor]'){
                    var clr=color.spot.getInternalColor();
                    if(color.spot.spotKind==SpotColorKind.SPOTCMYK){
                        var c=clr[0], m=clr[1], y=clr[2], k=clr[3];
                        return [
                            round2((1-(c/100))*(1-(k/100))),
                            round2((1-(m/100))*(1-(k/100))),
                            round2((1-(y/100))*(1-(k/100)))
                    } else if(color.spot.spotKind==SpotColorKind.SPOTRGB){
                        return [round2(clr[0]/255), round2(clr[1]/255), round2(clr[2]/255)];
                    } else if(color.spot.spotKind==SpotColorKind.SPOTLAB){
                        var clr=color.spot.getInternalColor();
                        var whiteRef={
                            D65: {X: 95.047,Y: 100, Z: 108.883},
                            D50: {X: 96.422,Y: 100, Z: 82.521},
                        var illuminant='D65';
                        var Y = (clr[0]+16)/116;
                        var X = clr[1]/500+Y;
                        var Z = Y-clr[2]/200;
                        if(Math.pow(Y,3) > 0.008856){Y=Math.pow(Y,3);}
                        else {Y = (Y-16/116)/7.787;}
                        if(Math.pow(X,3) > 0.008856){X=Math.pow(X,3);}
                        else {X = (X-16/116)/7.787;}
                        if(Math.pow(Z,3) > 0.008856){Z=Math.pow(Z,3);}
                        else {Z = (Z-16/116)/7.787;}
                        X*=whiteRef[illuminant].X,Y*=whiteRef[illuminant].Y,Z*=whiteRef[illuminant].Z;
                        //alert(X+" "+Y+" "+Z);
                        X/=100,Y/=100,Z/=100;
                        R=X*3.2406+Y*-1.5372+Z*-0.4986;
                        G=X*-0.9689+Y*1.8758+Z*0.0415;
                        B=X*0.0557+Y*-0.2040+Z*1.0570;
                        //alert(R+" "+G+" "+B);
                        if(R > 0.0031308){R=(1.055*(Math.pow(R,(1/2.4))))-0.055;}
                        else {R*= 12.92;}
                        if(G > 0.0031308){G=(1.055*(Math.pow(G,(1/2.4))))-0.055;}
                        else {G*= 12.92;}
                        if(B > 0.0031308){B=(1.055*(Math.pow(B,(1/2.4))))-0.055;}
                        else {B*= 12.92;}
                        if(R<0){R=0} else if(R>1){R=1};
                        if(G<0){G=0} else if(G>1){G=1};
                        if(B<0){B=0} else if(B>1){B=1};
                        return [round2(R),round2(G),round2(B)];
                } else if(color=='[RGBColor]'){
                    return [round2(color.red/255), round2(color.green/255), round2(color.blue/255)];
            function drawFromObjString(objString, canvasArea){
               function round2(num){
                   return Math.round(num*100)/100;
                var obj=eval(objString);
                var canvas=canvasArea.graphics;
                var counter=obj.total;
                while(counter>=0){
                    for(all in obj){
                        if(all.match(/\d{1,2}$/g) && all.match(/\d{1,2}$/g)==counter){
                            var thisShp=obj[all];
                            if(thisShp.ellipsePath!=true){
                                var vectorPts=thisShp.pathPoints;
                                canvas.newPath(); canvas.moveTo(thisShp.pathPoints[0][0],thisShp.pathPoints[0][1]);
                                for(var j=0; j<vectorPts.length; j++){
                                    var thisAnchor=vectorPts[j];
                                    var x=thisAnchor[0], y=thisAnchor[1];
                                    canvas.lineTo(x,y);
                                if(thisShp.closed==true){
                                    canvas.closePath();
                            } else {
                                var cirPts=thisShp.pathPoints;
                                canvas.newPath();
                                canvas.ellipsePath(cirPts[0], cirPts[1], cirPts[2], cirPts[3]);
                                canvas.closePath();
                            if(thisShp.fillColor!=null){
                                var clr=thisShp.fillColor;
                                var myBrush=canvas.newBrush(canvas.BrushType.SOLID_COLOR,clr);
                                canvas.fillPath(myBrush);
                            if(thisShp.strokeColor!=null){
                                var clr=thisShp.strokeColor;
                                var myPen=canvas.newPen(canvas.PenType.SOLID_COLOR,[clr[0],clr[1],clr[2],1], thisShp.strokeWidth);
                                canvas.strokePath(myPen);
                    counter-=1;
            var doc=app.activeDocument;
            if(doc.height<=400 && doc.width<=600){
                doc.rulerOrigin=[0,doc.height];
                doc.coordinateSystem=CoordinateSystem.DOCUMENTCOORDINATESYSTEM;
                var wDims=function(){
                    var dims={width: '', height: ''};
                    if(doc.width>220){
                        dims.width = Math.round(doc.width);
                    } else {
                        dims.width = 220;
                    if(doc.height>20){
                        dims.height = Math.round(doc.height);
                    } else {
                        dims.height = 20;
                    return dims;
                function drawCapture(vectors, dataDisplay, graphicDisplay){
                    // draws a preview and creates a drawing data object resource.
                    var drawData={total:0}; //Put drawing shapes here.  Properties: stroke (rgb color | null), fill (rgb color | null), pathPoints
                    var canvas=graphicDisplay.graphics;
                    for(var i=vectors.length-1; i>-1; i--){
                        var thisShp=vectors[i];
                        if((thisShp.filled || thisShp.stroked) && thisShp.editable==true){
                            drawData.total++;
                            drawData['shape_'+i]={};
                            drawData['shape_'+i].fillColor=null;
                            drawData['shape_'+i].strokeColor=null;
                            drawData['shape_'+i].pathPoints=[];
                            drawData['shape_'+i].ellipsePath=false;
                            if(itemShape(thisShp).iscircle==true || itemShape(thisShp).isellipse==true || thisShp.name=='ellipse' ||
                                thisShp.name=='circle' || thisShp.name=='cir'){
                                drawData['shape_'+i].ellipsePath=true;
                                drawData['shape_'+i].pathPoints=[thisShp.left, -thisShp.top, thisShp.width, thisShp.height];
                                canvas.newPath();
                                canvas.ellipsePath(thisShp.left, -thisShp.top, thisShp.width, thisShp.height);
                            } else {
                                var vectorPts=thisShp.pathPoints;
                                canvas.newPath(); canvas.moveTo(Math.round(vectorPts[0].anchor[0]),-Math.round(vectorPts[0].anchor[1]));
                                for(var j=0; j<vectorPts.length; j++){
                                    var thisAnchor=vectorPts[j].anchor;
                                    var x=Math.round(thisAnchor[0]), y=-Math.round(thisAnchor[1]);
                                    drawData['shape_'+i].pathPoints.push([x,y]);
                                    canvas.lineTo(x,y);
                            if(thisShp.closed || drawData['shape_'+i].ellipsePath==true){
                                drawData['shape_'+i].closed=true;
                                if(drawData['shape_'+i].ellipsePath!=true){
                                    canvas.closePath();
                            } else {
                                drawData['shape_'+i].closed=false;
                            if(thisShp.filled){
                                var clr=thisShp.fillColor;
                                var colorArray=convertToUIRGB(clr);
                                var myBrush=canvas.newBrush(canvas.BrushType.SOLID_COLOR,colorArray);
                                drawData['shape_'+i].fillColor=colorArray;
                                canvas.fillPath(myBrush);
                            if(thisShp.stroked){
                                var clr=thisShp.strokeColor;
                                var colorArray=convertToUIRGB(clr);
                                var myPen=canvas.newPen(canvas.PenType.SOLID_COLOR,[colorArray[0],colorArray[1],colorArray[2],1], Math.round(thisShp.strokeWidth));
                                drawData['shape_'+i].strokeColor=colorArray;
                                drawData['shape_'+i].strokeWidth=Math.round(thisShp.strokeWidth);
                                canvas.strokePath(myPen);
                    return drawData;
                function showDrawerFunc(objStringDisplay, wDims){
                    var w2=new Window('dialog','Drawer Function');
                    var containerG=w2.add('tabbedpanel');
                        var funcG=containerG.add('tab',undefined,'Drawer Function');
                            var dispE=funcG.add('edittext',undefined,funcSrc,{multiline:true}); dispE.size=[580,200];
                            var selBtn=funcG.add('button',undefined,'Select All');
                        var drawingG=containerG.add('tab',undefined,'Drawing:');
                            var drawG=drawingG.add('group');
                                var drawP=drawG.add('panel',undefined,''); drawP.size=[wDims.width, wDims.height];
                    var msgCntr=w2.add('panel',undefined,'Message Center:');
                        var msgE=msgCntr.add('edittext',undefined,'',{multiline:true});msgE.size=[560,40];
                    var btnG=w2.add('group');
                        var okBtn=btnG.add('button',undefined,'Ok',{name: 'ok'});
                    selBtn.onClick=function(){
                        dispE.active=false; dispE.active=true;
                    drawG.onDraw=function(){
                        if(objStringDisplay.text!=''){
                            try{
                                drawFromObjString(objStringDisplay.text, this);
                            } catch(e){
                                msgE.text=("Something isn't right:\r"+e);
                        } else {
                            msgE.text=('You must first put a valid object string into the object string display area--> "Get Source Object String" button, 1st window, 1st tab.');
                    w2.show();
                function instructions(){
                    var w3=new Window('dialog','instructions');
                    var instructions=w3.add('edittext',undefined,'',{multiline:true}); instructions.size=[400,100];
                    instructions.text="1)  Have a document open, smaller than 600x400.\r\r"+
                        "2)  Draw some stuff- use paths only, straight lines or ellipses only. To have script explicitly recognize ellipse, "+
                        "label the path 'cir', 'circle', or 'ellipse'. Right now there's a function to detect ellipses, but it is coarse.\r\r"+
                        "3)  Run this script and see if your drawing was captured below this box.\r\r"+
                        "4)  Click the 'Get Object String' button and see the drawing instruction string appear.\r\r"+
                        "5)  Click the 'View Drawer Function/Drawing' button to see the function used to draw scriptUI picture from"+
                        " the object string and use other tab to see the drawing made with this function from that object string.\r\r"+
                        "6)  Edit your string to see your picture change if needed!";
                    var okBtn=w3.add('button',undefined,'OK');
                    w3.show();
                var funcSrc=drawFromObjString.toSource();
                var dispWindow=function(){
                    var drawData;
                    var w=new Window('dialog','ScriptUI Graphics Display');
                    var panel=w.add('panel',undefined,''); panel.size=[wDims.width+6,wDims.height+6];
                    var list=w.add('edittext',undefined,'',{multiline:true}); list.size=[wDims.width,150];
                    var btnsG=w.add('group');
                        var clickBtn=btnsG.add('button',undefined,'Get Source Object String');
                        var selectBtn=btnsG.add('button',undefined,'Select All');
                    var btnG2=w.add('group');
                        var funcBtn=btnG2.add('button',undefined,'See Drawer Function/Drawing');
                        funcBtn.helpTip='Uses the Object String picture info to draw using ScriptUIGraphics lineTo commands.';
                        var helpBtn=btnG2.add('button',undefined,'?'); helpBtn.size=[25,25];
                    panel.onDraw=function(){
                        drawData=drawCapture(doc.pathItems, list, this);
                    clickBtn.addEventListener('mousedown',function(){
                        list.text=drawData.toSource();
                    funcBtn.onClick=function(){
                        showDrawerFunc(list, wDims);
                    helpBtn.onClick=function(){
                        instructions();
                    selectBtn.onClick=function(){
                        list.active=false; list.active=true;
                    var okBtn=w.add('button',undefined,'OK');
                    w.show();
            } else {
                alert('Please use a document with main artboard no larger than 600x400.');
        } else {
            alert('Must run in Illustrator with at least 1 document open.');
    graphicsDisplay();

    New-er update to this:
    // ScriptUI Graphics Display by Vasily
    #target illustrator
    function graphicsDisplay(){
        function itemShape(myShape){
            // Going to test for circles.
            var shapeKind={
                isrectangle: null,
                iscircle: null,
                isellipse: null
            if(myShape.typename=='PathItem' && myShape.pathPoints.length == 4){ // RECTANGLE CHECKER
                //--------------------2 diagonals-------------------------
                var recEquaDistOne = parseInt(Math.pow((myShape.pathPoints[0].anchor[0] - myShape.pathPoints[2].anchor[0]),2) +
                Math.pow((myShape.pathPoints[0].anchor[1] - myShape.pathPoints[2].anchor[1]),2)); // diagonal
                var recEquaDistTwo = parseInt(Math.pow((myShape.pathPoints[1].anchor[0] - myShape.pathPoints[3].anchor[0]),2) +
                Math.pow((myShape.pathPoints[1].anchor[1] - myShape.pathPoints[3].anchor[1]),2)); // diagonal
                //---------------------4 sides of rectangle---------------
                var sideA = parseInt(Math.pow((myShape.pathPoints[0].anchor[0] - myShape.pathPoints[1].anchor[0]),2) +
                Math.pow((myShape.pathPoints[0].anchor[1] - myShape.pathPoints[1].anchor[1]),2)); 
                var sideB = parseInt(Math.pow((myShape.pathPoints[1].anchor[0] - myShape.pathPoints[2].anchor[0]),2) +
                Math.pow((myShape.pathPoints[1].anchor[1] - myShape.pathPoints[2].anchor[1]),2)); 
                var sideC = parseInt(Math.pow((myShape.pathPoints[2].anchor[0] - myShape.pathPoints[3].anchor[0]),2) +
                Math.pow((myShape.pathPoints[2].anchor[1] - myShape.pathPoints[3].anchor[1]),2)); 
                var sideD = parseInt(Math.pow((myShape.pathPoints[3].anchor[0] - myShape.pathPoints[0].anchor[0]),2) +
                Math.pow((myShape.pathPoints[3].anchor[1] - myShape.pathPoints[0].anchor[1]),2)); 
                if(recEquaDistOne == recEquaDistTwo){ // If two diagonals connecting opposite points are same length, it's a 90 degree box               
                    if((sideA == sideC) && (sideB == sideD)){
                        for(var j=0; j<4; j++){
                            var point = myShape.pathPoints[j];             
                                if((point.leftDirection[0] == point.anchor[0]) &&
                                    (point.anchor[0] == point.rightDirection[0]) &&
                                    (point.leftDirection[1] == point.anchor[1]) &&
                                    (point.anchor[1] == point.rightDirection[1])){
                                    shapeKind.isrectangle = true;
                                } else {
                                    shapeKind.isrectangle = false;
                                    break;
                if(myShape.pathPoints.length == 4){  // CIRCLE CHECKER
                    if(shapeKind.isrectangle == false || shapeKind.isrectangle == null){
                        var circlePts = new Array();
                        var circleSlopes = new Array();
                        for (k=0; k<4; k++){
                        var point = myShape.pathPoints[k]; 
                        var leftHandleDist = parseInt(Math.pow((point.leftDirection[0] - point.anchor[0]),2) +
                        Math.pow((point.leftDirection[1] - point.anchor[1]),2));
                        var rightHandleDist = parseInt(Math.pow((point.rightDirection[0] - point.anchor[0]),2) +
                        Math.pow((point.rightDirection[1] - point.anchor[1]),2));
                        circlePts.push(leftHandleDist, rightHandleDist);
                        var leftHandleSlope = ((point.leftDirection[0] - point.anchor[0])/(point.leftDirection[1] - point.anchor[1])).toFixed(2);
                        var rightHandleSlope = ((point.rightDirection[0] - point.anchor[0])/(point.rightDirection[1] - point.anchor[1])).toFixed(2);
                        circleSlopes.push(leftHandleSlope, rightHandleSlope);
                    for(var f=0; f<8; f++){ // Allows non-rotated circles.
                        if(circleSlopes[f] == "-0.00"){
                            circleSlopes[f] = "0.00";
                        if(circleSlopes[f] == "-Infinity"){
                            circleSlopes[f] = "Infinity";
                    var cirEquaDistOne = parseInt(Math.pow((myShape.pathPoints[0].anchor[0] - myShape.pathPoints[2].anchor[0]),2) +
                    Math.pow((myShape.pathPoints[0].anchor[1] - myShape.pathPoints[2].anchor[1]),2));
                    var cirEquaDistTwo = parseInt(Math.pow((myShape.pathPoints[1].anchor[0] - myShape.pathPoints[3].anchor[0]),2) +
                    Math.pow((myShape.pathPoints[1].anchor[1] - myShape.pathPoints[3].anchor[1]),2));
                    if(circleSlopes[0] != "NaN"){ // Filters out asymmetric rhombus  <><><>^^^^^^<><><>
                        if((circlePts[0] == circlePts[1]) && // Filters out shapes with control handles not of equal distance from anchor point.
                            (circlePts[1] == circlePts[2]) &&
                            (circlePts[2] == circlePts[3]) &&
                            (circlePts[3] == circlePts[4]) &&
                            (circlePts[4] == circlePts[5]) &&
                            (circlePts[5] == circlePts[6]) &&
                            (circlePts[6] == circlePts[7]) &&
                            (circlePts[7] == circlePts[0])){
                            if((circleSlopes[0] == circleSlopes[1]) && // Filters out the equadistant 4-pointed Star shape (dismisses negative slopes).
                                (circleSlopes[2] == circleSlopes[3]) &&
                                (circleSlopes[4] == circleSlopes[5]) &&
                                (circleSlopes[6] == circleSlopes[7])){
                                if(cirEquaDistOne == cirEquaDistTwo){ // Filters out Ellipses (non-equadistant circles).
                                    // Filters out the very RARE 4-pointed star which has all control points in its center on top of each other!
                                    if(((myShape.pathPoints[0].leftDirection[0]).toFixed(2) != (myShape.pathPoints[1].leftDirection[0]).toFixed(2)) &&
                                        ((myShape.pathPoints[0].leftDirection[1]).toFixed(2) != (myShape.pathPoints[1].leftDirection[1]).toFixed(2))){
                                        shapeKind.iscircle = true;
                                    } else {
                                        shapeKind.iscircle = false;
                        } else {
                            if((circlePts[0]==circlePts[1]) &&
                                (circlePts[2]==circlePts[3]) &&
                                ((circlePts[4]==circlePts[5]) && (circlePts[4]==circlePts[1]) && (circlePts[5]==circlePts[1])) &&
                                ((circlePts[6]==circlePts[7]) && (circlePts[6]==circlePts[2]) && (circlePts[7]==circlePts[3]))){
                                shapeKind.isellipse=true;
        //~                     $.writeln(circlePts[0]+'\r'+circlePts[1]+'\r'+circlePts[2]+'\r'+circlePts[3]+'\r'+
        //~                     circlePts[4]+'\r'+circlePts[5]+'\r'+circlePts[6]+'\r'+circlePts[7]);
            return shapeKind;
        if(app.name=='Adobe Illustrator' && app.documents.length>0){
            function round2(num){
                return Math.round(num*100)/100;
            function convertToUIRGB(color){
                if(color=='[CMYKColor]'){
                    var c=color.cyan, m=color.magenta, y=color.yellow, k=color.black;
                    return [
                        round2((1-(c/100))*(1-(k/100))),
                        round2((1-(m/100))*(1-(k/100))),
                        round2((1-(y/100))*(1-(k/100)))
                } else if(color=='[GrayColor]'){
                    var k=color.gray;
                    var grayValue=1-(Math.round(((k/100)*255)*100)/100)/255;
                    return [grayValue,grayValue,grayValue];
                } else if(color=='[GradientColor]'){
                    $.writeln('Sorry, no gradient colors please.');
                    return [0,0,0];
                } else if(color=='[PatternColor]'){
                    $.writeln('Sorry, no pattern colors please.');
                    return [0,0,0,];
                } else if(color=='[SpotColor]'){
                    var clr=color.spot.getInternalColor();
                    if(color.spot.spotKind==SpotColorKind.SPOTCMYK){
                        var c=clr[0], m=clr[1], y=clr[2], k=clr[3];
                        return [
                            round2((1-(c/100))*(1-(k/100))),
                            round2((1-(m/100))*(1-(k/100))),
                            round2((1-(y/100))*(1-(k/100)))
                    } else if(color.spot.spotKind==SpotColorKind.SPOTRGB){
                        return [round2(clr[0]/255), round2(clr[1]/255), round2(clr[2]/255)];
                    } else if(color.spot.spotKind==SpotColorKind.SPOTLAB){
                        var clr=color.spot.getInternalColor();
                        var whiteRef={
                            D65: {X: 95.047,Y: 100, Z: 108.883},
                            D50: {X: 96.422,Y: 100, Z: 82.521},
                        var illuminant='D65';
                        var Y = (clr[0]+16)/116;
                        var X = clr[1]/500+Y;
                        var Z = Y-clr[2]/200;
                        if(Math.pow(Y,3) > 0.008856){Y=Math.pow(Y,3);}
                        else {Y = (Y-16/116)/7.787;}
                        if(Math.pow(X,3) > 0.008856){X=Math.pow(X,3);}
                        else {X = (X-16/116)/7.787;}
                        if(Math.pow(Z,3) > 0.008856){Z=Math.pow(Z,3);}
                        else {Z = (Z-16/116)/7.787;}
                        X*=whiteRef[illuminant].X,Y*=whiteRef[illuminant].Y,Z*=whiteRef[illuminant].Z;
                        //alert(X+" "+Y+" "+Z);
                        X/=100,Y/=100,Z/=100;
                        R=X*3.2406+Y*-1.5372+Z*-0.4986;
                        G=X*-0.9689+Y*1.8758+Z*0.0415;
                        B=X*0.0557+Y*-0.2040+Z*1.0570;
                        //alert(R+" "+G+" "+B);
                        if(R > 0.0031308){R=(1.055*(Math.pow(R,(1/2.4))))-0.055;}
                        else {R*= 12.92;}
                        if(G > 0.0031308){G=(1.055*(Math.pow(G,(1/2.4))))-0.055;}
                        else {G*= 12.92;}
                        if(B > 0.0031308){B=(1.055*(Math.pow(B,(1/2.4))))-0.055;}
                        else {B*= 12.92;}
                        if(R<0){R=0} else if(R>1){R=1};
                        if(G<0){G=0} else if(G>1){G=1};
                        if(B<0){B=0} else if(B>1){B=1};
                        return [round2(R),round2(G),round2(B)];
                } else if(color=='[RGBColor]'){
                    return [round2(color.red/255), round2(color.green/255), round2(color.blue/255)];
            function drawFromObjString(objString, canvasArea){
                function drawPath(shp){
                    var thisShp=shp;
                    if(thisShp.ellipsePath!=true){
                        var vectorPts=thisShp.pathPoints;
                        canvas.newPath(); canvas.moveTo(thisShp.pathPoints[0][0],thisShp.pathPoints[0][1]);
                        for(var j=0; j<vectorPts.length; j++){
                            var thisAnchor=vectorPts[j];
                            var x=thisAnchor[0], y=thisAnchor[1];
                            canvas.lineTo(x,y);
                        if(thisShp.closed==true){
                            canvas.closePath();
                    } else {
                        var cirPts=thisShp.pathPoints;
                        canvas.newPath();
                        canvas.ellipsePath(round2(cirPts[0]), round2(cirPts[1]), round2(cirPts[2]), round2(cirPts[3]));
                        canvas.closePath();
                    if(thisShp.fillColor!=null){
                        var clr=thisShp.fillColor;
                        var myBrush=canvas.newBrush(canvas.BrushType.SOLID_COLOR,clr);
                        canvas.fillPath(myBrush);
                    if(thisShp.strokeColor!=null){
                        var clr=thisShp.strokeColor;
                        var myPen=canvas.newPen(canvas.PenType.SOLID_COLOR,[clr[0],clr[1],clr[2],1], thisShp.strokeWidth);
                        canvas.strokePath(myPen);
            //$.writeln(objString.replace(/'\+\n*\r*'/g,'').replace(/(^'|';$)/g,''));
                var obj=eval(objString.replace(/'\+\n*\r*'/g,'').replace(/(^'|';$)/g,''));
                var canvas=canvasArea.graphics;
                var counter=obj.total;
                while(counter>=0){
                    for(all in obj){
                        if(all.match(/\d{1,2}$/g) && all.match(/\d{1,2}$/g)==counter){
                            var thisShp=obj[all];
                            if(all.match('group')){
                                var ctr=obj[all].total;
                                while(ctr>=0){
                                    for(paths in obj[all]){
                                        if(paths.match(/\d{1,2}$/g) && paths.match(/\d{1,2}$/g)==ctr){
                                            drawPath(obj[all][paths]);
                                    ctr--;
                            } else {
                                drawPath(thisShp);
                    counter-=1;
            var doc=app.activeDocument;
            if(doc.height<=400 && doc.width<=600){
                doc.rulerOrigin=[0,doc.height];
                doc.coordinateSystem=CoordinateSystem.DOCUMENTCOORDINATESYSTEM;
                var wDims=function(){
                    var dims={width: '', height: ''};
                    if(doc.width>220){
                        dims.width = Math.round(doc.width);
                    } else {
                        dims.width = 220;
                    if(doc.height>20){
                        dims.height = Math.round(doc.height);
                    } else {
                        dims.height = 20;
                    return dims;
                function drawCapture(docArt, dataDisplay, graphicDisplay){
                    function capturePathItem(pathItem, drawObj, count){
                        var thisShp=pathItem, drawData=drawObj, i=count;
                        if((thisShp.filled || thisShp.stroked) && thisShp.editable==true){
                            drawData['shape_'+i]={};
                            drawData['shape_'+i].fillColor=null;
                            drawData['shape_'+i].name=thisShp.name;
                            drawData['shape_'+i].tag=thisShp.note;
                            drawData['shape_'+i].strokeColor=null;
                            drawData['shape_'+i].pathPoints=[];
                            drawData['shape_'+i].ellipsePath=false;
                            if(itemShape(thisShp).iscircle==true || itemShape(thisShp).isellipse==true || thisShp.name=='ellipse' ||
                                thisShp.name=='circle' || thisShp.name=='cir'){
                                drawData['shape_'+i].ellipsePath=true;
                                drawData['shape_'+i].pathPoints=[Math.round(thisShp.left), Math.round(-thisShp.top), Math.round(thisShp.width), Math.round(thisShp.height)];
                                canvas.newPath();
                                canvas.ellipsePath(Math.round(thisShp.left), Math.round(-thisShp.top), Math.round(thisShp.width), Math.round(thisShp.height));
                            } else {
                                var vectorPts=thisShp.pathPoints;
                                canvas.newPath(); canvas.moveTo(Math.round(vectorPts[0].anchor[0]),-Math.round(vectorPts[0].anchor[1]));
                                for(var j=0; j<vectorPts.length; j++){
                                    var thisAnchor=vectorPts[j].anchor;
                                    var x=Math.round(thisAnchor[0]), y=-Math.round(thisAnchor[1]);
                                    drawData['shape_'+i].pathPoints.push([x,y]);
                                    canvas.lineTo(x,y);
                            if(thisShp.closed || drawData['shape_'+i].ellipsePath==true){
                                drawData['shape_'+i].closed=true;
                                if(drawData['shape_'+i].ellipsePath!=true){
                                    canvas.closePath();
                            } else {
                                drawData['shape_'+i].closed=false;
                            if(thisShp.filled){
                                var clr=thisShp.fillColor;
                                var colorArray=convertToUIRGB(clr);
                                var myBrush=canvas.newBrush(canvas.BrushType.SOLID_COLOR,colorArray);
                                drawData['shape_'+i].fillColor=colorArray;
                                canvas.fillPath(myBrush);
                            if(thisShp.stroked){
                                var clr=thisShp.strokeColor;
                                var colorArray=convertToUIRGB(clr);
                                var myPen=canvas.newPen(canvas.PenType.SOLID_COLOR,[colorArray[0],colorArray[1],colorArray[2] ,1], Math.round(thisShp.strokeWidth));
                                drawData['shape_'+i].strokeColor=colorArray;
                                drawData['shape_'+i].strokeWidth=Math.round(thisShp.strokeWidth);
                                canvas.strokePath(myPen);
                    // docArt is lately the layers[0].pageItems
                    // draws a preview and creates a drawing data object resource.
                    var drawData={total:0}; //Put drawing shapes here.  Properties: stroke (rgb color | null), fill (rgb color | null), pathPoints
                    var canvas=graphicDisplay.graphics;
                    vectors=function(){
                        var arr=[];
                        for(var i=0; i<docArt.length; i++){
                            var thisShp=docArt[i];
                            if(thisShp.typename=='PathItem' && thisShp.parent.typename!="GroupItem"){
                                if((thisShp.filled || thisShp.stroked) && thisShp.editable==true){
                                    arr.push(thisShp);
                            } else if(thisShp.typename=='GroupItem'){
                                if(thisShp.pathItems.length>0){
                                    var smArr=[];
                                    for(var j=0; j<thisShp.pathItems.length; j++){
                                        var thisPth=thisShp.pathItems[j];
                                        if((thisPth.filled || thisPth.stroked) && thisPth.editable==true){
                                            smArr.push(thisPth);
                                    if(smArr.length>0){arr.push(smArr);};
                        return arr;
                    drawData.total=vectors.length;
                    for(var i=vectors.length-1; i>-1; i--){
                        var thisShp=vectors[i];
                        if(thisShp instanceof Array){
                            var grpObj={};
                            for(var j=thisShp.length-1; j>-1; j--){
                                var thisPth=thisShp[j];
                                capturePathItem(thisPth, grpObj, j);
                            grpObj.total=thisShp.length;
                            var grpNm=function(){
                                if(thisShp[0].parent.name!=''){
                                    return thisShp[0].parent.name+"_";
                                return '';
                            drawData['group_'+grpNm+i]=grpObj;
                        } else {
                            capturePathItem(thisShp, drawData, i);
                    return drawData;
                function showDrawerFunc(objStringDisplay, wDims){
                    var w2=new Window('dialog','Drawer Function');
                    var containerG=w2.add('tabbedpanel');
                        var funcG=containerG.add('tab',undefined,'Drawer Function');
                            var dispE=funcG.add('edittext',undefined,funcSrc,{multiline:true}); dispE.size=[580,200];
                            var selBtn=funcG.add('button',undefined,'Select All');
                        var drawingG=containerG.add('tab',undefined,'Drawing:');
                            var drawG=drawingG.add('group');
                                var drawP=drawG.add('panel',undefined,''); drawP.size=[wDims.width, wDims.height];
                    var msgCntr=w2.add('panel',undefined,'Message Center:');
                        var msgE=msgCntr.add('edittext',undefined,'',{multiline:true});msgE.size=[560,40];
                    var btnG=w2.add('group');
                        var okBtn=btnG.add('button',undefined,'Ok',{name: 'ok'});
                    selBtn.onClick=function(){
                        dispE.active=false; dispE.active=true;
                    drawG.onDraw=function(){
                        if(objStringDisplay.text!=''){
                            try{
                                drawFromObjString(objStringDisplay.text, this);
                            } catch(e){
                                msgE.text=("Something isn't right:\r"+e);
                        } else {
                            msgE.text=('You must first put a valid object string into the object string display area--> "Get Source Object String" button, 1st window, 1st tab.');
                    w2.show();
                function instructions(){
                    var w3=new Window('dialog','instructions');
                    var instructions=w3.add('edittext',undefined,'',{multiline:true}); instructions.size=[400,100];
                    instructions.text="1)  Have a document open, smaller than 600x400.\r\r"+
                        "2)  Draw some stuff- use paths only, straight lines or ellipses only. To have script explicitly recognize ellipse, "+
                        "label the path 'cir', 'circle', or 'ellipse'. Right now there's a function to detect (non-rotated) ellipses, but it is coarse.\r\r"+
                        "3)  Run this script and see if your drawing was captured in the main window.\r\r"+
                        "4)  Click the 'Get Object String' button and see the drawing instruction string appear.\r\r"+
                        "5)  Click the 'View Drawer Function/Drawing' button to see the function used to draw scriptUI picture from"+
                        " the object string and use other tab to see the drawing made with this function from that object string.\r\r"+
                        "6)  Edit your string to see your picture change if needed!";
                    var okBtn=w3.add('button',undefined,'OK');
                    w3.show();
                var funcSrc=drawFromObjString.toSource();
                var dispWindow=function(){
                    var drawData;
                    var w=new Window('dialog','ScriptUI Graphics Display');
                    var panel=w.add('panel',undefined,''); panel.size=[wDims.width+6,wDims.height+6];
                    var list=w.add('edittext',undefined,'',{multiline:true}); list.size=[wDims.width,150];
                    var formatG=w.add('group');
                        var formatH=formatG.add('statictext',undefined, 'Format:');
                        var format_returns=formatG.add('button',undefined, 'Returns before "(group|shape)_"');
                    var btnsG=w.add('group');
                        var clickBtn=btnsG.add('button',undefined,'Get Source Object String');
                        var selectBtn=btnsG.add('button',undefined,'Select All');
                    var btnG2=w.add('group');
                        var funcBtn=btnG2.add('button',undefined,'See Drawer Function/Drawing');
                        funcBtn.helpTip='Uses the Object String picture info to draw using ScriptUIGraphics lineTo commands.';
                        var helpBtn=btnG2.add('button',undefined,'?'); helpBtn.size=[25,25];
                    panel.onDraw=function(){
                        drawData=drawCapture(doc.layers[0].pageItems, list, this);
                    clickBtn.addEventListener('mousedown',function(){
                        list.text=drawData.toSource();
                    format_returns.onClick=function(){
                        var str=list.text;
                        var rx=/(group|shape)_/g;
                        if(str!=''){
                            var rx=/(group_|shape_)/g;
                            var matches=str.match(rx);
                            for(var i=0; i<matches.length; i++){
                                var instance = rx.exec(str);
                                str=str.substring(0, rx.lastIndex-instance[0].length)+str.substr(rx.lastIndex-instance[0].length,).replace(ins tance[0],"'+\r'"+instance[0]);
                        list.text="'"+str+"';";
                    funcBtn.onClick=function(){
                        showDrawerFunc(list, wDims);
                    helpBtn.onClick=function(){
                        instructions();
                    selectBtn.onClick=function(){
                        list.active=false; list.active=true;
                    var okBtn=w.add('button',undefined,'OK');
                    w.show();
            } else {
                alert('Please use a document with main artboard no larger than 600x400.');
        } else {
            alert('Must run in Illustrator with at least 1 document open.');
    graphicsDisplay();

  • One or more tasks were running when ADE has abnormally terminated

    I have seen several normal downloads on this PC with XT SP3 so know what it looks like. 
    Have protection software running: DSL modem firewall on, windows firewall on, AD-Aware free, AVG virus free, Winpatrol free, SpyBot-SD Resident free
    Also my notebook with Windows 7 allows downloads with same authentication.
    I attempt download and ADE starts with download indicator which terminates prematurely, then get two error messages:
    1.
    One or more tasks were running when ADE has abnormally terminated. Do you want to resume pending tasks?
    and when I select yes...
    2.
    Error getting license
    Server communication problem: E_ADEPT_10

    This can occur if a setting somewhere isn't allowing ADE to do what it
    wants to do.  The error message you included from ADE does not seem
    complete, but I'll take a flier and 'assume' that the message is trying to
    tell you that software on your machine is blocking at least a portion of
    the download.  THIS LINK
    <http://technology.myblogzone.info/2011/01/how-to-solve-the-error-getting-license-message-i n-adobe-digital-editions/>
    may
    have the information that will help clear up the issue.  One can hope,
    anyway....
    ==============

  • Will using your own router allow loopback connections?

    SomeJoe7777 you are correct regarding the route of a given packet when using a WAN IP locally (NAT loopback). However will again state that NAT loopback does not work using a router behind the NVG589. As you stated it should...which is why the issue lies with the NVG589. Most likely something to do with IP passthrough mode on the NVG589 not being a true bridge mode which in turn does effect one's own router. Bottom line I encourage you to attempt NAT loopback yourself with a router behind the NVG589 and report your results. It wouldn't be the first time that ATT said something should work only to later admit it was a problem with their hardware.

    NAT loopback is defined as a function of a router where connections to ports on the outside IP address are translated and routed to the server defined in the router, even when the connection attempt comes from the "inside" portion of the network.
    e.g.. Let's say we have a router with an outside IP address of 99.99.99.99 (a public IP address), and the router has been configured so that inbound connections to port 80 on that WAN interface are translated to a destination address of 192.168.1.20 (on the inside network). This enables a web server running on the 192.168.1.20 machine to respond to web requests from the Internet, provided those web requests are coming in to 99.99.99.99.
    If another computer on the internal network, such as 192.168.1.101, can pull up the web site using http://99.99.99.99 (instead of the direct connection of http://192.168.1.20 ) then the router implements NAT loopback.
    Now, knowing that, let's review:
    If you use your own router, and it is the device doing the network address translation (NAT), that means it's outside address is x.x.x.x (a publically routable IP address), and it's inside addresses are private, in RFC 1918 address space. This can be set up with the U-Verse modems using DMZPlus (2Wire/Pace 3xxx series gateways) or IP Passthrough (Motorola NVG5xx series gateways).
    NAT loopback in this situation is completely dependent on the functionality of your own router. By definition, any NAT loopback request under this circumstance never leaves your network and your router, and thus never touches the U-Verse gateway at all.
    The bottom line is that if NAT loopback is not working with your router, then you either haven't configured your router properly, or your router doesn't support it. The ISP gateway has no bearing on this functionality whatsoever when configured in conjunction with your own router as described above.
     

  • Modify\Remove UDI 'build your own page' text

    Hi , 
    I am using UDI wizard to create custom 'Build your own page' type template. Could anyone pls. suggest how to modify\remove 'my First custom page'? from this wizard page? 
    any pointers will be appreciated. Thanks. 

    Hi,
    It is not displayed when your run the UDI or when you run the Preview either actually.. The name used will be the two you supplied when creating the page here:
    So the My First Custom page is just displayed when you edit it.
    -- My System Center blog ccmexec.com -- Twitter
    @ccmexec

Maybe you are looking for

  • Error executing the Query after deploying and executing the application in WLS 6.1 SP3

    Hi, We are trying to run a application by deploying a war file on Web Logic Server 6.1 SP3. After deploying and at the time of execution of the application, the server console displays this error message java.sql.SQLException: ORA-00600: internal err

  • Stacked Bar Chart

    Hi I would like to create a stacked bar chart in my report. It will have 2 dimensions and 1 Measure. Dimension 1 = Month Dimension 2 = Sales Item Measure = Sales_quantity I can't find anything in the user guide. Is this possible ?

  • Can i stream movies from my mifi to firestick?

    I just got a Amazon Fire stick for Christmas and would like to know if I can stream movies to the Fire stick from my MYFI 4620L

  • Trying to update LR, get a prompt for serial number

    I'm already a CC subscriber and when I updated LR to 5.3, I get a "serial number or try it" prompt. Did I go about the update the wrong way? I should just get all updates automatically, right?

  • IPhoto '11 won't acknowledge my iPhone 3G

    I've been having reception issues with my iPhone and today I took it to the Apple Store where I scheduled an appointment and the guy who ran the diagnostic on it said that there were definite antenna issues and they would replace the phone.  He told