How do I receive notification of a change in the value of a dynamically created user interface object?

I need to know when the user has changed the value of a slider or a Boolean control that was dynamically created (not part of a dialog). Is there any way to do that without polling? I would have expected these controls to post a WM_NOTIFY message to the parent window in response to user events, but that does not seem to happen. Am I missing something?

Win32 controls do typically post WM_NOTIFY messages to the parent window for user events. The Measurement Studio UI controls are actually ActiveX controls, though, and events are handled differently for ActiveX controls.
If you have a resource ID for you control, the easiest way would be to create your control in the OnInitDialog method and handle the event the same way you would if you had added the control to the dialog at design-time:
Add a declaration for the event handler in the AFX_MSG block in the dialog header file.
Make sure the AFX_MSG block in the header file includes DECLARE_EVENTSINK_MAP()
Include an ON_EVENT entry for the event in the dialog source's BEGIN_EVENT_SINK_MAP block.
Include a DDX_Control entry
in the dialog source's AFX_DATA_MAP block.
Otherwise, you'll have to dynamically sink the event at runtime after you've created the control. Microsoft's Knowledge Base has a couple of good articles that demonstrate how to do this:
SAMPLE: AtlEvnt.exe Creates ATL Sinks Using IDispEventImpl (Q194179)
AtlSink Uses ATL to Create a Dispinterface Sink (Q181277)
- Elton

Similar Messages

  • ADF 11g + How to capture the value of a dynamically created input text box

    Hi All,
    I have a requirement where, on selection of the value in a drop down, the input text boxes need to get dynamically populated on the JSPX page. I'm able to bring this functionality, and it is working fine.
    But the challenge right now I'm facing is that, how to read/capture the value entered in those dynamic text boxes on submission of the page. Please help me in getting this resolved.
    Below is the code snippet I'm using for this.
    // Clearing the existing input fields in the Panel form
    while (pf100.getChildren().iterator().hasNext()) {
    pf100.getChildren().remove(pf100.getChildren().iterator().next());
    // Creating the new fields based on the number of IP addresses selected
    for (int i = 0; i < iIPAddress; i++) {
    RichInputText pcPreferredDomain = new RichInputText();
    pcPreferredDomain.setLabel("Preferred Domain / Hostname for Desktop PC/ Laptop - " +
    (i + 1));
    pcPreferredDomain.setColumns(40);
    pcPreferredDomain.setId("pcpfdomain" + (i + 1));
    pf100.getChildren().add(pcPreferredDomain);
    Thanks All in Advance,
    Thanks & Regards,
    Dharmathej M

    As per your method, you are creating the RichInputText components as local variables.
    What happens when you are creating them as class level variables in the managed bean, if you do so, you can refer to the values of the UI components in the actionListener/action code for the command button in the managed bean
    sample:
    public class ManagedBean{
    RichInputText [] pcPreferredDomain;
    public ManagedBean(){
    // Clearing the existing input fields in the Panel form
    while (pf100.getChildren().iterator().hasNext()) {
    pf100.getChildren().remove(pf100.getChildren().iterator().next());
    pcPreferredDomain = new RichInputText[iIPAddress];
    // Creating the new fields based on the number of IP addresses selected
    for (int i = 0; i < iIPAddress; i++) {
    pcPreferredDomain[i] = new RichInputText();
    pcPreferredDomain.setLabel("Preferred Domain / Hostname for Desktop PC/ Laptop - " +
    (i + 1));
    pcPreferredDomain.setColumns(40);
    pcPreferredDomain.setId("pcpfdomain" + (i + 1));
    pf100.getChildren().add(pcPreferredDomain);
    Thanks,
    Navaneeth

  • How to set  color of a  row depending on the value of column in JTable?

    Hi All,
    I have a JTable that add rows when the user clicks on the button. In this way there can be any no. of rows in my table. My table contains five columns. When a new row is added , it is added with new data each time. Also the data of the rows keep on changing time to time.
    My problem is that when the data value for the third column comes out to be -ve then color of the row should be red and if its value is +ve then the color of the row should be green.
    I have tried for this in the way but it is not working properly.
    public Component prepareRenderer(TableCellRenderer renderer,int rowIndex, int vColIndex)
         Component c = super.prepareRenderer(renderer, rowIndex, vColIndex);
    if(rowIndex<table.getRowCount() && change<0 )
              c.setForeground(Color.red);
              c.setFont(new Font("TimesRoman",Font.PLAIN,11));
    else if(rowIndex<table.getRowCount() && change>0)
    c.setForeground(new Color(20,220,20));
         c.setFont(new Font("TimesRoman",Font.PLAIN,11));
    return c;
    where change is the value of the third column.
    Any help is highly appreciated.
    Thanx in advance.
    Regards,
    Har Krishan

    Perhaps you'll find this link useful. It gives a general idea of how you can create and adjust your custom renderer:
    http://www.senun.com/Left/Programming/Java_old/Examples_swing/JTableExamples4.html
    Hope it helps.
    Eugene

  • Hi all...  My user ID is Keychain Access won't allow me to access my information in my Keychain.  I can't seem to fix it.  What do I need to do?  I don't really know how to explain it but I can access all the other keychains just not my user account

    Hi all...
    My user ID is Keychain Access won't allow me to access my information in my Keychain.  I can't seem to fix it.  What do I need to do?  I don't really know how to explain it but I can access all the other keychains just not my user account keychain.  Can this be fixed?
    Thanks!

    That is correct...  I know the Admin password but the password for my keychain is not correct and I can't seem to remember what the last password would have been.  Any ideas how to reset it?  Maybe delete and recreate?  I know I may lose some info.  Thanks!

  • TS4000 How to stop email notifications of calendar changes

    Every time I edit an event on a shared icloud calendar it sends emails notifying me of the change.  How do I stop these?

    as i wrote there Re: How do you stop receiving notifications about updated calendar events?:
    to NOT get email notification about updated events from a shared calendar you subscribed to you have to uncheck "events affect availability" in that calendars "info" (mac os X.7 and X.8: iCal —> calendars dropdown —> right click on the subscribed calendar —> choose "get info" from the context-menu —> uncheck "events affect availability")

  • HOw do I stop notifications of ical changes sent to my wife's iPhone?

    I'm making lots of changes to the calendar my wife and I share. Her iPhone is buzzing every couple minutes with email notifications of the changes. How fo I stop these? Driving her crazy!

    Ian,
    She could turn off New Mail Sounds in the iPhone>Settings>Sounds>New Mail.

  • How to update a large (over 4 million item) List(Of Byte) quickly by altering indexes contained in a Dictionary(Of Integer, Byte) where the Dictionaries keys are the indexes in the List(Of Byte) that need to be changed to the values for those indexes?

       I'm having some difficulty with transferring images from a UDP Client to a UDP Server. The issue is receiving the bytes necessary to update an original image sent from the Client to the Server and updating the Servers List(Of Byte) with the
    new bytes replacing bytes in that list. This is a simplex connection where the Sever receives and the Client sends to utilize the least amount of bandwidth for a "Remote Desktop" style application where the Server side needs image updates of whatever
    occurs on the Client desktop.
       So far I can tranfer images with no issue. The images can be be any image type (.Bmp, .Gif, .JPeg, .Png, etc). I was working with sending .JPeg's as they appear to be the smallest size image when a Bitmap is saved to a memory stream as type
    .JPeg. And then I am using GZip to compress that byte array again so it is much smaller. However on a loopback on my NIC the speed for sending a full size screen capture is not very fast as the Server updates fairly slowly unless the Clients screen capture
    Bitmap is reduced in size to about 1/3'd of the original size. Then about 12000 bytes or less are sent for each update.
       Due to .JPeg compression I suppose there is no way to get the difference in bytes between two .JPegs and only send those when something occurs on the desktop that alters the desktop screen capture image. Therefore I went to using .Bmp's as each
    .Bmp contains the same number of bytes in its array regardless of the image alterations on the desktop. So I suppose the difference in bytes from a second screen capture and an inital screen capture are what is different in the second image from the initial
    image.
       What I have done so far is save an initial Bitmap of a screen capture using a memory stream and saving as type .Bmp which takes less than 93 milliseconds for 4196406 bytes. Compressing that takes less than 118 milliseconds to 197325 bytes for
    the current windows on the desktop. When that is done PictureBox1 is updated from nothing to the captured image as the PictureBox's background image with image layout zoom and the PictureBox sized at 1/2 my screens width and 1/2 my screens height.
       Then I save a new Bitmap the same way which now contains different image information as the PictureBox is now displaying an image so its back color is no longer displayed (solid color Aqua) and the cursor has moved to a different location. The
    second Bitmap is also 4196406 in bytes and compressed it was 315473 bytes in size.
       I also just found code from this link Converting a Bitmap to a Byte Array (and Byte Array to Bitmap) which gets a byte array
    directly from a Bitmap and the size of that is 3148800 for whatever is full screen captured on my laptop. So I should be able to work with smaller byte arrays at some point.
       The issue I'm having is that once the Client sends an image of the desktop to the Server I only want to update the server with any differences occuring on the Clients desktop. So what I have done is compare the first screen captures bytes (stored
    in a List(Of Byte)) to the second screen captures bytes (stored in a List(Of Byte)) by using a For/Next for 0 to 4196405 where if a byte in the first screen captures List is not equal to a byte in the second screen captures List I add the index and byte of
    the second screen captures list to a Dictionary(Of Integer, Byte). The Dictionary then only contains the indexes and bytes that are different between the first screen capture and second screen capture. This takes about 125 milliseconds which I think is pretty
    fast for 4196406 byte comparison using a For/Next and adding all the different bytes and indexes for each byte to a Dictionary.
        The difference in Bytes between the inital screen capture and the second screen capture is 242587 as an example which changes of course. For that amount of bytes the Dictionary contains 242587 integers as indexes and 242587 bytes as different
    bytes totaling 485174 bytes for both arrays (keys, values).  Compressed the indexes go from 242587 to 43489 bytes and the values go from 242587 to 34982 bytes. Which means I will have to send 78, 481 bytes from the Client to the Server to update the display
    on the server. Quite smaller than the original 4196406 bytes of the second Bitmap saved to type .Bmp or the compressed size of that array which was 315473 bytes. Plus a few bytes I add as overhead so the server knows when an image array ends and how many packets
    were sent for the array so it can discard complete arrays if necessary since UDP is lossfull although probably not so much in current networks like it may originally have been when the internet started.
        In reality the data from the Client to the Server will mostly be the cursor as it moves and updating the Server image with only a few hundred bytes I would imagine at a time. Or when the cursor selects a Button for example and the Buttons
    color changes causing those differences in the original screen capture.
       But the problem is if I send the Dictionaries Indexes and Bytes to the Server then I need to update the original Bitmap List(Of Byte) on the server by removing the Bytes in the received informations Index locations array from the Servers Bitmap
    List(Of Byte) and replacing those Bytes with the Bytes in the received informations Byte array. This takes so long using a For/Next for however many indexes are in the received informations Index array to update the Bitmap List(Of Byte) on the server using
    "Bmp1Bytes.RemoveAt(Index As Integer)" followed by "Bmp1Bytes.Insert(Index As Integer, Item As Byte)" in the For/Next.
        I've tried various For/Next statements including using a new List(Of Byte) with If statements so If the the integer for the For/Next ='s the Key in a Dictionary(Of Integer, Byte) using a Counter to provide the Dictionaries Key value then
    the Dictionaries byte value will be added to the List(Of Byte) and the counter will increas by one Else the List(Of Byte) adds the original "Bmp1Bytes" byte at that index to the new List(Of Byte). This takes forever also.
       I also tried the same For/Next adding to a new Dictionary(Of Integer, Byte) but that takes forever too.
       I think I could use RemoveRange and AddRange to speed things up. But I don't know how to retrieve a contiguous range of indexes in the received indexes that need to be updated in the servers "Bmp1Bytes" List(Of Byte) from the received
    array of indexes and bytes which are in a Dictionary(Of Integer, Byte).  But I believe this would even be slower than some realistic method for replacing all Bytes in a List(Of Byte) when I have the indexes that need to be replaced and the bytes to replace
    them with.
       Even if I just used AddRange on a new List(Of Byte) to add ranges of bytes from the original "Bmp1Bytes" and the changes from the Dictionary(Of Integer, Byte) I think this would be rather slow. Although I don't know how to do that
    by getting contiguous ranges of indexes from the Dictionaries keys.
       So I was wondering if there is some method perhaps using Linq or IEnumerable which I've been unable to figure anything out which could do this.
       I do have some copy and pasted code which I don't understand how it works that I am using which I would guess could be altered for doing something like this but I can't find information that provides how the code works.  Or even if I did
    maybe I can't understand it. Like the code below which is extremely fast.
       Dim strArray() As String = Array.ConvertAll(Of Integer, String)(BmpComparisonDict.Keys.ToArray, Function(x) x.ToString())
    La vida loca

    Monkeyboy,
    That was quite a bit to read, but still a bit unclear. Could you put a specific list of goals/questions, asked in the smallest possible form?
    It seems like either you're making a program that monitors activity on your computer, or you're writing some kind of remote pc app.
    When you do get your bytes from using lockbits, keep in mind all the files header info would be lost. I think retaining the header info is worth the extra bytes.
    The other, thing: I'm not sure if you're taking 32bpp screen shots, but also keep in mind that the "whole desktop" is the final destination for blended graphics, if that makes sense. What I mean is that there is no need to capture an "alpha"
    channel for a desktop screenshot, as alpha would always be 255, this could save you 1 byte per pixel captured... Theres nothing "behind" the desktop, therefore no alpha, and every window shown above the desktop is already blended. I suggest using
    24Bpp for a full screen capture.
    Your X,Y information for the mouse could be stored as UINT16, this would save you a measly 2 bytes per location update/save.
    When you update your byte arrays, maybe you can turn the array into a stream and write to whatever index, however many bytes, that should prevent a "Shift" of bytes, and instead overwrite any bytes that "get in the way".
    ex
    Dim example As String = "This is an example."
    Dim insertString As String = "was"
    Dim insertBytes As Byte() = System.Text.Encoding.ASCII.GetBytes(insertString)
    Dim bytes As Byte() = System.Text.Encoding.ASCII.GetBytes(example)
    Dim modifiedBytes As Byte() = {}
    Using ms As New System.IO.MemoryStream(bytes)
    ms.Position = 5
    ms.Write(insertBytes, 0, 3)
    modifiedBytes = ms.ToArray
    End Using
    Dim newString As String = System.Text.Encoding.ASCII.GetString(modifiedBytes)
    'Notice how below there isn't the word "is" anymore, and that there isn't a
    'space.
    'This demonstrates that you overwrite existing data, versus shifting everything to
    'the right.
    'Returns: This wasan example.
    MsgBox(newString)
    “If you want something you've never had, you need to do something you've never done.”
    Don't forget to mark
    helpful posts and answers
    ! Answer an interesting question? Write a
    new article
    about it! My Articles
    *This post does not reflect the opinion of Microsoft, or its employees.
    Well it's too much to read. I was really tired when I wrote it. Even the below is too much to read but perhaps gets the point across of what I would like to do which I think
    Joel Engineer may have answered but I'm not sure. As I'm still too tired to understand that yet and research what he said in order to figure it out yet.
    But maybe the code below can provide the concept of the operation with the comments in it. But seeing as how I'm still tired it may be confused.
    Option Strict On
    Imports System.Windows.Forms
    Imports System.IO
    Imports System.IO.Compression
    Imports System.Drawing.Imaging
    Imports System.Runtime.InteropServices
    Public Class Form1
    Dim Bmp1Bytes As New List(Of Byte)
    Dim Bmp1BytesCompressed As New List(Of Byte)
    Dim Bmp2Bytes As New List(Of Byte)
    Dim BmpComparisonDict As New Dictionary(Of Integer, Byte)
    Dim BmpDifferenceIndexesCompressed As New List(Of Byte)
    Dim BmpDifferenceBytesCompressed As New List(Of Byte)
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    SomeSub()
    End Sub
    Private Sub SomeSub()
    ' Pretend this code is in UDP Client app. A screen capture is performed of the desktop. Takes about 90 milliseconds.
    Bmp1Bytes.Clear()
    Using BMP1 As New Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height)
    Using g1 As Graphics = Graphics.FromImage(BMP1)
    g1.CopyFromScreen(0, 0, 0, 0, BMP1.Size)
    Cursor.Draw(g1, New Rectangle(Cursor.Position.X, Cursor.Position.Y, Cursor.Size.Width, Cursor.Size.Height))
    Using MS As New MemoryStream
    BMP1.Save(MS, System.Drawing.Imaging.ImageFormat.Bmp)
    Bmp1Bytes.AddRange(MS.ToArray)
    End Using
    End Using
    End Using
    Bmp1BytesCompressed.AddRange(Compress(Bmp1Bytes.ToArray))
    ' UDP Client app sends Bmp1BytesCompressed.ToArray to UDP Server which is the entire image of the desktop that the UDP
    ' Client is on. This image takes awhile to send since compressed it is about 177000 bytes from over 4000000 bytes.
    ' I will be using different code just to get the bytes from the actual Bitmap in the future. That is not important for now.
    ' Pretend the UDP Server has received the bytes, decompressed the array received into a List(Of Byte) and is displaying
    ' the image of the UDP Clients desktop in a PictureBox.
    ' Now the image on the UDP Clients desktop changes due to the mouse cursor moving as an example. Therefore a new Bitmap
    ' is created from a screen capture. This takes about 90 milliseconds.
    Bmp2Bytes.Clear()
    Using BMP2 As New Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height)
    Using g1 As Graphics = Graphics.FromImage(BMP2)
    g1.CopyFromScreen(0, 0, 0, 0, BMP2.Size)
    Cursor.Draw(g1, New Rectangle(Cursor.Position.X, Cursor.Position.Y, Cursor.Size.Width, Cursor.Size.Height))
    Using MS As New MemoryStream
    BMP2.Save(MS, System.Drawing.Imaging.ImageFormat.Bmp)
    Bmp2Bytes.AddRange(MS.ToArray)
    End Using
    End Using
    End Using
    ' Now I have the original images bytes in Bmp1Bytes and the new images bytes in Bmp2Bytes on the UDP Client. But I don't
    ' want to send all of the bytes in Bmp2Bytes to the UDP Server. Just the indexes of and the bytes that are different in
    ' Bmp2Bytes from Bmp1Bytes.
    ' This takes less than 100 milliseconds for what I've tested so far where over 500000 bytes in Bmp2Bytes are different
    ' than the bytes in Bmp1Bytes. Usually that amount would be much less. But during testing I was displaying the image
    ' from Bmp1 bytes in a PictureBox so a large amount of data would change between the first screen shot, the PictureBox
    ' then displaying an image on the same PC and then the second screen shot.
    BmpComparisonDict.Clear()
    For i = 0 To Bmp1Bytes.Count - 1
    If Bmp1Bytes(i) <> Bmp2Bytes(i) Then
    BmpComparisonDict.Add(i, Bmp2Bytes(i))
    End If
    Next
    ' So now I have all the difference bytes and their indexes from Bmp2Bytes in the BmpComparisonDict. So I compress
    ' the indexes into on List and the Bytes into another List.
    BmpDifferenceIndexesCompressed.Clear()
    BmpDifferenceBytesCompressed.Clear()
    BmpDifferenceIndexesCompressed.AddRange(Compress(BmpComparisonDict.Keys.SelectMany(Function(d) BitConverter.GetBytes(d)).ToArray()))
    BmpDifferenceBytesCompressed.AddRange(Compress(BmpComparisonDict.Values.ToArray))
    ' Now pretend the UDP Client has sent both those arrays to the UDP Server which has added both decompressed arrays
    ' to a Dictionary(Of Integer, Byte). And the server has the original image decompressed bytes received in a List
    ' called Bmp1Bytes also.
    ' This is where I am stuck. The UDP Server has the Dictionary. That part was fast. However there is no
    ' fast method I have found for creating a new List(Of Byte) where bytes in the originally received List(Of Byte) that
    ' do not have to be altered are placed into a new List(Of Byte) except for the indexes listed in the
    ' Dictionary(Of Integer, Byte) that need to be placed into the appropriate index locations of the new List(Of Byte).
    ' The below example for doing so is exceptionally slow. Pretend UpdateDictionary has all of the decompressed indexes
    ' and bytes received by the UDP Server for the update contained within it.
    Dim UpdateDictionary As New Dictionary(Of Integer, Byte)
    Dim UpdatedBytes As New List(Of Byte)
    Dim Counter As Integer = 0
    For i = 0 To Bmp1Bytes.Count - 1
    If i = UpdateDictionary.Keys(Counter) Then ' Provides the index contained in the Keys for the Dictionary
    UpdatedBytes.Add(UpdateDictionary.Values(Counter))
    Counter += 1
    If Counter > UpdateDictionary.Count - 1 Then Counter = 0
    Else
    UpdatedBytes.Add(Bmp1Bytes(i))
    End If
    Next
    ' So what I'm trying to do is find an extremely fast method for performing something similar to what the
    ' above operation performs.
    End Sub
    Private Function Compress(BytesToCompress() As Byte) As List(Of Byte)
    Dim BytesCompressed As New List(Of Byte)
    Using compressedStream = New MemoryStream()
    Using zipStream = New GZipStream(compressedStream, CompressionMode.Compress)
    zipStream.Write(BytesToCompress, 0, BytesToCompress.Count)
    zipStream.Close()
    BytesCompressed.AddRange(compressedStream.ToArray)
    End Using
    End Using
    Return BytesCompressed
    End Function
    Private Function Decompress(BytesToDecompress() As Byte) As List(Of Byte)
    Dim BytesDecompressed As New List(Of Byte)
    Using DecompressedStream = New MemoryStream()
    Using zipStream = New GZipStream(DecompressedStream, CompressionMode.Decompress)
    zipStream.Write(BytesToDecompress, 0, BytesToDecompress.Count)
    zipStream.Close()
    BytesDecompressed.AddRange(DecompressedStream.ToArray)
    End Using
    End Using
    Return BytesDecompressed
    End Function
    End Class
    La vida loca

  • How to make a JTree respond to changes in the Hashtable

    Hi,
    Can anyone give the classes and methods from which I can make the JTree reflect to changes in the Hashtable. Im using the hashtable to construct a JTree but changes in hashtable are not reflected to the JTree.
    I used tree.updateUI(). It works if I insert to a collapsed node. In case a node is expanded and if I add a node to it through the Hashtable it does not reflect.
    Thanking u,
    Karan.

    A JTree will reflect changes made to its model if this model does fire the appropriate events. So, make sure to update the tree's model whenever necessary. See also [How to Use Trees|http://java.sun.com/docs/books/tutorial/uiswing/components/tree.html].

  • How to update a versioned container with changes in the DB

    Hi,
    I've reverse engineered a database schema into a container, and then I versioned it as v1.0.
    Now, that schema has changed in the database, and I'd like to update the container with those changes, and version it as v2.0.
    What is the best way to do it?
    Is it posiible to capture only the changed or new items into the v1.0 container, and then version it as v2.0?
    Thanks

    Check the application in and then check it out
    This will take it to the next level of versioning.
    However the version will be like 1.1 and not 2.0.
    There is a way to make it 2.0 but I do not remember the steps.
    Once you check it out it will be identical to 1.0 but the version will be 1.1 and you can make your changes and the next time it is checked in and out it will be set to 1.2 etc.
    At this point I have to ask if versioning is realy what you want to do. Don't get me wrong Configuration managment is a great thing. However most people do not understand it or how to use it. And they usualy get themselves in trouble with it. So if you know what your doing with it then go for it.
    Hope this helps.
    Also once you version your repositry you cannot go back. You are versioned forever.
    Michael

  • [OIM 11g] How can a pwd changed in the AD be sent to OIM User account?

    Hi Gurus,
    I am working in a PoC. I have AD and AD Pwd Sync connectors, and DBAT connector installed.
    IHAC who expected to see the following behavior regarding user password management:
    1) When user change password in the OIM account, this password should be propagated for all the targets (AD and DB table).
    Ok...I got the behavior.
    2) When user change password in the AD account, this password should be propagated for OIM user account (consequently this password will be propagated for all the target)..
    How can I do to achieve that?
    With AD password sync I am able to just sync the password between Target password and Resource form password.
    Note: AD is not the Trusted Source. The AD only should be trusted source for password.
    I would appreciated any help.
    Best regards.
    Edited by: user12295533 on 01/09/2011 07:05

    Hi Kevin, Thanks for your reply.
    By the AD Pwd Sync documentation (2.3.2 Configuring the IT Resource for the Target System section), I understood that the password changed into target system (AD account) would be changed only in the process form of the resource (ADUser), and it wouldn't be propagated to OIM user account (password attribute).
    When the password is changed on Microsoft Active Directory:
    The updated password is detected by the connector and sent to Oracle Identity Manager.
    On Oracle Identity Manager, the password is compared with the current password of the Active Directory resource. Because both passwords are different, the password of the Microsoft Active resource on Oracle Identity Manager is updated.
    The updated password is detected by the user management connector and sent to Microsoft Active Directory.
    The password of the Microsoft Active Directory is modified, even though this is the same password that was set by the user.
    The password of the account is detected by the password synchronization connector and sent to Oracle Identity Manager.
    On Oracle Identity Manager, the password is compared with the current password of the Active Directory resource. Because both passwords are the same, no further action is taken.
    If password history policy is set on Oracle Identity Manager, then an exception for the SPML request (sent by the password synchronization connector) is encountered. You can ignore this exception.
    Are you informing that the password changed in the AD should be propagated to OIM user account (password field)? Sorry, I am asking because it is not clear for me and I need to be sure of that. Because in this case then I need to check the configuration and try find any error.
    Thanks again Kevin.

  • How ADF BC can cope with unexpected changes to the underlying database

    Hi all,
    i have been experimenting with Fusion Web Applications based on ADF BCs for a few weeks now. The framework is, indeed, very powerful but i wonder if it is flexible too and, in particular, if it is able to smoothly adapt to changes occurring on the underlying database. I have some doubts about that cause, in some circumstances, i found myself in the need of modifying the database structure (removing or adding columns or constraints to tables) and, though i was able to quickly and easily reflect those changes to entity and view objects thanks to ADF synchronization, the consequent adaptation of the existing JSPXs based on the previous definition of the view objects was quite painful: i found very hard to reflect the changes to the JSPXs and, in some cases, i had to rewrite the pages from scratch!
    Since the company i work for is projecting to use ADF for realizing a web application backed by a very large database (which i bet will undergo to numerous changes during the development phase!) i'd like to know if there is something i'm missing here and to ask you some advices on the recommended approaches to develop agile and flexible Fusion Web Applications with ADF BCs.
    Thanks in advance, bye!
    Fabio

    user1113055 wrote:
    ... the consequent adaptation of the existing JSPXs based on the previous definition of the view objects was quite painful: i found very hard to reflect the changes to the JSPXs and, in some cases, i had to rewrite the pages from scratch! You will need to be more specific about the issues that you have encountered. Synchronization and refactoring is supported in JDeveloper for the model, the view and the controller. For what it's worth, take a look at these entry-level posts that could provide some additional inside:
    http://jdeveloperfaq.blogspot.com/2010/02/faq-15-how-to-synchronize-adf-entity.html
    http://jdeveloperfaq.blogspot.com/2010/04/faq-20-how-to-refactor-adf-components.html

  • How do I use Actionmanager code to change just the contents of a line of text?

    The quick question - can anyone provide me with Action Manager code that will simply change the contents of a text field in Photoshop CS6?
    The long version, if anyone wants to know:
    I'm a reasonably experienced Applescripter with hundreds of Illustrator and Photoshop applescripts, but I don't know javascript at all.
    I have a script I'm doing currently that just deletes, changes the visibility, and/or changes the text contents of a whole bunch of layers.
    It's running just fine in Applescript, except it runs slower than molasses. I went to so much work to automate this stuff - the script's 750 lines with all the logic - and users are telling me that they can do this by hand in the time the script runs. It really does take as long as a minute, which just feels painful. It deletes about 25 layers, changes the text contents of up to 5 layers, and changes the visibility of maybe 2 to 24 layers.
    I tested the logic parts and they're near instantaneous. Replacing all of that and just plugging in static dummy values for the variables, and the Photoshop updates yield the same speed. For some reason, just telling Photoshop to do these things - feeding it a list of layers to delete and text to change, just takes it forever. Just a bunch of lines like: delete layer [whatever] of layer [whatever] of layer [whatever] or:
    set the contents of text object of art layer "Name" of layer set "Editable Text" of layer set "Header Elements" to "Some Text:" & someVariableText
    So I've been taking out the Photoshop calls in Applescript, and replacing them with calls to subroutines that replay Action Manager code I got from Scripting Listener and then plugging in the relevant variables.
    So far so good on the deleting layers, that part runs 20x faster now.
    On the text layer part - scripting listener records 1,011 lines of code when I change just the contents of a text field.
    What's recorded has everything about the appearance baked in. With Applescript, I could set the contents of a text field only, leaving the existing formatting, which was really handy. But if I use a call to my scripting listener code here, I'm going to have to save a different 1,000 line subroutine function for every text style of a text field I want to change, and then the script will be horribly non-future-proof.
    Not knowing Javascript, trying to deconstruct the 1,011 line monstrosity Scripting Listener spits out to get to something that just changes the character contents of the text field is not happening. I tried a bit, but it's way over my head.
    Thanks in advance for any help. Scripting listener output pasted below, in case it's helpful. The only line that's relevant to what I'm trying to accomplish - meaning the only line I'll be replacing with my own variable, is line 13:
            desc6.putString( idTxt, """This is the text I entered.\rFor the this text field.""" );
    var idsetd = charIDToTypeID( "setd" );
        var desc5 = new ActionDescriptor();
        var idnull = charIDToTypeID( "null" );
            var ref5 = new ActionReference();
            var idTxLr = charIDToTypeID( "TxLr" );
            var idOrdn = charIDToTypeID( "Ordn" );
            var idTrgt = charIDToTypeID( "Trgt" );
            ref5.putEnumerated( idTxLr, idOrdn, idTrgt );
        desc5.putReference( idnull, ref5 );
        var idT = charIDToTypeID( "T   " );
            var desc6 = new ActionDescriptor();
            var idTxt = charIDToTypeID( "Txt " );
            desc6.putString( idTxt, """This is the text I entered.\rFor the front inks.""" );
            var idwarp = stringIDToTypeID( "warp" );
                var desc7 = new ActionDescriptor();
                var idwarpStyle = stringIDToTypeID( "warpStyle" );
                var idwarpStyle = stringIDToTypeID( "warpStyle" );
                var idwarpNone = stringIDToTypeID( "warpNone" );
                desc7.putEnumerated( idwarpStyle, idwarpStyle, idwarpNone );
                var idwarpValue = stringIDToTypeID( "warpValue" );
                desc7.putDouble( idwarpValue, 0.000000 );
                var idwarpPerspective = stringIDToTypeID( "warpPerspective" );
                desc7.putDouble( idwarpPerspective, 0.000000 );
                var idwarpPerspectiveOther = stringIDToTypeID( "warpPerspectiveOther" );
                desc7.putDouble( idwarpPerspectiveOther, 0.000000 );
                var idwarpRotate = stringIDToTypeID( "warpRotate" );
                var idOrnt = charIDToTypeID( "Ornt" );
                var idHrzn = charIDToTypeID( "Hrzn" );
                desc7.putEnumerated( idwarpRotate, idOrnt, idHrzn );
            var idwarp = stringIDToTypeID( "warp" );
            desc6.putObject( idwarp, idwarp, desc7 );
            var idtextGridding = stringIDToTypeID( "textGridding" );
            var idtextGridding = stringIDToTypeID( "textGridding" );
            var idNone = charIDToTypeID( "None" );
            desc6.putEnumerated( idtextGridding, idtextGridding, idNone );
            var idOrnt = charIDToTypeID( "Ornt" );
            var idOrnt = charIDToTypeID( "Ornt" );
            var idHrzn = charIDToTypeID( "Hrzn" );
            desc6.putEnumerated( idOrnt, idOrnt, idHrzn );
            var idAntA = charIDToTypeID( "AntA" );
            var idAnnt = charIDToTypeID( "Annt" );
            var idAnCr = charIDToTypeID( "AnCr" );
            desc6.putEnumerated( idAntA, idAnnt, idAnCr );
            var idbounds = stringIDToTypeID( "bounds" );
                var desc8 = new ActionDescriptor();
                var idLeft = charIDToTypeID( "Left" );
                var idPnt = charIDToTypeID( "#Pnt" );
                desc8.putUnitDouble( idLeft, idPnt, 0.000000 );
                var idTop = charIDToTypeID( "Top " );
                var idPnt = charIDToTypeID( "#Pnt" );
                desc8.putUnitDouble( idTop, idPnt, -95.852051 );
                var idRght = charIDToTypeID( "Rght" );
                var idPnt = charIDToTypeID( "#Pnt" );
                desc8.putUnitDouble( idRght, idPnt, 1318.981323 );
                var idBtom = charIDToTypeID( "Btom" );
                var idPnt = charIDToTypeID( "#Pnt" );
                desc8.putUnitDouble( idBtom, idPnt, 141.910156 );
            var idbounds = stringIDToTypeID( "bounds" );
            desc6.putObject( idbounds, idbounds, desc8 );
            var idboundingBox = stringIDToTypeID( "boundingBox" );
                var desc9 = new ActionDescriptor();
                var idLeft = charIDToTypeID( "Left" );
                var idPnt = charIDToTypeID( "#Pnt" );
                desc9.putUnitDouble( idLeft, idPnt, 4.000000 );
                var idTop = charIDToTypeID( "Top " );
                var idPnt = charIDToTypeID( "#Pnt" );
                desc9.putUnitDouble( idTop, idPnt, -80.000000 );
                var idRght = charIDToTypeID( "Rght" );
                var idPnt = charIDToTypeID( "#Pnt" );
                desc9.putUnitDouble( idRght, idPnt, 1307.720215 );
                var idBtom = charIDToTypeID( "Btom" );
                var idPnt = charIDToTypeID( "#Pnt" );
                desc9.putUnitDouble( idBtom, idPnt, 119.000000 );
            var idboundingBox = stringIDToTypeID( "boundingBox" );
            desc6.putObject( idboundingBox, idboundingBox, desc9 );
            var idtextShape = stringIDToTypeID( "textShape" );
                var list1 = new ActionList();
                    var desc10 = new ActionDescriptor();
                    var idTEXT = charIDToTypeID( "TEXT" );
                    var idTEXT = charIDToTypeID( "TEXT" );
                    var idPnt = charIDToTypeID( "Pnt " );
                    desc10.putEnumerated( idTEXT, idTEXT, idPnt );
                    var idOrnt = charIDToTypeID( "Ornt" );
                    var idOrnt = charIDToTypeID( "Ornt" );
                    var idHrzn = charIDToTypeID( "Hrzn" );
                    desc10.putEnumerated( idOrnt, idOrnt, idHrzn );
                    var idTrnf = charIDToTypeID( "Trnf" );
                        var desc11 = new ActionDescriptor();
                        var idxx = stringIDToTypeID( "xx" );
                        desc11.putDouble( idxx, 1.000000 );
                        var idxy = stringIDToTypeID( "xy" );
                        desc11.putDouble( idxy, 0.000000 );
                        var idyx = stringIDToTypeID( "yx" );
                        desc11.putDouble( idyx, 0.000000 );
                        var idyy = stringIDToTypeID( "yy" );
                        desc11.putDouble( idyy, 1.000000 );
                        var idtx = stringIDToTypeID( "tx" );
                        desc11.putDouble( idtx, 0.000000 );
                        var idty = stringIDToTypeID( "ty" );
                        desc11.putDouble( idty, 0.000000 );
                    var idTrnf = charIDToTypeID( "Trnf" );
                    desc10.putObject( idTrnf, idTrnf, desc11 );
                    var idrowCount = stringIDToTypeID( "rowCount" );
                    desc10.putInteger( idrowCount, 1 );
                    var idcolumnCount = stringIDToTypeID( "columnCount" );
                    desc10.putInteger( idcolumnCount, 1 );
                    var idrowMajorOrder = stringIDToTypeID( "rowMajorOrder" );
                    desc10.putBoolean( idrowMajorOrder, true );
                    var idrowGutter = stringIDToTypeID( "rowGutter" );
                    var idPnt = charIDToTypeID( "#Pnt" );
                    desc10.putUnitDouble( idrowGutter, idPnt, 0.000000 );
                    var idcolumnGutter = stringIDToTypeID( "columnGutter" );
                    var idPnt = charIDToTypeID( "#Pnt" );
                    desc10.putUnitDouble( idcolumnGutter, idPnt, 0.000000 );
                    var idSpcn = charIDToTypeID( "Spcn" );
                    var idPnt = charIDToTypeID( "#Pnt" );
                    desc10.putUnitDouble( idSpcn, idPnt, 0.000000 );
                    var idframeBaselineAlignment = stringIDToTypeID( "frameBaselineAlignment" );
                    var idframeBaselineAlignment = stringIDToTypeID( "frameBaselineAlignment" );
                    var idalignByAscent = stringIDToTypeID( "alignByAscent" );
                    desc10.putEnumerated( idframeBaselineAlignment, idframeBaselineAlignment, idalignByAscent );
                    var idfirstBaselineMinimum = stringIDToTypeID( "firstBaselineMinimum" );
                    var idPnt = charIDToTypeID( "#Pnt" );
                    desc10.putUnitDouble( idfirstBaselineMinimum, idPnt, 0.000000 );
                    var idbase = stringIDToTypeID( "base" );
                        var desc12 = new ActionDescriptor();
                        var idHrzn = charIDToTypeID( "Hrzn" );
                        desc12.putDouble( idHrzn, 0.000000 );
                        var idVrtc = charIDToTypeID( "Vrtc" );
                        desc12.putDouble( idVrtc, 0.000000 );
                    var idPnt = charIDToTypeID( "Pnt " );
                    desc10.putObject( idbase, idPnt, desc12 );
                var idtextShape = stringIDToTypeID( "textShape" );
                list1.putObject( idtextShape, desc10 );
            desc6.putList( idtextShape, list1 );
            var idTxtt = charIDToTypeID( "Txtt" );
                var list2 = new ActionList();
                    var desc13 = new ActionDescriptor();
                    var idFrom = charIDToTypeID( "From" );
                    desc13.putInteger( idFrom, 0 );
                    var idT = charIDToTypeID( "T   " );
                    desc13.putInteger( idT, 48 );
                    var idTxtS = charIDToTypeID( "TxtS" );
                        var desc14 = new ActionDescriptor();
                        var idstyleSheetHasParent = stringIDToTypeID( "styleSheetHasParent" );
                        desc14.putBoolean( idstyleSheetHasParent, true );
                        var idfontPostScriptName = stringIDToTypeID( "fontPostScriptName" );
                        desc14.putString( idfontPostScriptName, """ProximaNova-Bold""" );
                        var idFntN = charIDToTypeID( "FntN" );
                        desc14.putString( idFntN, """Proxima Nova""" );
                        var idFntS = charIDToTypeID( "FntS" );
                        desc14.putString( idFntS, """Bold""" );
                        var idScrp = charIDToTypeID( "Scrp" );
                        desc14.putInteger( idScrp, 0 );
                        var idFntT = charIDToTypeID( "FntT" );
                        desc14.putInteger( idFntT, 1 );
                        var idSz = charIDToTypeID( "Sz  " );
                        var idPnt = charIDToTypeID( "#Pnt" );
                        desc14.putUnitDouble( idSz, idPnt, 115.000000 );
                        var idHrzS = charIDToTypeID( "HrzS" );
                        desc14.putDouble( idHrzS, 100.000000 );
                        var idVrtS = charIDToTypeID( "VrtS" );
                        desc14.putDouble( idVrtS, 100.000000 );
                        var idsyntheticBold = stringIDToTypeID( "syntheticBold" );
                        desc14.putBoolean( idsyntheticBold, false );
                        var idsyntheticItalic = stringIDToTypeID( "syntheticItalic" );
                        desc14.putBoolean( idsyntheticItalic, false );
                        var idautoLeading = stringIDToTypeID( "autoLeading" );
                        desc14.putBoolean( idautoLeading, false );
                        var idLdng = charIDToTypeID( "Ldng" );
                        var idPnt = charIDToTypeID( "#Pnt" );
                        desc14.putUnitDouble( idLdng, idPnt, 119.000000 );
                        var idTrck = charIDToTypeID( "Trck" );
                        desc14.putInteger( idTrck, 15 );
                        var idBsln = charIDToTypeID( "Bsln" );
                        var idPnt = charIDToTypeID( "#Pnt" );
                        desc14.putUnitDouble( idBsln, idPnt, 0.000000 );
                        var idcharacterRotation = stringIDToTypeID( "characterRotation" );
                        desc14.putDouble( idcharacterRotation, 0.000000 );
                        var idAtKr = charIDToTypeID( "AtKr" );
                        var idAtKr = charIDToTypeID( "AtKr" );
                        var idopticalKern = stringIDToTypeID( "opticalKern" );
                        desc14.putEnumerated( idAtKr, idAtKr, idopticalKern );
                        var idfontCaps = stringIDToTypeID( "fontCaps" );
                        var idfontCaps = stringIDToTypeID( "fontCaps" );
                        var idNrml = charIDToTypeID( "Nrml" );
                        desc14.putEnumerated( idfontCaps, idfontCaps, idNrml );
                        var iddigitSet = stringIDToTypeID( "digitSet" );
                        var iddigitSet = stringIDToTypeID( "digitSet" );
                        var iddefaultDigits = stringIDToTypeID( "defaultDigits" );
                        desc14.putEnumerated( iddigitSet, iddigitSet, iddefaultDigits );
                        var iddirOverride = stringIDToTypeID( "dirOverride" );
                        var iddirOverride = stringIDToTypeID( "dirOverride" );
                        var iddirOverrideDefault = stringIDToTypeID( "dirOverrideDefault" );
                        desc14.putEnumerated( iddirOverride, iddirOverride, iddirOverrideDefault );
                        var idkashidas = stringIDToTypeID( "kashidas" );
                        var idkashidas = stringIDToTypeID( "kashidas" );
                        var idkashidaDefault = stringIDToTypeID( "kashidaDefault" );
                        desc14.putEnumerated( idkashidas, idkashidas, idkashidaDefault );
                        var iddiacVPos = stringIDToTypeID( "diacVPos" );
                        var iddiacVPos = stringIDToTypeID( "diacVPos" );
                        var iddiacVPosOpenType = stringIDToTypeID( "diacVPosOpenType" );
                        desc14.putEnumerated( iddiacVPos, iddiacVPos, iddiacVPosOpenType );
                        var iddiacXOffset = stringIDToTypeID( "diacXOffset" );
                        var idPnt = charIDToTypeID( "#Pnt" );
                        desc14.putUnitDouble( iddiacXOffset, idPnt, 0.000000 );
                        var iddiacYOffset = stringIDToTypeID( "diacYOffset" );
                        var idPnt = charIDToTypeID( "#Pnt" );
                        desc14.putUnitDouble( iddiacYOffset, idPnt, 0.000000 );
                        var idbaseline = stringIDToTypeID( "baseline" );
                        var idbaseline = stringIDToTypeID( "baseline" );
                        var idNrml = charIDToTypeID( "Nrml" );
                        desc14.putEnumerated( idbaseline, idbaseline, idNrml );
                        var idotbaseline = stringIDToTypeID( "otbaseline" );
                        var idotbaseline = stringIDToTypeID( "otbaseline" );
                        var idNrml = charIDToTypeID( "Nrml" );
                        desc14.putEnumerated( idotbaseline, idotbaseline, idNrml );
                        var idstrikethrough = stringIDToTypeID( "strikethrough" );
                        var idstrikethrough = stringIDToTypeID( "strikethrough" );
                        var idstrikethroughOff = stringIDToTypeID( "strikethroughOff" );
                        desc14.putEnumerated( idstrikethrough, idstrikethrough, idstrikethroughOff );
                        var idUndl = charIDToTypeID( "Undl" );
                        var idUndl = charIDToTypeID( "Undl" );
                        var idunderlineOff = stringIDToTypeID( "underlineOff" );
                        desc14.putEnumerated( idUndl, idUndl, idunderlineOff );
                        var idunderlineOffset = stringIDToTypeID( "underlineOffset" );
                        var idPnt = charIDToTypeID( "#Pnt" );
                        desc14.putUnitDouble( idunderlineOffset, idPnt, 0.000000 );
                        var idligature = stringIDToTypeID( "ligature" );
                        desc14.putBoolean( idligature, true );
                        var idaltligature = stringIDToTypeID( "altligature" );
                        desc14.putBoolean( idaltligature, false );
                        var idcontextualLigatures = stringIDToTypeID( "contextualLigatures" );
                        desc14.putBoolean( idcontextualLigatures, true );
                        var idalternateLigatures = stringIDToTypeID( "alternateLigatures" );
                        desc14.putBoolean( idalternateLigatures, false );
                        var idoldStyle = stringIDToTypeID( "oldStyle" );
                        desc14.putBoolean( idoldStyle, false );
                        var idfractions = stringIDToTypeID( "fractions" );
                        desc14.putBoolean( idfractions, false );
                        var idordinals = stringIDToTypeID( "ordinals" );
                        desc14.putBoolean( idordinals, false );
                        var idswash = stringIDToTypeID( "swash" );
                        desc14.putBoolean( idswash, false );
                        var idtitling = stringIDToTypeID( "titling" );
                        desc14.putBoolean( idtitling, false );
                        var idconnectionForms = stringIDToTypeID( "connectionForms" );
                        desc14.putBoolean( idconnectionForms, true );
                        var idstylisticAlternates = stringIDToTypeID( "stylisticAlternates" );
                        desc14.putBoolean( idstylisticAlternates, false );
                        var idornaments = stringIDToTypeID( "ornaments" );
                        desc14.putBoolean( idornaments, false );
                        var idjustificationAlternates = stringIDToTypeID( "justificationAlternates" );
                        desc14.putBoolean( idjustificationAlternates, false );
                        var idfigureStyle = stringIDToTypeID( "figureStyle" );
                        var idfigureStyle = stringIDToTypeID( "figureStyle" );
                        var idNrml = charIDToTypeID( "Nrml" );
                        desc14.putEnumerated( idfigureStyle, idfigureStyle, idNrml );
                        var idproportionalMetrics = stringIDToTypeID( "proportionalMetrics" );
                        desc14.putBoolean( idproportionalMetrics, false );
                        var idkana = stringIDToTypeID( "kana" );
                        desc14.putBoolean( idkana, false );
                        var iditalics = stringIDToTypeID( "italics" );
                        desc14.putBoolean( iditalics, false );
                        var idruby = stringIDToTypeID( "ruby" );
                        desc14.putBoolean( idruby, false );
                        var idbaselineDirection = stringIDToTypeID( "baselineDirection" );
                        var idbaselineDirection = stringIDToTypeID( "baselineDirection" );
                        var idwithStream = stringIDToTypeID( "withStream" );
                        desc14.putEnumerated( idbaselineDirection, idbaselineDirection, idwithStream );
                        var idtextLanguage = stringIDToTypeID( "textLanguage" );
                        var idtextLanguage = stringIDToTypeID( "textLanguage" );
                        var idenglishLanguage = stringIDToTypeID( "englishLanguage" );
                        desc14.putEnumerated( idtextLanguage, idtextLanguage, idenglishLanguage );
                        var idjapaneseAlternate = stringIDToTypeID( "japaneseAlternate" );
                        var idjapaneseAlternate = stringIDToTypeID( "japaneseAlternate" );
                        var iddefaultForm = stringIDToTypeID( "defaultForm" );
                        desc14.putEnumerated( idjapaneseAlternate, idjapaneseAlternate, iddefaultForm );
                        var idmojiZume = stringIDToTypeID( "mojiZume" );
                        desc14.putDouble( idmojiZume, 0.000000 );
                        var idgridAlignment = stringIDToTypeID( "gridAlignment" );
                        var idgridAlignment = stringIDToTypeID( "gridAlignment" );
                        var idroman = stringIDToTypeID( "roman" );
                        desc14.putEnumerated( idgridAlignment, idgridAlignment, idroman );
                        var idenableWariChu = stringIDToTypeID( "enableWariChu" );
                        desc14.putBoolean( idenableWariChu, false );
                        var idwariChuCount = stringIDToTypeID( "wariChuCount" );
                        desc14.putInteger( idwariChuCount, 2 );
                        var idwariChuLineGap = stringIDToTypeID( "wariChuLineGap" );
                        desc14.putInteger( idwariChuLineGap, 0 );
                        var idwariChuScale = stringIDToTypeID( "wariChuScale" );
                        desc14.putDouble( idwariChuScale, 0.500000 );
                        var idwariChuWidow = stringIDToTypeID( "wariChuWidow" );
                        desc14.putInteger( idwariChuWidow, 2 );
                        var idwariChuOrphan = stringIDToTypeID( "wariChuOrphan" );
                        desc14.putInteger( idwariChuOrphan, 2 );
                        var idwariChuJustification = stringIDToTypeID( "wariChuJustification" );
                        var idwariChuJustification = stringIDToTypeID( "wariChuJustification" );
                        var idwariChuAutoJustify = stringIDToTypeID( "wariChuAutoJustify" );
                        desc14.putEnumerated( idwariChuJustification, idwariChuJustification, idwariChuAutoJustify );
                        var idtcyUpDown = stringIDToTypeID( "tcyUpDown" );
                        desc14.putInteger( idtcyUpDown, 0 );
                        var idtcyLeftRight = stringIDToTypeID( "tcyLeftRight" );
                        desc14.putInteger( idtcyLeftRight, 0 );
                        var idleftAki = stringIDToTypeID( "leftAki" );
                        desc14.putDouble( idleftAki, -1.000000 );
                        var idrightAki = stringIDToTypeID( "rightAki" );
                        desc14.putDouble( idrightAki, -1.000000 );
                        var idjiDori = stringIDToTypeID( "jiDori" );
                        desc14.putInteger( idjiDori, 0 );
                        var idnoBreak = stringIDToTypeID( "noBreak" );
                        desc14.putBoolean( idnoBreak, false );
                        var idClr = charIDToTypeID( "Clr " );
                            var desc15 = new ActionDescriptor();
                            var idRd = charIDToTypeID( "Rd  " );
                            desc15.putDouble( idRd, 30.217500 );
                            var idGrn = charIDToTypeID( "Grn " );
                            desc15.putDouble( idGrn, 76.104756 );
                            var idBl = charIDToTypeID( "Bl  " );
                            desc15.putDouble( idBl, 114.999902 );
                        var idRGBC = charIDToTypeID( "RGBC" );
                        desc14.putObject( idClr, idRGBC, desc15 );
                        var idstrokeColor = stringIDToTypeID( "strokeColor" );
                            var desc16 = new ActionDescriptor();
                            var idRd = charIDToTypeID( "Rd  " );
                            desc16.putDouble( idRd, 30.217500 );
                            var idGrn = charIDToTypeID( "Grn " );
                            desc16.putDouble( idGrn, 76.104756 );
                            var idBl = charIDToTypeID( "Bl  " );
                            desc16.putDouble( idBl, 114.999902 );
                        var idRGBC = charIDToTypeID( "RGBC" );
                        desc14.putObject( idstrokeColor, idRGBC, desc16 );
                        var idFl = charIDToTypeID( "Fl  " );
                        desc14.putBoolean( idFl, true );
                        var idStrk = charIDToTypeID( "Strk" );
                        desc14.putBoolean( idStrk, false );
                        var idfillFirst = stringIDToTypeID( "fillFirst" );
                        desc14.putBoolean( idfillFirst, false );
                        var idfillOverPrint = stringIDToTypeID( "fillOverPrint" );
                        desc14.putBoolean( idfillOverPrint, false );
                        var idstrokeOverPrint = stringIDToTypeID( "strokeOverPrint" );
                        desc14.putBoolean( idstrokeOverPrint, false );
                        var idlineCap = stringIDToTypeID( "lineCap" );
                        var idlineCap = stringIDToTypeID( "lineCap" );
                        var idbuttCap = stringIDToTypeID( "buttCap" );
                        desc14.putEnumerated( idlineCap, idlineCap, idbuttCap );
                        var idlineJoin = stringIDToTypeID( "lineJoin" );
                        var idlineJoin = stringIDToTypeID( "lineJoin" );
                        var idmiterJoin = stringIDToTypeID( "miterJoin" );
                        desc14.putEnumerated( idlineJoin, idlineJoin, idmiterJoin );
                        var idlineWidth = stringIDToTypeID( "lineWidth" );
                        var idPnt = charIDToTypeID( "#Pnt" );
                        desc14.putUnitDouble( idlineWidth, idPnt, 1.050280 );
                        var idmiterLimit = stringIDToTypeID( "miterLimit" );
                        var idPnt = charIDToTypeID( "#Pnt" );
                        desc14.putUnitDouble( idmiterLimit, idPnt, 1.050280 );
                        var idlineDashoffset = stringIDToTypeID( "lineDashoffset" );
                        desc14.putDouble( idlineDashoffset, 0.000000 );
                    var idTxtS = charIDToTypeID( "TxtS" );
                    desc13.putObject( idTxtS, idTxtS, desc14 );
                var idTxtt = charIDToTypeID( "Txtt" );
                list2.putObject( idTxtt, desc13 );
            desc6.putList( idTxtt, list2 );
            var idparagraphStyleRange = stringIDToTypeID( "paragraphStyleRange" );
                var list3 = new ActionList();
                    var desc17 = new ActionDescriptor();
                    var idFrom = charIDToTypeID( "From" );
                    desc17.putInteger( idFrom, 0 );
                    var idT = charIDToTypeID( "T   " );
                    desc17.putInteger( idT, 28 );
                    var idparagraphStyle = stringIDToTypeID( "paragraphStyle" );
                        var desc18 = new ActionDescriptor();
                        var idstyleSheetHasParent = stringIDToTypeID( "styleSheetHasParent" );
                        desc18.putBoolean( idstyleSheetHasParent, true );
                        var idAlgn = charIDToTypeID( "Algn" );
                        var idAlg = charIDToTypeID( "Alg " );
                        var idLeft = charIDToTypeID( "Left" );
                        desc18.putEnumerated( idAlgn, idAlg, idLeft );
                        var idfirstLineIndent = stringIDToTypeID( "firstLineIndent" );
                        var idPnt = charIDToTypeID( "#Pnt" );
                        desc18.putUnitDouble( idfirstLineIndent, idPnt, 0.000000 );
                        var idstartIndent = stringIDToTypeID( "startIndent" );
                        var idPnt = charIDToTypeID( "#Pnt" );
                        desc18.putUnitDouble( idstartIndent, idPnt, 0.000000 );
                        var idendIndent = stringIDToTypeID( "endIndent" );
                        var idPnt = charIDToTypeID( "#Pnt" );
                        desc18.putUnitDouble( idendIndent, idPnt, 0.000000 );
                        var idspaceBefore = stringIDToTypeID( "spaceBefore" );
                        var idPnt = charIDToTypeID( "#Pnt" );
                        desc18.putUnitDouble( idspaceBefore, idPnt, 0.000000 );
                        var idspaceAfter = stringIDToTypeID( "spaceAfter" );
                        var idPnt = charIDToTypeID( "#Pnt" );
                        desc18.putUnitDouble( idspaceAfter, idPnt, 0.000000 );
                        var iddropCapMultiplier = stringIDToTypeID( "dropCapMultiplier" );
                        desc18.putInteger( iddropCapMultiplier, 1 );
                        var idautoLeadingPercentage = stringIDToTypeID( "autoLeadingPercentage" );
                        desc18.putDouble( idautoLeadingPercentage, 1.200000 );
                        var idleadingType = stringIDToTypeID( "leadingType" );
                        var idleadingType = stringIDToTypeID( "leadingType" );
                        var idleadingBelow = stringIDToTypeID( "leadingBelow" );
                        desc18.putEnumerated( idleadingType, idleadingType, idleadingBelow );
                        var iddirectionType = stringIDToTypeID( "directionType" );
                        var iddirectionType = stringIDToTypeID( "directionType" );
                        var iddirLeftToRight = stringIDToTypeID( "dirLeftToRight" );
                        desc18.putEnumerated( iddirectionType, iddirectionType, iddirLeftToRight );
                        var idjustificationMethodType = stringIDToTypeID( "justificationMethodType" );
                        var idjustificationMethodType = stringIDToTypeID( "justificationMethodType" );
                        var idjustifMethodDefault = stringIDToTypeID( "justifMethodDefault" );
                        desc18.putEnumerated( idjustificationMethodType, idjustificationMethodType, idjustifMethodDefault );
                        var idhyphenate = stringIDToTypeID( "hyphenate" );
                        desc18.putBoolean( idhyphenate, false );
                        var idhyphenateWordSize = stringIDToTypeID( "hyphenateWordSize" );
                        desc18.putInteger( idhyphenateWordSize, 6 );
                        var idhyphenatePreLength = stringIDToTypeID( "hyphenatePreLength" );
                        desc18.putInteger( idhyphenatePreLength, 2 );
                        var idhyphenatePostLength = stringIDToTypeID( "hyphenatePostLength" );
                        desc18.putInteger( idhyphenatePostLength, 2 );
                        var idhyphenateLimit = stringIDToTypeID( "hyphenateLimit" );
                        desc18.putInteger( idhyphenateLimit, 0 );
                        var idhyphenationZone = stringIDToTypeID( "hyphenationZone" );
                        desc18.putDouble( idhyphenationZone, 36.000000 );
                        var idhyphenateCapitalized = stringIDToTypeID( "hyphenateCapitalized" );
                        desc18.putBoolean( idhyphenateCapitalized, true );
                        var idhyphenationPreference = stringIDToTypeID( "hyphenationPreference" );
                        desc18.putDouble( idhyphenationPreference, 0.500000 );
                        var idjustificationWordMinimum = stringIDToTypeID( "justificationWordMinimum" );
                        desc18.putDouble( idjustificationWordMinimum, 0.800000 );
                        var idjustificationWordDesired = stringIDToTypeID( "justificationWordDesired" );
                        desc18.putDouble( idjustificationWordDesired, 1.000000 );
                        var idjustificationWordMaximum = stringIDToTypeID( "justificationWordMaximum" );
                        desc18.putDouble( idjustificationWordMaximum, 1.330000 );
                        var idjustificationLetterMinimum = stringIDToTypeID( "justificationLetterMinimum" );
                        desc18.putDouble( idjustificationLetterMinimum, 0.000000 );
                        var idjustificationLetterDesired = stringIDToTypeID( "justificationLetterDesired" );
                        desc18.putDouble( idjustificationLetterDesired, 0.000000 );
                        var idjustificationLetterMaximum = stringIDToTypeID( "justificationLetterMaximum" );
                        desc18.putDouble( idjustificationLetterMaximum, 0.000000 );
                        var idjustificationGlyphMinimum = stringIDToTypeID( "justificationGlyphMinimum" );
                        desc18.putDouble( idjustificationGlyphMinimum, 1.000000 );
                        var idjustificationGlyphDesired = stringIDToTypeID( "justificationGlyphDesired" );
                        desc18.putDouble( idjustificationGlyphDesired, 1.000000 );
                        var idjustificationGlyphMaximum = stringIDToTypeID( "justificationGlyphMaximum" );
                        desc18.putDouble( idjustificationGlyphMaximum, 1.000000 );
                        var idsingleWordJustification = stringIDToTypeID( "singleWordJustification" );
                        var idAlg = charIDToTypeID( "Alg " );
                        var idJstA = charIDToTypeID( "JstA" );
                        desc18.putEnumerated( idsingleWordJustification, idAlg, idJstA );
                        var idhangingRoman = stringIDToTypeID( "hangingRoman" );
                        desc18.putBoolean( idhangingRoman, false );
                        var idautoTCY = stringIDToTypeID( "autoTCY" );
                        desc18.putInteger( idautoTCY, 1 );
                        var idkeepTogether = stringIDToTypeID( "keepTogether" );
                        desc18.putBoolean( idkeepTogether, true );
                        var idburasagari = stringIDToTypeID( "burasagari" );
                        var idburasagari = stringIDToTypeID( "burasagari" );
                        var idburasagariNone = stringIDToTypeID( "burasagariNone" );
                        desc18.putEnumerated( idburasagari, idburasagari, idburasagariNone );
                        var idpreferredKinsokuOrder = stringIDToTypeID( "preferredKinsokuOrder" );
                        var idpreferredKinsokuOrder = stringIDToTypeID( "preferredKinsokuOrder" );
                        var idpushIn = stringIDToTypeID( "pushIn" );
                        desc18.putEnumerated( idpreferredKinsokuOrder, idpreferredKinsokuOrder, idpushIn );
                        var idkurikaeshiMojiShori = stringIDToTypeID( "kurikaeshiMojiShori" );
                        desc18.putBoolean( idkurikaeshiMojiShori, false );
                        var idtextEveryLineComposer = stringIDToTypeID( "textEveryLineComposer" );
                        desc18.putBoolean( idtextEveryLineComposer, false );
                        var idtextComposerEngine = stringIDToTypeID( "textComposerEngine" );
                        var idtextComposerEngine = stringIDToTypeID( "textComposerEngine" );
                        var idtextLatinCJKComposer = stringIDToTypeID( "textLatinCJKComposer" );
                        desc18.putEnumerated( idtextComposerEngine, idtextComposerEngine, idtextLatinCJKComposer );
                        var iddefaultTabWidth = stringIDToTypeID( "defaultTabWidth" );
                        desc18.putDouble( iddefaultTabWidth, 36.000000 );
                        var iddefaultStyle = stringIDToTypeID( "defaultStyle" );
                            var desc19 = new ActionDescriptor();
                            var idfontPostScriptName = stringIDToTypeID( "fontPostScriptName" );
                            desc19.putString( idfontPostScriptName, """MyriadPro-Regular""" );
                            var idFntN = charIDToTypeID( "FntN" );
                            desc19.putString( idFntN, """Myriad Pro""" );
                            var idFntS = charIDToTypeID( "FntS" );
                            desc19.putString( idFntS, """Regular""" );
                            var idScrp = charIDToTypeID( "Scrp" );
                            desc19.putInteger( idScrp, 0 );
                            var idFntT = charIDToTypeID( "FntT" );
                            desc19.putInteger( idFntT, 0 );
                            var idSz = charIDToTypeID( "Sz  " );
                            var idPnt = charIDToTypeID( "#Pnt" );
                            desc19.putUnitDouble( idSz, idPnt, 48.000000 );
                            var idHrzS = charIDToTypeID( "HrzS" );
                            desc19.putDouble( idHrzS, 100.000000 );
                            var idVrtS = charIDToTypeID( "VrtS" );
                            desc19.putDouble( idVrtS, 100.000000 );
                            var idsyntheticBold = stringIDToTypeID( "syntheticBold" );
                            desc19.putBoolean( idsyntheticBold, false );
                            var idsyntheticItalic = stringIDToTypeID( "syntheticItalic" );
                            desc19.putBoolean( idsyntheticItalic, false );
                            var idautoLeading = stringIDToTypeID( "autoLeading" );
                            desc19.putBoolean( idautoLeading, true );
                            var idTrck = charIDToTypeID( "Trck" );
                            desc19.putInteger( idTrck, 0 );
                            var idBsln = charIDToTypeID( "Bsln" );
                            var idPnt = charIDToTypeID( "#Pnt" );
                            desc19.putUnitDouble( idBsln, idPnt, 0.000000 );
                            var idcharacterRotation = stringIDToTypeID( "characterRotation" );
                            desc19.putDouble( idcharacterRotation, 0.000000 );
                            var idAtKr = charIDToTypeID( "AtKr" );
                            var idAtKr = charIDToTypeID( "AtKr" );
                            var idmetricsKern = stringIDToTypeID( "metricsKern" );
                            desc19.putEnumerated( idAtKr, idAtKr, idmetricsKern );
                            var idfontCaps = stringIDToTypeID( "fontCaps" );
                            var idfontCaps = stringIDToTypeID( "fontCaps" );
                            var idNrml = charIDToTypeID( "Nrml" );
                            desc19.putEnumerated( idfontCaps, idfontCaps, idNrml );
                            var iddigitSet = stringIDToTypeID( "digitSet" );
                            var iddigitSet = stringIDToTypeID( "digitSet" );
                            var iddefaultDigits = stringIDToTypeID( "defaultDigits" );
                            desc19.putEnumerated( iddigitSet, iddigitSet, iddefaultDigits );
                            var iddirOverride = stringIDToTypeID( "dirOverride" );
                            var iddirOverride = stringIDToTypeID( "dirOverride" );
                            var iddirOverrideDefault = stringIDToTypeID( "dirOverrideDefault" );
                            desc19.putEnumerated( iddirOverride, iddirOverride, iddirOverrideDefault );
                            var idkashidas = stringIDToTypeID( "kashidas" );
                            var idkashidas = stringIDToTypeID( "kashidas" );
                            var idkashidaDefault = stringIDToTypeID( "kashidaDefault" );
                            desc19.putEnumerated( idkashidas, idkashidas, idkashidaDefault );
                            var iddiacVPos = stringIDToTypeID( "diacVPos" );
                            var iddiacVPos = stringIDToTypeID( "diacVPos" );
                            var iddiacVPosOpenType = stringIDToTypeID( "diacVPosOpenType" );
                            desc19.putEnumerated( iddiacVPos, iddiacVPos, iddiacVPosOpenType );
                            var iddiacXOffset = stringIDToTypeID( "diacXOffset" );
                            var idPnt = charIDToTypeID( "#Pnt" );
                            desc19.putUnitDouble( iddiacXOffset, idPnt, 0.000000 );
                            var iddiacYOffset = stringIDToTypeID( "diacYOffset" );
                            var idPnt = charIDToTypeID( "#Pnt" );
                            desc19.putUnitDouble( iddiacYOffset, idPnt, 0.000000 );
                            var idbaseline = stringIDToTypeID( "baseline" );
                            var idbaseline = stringIDToTypeID( "baseline" );
                            var idNrml = charIDToTypeID( "Nrml" );
                            desc19.putEnumerated( idbaseline, idbaseline, idNrml );
                            var idotbaseline = stringIDToTypeID( "otbaseline" );
                            var idotbaseline = stringIDToTypeID( "otbaseline" );
                            var idNrml = charIDToTypeID( "Nrml" );
                            desc19.putEnumerated( idotbaseline, idotbaseline, idNrml );
                            var idstrikethrough = stringIDToTypeID( "strikethrough" );
                            var idstrikethrough = stringIDToTypeID( "strikethrough" );
                            var idstrikethroughOff = stringIDToTypeID( "strikethroughOff" );
                            desc19.putEnumerated( idstrikethrough, idstrikethrough, idstrikethroughOff );
                            var idUndl = charIDToTypeID( "Undl" );
                            var idUndl = charIDToTypeID( "Undl" );
                            var idunderlineOff = stringIDToTypeID( "underlineOff" );
                            desc19.putEnumerated( idUndl, idUndl, idunderlineOff );
                            var idunderlineOffset = stringIDToTypeID( "underlineOffset" );
                            var idPnt = charIDToTypeID( "#Pnt" );
                            desc19.putUnitDouble( idunderlineOffset, idPnt, 0.000000 );
                            var idligature = stringIDToTypeID( "ligature" );
                            desc19.putBoolean( idligature, true );
                            var idaltligature = stringIDToTypeID( "altligature" );
                            desc19.putBoolean( idaltligature, false );
                            var idcontextualLigatures = stringIDToTypeID( "contextualLigatures" );
                            desc19.putBoolean( idcontextualLigatures, false );
                            var idalternateLigatures = stringIDToTypeID( "alternateLigatures" );
                            desc19.putBoolean( idalternateLigatures, false );
                            var idoldStyle = stringIDToTypeID( "oldStyle" );
                            desc19.putBoolean( idoldStyle, false );
                            var idfractions = stringIDToTypeID( "fractions" );
                            desc19.putBoolean( idfractions, false );
                            var idordinals = stringIDToTypeID( "ordinals" );
                            desc19.putBoolean( idordinals, false );
                            var idswash = stringIDToTypeID( "swash" );
                            desc19.putBoolean( idswash, false );
                            var idtitling = stringIDToTypeID( "titling" );
                            desc19.putBoolean( idtitling, false );
                            var idconnectionForms = stringIDToTypeID( "connectionForms" );
                            desc19.putBoolean( idconnectionForms, false );
                            var idstylisticAlternates = stringIDToTypeID( "stylisticAlternates" );
                            desc19.putBoolean( idstylisticAlternates, false );
                            var idornaments = stringIDToTypeID( "ornaments" );
                            desc19.putBoolean( idornaments, false );
                            var idjustificationAlternates = stringIDToTypeID( "justificationAlternates" );
                            desc19.putBoolean( idjustificationAlternates, false );
                            var idfigureStyle = stringIDToTypeID( "figureStyle" );
                            var idfigureStyle = stringIDToTypeID( "figureStyle" );
                            var idNrml = charIDToTypeID( "Nrml" );
                            desc19.putEnumerated( idfigureStyle, idfigureStyle, idNrml );
                            var idproportionalMetrics = stringIDToTypeID( "proportionalMetrics" );
                            desc19.putBoolean( idproportionalMetrics, false );
                            var idkana = stringIDToTypeID( "kana" );
                            desc19.putBoolean( idkana, false );
                            var iditalics = stringIDToTypeID( "italics" );
                            desc19.putBoolean( iditalics, false );
                            var idruby = stringIDToTypeID( "ruby" );
                            desc19.putBoolean( idruby, false );
                            var idbaselineDirection = stringIDToTypeID( "baselineDirection" );
                            var idbaselineDirection = stringIDToTypeID( "baselineDirection" );
                            var idrotated = stringIDToTypeID( "rotated" );
                            desc19.putEnumerated( idbaselineDirection, idbaselineDirection, idrotated );
                            var idtextLanguage = stringIDToTypeID( "textLanguage" );
                            var idtextLanguage = stringIDToTypeID( "textLanguage" );
                            var idenglishLanguage = stringIDToTypeID( "englishLanguage" );
                            desc19.putEnumerated( idtextLanguage, idtextLanguage, idenglishLanguage );
                            var idmojiZume = stringIDToTypeID( "mojiZume" );
                            desc19.putDouble( idmojiZume, 0.000000 );
                            var idgridAlignment = stringIDToTypeID( "gridAlignment" );
                            var idgridAlignment = stringIDToTypeID( "gridAlignment" );
                            var idroman = stringIDToTypeID( "roman" );
                            desc19.putEnumerated( idgridAlignment, idgridAlignment, idroman );
                            var idenableWariChu = stringIDToTypeID( "enableWariChu" );
                            desc19.putBoolean( idenableWariChu, false );
                            var idwariChuCount = stringIDToTypeID( "wariChuCount" );
                            desc19.putInteger( idwariChuCount, 2 );
                            var idwariChuLineGap = stringIDToTypeID( "wariChuLineGap" );
                            desc19.putInteger( idwariChuLineGap, 0 );
                            var idwariChuScale = stringIDToTypeID( "wariChuScale" );
                            desc19.putDouble( idwariChuScale, 0.500000 );
                            var idwariChuWidow = stringIDToTypeID( "wariChuWidow" );
                            desc19.putInteger( idwariChuWidow, 2 );
                            var idwariChuOrphan = stringIDToTypeID( "wariChuOrphan" );
                            desc19.putInteger( idwariChuOrphan, 2 );
                            var idwariChuJustification = stringIDToTypeID( "wariChuJustification" );
                            var idwariChuJustification = stringIDToTypeID( "wariChuJustification" );
                            var idwariChuAutoJustify = stringIDToTypeID( "wariChuAutoJustify" );
                            desc19.putEnumerated( idwariChuJustification, idwariChuJustification, idwariChuAutoJustify );
                            var idtcyUpDown = stringIDToTypeID( "tcyUpDown" );
                            desc19.putInteger( idtcyUpDown, 0 );
                            var idtcyLeftRight = stringIDToTypeID( "tcyLeftRight" );
                            desc19.putInteger( idtcyLeftRight, 0 );
                            var idleftAki = stringIDToTypeID( "leftAki" );
                            desc19.putDouble( idleftAki, -1.000000 );
                            var idrightAki = stringIDToTypeID( "rightAki" );
                            desc19.putDouble( idrightAki, -1.000000 );
                            var idjiDori = stringIDToTypeID( "jiDori" );
                            desc19.putInteger( idjiDori, 0 );
                            var idnoBreak = stringIDToTypeID( "noBreak" );
                            desc19.putBoolean( idnoBreak, false );
                            var idClr = charIDToTypeID( "Clr " );
                                var desc20 = new ActionDescriptor();
                                var idRd = charIDToTypeID( "Rd  " );
                                desc20.putDouble( idRd, 0.000000 );
                                var idGrn = charIDToTypeID( "Grn " );
                                desc20.putDouble( idGrn, 0.000000 );
                                var idBl = charIDToTypeID( "Bl  " );
                                desc20.putDouble( idBl, 0.000000 );
                            var idRGBC = charIDToTypeID( "RGBC" );
                            desc19.putObject( idClr, idRGBC, desc20 );
                            var idstrokeColor = stringIDToTypeID( "strokeColor" );
                                var desc21 = new ActionDescriptor();
                              

    That is awesome, works perfectly.
    I'll get it worked into my main script. Is this Action Manager code, and not just regular Javascript from the Scripting Dictionary? I can't tell the difference. I'll see whether or not it's actually faster than Applescript.
    Thanks. I know Scripting Listener records a bunch of stuff, but it's pretty amazing to me that playing back this line does the same thing that playing back the 1,011 lines Scripting Listener puts out.
    Thanks.

  • How to change the values of variant dynamically

    hi
    I am working on building a wrapper program which sets the background job for another transaction CFM1.
    I have a small problem, the variant attributes for a particular field MATNR has been manually changed such that it picks up values from TVARVC. The variable name in TVARVC is MATERIAL.
    If I want to programatically set the selection variable as 'T' and variable name as MATERIAL which table do I need to change.
    please let me know <b><REMOVED BY MODERATOR></b>
    Message was edited by:
            Alvaro Tejada Galindo

    Hi,
    If your problem is not solved try this.
    For the particular variant.
    Select the variable 'T' and the field , u call it, MATERIAL. In the code fill the value of this paritcular MATERIAL variable in the TVARVC table i.e the LOW field in the table.
    Now pass the variant along with the program which u want to run in the background.
    Hope this helps.
    If you have tried any other way let me know.
    Regards,
    Anand Patil

  • How do we use SPAU to make changes to the programs

    Could anyone please let me know the process of making the changes to the standard programs using SPAU transaction in detail.
    Moderator message: please search for available information/documentation.
    Edited by: Thomas Zloch on Aug 9, 2011 3:29 PM

    Thanks Gary,
    I know that. What I meant was that in the older version of Keynote I could pinch and zoom on photos but now that function is limited only to slide size.
    Even with pressing "command" or "alt" or "shift" I am unable to resize the photo any more thru gestures on my trackpad. Pain in the butt to click and resize, especially after being so used to be able to pinch and zoom and rotate with two fingers using the trackpad.
    Thanks for trying to help
    Ronnie

  • How do I set the value of a dynamic row text field

    I have a repeated row form which contains a button and multiple text fields.  There is a text field (Input Data Field) further up with some information I want to place in the table and multiple buttons that I want to read the value of and set to the table.  I apologize there are multiple questions I have and I am using pseudocode to describe it.
    Top form looks like
    InputField
    | ButtonX1 | ButtonY1 | DescriptionX1 (read only Text Field)
    | ButtonXn | ButtonY1 | DescriptionXn
    OutputRow looks like
    | ButtonOutput | OutputField1 | OutputField2 | OutputField3 |
    So I would like it to do
    ButtonX1.click
    OutputTable.OutputRow.addInstance(true)  //this works - everything else I have questions on
    OutputTable.OutputRow.OutputField1.rawValue = DescriptionX1.rawValue
    Question 1
    How do I address the location in each table to set a value
    Question 2
    How do I get the value of the description field in the same table and row as the button
    I would like to say something to the effect of  OutputTable.OutputRow[??].OutputField1.rawValue = this.parent.DescriptionX
    OutputTable.OutputRow.OutputField2 = InputField.rawValue
      Same question as above - how do I specify a dynamic row - is this the proper syntax for getting the value from the input field?
    OutputTable.OutputRow.OutputField3 = this.ButtonLabel
    Question 3
      How can I get the value of the button's label to set in the field
      There should be very many of these buttons and buttons will be added - I would prefer to set the value based on the button's label to make the value easier - not requiring changing the code
    Question 4 - unrelated to those above.
    Is it possible to build the first table
    | ButtonX | ButtonY | Description |
    from an XML File.  I have seen examples of how to build if it is just data, but can the XML be pushed into a form with code to do the above actions?

    Each object in a form must have a unique name. I doing so it is not neccessarily the name but the path or SomExpression associated with that object that must be unique. In your case you have a Table.Row.object configuration. The Row is the part that is repeating so to give each object a unique name an instance number is placed on the repeating part. So objects in the 1st row woudl be Table.Row[0].object...objects in the second row woudl be Table.Row[1].object etc .....You can see this by adding a debug instruction on the Enter event of the description field. Put the code app.alert(this.somExpression) and when you enter the field you will see what the somExpression is. Do this for a few rows and you will see the pattern (don't forget to remove the debug code from the enter event). Now you know what you have to use to address the fields. If no instance is given it is assumed to be 0 ..that is why only the 1st row is being affected.
    So now to answer your questions:
    Question1: The square bracket notation is an issue for javascript (this is the notation for an array) so we have to use a different means of addressing the field to include the instance number. So to address the Description in the 3rd row we woudl use:
    xfa.resolveNode("Table.Row[2].Description").rawValue = "This is my new description";
    Note that the instance number is 2 for the 3rd row because the instance numbers are 0 based.
    Question2. The resolveNode notation allows you to pass a string so you can also concatinate expressions to make the string. If you are writing code on a button in the same row you can get the instance that you are on by using the expression this.parent.index. The "this" portion refers to the current object (the button) and the parent.index gets you th eindex of the Buttons parent. If the button is embedded deeper in a hierarchy then you can continue to add parent indicators until you get back to the node that you want. So rewriting your expression from Q1 it woudl be:
    xfa.resolveNode("Table.Row[" + this.parent.index + "].Description").rawValue = "This is my new description";
    Question3: The buttons caption can be retrieved by using ButtonName.caption.value.text.value
    Question4: When you say build from an XML file. What are you expecting to come from the XML file? The caption that goes on the button? Typically the XML file carries data (not to say that it cannot carry other things). Just need a bit of clarification on this one first.
    Hope that helps
    Paul

Maybe you are looking for