Replacing programmatically VI's

Until now we supplied a library called AqDx.llb which contains a lot of VI's with AqDx prefix in the VI's name, like AqDx Init.vi, AqDx Close.vi etc.
Now we want to supply a new generation of the library who was renamed to AqD1.llb and with AqD1 as prefix of VI's name, AqD1 Init.vi, AqD1 Close.vi etc.
It is possible under LabVIEW to replace programmatically in a VI all sub-VI's of the AqDx.llb library by the corresponding VI's of the AqD1.llb library ?
(AqDx::AqDx Close.vi --> AqD1::AqD1 Close.vi)
Briefly, we want to supply a migration tool to our custumer.
Thanks a lot in advance !
levent

In the past this was a pain to do, you had to do it manualy.
Now checkout the undocumented LabVIEW VI Scripting.I made an simple experiment:
If you stick to documented LabVIEW, you can rename all old vi's to the new name ( using save instrument invoke node).
Then unload all callers and old from memory.
file copy then new vi's over the renamed old vi's.
Reload everything, now with the new vi's, and save.
Attachments:
replacer.vi ‏49 KB
test.llb ‏18 KB

Similar Messages

  • Use VBA and Excel to open Dreamweaver HTML (CS5), find and replace text, save and close

    I wish to use VBA and Excel to programmatically open numbered Dreamweaver HTML (CS5) and find and replace text in the code view of these files, save and close them.
    I have  5000 associations between Find: x0001 and Replace: y0001 in an Excel sheet.
    I have the VBA written but do not know how to open, close and save the code view of the ####.html files. Please ... and thank you...
    [email protected]

    This is actually the code view of file ####.html that I wish to find and replace programmatically where #### is a four digit number cataloguing each painting.... In 1995 I thought this was clever... maybe not so clever now :>)) Thank you for whatever you can do Rob!
    !####.jpg!
    h2. "Name####"
    Oils on acrylic foundation commercial canvas - . xx X xx (inches) Started
    Back of the Painting In Progress </p> </body> </html>
    Warmest regards,
    Phil the Forecaster, http://philtheforecaster.blogspot.ca/ and http://phils-market.blogspot.ca/

  • Is it possible to programmatically replace a Sub Report in a crystal report

    We create crystal reports via the crystal report designer (not in any IDE) , and attach the reports directly to the database via stored procedures. Each report contains a page header and a page footer with patient demographic data. We distribute these reports to our customers and they may edit the templates and alter the page header and page footers specific to their needs.
    We are looking at using sub reports to build a "model" page header and page footer that would be inserted into each template at design time. What we would like to do is allow the customers to create their own sup reports to contain their custom page header / page footer and then programmatically replace the " model" sub reports with the custom sub reports. Please note that these sub reports would not contain any data access and would not be linked to the main report, rather the main report would assign the data that is displayed in the page header/page footer data to shared variables,  and the sub reports would use the shared variables as their data source to display the data.
    Is it possible to programmatically replace 1 sub report with another ? If so are there any code snippets to review -

    Yes it is. Submit your post to which ever SDK you are using into the Developer forums. But search the posts first and look in our samples. This is relatively easy to do.
    Thank you
    Don

  • Search & replace text programmatically in pdf file

    I need to search & replace text programmatically (preferably in .NET c#) in existing pdf file.
    Does anyone know how to do it (maybe with with Acrobat SDK) ?
    Thanks in advance!
    A.
    PS: Well done working example :-)

    Searching APIs are provided, but there no APIs for replacing since that's not a standard operation on a PDF (given the rendering model).

  • How to replace lvlib with lvlibp programmatically

    Hello,
    in the project explorer there is the possibility to do a "Replace with a packed library" from the context menu.
    How can I do this programmatically?
    Thank you.
    Christian

    I have a specific use case for this, and was wondering if anyone figured out how to do it. My Google search does not turn up much other than this thread.
    My use case: I have  main code branch that is not ready for LVLIPB's because the architecture is not 100% complete. However, we are release an Executable build on that relies on a pluggable actor framework architecture. Currently I manually branch the code, replace all LVLIB's with LVLIBP's then build additional LVLIPB's from that code and go back and replace the LVLIB's. At that point my code is now ready to be build as an executable with plug-ins. This process takes about 1-2 hrs to complete. This process works and works well repeatedly, it is just time consuming due to the relining. If I could just off load it to another PC that would enable to me to make additional bug fixes or work other issues in the main code branch. Currently we build about once a day or two for final release testing.
    Any help in to script this would be much appreciated.
    Thanks!
    Brian G. Shea
    Systems Integrator / Certified LabVIEW Architect
    National Technical System, Inc.

  • Programmatically replace a project item?

    I'm currently moving a large project from LV7 into a LabVIEW Project in LV10.  In the process, I discovered that the project contains several copies of native NI VIs.  I'd like to remove these copies, and point all the callers of these copies to the VIs in vi.lib and elsewhere.
    What's the best way to do this?  I tried removing the copies and doing a mass compile, but I'm still left with many broken links to missing VIs, even though these VIs exist in vi.lib, which was included in the search paths during the mass compile.
    I'd like to programmatically go through the project, identify all missing VIs, and replace them with the VI from vi.lib, but can't figure out how to do that last step.  Below is a snippet to use as a starting point.
     I should note that I can't do a "Replace all" because the project contains too many VIs to load into memory at the same time.

    Hey Kyle.  Thanks for the reply.  The VI is attached.  
    Making a new project is certianly an option, but wouldn't fix things, because the missing VIs are dependencies, native NI VIs incorrectly linked by VIs in the project.  The new project would have the same broken links.
    What I'm trying to do is similar to this, except that I cannot load all the VIs into memory (1200 VIs).  The "replace all" method only works when all the VIs are loaded into memory.  
    -Joe
    Attachments:
    Replace missing VI with one from VI.lib.vi ‏540 KB

  • How to create mail merge(feature in word) in adobe pdf and programmatically find and replace these t

    I am very new to adobe.I am required to do the following and am very confused.The scenario is as follows:
    I am required to create a letter template (using adobe designer) where name and few other details will be tags(which needs to be replaced by actual values according to the particular customer later on).We can create such a feature in word using mail merge feature available there.How do we do the same in pdf??Can it be done using adobe designer 7.0???If so,how?
    After I create this template,I am required to write a javascript or a VB program to access this pdf template and find and replace these tags with the actual values and generate a pdf document.Somebody told me that this is to be done using adobe document server(ADS). Can this be done??If so,how?If not what is the alternative product in adobe?
    There are so many adobe products that i am totally at sea and not able to figure out which to use and how.
    Please help me at the very earliest.
    Thanks in advance.
    regards,
    Sowmya

    Let me thank u for a prompt reply but I guess I still need ur help before I accomplish what I set out to do.
    As per your reply I used Forms API in my vb program and it is accessing the fields but I am not able to change the property of the fields.
    I created the pdf form using adobe designer 7.0 and have created a floating field which I want to populate using my code.This is invisible in the pdf template but I when I set the value for it using vb code I need to change its property to visible.
    But when I try to change the "NoViewFlag" property, I get an error as follows:
    Runtime error'-2147220988(80040204)
    Document's Security Settings prohibit the operation being performed
    Please give your suggestions.
    2.Another question is how do I differentiate floating text field and ordinary text field in vb code because the type of both is displayed as text ??
    Thanks again.
    regards,
    Sowmya
    I am putting my code below for ur viewing.

  • How to modify a ViewObject Query programmatically?

    Hello,
    I have the following case. A SQL-query of an EO-based VO is defined by design in the Jdev wizard by default.
    That works in most of the cases. However, sometimes I need to programmatically filter the results by changing the content of the query.
    Sometimes this filter applies to inner queries inside the default SQL query. Sometimes it's NOT as easy as extending the where clause with the VO API.
    The best for me would be to use placeholders, like bind variables, but with a different meaning specific for the text of the query itself.
    These placeholders should be replaced with other SQL text programmatically. Is there a way to this with the features of the framework?
    thank you

    Did you execute query again after setting where clause? Take a look at the following (wrt applying ViewCriteria).
    Video: http://www.youtube.com/watch?v=04ZpxEn-xeA
    Doc: http://www.adftips.com/2010/10/adf-model-programmatically-executing.html
    Can't you make use of view criteria instead of executing the query again?
    Edited by: Vinay Agarwal on Feb 23, 2012 8:57 PM

  • Assigning roles to users programmatically

    Hi,
    I want to programmatically create roles, assign roles to users etc.
    I saw at this thread
    ADF Security Policy Store
    the folowing scriptlet by Frank Nimphius
    try {
    IdentityStore idstore = JpsCommonUtil.getValidIdStore("idstore.xml.provider").getIdmStore();
    try {
    UserManager userManager = idstore.getUserManager();
    RoleManager roleManager = idstore.getRoleManager();
    Role adminRole = idstore.searchRole(Role.SCOPE_APPLICATION,"admin");
    // create user
    //TODO check for empty username and password
    User newUser = userManager.createUser(this.username,this.password.toCharArray());
    roleManager.grantRole(adminRole,newUser.getPrincipal());
    } catch (IMException e) {
    // TODO
    } catch (JpsException e) {
    // TODO
    return null;
    this is a TP3 scriptlet, is it still working on the 11g production?
    I try it and i get a JpsException
    oracle.security.jps.JpsException
         at oracle.security.jps.internal.common.util.JpsCommonUtil.getValidIdStore(JpsCommonUtil.java:1004)
    do I have to replace "idstore.xml.provider" with something else depending on my configuration?
    thanks
    Tilemahos

    Hi Frank thanks for the answer,
    I check this functionality at WLS embeded LDAP and I shaw your "How-to configure OID for authentication in WebLogic Server" post.
    I manage to add users and assign them roles that i created at my application.
    But what if I want to have a super user that can create new roles and assign them member roles?
    eg.
    Developer created roles (policy store):
    accessPage1 ( granted all the necesery principals to access page1 )
    accessPage2 ( granted all the necesery principals to access page2 )
    Super user created roles
    Role1 member roles :accessPage1,accessPage2
    If i want my application to have that functionallity i must create roles programmatically wont I?
    If there another way?
    By the way I followed the advices at the following useful links
    Chris Muir: http://one-size-doesnt-fit-all.blogspot.com/2008/12/configuring-wls-with-ms-active.html
    Frank Nimphius's How-to configure OID for authentication in WebLogic Server
    Edwin Biemond's Using OpenLDAP as security provider in WebLogic
    Andrejus Baranovskis: Practical ADF Security Deployment on WebLogic Server
    And I manage to add users of the Microsoft LDAP at the WLS
    but I could't mekae them group members of my application groups (roles)
    is this possible?
    Thanks

  • WorkFlow Issues: Appending (not replace) Attendee Field in Calendar List and Email Variables (including .ICS file link)

    Kind of new to attempting any custom development in SharePoint.  Working with 2013 and have the 2013 Workflow Farm setup/working.  I am trying to have a calendar that users can register to appointments via custom list.  I
    have the list that pulls the title into its  own "Event" field as a lookup.  Also have a workflow on the calendar that adds the current user as an attendee and made that field "not required".  I'm trying to accomplish this:
    1) Have the Custom List update the Calendar list attendee field with the username. Currently it wipes out what is there and replaces with the "Created By" name. Tried to set a variable that would put the current attendees in a string
    and just add the current user, then use that variable to update the attendee field.  No luck.  Ultimately if I can understand this enough and get fancy enough, I'd setup a workflow  that can have someone delete their own registration item in
    the custom list and remove only their own name from Attendees...
    2)  Have a workflow kick off an email that sends the registrant the calendar details. Have tried to pipe in variables to get the ICS file (some variation of this )
     If I put the List ID in brackets I get an error about having that and variables in the same code for an email workflow.  In any event I can't really get the email workflow to give any kind of nice piped in values the best looked like this and had
    the wrong date: You registered for  {"results":[{"Id":22,"Value":"Test Event 8"}]} on 1/1/0001 12:00:00 AM

    Hi Jason,
    seems your requirement a bit complex, we forum team may have limited resource regarding this issue.
    you may consider to use infopath for example from this 3rd party article:
    http://www.bizsupportonline.net/infopath2007/programmatically-add-item-sharepoint-calendar-infopath.htm
    or for general example:
    http://office.microsoft.com/en-001/infopath-help/customize-a-sharepoint-list-form-HA101821257.aspx
    the article is to add an item to your calendar list, so then you may need to do wipe or other procedures, by infopath you may add the data as
    you need.
    if should infopath feature may not be possible to use in your environment, i may need to suggest you to open an advisory case to us, by contacting our representative,
    https://support.microsoft.com/
    Regards,
    Aries
    Microsoft Online Community Support
    Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread.

  • Text file - replace a pattern with part of the previous line? -SOLVED

    Hello, I'm stuck with sed/awk/grep...
    So I have a file with lines like this:
    Nice bunch of words <STUFF> <STUFF> <IMPORTANT_DELIMITER_TYPE_1> <STUFF> <IMPORTANT_DELIMITER_TYPE_2> <STUFF>
    Even Nicer bunch of Words <STUFF> <IMPORTANT_DELIMITER_TYPE_1> <STUFF> <STUFF> <STUFF>
    Wonderful bunch of Words <STUFF> <STUFF> <STUFF><IMPORTANT_DELIMITER_TYPE_1><STUFF>
    Then, I want to move the "important delimiters" to new lines (might be better not to do this in fact...)
    Nice bunch of words <STUFF> <STUFF>
    <IMPORTANT_DELIMITER_TYPE_1> <STUFF>
    <IMPORTANT_DELIMITER_TYPE_2> <STUFF>
    Even Nicer bunch of Words <STUFF>
    <IMPORTANT_DELIMITER_TYPE_1> <STUFF> <STUFF> <STUFF>
    Wonderful bunch of Words <STUFF> <STUFF> <STUFF>
    <IMPORTANT_DELIMITER_TYPE_1><STUFF>
    And finally, I want to replace the important delimiters with the content of the line they came from originally, up to the first angle bracket:
    Nice bunch of words <STUFF> <STUFF>
    Nice bunch of words <STUFF>
    Nice bunch of words <STUFF>
    Even Nicer bunch of Words <STUFF>
    Even Nicer bunch of Words <STUFF> <STUFF> <STUFF>
    Wonderful bunch of Words <STUFF> <STUFF> <STUFF>
    Wonderful bunch of Words<STUFF>
    How can I accomplish this using absolutely anything at all that doesn't involve too much manual effort (the file is about 30,000 lines of this stuff)
    Thanks !
    Last edited by darkbeanies (2013-09-01 19:18:29)

    "<STUFF>" is not irrelevant. In your original example
    Nice bunch of words <STUFF> <STUFF> <IMPORTANT_DELIMITER_TYPE_1> <STUFF> <IMPORTANT_DELIMITER_TYPE_2> <STUFF>
    Even Nicer bunch of Words <STUFF> <IMPORTANT_DELIMITER_TYPE_1> <STUFF> <STUFF> <STUFF>
    Wonderful bunch of Words <STUFF> <STUFF> <STUFF><IMPORTANT_DELIMITER_TYPE_1><STUFF>
    you want to break the lines along the delimiters:
    Nice bunch of words <STUFF> <STUFF>
    <IMPORTANT_DELIMITER_TYPE_1> <STUFF>
    <IMPORTANT_DELIMITER_TYPE_2> <STUFF>
    Even Nicer bunch of Words <STUFF>
    <IMPORTANT_DELIMITER_TYPE_1> <STUFF> <STUFF> <STUFF>
    Wonderful bunch of Words <STUFF> <STUFF> <STUFF>
    <IMPORTANT_DELIMITER_TYPE_1><STUFF>
    and then you say that you want to replace the delimiters with the contents before the first angle bracket:
    Nice bunch of words <STUFF> <STUFF>
    Nice bunch of words <STUFF>
    Nice bunch of words <STUFF>
    Even Nicer bunch of Words <STUFF>
    Even Nicer bunch of Words <STUFF> <STUFF> <STUFF>
    Wonderful bunch of Words <STUFF> <STUFF> <STUFF>
    Wonderful bunch of Words<STUFF>
    but you have clearly made a distinction between the "nice bunch of words" and "<STUFF>", otherwise the output would have been
    Nice bunch of words <STUFF> <STUFF>
    Nice bunch of words <STUFF> <STUFF> <STUFF>
    So, do you want everything up to  the first delimiter, or do you want everything up to <STUFF> in the replacement? If you only want the "nicer words" then you need some way to distinguish between them and "stuff" programmatically.
    edit
    Here's a trivial script that will split the lines along the delimiters and replace them with the contents of the line before the first delimiter:
    #!/usr/bin/env python3
    import re
    import sys
    def main(args=None):
    for line in sys.stdin:
    # Trim trailing newline.
    line = line.rstrip('\n')
    # Split by delimiters.
    parts = re.split(r'<[^>]+>', line)
    print(parts[0])
    for p in parts[1:]:
    print(parts[0] + p)
    if __name__ == '__main__':
    try:
    main()
    except (KeyboardInterrupt, BrokenPipeError):
    pass
    Usage
    path/to/script < /path/to/input file
    Last edited by Xyne (2013-09-01 18:34:55)

  • VA01 ATP incorrecct results when delivery date is programmatically changed

    Hi Guru's,
    When creating or modifying a sales order (VA01 & VA02), we need to programmatically assign the delivery date a) for certain customers or b) when the delivery priority is changed from downs to regular order and visa-versa. For examples: 1) user enters a delivery date 02/01/2012, the program (userexit_check_vbep) will automatically replace it with a calculated
    date (i.e.. 2/20/2012). 2) if user changes the delivery priority from regular order to a downs order, the program will automatically replace delivery date to current date.
    But are getting incorrect ATP results when requested delivery date (based on what user enters in VBAP-LPRIO "delivery priority") is programmatically changed and then user manually enters the date and run ATP (see steps 8 & 9 below).  
    VA01 execution steps:
    1) Used VA01 and entered a material of quantity 1, requested date 2/01/2012, delivery priority = regular. Date was overwritten automatically with program calculated date 2/20/2012 as expected.
    2) ATP automatically ran successfully for the initial entry.
    3) I then changed the delivery priority from regular order to downs order & requested delivery date was automatically changed to current date 02/01/2012 as expected.
    4) ran ATP manually and all is well.
    5) I then changed the delivery priority back to a regular order and date was automatically changed back to 02/20/2012 as expected.
    6) I ran ATP manually and again all is well.
    7) I then manually changed the delivery date 02/25/2012.
    Incorrect / bad results:
    8) ATP then passed back 2 sub-items lines with the quantity of 1 each. The quantity on the main line item is doubled to 2.
    9) I then tried to delete the main line item manually to start all over, but the transaction just hangs because it tries to go to ATP, but cannot resolve what to delete.
    Do you have any suggestions to help resolve this?   
    The following SAP user-exits were modified:
    a) MV45AFZB
      1) userexit_check_vbap
      - for certain customers (a custom "override days" field stored in VBAP is populated), delivery date is automatically calculated using this field (i.e.  current date + override days).   If user entered date < calculated date,   calculated date is used (xvbep-edatu).
      - If user changes delivery priority, xvbep-edatu will be set automatically to either the calculated date (regular order) or current date (downs order).
      2) userexit_check_vbep : if user enters a delivery date (vbep-edatu), it is checked against calculated delivery date & overwritten, if it is < calculated date.
    b) MV45AFZZ - userexit_move_field_to_vbap :
      - override days is determined & delivery date is automatically calculated. If user entered date < calculated date, calculated date is used (xvbep-edatu).
      - If user changes delivery priority, xvbep-edatu will be set automatically to either the calculated date (reg.order) or current date (downs order)
    Reason for updating xvbep: if only vbap-lprio or vbap-override (custom field) fields are changed, the VBEP user exit routines (userexit_move_field_to vbep or userexit_check_vbep)  do not run.  Change to xvbep does trigger userexit_check_vbep.
    Please advise.
    Joe

    This is not an SD question and should be moved to ABAP forum. It seems to me that the issue is not with incorrect ATP but with the subitems / main item updated incorrectly. This needs to be resolved by a developer who wrote the user exit. Most likely either a user exit is triggered when not expected or a wrong line updated, etc. Debugger should be helpful.
    Also instead of setting delivery priority, why can't the users just change the delivery date to current date? This seems just as easy to me...

  • Creating users and adding them to groups programmatically in Portal 902

    What is the correct process and code needed to create a user and add it to a group programmatically in Portal 9.0.2 and how is it different from what it used to be in 309.
    If anyone has an answer, please let me know and all contributions are really appreciated.
    Thanks

    You can use these procedures.
    procedure Create_User(first_name IN VARCHAR2
    ,last_name IN VARCHAR2
    ,password IN VARCHAR2
    ,email IN VARCHAR2
    ,employeenumber IN VARCHAR2
    ,description IN VARCHAR2
    is
    retval PLS_INTEGER;
    emp_session DBMS_LDAP.session;
    emp_dn VARCHAR2(256);
    emp_rdn VARCHAR2(256);
    emp_array DBMS_LDAP.MOD_ARRAY;
    emp_vals DBMS_LDAP.STRING_COLLECTION ;
    ldap_host VARCHAR2(256);
    ldap_port VARCHAR2(256);
    ldap_user VARCHAR2(256);
    ldap_passwd VARCHAR2(256);
    ldap_base VARCHAR2(256);
    BEGIN
    retval := -1;
    ldap_host := '<you_host>';
    ldap_port := '4032';
    ldap_user := 'cn=orcladmin';
    ldap_passwd:= '<orcladmin_password>';
    ldap_base := 'cn=users,dc=<your_compani_name>,dc=com';
    DBMS_LDAP.USE_EXCEPTION := TRUE;
    emp_session := DBMS_LDAP.init(ldap_host, ldap_port);
    -- Bind to the directory
    retval := DBMS_LDAP.simple_bind_s(emp_session,ldap_user, ldap_passwd);
    emp_array := DBMS_LDAP.create_mod_array(14);
    emp_vals(1) := first_name;
    DBMS_LDAP.populate_mod_array(emp_array,DBMS_LDAP.MOD_ADD,'cn',emp_vals);
    DBMS_LDAP.populate_mod_array(emp_array,DBMS_LDAP.MOD_ADD,'givenname',emp_vals);
    DBMS_LDAP.populate_mod_array(emp_array,DBMS_LDAP.MOD_ADD,'uid',emp_vals);
    emp_vals(1) := last_name;
    DBMS_LDAP.populate_mod_array(emp_array,DBMS_LDAP.MOD_ADD,'sn',emp_vals);
    emp_vals(1) := employeenumber;
    DBMS_LDAP.populate_mod_array(emp_array,DBMS_LDAP.MOD_ADD,'employeenumber',emp_vals);
    emp_vals(1) := description;
    DBMS_LDAP.populate_mod_array(emp_array,DBMS_LDAP.MOD_ADD,'description',emp_vals);
    emp_vals(1) := 'top';
    emp_vals(2) := 'person';
    emp_vals(3) := 'organizationalPerson';
    emp_vals(4) := 'inetOrgPerson';
    emp_vals(5) := 'orcluser';
    emp_vals(6) := 'orcluserv2';
    DBMS_LDAP.populate_mod_array(emp_array,DBMS_LDAP.MOD_ADD,'objectclass',emp_vals);
    emp_vals.DELETE;
    emp_vals(1) := email;
    DBMS_LDAP.populate_mod_array(emp_array,DBMS_LDAP.MOD_ADD,'mail',emp_vals);
    emp_vals(1) := password;
    DBMS_LDAP.populate_mod_array(emp_array,DBMS_LDAP.MOD_ADD,'userPassword',emp_vals);
    emp_dn := 'cn=' || first_name || ',' || ldap_base ;
    retval := DBMS_LDAP.add_s(emp_session,emp_dn,emp_array);
    DBMS_LDAP.free_mod_array(emp_array);
    retval := DBMS_LDAP.unbind_s(emp_session);
    -- Handle Exceptions
    EXCEPTION
    WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE(' Error code : ' || TO_CHAR(SQLCODE));
    DBMS_OUTPUT.PUT_LINE(' Error Message : ' || SQLERRM);
    DBMS_OUTPUT.PUT_LINE(' Exception encountered .. exiting');
    end Create_User;
    create or replace
    procedure Add_User_To_Group(user_name IN VARCHAR2
    ,group_name IN VARCHAR2
    is
    retval PLS_INTEGER;
    ldap_host VARCHAR2(256);
    ldap_port VARCHAR2(256);
    ldap_user VARCHAR2(256);
    ldap_passwd VARCHAR2(256);
    ldap_base VARCHAR2(256);
    my_session DBMS_LDAP.session;
    my_message DBMS_LDAP.message;
    my_entry DBMS_LDAP.message;
    my_array DBMS_LDAP.MOD_ARRAY;
    my_vals DBMS_LDAP.STRING_COLLECTION ;
    group_dn VARCHAR2(256);
    user_dn VARCHAR2(256);
    BEGIN
    retval := -1;
    ldap_host := '<you_host>';
    ldap_port := '4032';
    ldap_user := 'cn=orcladmin';
    ldap_passwd:= '<orcladmin_password>';
    ldap_base := 'cn=users,dc=<your_compani_name>,dc=com';
    DBMS_LDAP.USE_EXCEPTION := TRUE;
    my_session := DBMS_LDAP.init(ldap_host, ldap_port);
    -- Bind to the directory
    retval := DBMS_LDAP.simple_bind_s(my_session,ldap_user, ldap_passwd);
    --Find the user
    my_vals(1) := '1.1';
    retval := DBMS_LDAP.search_s(my_session,
    ldap_base,
    DBMS_LDAP.SCOPE_SUBTREE,
    '(&(objectClass=person)(cn=' || user_name || '))',
    my_vals,
    0,
    my_message);
    my_entry := DBMS_LDAP.first_entry(my_session, my_message);
    IF my_entry IS NOT NULL THEN
    user_dn := DBMS_LDAP.get_dn(my_session, my_entry);
    retval := DBMS_LDAP.search_s(my_session,
    ldap_base,
    DBMS_LDAP.SCOPE_SUBTREE,
    '(&(objectClass=orclGroup)(cn=' || group_name ||'))',
    my_vals,
    0,
    my_message);
    my_entry := DBMS_LDAP.first_entry(my_session, my_message);
    IF my_entry IS NOT NULL THEN
    group_dn := DBMS_LDAP.get_dn(my_session, my_entry);
    my_array := DBMS_LDAP.create_mod_array(1);
    my_vals(1) := user_dn;
    DBMS_LDAP.populate_mod_array(my_array, DBMS_LDAP.MOD_ADD, 'uniqueMember', my_vals);
    retval := DBMS_LDAP.modify_s(my_session, group_dn, my_array);
    DBMS_OUTPUT.PUT_LINE(RPAD('modify_s Returns ',25,' ') || ': '|| TO_CHAR(retval));
    DBMS_LDAP.free_mod_array(my_array);
    END IF;
    END IF;
    my_vals.DELETE;
    retval := DBMS_LDAP.unbind_s(my_session);
    -- Handle Exceptions
    EXCEPTION
    WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE(' Error code : ' || TO_CHAR(SQLCODE));
    DBMS_OUTPUT.PUT_LINE(' Error Message : ' || SQLERRM);
    DBMS_OUTPUT.PUT_LINE(' Exception encountered .. exiting');
    end Add_User_To_Group;

  • Replace Where Clause in a Report?

    Is there any way to programmatically replace the Where clause on a report?

    Hi,
    You can use QBE reports. This way you can give the where clause in the customization form.
    Thanks,
    Sharmila

  • JDeveloper BC4J Programmatic Client Tutorial Problem

    I have searched everywhere, but cannot find a correct working solution for this problem.
    Description:
    I am running the tutorials found under:
    Help Menu -> Help Topics -> Tutorial
    I can get several tutorials to work, but I am stuck on the tutorial titled:
    "Business Components Programmatic Client Tutorial".
    The BC4J Standalone Client tutorial is giving me this error after completing Step 3:
    oracle.jbo.JboException: JBO-33001: Cannot find the configuration file /OnlineOrders/common/bc4j.xcfg in the classpath
    There is no information regarding how to correctly configure the classpath or fix this problem.
    I am using JDeveloper 9i RUP7 at the Oracle Support site Knowledgebase 416708.1 for Release 11i:
    https://updates.oracle.com/ARULink/PatchDetails/process_form?patch_num=8751878
    My OS is Windows XP
    How can this this be resolved, so that I can successfully create a BC4J client in JDeveloper?
    Thanks in advance for any help
    Edited by: user8115477 on Apr 26, 2010 7:28 AM

    Thanks for clarifying that the package should have multiple names / hierarchy.
    I encountered the problem because the JDeveloper9i BC4J tutorial suggested one-level name.
    Eventually, I made changes similar to what you suggested, and now I can get the program tutorial to work.
    I was able to get the tutorial running by manually changing the package name as below:
    Tutorial Suggests:
    "OnlineOrders"
    What I did:
    Gotta have two-levels deep, so I entered "OnlineOrders.bc4j" instead.
    Then, I replaced all instances of "OnlineOrders" with "OnlineOrders.bc4j"
    This includes updating the code that must be copy-pasted into the Batch Client.
    Update all calls of "OnlineOrders.appName" to "OnlineOrders.bc4j.appName" etc... etc...
    I will mark this item as answered, since my OP question was answered.

Maybe you are looking for